Datasets and loaders

First draft here. Rerun make_dataset.py and you'll get new files {train,valid,test}_cmd_corpus.csv. These files are read by the dataset in mdtk.pytorch_datasets to produce instances of a given index. For example:
from mdtk.pytorch_datasets import CommandDataset, CommandVocab
vocab = CommandVocab()
train_dataset = CommandDataset('./acme/train_cmd_corpus.csv', vocab, 128)
... Loading Dataset: 18005it [00:00, 144793.12it/s]

Each data item is a dictionary containing the degraded commands as integers (in a list), likewise for the clean commands, and the degradation label (I'm assuming that deg_label 0 will always mean 'not degraded', so we don't need a is_degraded flag).
train_dataset[0]
... {'deg_commands': [3, 49, 50, 1, 177, 1, 47, 64, 69, 1, 71, 1, 175, 1, 178, 45, 1, 173, 192, 1, 197, 1, 40, 59, 62, 64, 69, 73, 1, 187, 1, 192, 197, 201, 1, 64, 1, 71, 1, 168, 1, 47, 1, 192, 1, 199, 1, 175, 64, 69, 1, 40, 1, 192, 1, 168, 197, 1, 50, 64, 68, 68, 71, 76, 1, 178, 1, 199, 49, 1, 199, 1, 190, 196, 204, 1, 192, 1, 177, 196, 62, 1, 47, 64, 66, 69, 69, 74, 1, 175, 1, 194, 45, 1, 190, 197, 202, 1, 173, 1, 192, 197, 1, 40, 59, 64, 68, 68, 71, 76, 1, 187, 1, 168, 64, 1, 47, 1, 192, 1, 175, 1, 40, 64, 1, 168, 1, 192],
'clean_commands': [3, 49, 50, 1, 177, 1, 47, 64, 69, 1, 175, 1, 178, 45, 1, 173, 192, 1, 197, 1, 40, 59, 62, 64, 69, 73, 1, 187, 1, 192, 197, 201, 1, 64, 1, 71, 1, 168, 1, 47, 1, 192, 1, 199, 1, 175, 64, 69, 1, 40, 1, 192, 1, 168, 197, 1, 50, 64, 68, 68, 71, 76, 1, 178, 1, 199, 49, 1, 190, 196, 204, 1, 192, 1, 177, 196, 62, 1, 47, 64, 66, 69, 69, 74, 1, 175, 1, 194, 45, 1, 190, 197, 202, 1, 173, 1, 192, 197, 1, 40, 59, 64, 68, 68, 71, 71, 76, 1, 187, 1, 168, 64, 1, 47, 1, 192, 1, 175, 1, 40, 64, 1, 168, 1, 192, 50, 68, 1],
'deg_label': 2}

The vocabulary can be used to get the tokens back:
[vocab.itos[idx] for idx in train_dataset[0]['deg_commands']]
... ['<sos>', 'o45', 'o46', '<unk>', 'f45', '<unk>', 'o43', 'o60', 'o65', '<unk>', 'o67', '<unk>', 'f43', '<unk>', 'f46', 'o41', '<unk>', 'f41', 'f60', '<unk>', 'f65', '<unk>', 'o36', 'o55', 'o58', 'o60', 'o65', 'o69', '<unk>', 'f55', '<unk>', 'f60', 'f65', 'f69', '<unk>', 'o60', '<unk>', 'o67', '<unk>', 'f36', '<unk>', 'o43', '<unk>', 'f60', '<unk>', 'f67', '<unk>', 'f43', 'o60', 'o65', '<unk>', 'o36', '<unk>', 'f60', '<unk>', 'f36', 'f65', '<unk>', 'o46', 'o60', 'o64', 'o64', 'o67', 'o72', '<unk>', 'f46', '<unk>', 'f67', 'o45', '<unk>', 'f67', '<unk>', 'f58', 'f64', 'f72', '<unk>', 'f60', '<unk>', 'f45', 'f64', 'o58', '<unk>', 'o43', 'o60', 'o62', 'o65', 'o65', 'o70', '<unk>', 'f43', '<unk>', 'f62', 'o41', '<unk>', 'f58', 'f65', 'f70', '<unk>', 'f41', '<unk>', 'f60', 'f65', '<unk>', 'o36', 'o55', 'o60', 'o64', 'o64', 'o67', 'o72', '<unk>', 'f55', '<unk>', 'f36', 'o60', '<unk>', 'o43', '<unk>', 'f60', '<unk>', 'f43', '<unk>', 'o36', 'o60', '<unk>', 'f36', '<unk>', 'f60']

As you can see....that's rather more <unk> than I would like...
We can do most of the tasks with this data. And you can use the transform to get torch versions of the data if required.
from mdtk.pytorch_datasets import transform_to_torchtensor
train_dataset = CommandDataset('./acme/train_cmd_corpus.csv', vocab, 128, transform=transform_to_torchtensor)
train_dataset[0]
{'deg_commands': tensor([  3,  49,  50,   1, 177,   1,  47,  64,  69,   1,  71,   1, 175,   1,
        178,  45,   1, 173, 192,   1, 197,   1,  40,  59,  62,  64,  69,  73,
          1, 187,   1, 192, 197, 201,   1,  64,   1,  71,   1, 168,   1,  47,
          1, 192,   1, 199,   1, 175,  64,  69,   1,  40,   1, 192,   1, 168,
        197,   1,  50,  64,  68,  68,  71,  76,   1, 178,   1, 199,  49,   1,
        199,   1, 190, 196, 204,   1, 192,   1, 177, 196,  62,   1,  47,  64,
         66,  69,  69,  74,   1, 175,   1, 194,  45,   1, 190, 197, 202,   1,
        173,   1, 192, 197,   1,  40,  59,  64,  68,  68,  71,  76,   1, 187,
          1, 168,  64,   1,  47,   1, 192,   1, 175,   1,  40,  64,   1, 168,
          1, 192]), 'clean_commands': tensor([  3,  49,  50,   1, 177,   1,  47,  64,  69,   1, 175,   1, 178,  45,
          1, 173, 192,   1, 197,   1,  40,  59,  62,  64,  69,  73,   1, 187,
          1, 192, 197, 201,   1,  64,   1,  71,   1, 168,   1,  47,   1, 192,
          1, 199,   1, 175,  64,  69,   1,  40,   1, 192,   1, 168, 197,   1,
         50,  64,  68,  68,  71,  76,   1, 178,   1, 199,  49,   1, 190, 196,
        204,   1, 192,   1, 177, 196,  62,   1,  47,  64,  66,  69,  69,  74,
          1, 175,   1, 194,  45,   1, 190, 197, 202,   1, 173,   1, 192, 197,
          1,  40,  59,  64,  68,  68,  71,  71,  76,   1, 187,   1, 168,  64,
          1,  47,   1, 192,   1, 175,   1,  40,  64,   1, 168,   1, 192,  50,
         68,   1]), 'deg_label': tensor(2)}

With this transformed data, the dataset can happily be used with the vanilla pytorch dataloader for batching:
from torch.utils.data import DataLoader
train_dataloader = DataLoader(train_dataset, batch_size=4,
                                                     shuffle=True, num_workers=4)
for batch_nr, batch in enumerate(train_dataloader):
    print(f'batch nr {batch_nr}')
    print(f'The batch is a {type(batch)}')
    print('But its values are pytorch tensors')
    labels = batch['deg_label']
    in_tokens = batch['deg_commands']
    print(labels.shape, in_tokens.shape)
    if batch_nr > 3:
        break

batch nr 0
The batch is a <class 'dict'>
But its values are pytorch tensors
torch.Size([4]) torch.Size([4, 128])
batch nr 1
The batch is a <class 'dict'>
But its values are pytorch tensors
torch.Size([4]) torch.Size([4, 128])
batch nr 2
The batch is a <class 'dict'>
But its values are pytorch tensors
torch.Size([4]) torch.Size([4, 128])
batch nr 3
The batch is a <class 'dict'>
But its values are pytorch tensors
torch.Size([4]) torch.Size([4, 128])
batch nr 4
The batch is a <class 'dict'>
But its values are pytorch tensors
torch.Size([4]) torch.Size([4, 128])

Finally, you can use the nn.Embedding layer as the first layer to the net to get from these integers to one hots (or learned vectors...). For an example, see how they do token embedding with BERT here (it calls out the here)
TODO:

