TransformSpec using Pandas causes incompatibilities with other libraries for make_batch_reader

Hey guys, I'm trying to create a compatibility interface between Petastorm and a few PyTorch based libraries (PyTorch Lightning, Hugging Face Transformers and AllenNLP) which I'm trying to use in a project. So far I've managed to get PyTorch Lightning working (pretty much research oriented Keras), but a few design choices within Petastorm seem to prevent usage with the NLP libraries.
My problem is that TransformSpec requires input and output as Pandas DataFrame's. This at first may seem decent, but commonplace NLP libraries like Hugging Face Transformers tokenize lists of strings (this transformation is easy) and directly output tensors. These tensors aren't flat, so they can't be converted to Pandas, meaning that processing textual data (despite being fairly straight forward) seems nearly impossible with Petastorm's built in data loaders.
I've been working on this for a week and these are the methods to mitigate the problem:

Modifying Petastorm's existing TransformSpec/PyTorch DataLoader/PyArrow classes
Creating iterable PyTorch data loaders which just loop through the Reader object

I've been trying to interpret how I'd do the first option (through debug the code), however it looks extremely complicated and (I think) it would require modifying a number of classes (what modifications are needed still elude me). On the other hand, looping through a Reader seems reasonable as we can still read in strings. But, would doing this forfeit any optimisations/performance boosting code from Petastorm's loader (although shouldn't these be in Reader)?
So, would anyone be able to provide some advice on what you believe to be the best approach/course of action (or just what might have to be coded/modified)?
Thanks so much for in advance!

Hi @KamWithK : thank you for sharing the usecase. Pretty interesting.
Looping through reader would make your code run on the main pytorch process. If processing is non trivial then we would loose benefits of thread/process pools provided by petastorm.
Can you please give an example of such 'not flat' tensor? Are you getting back ragged/jagged tensors? Or list of torch tensors? Or something else? A small code snippet demonstrating these types could help.
One workaround that could be used to represent a list of variable size arrays could be to use two tensors: one with data and another one with index into this data. For example, to represent:
ragged_data = [["a", "bc"], ["d"]]

one could use:
data = ["a", "ab", "d"]
data_index = [
  [0, 2],
  [2, 3]
]

Recovering the data from these two tensors would be:
ragged_data[i] == data[data_index[i, 0]:data_index[i, 1]]

Hi @KamWithK : thank you for sharing the usecase. Pretty interesting.
Looping through reader would make your code run on the main pytorch process. If processing is non trivial then we would loose benefits of thread/process pools provided by petastorm.
Can you please give an example of such 'not flat' tensor? Are you getting back ragged/jagged tensors? Or list of torch tensors? Or something else? A small code snippet demonstrating these types could help.
One workaround that could be used to represent a list of variable size arrays could be to use two tensors: one with data and another one with index into this data. For example, to represent:
ragged_data = [["a", "bc"], ["d"]]

one could use:
data = ["a", "ab", "d"]
data_index = [
  [0, 2],
  [2, 3]
]

Recovering the data from these two tensors would be:
ragged_data[i] == data[data_index[i, 0]:data_index[i, 1]]