Implement rounding to nearest time_increment in df_to_command_str
handle cases where there is a longer pause than max_time_shift in df_to_command_str (just output multiple time shift commands in a row
Overlapping notes mess up the conversion back from commands to df (see issue #20 )

lgtm. Made a few changes.
Regarding your TODOs:
-Implement rounding to nearest time_increment in df_to_command_str: DONE
-handle cases where there is a longer pause than max_time_shift in df_to_command_str (just output multiple time shift commands in a row: DONE
-Overlapping notes mess up the conversion back from commands to df (see issue #20 ): Complex, also see issues #46 and #8.
I'll let you check over this and complete the pull whenever you're ready. In the meantime I'll branch off of this point and continue working.

Phew, that was a big one. I'm loving this process man, thanks.
I think the most important thing to sort is the overlapping pitches problem. The pipeline for dataset creation and giving an example model should determine what we should do with the --command flag. I think I'm agreed with you now really, I've no idea how people will want to use this data!


GLM4Inference.infer() got an unexpected keyword argument 'max__new_tokens'

When running the glm-4-inference.json workflow, got following error:
got prompt
!!! Exception during processing !!! GLM4Inference.infer() got an unexpected keyword argument 'max__new_tokens'
Traceback (most recent call last):
File "D:\AI\ComfyUI_windows_portable\ComfyUI\execution.py", line 323, in execute
output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI\ComfyUI_windows_portable\ComfyUI\execution.py", line 198, in get_output_data
return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI\ComfyUI_windows_portable\ComfyUI\execution.py", line 169, in _map_node_over_list
process_inputs(input_dict, i)
File "D:\AI\ComfyUI_windows_portable\ComfyUI\execution.py", line 158, in process_inputs
results.append(getattr(obj, func)(**inputs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: GLM4Inference.infer() got an unexpected keyword argument 'max__new_tokens'
Prompt executed in 0.11 seconds

Thank you for reporting this. It was a typo in the inference nodes from the last update.
It's fixed now, please update the wrapper and it should be working as intended.

Thank you for reporting this. It was a typo in the inference nodes from the last update. It's fixed now, please update the wrapper and it should be working as intended.
Thank you, it works now! BTW, so far as I know those LLM prompt enhance/image caption usally use a random seed and give out different result by different seed. But this node dose not have a seed and the result will not change as long as the input remains the same. Is it possible to make the result variable?

Glad to hear its working!
Yes, I'm currently working on changing the structure for inferencing with the gptq models to make them run even faster.
I will look at implementing manual seeds during that update as well.

Glad to hear its working!
Yes, I'm currently working on changing the structure for inferencing with the gptq models to make them run even faster. I will look at implementing manual seeds during that update as well.

Looking forward to it.

@cheezecrisp Just added seed to the nodes. Try it out if you like!

@cheezecrisp Just added seed to the nodes. Try it out if you like!

Oh yeah sure it works, appreaciate for your great effort!


Deployment Schedule/Plan

Hi @Joponpin2000 and @Demoivre02 ,
It's my thought that we should focus on getting all the current tasks we have right now into staging this week and deploy to production.
We can then begin to pick up new tasks from next week. This includes my task for migrating the codebase to typescript as well. What do you guys think? Does it make sense.

Yes boss, totally agree

Hi @Demoivre02 and @Joponpin2000 regarding this.
Can we target to get everything we have in code review to staging say by Friday?
So we can battle deployment over the weekend and have new stuffs by next week.
I am open to pair program with anyone to quickly 'sort' out code reviews/comments or help in any way I can.


Falco probe builder with Docker

This week I have been working in the feedback I received in https://github.com/draios/sysdig/pull/1199
We have a problem with our builder, because is hard to install a recent version of Clang + LLVM, so I have extracted the builder to a Docker container which extends from Falco image which already ships valid Clang and LLVM versions
I also have splitted the builder in several files, which allows us to debug better the builders, it also supports parallel builds and adding new builders is done with just one file.
I also moved to Falco repository because this solution is more focused on Falco and this allows different development/release pace among Falco and other Sysdig components.

I took a very quick look at this (so I haven't run it, just looked) and I like this approach, I think it has good potential. Now, since I like it I think we should use it for everything (Falco, Sysdig, Agent + kernel module, eBPF), not just this specific intersection of features you're looking for now (Falco + eBPF) :-)
In particular, a few comments that I think you might want to consider:

Code duplication: it's obvious that this code contains a lot of duplication with the builder in the sysdig repo. I think this is a recipe for problems in the future, those scripts change quite frequently as new quirks are discovered by the agent team, and keeping them in sync is going to be error prone. So, I think ultimately all this logic should be applied to the sysdig repo, where it belongs, close to the actual probe sources.

Builder scripts: No major comments, the split makes sense.

Docker builder container: I understand the approach you've taken and how it favors the delivery of this feature, but to be honest it all feels too tightly coupled to me. Rather than having a single build container that is based on Falco and our current runtime distribution of choice (Debian sid), I would make separate generic container builders for the flavors we need (e.g. Centos 6 + Debian?), standardize the set of inputs they need to receive, and then make sure each builder script calls the specific relevant container, rather than the falco-probe-builder. This seems more scalable to me, especially for the broader goal if being used by every other product.

More parameterization: As I said in the last point I really think this should support building probes for agent/sysdig/falco, and not just falco. In order to do this, if we have generic docker builder containers, you would need to add a few other parameters, such as the probe name, and probe code location (not limited to the git repo like we're doing, you could for example copy the probe sources from the binary tarballs we distribute in S3 along with the deb/rpm packages), etc. Overall, I think the approach would be very clean.

What do you think? I understand this might fall into pure engineering work and you might not want to spend your time on this, but this is what I think.
Also, assume I would just say "This looks good to me, let's merge it". What would you expect after this? Would you expect that we keep serving the agent and sysdig probes from our legacy script, and we would switch to this just for falco, and then "merge" the output directories of the two approaches in our S3 bucket?
Another point in favor of doing the broader work is that, as we discussed a few weeks ago (and please correct me if I'm wrong), we are not in a terrible rush to release this, right? For eBPF, we have proper workarounds for both COS and Minikube involving runtime download of headers, whereas for the kernel module we are currently covered by our legacy infrastructure that precompiles the probes, so there is no impending doom. Am I correct?
Thanks


BLD: update minimum versions of meson-python and pythran

Closes gh-19150
Closes gh-19158
Pythran 0.14.0 should come out today, meson-python 0.14.0 came out a few days ago. Opening this already to not forget to do this soon, since it solved a lot of annoying warnings at build time about numpy.random signatures.

The one CI failure is spurious, I'll take care of that in a separate PR. This one is good to go now.


RuntimeError got after numpy updated

Error:
RuntimeError: Failed to import transformers.data.data_collator because of the following error (look up to see its traceback):
cannot import name '_rename_parameter' from 'numpy._utils' (/opt/conda/lib/python3.10/site-packages/numpy/_utils/__init__.py)

My current numpy version is 1.26.4 cuz 2.0.0 crashed.

Thanks I will check Kaggle!

Weird I just tried Kaggle - it seems to work.
Please fork and edit these:
Llama-3: https://www.kaggle.com/code/danielhanchen/kaggle-llama-3-8b-unsloth-notebook
Mistral: https://www.kaggle.com/code/danielhanchen/kaggle-mistral-7b-unsloth-notebook
Gemma: https://www.kaggle.com/code/danielhanchen/kaggle-gemma-7b-unsloth-notebook/
Phi-3: https://www.kaggle.com/code/danielhanchen/kaggle-phi-3-medium-unsloth-notebook
Qwen 2:  https://www.kaggle.com/code/danielhanchen/kaggle-qwen-2-7b-unsloth-notebook

ok, thx!

Btw, is it possible to use GaLora as the optimizor with Unsoth?


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v5.12 to before v5.12.13",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=15cc10453398c22f78f6c2b897119ecce5e5dd89",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=27ef25c72373222aaa5fe7b5cd890ae9cfb89a8d"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "15cc10453398c22f78f6c2b897119ecce5e5dd89",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "27ef25c72373222aaa5fe7b5cd890ae9cfb89a8d",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "mptcp: fix soft lookup in subflow_error_report()\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.12.13 by commit 27ef25c72373222aaa5fe7b5cd890ae9cfb89a8d, it was introduced in version v5.12 by commit 15cc10453398c22f78f6c2b897119ecce5e5dd89. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001064


Blazor Client-side builds but can't run, .exe doesn't exist

When I try to run only Blazor client-side I got this error. When I go to path it indeed doesn't has WebApp1.exe but it has a WebApp1.dll. I have tried switching executable from .exe to .dll and it works partially, only log window says it's running and I can't access to http://localhost:5001 nor http://localhost:5000.
Notice
Last night was running perfectly when I tested it, in the morning it does not.
I have tried with making new project and problem persist, I have tried reinstalling dotnet, mono, nothing fixes it.

Using this version of ASP.NET Core:
Microsoft.NETCore.App 3.0.0-preview5-27626-15
Using this OS: Fedora 30
Using this IDE: Jetbrains Rider
Debug configuration

ERROR
Error running 'Default': File /home/teufik/Blazor/WebApp1/bin/Debug/netstandard2.0/WebApp1.exe doesn't exist

As you can see build is successful

Additional context
Including the output of dotnet --info

Blazor CS doesn't create an exe. The WebApp1.dll will be downloaded to the browser and executed by the mono engine.
What happen if you go to the project directory and execute a dotnet run?

This might be a tooling issue. Jetbrains Rider doesn't seem to fully support Blazor client side, vote up here: https://youtrack.jetbrains.com/issue/RSRP-469186 .
I've tried a project that works well on Visual Studio 2019 but it shows the error you mentioned when trying to run from Jetbrains Rider.
Just give it a try, dotnet run, you can always try Visual Studio Code (I've never used it for Blazor though) take a look at this: https://visualstudiomagazine.com/articles/2019/04/23/vs-code-blazor.aspx

Blazor CS doesn't create an exe. The WebApp1.dll will be downloaded to the browser and executed by the mono engine.
What happen if you go to the project's directory and execute a dotnet run?

When I run through dotnet run it work, I got ports listening on 5000 and 5001 and simply navigate to it on browser and it works.
I think it is Jetbrains Rider but I'm wondering how first time it managed to run

Thanks for contacting us, @psychotaker.
We recommend follow up on the issue filed on the jetbrains.com shown above:

Jetbrains Rider doesn't seem to fully support Blazor client side, vote up here: https://youtrack.jetbrains.com/issue/RSRP-469186 .


feat: Copy .sql files from the output directory to the publish directory

Resolves #75

It has been decided to create a target instead of a .props for one reason:

The target files are imported at the end of the project file, so properties such as Configuration and TargetFramework would already be defined. With a .props file, however, it is different, as they are imported at the beginning of the project file, so the  value of TargetFramework would not be available.

See https://learn.microsoft.com/en-us/nuget/concepts/msbuild-props-and-targets#packagesconfig-projects

.props is added at the top of the project file; .targets is added at the bottom.


I certainly hope so :laughing:


⚠ Bofrost.fr has degraded performance

In 32a216b, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 823 ms

Resolved: Bofrost.fr performance has improved in ef546db after 6 minutes.


A bug when vdom trying to update children when data being changed in some case

Version
2.5.9
Reproduction link
https://codepen.io/maple-leaf/pen/BmgaqG
Steps to reproduce

open the codepen demo
open devtool if u are on chrome
click change data which will raise error button
now you should see an error like this: TypeError: Cannot read property 'key' of undefined.
refresh demo page
click safe to change data here button
now you should not see an error like before, and data being updated correctly

What is expected?
maybe same behavior like both should raise an error, but if raise error, maybe duplicate key error should be showed too which will help developer easier to find what data is killing page.
What is actually happening?
both data have duplicate keys, but behavior is different

why error being raise when you click change data which will raise error button?
Because the data will raise error has some special changes. It remove all keys except duplicate key 'b' compared to initial data and the order is different.
This will make updateChildren function in vdom/patch.js hit this code section, which will create a oldKeyToIdx. And then when first key 'b' comes, it will set value of b in oldKeyToIdx to undefined, and then next key b comes, it will compare old node and new node via function sameNode. But this time, index of old node which key is b is undefined now. So a js error is being raised.

The first button should indeed warn the user of duplicate keys as the second button does (if you change the vue file the a non-minified version)

Maybe we need to check the duplicate key in here
https://github.com/vuejs/vue/blob/dev/src/core/instance/render-helpers/render-list.js#L38

I think not just not warning being thrown when click on first button should be fixed. The second one which throw a js error and make page unusable on production env, what is more important, should be fixed.
Even thought repeated key is not correctly in common, but this js error is introduced by framework, which will not happen when write valiant script.

The error here is expected as such code should never be deployed, that's what dev warnings/erros are there for, to help you prevent that 😄

I think that is good for most case. But in this case, :key will only fire error on some special data which can be hard to be exposed at dev sometimes. And this can be a hidden bug which will crash app at some day.

I'm sorry, some changes on the job recently, so follow up late
You may feel very strange
why changeData didn't trigger warnning
That's because of the new array length is longer than the old
So the last one(duplicate key) need to perform a insert operation
  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
    for (; startIdx <= endIdx; ++startIdx) {
      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm)
    }
  }

But this operation did not check key
So... there is no warning message
Other case

If a duplicate key is included in data, no warning will be triggered

  data: function() {
      return {
        data: [{
          key: 'a',
          value: 'first'
        }, {
          key: 'b',
          value: 'second'
        }, {
          key: 'c',
          value: 'third'
        }, {
          key: 'b',
          value: 'second'
        }]
      }
    }

So I think it needs to be checked in these two cases


[FeatureReq - Partner Center] Fast track extension review cycle

Respected,
Current release cycle includes 7 business days for extension review by Microsoft.
This time is too much for Enterprise extensions. Also this time is way too much as compared to Firefox and Chrome.
This delays our urgent hotfixes on the production environment and results in business impact.
If you can optimize the release cycle aligned with other browsers release cycle, it will be a great improvement to the enterprise extension.

Totally agree with this. I have an extension (Kiwix JS) I publish on Mozilla, Chrome and Edge extension stores. These are the normal timeframes for each:

Mozilla - published instantly after automated review (subject to potential human review later)
Chrome - 24 hours
Edge - up to 9 days (sorry, but the trick of counting only "business" days doesn't wash here, given that Chrome extension gets reviewed at weekends just fine)

Does Microsoft actually want to promote its Edge extension store and use of its browser? At this point, what incentive do I have for not just telling my users to go and install it from the Chrome store if they use Edge? And while they're at it, probably half of them will switch to Chrome anyway.

See also the discussion here: https://github.com/microsoft/MicrosoftEdge-Extensions/discussions/46

@Jaifroid @yogesh-morankar
Hi, we understand that there have been delays in the approval timelines. Could you please reach out to us at<EMAIL_ADDRESS>with your submission details and we will look into it.

@prithamkasiMSFT I don't currently have a release under approval. But what we are signalling is a systemic issue. It can't be fixed by asking specific contributors to contact you when they submit. That's at best a sticking plaster for specific cases.

It seems there has been no effort at all when it comes to improving the review time. Users who install my extension from the Edge store will have to wait a few days for an update that is already available in the other stores. Why should they use your store then, when they can get quicker updates via the Chrome Web Store?

Hello Ahnaf,
Thank you for reaching out to us!
Could you please share the details of your extension and we could investigate and get back to you as soon as we can?
Best regards,
Pritham Kasi
Community Manager - Microsoft Edge Add-ons
For any specific questions related to Partner Center and Edge add-ons store, please report them via our GitHub developer communityhttps://github.com/microsoft/MicrosoftEdge-Extensions.
From: Ahnaf Mahmud @.>
Sent: Thursday, April 11, 2024 11:56 PM
To: microsoft/MicrosoftEdge-Extensions @.>
Cc: Pritham Kasi (Ushta Te Consultancy Services) @.>; Mention @.>
Subject: Re: [microsoft/MicrosoftEdge-Extensions] [FeatureReq - Partner Center] Fast track extension review cycle (Issue #131)
It seems there has been no effort at all when it comes to improving the review time. Users who install my extension from the Edge store will have to wait a few days for an update that is already available in the other stores. Why should they use your store then, when they can get quicker updates via the Chrome Web Store?

Reply to this email directly, view it on GitHubhttps://github.com/microsoft/MicrosoftEdge-Extensions/issues/131#issuecomment-2050271918, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFWPPPWE5VQGE6ES4YLSPFLY43IVBAVCNFSM6AAAAABC4RYWAGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJQGI3TCOJRHA.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

@prithamkasiMSFT You need to stop asking people for their extension details. We don't want individual sticking plasters.  It should be 24 hours for uncomplicated cases, and 72 hours when manual review is required. All you need is a concerted effort to get on top of the queue now, and then ensure you stay on top of reviews. If you're chronically under-staffed, you need to tell MSFT, which is a multi-billion-dollar company.

Hello @Jaifroid @infinitepower18 @yogesh-morankar, we apologize for this inconvenience.
Please be informed that we have forwarded your feedback to our team for further consideration, resulting in a shorter review and extension review cycle time.
Also, if you have any issues while submitting your extensions, please contact us at<EMAIL_ADDRESS>so that we can investigate and assist you accordingly.

Hello @Jaifroid @infinitepower18 @yogesh-morankar, we apologize for this inconvenience.
Please be informed that we have forwarded your feedback to our team for further consideration, resulting in a shorter review and extension review cycle time.
Also, if you have any issues while submiting your extensions, please contact us at<EMAIL_ADDRESS>so that we can investigate and assist you accordingly.

OK, thank you.

Thank you  @Manikanth2109  for understanding and raising this issue with concerning team.


Define Degree Summaries for ASTRA Program

Description:  The summaries for the MS degrees within the ASTRA Program at ASTRA College are currently in the planning phase and are subject to frequent changes. We need to finalize the descriptions to ensure consistency and clarity across all communications. The degrees included in the ASTRA Program are:

MS in ASTRA Global Development and Policy
MS in ASTRA Education and Training
MS in ASTRA Project Management
MS in ASTRA Architecture and Design
MS in ASTRA Executive Leadership and Strategy

Current Summaries:

MS in ASTRA Global Development and Policy:

Designed for individuals aspiring to lead and innovate across physical and digital spaces.
Focuses on grant writing, public administration, and policy development.
Prepares graduates for roles in organizations like UNICEF, the United Nations, and other international bodies.
Emphasizes both theoretical knowledge and practical application.

MS in ASTRA Education and Training:

Prepares educators and trainers for teaching and training in various spatial environments.
Emphasizes innovative teaching methodologies, curriculum development, and technology integration.
Equips graduates to design and deliver educational programs in physical and digital spaces.

MS in ASTRA Project Management:

Tailored for professionals aiming to lead complex projects in diverse spatial environments.
Provides training in project planning, execution, and management.
Focuses on challenges and opportunities in physical and digital contexts.
Utilizes advanced project management tools and methodologies.

MS in ASTRA Architecture and Design:

Offers an interdisciplinary approach to design and construction in diverse spatial environments.
Combines principles of architecture, engineering, and spatial science.
Involves hands-on projects and collaboration with industry experts.
Utilizes advanced simulation tools.

MS in ASTRA Executive Leadership and Strategy:

Designed for aspiring leaders in diverse spatial environments.
Focuses on strategic decision-making, leadership development, and organizational management.
Provides insights into trends and challenges in high-tech and spatially diverse contexts.
Involves real-world case studies and learning from seasoned professionals.

Action Items:

Review and Finalize Summaries:

Ensure each summary accurately reflects the program's objectives and content.
Maintain consistency in language and structure across all summaries.

Stakeholder Feedback:

Gather feedback from key stakeholders, including faculty, industry experts, and potential students.
Incorporate relevant suggestions and address any concerns.

Approval Process:

Submit the final summaries for approval by the academic board.
Ensure all necessary documentation is completed for official program descriptions.

Update Communications:

Update the college website, brochures, and other marketing materials with the finalized summaries.
Ensure all internal and external communications reflect the approved descriptions.

Deadline:

Target completion date for finalizing summaries: [Insert Deadline]

Assignees:

[Insert Names of Team Members Responsible]

Additional Notes:

Keep track of all changes and maintain a version history for reference.
Ensure alignment with ASTRA College's overall mission and strategic goals.

Hello @SuzyQuant, I opened the issue to complete it, but I am not getting the Issue completely as in S.W.O.T analysis of what assignment as the project is very vast.
For example, S.W.O.T analysis of curriculum

New Concept:
MS in ASTRA Global Development and Policy
Summary: The MS in ASTRA Global Development and Policy is designed for individuals who aspire to lead and innovate across both physical and digital spaces. This program equips students with the skills needed to navigate complex policy landscapes, focusing on grant writing, public administration, and policy development. Graduates will be prepared to join prestigious organizations such as UNICEF, the United Nations, and other international bodies, driving change and fostering sustainable development in diverse spatial contexts. Through a blend of theoretical knowledge and practical application, students will emerge as leaders ready to tackle the world's most pressing challenges in both physical and digital environments.
MS in ASTRA Education and Training
Summary: The MS in ASTRA Education and Training prepares educators and trainers to excel in teaching and training across a variety of spatial environments, including traditional classrooms, corporate settings, and specialized digital education initiatives. This program emphasizes innovative teaching methodologies, curriculum development, and the integration of cutting-edge technologies into educational settings. Graduates will be equipped to design and deliver impactful educational programs that inspire and educate learners in both physical and digital spaces, from local communities to global platforms.
MS in ASTRA Project Management
Summary: The MS in ASTRA Project Management is tailored for professionals aiming to lead complex projects in diverse spatial environments, including urban developments, community initiatives, and digital enterprises. This program provides comprehensive training in project planning, execution, and management, with a special focus on the unique challenges and opportunities presented by both physical and digital contexts. Students will learn to utilize advanced project management tools and methodologies, ensuring the successful delivery of projects from inception to completion. Graduates will be well-positioned to take on leadership roles in various sectors, driving innovation and efficiency in their organizations.
MS in ASTRA Architecture and Design
Summary: The MS in ASTRA Architecture and Design offers an interdisciplinary approach to the design and construction of structures in diverse spatial environments, from residential homes and community spaces to digital and virtual habitats. This program combines principles of architecture, engineering, and spatial science to prepare students for the unique challenges of designing for various physical and digital contexts. Students will engage in hands-on projects, utilizing advanced simulation tools and collaborating with industry experts. Graduates will be equipped to contribute to the next generation of architectural design, pushing the boundaries of what is possible in creating functional and innovative spaces.
MS in ASTRA Executive Leadership and Strategy
Summary: The MS in ASTRA Executive Leadership and Strategy is designed for aspiring leaders who wish to shape the future of organizations operating in diverse spatial environments, including urban developments, community initiatives, and digital industries. This program focuses on strategic decision-making, leadership development, and organizational management in high-tech and spatially diverse contexts. Students will gain insights into the latest trends and challenges in the field, learning from seasoned professionals and engaging in real-world case studies. Graduates will emerge as visionary leaders, capable of driving innovation and leading their organizations to new heights in the rapidly evolving landscape of both physical and digital spaces.
These revised summaries highlight ASTRA College's commitment to providing cutting-edge education that prepares students for leadership roles in a wide range of spatial environments, integrating the principles of Space, Technology, Research, and Automation. Our graduates are equipped to excel in Silicon Valley's technical innovation as well as in public administration roles worldwide

Summary of Activities:

Read the Overview of the HLC Accreditation

Policy Handbook

Cross-references:

Financial Capacity:

WVU 2024 Financial Plan
Financial Statements for the Years Ended June 30, 2023 and 2022 and Independent Auditors’ Reports

Please check your emails because I commented on a word file that is created about the Hackney University. Ask GPT to critique it and see if it has all the necessary information in the TOC and if the narrative's essence is what we're after.

Today I will collaborate with my team on ASTRA. I will explore the OpM and also learn about HLC. Today I will have meeting with teammates and discuss about next process. I will check a file (ASTRA)and review it to share my reviews on it. I will also have meeting with design hive team to learn about roadmapping in Jira and JDP goals.

https://github.com/TaoLearning/ASTRA/pull/36 Today I create this pull request regarding HLC requirements.

Today I will collaborate with my team on issue#4(define degree summaries for ASTRA program). I will research about the HLC requirements and save my notes. I will have meeting with design hive team to learn about roadmapping in Jira.

Today, I will collaborate with my team to successfully define and document the degree summaries for the ASTRA program (issue#4). Additionally, I will spend the entire working day shadowing Raza in World Enterprise to gain a comprehensive understanding of his role and responsibilities. Both tasks will be completed by the end of the day.

Today I will collaborate with my team on issue#4. I will continue working on the ASTRA document and find what changes we have to make in document to make it according to HLC requirements. at the end of day I will share my notes with team for review.  I will also have meeting with design hive team to learn about Jira.

Today, I will collaborate with my team to resolve Issue #4, update ASTRA documentation to meet HLC requirements, and work with Raza to review and refine World Enterprise by-laws, ensuring all tasks are completed accurately and professionally by the end of the day.

Today I will collaborate with my team on issue#4( define degree summaries for ASTRA program). I will work on ASTRA documents. I will also present weekly presentation. I will also have meeting with designhive team to learn about Jira.

Today I will collaborate with my team on issue #4. I will continue working on the ASTRA document. I will incorporate the requirements of HLC in to it. I will also share this with teammates for review. I will also have meeting with design hive team. I will learn about Jira.

Today, I will collaborate with my team on issue #4, review Sana's document on ASTRA, and shadow Raza at World Enterprise. I aim to complete these tasks by the end of the day to ensure they contribute to our project goals and my professional growth.

Today I will collaborate with my team on issue #4. I will get reviews on the ASTRA document.I will work next  according to their suggestions.  I will also have meeting with design hive team. I will learn about Jira.

Today I will collaborate with my team on issue #4. yesterday I l got  reviews on the ASTRA document.I will   according to   suggestions.  I will also have meeting with design hive team. I will learn about Jira.

Today I will collaborate  with my team on issue#4. I will work on ASTRA document.I will continue  competitive research about US universities to make ASTRA document more accurate. I will also save  this in  notes.I will also have  meeting with teammates  for Jira training.

"Today, I will collaborate with my team on Issue #4. We will work together to correct the ASTRA document. Additionally, I will be working with Raza on tasks related to WorldEnterprise."

Today, I will work with Think Dojo team, collaborate with them and shadow the work of my team members. I will resolve issues with my focus tracker and Windows. Additionally, I will learn more about Jera by attending a meeting with the Design Hive team.

Today I will collaborate with my team members on issue # 04, we will work on ASTRA documentation. I will continue my comparative research of US universities. I will also have meeting with teammates for Jira training.

Today I will collaborate with my team on issue#4. I will work on ASTRA document and make changes in it according to suggestions of teammates. I will also have meeting with teammates for Jira training.

Today I will work on issue#4 with my team. I will work with Sana on changing the ASTRA documents according to the suggestions of teammates.

Work on ASTRA Bot in OpenAI Playground to re-define the TOC that should follow HLC Policy Book. Make sure to share the thread URL often in Think Dojo Meeting Chats so we can work together on it. @Sana-Ramzan @irajsaeed73
But prioritize the roadmapping issue first so we can create milestones appropriately.

we have to follow this for next working these are the notes of todays meeting.
look at this roadmap if this fits our goals. Create a markdown file and do a PR so we can refine that roadmap.
Do this roadmapping first before creating the document file through AI
Last read Link Define Degree Summaries for ASTRA Prog... by Suzanne ConejosSuzanne Conejos8:12 PM
Define Degree Summaries for ASTRA Program · Issue #4 · TaoLearning/ASTRA (github.com)
Check my comment here. Thanks!
Define Degree Summaries for ASTRA Program · Issue #4 · TaoLearning/ASTRA
Description: The summaries for the MS degrees within the ASTRA Program at ASTRA College are currently in the planning phase and are subject to frequent changes. We need to finalize the descriptions...

Today, I updated the ASTRA document by incorporating feedback from my teammates' reviews. We also worked together to develop a roadmap for the ASTRA program. I plan to continue refining the document based on Suzanne's instructions tomorrow.

Today I will collaborate with my team on   creating roadmap for ASTRA program . I will refine the roadmap which created yesterday to ensure that it aligns with our project goals and objectives. At the end of the day I will share this roadmap with teammates for review.

Today, I will implement the changes in the ASTRA documentation as per Suzanne's instructions. Additionally, I will collaborate with my team to develop the project roadmap, ensuring that we complete it by the end of the day.

Today, I will work on issue #04. I will collaborate with my team members to make changes in ASTRA documentations according to updated approved road map so that it align with project goals and objectives. I will also work on Microsoft badges and setup my account of Jera.

Specific:
Today, I will focus on:
Attending project-related meetings.
Conducting a Product Management session for the Design Hive team.
Collaborating on the ASTRA project with the Think Dojo team.
Making progress toward my certification.
Measurable:
My objectives are to:
Identify three actionable items from the meetings.
Deliver one comprehensive Product Management session.
Make significant contributions to the ASTRA project.
Complete a specific portion of my certification coursework.
Achievable:
I will:
Use insights from the meetings and a prepared agenda to lead the Product Management session effectively.
Allocate specific time blocks for ASTRA project collaboration.
Dedicate focused study periods for certification progress.
Relevant:
These tasks are crucial for:
Maintaining project momentum.
Improving team alignment.
Enhancing the success of the ASTRA project through collaboration.
Advancing my professional qualifications.
Time-Bound:
I will:
Dedicate 1 hour to meetings.
Allocate 1 hour for the Design Hive session.
Spend 3 hours working on the ASTRA project.
Invest 3 hours in certification study, completing all within my 8-hour workday.

Today I will collaborate with my team members on this issue, we will make changes in the road map timeline according to instructions, then we will work on road map documentation. I will also make change in ASTRA documents according to HLC requirments by using open AI.Additionaly I will work on Atlassian certifications.

Today I will complete my Jira certification during my 8 hours shift. We will also work on first step of ASTRA program : "Welcome to ASTRA". We will be working on the documentation, logo, color schemes and all related materials. We will also get reviews on pull request that we created for ASTRA roadmap.

Today, I will collaborate with my team on the initial phase of the ASTRA program, concentrating on the creation of documentation, logos, color schemes, and all related materials. Additionally, I will dedicate 10% of my time to working on obtaining relevant certifications, which are crucial for my professional development. By breaking down the tasks and focusing on specific deliverables, I aim to achieve meaningful advancements in both areas. These activities are directly aligned with the goals of the ASTRA program and my career growth, and I am committed to completing them by the end of today.

Specific: I will work on the documentation from yesterday, addressing the issues we identified. Additionally, I will begin the branding documentation for the university project.
Measurable: The completion of the documentation and a draft of the university branding document will serve as progress markers.
Achievable: I will allocate time efficiently to ensure all tasks are completed within the workday.
Relevant: These tasks align with our ongoing projects and team goals.
Time-bound: I'll aim to complete the documentation and start the branding project by the end of today. Additionally, I'll conduct a product management session where the entire team will shadow me.

I will collaborate with the team to address the current issue and draft the "Welcome to ASTRA" document. We will also decide on the slogan for the ASTRA project. Additionally, I will attend the meeting with the Design Hive team. To make this measurable, I will complete the draft of the "Welcome to ASTRA" document and finalize the project slogan. I will also gain a basic understanding of project management features and actively participate in the Design Hive team meeting.

Today i will
Specific:
Complete the draft of the "Welcome to ASTRA" document, align other documents with your team, attend the meeting at Design Hive, and work on gaining knowledge in project management by completing a LinkedIn certificate course.
Measurable:
Draft the "Welcome to ASTRA" document to at least 90% completion.
Review and align at least two other documents with your team during the collaboration session.
Attend the scheduled Design Hive meeting on time and participate actively.
Complete at least 50% of the LinkedIn project management certificate course.
Achievable:
The tasks are well within your capability for a day, provided you maintain focus and dedicate specific time slots to each task.
Relevant:
These tasks directly contribute to the development of Hackney University, enhance your leadership skills, and improve your project management knowledge, aligning with your long-term goals.

Specific:  I will Collaborate with my team oon this issue and draft the "Welcome to ASTRA" document.  We will decide on the slogan for the ASTRA project.
Measurable: Complete the draft of the "Welcome to ASTRA" document and finalize the project slogan.
Achievable: Work with team members to gather input and ensure alignment on the document and slogan.
Relevant: These tasks are crucial for the successful launch and branding of the ASTRA project.
Time-bound: I will complete all tasks at the end of day.

Today I will collaborate with my team members on this issue. We will work on ASTRA documentation. We will complete the document named "Welcome to ASTRA" And I will make changes in document about overview of all 5 programs of ASTRA according to suggestions of my team members. Thank you

Specific:
Collaborate with team members to complete the "Welcome to ASTRA" document and define the degrees offered by the university.
Measurable:
"Welcome to ASTRA" document with all necessary sections and ensure a comprehensive list of university degrees with explanation  is included.
Achievable: Work with team members to gather input and ensure alignment on the document.
Relevant:
This goal aligns with the project’s objectives to provide clear and comprehensive documentation for ASTRA, enhancing user understanding and engagement.
Time-bound:
I will complete my all tasks at the end of day.

Specific:
Collaborate with the team to finalize the "Welcome to ASTRA" document and provide a clear definition of all degrees offered by Hackney University.
Measurable:
Ensure the "Welcome to ASTRA" document is completed with all required sections, including a comprehensive explanation of the degrees offered by the university.
Achievable:
Work closely with team members to gather input, ensure alignment, and address any feedback needed to complete the document.
Relevant:
This task directly supports the overall objective of developing clear and thorough documentation for ASTRA, improving understanding and engagement with prospective students and stakeholders.
Time-bound:
All tasks, including the completion of the "Welcome to ASTRA" document and the degree definitions, will be finished by the end of the day.

Specific:
Collaborate with the team to finalize the "Welcome to ASTRA" document, ensuring a clear and detailed definition of all degrees offered by Hackney University.
Measurable:
Ensure the "Welcome to ASTRA" document includes all necessary sections, with a thorough explanation of each degree program provided by the university.
Achievable:
Work closely with team members to gather feedback, ensure alignment, and address any input needed to finalize the document.
Relevant:
This task supports the broader goal of developing clear, comprehensive documentation for ASTRA, enhancing understanding and engagement for prospective students and stakeholders.
Time-bound:
All tasks, including the completion of the "Welcome to ASTRA" document and the degree definitions, will be finalized by the end of the day.

Specific:
Collaborate with the team to finalize the "Welcome to ASTRA" document, ensuring a clear and detailed definition of all degrees offered by Hackney University.
Measurable:
Ensure the "Welcome to ASTRA" document includes all necessary sections, with a thorough explanation of each degree program provided by the university.
Achievable:
Work closely with team members to gather feedback, ensure alignment, and address any input needed to finalize the document.
Relevant:
This task supports the broader goal of developing clear, comprehensive documentation for ASTRA, enhancing understanding and engagement for prospective students and stakeholders.
Time-bound:
All tasks, including the completion of the "Welcome to ASTRA" document and the degree definitions, will be finalized by the end of the day.

Specific:
Collaborate with the team to finalize the "Welcome to ASTRA" document, ensuring a clear and detailed definition of all degrees offered by Hackney University.
Measurable:
Ensure the "Welcome to ASTRA" document includes all necessary sections, with a thorough explanation of each degree program provided by the university.
Achievable:
Work closely with team members to gather feedback, ensure alignment, and address any input needed to finalize the document.
Relevant:
This task supports the broader goal of developing clear, comprehensive documentation for ASTRA, enhancing understanding and engagement for prospective students and stakeholders.
Time-bound:
All tasks, including the completion of the "Welcome to ASTRA" document and the degree definitions, will be finalized by the end of the day.

Specific: Merge the ASTRA Welcome Document with the ASTRA Degrees Introduction and review the Harvard University Admissions Booklet.
Measurable: Successfully create a single, cohesive document and review the admissions booklet by the end of the day.
Achievable: Allocate specific time slots for merging documents and reviewing the booklet to ensure completion.
Relevant: Completing this task will streamline ASTRA documentation and provide a comprehensive welcome document for the team.
Time-bound: I will complete all tasks at the end of day.

Today, I will update the "Welcome to Astra" draft based on Ayesha's introduction. Additionally, I will collaborate with the team to work on other documents. In the remaining time, I will focus on learning about Agile project management.

I will collaborate with my team members to merge the ASTRA Welcome Document with the ASTRA Degrees Introduction and review the Harvard University Admissions Booklet. Completing this task will streamline ASTRA documentation and provide a comprehensive welcome document for the team. Additionally, I will work on obtaining project management certifications and make necessary changes to the document named "ASTRA Degrees."

I will collaborate with my team members to merge the ASTRA Welcome Document with the ASTRA Degrees Introduction and review the Harvard University Admissions Booklet. Completing this task will streamline ASTRA documentation and provide a comprehensive welcome document for the team. Additionally, I will work on obtaining project management certifications and make necessary changes to the document named "ASTRA Degrees."

Today I will work on ASTRA documentation. We will get reviews on document named " Welcome to ASTRA" and update the document according to suggestions. We will also finalize color, slogan, logo and other related things in meeting. I will also complete my project management certification

Specific:
Establish clear communication channels within the team.
Draft the Mission Statement and Ethos for Hackney University.
Collaborate with your team on other assigned tasks.
Focus on completing LinkedIn courses.
Measurable:
Create and implement a communication plan to ensure streamlined team collaboration.
Complete the draft of the Mission Statement and Ethos by the end of the day.
Ensure progress on at least two other team tasks.
Finish at least one module of the LinkedIn course.
Achievable:
Work with the team to set up effective communication platforms (e.g., Slack, email protocols).
Gather input and feedback from the team to finalize the Mission Statement and Ethos.
Allocate focused time to make significant progress on both the team tasks and LinkedIn learning.
Relevant:
Establishing clear communication and drafting the Mission Statement and Ethos are crucial steps for Hackney University's development.
Enhancing project management skills through LinkedIn courses aligns with your long-term professional goals.
Time-bound:
All tasks will be completed by the end of the day.

Today, I will work with my team on ASTRA program. I am going to read the paperwork thoroughly and then, I will research about it and review it.  Additionally, I will communicate effectively with the team to ensure seamless project execution and achieve our goals.

Specific: I will work with my team on the ASTRA program by thoroughly reading the paperwork, researching, and reviewing it.
Measurable: I will allocate 90% of my time to reading, researching, and reviewing, and 10% to obtaining relevant certificates.
Achievable: I will ensure I have all necessary resources and access to information to complete these tasks effectively.
Relevant: This task is crucial for the success of the ASTRA program and my professional development.
Time-bound: I will complete all tasks at the end of day.

Specific:
Collaborate with the team to finalize the "Welcome to ASTRA" document, ensuring a clear and detailed definition of all degrees offered by Hackney University.
Measurable:
Ensure the "Welcome to ASTRA" document includes all necessary sections, with a thorough explanation of each degree program provided by the university.
Achievable:
Work closely with team members to gather feedback, ensure alignment, and address any input needed to finalize the document.
Relevant:
This task supports the broader goal of developing clear, comprehensive documentation for ASTRA, enhancing understanding and engagement for prospective students and stakeholders.
Time-bound:
All tasks, including the completion of the "Welcome to ASTRA" document and the degree definitions, will be finalized by the end of the day.

Today we will finalize the document named "Welcome to ASTRA". To create a comprehensive "Welcome to ASTRA" document, firstly, we will provide an overview of the university, highlighting its mission, vision, and values. Next, we will include detailed descriptions of each degree program offered at ASTRA. Each program should clearly outline the key areas of study, learning outcomes, and potential career paths. We will also finalize color, slogan, logo and other related things in meeting. I will also complete my project management certification

Specific: I will collaborate with my team to thoroughly review the ASTRA program paperwork, conducting detailed research and analysis to ensure accuracy and completeness.
Measurable: I will dedicate 90% of my time to reading, researching, and reviewing documents, and 10% to acquiring any necessary certifications.
Achievable: I will secure all the required resources and ensure access to relevant information to complete these tasks efficiently.
Relevant: This effort is vital to the success of the ASTRA program and aligns with my professional growth goals.
Time-bound: I will finalize all tasks by the end of the day.


examples: Fix healthcheck recipe

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

cc @eitansuez

thanks for cc'ing me.  it helps me learn how this is all put together.  i sensed that the envoy admin port would need to be parameterized.

i need to check why but for some reason CI is not running on the necessary PRs - so wasnt possible to spot until it landed on main
ill hopefully add a fix for that to this PR tomorrow

triggered correctly this time https://github.com/envoyproxy/envoy/actions/runs/5969230566/job/16194697214

thinking further - main/PRs are broken now so ill push this through once its passing, and follow up

argg - it wont get tested again - the issue i mentioned
env.outputs['changed.examplesOnly']: true

pushing through


i18n(zh-cn): Update api-reference.mdx

Description (required)
Update api-reference.mdx
Related issues & labels (optional)

#8569
#8751
Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

zh-cn
reference/api-reference.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


running dolos inside docker container

Hi, we have a docker compose file to run dolos inside the container. Container shows below logs while starting. kindly suggest what needs to done to start the daemon.
2024-04-25T02:40:45.049600Z ERROR stage{stage="pull"}:execute: gasket::framework: x=error sending work unit through output port
2024-04-25T02:40:45.049640Z ERROR stage{stage="pull"}: gasket::runtime: stage should stop retry=Retry(None)
version: '3.7'
services:
dolos:
image: emurgornd/dolos:latest
volumes:
- sync_preprod:/etc/dolos
deploy:
restart_policy:
condition: on-failure
placement:
constraints:
- node.hostname == ***************
ports:
  - 50051:50051
  - 30013:30013
  - 50052:50052

hi @NanuIjaz, I'm not familiar with the docker image emurgornd/dolos:latest. Could you try with the docker image shown in our documentation?
https://dolos.txpipe.io/
If not, please explain how that image is being built and also include a longer log trace (previous logs). We'll do our best to help you

Closing for lack of activity. For reference, these are the latest docs on how to use Dolos docker image.


CommandBox: Reset style class upon keypress #529

Fixes #529

v1
@Zhiyuan-Amos submitted v1 for review.

[v1 1/1] CommandBox: Reset style class upon keypress

(:books: Archive)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/1/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

There was a discussion about the Enter key triggering both handleKeyPress(KeyEvent) handleCommandInputChanged().
Resolution was to remove the @FXML for ``handleCommandInputChanged()and remove theonActionattribute inCommandBox.fxml. We will manually handle the Enterkey inhandleKeyPress(KeyEvent)`.
This will have to be in a separate commit.

v2
@Zhiyuan-Amos submitted v2 for review.

[v2 1/4] CommandBox: Reset style class upon keypress
[v2 2/4] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()
[v2 3/4] CommandBox.fxml: Remove onAction attribute
[v2 4/4] Rename handleCommandInputChanged() to executeUserInput()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v1 and v2)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/2/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

v3
@Zhiyuan-Amos submitted v3 for review.

[v3 1/4] CommandBox: Reset style class upon keypress
[v3 2/4] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()
[v3 3/4] CommandBox.fxml: Remove onAction attribute
[v3 4/4] Rename handleCommandInputChanged() to executeUserInput()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v2 and v3)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/3/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

Let’s update the name of this method to reflect this behaviour.

This was not added in the new iteration. :tangerine:

v4
@Zhiyuan-Amos submitted v4 for review.

[v4 1/4] CommandBox: Reset style class upon keypress
[v4 2/4] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()
[v4 3/4] CommandBox.fxml: Remove onAction attribute
[v4 4/4] Rename handleCommandInputChanged() to executeUserInput()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v3 and v4)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/4/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

v5
@Zhiyuan-Amos submitted v5 for review.

[v5 1/2] CommandBox: Reset style class upon editing text
[v5 2/2] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v4 and v5)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/5/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

v6
@Zhiyuan-Amos submitted v6 for review.

[v6 1/2] CommandBox: Reset style class upon editing text
[v6 2/2] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v5 and v6)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/6/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

You should note somewhere which keys will reset the style and which keys won't. Maybe in the comments or user guide or something? @yamgent thoughts?

This is an aesthetic feature so putting it in the user guide would be weird.
commandTextField.textProperty().addListener((foo, bar, baz) -> setStyleToIndicateCommandSuccess());

This line is actually responsible for the resetting of the style. It does not really look intuitive at first glance (textProperty().addListener() means to monitor when the text has changed), so if comments are warranted, I don't mind adding one in.

v7
@Zhiyuan-Amos submitted v7 for review.

[v7 1/2] CommandBox: Reset style class upon editing text
[v7 2/2] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v6 and v7)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/7/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

v8
@Zhiyuan-Amos submitted v8 for review.

[v8 1/2] CommandBox: Reset style class upon editing text
[v8 2/2] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v7 and v8)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/8/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

LOL oh shucks thanks.

v9
@Zhiyuan-Amos submitted v9 for review.

[v9 1/2] CommandBox: Reset style class upon editing text
[v9 2/2] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v8 and v9)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/9/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

v10
@Zhiyuan-Amos submitted v10 for review.

[v10 1/2] CommandBox: Reset style class upon editing text
[v10 2/2] Rename setStyleToIndicateCommandSuccess() to setStyleToDefault()

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v9 and v10)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/530/10/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you wish to fetch this PR to.

@yamgent to merge? :>


PM Parsing Sends Superfluous Call to ADN API Requesting Own Data Continuously

Something in a previous update has resulted in the getUserList() function always collecting just the logged-in account's information again and again and again and again. This is insanely wasteful. Kill it. Fix it. Stop it.

Done and done.  This also resolves some of the problems with getting account names from channels from the API.  Closing ticket.


Deprecate RequestStub#then

I believe it's useless
https://github.com/bblimke/webmock/blob/63940ac95345968cf435820a62102d913441862c/lib/webmock/request_stub.rb#L94-L96
and it conflicts with the new Ruby method #then. I've just got caught on it here:
p( stub_request(mtd, url).then do |_|
  with_any_query ? _.with(query: hash_including({})) : _
end ).to_return ...

Workaround:
WebMock::RequestStub.remove_method :then

@Nakilon thank you for reporting.
The inclusion of then was intended to enhance readability by providing syntactic sugar for stub declaration, as demonstrated in this example. However, I acknowledge that its presence in Object leads to confusion now.
To address this, I am considering the addition of and_then, accompanied by a deprecation notice for then, followed by the release of a new minor version 3.x. Subsequently, we can proceed with the removal of then in WebMock 4.0.x.
I would appreciate your thoughts on this approach.


Add a launchTestNode test helper for contract deployment

The pattern of deploying one contract pops up so much that I think we should create a test helper function that we and our users can use:
// packages/contract/src/test-utils/launch-test-contract.ts
import { launchTestNode, type DeployContractConfig } from './launch-test-node';

export async function launchTestContract<T extends DeployContractConfig>(config: T) {
  const {
    cleanup,
    contracts: [contract],
  } = await launchTestNode({ contractsConfigs: [config] });

  return Object.assign(contract, { [Symbol.dispose]: cleanup });
}

The usage would be:
using contract = await launchTestContract({
    factory: ReturnContextFactory,
});

const provider = contract.provider;

There are also plans to later simplify the DeployContractConfig so that you can pass the factory like this:
using contract = await launchTestContract(ReturnContextFactory)

Originally posted by @nedsalk in https://github.com/FuelLabs/fuels-ts/pull/2811#discussion_r1715289100
This test helper will need to be documented so that consumers can use it for launching single contracts in testing easily.

@nedsalk does the following PR address this issue?

I'm not sure about this now because people might then start doing the below, which'd just start two separate nodes while they actually want to deploy two contracts on the same node:
using contract1 = launchTestContract(CF1);
using contract2 = launchTestContract(CF2);

However, we can possibly add a snippet in the launchTestNode documentation which would contain instructions on how to create a helper of one's own. It'd essentially be the first code block in this issue's description. This might be nice because I think that people generally aren't familiar with the using keyword and how to write code that takes advantage of it.


How to navigate to other composable function with new tab in compose web?

I do not figure out how to create multiple pages and navigate from one to another. Help me with that.

There are a couple of options to do navigation and/or state management. Look for the following projects in github

Decompose
Ballast

I am working on one setup too. I need help with it so anyone welcome to participate.
https://github.com/pablichjenkov/uistate3

Most likely you will need to setup deep-links in your app, and then just open a link in a new tab. The way you setup deep-links depends on what navigation library you are using, if any. routing-compose should work pretty well for Compose for Web.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


NotificationService.subscribe fails to return existing listener on same regex

Describe the bug
When trying to reproduce the following issue: https://github.com/atsign-foundation/at_client_sdk/issues/661, Found that the notification service-> subscribe method fails to return the existing listener when already present. Instead creates a new StreamController.
The root cause of the issue is we are check on String (regex) instead of comparing on the NotificationConfig object. Below is the code snippet.
if (_streamListeners.containsKey(regex)) {

Fix:
Modify the streamListeners from Map to HashMap and overrides the equal and hashcode methods to compare the NotificationConfig Object.

Assigning 0SP because of the effort of this is accounted in the following git issue: https://github.com/atsign-foundation/at_client_sdk/issues/661

Tested atMosphere_pro app with the "fix_multiple_notification_issue", Now the notification is being received only once.
response => AtNotification{id: 6fab06b5-9730-489c-a6cb-5fc6ee693e7a, key: @judicialabseiling:file_transfer_ac11698b-45e7-421c-8bd5-d19b66f839e6.mospherepro@jittery5justfriends, from: @jittery5justfriends, to: @judicialabseiling, epochMillis:<PHONE_NUMBER>285, value: {"transferId":"file_transfer_ac11698b-45e7-421c-8bd5-d19b66f839e6","fileEncryptionKey":"72/H3SQZalzffS92hNrgeMvpgRNuzsThoocWi9ZLWBg=","fileUrl":"https://ck6agzxiog6kmb.atsign.com/archive/file_transfer_ac11698b-45e7-421c-8bd5-d19b66f839e6/zip","sharedWith":"@judicialabseiling","sharedStatus":null,"fileStatus":[{"fileName":"IMG-20220213-WA0110.jpg","isUploaded":true,"size":436646,"error":null}],"date":"2022-09-05 07:31:12.793691Z","error":null,"notes":null}, operation: update}
2nd time
I/flutter ( 8039): response => AtNotification{id: 13369f8d-98ed-4ad4-9ed7-96050305d7a9, key: @judicialabseiling:file_transfer_210a2955-54e1-4b9e-9706-f8ed7126da9b.mospherepro@27salty, from: @27salty, to: @judicialabseiling, epochMillis:<PHONE_NUMBER>828, value: {"transferId":"file_transfer_210a2955-54e1-4b9e-9706-f8ed7126da9b","fileEncryptionKey":"5S2XKeweKxuViJX1Nl9AZJjRb7NZd9iQ8CqQNW65ys0=","fileUrl":"https://ck6agzxiog6kmb.atsign.com/archive/file_transfer_210a2955-54e1-4b9e-9706-f8ed7126da9b/zip","sharedWith":"@judicialabseiling","sharedStatus":null,"fileStatus":[{"fileName":"20191227_144152.jpg","isUploaded":true,"size":3120893,"error":null}],"date":"2022-09-05 07:45:59.369107Z","error":null,"notes":"lotus with buddha"}, operation: update}


Handle unapply in for-comprehensions.

Fixes #179

@puffnfresh Could you please make a release with this change in? Thanks!

It seems like some people (myself included) merged into latest-release instead of master so that'll need to get worked out before cutting a new release but I also would appreciate a new release.

I have a similar situation in https://github.com/puffnfresh/wartremover/pull/186

@folone 0.14 is released!

@puffnfresh Perfect, thanks!

Thanks, @puffnfresh!


Multisig mint with offline signing does not work

Problem
I am trying to setup multisig minting as per https://spl.solana.com/token#example-offline-signing-with-multisig. However, following the steps exactly leads to an eventual presigner error upon executing the final mint call with the --signer <...> entries added.
On the other hand, specifying all the keys immediately seems to work well, as per:
spl-token mint 4VNVRJetwapjwYU8jf4qPgaCeD76wyz8DuNj8yMCQ62o 1 EX8zyi2ZQUuoYtXd4MKmyHYLTjqFdWeuoTHcsTdJcKHC \
--owner 46ed77fd4WTN144q62BwjU2B3ogX3Xmmc8PT5Z3Xc2re \
--multisig-signer keypair1.json\
--multisig-signer keypair2.json \
--blockhash 6DPt2TfFBG7sR4Hqu16fbMXPj8ddHKkbU4Y3EEEWrC2E \
--fee-payer hotwallet.json \
--nonce Fjyud2VXixk2vCs4DkBpfpsq48d81rbEzh6deKt7WvPj \
--nonce-authority hotwallet.json

Proposed Solution
A similar problem was discussed in #1805 regarding the transfer function. It seems that the flag --recipient-is-ata-owner helps for that case; but is not present for mint. Perhaps the logic that goes through transfer when specifying --recipient-is-ata-owner needs to be ported over to mint.

It turns out that I had specified --mint-decimals 8 instead of --mint-decimals 9. Fixing this works. Sorry for the spam.


How to display vehicle bounding boxes on the RGB frames in CARLA_0.9.2?

Hi
How to display vehicle bounding boxes on the RGB frames in CARLA_0.9.2?
I find this example for the older version.
Similar example for 0.9.2 would be very useful!!
Thanks

Hi @alex5528, did you able to make it work? If yes, please share it here.


Upgrade to vert.x 3.7.0

done, conflict in TrustAndKeyProvider due to clashes in the new copy() method set to replace clone().
waiting for test build 97b1a9327f686d43d7c0552175d3ecd39e97fa59

Build passed. Woooohooo.


Styled with Colorama and f-strings

Since you helped me out, figured I'd share my mod.
Used colorama, pathlib and f-strings to display the output cleaner, and added number padding to the downloads. Might be a bit tacky with the emojis, but just in case anyone wants it. Some symbols might not display on github. Preview images below. Apologies if it isn't perfect, but I'm no pro, did this fast, and didn't check all the error messages.
Was going to add the search phrase but too busy. Should be easy to add.
This has only been tested on macOS Big Sur. ANSI blue displays purple on Mojave for me, so you may want to change that if it looks ugly, but I'm only running this on my laptop, so the blue looks fine.
preview

bing.py
try:
    from util import get_file_name, rename, make_image_dir, download_image
except ImportError:  # Python 3
    from .util import get_file_name, rename, make_image_dir, download_image
try:
    from crawler import crawl_image_urls
except ImportError:  # Python 3
    from .crawler import crawl_image_urls
from typing import List
from multiprocessing.pool import ThreadPool
from time import time as timer
import os
import math
import pathlib
from colorama import init, Fore, Style
init(autoreset=True)

print(Fore.RED + r'''
    ██████  ██ ███    ██  ██████        ██ ███    ███  █████   ██████  ███████ ███████
    ██   ██ ██ ████   ██ ██             ██ ████  ████ ██   ██ ██       ██      ██
    ██████  ██ ██ ██  ██ ██   ███ █████ ██ ██ ████ ██ ███████ ██   ███ █████   ███████
    ██   ██ ██ ██  ██ ██ ██    ██       ██ ██  ██  ██ ██   ██ ██    ██ ██           ██
    ██████  ██ ██   ████  ██████        ██ ██      ██ ██   ██  ██████  ███████ ███████ ''' + Style.DIM + '''
    //////// ''' + Style.NORMAL + '''Automated, Multithreaded Chrome URL Fetcher and Image Downloader''' + Style.DIM +''' ////////''' + Fore.WHITE + '''

    https://github.com/CatchZeng/bing_images
''')

_FINISH = False

def fetch_image_urls(
    query: str,
    limit: int = 20,
    file_type: str = '',
    filters: str = ''
) -> List[str]:
    result = list()
    keywords = query
    if len(file_type) > 0:
        keywords = query + " " + file_type
    urls = crawl_image_urls(keywords, filters, limit)
    for url in urls:
        if isValidURL(url, file_type) and url not in result:
            result.append(url)
            if len(result) >= limit:
                break
    return result

def isValidURL(url, file_type):
    if len(file_type) < 1:
        return True
    return url.endswith(file_type)

def download_images(
    query: str,
    limit: int = 20,
    output_dir='',
    pool_size: int = 20,
    file_type: str = '',
    filters: str = '',
    force_replace=False
):
    start = timer()
    image_dir = make_image_dir(output_dir, force_replace)
    print(f"📁 Save path: {Fore.BLUE}{image_dir}")

    # Fetch more image URLs to avoid some images are invalid.
    max_number = math.ceil(limit*1.5)
    urls = fetch_image_urls(query, max_number, file_type, filters)
    entries = get_image_entries(urls, image_dir)

    print(f"⬇  Downloading images\n")
    ps = pool_size
    if limit < pool_size:
        ps = limit
    download_image_entries(entries, ps, limit)

    rename_images(image_dir, query)

    print(f"✅ {Fore.GREEN}Done\n")
    elapsed = timer() - start
    print(f"⏱  {Fore.WHITE}Elapsed time: {Fore.RED}%.2fs\n" % elapsed)

def rename_images(dir, prefix):
    files = os.listdir(dir)
    index = 1
    print(f"📝  {Fore.BLUE}Renaming images{Fore.LIGHTBLACK_EX}...")
    for f in files:
        if f.startswith("."):
            print(f"{Fore.YELLOW}Escaping name of {f}{Fore.LIGHTBLACK_EX}...\n")
            continue
        src = os.path.join(dir, f)
        name = rename(f, index, prefix)
        dst = os.path.join(dir, name)
        os.rename(src, dst)
        index = index + 1
    print(f"{Fore.GREEN}    Finished renaming 👍\n")

def download_image_entries(entries, pool_size, limit):
    global _FINISH
    counter = 1
    _FINISH = False
    pool = ThreadPool(pool_size)
    results = pool.imap_unordered(
        download_image_with_thread, entries)
    for (url, result) in results:
        if counter > limit:
            _FINISH = True
            pool.terminate()
            break
        if result:
            urldir = pathlib.PurePath(url)
            urlp = urldir.parents[0]
            print(f"{Fore.YELLOW}   #{str(format(counter, '03'))}{Fore.LIGHTBLACK_EX}: {Fore.LIGHTBLACK_EX}{urlp}/{Fore.WHITE}{urldir.name}\n\t {Fore.GREEN}Downloaded! \n")
            counter = counter + 1

def get_image_entries(urls, dir):
    entries = []
    i = 0
    for url in urls:
        name = get_file_name(url, i, "#tmp#")
        path = os.path.join(dir, name)
        entries.append((url, path))
        i = i + 1
    return entries

def download_image_with_thread(entry):
    if _FINISH:
        return
    url, path = entry
    result = download_image(url, path)
    return (url, result)

if __name__ == '__main__':
    download_images("cat",
                    20,
                    output_dir="/Users/catchzeng/Desktop/cat",
                    pool_size=10,
                    file_type="png",
                    force_replace=True)

util.py
import requests
import shutil
import posixpath
import urllib
import os
from colorama import init, Fore, Style
init(autoreset=True)

DEFAULT_OUTPUT_DIR = "bing-images"

def download_image(url, path) -> bool:
    try:
        r = requests.get(url, stream=True)
        if r.status_code == 200:
            with open(path, 'wb') as f:
                r.raw.decode_content = True
                shutil.copyfileobj(r.raw, f)
            return True
        else:
            print(f"{Fore.RED}      ⚠  Download image: {Fore.YELLOW}{url}\n{Fore.RED}         Err :: {Fore.WHITE}{r.status_code}\n")
            return False
    except Exception as e:
        print(f"{Fore.RED}      ⚠  Download image: {Fore.YELLOW}{url}{Fore.RED}\n         Err :: {Fore.WHITE}{e}\n")
        return False

def get_file_name(url, index, prefix='image') -> str:
    try:
        path = urllib.parse.urlsplit(url).path
        filename = posixpath.basename(path).split('?')[0]
        type, _ = file_data(filename)
        result = "{}_{}.{}".format(prefix, index, type)
        return result
    except Exception as e:
        print(f"⚠  {Fore.RED}Get file name: {Fore.YELLOW}{url}{Fore.RED}\n   Err :: {Fore.WHITE}{e}\n")
        return prefix

def rename(name, index, prefix='image') -> str:
    try:
        type, _ = file_data(name)
        result = "{}_{}.{}".format(prefix, index, type)
        return result
    except Exception as e:
        print(f"{Fore.RED}⚠  Rename: {Fore.YELLOW}{name}{Fore.RED}\n   Err :: {Fore.WHITE}{e}\n")
        return prefix

def file_data(name):
    try:
        type = name.split(".")[-1]
        name = name.split(".")[0]
        if type.lower() not in ["jpe", "jpeg", "jfif", "exif", "tiff", "gif", "bmp", "png", "webp", "jpg"]:
            type = "jpg"
        return (type, name)
    except Exception as e:
        print(f"{Fore.RED}⚠  Issue getting: {Fore.YELLOW}{name}{Fore.RED}\n    Err :: {Fore.WHITE}{e}\n")
        return (name, "jpg")

def make_image_dir(output_dir, force_replace=False) -> str:
    image_dir = output_dir
    if len(output_dir) < 1:
        image_dir = os.path.join(os.getcwd(), DEFAULT_OUTPUT_DIR)

    if force_replace:
        if os.path.isdir(image_dir):
            shutil.rmtree(image_dir)
    try:
        if not os.path.isdir(image_dir):
            os.makedirs(image_dir)
    except:
        pass

    return image_dir

if __name__ == '__main__':
    print("util")

crawler.py
from urllib.parse import quote
import shutil
from selenium import webdriver
import time
import json
from colorama import init, Fore, Style
init(autoreset=True)

BASE_URL = "https://www.bing.com/images/search?"

def gen_query_url(keywords, filters):
    keywords_str = "&q=" + quote(keywords)
    query_url = BASE_URL + keywords_str
    if len(filters) > 0:
        query_url += "&qft="+filters
    return query_url

def image_url_from_webpage(driver, max_number=10000):
    image_urls = list()

    time.sleep(10)
    img_count = 0

    while True:
        image_elements = driver.find_elements_by_class_name("iusc")
        if len(image_elements) > max_number:
            break
        if len(image_elements) > img_count:
            img_count = len(image_elements)
            driver.execute_script(
                "window.scrollTo(0, document.body.scrollHeight);")
        else:
            smb = driver.find_elements_by_class_name("btn_seemore")
            if len(smb) > 0 and smb[0].is_displayed():
                smb[0].click()
            else:
                break
        time.sleep(3)
    for image_element in image_elements:
        m_json_str = image_element.get_attribute("m")
        m_json = json.loads(m_json_str)
        image_urls.append(m_json["murl"])
    return image_urls

def crawl_image_urls(keywords, filters, max_number=10000, proxy=None, proxy_type="http"):
    chrome_path = shutil.which("chromedriver")
    chrome_path = "./bin/chromedriver" if chrome_path is None else chrome_path
    chrome_options = webdriver.ChromeOptions()
    if proxy is not None and proxy_type is not None:
        chrome_options.add_argument(
            "--proxy-server={}://{}".format(proxy_type, proxy))
    driver = webdriver.Chrome(chrome_path, chrome_options=chrome_options)

    query_url = gen_query_url(keywords, filters)
    driver.set_window_size(1920, 1080)
    driver.get(query_url)
    image_urls = image_url_from_webpage(driver, max_number)
    driver.close()

    if max_number > len(image_urls):
        output_num = len(image_urls)
    else:
        output_num = max_number

    print(f"{Fore.YELLOW}\n🕷  Crawled {Fore.RED}{len(image_urls)}{Fore.YELLOW} image urls.\n")

    return image_urls[0:output_num]

if __name__ == '__main__':
    images = crawl_image_urls(
        "mbot png", "+filterui:aspect-square", max_number=10)
    for i in images:
        print(f"{Fore.BLUE}{i}+\n")

So cool! I will consider it when I am not so busy.

thanks. You don't have to add it to the main branch if you don't want. Was adding it for whoever.
If you do, maybe just tack on a link to my page or add styled by [k] Keygen Ltd LLC. If you don't want it there, just take it out. Either way, doesn't matter. Useful tool.


Update docs to latest from STAGING repo

This includes clean-up for unused image resources and localization errors, as well as logic error in staging script.

Merging now.


iOS non-QR code type fix

Set the UiScannerView to use the passed types CodeType variable along with making the "CodeType.toFormat" function public.
It looks like the default UiScannerView was being instantiated without referencing the user passed types, and only the QR code type.
I wasn't able to compile to mavenLocal and I didn't find an easily runnable iOS sample app to test, so this is untested. Feel free to make any modifications or let me know if I missed something.

Closes #9


Update airframe-log to 23.8.0

About this PR
📦 Updates org.wvlet.airframe:airframe-log from 23.3.4 to 23.8.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.wvlet.airframe", artifactId = "airframe-log" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.wvlet.airframe", artifactId = "airframe-log" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #731.


Export createUseQueryOptions and createUseInfiniteQueryOptions from the library

First off, thank you for all the work you've put into this package!
I would like to propose some use cases for createUseQueryOptions and createUseInfiniteQueryOptions as a continuation of the conversation from https://github.com/connectrpc/connect-query-es/issues/296.
// fetching a list of suspense queries
const suspenseQueries = useSuspenseQueries({
  queries: userIds.map((userId) =>
    createUseQueryOptions(getUser, { userId }, { transport })
  ),
});

// fetching a list of standard queries
const queries = useQueries({
  queries: userIds.map((userId) =>
    createUseQueryOptions(getUser, { userId }, { transport })
  ),
});

// ensuring a query is loaded
await queryClient.ensureQueryData(
  createUseQueryOptions(getUser, { userId: 1 }, { transport })
);

// prefetching a query
queryClient.prefetchQuery(
  createUseQueryOptions(getUser, { userId: 1 }, { transport })
);

So far I do not have a use case for createUseInfiniteQueryOptions but other people may need createUseInfiniteQueryOptions for these same use cases, specifically prefetching and ensuring a query is loaded.
I can use createConnectQueryKey and callUnaryMethod to build my own createUseQueryOptions but once I've made that code typesafe and reusable its basically a copy of the internal methods.

Let's keep the conversation within the original issue of #296 to keep things focused. It may turn out to make sense to expose these APIs but I'd like to keep the discussion in one place.

After further discussions with the team, we've decided to reexport createQueryOptions and createInfiniteQueryOptions. I feel like we'll definitely want a more opinionated useQueries and other APIs but if this unblocks users, then it's valuable. It'll be available in the next release.

thank you - I had rewritten both in my project. Really appreciate it and looking forward to the more opinionated APIs when they are available!


[App]: Artifacts seem to be unavailable after moving a run to a new project and deleting the old one

Current Behavior
I moved two runs to an already existing project and deleted the old project. Afterwards, the artifacts logged for these runs still appear in the Web UI but do not seem to be actually present. Cicking on an artifact in the Web UI results in 404 Error page.
Trying to donwload them via the python library using wandb.use_artifact results in a wandb.errors.CommError: Permission denied Error.
Expected Behavior
I would expect artifacts of moved runs to be available via the new project.
Steps To Reproduce

Move a run to a different project.
Access its artifacts via the Web UI / python library.
404/ Permission Denied

Screenshots
No response
Environment
OS: macOS Ventura 13.4.1 (c) (22F770820d)
Browsers: Firefox
Version: 0.15.7
Additional Context
No response

Hi @TreeMage thanks for reporting this issue, and sorry to hear about it. This happened because we won't move the underlying artifacts when moving the run to a new project. Could you please go to the project's overview page, and click undelete runs? how many days ago did you delete that?
If you wanted to move the artifacts too, you could use our importer tool (please note it currently only works with wandb 0.15.6). Please see below a code example on its usage:
!pip install wandb==0.15.6 polars tqdm
And then run the following code snippet:
wandb.login()

from wandb.apis.importers import WandbParquetImporter

importer = WandbParquetImporter(
    src_base_url="https://api.wandb.ai/",
    src_api_key="your-wandbai-key",
    dst_base_url="https://api.wandb.ai/",
    dst_api_key="your-wandbai-key",
)

src_entity='entity-original'
dst_entity='entity-destination'
src_project='project-original'
dst_project='project-destination'

importer.import_all_runs(
    src_entity,
    src_project,
    overrides={
        'entity': dst_entity,
        'project': dst_project
    }
)```

Hey @thanos-wandb, thanks for the quick reply. I think I deleted the project a while ago so undelete probably won't work, but I'll give the import solution a try! I find this behavior rather counterintuitive (especially the fact that the artifacts still show up in the web UI and produce a permission denied error during a download attempt).
Maybe this should be changed/documented?
Anyways, thank you for the quick support and feel free to close this issue :)

Thank you @TreeMage for the feedback. I will make a Docs update request, as I agree it isn't intuitive for our users. I will close this ticket now but please feel free to reach out had you have any other questions :)