Hey, thanks for the feedback. Here's a small code snippet which illustrates what the output of simple tokenization (using Hugging Face Transformers) looks like:
>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> tokenizer(["this is a cat", "pigs go oink", "shoot", "yip yip yippy aaeyya"], padding=True, truncation=True, return_tensors="pt")
{'input_ids': tensor([[  101,  1142,  1110,   170,  5855,   102,     0,     0,     0,     0,
             0,     0],
        [  101, 18348,  1301,   184, 10223,   102,     0,     0,     0,     0,
             0,     0],
        [  101,  5211,   102,     0,     0,     0,     0,     0,     0,     0,
             0,     0],
        [  101,   194,  9717,   194,  9717,   194,  9717,  5005,   170,  5024,
         22549,   102]]), 'token_type_ids': tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
        [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}

Would it be possible to add the tokenization function as a collation function (I of course would modify the _sanitize_pytorch_types function)? Do you think that'd work?

By the way, your idea of adding extra lists to represent indices might work, but it would add extra conversion complexity (which I feel is unnecessary). I'd rather modify Petastorm's data loader class or create my own (with thread/process pool support). From what I see the actual code for threads and process pools isn't actually part of the data loader though (just used by it), so shouldn't it be possible to just use those in my own data loaders (there shouldn't be anything inherently anti-string/anti-text in these right)?

Okay, so I tried inheriting from Petastorm's data loader and overwriting the sanitize check (kept everything the same apart from the string check, which I of course removed). It seems to run but only feeds one example at a time into the model (meaning the tokenisation is pretty slow, as it runs best on batches). Any reason why this would happen (I'm pretty sure I didn't change anything else)?

Okay, so I finally managed to get it to work half-decently with Transformers (although not AllenNLP yet I may need to rewrite the Petastorm's data loader for it). In the end, I added in the following code just after row_as_dict = row._asdict() in the _iter_impl function (within Petastorm's PyTorch DataLoader):
row_as_dict.update(safe_string_tokenizer(row_as_dict[self.string_column]))
del row_as_dict[self.string_column]

This isn't perfect, but it does work decently. I'll fork and modify this in the Petastorm source code (I'll just add in a new argument called "preparse" which would be a function) as it may be useful for others later on (otherwise I'll just create my own library with a bunch of these data loaders).

There is a longer term solution that might be better (but requires a significant effort) which is to start using pytorch.util.data.DataLoader for parallelization instead of petastorm's custom Thread/ProcessPool. That way we would fit more natively into pytorch eco-system and these kind of operations would be more natural.
As for your solution, is it different from the one you originally considered:

Creating iterable PyTorch data loaders which just loop through the Reader object
as all the processing and tokinization is happening on the main process? If yes, then I think the original proposal was preferable as it does not modify petastorm library but part of user code.

@KamWithK, if I'm understanding correctly, you shouldn't need to tokenize "under-the-hood" in a way that requires modifications to petastorm. A pandas.DataFrame allows tensor-valued fields in the form of numpy.ndarray instances, so you just need the above output to be in terms of those, instead of whatever the default is (PyTorch tensors?). It looks like transformers.BatchEncoding takes a tensor_type argument, and PreTrainedTokenizer.call takes a return_tensors to pass along to that implementation. Can you try adding return_tensors='np' to your tokenizer invocation and try to build a pandas.DataFrame this way?
import numpy as np
import pandas as pd

rows = [{
    "input_ids": np.array(
        [
            [101, 1142, 1110, 170, 5855, 102, 0, 0, 0, 0, 0, 0],
            [101, 18348, 1301, 184, 10223, 102, 0, 0, 0, 0, 0, 0],
            [101, 5211, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [101, 194, 9717, 194, 9717, 194, 9717, 5005, 170, 5024, 22549, 102],
        ]
    ),
    "token_type_ids": np.array(
        [
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        ]
    ),
    "attention_mask": np.array(
        [
            [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        ]
    ),
}]

tokens_df = pd.DataFrame.from_records(rows)

It looks like the input would be pandas.DataFrame with a single list-of-strings-valued field, if that's the granularity of sample that you wanted to do training on. Let me know if I'm not understanding your problem.

Also, @KamWithK can you please clarify: are using make_batch_reader with BatchDataLoader? If so, what would you expect the datatype to be in the return batch for input_ids, token_type_ids and attention_mask fields?

There is a longer term solution that might be better (but requires a significant effort) which is to start using pytorch.util.data.DataLoader for parallelization instead of petastorm's custom Thread/ProcessPool. That way we would fit more natively into pytorch eco-system and these kind of operations would be more natural.
As for your solution, is it different from the one you originally considered:

Creating iterable PyTorch data loaders which just loop through the Reader object
as all the processing and tokinization is happening on the main process? If yes, then I think the original proposal was preferable as it does not modify petastorm library but part of user code.

Hmm, I'll give this a try now. Shouldn't be too tough to use. Normally you'd just pass in a PyTorch Dataset/IterableDataset with a few options. However, here we're using Petastorm's own Reader object, so not sure whether it'll allow that (I'll check now though). The other problem is that I can't seem to tokenize within the Reader object because of the need to use Pandas DataFrames.

Also, @KamWithK can you please clarify: are using make_batch_reader with BatchDataLoader? If so, what would you expect the datatype to be in the return batch for input_ids, token_type_ids and attention_mask fields?

I'm using Petastorm's DataLoader not BatchDataLoader. Shouldn't make too much of a difference though.
Either way I expect the data loader to yield Torch Tensor's. This ideally would be because of preprocessing done through the Loader, but doing it in the DataLoader like I currently technically does work.

@KamWithK, if I'm understanding correctly, you shouldn't need to tokenize "under-the-hood" in a way that requires modifications to petastorm. A pandas.DataFrame allows tensor-valued fields in the form of numpy.ndarray instances, so you just need the above output to be in terms of those, instead of whatever the default is (PyTorch tensors?). It looks like transformers.BatchEncoding takes a tensor_type argument, and PreTrainedTokenizer.call takes a return_tensors to pass along to that implementation. Can you try adding return_tensors='np' to your tokenizer invocation and try to build a pandas.DataFrame this way?
import numpy as np
import pandas as pd

rows = [{
    "input_ids": np.array(
        [
            [101, 1142, 1110, 170, 5855, 102, 0, 0, 0, 0, 0, 0],
            [101, 18348, 1301, 184, 10223, 102, 0, 0, 0, 0, 0, 0],
            [101, 5211, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [101, 194, 9717, 194, 9717, 194, 9717, 5005, 170, 5024, 22549, 102],
        ]
    ),
    "token_type_ids": np.array(
        [
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        ]
    ),
    "attention_mask": np.array(
        [
            [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        ]
    ),
}]

tokens_df = pd.DataFrame.from_records(rows)

It looks like the input would be pandas.DataFrame with a single list-of-strings-valued field, if that's the granularity of sample that you wanted to do training on. Let me know if I'm not understanding your problem.

Hmm, I've run your code but Pandas interprets those as objects, which the built-in data loader's will raise an error for. Or am I wrong about that?

@KamWithK, if I'm understanding correctly, you shouldn't need to tokenize "under-the-hood" in a way that requires modifications to petastorm. A pandas.DataFrame allows tensor-valued fields in the form of numpy.ndarray instances, so you just need the above output to be in terms of those, instead of whatever the default is (PyTorch tensors?). It looks like transformers.BatchEncoding takes a tensor_type argument, and PreTrainedTokenizer.call takes a return_tensors to pass along to that implementation. Can you try adding return_tensors='np' to your tokenizer invocation and try to build a pandas.DataFrame this way?
import numpy as np
import pandas as pd

rows = [{
    "input_ids": np.array(
        [
            [101, 1142, 1110, 170, 5855, 102, 0, 0, 0, 0, 0, 0],
            [101, 18348, 1301, 184, 10223, 102, 0, 0, 0, 0, 0, 0],
            [101, 5211, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [101, 194, 9717, 194, 9717, 194, 9717, 5005, 170, 5024, 22549, 102],
        ]
    ),
    "token_type_ids": np.array(
        [
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        ]
    ),
    "attention_mask": np.array(
        [
            [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        ]
    ),
}]

tokens_df = pd.DataFrame.from_records(rows)

It looks like the input would be pandas.DataFrame with a single list-of-strings-valued field, if that's the granularity of sample that you wanted to do training on. Let me know if I'm not understanding your problem.

I'm retrying this anyways, but I'm confused as to how you'd go about specifying the edit_fields parameter for the TransformSpec (what dimensions and data type do you specify?). I get the following error:
pyarrow.lib.ArrowInvalid: ('Can only convert 1-dimensional array values', 'Conversion failed for column input_ids with type object')
Here is the code I'm using:
# Tokenised columns replace text based ones
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased", fast=True)
tokenize = lambda rows: pd.concat((rows[[target_column]], pd.DataFrame([tokenizer(rows[text_column].tolist(), padding=True, truncation=True, return_tensors="np").data])))

edit_fields = [("token_type_ids", np.array, (), False), ("attention_mask", np.array, (), False), ("input_ids", np.array, (), False)]
transform_spec = TransformSpec(tokenize, selected_fields=["token_type_ids", "attention_mask", "input_ids", target_column], edit_fields=edit_fields)

There is a longer term solution that might be better (but requires a significant effort) which is to start using pytorch.util.data.DataLoader for parallelization instead of petastorm's custom Thread/ProcessPool. That way we would fit more natively into pytorch eco-system and these kind of operations would be more natural.
As for your solution, is it different from the one you originally considered:

Creating iterable PyTorch data loaders which just loop through the Reader object
as all the processing and tokinization is happening on the main process? If yes, then I think the original proposal was preferable as it does not modify petastorm library but part of user code.

@selitvin one quick way to achieve this would without having to modify or recreate the current Loader would be to simply create a PyTorch iterable dataset which loops through and yields items from Petastorm's Loader. However, according to PyTorch's docs when multiple processes/workers are used each object needs to be manually set up to read different chunks of the data (not sure how to do it here). Another downside is that the Petastorm worker pool/thread pool would still be in use (meaning it'd be quite a surface-level change, so not all too useful).
What really confuses me here though is where in the Reader class the actual file reading happens. There seems to be a large amount of code there for handling cache, worker/thread/process pool (although didn't you say before that these were part of the Petastorm PyTorch DataLoader before?) and row filter/shuffles. Is there a minimum viable example of how you read and iterate through the Parquet files (with multiple workers)?
By the way, I am aware that PyArrow can cause some trouble when using multiple threads or processes (I've read this online). So, what does Petastorm do to get around this (I believe this is what would need to be added into a PyTorch IterableDataset).
By the way here are the IterableDataset docs.

Also, I'm trying to read through ArrowReaderWorker right now, and it seems like there is quite a bit of back and forth between Pandas, Numpy and PyArrow data (example here? Once you read something off the disk though and process it, can you not just yield it straight away? What's the use of converting back to PyArrow format (by the way, I may be sorely confused here, as I'm relatively new to Petastorm and PyArrow)?

Created a #605 showing how this read pattern can be implemented when using petastorm's DataLoader (BatchDataLoader would be more performant, bit it would require to start supporting nested pytorch tensors which seems to be an experimental feature).

Using pytorch IterableDataset seem like potentially a good and scalable approach. You can use cur_shard/shard_count make_*reader arguments to get disjoint set of examples (note that you need to have granular enough parquet column-groups, since sharding is done based on row-groups). To disable multithreading/multiprocess, you can use make_*reader's reader_pool="dummy" which disables petastorm's built-in parallelization (that being said, leaving it as reader_pool="thread" with fewer of workers might still be more performant then dummy - would require some experimentation).

Okay thanks, I'll take a look at #605 now. I've been reading through the docs to try and understand how you handle multiprocessing. Do you just use Parquet row groups? If so, this provides a very easy way to handle multiprocessing using PyTorch IterableDataset and PyArrow (as you can do parquet_file.read_row_group(row_group_int) where you define the row_group_int in the init based on the number of row groups in the file (metadata) and process number)

Okay I've created a PyTorch IterableDataset class which can handle multiple workers and just uses PyArrow. Right now I haven't specified any column/row specifications, but from what I'm seeing it shouldn't be too hard to modify the code to handle those (it shouldn't be hard to modify it to handle them though, especially because the new PyArrow Tabular Dataset can "push" these requirements down). I unfortunately haven't yet been able to comprehend how exactly you split up/divide the work between processes in Petastorm right now, so I've just gone ahead and done it based on batches (however I'm not entirely sure whether these lazy load or not). If it requires them to load beforehand (hopefully not) manually using row groups would be better (ideally using a queue either way). Please take a look and let me know what you think:
class IterableParquetDataset(IterableDataset):
    def __init__(self, path, process_func):
        super().__init__()
        self.dataset = ds.dataset(path)
        self.remove_columns, self.select_columns = remove_columns, select_columns
        self.process_func = process_func

    def __iter__(self):
        worker_info = get_worker_info()

        # Only divide up batches when using multiple worker processes
        if worker_info != None:
            batches = list(self.dataset.to_batches())
            worker_load = len(batches) // worker_info.num_workers

            # If more workers than batches exist, some won't be used
            if worker_load == 0:
                if worker_info.id < len(batches): self.batches = [batches[worker_info.id]]
                else: return
            else:
                start = worker_load * worker_info.id
                end = min(start + worker_load, len(batches))
                self.batches = batches[start:end]
        else: self.batches = self.dataset.to_batches()

        # Process and yield each batch
        for batch in self.batches:
            batch = batch.to_pydict()
            batch.update(self.process_func(batch["readme"]))

            yield batch

Could something like what I did above be useful for Petastorm?


#50 fix error with import dropzone.css from less

I checked build with npm run build and npm run dev, it works

Thanks for this fix @rlatkn


gnomAD v4.1 SV database contains mix of SV and CNV - svdb problem

Description of the bug
gnomAD SV v4.1 (https://gnomad.broadinstitute.org/news/2023-11-v4-structural-variants/) contains some CNVs that don't have AC or AF information in the vcf (gnomad.v4.1.sv.sites.vcf.gz).
svdb --query is refusing to annotate the vcf if the annotations for --in_occ or --in_frq are missing (in this case AC and AF) for some variants in the database, producing an output vcf without any variants.
It works if I remove lines without AC / AF from the gnomad file, but that means we remove this gnomAD information. Would it make sense to somehow integrate this CNV information for the annotation of SVs instead?
Command used and terminal output
NFCORE_RAREDISEASE:RAREDISEASE:ANNOTATE_STRUCTURAL_VARIANTS:SVDB_QUERY_DB command.sh:

#!/bin/bash -euo pipefail
svdb \
    --merge \
    --pass_only --same_order \
    --priority tiddit,manta,cnvnator \
    --vcf  NA12878_tiddit.vcf.gz:tiddit NA12878_manta.diploid_sv.vcf.gz:manta NA12878_cnvnator.vcf.gz:cnvnator \
    > NA12878_sv.vcf
bgzip NA12878_sv.vcf

cat <<-END_VERSIONS > versions.yml
"NFCORE_RAREDISEASE:RAREDISEASE:CALL_STRUCTURAL_VARIANTS:SVDB_MERGE":
    svdb: $( echo $(svdb) | head -1 | sed 's/usage: SVDB-\([0-9]\.[0-9]\.[0-9]\).*/\1/' )
    samtools: $(echo $(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*$//')
END_VERSIONS

--------

Output (command.log):

INFO:    Environment variable SINGULARITYENV_NXF_TASK_WORKDIR is set, but APPTAINERENV_NXF_TASK_WORKDIR is preferred
INFO:    Environment variable SINGULARITYENV_NXF_DEBUG is set, but APPTAINERENV_NXF_DEBUG is preferred
Error: frequency or hit tag not found! Make sure to set the --in_occ AND --in_frq to the number and frequency of alleles/individuals as presented in the INFO column of the input db

database variants not having the --in_occ or --in_frq tag must be removed
you may also skip these parameters and cluster based on the GT entry of the format column (if such exists)

Relevant files
No response
System information
No response

I have submitted an issue in the SVDB repository @fa2k. You can find it at this link: https://github.com/J35P312/SVDB/issues/74. Let's continue the discussion there.


Help clarify turn off classic logging and Compile a list of classic metrics that you currently use.

[Enter feedback here]
Please help clarify below 2 questions, thanks!
1.Compile a list of classic metrics that you currently use. - How to compile this? I checked the metrics classic, there is only pin function, not able to customize customer dashboard, so not understand what we should compile.
2. After you're able to see all of your metrics in Azure Monitor, you can turn off classic logging. - Do you mean turn off Diagnostic settings (classic)? I tested this, it did not affect metric classic, it seems like we don't need to turn off it as it will be turned off when it is retired.

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

ID: df25630e-0d5f-aaa3-9630-82f11194ba10
Version Independent ID: b92ffb87-5ace-e8ea-0c2b-28e39871446e
Content: Move from Storage Analytics metrics to Azure Monitor metrics
Content Source: articles/storage/common/storage-metrics-migration.md
Service: azure-storage
Sub-service: storage-common-concepts
GitHub Login: @normesta
Microsoft Alias: normesta

@XiaoYue2-22
Thanks for your feedback! We will investigate and update as appropriate.

@XiaoYue2-22
I'd recommend working closer with our support team via an Azure support request. Or you can leverage our Q&A forum by posting your issue there so our community, and MVPs can further assist you in troubleshooting this issue or finding potential workarounds.
Teams Q&A forum for technical questions about the configuration and administration of Microsoft Teams on Windows.
Microsoft Teams Community forum
Thank you for your time and patience throughout this issue.


refactor: use Deno.Command instead of Deno.run

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

Is there something block this ?

Failing CI

but I can't find the failure, is this some ci timeout issue ? can it be restarted then ?


autolink does not parse email addresses

I expect<EMAIL_ADDRESS>to render
<a href="mailto:james<EMAIL_ADDRESS>
but instead, it renders
james@ gmail.com

Thanks. I haven't added that features yet.

Great, @banyan let me know if you want me to send in a PR.

@jamesfzhang

let me know if you want me to send in a PR.

Awesome! It would be helpful if you could!


Remote API, 1.22 generates wrong JSON properties for /events

Hi,
when I collect events from Docker API (server reports 1.22) I get e.g. this
{
  "Type": "network",
  "Action": "connect",
  "Actor": {
    "ID": "085fea92eefc9b89d7bbb96e7c07b695c81fa3f5248c066088c5fa7e6ae026c3",
    "Attributes": {
      "container": "e83a12c3872f5d4415aaa5ba165cf30268fb229e20dae84686c212a8c05a6220",
      "name": "bridge",
      "type": "bridge"
    }
  },
  "time":<PHONE_NUMBER>,
  "timeNano":<PHONE_NUMBER>417484500
}

But the documentation describes the JSON properties names in lower case:
https://github.com/docker/docker/blob/master/docs/reference/api/docker_remote_api_v1.22.md#monitor-dockers-events
e.g.
{
    "action": "create",
    "type": "container",
    "actor": {
        "id": "5745704abe9caa5",
        "attributes": {"image": "busybox"}
    }
    "time":<PHONE_NUMBER>,
    "timeNano":<PHONE_NUMBER>853979870
    }

#dibs

What is currently the status of this? I have the same problem.

Looks like the API docs wasn't updated correctly for the new response. Let me open a PR to fix that

see https://github.com/docker/docker/issues/20194


Replace expired PAT in the setup script

What happened?
https://github.com/chroma-core/chroma/blame/abdf9b56d2fd4da45862faa1940a99cd2298ea03/bin/setup_linux.sh#L29
Versions
n/a
Relevant log output
No response

@jeffchuber It doesn't look like the script needs to do any write actions, so with the repo being public we shouldn't need a PAT anymore. I just tested and I can clone with no associated account. Here is my PR, let me know if it needs to go a different direction.
https://github.com/chroma-core/chroma/pull/392

@AdjectiveAllison I think that's right - would just want to verify it works. Can we break out that into 2 PRs?

@AdjectiveAllison I think that's right - would just want to verify it works. Can we break out that into 2 PRs?
2 PRs being mac/linux or a new pat/remove pat?

@jeffchuber PR closed so this should be able to as well.


Add Dockerfile

I'm working on integrating a Dockerfile for Docker deployments. The Dockerfile I've created triggers a LibSQLError with the error URL_INVALID. It seems to be trying to establish a database connection during the build phase. Any tips on how to troubleshoot and fix this?
 => ERROR [builder 6/6] RUN npm run build                                                                                10.5s
------
 > [builder 6/6] RUN npm run build:
0.660
0.660 ><EMAIL_ADDRESS>build
0.660 > vite build
0.660
0.893 ▲ [WARNING] Cannot find base config file "./.svelte-kit/tsconfig.json" [tsconfig.json]
0.893
0.893     tsconfig.json:2:12:
0.893       2 │   "extends": "./.svelte-kit/tsconfig.json",
0.893         ╵              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0.893
1.669 10:10:30 AM [vite-plugin-svelte] You are using Svelte 5.0.0-next.103. Svelte 5 support is experimental, breaking changes can occur in any release until this notice is removed.
1.669 work in progress:
1.669  - svelte-inspector is disabled until dev mode implements node to code mapping
1.669
1.754 vite v5.2.8 building SSR bundle for production...
1.800 transforming...
3.215 10:10:32 AM [vite-plugin-svelte] /app/src/routes/(login)/login/+page.svelte:11:4 email_input is updated, but is not declared with $state(...). Changing its value will not correctly trigger updates.
9.470 ✓ 2153 modules transformed.
9.604 rendering chunks...
10.32
10.32 node:internal/event_target:1062
10.32   process.nextTick(() => { throw err; });
10.32                            ^
10.33 Error [LibsqlError]: URL_INVALID: The URL is not in a valid format
10.33     at parseUri (file:///app/node_modules/@libsql/core/lib-esm/uri.js:9:15)
10.33     at expandConfig (file:///app/node_modules/@libsql/core/lib-esm/config.js:34:17)
10.33     at createClient (file:///app/node_modules/@libsql/client/lib-esm/node.js:11:26)
10.33     at file:///app/.svelte-kit/output/server/chunks/auth.js:10:16
10.33     at ModuleJob.run (node:internal/modules/esm/module_job:195:25)
10.33     at async ModuleLoader.import (node:internal/modules/esm/loader:337:24)
10.33     at async Promise.all (index 4)
10.33     at async analyse (file:///app/node_modules/@sveltejs/kit/src/core/postbuild/analyse.js:66:16)
10.33     at async MessagePort.<anonymous> (file:///app/node_modules/@sveltejs/kit/src/utils/fork.js:22:16)
10.33 Emitted 'error' event on Worker instance at:
10.33     at [kOnErrorMessage] (node:internal/worker:314:10)
10.33     at [kOnMessage] (node:internal/worker:325:37)
10.33     at MessagePort.<anonymous> (node:internal/worker:225:57)
10.33     at [nodejs.internal.kHybridDispatch] (node:internal/event_target:786:20)
10.33     at exports.emitMessage (node:internal/per_context/messageport:23:28) {
10.33   code: 'URL_INVALID',
10.33   rawCode: undefined,
10.33   [cause]: undefined
10.33 }
10.33
10.33 Node.js v18.20.2
------
Dockerfile:31

FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json .
RUN npm i --force
COPY . .

EXPOSE 3000
ENV NODE_ENV=production
CMD [ "node", "build" ]

What is the value for TURSO_DB_URL?
To be honest I think I'm going to switch out turso with regular sqlite.

Cannot find base config file "./.svelte-kit/tsconfig.json"

Thats is a classic one.
You need to run svelte-kit sync before building in side the docker container


[FEATURE] Include precision as input for cluster layer

Is your feature request related to a problem?
I believe in Coordinate maps, precision is updated based on zoom level. I don't think this value is visible to user.  Making this precision configurable brings more clarity and more options to users.
What solution would you like?
Precision should be configurable and visible
What alternatives have you considered?
N/A
Do you have any additional context?
N/A

This is available in Coordinate maps.


Fix on pps for documentation broke location

I've just discovered that #267 broke the location as it turns the documentation comments into documentation attributes that take less lines in the resulting file.
I expect some location annotations should fix them.
Sorry that I merges this PR too early as I needed it for the ppx_odoc_of_gospel.

No worries, we have all been there! :smiley:

Would it make sense to revert the merged PR temporarily?
What tests should we add to catch this change of behaviour and thus prevent similar changes from going uncaught in the future?

It would indeed make sense to revert the PR as having the correct locations in the error message from gospel type checker and ortac id more important that having the specifications displayed in odoc generated documentation.

Closed by #281


use embedded_hal SpiMode when available

Looks good, and shouldn't affect anything when the embedded-hal feature isn't used.


Python quit unexpectedly

Hello @noxioushifi. Could you share some more information regarding the error you are receiving? I see that you are using macOS, which is not officially supported yet.

What is the specific OS version?
Provide some steps to reproduce the problem and make clear at which point did the error occur.
What is the python version?


Feature: option to use desc: Monitor instead of port name

Thanks for nwg-displays. This might be a hyprland specific wish, but it would be nice to have the option to use the monitors' description instead of the port name.
The background is that I have multiple workplaces with different monitor setups. Using the description would make using different setups more robust.

Nothing in the Hyprland wiki indicates that we can use generic names, but I've just tried:
monitor=Dell Inc. DELL E2214H 2RK1Y4333FVU,1920x1080@60.0,1366x0,1.0
monitor=AU Optronics 0x315C,1366x768@60.02,0x312,1.0

...and it seems to work well. If so, your request is doable.

It is written above this section (scroll up a bit). It follows the syntax desc: Monitor description.

Thanks.
I'll add what you requested when I'm done with what I'm working on at the moment, probably this week.

It seem we have a problem. Setting default workspace for a monitor seems not to work with descriptions.
workspace=HDMI-A-1,1

works.
workspace=AOC 2475WR F17H4QA000449,1

does not work.
Also
workspace=1,monitor:HDMI-A-1,default:true

works
workspace=1,monitor:AOC 2475WR F17H4QA000449,default:true

does not work.
Unless I'm doing something wrong, we've reached a dead end.

Yes, it does not work yet.
https://github.com/hyprwm/Hyprland/pull/2670

The problem on the Hyprland side has just been resolved by @MightyPlaza (thanks again!).
@herrwusel - The feature you requested must wait on the desc branch till the nearest Hyprland release. Of course you can test it roght now, if you install the development version of Hyprland.

Thanks for your quick implementation. I'll give it a try and report back.

I discovered a minor bug. Will fix later today.


Feature/bug bash

Some house keeping commits:

Change CommitTransferWatcher to CommitTransfersWatcher where appropriate.
Only log if the bonder fee is too low. Do not throw an error.
Wait 7 days before attempting an ORU exit.

I believe this will fix some (most) of our exit watcher errors, as we were trying to process exits ~10 minutes after a commit. I think.

Everything looks good to me
Ready for merge
@shanefontaine


What is the predefined threshold for the likelihood of test samples?

Hi,
I'm trying to repeat your experiments on MNIST. But to get the F1-score, may I know how you set the likelihood threshold to distinguish the inliers and outliers of the test samples?
Thanks!

I think their idea was pretty nice! It was very interesting for my latest project in our company. But I think your request need further research to achieve the best likelihood threshold. Because most AI researches (also top companies like Google, Microsoft, etc.) need some sampling situation in their models or some specific configuration when they want to report or deploy into any devices, But in a specific situation which I tasted it last week, they set this sensitive hyper-parameter by using some intuition and experience as they mentioned in their paper. I think the authors of this paper was in a busy situation and they couldn't check their profile and maybe if we compose mail to them, they may pay more attention to answer or close the issues. In the end, I'm very excited about their work (ALOCC). I hope you could find it in your project by test it with some specific range as they mentioned in their paper (I start from their hyper-parameter which they mentioned in their code and then find a proper threshold and it was OK). Therefore, If you have any further intuition about that, maybe I could help you.

I think their idea was pretty nice! It was very interesting for my latest project in our company. But I think your request need further research to achieve the best likelihood threshold. Because most AI researches (also top companies like Google, Microsoft, etc.) need some sampling situation in their models or some specific configuration when they want to report or deploy into any devices, But in a specific situation which I tasted it last week, they set this sensitive hyper-parameter by using some intuition and experience as they mentioned in their paper. I think the authors of this paper was in a busy situation and they couldn't check their profile and maybe if we compose mail to them, they may pay more attention to answer or close the issues. In the end, I'm very excited about their work (ALOCC). I hope you could find it in your project by test it with some specific range as they mentioned in their paper (I start from their hyper-parameter which they mentioned in their code and then find a proper threshold and it was OK). Therefore, If you have any further intuition about that, maybe I could help you.

Hi,
Thank you for your detailed reply!
In my opinion, the easiest way is to check the distribution of the likelihood, and then set a threshold with some intuition and experience. BTW, could you please point out where the hyper-parameter of the threshold is in their code?

Dear @L-KID and @cod3r0k
I hope this work could be covered with your applications. As @cod3r0k and @L-KID said, it depends on each application which anyone wants to use. We could config this before we want to embed it into any applications like any configs. Also, as @L-KID , we could set the initial value with analyzing the likelihood ratio.


different results between phagcn2 and phabox

Hi，I use phagcn2 and phabox to do the classification for the same fasta files, but it shows me very different result，Im not sure which one can be trust

Hi there,
PhaGCN2 is designed for all viruses. PhaBOX will only predict the bacteriophages.
Best,
Jiayu

thank you for answering! can I use PhaBOX also for archaea phages?

I mainly want to make predictions about phages in soil systems, but for example for the contigs "DP_phages_080", phabox gives me: Chaseviridae,1.0 and phagcn2 givesme: Autographiviridae_like. Both of them are bacteria virus.

In this case, you should use phabox's prediction. Since I am not correspondence to maintaining PhaGCN2, I am not sure whether they have updated the ICTV taxonomy. But in the case of PhaBOX can give a result, it should have the highest confidence, since we have updated the program regularly.
Best,
Jiayu

OK，thanks a lot

Hi there,
The PhaBOX is upgraded to a 2.0 version with more powerful usage. Besides, it can handle all kinds of viruses now. Feel free to check!
Best,
Jiayu


deprecate DBObjective in favour of WalletObjective<>

Problems:

it's possible to pass an OpenChannel objective to ObjectiveModel.insert, but get back something asserted as e.g.  a DBCloseChannel objective.
DBObjective is a poor of name, since the type is used throughout the wallet and not just in the database / ORM.

This PR:

restores the correlation between the input of ObjectiveModel.insert<>()and the return value. If you pass in an OpenChannel objective (from wallet core), TS will infer that you get back a WalletObjective<OpenChannel> (essentially the same thing, but with some ExtraProperties). You don't even need to use the <>.
Deprecates DBObjective entirely. I deprecated it in the first commit, and then applied the large number of renaming changes in the second commit.

Shortcomings: we end up with deeply nested generic types Promise<WalletObjective<OpenChannel>>. I think this is probably ok, and probably preferable to having several aliases such as type OpenChannelWalletObjective = <WalletObjective<OpenChannel>

Checklist:
Code quality

[x] I have written clear commit messages
[x] I have performed a self-review of my own code
[x] This change does not have an unduly wide scope
[x] I have separated logic changes from refactor changes (formatting, renames, etc.) // in separate commits but not separate PRs
[x] I have commented my code wherever necessary (can be 0)
[x] I have added tests that prove my fix is effective or that my feature works, if necessary

Project management

[x] I have applied the appropriate labels
[x] I have linked to all relevant issues (can be 0)
[x] I have added all dependent tickets (can be 0)
[x] I have assigned myself to this PR
[x] I have chosen the appropriate pipeline on zenhub for the linked issue

When reviewing I should check if #3389 is resolved by these changes.

When reviewing I should check if #3389 is resolved by these changes.

It doesn't look like #3389 is fixed or changed by this.


Improvement

Hey,
thanks for you very nice repo!
I just found out, that the ids in you data are ongoning numbers and not the Kreisgemeinde IDs. So I found the Dataset:
https://gdz.bkg.bund.de/index.php/default/digitale-geodaten/verwaltungsgebiete.html
what I think: this data could be extended to contain the Kreisgemeinde ID, so if you have Data from a Kreisgemeine you are able to plot them with plotly.
Hope that helps you!?
Regards

Hi @exandi, thanks for opening the issue. This project will be archived, because I won’t be able to maintain it anymore. Feel free to fork it and make it your own. Thanks a lot.


Sonoff POWR2 no longer reporting as unavailable

Hi
I have been using a Home Assistant automation to notify me when the POWR2 became unavailable - this has been very successful up until a few days ago.
The Sonoff HACS integration appears to work fine and the device can be controlled by HASS - without problems
However the unavailable state is no longer working -
If the state goes to unavailable the POWR2 device  in HASS continues to show as on, continues to show that it is drawing power and continues to show voltage etc.  and the status does not change to unavailable.
I have reloaded the integration, deleted and readded the device but this does not seem to have helped.
I have also noticed that the device takes a while to move from on/off to unavailable in the SONOFF app as well - but even when it eventually does then this does not update in HASS
Any suggestions regarding this would be greatly appreciated.
Thanks
Neil

Is the problem still relevant? Show device diagnostics.


False positive for svelte-ignore above containing element

Before You File a Bug Report Please Confirm You Have Done The Following...

[X] I have tried restarting my IDE and the issue persists.
[X] I have updated to the latest version of the packages.

What version of ESLint are you using?
8.36.0
What version of eslint-plugin-svelte are you using?
2.23.0
What did you do?

Configuration
module.exports = {
  root: true,
  extends: [
    'plugin:svelte/recommended',
  ],
};

Slightly modified from https://daisyui.com/components/dropdown/#dropdown-menu:

  Click

What did you expect to happen?
svelte-ignore respected at that level. Works with eslint-plugin-svelte3
What actually happened?
/tmp/repro-svelte-ignore-container/test.svelte
  1:20  error  svelte-ignore comment is used, but not warned                                                         svelte/no-unused-svelte-ignore
  1:54  error  svelte-ignore comment is used, but not warned                                                         svelte/no-unused-svelte-ignore
  3:3   error  A11y: noninteractive element cannot have nonnegative tabIndex value(a11y-no-noninteractive-tabindex)  svelte/valid-compile
  3:3   error  A11y: A form label must be associated with a control.(a11y-label-has-associated-control)              svelte/valid-compile
  4:3   error  A11y: noninteractive element cannot have nonnegative tabIndex value(a11y-no-noninteractive-tabindex)  svelte/valid-compile

✖ 5 problems (5 errors, 0 warnings)

Link to GitHub Repo with Minimal Reproducible Example
https://github.com/polyzen/repro-svelte-ignore-container
Additional comments
No response

Thank you for the bug report. I will fix that.


Keep s as part of the same word in initialism

This PR special cases s to make IDs convert into ids instead of id_s.

I'll review in the morning, but please note I believe why I never added this is that the operations are not reversible.

Alright, I didn't realize that the operations are guaranteed to be reversible. I'll close this PR as a06d6db seems to address the main issue  this PR aims to resolve.


V1 -- Remove --open call on npm start

As brought up in generator-react-webpack #266
V1

[x] remove the  --open call on npm start
[x] log dev server address to console after the inital webpack build is ready

@weblogixx it will now print the following info the shell after the initial build on V1 of the template.

Seems like a nice addition. Do you think we should wait a bit until more 1.x features are there or do you want to push it directly? I do not think that we will have any more advanced features for the current stable, so pushing would ok.

I think waiting is absolutely okay. I just want to merge it so that I can delete the feature branch. Besides being a topic in the browser sync issue it's not such an important change, after all.


docs: add CONTRIBUTING.md

Description
I have added CONTRIBUTING.md,  as described in the check - 4 issue #38.

Thanks @JaeAeich


Hot Replacement with multi project

Suppose that you have multi projects and reference another with compile project(...). When you execute gradle run it will start normally (very slow, but normally). But if you change any file referenced project, it won't update the browser with the last version until you clean and compile again (but that will take a lot of time again).
You can force the build but the linked project won't be updated again until the full rebuild.

Unfortunately HMR with multimodule frontend project is not yet supported. Let me look at it what can I do

Could you please tell me what does take so long in your configuration? Do you have frontend plugin in every module ?

Hey man! Probably what is getting it slow its the NPM. Try to add support to yarn as a configuration and I think that will resolve it.

@danfma have you tried to configure cache-min in npmrc ?

No, I didn't know about that configuration setting of NPM. I will try it and then I give you a new feedback!

I see, you have a lot of npm installs. Do you have tests in every module? Most likely you can omit dependencies in sub-modules that you don't run. You generally need npm and webpack only for final bundles (some module that you want to run).

It should be fixed with 0.0.19

Thanks, man!

About what you have written before, when creation libraries I really don't need to create a bundle for it, but I still need the ability to generate the package.json correctly, that's why I used it on every project.
Give a look at my libraries (in maven until now): https://github.com/danfma/kodando. You will see that I have to generate a package for a project to then publish.
I expect that, when I migrate to Gradle and start to use your plugin, I could generate that package.json automatically and get rid of the NPM publishing.

there are two cases: in-project library dependency and external maven library dependency.
When you have in-project library then you probably don't need package.json for library at all because every kotlin2js output file is in resolution paths list so there is no need to have package.json.
If there is a library written in kotlin2js and distributed as jar via maven then it may work without package.json as kotlin-frontend-plugin will generate it as well (as it does for kotlin-stdlib-js for example, you can see it in build/node_modules/kotlin/package.json - it is generated by the plugin).
So the only usecase is when you need to generate package.json is the case when you are going to publish your library to npm.

Ok, but in the second case, I want to create a binding to an external library (like React) and if I don't specify which library and version I'm using the frontend-plugin won't guess that. Am I wrong?

good point, frontend-plugin is unable to see npm dependencies for external jar dependencies so there is no way to guess it without package.json.
What you need it ability to invoke package.json generation task (npm-configure) with no npm-install task. For now it's not so easy (possible but slightly difficult to discover how)

That's exactly what I'm trying to do! Will you work on this as a feature later? If you do it, then I can migrate to your plugin, but until there, I will have to wait.
:D


Support equivalent of failurePriority

You can configure a specific priority for each rule in your own ruleset (https://pmd.github.io/latest/pmd_userdocs_configuring_rules.html#message-and-priority-overriding).
The maven-pmd-plugin supports the parameter failurePriority which can used to fail the build only for "high priority" violations. The lower priority violations are still reported, though.
Currently the action only provides the number of found violations regardless of the priority. So you can only fail the build if any violation is found. This probably has to be tackled together with #30 .

Ping for visibility


Add support for cookies

Description
Added support for cookies
Motivation and context
Currently, there are no support for cookies.
How has this been tested?
Added cover test for this feature
Screenshots (if appropriate)
Types of changes
What types of changes does your code introduce? Put an x in all the boxes that apply:

[ ] Bug fix (non-breaking change which fixes an issue)
[x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:
Go over all the following points, and put an x in all the boxes that apply.
Please, please, please, don't send your pull request until all of the boxes are ticked. Once your pull request is created, it will trigger a build on our continuous integration server to make sure your tests and code style pass.

[ ] I have read the CONTRIBUTING document.
[ x] My pull request addresses exactly one patch/feature.
[ ] I have created a branch for this patch/feature.
[ x] Each individual commit in the pull request is meaningful.
[ x] I have added tests to cover my changes.
[ ] If my change requires a change to the documentation, I have updated it accordingly.

If you're unsure about any of these, don't hesitate to ask. We're here to help!

@imefisto , please check Travis output. It seems to be PSR2 issues.


Update Composer dependencies (2021-05-13-00-06)

Visual regression test passed!
View the visual regression test report


Allow dashes to appear in class name

Fix a bug that causes dashes in class name to cause the parser to break.
a class name such as:
.class-name - a class name
would result in a name of ".class" and a description of "name - a class name"
by spliting on " - " instead of just "-" it has been fixed but it does still rely on whitespace.  There may be a better way to do it.

Good to merge :+1:
As discussed, it might be worth using a regex to split on, but will experiment with that myself.


More specific navigation to locate Azure AD tenant

The previous content suggested selecting Azure AD tenant by just clicking users account in the top right, which is a bit confusing, specially who just started using the portal. The new changes suggests a more specific walk through to locate the target Azure AD tenant.

@AshrafAlam : Thanks for your contribution! The author, @CelesteDG, has been notified to review your proposed change.

@AshrafAlam - Thank you for your contribution. For step 3, can you please make sure Azure Active Directory is formatted as bold? This formatting is used for all UI elements. Once this is done, I can review again and sign off. Thank you.

@AshrafAlam : Thanks for your contribution! The author, @CelesteDG, has been notified to review your proposed change.

Thank you very much, @AshrafAlam
#sign-off


feat-support multiple params with comma after -p

Purpose of this pull request
support multiple params after -p ，If we want set multiple params with comma,we can set like this:
-p -Mbootstrap=host1:9092,host2:9092

Which issue you fix
#1388
Checklist:

[x] I have executed the 'mvn spotless:apply' command to format my code.
[ ] I have a meaningful commit message (including the issue id, the template of commit message is '[label-type-#issue-id][fixed-module] a meaningful commit message.')
[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] New and existing unit tests pass locally with my changes.
[ ] I have checked my code and corrected any misspellings.
[ ] My commit is only one. (If there are multiple commits, you can use 'git squash' to compress multiple commits into one.)

code review
@FlechazoW

json paramters will be great.
more information: #1393


remove need for setting build config

With PR the the build options are not needed anymore! They are set directly by the plugin.

I like the idea, but I'm a little concerned that there may be people out there using this plugin with slightly different settings.
Would this prevent someone from using their own settings, if for some reason they need to? I'm not familiar enough with the plugin architecture.

How about including this behind a config option?
In all my vite projects so far, I've never had to touch vite's build config except to add the settings that vite-plugin-singlefile recommends. I think this is pretty common for most projects.
Thus, I think it would be safe to add this feature behind a config option (see #26 for details).
If we make this a default option (released as a semver breaking 0.9.0), and include clear documentation for how to disable this via the plugin config, then we could greatly simplify the plugin usage for most projects.
Imagine if we could simplify the usage example of vite-plugin-singlefile from the current example which can be intimidating for beginners:

How do I use it?
Here's an example vite.config.ts file.
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import { viteSingleFile } from "vite-plugin-singlefile"

export default defineConfig({
	plugins: [vue(), viteSingleFile()],
	build: {
		target: "esnext",
		assetsInlineLimit: 100000000,
		chunkSizeWarningLimit: 100000000,
		cssCodeSplit: false,
		brotliSize: false,
		rollupOptions: {
			inlineDynamicImports: true,
			output: {
				manualChunks: () => "everything.js",
			},
		},
	},
})

...and then transform the usage example into this:
How do I use it?
Add viteSingleFile() at the end of your vite plugins.
Here's an example vite.config.ts file:
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import { viteSingleFile } from "vite-plugin-singlefile"

export default defineConfig({
	plugins: [vue(), viteSingleFile()],
})

Is fine for me. My internal Plugins often change some config. 😉

I missed this for 0.8.0, but will look again...

Since I have no push access to this branch, I created an updated PR that makes this behavior possible to enable/disable with a config option.
Thanks @mathe42 for sharing this idea! This will make a huge difference to how end-users perceive the plugin 😄

Lgtm


What the differences between @react-native-community/datetimepicker to react-native-modal-datetime-picker

Question
Maybe it's a fool question but i have those two packages in my project and i
wondering what the differences between @react-native-community/datetimepicker to react-native-modal-datetime-picker  ?

hello, thanks for asking. react-native-modal-datetime-picker is a wrapper over @react-native-community/datetimepicker.
Since I'm not familiar with that library, this is the best answer I can give. Thanks!


docker free install?

Hi Revenz,
nice app you developed, thanks!
would you have a way to install same on debian distro without docker?
thanks

to "install" without docker, just

pull the repo
install nodejs
node app.js

thanks!


Update nscplugin, sbt-scala-native to 0.4.3

Updates

org.scala-native:nscplugin
org.scala-native:sbt-scala-native

from 0.4.0-M2 to 0.4.3.
GitHub Release Notes - Version Diff
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!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-native" } ]

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

Superseded by #68.


2.7 版本使用keyclock的情况下无法通过 rancher-cli 通过鉴权获取 token

问题描述：
rancher 版本使用了  2.7.3，鉴权使用 keyclock，从浏览器可以打开并登录。
但是从浏览器下载 kubeconfig 文件然后使用 kubectl 操作，选择 keyclock 方式之后无法完成 token 获取

打开上面提示的地址也还是不行。
原因是 /login?xxxx 这个地址是 rancher-cli 拼装的，而 rancher 2.7 版本中并无此路径，于是直接跳转到 /dashboard/home 页面
那么请教一下在 2.7.3 版本中该如何正确使用 keyclock 来完成 kubeconfig 的鉴权？

Greetings! I'm using Google Translate to understand your issue, I will reply in English.
It seems that when authenticating using rancher-cli, the login URL which begins with /login? is not working correctly. This is a bug we have just identified with Rancher 2.7.3, and the problem seems to be a regression in the dashboard. We've narrowed down the issue but don't yet have a root cause or a fix.
If you need to get rancher-cli working again right away, but you don't want to downgrade all of Rancher, you can temporarily configure Rancher to use an older version of the dashboard:

Warning: be very careful when changing these global settings. If these are incorrect, you may be locked out of the user interface.
Set ui-index to https://releases.rancher.com/ui/release-2.7.1/index.html
Set ui-dashboard-index to https://releases.rancher.com/dashboard/release-2.7.1/index.html
Set ui-offline-preferred to "Remote"
After this change, see if the /login? URL provided by rancher-cli works again. To undo the workaround, set these settings back to their defaults.

Greetings! I'm using Google Translate to understand your issue, I will reply in English.
It seems that when authenticating using rancher-cli, the login URL which begins with /login? is not working correctly. This is a bug we have just identified with Rancher 2.7.3, and the problem seems to be a regression in the dashboard. We've narrowed down the issue but don't yet have a root cause or a fix.
If you need to get rancher-cli working again right away, but you don't want to downgrade all of Rancher, you can temporarily configure Rancher to use an older version of the dashboard:

Warning: be very careful when changing these global settings. If these are incorrect, you may be locked out of the user interface.
Set ui-index to https://releases.rancher.com/ui/release-2.7.1/index.html Set ui-dashboard-index to https://releases.rancher.com/dashboard/release-2.7.1/index.html Set ui-offline-preferred to "Remote"
After this change, see if the /login? URL provided by rancher-cli works again. To undo the workaround, set these settings back to their defaults.

thanks for you reply, and sorry for my terrible english 😭
I have change the  version to 2.6.8，and not work well，thank you！


Consume consignment needs to update the state of all contracts.

I issued two contracts in the same UTXO and generated an invoice to pay one of both.
After making the transfer, publishing the Bitcoin tx, and accepting the consignment file, only the contract referenced in the invoice changed its state, even though it had a bundle referencing the other contract in the consignment file.
I think all contracts related to the consignment file need your state changed to avoid the state keep anchored to spent UTXO.

The current implementation updates the inventory and the stash with state transitions for all contracts touched in the PSBT:
https://github.com/RGB-WG/rgb-wallet/blob/8981d7d9818bd54c7e2898dd0b68442254101281/src/pay.rs#L221-L253
These things are self-consumed instantly without ever getting into a consignment (since they should not) and before the consignment is even created (so consuming it is pointless and must be a no-op).
So either this is a no-issue - or a bug in the payment function which doesn't create all necessary consignments. And I do not get what is true. Can you please clarify?

If there were some bugs (there were which can be related to  #71) they should be closed for now with #76
If some bugs persist feel free to re-open the issue or creating a new one


API : Add hash verification for timestamp/snapshot

Feature request: Would be nice to have hash verification builtin to the API: it's not a massive amount of code but a single call to a function with a descriptive name is a lot better than 6 lines of sslib-calling code...
I can see a couple of options:
Timestamp.verify_snapshot_hashes(data: bytes)
Snapshot.verify_hashes(role_name: str, data: bytes)

or, as alternative to both of those, with MetadataInfo Martin is building in #1329 :
MetadataInfo.verify_hashes(data: bytes)

Last one is probably the correct place.
I'm not sure what should happen on failure though: Exception probably makes sense but then we probably want to change Metadata.verify() to do that as well

TargetInfo (https://github.com/theupdateframework/tuf/pull/1329) should support something similar but not necessarily the same function: with targets we should avoid loading the whole file so the function needs to accept a fileobject -- otherwise it's the same idea
TargetInfo.verify_hashes(file_object: BinaryIO)


Feature: Allow omitting [lang] param from path

Is it possible to make it so that the [lang] path param can be omitted by default?
The language could maybe still be forced by optionally entering the [lang] param.
Or it could be disabled entirely and instead users could only change the language by triggering some API endpoint via the website UI that sets the requested cookie.
Thanks, great library otherwise. I think it should be built in Next.js.

Thanks for your feedback! The decision to use the [lang] path segment is due to SEO best practices. According to Google:
"Google recommends using different URLs for each language version of a page rather than using cookies or browser settings to adjust the content language on the page." Source
That being said, not every project requires SEO and it may be preferable not to have the locale in the path. So this is definitely something worth discussing. We'll keep this issue open for others to leave their comment.

I hear you, but in practice do the best SEO ranked sites really do this?
The vast majority of the top sites (including Google themselves) use subdomains or different tlds for this purpose. I would argue that it's rather unusual to see the language code in the path, I can't think of one major website that does it.

I meant to say that it would be poor SEO to use solely a cookie to change page content without changing the URL in any way. That's what I thought this issue was about. I don't mean to argue that the locale in the pathname is required for SEO, but just that the URL must be changed in some way for good SEO - whether that be through pathname, subdomain, or tld.
If your request is to be able to use this library with different subdomains or tlds per language, then this is something we definitely plan on getting to with this library!
In the meantime, we have been getting quite a few requests to not have the pathname prefix for the default language. This should be released by next week. The language will still appear in the pathname for non-default languages though.

We're going to close this since the version 3.0.0 allows you to no longer include the language in the pathname for the default language. If this doesn't solve what you're looking for, please feel free to create a new issue describing what specific feature you're looking for.

@i18nexus
I'm building a dashboard and I don't need to have the language in the pathname at all.
Could you add an option to disable the prefix entirely please?

Hi @DavidRouyer !
If you want solely cookie based internationalization, it should be rather trivial to implement without this package. The vast majority of this package would go unused.
All you would need to do is set a locale cookie in your middleware based on the request's accept-language header. In the case a user want's to change their language, you would just set the cookie when their selected the language. That's all the would be needed for your implementation.
If we get more request's about this we'd be happy to implement. But from a developer perspective, it seems like installing a package to essentially set a cookie would be overkill.

Thanks a lot!
I made a solution based on your code!
middleware.ts:
export function middleware(request: NextRequest) {
  const { defaultLocale, locales, localeCookie = 'NEXT_LOCALE' } = i18nConfig;

  let locale;
  if (localeCookie) {
    const cookieValue = request.cookies.get(localeCookie)?.value;

    if (cookieValue && locales.includes(cookieValue)) {
      locale = cookieValue;
    }
  }

  if (!locale) {
    locale = localeDetector(request, i18nConfig);
  }

  if (!locales.includes(locale)) {
    console.warn(
      'The localeDetector callback must return a locale included in your locales array. Reverting to using defaultLocale.'
    );

    locale = defaultLocale;
  }

  const response = NextResponse.next();

  response.cookies.set(localeCookie, locale);

  return response;
}

currentLocale.ts:
const currentLocale = (): string => {
  const { defaultLocale, localeCookie = 'NEXT_LOCALE' } = i18nConfig;
  return cookies().get(localeCookie)?.value ?? defaultLocale;
};

export default currentLocale;

I'm using react-intl so I don't need useCurrentLocale anymore, I can use: const { locale } = useIntl();

@DavidRouyer Thanks for sharing! Yes, the useCurrentLocale hook is actually probably not needed with react-intl since the locale is available using the useIntl hook.

Just wanted to provide an update here that this is now supported using the noPrefix config option in v5.4.0!


feat(tsc): allow the --appendCommand option to be added in --watch mode

🔍 Search Terms

watch mode
extend watch

✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

⭐ Suggestion
After compiling in --watch mode, tsc should be able to pass the baton to the next command (probably in a child process) that the user passes with the --appendCommand option. After tsc detects a change in the source files, it should terminate the process in which it started the command from the --appendCommand option. After that, it should make a new iteration of the pair:
"compile -> execute the command from the --appendCommand option".
Of course, the output from the --appendCommand should be displayed below the tsc output. On error, tsc should not run the command with --appendCommand.
📃 Motivating Example
Currently, users have to use two terminals: one for tsc --watch and one for node dist/main.js. Yes, of course I know about ts-node and nodemon, but in a pair they work worse than tsc can with --appendCommand.
💻 Use Cases
Users will be able to get native compiler support with native Node.js operation in one terminal:
tsc -b --watch --appendCommand 'node dist/main.js'

Related: #33388

Duplicate of #35398.

I hope that since 2019, the opinion of the TypeScript team has changed. This is quite simple to implement and will greatly simplify work with tsc.


tuxclocker-without-unfree: 1.4.0 -> 1.5.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Lurkki14/tuxclocker/releases.
meta.description for tuxclocker-without-unfree is: Qt overclocking tool for GNU/Linux
meta.homepage for tuxclocker-without-unfree is: https://github.com/Lurkki14/tuxclocker
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.5.0 with grep in /nix/store/qgjdmmaw5fhqd7fsai34kqfs6wx7dm0m-tuxclocker-1.5.0
found 1.5.0 in filename of file in /nix/store/qgjdmmaw5fhqd7fsai34kqfs6wx7dm0m-tuxclocker-1.5.0

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath
tuxclocker
tuxclocker-nvidia-plugin
tuxclocker-plugins
tuxclocker-plugins-with-unfree
tuxclocker-without-unfree

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qgjdmmaw5fhqd7fsai34kqfs6wx7dm0m-tuxclocker-1.5.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A tuxclocker-without-unfree https://github.com/r-ryantm/nixpkgs/archive/6e3d5ac67f918b7d0420e6a75f1099326e4c3006.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/6e3d5ac67f918b7d0420e6a75f1099326e4c3006#tuxclocker-without-unfree

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qgjdmmaw5fhqd7fsai34kqfs6wx7dm0m-tuxclocker-1.5.0
ls -la /nix/store/qgjdmmaw5fhqd7fsai34kqfs6wx7dm0m-tuxclocker-1.5.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages failed to build:

tuxclocker
tuxclocker-nvidia-plugin
tuxclocker-plugins-with-unfree

2 packages built:

tuxclocker-plugins
tuxclocker-without-unfree

Maintainer pings
cc @Lurkki14 for testing.

https://github.com/NixOS/nixpkgs/pull/284535


objectid needs to be changed to id

The cli command to query object id needs to be changed in the role assignment module.
For ex. az ad group show --group <SECURITY_GROUP_NAME> --query objectId - This is the current command.
az ad group show --group <SECURITY_GROUP_NAME> --query id - This is the updated.

Hi @jtracey93, can I pick this up?

@johnlokerse can you also check for any other places in the docs/modules where this needs updating 👍👍

I will do that 😃

Just did some checks and the "id" is indeed correct but the CLI output is not correct. Although, if you look at the manifest of the app registration the "id" equals the object id of the app registration.
@jtracey93 can you check if you have the same behavior on your side? See the CLI output versus the portal values on my screenshot:

Hey @johnlokerse,
Think this is correct from my testing

Are you looking at the object ID on the app registration page instead of the enterprise app page? Enterprise app is the ID we need :)

Ah, I see... was looking at the wrong page. 😄


Add links to Terms, Policy and CoC on Sign Up screen

Description
As a user of the system,
I need to have links to terms and conditions on Register screen
so that I can be aware of Terms of use, Code of Conduct and Privacy Policy.
On Registration Screen we need to have a proper text with the Terms and Conditions check box.
Text:
"By checking this box, I affirm that I have read and accept to be bound by the AnitaB.org Code of Conduct, Terms, and Privacy Policy. Further, I consent to the use of my information for the stated purpose."
Links to add:
Code of Conduct: https://ghc.anitab.org/code-of-conduct/
Terms of use: https://anitab.org/terms-of-use/
Privacy Policy: https://anitab.org/privacy-policy/
Screenshots of the issue
Android version:

Flutter current version:

Acceptance Criteria
Update [Required]

[ ] Add links to Terms and Conditions, Code of Conduct and Privacy Policy on Sign Up screen

Definition of Done

[ ] All of the required items are completed.
[x] Approval by 1 mentor.

Estimation
🤷♀

@bartekpacia @Techno-Disaster let's leave this to a newcomer, I have no idea the complexity of this, but with your guidance, I feel a newcomer could do this

@bartekpacia @Techno-Disaster let's leave this to a newcomer, I have no idea the complexity of this, but with your guidance, I feel a newcomer could do this

yep, looks easy. Lets see if anyone picks it up

@bartekpacia @Techno-Disaster let's leave this to a newcomer, I have no idea the complexity of this, but with your guidance, I feel a newcomer could do this

yep, looks easy. Lets see if anyone picks it up

unless that also requires bloc implementation.  🤦. Will have to check.

Hey @isabelcosta !
I'm Mahe. Can I please try solving this issue?

@MaheKhan  sure. assigned it to you

Hey @Techno-Disaster !
I tried following the step by step instructions given here:   https://github.com/anitab-org/mentorship-flutter
After installing Flutter SDK and Android SDK, I cloned the mentorship-flutter repository on my system. I opened it on my external IDE (ATOM). I switched to the beta using 'flutter channel beta' command.
When I then give the 'flutter run' command in the flutter console, I get this error;

But, when I check the contents of the mentorship-flutter repository, the pubspec.yaml file is already there.
here;

@MaheKhan  cd into the app directory

Yes, thankyou.

Yayy! I was finally able to run the flutter app on my system.

It might not be a big achievement, but I am just glad I didn't give up midway and finally got the app running.

Now, I myself can see the issue mentioned in the description by @isabelcosta .

I think it's the register_screen.dart file in the register folder of the repository that would require the changes. Am I correct, @Techno-Disaster ?

I was googling how to add hyperlinks to text in dart files.
So that I could convert the phrases; Code of Conduct, Terms, and Privacy Policy; into hyperlinks.

I think it's the register_screen.dart file in the register folder of the repository that would require the changes. Am I correct, @Techno-Disaster ?

yes @MaheKhan . Great work until now, keep it up 👍

@MaheKhan great to see @Techno-Disaster is helping you out :) Excited to see you working on this issue 🤗

@MaheKhan we have already used url_launcher in the project. You can refer to this stackoverflow link incase you are stuck

Hey, @Techno-Disaster !
I was able to convert the desired pieces of text into hyperlinks. I used 'GestureDetector' widget.

When clicked, the hyperlinks cause browser to open those respective webpages.

But now the texts is getting overflowed because I removed the 'Flexible' widget.

@MaheKhan Try using Richtext. All the widgets you will need are already there in the stack overflow link i commented earlier

Hey, @Techno-Disaster ! Instead of using GestureDetector, I now used RichText ; like you told me to.
But, I am unable to fix the text overflow issue. The stackoverflow link you provided, and many others I searched, none of them helped me.
I tried wrapping the row using 'Wrap', but to no avail.

I tried using Expanded and Flexible too.

Please guide me some more.

Okay, It's done!!!!! <3

Great work figuring it out yourself @MaheKhan . was busy so couldn't help you earlier but congrats :100: Next steps: make a PR :)

Hey, @Techno-Disaster.
I improved it a bit.
Earlier the check box was not aligned with the text.
Now, it is!

@Techno-Disaster , would you please help with making a PR?
I haven't done it before.

@MaheKhan sure, first push your local changes to your forked github repo, then head on over to pull requests, click "New Pull Request". Select "compare across forks" and select your fork, then click "create pull request" . A template should load up for you. Make the required changes in the template, and click Create Request and you are done :). Feel free to ping me if  you get stuck in between.

Done. Made my first PR!
Please tell me what you think of it.

Hey, @isabelcosta !
Please review my PR. :)

@Techno-Disaster, hey! Please review my PR. :)

@Techno-Disaster, hey! Please review my PR. :)

Yes @MaheKhan , working on it. Need to make sure everything is right

Yes, Yes. Indeed.
Thanks, @Techno-Disaster !

Hey, @Techno-Disaster ! I know you must be really busy with your own work and life and might not have the time to review my PR.
But, this happens to be my first PR ever. And I am very anxious and nervous about it.

For next person that picks this up, the PR #73 was almost done, so you can continue this work on your PR :)

Moved to #97


error: EACCES: permission denied

error: EACCES: permission denied, open '/Users/yang/.config/configstore/update-notifier-vuepack.json'
You don't have access to this file.

It's weird, you should have access to /Users/yang/

Maybe sudo chmod -R 777 /Users/yang/.config/configstore/update-notifier-vuepack.json could solve this.

Inactivated, closed.


add endpoint to sign abitrary data

Add a new endpoint to sign any payload not just a transacton.

Related: https://github.com/vegaprotocol/vega/pull/3214

@jeremyletang I was trying to write instructions for this, but can’t figure out the command line. This is obviously the old one:
command line:
go-wallet sign --message 'test' --pubkey 69d9214d148c5ee1d7a79464e2bad7da90144dc1fc207bca37615877e3fdf7df --passphrase 123 --name edd

OslQTaJY+vdLrJrpagWOqEqKA8wfXk0v9DYMJxqe56ShZ6kA8c+kzZyVWVmpRuk/bH3G7QO4GSAA6bAPTImfAw==

But this HTTP endpoint works fine.
❯ curl -XPOST -H "Authorization: Bearer eyJhbGciO…zdA==", "pubkey":"69d9214d148c5ee1d7a79464e2bad7da90144dc1fc207bca37615877e3fdf7df"}' http://localhost:1789/api/v1/sign

{"hexSignature":"6b695168b36c509a99837aff0ed2750447585b7119966e205d9c36f2735e0dad2011f4d704eb9e9dfccdc432dec53219b48c961987c106cbcb185352613e8c0d","base64Signature":"a2lRaLNsUJqZg3r/DtJ1BEdYW3EZlm4gXZw28nNeDa0gEfTXBOuenfzNxDLexTIZtIyWGYfBBsvLGFNSYT6MDQ=="}⏎

See also: https://github.com/vegaprotocol/go-wallet/issues/73


New release?

Any way we can get a new release with the recent changes?  Are there any other roadmap items you have in mind for this library?

Yes, we will push 0.3 out now (latest early next week). I have some clean up and refactoring to do but otherwise features are driven by requests here. If there is something else you'd like to see in the library let us know and we'll get right to it.

Version 0.3 is now on maven central. Closing this issue. Feel free to open another issue if you come up with other features you'd like in the library


Ability to use mox over bidirectional stream: 2024: mox world’s only functional Go IMAP4rev2 server

With few changes mox imapserver package can be used over a bidirectional socket io.ReadWriteCloser

temporary or separate file-system storage
configurable logging
ability to disable timeouts enabling single-step debugging
bypassing network stack
integration-testing against mox IMAP service endpoint instance

Sorry for the late reply, was busy on other work, then at FOSDEM.
Indeed, an IMAP server could be spun up relatively easily on a socket. That's also how the internal tests work. I'm wondering: What kind of use cases do you have in mind? Testing Go client code against the mox server? At least that seems like an understandable and reasonable use-case.
I suppose it could be almost enough to export the serve and limitersInit functions. mlog.LogModel could be added separately too. Then the imaptemp package could be implemented externally, it feels niche enough for that.


Allow switching mesh parser when compiled with assimp feature enabled

Currently, when assimp feature is enabled, urdf-viz prefers to use assimp for mesh parsing.
https://github.com/openrr/urdf-viz/blob/99d3c636b74b11f65fd293202ffe1abeefd4d7a2/src/mesh.rs#L103-L106
However, there are cases where bugs in assimp or assimp-sys do not work well, so it would be nice to add a CLI flag to allow the parser to be switched at startup.

By the way, here is an example of mesh that doesn't work with assimp-sys. (It would be great if we could eventually fix that too, but that is outside the scope of this issue.)
git clone https://github.com/ToyotaResearchInstitute/hsr_description
git clone https://github.com/ToyotaResearchInstitute/hsr_meshes
urdf-viz hsr_description/robots/hsrb4s.obj.urdf --package-path hsr_meshes=hsr_meshes

thread 'main' panicked at /Users/taiki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/assimp-sys-0.3.1/src/types/string.rs:26:34:
range end index<PHONE_NUMBER>037411848 out of range for slice of length 1024
stack backtrace:
   0: rust_begin_unwind
             at /rustc/e7c502d9309ae6bc6a9750514ba7fe397844e84c/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/e7c502d9309ae6bc6a9750514ba7fe397844e84c/library/core/src/panicking.rs:72:14
   2: core::slice::index::slice_end_index_len_fail_rt
             at /rustc/e7c502d9309ae6bc6a9750514ba7fe397844e84c/library/core/src/slice/index.rs:76:5
   3: core::slice::index::slice_end_index_len_fail
             at /rustc/e7c502d9309ae6bc6a9750514ba7fe397844e84c/library/core/src/slice/index.rs:68:9
   4: <assimp_sys::types::string::AiString as core::convert::AsRef<str>>::as_ref
   5: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
   6: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
   7: urdf_viz::assimp_utils::convert_assimp_scene_to_kiss3d_mesh
   8: urdf_viz::mesh::load_mesh_assimp
   9: urdf_viz::mesh::load_mesh
  10: urdf_viz::urdf::add_geometry
  11: urdf_viz::viewer::Viewer::add_robot_with_base_dir_and_collision_flag
  12: urdf_viz::app::UrdfViewerApp::new
  13: tokio::runtime::park::CachedParkThread::block_on
  14: tokio::runtime::context::runtime::enter_runtime
  15: tokio::runtime::runtime::Runtime::block_on
  16: urdf_viz::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.


Closes #2043

You can not define Materialize with window.Materialize because Meteor package export won't be able to export the variable.
Tell me if I have to do some changes before merging :).

One more thing, for Meteor developers, is better to add uncompressed assets in packages due two things:

Better to debug.
Meteor compresses assets automatically for us.

So I take the freedom do replace bin/materialize.js by dist/js/materialize.js.

+1

+1

+1

+1

@grsabreu while at it, would you mind also updating package.js to support the new addAsset directive? Because otherwise, this package won't build.
// Check if we are post<EMAIL_ADDRESS>with which api.addFiles() throws error requiring api.addAssets()
var assetDirective = api.addAssets === undefined ? addFiles : addAssets;

// Add material design icons
api[assetDirective]([
  'dist/font/material-design-icons/Material-Design-Icons.eot',
  'dist/font/material-design-icons/Material-Design-Icons.svg',
  'dist/font/material-design-icons/Material-Design-Icons.ttf',
  'dist/font/material-design-icons/Material-Design-Icons.woff',
  'dist/font/material-design-icons/Material-Design-Icons.woff2'
], 'client');

// Add roboto bold font
api[assetDirective]([
  'dist/font/roboto/Roboto-Bold.ttf',
  'dist/font/roboto/Roboto-Bold.woff',
  'dist/font/roboto/Roboto-Bold.woff2'
], 'client');

// Add roboto light font
api[assetDirective]([
  'dist/font/roboto/Roboto-Light.ttf',
  'dist/font/roboto/Roboto-Light.woff',
  'dist/font/roboto/Roboto-Light.woff2'
], 'client');

// Add roboto medium font
api[assetDirective]([
  'dist/font/roboto/Roboto-Medium.ttf',
  'dist/font/roboto/Roboto-Medium.woff',
  'dist/font/roboto/Roboto-Medium.woff2'
], 'client');

// Add roboto regular font
api[assetDirective]([
  'dist/font/roboto/Roboto-Regular.ttf',
  'dist/font/roboto/Roboto-Regular.woff',
  'dist/font/roboto/Roboto-Regular.woff2'
], 'client');

// Add roboto thin font
api[assetDirective]([
  'dist/font/roboto/Roboto-Thin.ttf',
  'dist/font/roboto/Roboto-Thin.woff',
  'dist/font/roboto/Roboto-Thin.woff2'
], 'client');

// Add css and javascript
api.addFiles([
  'dist/css/materialize.css',
  'dist/js/materialize.js'
 ], 'client');

@serkandurusoy https://github.com/grsabreu/materialize/commit/add48e4d8cbc1884b63eea554d4a99495904a4d6
I did that :)

Hah, I had not realised you've already done it, and even more properly :)

:+1

:+1:

+1 @Dogfalo can we merge it?

:+1:

Yes, the package should include the unminified .js file.

Thank you everyone for finding out the problem. I do not do much meteor development and so I am grateful for your help.

Nice one, @Dogfalo!
When the new version will be published to Atmosphere?

Yes, please! I am eager to get this rolled into my app with the fix. Thank you @grsabreu. There are many breaking changes with Meteor 1.2.x, and this is actually a common one.
@Dogfalo, if your packaging anything else for Meteor, this should be a consideration.

If you want to grab updates before release you can see what I wrote here to use a github repo as a meteor package #2171

+1 for new release to be rolled to Atmosphere.

+1


Fix error UNKNOWN_BASE_TYPE

This error occurs as I'm trying to generate a python-flask server stub:
$ python -m openapi_server
Failed to add operation for GET /api/v1/datasets/{datasetId}/annotationStore/{storeId}/annotations
Traceback (most recent call last):
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/apis/abstract.py", line 209, in add_paths
    self.add_operation(path, method)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/apis/abstract.py", line 162, in add_operation
    operation = make_operation(
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/operations/__init__.py", line 8, in make_operation
    return spec.operation_cls.from_spec(spec, *args, **kwargs)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/operations/openapi.py", line 128, in from_spec
    return cls(
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/operations/openapi.py", line 75, in __init__
    super(OpenAPIOperation, self).__init__(
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/operations/abstract.py", line 96, in __init__
    self._resolution = resolver.resolve(self)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/resolver.py", line 40, in resolve
    return Resolution(self.resolve_function_from_operation_id(operation_id), operation_id)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/resolver.py", line 64, in resolve_function_from_operation_id
    raise ResolverError(msg, sys.exc_info())
connexion.exceptions.ResolverError: <ResolverError: Cannot resolve operationId "openapi_server.controllers.annotation_controller.list_annotations"! Import error was "No module named 'openapi_server.models.unknownbasetype'">

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/mnt/c/Users/thoma/Documents/dev/nlp-sandbox-data-node-i2b2-2014/server/openapi_server/__main__.py", line 18, in <module>
    main()
  File "/mnt/c/Users/thoma/Documents/dev/nlp-sandbox-data-node-i2b2-2014/server/openapi_server/__main__.py", line 11, in main
    app.add_api('openapi.yaml',
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/apps/flask_app.py", line 57, in add_api
    api = super(FlaskApp, self).add_api(specification, **kwargs)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/apps/abstract.py", line 144, in add_api
    api = self.api_cls(specification,
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/apis/abstract.py", line 111, in __init__
    self.add_paths()
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/apis/abstract.py", line 216, in add_paths
    self._handle_add_operation_error(path, method, err.exc_info)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/apis/abstract.py", line 231, in _handle_add_operation_error
    raise value.with_traceback(traceback)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/resolver.py", line 61, in resolve_function_from_operation_id
    return self.function_resolver(operation_id)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/utils.py", line 123, in get_function_from_name
    raise last_import_error
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/site-packages/connexion/utils.py", line 111, in get_function_from_name
    module = importlib.import_module(module_name)
  File "/home/tschaffter/.conda/envs/data-node-redesign/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/mnt/c/Users/thoma/Documents/dev/nlp-sandbox-data-node-i2b2-2014/server/openapi_server/controllers/annotation_controller.py", line 7, in <module>
    from openapi_server.models.unknownbasetype import UNKNOWN_BASE_TYPE  # noqa: E501
ModuleNotFoundError: No module named 'openapi_server.models.unknownbasetype'

This happens when an API endpoint accepts different object type. The Flask app can't know the type of the object beforehand. This should be solved by looking at how mongoengine use discriminator properties.


add: AaadityaG

Description
Adding aaadityag.json to public/data
Changes Proposed
Updating ProfileList.json
Checklist

[x] I have read and followed the Contribution Guidelines.
[x] All new and existing tests passed.
[ ] I have updated the documentation to reflect the changes I've made.
[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.

Hoping #hacktoberfest label...🤞🏽

Hey @AaadityaG Please resolve conflicts.
Hackoberfest tag can't be labelled here because its just add profile, you can checkout other issues.

@shyamtawli done sir

@AaadityaG Thank you so much for your contribution! Your efforts are greatly appreciated and will go a long way in improving our project. Please feel free to share it with others and help us grow even further!


Media controls on video preview are not completely showed

Explain the bug
If you use the preview of a video, you will see the media controls cutted (see screenshot for a better explanation).
To reproduce

Enable preview pane
Click on a video file
See the behaviour on the screenshot

Expected behavior
I think there is another media control that has to be showed, and also should end with rounded corners.
Logfile
debug.txt
debug_fulltrust.log
Screenshots

System Information

OS Version: Windows 10 Pro 21H1 19043.1081 Windows Feature Experience Pack 120.2212.3530.0
App version: <IP_ADDRESS>

Additional comment
This problem still happen after restarting the app.

Thanks for the feedback. Closing as this is a WinUI bug https://github.com/microsoft/microsoft-ui-xaml/issues/5441.