Metrics for multi-label classification for using with tf.keras

Top-K Metrics are widely used in assessing the quality of Multi-Label classification. tf.metrics.recall_at_k and tf.metrics.precision_at_k cannot be directly used with tf.keras! Even if we wrap it accordingly for tf.keras, In most cases it will raise NaNs because of numerical instability. Since we don't have out of the box metrics that can be used for monitoring multi-label classification training using tf.keras. I came up with the following plugin for Tensorflow 1.X version. This can also be easily ported to Tensorflow 2.0.
import tensorflow as tf
K = tf.keras.backend

class MetricsAtTopK:
    def __init__(self, k):
        self.k = k

    def _get_prediction_tensor(self, y_pred):
        """Takes y_pred and creates a tensor of same shape with 1 in indices where, the values are in top_k
        """
        topk_values, topk_indices = tf.nn.top_k(y_pred, k=self.k, sorted=False, name="topk")
        # the topk_indices are along last axis (1). Add indices for axis=0
        ii, _ = tf.meshgrid(tf.range(tf.shape(y_pred)[0]), tf.range(self.k), indexing='ij')
        index_tensor = tf.reshape(tf.stack([ii, topk_indices], axis=-1), shape=(-1, 2))
        prediction_tensor = tf.sparse_to_dense(sparse_indices=index_tensor,
                                               output_shape=tf.shape(y_pred),
                                               default_value=0,
                                               sparse_values=1.0,
                                               validate_indices=False
                                               )
        prediction_tensor = tf.cast(prediction_tensor, K.floatx())
        return prediction_tensor

    def true_positives_at_k(self, y_true, y_pred):
        prediction_tensor = self._get_prediction_tensor(y_pred=y_pred)
        true_positive = K.sum(tf.multiply(prediction_tensor, y_true))
        return true_positive

    def false_positives_at_k(self, y_true, y_pred):
        prediction_tensor = self._get_prediction_tensor(y_pred=y_pred)
        true_positive = K.sum(tf.multiply(prediction_tensor, y_true))
        c2 = K.sum(prediction_tensor)  # TP + FP
        false_positive = c2 - true_positive
        return false_positive

    def false_negatives_at_k(self, y_true, y_pred):
        prediction_tensor = self._get_prediction_tensor(y_pred=y_pred)
        true_positive = K.sum(tf.multiply(prediction_tensor, y_true))
        c3 = K.sum(y_true)  # TP + FN
        false_negative = c3 - true_positive
        return false_negative

    def precision_at_k(self, y_true, y_pred):
        prediction_tensor = self._get_prediction_tensor(y_pred=y_pred)
        true_positive = K.sum(tf.multiply(prediction_tensor, y_true))
        c2 = K.sum(prediction_tensor)  # TP + FP
        return true_positive/(c2+K.epsilon())

    def recall_at_k(self, y_true, y_pred):
        prediction_tensor = self._get_prediction_tensor(y_pred=y_pred)
        true_positive = K.sum(tf.multiply(prediction_tensor, y_true))
        c3 = K.sum(y_true)  # TP + FN
        return true_positive/(c3+K.epsilon())

    def f1_at_k(self, y_true, y_pred):
        precision = self.precision_at_k(y_true=y_true, y_pred=y_pred)
        recall = self.recall_at_k(y_true=y_true, y_pred=y_pred)
        f1 = (2*precision*recall)/(precision+recall+K.epsilon())
        return f1

### Usage:
metrics = MetricsAtTopK(k=5)
# model definition
# ...
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc',
                                                                     metrics.true_positives_at_k,
                                                                     metrics.false_positives_at_k,
                                                                     metrics.false_negatives_at_k,
                                                                     metrics.recall_at_k,
                                                                     metrics.precision_at_k,
                                                                     metrics.f1_at_k,
                                                                    ]
model.fit(...)  # as usual

Is this something which we can integrate to Tensorflow? If so I will be glad to open up a Pull Request

@Abhijit-2592 I have opened a pull request already about adding multilabel classification, but i am not getting correct location to add those lines so that they can work properly

Can you link the pull request?

#28204

@Abhijit-2592 Have you tried the new 2.0 metrics? https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/metrics.py#L1072 Please take a look and let me know if they would work for you. We have implementations of precision at K and recall at K. They are called Precision and Recall and top_k is accepted as a parameter in these metrics.

Closing this issue for now, please feel free to re-open if this isn't resolved.

@pavithrasv I'd like to reopen the issue if possible. My reasons are as follows:

the metric has an annoying control dependency:

with ops.control_dependencies([
      check_ops.assert_greater_equal(
          y_pred,
          math_ops.cast(0.0, dtype=y_pred.dtype),
          message='predictions must be >= 0'),
      check_ops.assert_less_equal(
          y_pred,
          math_ops.cast(1.0, dtype=y_pred.dtype),
          message='predictions must be <= 1')
  ]):

why is this annoying? if using a sigmoid cross entropy for the loss (as multi-labels are independent), tf offers the function:
tf.nn.sigmoid_cross_entropy_with_logits(labels=labels, logits=logits)

Since this function applies a sigmoid transformation to the logits (output of the model), then the user shouldn't have in their final layer a sigmoid activation. Otherwise it is sigmoid(sigmoid(...)). Since this is the case, values are not gaurenteed to be between [0, 1], especially when training first begins. So Precision (and other similar tf.keras.metrics) are not even able to be included as this will throw an error ending training.

in the precision (and similar) metrics, the thing of interest multi_label is called with the default value (False):

# inside Precision update_state
return metrics_utils.update_confusion_matrix_variables(
        {
            metrics_utils.ConfusionMatrix.TRUE_POSITIVES: self.true_positives,
            metrics_utils.ConfusionMatrix.FALSE_POSITIVES: self.false_positives
        },
        y_true,
        y_pred,
        thresholds=self.thresholds,
        top_k=self.top_k,
        class_id=self.class_id,
        sample_weight=sample_weight) # <---- multi_label is not set to True, nor do we as users
        # have the option to do so

# function signature
def update_confusion_matrix_variables(variables_to_update,
                                      y_true,
                                      y_pred,
                                      thresholds,
                                      top_k=None,
                                      class_id=None,
                                      sample_weight=None,
                                      multi_label=False, # <---- defaults to false
                                      label_weights=None):

collectively, this means that multi_label metrics are not supported via tf.keras api.
While the update_confusion_matrix_variables function is great (and the associated structure), to an outsider who might want to contribute / track down why it doesn't work with their code, it is could be daunting.
Perhaps tf.keras.metrics could single out multilabel metrics?
e.g.
class MultiLabelMacroSpecificity(tf.keras.metrics.Metric):

    def __init__(self, name='multi_label_macro_specificity', threshold=0.5, **kwargs):
        super(MultiLabelMacroSpecificity, self).__init__(name=name, **kwargs)
        self.specificity = self.add_weight(name='mlm_spec', initializer='zeros')
        self.threshold       = tf.constant(threshold)

        # replace this with tf confusion_matrix utils
        self.true_negatives  = self.add_weight(name='fn', initializer='zeros')
        self.false_positives = self.add_weight(name='fp', initializer='zeros')

    def update_state(self, y_true, y_pred):

        # Compare predictions and threshold.
        pred_is_pos  = tf.greater(tf.cast(y_pred, tf.float32), self.threshold)
        # |-- in case of soft labeling
        label_is_pos = tf.greater(tf.cast(y_true, tf.float32), self.threshold)
        label_is_neg = tf.logical_not(tf.cast(label_is_pos, tf.bool))

        self.true_negatives.assign_add(tf.reduce_sum(tf.cast(label_is_neg, tf.float32)))
        self.false_positives.assign_add(
            tf.reduce_sum(tf.cast(tf.logical_and(pred_is_pos, label_is_neg), tf.float32))
        )

        tn = self.true_negatives
        fp = self.false_positives
        specificity = tf.div_no_nan(tn, tf.add(tn, fp))
        self.specificity.assign(specificity)
        return specificity

    def result(self):
        return self.specificity


Add string type for all enums

Even though type is not mandatory for enum in JSON schema, some loaders don't support fields without a type and are not able to infer it from the enumerated values.

Great fix, thanks again, @matthieucan 🚀
Curious, do you, by any chance, remember any of those loaders?

Of course! The loader which exhibited this issue is https://github.com/transferwise/pipelinewise-target-snowflake, and you can find how the type is extracted (and failing when it doesn't exist) in https://github.com/transferwise/pipelinewise-target-snowflake/blob/master/target_snowflake/stream_utils.py#L69


Decorators aren't respected when extending classes with TypeScript 2.1.4+

Extending a class in TypeScript and decorating it with JavaProxy("a.b.c.DDD") is transpiled differently between TypeScript versions 2.1.x+ and previous versions of the TypeScript package. (ES5)
Previously:
var Activity = (function (_super) {
    __extends(Activity, _super);
    ...
    Activity = __decorate([
        JavaProxy("org.nativescript.sdkAngular.MainActivity"),
        __metadata('design:paramtypes', [])
    ], Activity);
    return Activity;
}(android.support.v7.app.AppCompatActivity));

Now:
var Activity = (function (_super) {
    __extends(Activity, _super);
    ...
    return Activity;
}(android.support.v7.app.AppCompatActivity));
Activity = __decorate([
    JavaProxy("org.nativescript.sdkAngular.MainActivity"),
    __metadata("design:paramtypes", [])
], Activity);

The same will happen for all decorators, Interfaces included

Covered with automated test 303 in TypeScript suite


322 | Coin Change | C++

Title -
Add Solution to Problem Coin Change
Type of Issue -

[x] Adding New Code

Programming Language

[x] C++

Self Check

Ask for issue assignment and wait to get assigned to it before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

Please assign me to this problem.

Please assign this issue to me, I am willing to contribute

please assign me to this problem

I would like to be assigned to this problem

[x] @agrawaladitya192 Assigned it to u


Messages in threads are not handled

Note: some threads work, other break on channel name because higher than u8 number

Not reproductible currently


updating / moving the training dataset?

Is there any interest in moving the dragnet_data repository from seomoz to dragnet-org (this) GitHub account? It would be nice to have the two repos together and under the same administrative control.
On a related note, is there any interest in updating the training data (and retraining the various models)? The HTML in the current data is quite old at this point, so the trained models don't know how to learn from, say, HTML5's new syntactic features. I'm sure content extraction performance on newer webpages suffers. I don't know what the legal issues are (if any) of compiling a new dataset, but if somebody could advise, I would be interested in taking on some of the work.
Lastly, if we opted to compile a new training dataset from scratch, we wouldn't have to move the old repository and could, instead, just make a new one alongside this.

New data would be amazing, as you said the web has changed substantially in the last few years.  I'm up for moving over the dragnet_data repo to this github org.  I'd recommend adding the new data to the existing data instead of replacing completely, this will almost certainly make any trained model on the datasets more robust across different types of markup.

FYI, I can't do the org transfer anymore, but we can just clone/fork the repo to the new org. I think it would make sense as well.

Hi folks! I'm finally ready to move forward on this task. First things first: I'm not able to create a new dragnet-data repository under dragnet-org. Would somebody (want to) give me those permissions?
Next big question is, do we actually want to keep the same "content + comments" setup as before? I had some back-and-forth with @matt-peters a couple(!) years ago — https://github.com/seomoz/dragnet_data/issues/2 — and my needs are the same as then: comments aren't useful (plus, these days they're usually generated via javascript, so don't show up in the raw html), and content could be split into "body text" and "metadata" (byline, pubdate, etc.). What do y'all think?

Currently looking into using (a small subset of) Common Crawl data to build a new training dataset. It should be possible to write code that pulls down a sample of crawled web pages' HTML and text content; manually cleaning up the latter shouldn't be too hard. Since new pages are crawled regularly, we could have a basically endless supply of training data. :) Will keep y'all posted.

@bdewilde Thanks for the update, this would be awesome if implemented.  A refresh of the training data would probably greatly improve the model significantly for newer web pages.  If you have the bandwidth for updating the training and model code to handle multiple different types of content (e.g. body text and metadata) then I'm 100% supportive.  If not, including additional types of content in the "content" label (author, publication date) makes sense, but would be incompatible with the old annotation so you'd probably need to annotate at least the same amount of pages (~1000) to match the performance of the existing model for that type of content.  In any case, thanks for your continued work on this project 💯

Hi @matt-peters , happy to help! For simplicity's sake, I'm leaning towards lumping everything — title, byline, captions, and main article text — into "content", and skipping comments altogether. There's a case for splitting the metadata out, but it's definitely secondary, and I think it can wait.
The only thing I need now (besides time to pull a new training dataset together 😉) is GitHub permissions to create a new dragnet-data repo under the dragnet-org account, or someone else to do it for me and add me as an author. Could you do that, or point me to someone who can? Thanks a ton!

Update: I've manually compiled a training dataset of 200 (html, text) pairs on modern, news-y web pages from a variety of sites and in a variety of languages. The gold-standard, content-only text extractions include

title
visible byline / publish date info
visible image captions
main article text
visible text within embedded social media posts (e.g. tweets)

and do not include

image captions buried in photo galleries
photo credits when not appended directly to a caption
section/content tags, before or after the main article
urls of images displayed in embedded social media posts

Current block-level classification performance is F1 ~0.92. If I combine this dataset with CleanEval (which includes 680 examples), I get up to F1 ~0.95, but I'm not convinced it does a better job on the sort of modern, news-y web pages dominating my dataset. HTML really has changed in the past 10 years!
I'd like to get to ~500 examples, but this is a slow, not-fun process. Will keep y'all posted.

FYI, @bdewilde: Since I added you to the org, you should be able to create repos in it now, so feel free to create the new dragnet-data repo.

Any news on this?

hi @ovidiususan , i've recently begun another attempt at this — pandemic lockdown has given me some extra free time 🙃 — using a different, more scalable method for pulling together high-quality training data. will post an update here when i have news to share, or just create a new dragnet data repo as discussed above. appreciate your patience, i left this on my backburner much longer than planned.

hi folks, i've made some decent progress on this task, and in fact have set up a work-in-progress repo w/ an initial iteration of the data and data-generating code: https://github.com/bdewilde/dragnet_data
i want to finish a few key to-do's — documentation, tests, and actually cleaning / filling in most of the gold-standard texts — then will see about transfering or duplicating the code and data over to this org. will keep y'all posted.

hey @bdewilde! hope all goes well, how's this effort looking?

Hi @nehalecky , very sorry about the delay on this. I've built up a training dataset of ~300 (html, text) pairs out of a total of ~1400, but progress is slow, and I keep getting detoured by other side projects. 🤦♂ I'll try to push other projects aside so I can focus on finishing this project over the next few weeks. Will let you know here how it goes... 🙏

Hi @bdewilde! Wow, thanks for the quick reply, and totally sympathize: data labeling is hard work. 😓
This quarter, we're (at https://github.com/bomboradata) putting effort into enhancing our content extraction performance, and looking to contribute to labeled data. We'd like to contribute to this effort, and had a few questions:

Appreciate your description of workflows here (https://github.com/bdewilde/dragnet_data#methodology-and-data), but am curious to understand how they might be enhanced by use of a data labeling and annotation tool, such as: https://github.com/heartexlabs/label-studio or https://prodi.gy/?
There is still no license added to https://github.com/bdewilde/dragnet_data, and in particular, wanted to know how you and https://github.com/dragnet-org would view granting the labeled data a commercial license (e.g., https://creativecommons.org/publicdomain/zero/1.0/), which makes our ability to contribute to this so much easier?
Finally, I'd like to ask you or the community if know of any other efforts to advance SoA OSS around content extraction use cases?

Thanks much, appreciated!

Oh gosh, thank you tons for the offer to help! I set the code up in such a way that it's locked me into the original ~1400 pages — a large fraction of which are about the early days of the covid-19 pandemic, so both repetitive and bleak — but I've been meaning to restructure so that I or multiple people could extract gold-standard texts in more manageable chunks. Will try to implement a good method for this ASAP.
As for your questions:

I've looked at those two options extensively and particularly, but neither seems to have a good built-in solution for this particular task. This is almost in the same ballpark, but I couldn't figure out how to adapt it. I tried to automate part of the task by programatically extracting page metadata/text from the HTML when possible, but too large a fraction of those extractions are noisy and not of "gold-standard" quality. The manual method I wrote up and follow is slower but much safer. If you know of a good, managed workflow tool, please point me to it!
To be totally honest, I've always been confused by code/data licensing, but am inclined toward a very permissive license. I don't know if that'll be CC0 1.0, or MIT, or something else. Input and expertise would be appreciated!
I've scouted broadly but not deeply into more recent / "state-of-the-art" methods in the html content extraction task, but nothing has really struck me as a huge improvement over what dragnet does. Excluding the methods that fully render a page (JavaScript and all!) then use computer vision to identify main body text, many methods seem to "blockify" text and perform binary classification on blocks based on a mix of structural and content-based features. That's not to say we can't and shouldn't improve upon the existing algo, just that we may not have to reinvent the wheel here. :) I have some ideas on this, but have been waiting on a fresh training dataset (again, sorry about the delay...) before committing to any new methods.

Nice to see work on this front. FWIW, I'll all for changing the license on dragnet_data to something else that allows permissive re-use.

Hi @nehalecky , I've made some changes to the code so that it's easier to do and track gold-standard extractions in batches, which should be nice for me alone, but with a couple minor git additions (branching, rebasing, and pull requests!), should also work for multiple annotators. I think. Here is the process — does it make sense?

Hi all, I've finished compiling 500 (HTML, gold-standard text extraction) example pairs, have added permissive licenses for both the associated code and data, and have transferred ownership of the project to this group: https://github.com/dragnet-org/dragnet_data
The project readme includes thorough instructions on how to add additional examples to the dataset, if one were so inclined, but I think 500 is a fine enough start. There are no tests, for which I hope you'll forgive me.
Given all this, I'm going to close this issue out. Mission accomplished!

As a user of this library, greatly appreciate the hard work done here - anything to improve the quality is always a bonus and I do definitely sympathise with the pain of manually building the gold standard! Just wondering, since there was already a model bundled with this library, are there any plans to push a newly trained version of the model (either just to this repo or to pypi as well), or is the recommendation more to do this ourselves now? Would be nice to be able to just consume one already done, but equally don't mind doing this myself since the instructions to train it aren't too difficult.

@shakeelsoogun Thanks for asking :) I've hacked a bit on a major revamp of dragnet 's underlying models / methodology, since there's been some progress on this task over the past few years, but honestly I haven't had bandwidth to do much. It would be a lower lift to adapt the current setup to the new data, but it would still require changes to dragnet 's code base owing to changes made in structure and content of the new training dataset. This is on my to-do list, but I don't have any guesses on timelines. Don't let me deter you from training your own!


Specta

What's the reasoning behind not using specta for testing expecta? Is it circular submodules?

I agree with @jspahrsummers rationale. Closing as resolved.


[REM] res_partner_company_messages is relocated to

https://github.com/it-projects-llc/mail-addons/pull/68


Add E2E test for fine-tuning/export/tgi, currently fails.

Expose issue from https://github.com/h2oai/h2ogpt/issues/423

TGI itself seems the issue, works with 0.8.2, fails with 0.9.1

from modelling_RW.py:
class RWPreTrainedModel(PreTrainedModel):
    _keys_to_ignore_on_load_missing = [r"h.*.self_attention.scale_mask_softmax.causal_mask", r"lm_head.weight"]
    """
    An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
    models.
    ""

so probably just latest TGI too picky


A11y_visualStudioCodeClient_Customizations and settings_Error Prevention: There is no confirmation message provided before deleting the shortcut key.

GitHubTags:
#A11yMAS; #A11yTCS; #A11ySev2; #DesktopApp; #Visual Studio Code Client; #BM-VisualStudioCode-Win32-Nov2021; #Win32; #error Prevention; WCAG3.3.4; #FTP; #STP; #AINotInScope;
Environment Details:
Application Name: Visual Studio Code Client
Windows Version: Windows 11
Repro Steps:
1.Open Visual studio code editor.
2.Naviagte to setting icon
3)Select "Keyboard shortcuts options"
4)Verify whether there is any confirmation message is for deleting shortcut or not.
Actual Result:
There is no confirmation message provided before deleting the shortcut key.
Expected Result:
There should be any confirmation message provided for deleting the key.
User Impact:
User will not get any chance to validate the deletion action.

Assigning to @isidorn for validation


import --assets is broken

ᐅ academic import --assets
Downloading jquery.min.js from https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js...
Downloading bootstrap.min.js from https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.min.js...
Downloading highlight.min.js from https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js...
Downloading MathJax.js from https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS_CHTML-full...
Downloading isotope.pkgd.min.js from https://cdnjs.cloudflare.com/ajax/libs/jquery.isotope/3.0.4/isotope.pkgd.min.js...
Downloading imagesloaded.pkgd.min.js from https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.3/imagesloaded.pkgd.min.js...
Downloading autotrack.js from https://cdnjs.cloudflare.com/ajax/libs/autotrack/2.4.1/autotrack.js...
Downloading gmaps.min.js from https://cdnjs.cloudflare.com/ajax/libs/gmaps.js/0.4.25/gmaps.min.js...
Downloading leaflet.js from https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.2.0/leaflet.js...
Downloading jquery.fancybox.min.js from https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.2.5/jquery.fancybox.min.js...
Downloading fuse.min.js from https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.1/fuse.min.js...
Downloading jquery.mark.min.js from https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js...
Downloading instantsearch.min.js from https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/2.10.2/instantsearch.min.js...
Downloading anchor.min.js from https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.1/anchor.min.js...
Merging JS assets into static/js/vendor/main.min.js
Traceback (most recent call last):
  File "/usr/local/bin/academic", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/academic/cli.py", line 75, in main
    import_assets()
  File "/usr/local/lib/python3.6/site-packages/academic/cli.py", line 282, in import_assets
    merge_files(js_files, JS_FILENAME)
  File "/usr/local/lib/python3.6/site-packages/academic/cli.py", line 323, in merge_files
    with open(destination, 'w', encoding='utf-8') as f:
IsADirectoryError: [Errno 21] Is a directory: 'static/js/vendor/main.min.js'

Thanks for reporting this bug. It has been fixed in v0.2.5, now on Pypi.


radius in cpMomentForPoly()

The API documentation does not mention what the 'radius' parameter is used for in
cpFloat cpMomentForPoly (cpFloat m, int count, const cpVect *verts, cpVect offset, cpFloat radius)
The polygon defines the shape, so why the radius?
Looking at the source code, the radius parameter is not used, but marked for 'TODO.' What is the intention for this?

Ok, never mind, I see in the docs for poly shape, that they have rounded corners.


App pairs on its own to another e-bike which is nearby

I think a system is needed to uniquely associate the app to your e-Bike as soon as the primary bike is read, because situations could happen in which another e-Bike is near the Garmin device and the app reads the values of this e-Bike instead.
This situation occurred just today when another Giant Trance E + joined to my ride and my Garmin was showing data from the other Giant instead of my e-MTB even if my bike was on.
The app is designed to read the data of 3 e-Bikes, if I set the data of the second and third e-Bikes to a particular value (eg 9999), can I prevent the app from associating itself with other bicycles?

With the latest version 0.8.0 I 've added what you suggested as the default behavior, because this is something that happen also to me :) As you already have the data field installed, you will need to update the Secondary LEV Device Number and Tertiary LEV Device Number app settings values to -1, which will prevent from searching for additional E-Bikes.

Thank you so much! ;)


Panic on incorrect messages instead of controlled errors

Hello there!
When using the library I noticed that if you read an ASD-B message with crc != 0, the application panic instead of returning a controlled error. Also happen when reading a DF number not supported. e.g:
thread 'tokio-runtime-worker' panicked at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/rs1090-0.3.6/src/decode/mod.rs:305:60:
called `Result::unwrap()` on an `Err` value: Assertion("Invalid CRC in ADS-B message: 8010744")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-runtime-worker' panicked at /app/libs/rs1090/crates/rs1090/src/decode/mod.rs:305:60:
called `Result::unwrap()` on an `Err` value: Parse("Could not match enum variant id = 3 on enum `DF`")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I have seen that the issue is just right here:
https://github.com/xoolive/rs1090/blob/cf5584b5387ede3cf141bc1a077b5ee70bfed95f/crates/rs1090/src/decode/mod.rs#L305
The unwrap is making the application crash. Switching it with a ? is enough since I already have tested it. If you want, I can send PR with the fix.
Thanks for your work!! :)

Thanks for the feedback. I am currently afk so a PR is very much welcome. Thank you

Thanks for the feedback. I am currently afk so a PR is very much welcome. Thank you

https://github.com/xoolive/rs1090/pull/83 Done. 😄


Add option for in-place data processing in evp_test

This PR provides a command line option for setting in-place data processing for cipher tests in evp_test. By default, the test script runs data processing in both mode - cipher tests are run in-place and non-in-place. For other (non-cipher) tests, the option is ignored.
Changes are part of the enhancements to evp_test discussed in #21424.

I am not sure we need an option for this. Basically we should always do both the in-place and normal test.

I think we should do both by default for ciphers - but a dedicated option is worth having for manual run.

I think we should do both by default for ciphers - but a dedicated option is worth having for manual run.

Not sure why - the only reason would be to make the manual run faster doing only not-in-place or in-place runs. However I think the symmetric encryption tests are quite fast.

Ping @openssl/committers for the 2nd review, all nits seem to be fixed

My approval is relevant after renaming the variable. @t-j-h could you please reconfirm?

Still approved.

Squashed and merged. Many thanks for the contribution!


Microsoft.DataProtection/BackupVaults/backupPolicies is not idempotent

Bicep version
This is an ARM bug which I don't know where to report properly, but needs action.
Describe the bug
Microsoft.DataProtection/BackupVaults/backupPolicies@2020-01-01 is not idempotent. It errors out with Status Message: Update of existing policy is not supported. (Code:UserErrorBMSUpdatePolicyNotSupported)
To Reproduce
Steps to reproduce the behaviour would be something similar like this (ARM):
      "type": "Microsoft.DataProtection/BackupVaults/backupPolicies",
         "apiVersion": "2020-01-01-alpha",
         "name": "[concat(variables('vaultNameRegion'),'/',parameters('policyName'))]",
          "dependsOn": [
                       "[resourceId('Microsoft.DataProtection/BackupVaults', variables('vaultNameRegion'))]"
                       ],
         "properties":
         {
             "policyRules": [
                 {
                     "name": "Default",
                     "objectType": "AzureRetentionRule",
                     "isDefault": true,
                     "lifecycles": [
                         {
                             "deleteAfter": {
                                 "duration": "P30D",
                                 "objectType": "AbsoluteDeleteOption"
                             },
                             "sourceDataStore": {
                                 "dataStoreType": "OperationalStore",
                                 "objectType": "DataStoreInfoBase"
                             },
                             "targetDataStoreCopySettings": []
                         }
                     ]
                 }
             ],
             "datasourceTypes": [
                 "Microsoft.Storage/storageAccounts/blobServices"
             ],
             "objectType": "BackupPolicy",
             "name": "[parameters('policyName')]"
         }
     }

Additional context
Reported here as well.
Fixing it with a feature flag or PowerShell is not a solution imho, providing Bicep with an option to check if this resource exists and conditionally create it is.

What's the recommended workaround for this issue for now? It can't be by design that I shouldn't be able to run ARM/Bicep templates which configure a backup policy more than once, that goes against the principles of ARM/Bicep...

It is not by design, it is just not something we can fix on our own. We have notified the responsible resource provider team, but can't do much more than that. The best thing to do would be to open a support ticket, so the issue can be routed to them and an appropriate fix or mitigation can be committed by the product team.

@aristosvo I don't know if you've been in contact with MS about this issue, but I have and just wanted to let you know that the fix for this issue is in the pipeline for deployment during the first half of 2022. It may require a new API version of the resources which should be available to all within the next few weeks.

I agree with your suggestion that Bicep should still have functionality for creating/updating resources conditionally though, as a fallback for when issues like this (inevitably) present themselves.

I am using version 2022-11-01 and still not fixed. Any workaround suggestions, please?


Dart Observatory bleeding edge is broken as a result of https://dart-review.googlesource.com/c/sdk/+/20664

Checking in this change:
https://dart-review.googlesource.com/c/sdk/+/20664
Now causes Observatory to no longer work.
STEPS TO REPRO:
$ dart --observe  foo.dart
On opening the webpage, you will see a blank screen. If you open the console, the following error occurs:
Uncaught Error: NoSuchMethodError: method not found: 'json'
Receiver: ""
Arguments: []
at Object.f (main.dart.js:2019)
at Object.bx (main.dart.js:2203)
at Object.a_r (main.dart.js:18371)
at Vn.Bj (main.dart.js:19276)
at Object.Qo (main.dart.js:15236)
at B.S (main.dart.js:32759)
at Object.J.z3 (main.dart.js:36452)
at Ug.dart.aaa (main.dart.js:7688)
at a3y.$0 (main.dart.js:2553)
at pe.iU (main.dart.js:1524)

/cc @rakudrama @floitschG @eernstg @rmacnak-google

Revert of the CL was rejected: https://dart-review.googlesource.com/c/sdk/+/21421
There was a test that had been modified in the meantime (lib_2/convert/utf84_test.dart) and reverting the CL would have broken the build.
I tried to upload my own revert, but my notebook is currently not set up for gerrit, and I'm unable to upload any change.

Reverting just the changes to the observatory directory seems to be enough to fix the error, at least locally (https://dart-review.googlesource.com/c/sdk/+/21620).
This is probably just a garden variety bug, a variable renamed or not renamed incorrectly as part of the larger fix, that wasn't caught by any tests.

Fixed by 84c8f27e51e8dba1d0f29fd823512033983d8003

Thanks for fixing Observatory.
I have been looking at the CL for quite a while and I still don't see why any of the s/JSON/json/ changes should have introduced an unresolved identifier, or introduced a reference to a local called 'json' ahead of the local's definintion.

According to Zach, the observatory is not built with the latest SDK, but with the checked-in executable.
That would explain it (I think).

That makes sense. In that case, not updating the code is the correct thing to do (until we decide to update the checked-in executable to Dart 2, but we only need to do that once).


Long lines chopped at window/terminal width

There is currently no support for horizontal scrolling or word wrapping, causing the extra content to be chopped off. Word wrapping (In my opinion highest priority!) and horizontal scrolling needs to be implemented.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4366933-long-lines-chopped-at-window-terminal-width?utm_campaign=plugin&utm_content=tracker%2F282001&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F282001&utm_medium=issues&utm_source=github).

Moved to frontend repos https://github.com/limetext/lime-termbox/issues/14, https://github.com/limetext/lime-qml/issues/30.


pypi	grpcio

Type: Missing
Summary:
pypi	grpcio
Details:
PyPi site indicates license is Apache 2.0
Resolution:
Metadata file in package indicates license is Apache 2.0
Affected definitions:

grpcio 1.31.0

Closing; declared license is already stated as Apache 2.0.


Tweening Transform2D borken when initial scale is not (1, 1)

Godot version
v4.1.stable.official [970459615]  < Steam
System information
Godot v4.1.stable - Debian GNU/Linux trixie/sid trixie - Vulkan (Mobile) - dedicated NVIDIA GeForce GTX 1060 (nvidia) - Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz (6 Threads)
Issue description
When a tween is performed on a Transform2D, where the starting value has a scale which isn't (1, 1), both the position and scale of the intermediate values will be incorrect.  However, the correct transform will be applied at the end of the tween:
https://github.com/godotengine/godot/assets/441188/d190e224-3212-457a-9ba6-563b09abe930
Steps to reproduce
Eg:
var tween := create_tween()
var start := Transform2D(Vector2.RIGHT, Vector2.DOWN, Vector2(100,100)) * 0.5
var end := Transform2D(Vector2.RIGHT, Vector2.DOWN, Vector2(200, 100))
(tween.tween_property($Tweened, "transform", end, 2.0)
	.from(start)
	)

Minimal reproduction project
Single self-contained scene. Click to start the tween:
tween_transform2d.zip

As a workaround, Transform2D.interpolate_with appears to work as expected, so one can apply the interpolation manually via tween_method instead. Eg:
tween.tween_method(
	func(weight): thing.transform = start_transform.interpolate_with(end_transform, weight),
	0.0, 1.0,
	duration,
	)


Double clicking arrows causing animation to fire twice

Hello,
I am not sure if this is an issue with the library itself or just with the demo page but double clicking the arrows causes the scrolling animation to replay twice. It will do the initial scroll down, jump back to the top and then scroll down again. Just thought I would give a heads up :)

Hey! just saw your little project, love the idea, a possible solution would be to disable the click button as soon as you click on it, and enable it after the the scroll has been completed, just an idea :)

@davereid91 the best solution here is to handle throttling the click event externally, as @yuraxdrumz describes. I built the demo page in a hurry 😉, small oversight on my part haha

hey there, i am having a similar issue, cant i i.e set a variable animationInProgress = true , and callback it to false if the scrollevent is finished? i can't make it work somehow.


All VS2010 projects have incorrect Release|x64 configuration

Description

Type: Bug
Priority: Minor

Bug
All VS2010 projects have an error in Release|x64 configuration.
This line must be deleted:
<PlatformToolset>Windows7.1SDK</PlatformToolset>
In that case the value would be inherited from project defaults, which is fine - as it is in other configurations.
If PlatformToolset was to be defined, the value should have been v100.
It looks like a TargetPlatform definition, but in that case the line is in the wrong place; and this is not necessary either.
OS
Mbed OS: Windows
mbed TLS build:
The bug was present in development branch since the first commit.

Thanks for the feedback! We'll look into this.

ARM Internal Ref: IOTSSL-2165

A sed command deleting the lines with the pattern and applied to all *.vcxproj files should do the trick:
/Windows7.1SDK/d

This trivial change is of the kind that are cheaper to fix and forget immediately rather than keep and maintain in the list.
Is there anything blocking, or maybe a PR is needed?

@RonEld Why is this being closed?

The issue was mostly fixed in the development branches of both mbedtls and mbedtls-crypto.
But there is one complication.
The main project visualc\VS2010\mbedTLS.vcxproj, unlike others, is created from
template scripts\data_files\vs2010-main-template.vcxproj.

@irwir Please raise PRs and we can review and merge from there. Thanks!

@Patater
Would it be possible to merge more than one tiny issues into one PR?

@irwir The smaller the PR, the quicker it is for us to review and merge. Large PRs tend to get left behind and go stale. The preferred approach is multiple PRs that can be merged independently.


Dynamically update weather forecast from Siri intent

Moves the LocationController, GeocodeController and ForecastController into TroposCore, then makes use of them in CheckWeatherIntentHandler to dynamically update the weather forecast before reading it to the user.

No idea why the tests are failing; I'm going to merge this.


HSEARCH-2965 Do not generate the PDF documentation by default

https://hibernate.atlassian.net//browse/HSEARCH-2965

Merged, thanks!


Update bot-builder-tutorial-basic-deploy.md

Even when the command and parameters name used are correct, the context given to the reader is poor, specially in the deployment section. You should explain first to the reader what are you going to do before start shooting commands. Also there are some instructions that are not clear such as:
"Select all the files and zip them up while in that folder, then run the command while still in that folder." What command?
The hierarchy of this section is not well structured. The title: Retrieve or create necessary IIS/Kudu files appears to be inside: Deploy via ARM template (with existing Resource Group). This confuses a lot, because it belong more to the part of deploying the code of the bot to an already prepared resource group.
I have proposed some additional context and changes in the hierarchy of the article.

Closed as a new one based on this was proposed


Fix to issues around entity comparisons in query

#11288 - Query: Join/GroupJoin where key selectors are qsres or navigations fails during compilation
#10974 - Query: Include Collection group by reference throws exception
#11245 - Query: compilation error for queries with join where the inner key is navigation
#11022 - Query: GroupJoin with a complex join key fails during compilation
#9481 - EF Core joining on the wrong field when using GroupBy

Added step to the QueryOptimizer that converts entity qsre comparison to key comparisons instead for order by join and group join,
Improved logic of join/groupjoin inner key navigation rewrite to correctly handle case when navigation is the final operator (i.e. no scalar is projected at the end),
Improved "requires materialization" logic to correctly mark qsre projected out of subquery that is a result of nav rewrite of join/groupjoin inner key.

new version up

ping

Can you rebase on release/2.1 branch properly? May need to cherry-pick the commit.

@smitpatel done


Ability to ignore or remove Console.ReadLine() and Console.ReadKey() with dotnet try

Summary
Console.ReadLine() or Console.ReadKey()  is found at the end of static void Main(string[] args) in almost all sample console apps found on GitHub (and elsewhere).  This is of course required (or at least preferred to provide a good experience) when executing these sample console apps on a local machine.
However, when executing the same sample apps with dotnet try, Console.ReadLine() prevents the execution from ever finishing and showing output, and Console.ReadKey() throws an exception:
Unhandled Exception: Unhandled Exception: System.InvalidOperationException: Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read.
   at System.ConsolePal.ReadKey(Boolean intercept)
   at System.Console.ReadKey()
   at SentimentAnalysisConsoleApp.Program.Main(String[] args)

Unfortunately, this is the only thing preventing us from making a majority of the sample apps in GitHub repos work with dotnet try by simply updating the README (and maybe refactoring some code).
Example
Here is an example of where we ran into this issue after making the sentiment analysis sample work with dotnet try.
Recommended Solutions
If we could make dotnet try, either:

Ignore Console.ReadLine() or Console.ReadKey() altogether possibly with the ability to opt-in with an argument, or
Add the ability to remove within a #region using arguments on the code-fence similar to the insert functionality provided by the --destination-file argument

It would be very simple to make any sample console app on GitHub work with with dotnet try by simply adding a few lines to the README.

cc: @CESARDELATORRE

Thanks, @colbylwilliams.
I opened #230 to describe an approach that might address this. Thoughts?

Thanks @jonsequitur.  Yes, I think the added functionality you outline in #230 would be a great addition to dotnet try and would address the issues I outlined.
I do still think the ability to remove a #region (and the code within it) using arguments on the code-fence would be beneficial in multiple scenarios.  For example, being able to remove #regions and using the --session argument would greatly improve the ability to actually run smaller "chunks" of code.
It would also enhance a users ability to use the same console app code for samples, READMEs, documentation, websites, etc., by changing what is actually shown to the user for each scenario.  Including when --editable false is used.
While I agree that the enhancements you propose would allow me to solve the issue I outline above in a more robust way, being able to remove #regions would be a simple (likely easier to implement) solution, while the enhancements you propose a being worked on.
Plus I think there are enough useful use-cases for removing #regions that the feature would create long-term value and not be a short-term workaround.
(All that said, I'm absolutely making assumptions on the effort required to add the remove-region functionality.  I may be way underestimating.)


standardized comment on LoadMetaData function

Ⅰ. Standardized comment on LoadMetaData function
Ⅱ. fix #304
Ⅲ. No tests are needed since it's merely a modification of comment
Ⅳ. Please review it by godoc to verify it has fit the standardization requirement.
Ⅴ. No special notes

Could you open an issue on it and relate it to the PR. Thanks.

Could you open an issue on it and relate it to the PR. Thanks.

Have I done it right now? Thanks for you time.

Thanks.


#238 fixing login-related bugs

Fixes the bugs relating to logging out and restarting the game

Bugs this fixes:

When you logout and login with a new user, everything looks fine except the old molecules you built with the previous user are still there
When you hit “end game” with a new user, you go back to the previous user


Rewrite of auto-tagging, fixing multiple bugs

A major rewrite of auto-tagging from kubernetes labels.
Sorry for big PR, but old code was broken in too many ways.
Functionality changes:

Find existing tag if already created.  This should fix refresh crashes:
https://bugzilla.redhat.com/show_bug.cgi?id=1382347
(cases were several values with different case/punctuation are mapped to the same tag)
https://bugzilla.redhat.com/show_bug.cgi?id=1382361
(when concurrent refresh already created the same classification but it is not in our cache)

Added regression tests for all these failure modes.
Added some auto-tagging testing to the full refresh integration tests.

This will map name=value and name=VALUE labels to same tag,
which does not reflect Kubernetes label case-sensitive semantics, but is OK in practice.
Alternative would be creating tags with ugly name containing e.g. SHA1 of the label value.

Catch & log exceptions so if any auto-tagging bugs remain, they won't break refresh.

Do not insert mappings while mapping.
Previously given any-value mapping for name, when encountering new name=value label,
we'd insert both new Tag + Classification and a new specific-value mapping for (name, value).
This reduces cache issues, plus will be less confusing in UI #11591.

We still insert Tag + Classification.  Attempted making this race-condition-free.  Locking the parent Classification row (only when created new entry for a new label value).  Not sure it's bulletproof.

Caching is now bounded to one refresh.
Will allow UI (#11591) editing the table to take effect on next refresh.

Reverted previous decision on empty-value handling — we decided to not create special "<Empty>" tags for them.

Refactoring
Rewrote how mapping table is cached (no more permanent global cache), and how it's called from refresh.
ContainerLabelTagMapping interface is now a bit weird:

obtain cache
given cache, map labels to hashes - called in refresh_parser
given hashes, create and [un]assign tags - called in save_tags_inventory

The labels it takes are now in {:name, :value} format rather than CustomAttribute instances.
Parsing now returns independent :labels and :tags, got rid of :labels_and_tags.
@miq-bot add-label providers/containers, bug, darga/yes, euwe/yes
Thanks @moolitayer for design help & pair programming.

@simon3z @moolitayer still working on this but PTAL, it'll be something close to this.
I decided not to go the "we control everything under /managed/kubernetes:..." route yet.
That would be essentially a performance optimization for "which tags we can remove", and it might simplify things for UI phase 2, but I think it belongs better in a less-backported followup.
For now, "we control tags we map to + children of categories we map to" should do.

we shouldn't be using a custom cache (if you really want to use a cache read how rails handles that), so please remove it (drop_cache is not enough)
if you want a cache per-refresh just load the mappings at the beginning of the refresh (in the refresh object) and use that when needed

Do you mean rails will just cache it for me automagically, or I should explicitly use Rails.cache?
Re automagically, I must admit I never checked if it'd Just Work in 'production' envirnment; at least in  development env it'd load whole mapping table for every taggable entity.  O(N*M).
Re Rails.cache, sure I can rewrite to that.  But the bugs are not about achieving caching, they're about invalidating it, which remains the same question. Will there be a concrete benefit, or is it just to be idiomatic?
My current cache is at least loaded and dropped atomically all at once; I worry that if different parts expire separately, extra bugs might surface(?)

I had a ready refactoring where you explicitly construct a ContainerLabelTagMapping::Cached instance, use it to map, and discard when not needed.
I wanted to construct it at beggining of refresh but found no object/place on which to hold it :-(
I hoped to stick it on ContainerManager::Refresher instance (not sure if it's long-lived or per-refresh),
but where I need to access it is from save_inventory_*, which all end up as class methods of EmsRefresh — there is never any EmsRefresh instance AFAICT — and the save_inventory_* methods don't get passed the refresher.
Any advice?

I hoped to stick it on ContainerManager::Refresher instance (not sure if it's long-lived or per-refresh), but where I need to access it is from save_inventory_, which all end up as class methods of EmsRefresh — there is never any EmsRefresh instance AFAICT — and the save_inventory_ methods don't get passed the refresher.
Any advice?

@cben yes, just follow the usual rules, pre-cumpute the tags at refresh-time where you can have a local cache (just like @data and @data_index for example) and place the relevant tags into the hashes (e.g. :tags).
This alone will allow you to drop all the cumbersome cache in ContainerLabelTagMapping, have a local private cache at refresh-time, have a more standardized save_inventory and of course it means that we'll drop a lot of the current code (you may have to revert the renaming from :labels to :labels_and_tags because you would keep :labels and the pre-computed :tags separate in the hashes).

@simon3z Mostly rewrote to use hash during parse phase, create tags in save phase.
@moolitayer and @zeari didn't see how to cleanly use save_inventory_multi or friends, so still doing custom add/remove/preserve user-assignable logic in save_tags_inventory...
Still need to re-do all container_label_tag_mapping_spec.rb but PTAL.

@miq-bot remove-label wip
I still want to add tests on the logic that adds/removes mapped tags while preserving user-assigned tags, but please do review this.

@moolitayer please review
@cben have you tested/verified this on your side?

LGTM @simon3z

@cben have you tested/verified this on your side?

Ping @cben

Added the missing re-tagging logic tests today and caught a big bug.  Now happy with tests, but I'll also do an end-to-end test with UI today.
Currently rebasing on master to fix tests & slightly cleaning history...  Almost done.

Doing more manual testing but I believe this is done & ready.
@moolitayer can you also review the last commit?

Bah.  In manual testing with case collision I'm seeing duplicate tag got created:  :frowning:
[#<Tag:0x00563e4ec5bf60
  id:<PHONE_NUMBER>1845,
  name: "/managed/kubernetes:container_project:projectsize">,
 #<Tag:0x00563e4ec5ba60
  id:<PHONE_NUMBER>1846,
  name: "/managed/kubernetes:container_project:projectsize/casebug">,
 #<Tag:0x00563e4ec5b920
  id:<PHONE_NUMBER>1847,
  name: "/managed/kubernetes:container_project:projectsize/casebug">]

Investigating...
@miq-bot add-label wip

OK, 3 questions:

[ ] Why did UI for "Region 0 [0]" create a rule with region_id == 10 pointing to category with region_id == 10?  It's not just the mapping UI, my (rather dirty) DB has tons of tags in_region(0) and similar number in_region(10).

[ ] category.find_entry_by_name("foo") defaults to my_region_id and returns nil if category is from another region.  That's why new tags are getting created (not yet sure how they passed uniqueness validation).  category.find_entry_by_name("foo", category.region_id) would work.

[ ] Should we at all apply mapping rules whose own id or whose tag/category is from another region?
Tags are segregated per-region, right?
The mapping UI (#11591) will also be under a specific region's settings (though we adopted that without much thought).

I propose mapping UI should show only rules from selected region and refresh should only apply rules from current region.  @simon3z @moolitayer @zgalor @gtanzillo ?

Is this ready @cben ? do you want to remove the wip label?
@gtanzillo let me know if you need more info

@miq-bot remove-label wip
Continuing manual testing but I believe the code is ready.

@cben I dont know why travis got that error. It doesnt replicate on my machine.
Can you open\close the PR to re-run the tests?

Test failure (./spec/models/chargeback_container_project_spec.rb:397) is unrelated, happens in recent master builds: https://travis-ci.org/ManageIQ/manageiq/builds

Manual testing (with UI):

[x] Basically functions
[x] UI rule additions take effect on next refresh
[x] UI edits (only allows changing category description) and deletions take effect immediately
[x] Survives case collision (https://bugzilla.redhat.com/show_bug.cgi?id=1382347)
[ ] Haven't tested 2 providers yet
[ ] Haven't tested empty value yet

LGTM :+1:
@miq-bot assign gtanzillo
cc @gtanzillo

Euwe Backport details:
$ git log -1
commit bbcda770928a952d649f8f3df48169294127e93b
Author: Gregg Tanzillo<EMAIL_ADDRESS>Date:   Fri Oct 28 09:09:21 2016 -0400

    Merge pull request #11806 from cben/auto-tagging-noinsert

    Rewrite of auto-tagging, fixing multiple bugs
    (cherry picked from commit 9800efa91dfffd0f34314a27216ec8fe0c233b38)

    https://bugzilla.redhat.com/show_bug.cgi?id=1382347
    https://bugzilla.redhat.com/show_bug.cgi?id=1382361

Edited cloned euwe & darga BZs into PR description.

@miq-bot add-label blocker (for darga)

@miq-bot add-label blocker
(for darga, see BZs in PR description)

@chessbyte is anything missing for darga backport?

Darga Backport details:
$ git log -1
commit 10f235a080851b04673d8804b1910e0d887af18b
Author: Gregg Tanzillo<EMAIL_ADDRESS>Date:   Fri Oct 28 09:09:21 2016 -0400

    Merge pull request #11806 from cben/auto-tagging-noinsert

    Rewrite of auto-tagging, fixing multiple bugs
    (cherry picked from commit 9800efa91dfffd0f34314a27216ec8fe0c233b38)

    https://bugzilla.redhat.com/show_bug.cgi?id=1390698
    https://bugzilla.redhat.com/show_bug.cgi?id=1390697


Fix typo in CompositorEffect documentation

Changes build in post effects to built-in post-processing effects.

Thanks!


Refactor Symbolic & SymbolicData

[x] Move & modify DiscreteField from Symbolic to Basic
[x] Create a Trichotomy class for discrete fields with a total ordering with law of trichotomy
[x] Create Trichotomy instances for Zp
[ ] Create Trichotomy instance for ArithmeticCircuit
[x] Redefine Symbolic using Trichotomy
[x] Create a VectorSpace class for vector spaces over a field with a Basis type
[ ] Create lots of VectorSpace instances and relate to Representable functors and generics
[x] Redefine SymbolicData using VectorSpace
[ ] Reimplement all SymbolicData instances as VectorSpace and associated instances
[x] Create a Tensorial class for multlinear maps of vector spaces with InputBasis and OutputSpace types
[ ] Redefine Arithmetizable using new SymbolicData
[ ] Reimplement all Arithmetizable instances
[ ] Create comparison classes Eq and Ord for symbolic data with default Foldable implementations and lots of instances
[x] Create algebraic classes (AdditiveSemigroup, etc) for SymbolicData
[ ] Implement algebraic classes for Identity, UInt n
[ ] Implement algebraic classes for Vector n u
[ ] Replace list algorithms in UInt and ByteString with vector algorithms

@TurtlePU
Arithmetization looks like this then:
class Arithmetizable a f where
  type InputRep a f :: Type
  type OutputRep a f :: Type
  arithmetize :: f -> (InputRep a f -> ArithmeticCircuit a) -> OutputRep a f -> ArithmeticCircuit a

instance SymbolicData a u => Arithmetizable a (u (ArithmeticCircuit a)) where
  type InputRep a (u (ArithmeticCircuit a)) = Void
  type OutputRep a (u (ArithmeticCircuit a)) = Rep a u
  arithmetize c _ = index c

instance (SymbolicData a x, Arithmetizable a f) => Arithmetizable a (x (ArithmeticCircuit a) -> f) where
  type InputRep a (x (ArithmeticCircuit a) -> f) = Either (Rep a x) (InputRep a f)
  type OutputRep a (x (ArithmeticCircuit a) -> f) = OutputRep a f
  arithmetize f i = arithmetize (f $ tabulate (i . Left)) (i .  Left)) (i . Right)

Why does arithmetize have this signature?

@vlasin
InputRep is an indexing type for function inputs, OutputRep is an indexing type for function outputs
To arithmetize a function of type f, we need to have prepared inputs in a mapping of type InputRep a f -> ArithmeticCircuit a and generate outputs in form of a mapping OutputRep a f -> ArithmeticCircuit a

@vlasin
InputRep is an indexing type for function inputs, OutputRep is an indexing type for function outputs
To arithmetize a function of type f, we need to have prepared inputs in a mapping of type InputRep a f -> ArithmeticCircuit a and generate outputs in form of a mapping OutputRep a f -> ArithmeticCircuit a

Got you, makes sense.

@TurtlePU here's a variant I got past GHC.
class Arithmetizable a f where
  arithmetize :: f -> (Inputs a f -> ArithmeticCircuit a) -> Outputs a f -> ArithmeticCircuit a

type family Inputs a f where
  Inputs a (x (ArithmeticCircuit a) -> f) =
    Either (Basis (ArithmeticCircuit a) x) (Inputs a f)
  Inputs a (u (ArithmeticCircuit a)) = Void

type family Outputs a f where
  Outputs a (x (ArithmeticCircuit a) -> f) = Outputs a f
  Outputs a (u (ArithmeticCircuit a)) = Basis (ArithmeticCircuit a) u

instance {-# OVERLAPPABLE #-}
  ( SymbolicData (ArithmeticCircuit a) u
  , Basis (ArithmeticCircuit a) u ~ Outputs a (u (ArithmeticCircuit a))
  ) => Arithmetizable a (u (ArithmeticCircuit a)) where
    arithmetize c _ = indexV c

instance {-# OVERLAPPING #-}
  ( SymbolicData (ArithmeticCircuit a) x
  , Arithmetizable a f
  ) => Arithmetizable a (x (ArithmeticCircuit a) -> f) where
    arithmetize f i = arithmetize (f $ tabulateV (i . Left)) (i .  Left)) (i . Right)

If we unroll the right hand side type of arithmetize we get a multilinear function of vector spaces
(Inputs a f -> a) -> Outputs a f -> a
~=~
(SymbolicData v0, .. , SymbolicData vN) => vN a -> ... -> v0 a

A proposal to unify Arithmetizable, SymbolicData and FieldElementData back into one class:
class SymbolicData c d where
  type Input c d :: Type
  type Layout c d :: Type -> Type

  apply :: d -> Input c d -> c (Layout c d)
  restore :: (Input c d -> c (Layout c d)) -> d

instance SymbolicData c (c f) where
  type Input c (c f) = ()
  type Layout c (c f) = f

  apply x _ = x
  restore f = f ()

instance HApplicative c => SymbolicData c () where
  type Input c () = ()
  type Layout c () = U1

  apply _ _ = hpure U1
  restore _ = ()

instance (HApplicative c, SymbolicData c d, SymbolicData c e, Input d ~ Input e) => SymbolicData c (d, e) where
  type Input c (d, e) = Input c d
  type Layout c (d, e) = Layout c d :*: Layout c e

  apply (d, e) i = hliftA2 (:*:) (apply d i) (apply e i)
  restore f = (restore (hmap (\(x :*: _) -> x) . f), restore (hmap (\(_ :*: y) -> y) . f))

instance SymbolicData c d => SymbolicData c (i -> d) where
  type Input c (i -> d) = (i, Input c d)
  type Layout c (i -> d) = Layout c d

  apply f (i, j) = apply (f i) j
  restore f i = restore (\j -> f (i, j))

compile :: (SymbolicData (AC a) f, SymbolicData (AC a) (Input (AC a) f), Input (AC a) (Input (AC a) f) ~ (),
            SymbolicData (AC a) x, Input (AC a) x ~ (), Layout (AC a) x ~ Layout (AC a) f) => f -> x

I think SymbolicData needs to connect to VectorSpace?
class (Symbolic a, VectorSpace a (RepV a u)) => SymbolicData a u where
  type RepV a u :: Type -> Type
  toSymbolic :: RepV a u a -> u a
  fromSymbolic :: u a -> RepV a u a

I think SymbolicData needs to connect to VectorSpace?

Not necessarily, but we can surely do so
Btw, I think we can use the standard Representable from profunctors for our functors because now the datatypes itself contain enough info to propagate information about field size to the underlying functor (the BaseField associated type in new Symbolic class)

Proposed definition of SymbolicData after we merge #214:
class SymbolicData d where
  type Context d :: (Type -> Type) -> Type
  type Support d :: Type
  type Layout d :: Type -> Type

  pieces :: d -> Support d -> Context d (Layout d)
  restore :: (Support d -> Context d (Layout d)) -> d

closing, obviated by other developments


[stable/node-red] bumping docker image to latest official v1.0.1 version

What this PR does / why we need it:
This chart bumps node-red to the official v1.0 branch (specifically v1.0.1) using the 1.0.1-12-minimal tag.  See this repo for more details.
Starting with v1.x, the node-red images are multi-arch meaning that the workloads can now be deployed to architectures other than just amd64.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @batazor

@batazor can you take a look at this one?

@billimek thanks :+1:

/lgtm

/ok-to-test

@scottrigby :eyes:


Extends complete insertion chain replacement to arrays

Complete insertion replacement now handle array types
Some annoying rewrites due to CompositeType not providing some common
functionality.
new test

Rebased, squashed, and pushed into master as f866141


Arduino refactor

I resolved conflicts arising from #25 and #29, all tests passing. @calebweinreb, can you please write some unit tests for the microcontroller.py code, e.g. in /tests/interfaces/test_microcontroller.py?
One should have to opt-in to running the tests with some pytest flag like runmcu (see how @kaijfox did this for rungui in tests/visualization/conftest.py).
Tests I could imagine include:
-- make sure it finds a connected arduino
-- make sure it rejects bad pin sequences in various ways
-- a full test of refactor_acquire_video() with the mcu configured as desired.
And then also what you wrote in the 6cam channel, ie testing the inputs get written to a file.
Thanks!

Also this might be a good time for @timsainb to jump in with the code to read in the random sync bit changes from the cameras. Maybe don't do it on this PR, but starting from this branch (arduino-refactor) makes sense as a starting point.


Server Status Bug

Description of Issue
Get this error in the cmd prompt for Server Status trying to import 'tinygradient'
Errors or Screenshots of Issue
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'tinygradient' imported from c:\SquadJS\plugins\discord-server-status\index.js
at packageResolve (internal/modules/esm/resolve.js:616:9)
at moduleResolve (internal/modules/esm/resolve.js:655:14)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:748:11)
at Loader.resolve (internal/modules/esm/loader.js:97:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:243:28)
at ModuleWrap. (internal/modules/esm/module_job.js:42:40)
at link (internal/modules/esm/module_job.js:41:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
Squad Information

Plugins in Use: Discord Server Status
SquadJS Version: 1.0.10
Squad Version: b19.5

System Information

Operating System: Windows
NodeJS Version: most recent
Yarn Version: most recent

I had to do a cmd console using
npm i tinygradient
with the folder set to the location of SquadJS/index.js
All good now.


LAB_03_Managing_Windows_Server.md

Source:
Contoso, Ltd. wants to implement several new servers in their environment, and they have decided to use Server Core.They also want to implement Windows Admin Center for remote management of both these servers and other serversin the organization.
Current Translation:
Contoso, Ltd. は、自社の環境に新しいサーバーをいくつか新規に実装することを望んでいて、Server Core を使用することを決定しています。 また、組織内のこれらのサーバーとその他のサーバーの両方をリモートで管理するためにWindows Admin Center を実装することも希望しています。
Suggested Translation:
Contoso 社は、Server Core を使用して自社の環境に新しいサーバーを実装することを検討しています。 また、同社は組織内のこれらのサーバーとその他のサーバーの両方をリモートで管理するために Windows Admin Center の実装も検討しています。

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Fixed

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team


Reason why onMetadata would not be called?

ExoPlayer 1.2.0
I'm struggling to understand why I can't get onMetadata to be properly called in my app for Icy data.
It works correctly in the demo app, so it's probably caused by something I do but there's very little documentation about this.
As a test I only use
 addMediaSource(ProgressiveMediaSource.Factory(DefaultHttpDataSource.Factory())
                    .createMediaSource(MediaItem.fromUri(uri)))

And I still don't get the  onMetadata called, onMediaMetadataChanged is called with everything null only once at media start all the other callbacks about timeline or trackschanged properly works.

Can you debug what happens here (and specifically if you see a non-null result from IcyHeaders.parse(...))?
https://github.com/androidx/media/blob/0ae7a6bd600b0c2cbee9b06c94991a73ea5bac58/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java#L1037-L1043
If that's null, that would explain why you're not seeing ICY metadata bubbling out. If that's the case, you could try using CronetDataSource, which the demo app does by default, in case that results in different behaviour?
If you're seeing a non-null result there then the ICY metadata must be getting lost later in the chain.

Just tested via debugger and the datasource is properly wrapped for Icy

I tested to remove Cronet in demo app too and it still works.

@icbaker any more hint about where I should look? Got frequent requests to support this.

Would you be able to provide steps we can use to reproduce (ideally a URL that repros the issue in the demo app) - that will likely be the quickest way to investigate what's going on here.
Please either post it here or send it to<EMAIL_ADDRESS>with the subject Issue #989. Please also update this issue to indicate you’ve done this.

This is the thing everything works in the demo app this is not tied to the url but to how the data bubble up and something I do with the extractors or the renderers or something on how I initialize ExoPlayer.

But I've just tried again to untangle the code and figured out, maybe there's room for some notes in the docs about metadata requiring a MetadataRenderer :(
I'm using a custom AudioOnlyRendererFactory so as per most example I did not add the mandatory MetadataRenderer(metadataRendererOutput, eventHandler.looper) that would collect the metadata and call the event.
I can't find any doc mentioning that, it would have probably helped me a little figuring out this, I certainly did not thought about checking that part for the callback in the listener.

If you attach an EventLogger do you see the metadata track logged with supported=NO? That would be an indication that you were missing a renderer for it: https://developer.android.com/media/media3/exoplayer/debug-logging

Yes it's present but just under there's
Metadata [
 IcyHeaders: name="Drone Zone: Atmospheric ambient space music. Serve Best Chilled. Safe with most medications. [SomaFM]", genre="Techno Ambient Space", bitrate=256000, metadataInterval=16000
 ]

So I completely missed the group above since the data was in the log I assumed it was seen.
Anyway this is clearly an end user error but not that easy to figure out with current docs when searching about icy or metadata in it.

Glad you got it resolved! In general once apps start customising the available renderers it can get a bit fiddly.
I'm guessing (?) you followed the audioOnlyRenderersFactory example here? https://developer.android.com/media/media3/exoplayer/shrinking#specify-renderers
I've just extended those docs with an explicit caveat that by removing a text and metadata rendererer you won't get subtitles or in-stream metadata like ICY - hopefully that helps someone in future :)

From the exoplayer page a very very very long time ago but yes the same context.
Thanks for the updated doc, not sure if it's tied to your last changes but the Kotlin examples for renderer and extractor are broken in that linked page.

Thank you for pointing that out! The markdown source for the page had the rest of the snippet, but it was being truncated at the first < during rendering. The same problem affected lots of other media3 code snippets too - I just submitted a change that I think (hope) has fixed all of them. Please do let us know if you spot more broken code examples.


removed overlay network redirects

need to wait until these pages are published on the OSS docs site

Looks like I jumped the gun. Creating another PR to add them back in when the new pages are published.


branch-3.0 add debuging config to make BE core directly when correctness issue happens (#36308)

Proposed changes
Issue Number: close #xxx
cherry-pick #36308 to branch-3.0

run buildall


DeepSpeed Sparse Attention is Broken

SparseAttention relies on Triton for specific kernels. GPT-NeoX currently has as a dependency triton==0.4.2, which is behind the DeepSpeed version of 1.0.0. It is far behind the version of Triton that we would like to use, 2.0.0.dev20221202, which is required for new Triton features.
Current NeoX and DeepSpeed code cannot use Sparse Attention with any of these versions.

Is this a “real” issue or can we just change the required version to obtain support?

I tried a range of versions (including with a handful of easy changes to the code) and nothing worked right away.
With an updated Triton version it probably wouldn't be very much effort to fix, but this was in the tail end of adding support for the new Triton Flash Attention and so @Quentin-Anthony advised to just separate this out as an issue. Though, to be clear, the issue isn't introduced by Triton Flash Attention -- DeepSpeed updated without us and now just bumping up the version isn't quite enough to put things right.


Async Factory

Hi all!  Do I do something wrong? May this feature is not present for being used as factory?
const factory: ObjectFactory = async () => S.getInstance();

@Factory(factory)
export class S {

  private static _instance: S;

  static async getInstance(): Promise<S> {
    if (!this._instance) {
      this._instance = new S();

      await this._instance.createClient();
    }

    return this._instance;
  }

  async createClient(): Promise<void> {
    this._client = await createClientAsync('url');
  }

}

Thank you all in advance!

Just had the same problem. You'll get a Promise if you use it like this. I solved it like this
const messenger = await Messenger.create(uri, serviceName, ttl)
Container
		.bind(Messenger)
		.factory(() => messenger)
		.scope(Scope.Singleton)

Works for me because im in a async function while using await

Any update on this ?

Just had the same problem. You'll get a Promise if you use it like this. I solved it like this
const messenger = await Messenger.create(uri, serviceName, ttl)
Container
		.bind(Messenger)
		.factory(() => messenger)
		.scope(Scope.Singleton)

Works for me because im in a async function while using await

I prefer to use @Inject into property classes

Any update on this ?

I think this repo is not maintained...

I'm using async-injection instead of this one.


Wrap whole backlink with a class

I want to be able to style/replace the backlink as needed, on my summary pages I just want to restyle it with a icon like the edit button that takes you to the page it was created on but without all the space taken by the text. This is the most straight forward way I could think of as well as allowing others to style the content.

Thank you @sytone! Very good idea! 🎉  I also think this is the right approach.
Would you mind adding a new section about classes/styling to the bottom of the README? That would help people make use of this.
I don’t have much time right now, please be patient. It may take a while, but I won’t forget about your PR.

Added notes in the README on the CSS styles that are useable in the display of tasks.


perlPackages.libapreq2: install the perl & apache modules (19.03 backport)

(cherry picked from commit 2f25d58fc8d6e0edaceb6767efc588b4e0280b3d)

Motivation for this change
19.03 backport of https://github.com/NixOS/nixpkgs/pull/59861 because libapreq2 is missing required functionality and is almost useless as is. This is safe for a backport because it doesn't modify touch any existing functionality, only adds missing (expected) features.
ping @xeji as you seem to be keen on merging perl related PRs :smile:
NOTE: @volth has given me the "LGTM" on this change.
Things done
See https://github.com/NixOS/nixpkgs/pull/59861 for details.

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Thanks! :heart:


Fetch block "prestate" when producing

When producing block, we should fetch state that matches forckChoice block.stateRoot instead of latest state which sometimes breaks block production if our validators are lagging behind beacon node

I'll take this.


Fix indentation of code samples

Some code samples have wrong indentation :)

@mp911de anything that stops you from merging this?

I've been on vacation, so bear with me that I do not work during that time. Other than that, happy to merge your change.

Sorry, I hope you enjoyed your vacation :)


Feature/test-renderer

Linked to issue #657

Create new integration test renderer cli.

The code is well organized, well documented and reads really well! This is a great contribution, thank you.
A minor comment regarding the CLI, it failed when I tried to use absolute paths:
ERROR: Folder '/Users/bchapuis/Projects/apache/baremaps/basemap/tests/integration' could not be found in current directory

Also, I expected to see some images poping in the test directory, and noticed that, in case of success, the files were cleaned. Personnally, I would prefer to always see the files by default.
Finally, I think it would make sense to move the tool to the root directory and have if along side the other modules. What do you think?

A minor comment regarding the CLI, it failed when I tried to use absolute paths:

Support for absolute paths can be added.

Also, I expected to see some images poping in the test directory, and noticed that, in case of success, the files were cleaned. Personnally, I would prefer to always see the files by default.

In this case, what should the expected behaviour be like? Keep the old failing images, replace them with two identical, should the diff be replaced with a blank image?
I suggest that if a tests succeeds, we can save one of the two actual.png or expected.png (as these would be both identical).

Finally, I think it would make sense to move the baremaps-renderer to the root directory and have it along side the other modules. What do you think?

I agree and it make more sense.

I am seeing that often tests fails because of the icon placement. @bchapuis Are the position of the icons non deterministic?

I am seeing that often tests fails because of the icon placement. @bchapuis Are the position of the icons non deterministic?

I guess it is not, the decision to display is usually made on the surrounding.

@bchapuis This is ready for review

I am seeing that often tests fails because of the icon placement. @bchapuis Are the position of the icons non deterministic?

I guess it is not, the decision to display is usually made on the surrounding.

In that case, for now it can be ignore visually when checking the report.

Thanks again for this contribution, I think it will be very usefull for improving the basemap!


EE-1220: Add Read check in Mint::transfer

CHANGELOG:

Added a checked in Mint::transfer that checks the Read access for the source of the transfer and returns an InvalidAccessRights error should the check fail

bors r+


Videos not displayed/not playing on Safari iOS/MacOS

Checklist:

[ X ] I updated to the latest version available
[ X ] I cleared the cache of my browser

Release with the issue: 4.0
Last working release (if known): n/a
Browser and Operating System: Safari 16 on MacOS, Safari on iOS 16

Description of problem:
Sometimes (a decent percentage) videos are not playing when the card is loading or when the card refreshed/swaps to another camera.
My guess is this is related to these Javascript errors which might be some Safari specific behavior and have something to do with how video+audio is being loaded in relation to user interactions.
Usually clicking on the card makes the video play in these circumstances but it would of course be nice it the card would play the video right away and not rely on a user interaction for playback. It doesn't happen all the time, but quite often.
Potentially for the same reason often the Thumbnails bar is missing images of the clips. A random number of images of clips might be missing (see below screenshot where the first one on the left is missing), sometimes more, sometimes less. Clicking on the blank spot will still take you to the playback of the clip, so the data seems to be there, just the image is not being displayed.

Javascript errors shown in the web inspector (if applicable):
Unhandled Promise Rejection: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
(anonyme Funktion)
rejectPromise
play
play — frigate-hass-card.js:401:281
play — frigate-hass-card.js:419:292
play — frigate-hass-card.js:551:600
play — frigate-hass-card.js:520:755
l — frigate-hass-card.js:286:2731
autoPlay — frigate-hass-card.js:307:2894
autoPlay
dispatchEvent
Dg — frigate-hass-card.js:107:115622
e_ — frigate-hass-card.js:271:25983
_storeMediaLoadedInfo — frigate-hass-card.js:307:5957
_storeMediaLoadedInfo
handleEvent — frigate-hass-card.js:17:7372
dispatchEvent
Dg — frigate-hass-card.js:107:115622
aw — frigate-hass-card.js:307:1443
lw — frigate-hass-card.js:307:1507
(anonyme Funktion) — frigate-hass-card.js:480
handleEvent — frigate-hass-card.js:17:7372
dispatchEvent
Dg — frigate-hass-card.js:107:115622
e_ — frigate-hass-card.js:271:25983
t_ — frigate-hass-card.js:271:25958
(anonyme Funktion) — frigate-hass-card.js:274
handleEvent — frigate-hass-card.js:17:7372
play — frigate-hass-card.js:401:281

Additional information:

Thanks for the report @AndLindemann ! First, do you see both of these issues in Safari both on MacOS and iPhone, or does it vary per issue?

Sometimes (a decent percentage) videos are not playing when the card is loading or when the card refreshed/swaps to another camera.

Just to confirm, I think "not playing" means it loads okay but you need to manually press the play button -- right? If yes, then indeed I suspect some Safari specific logic is trying to prevent "random" Javascript from playing videos when the user may not want that. Completely understandable for the web at large, just not in this case :-)

Potentially for the same reason often the Thumbnails bar is missing images of the clips. A random number of images of clips might be missing (see below screenshot where the first one on the left is missing),

Huh. I really doubt that's related. If you're comfortable doing so, would you mind using the web inspector (instructions for Safari) to select that 'blank' thumbnail and paste the <img> element you find?

PS: Can you hold down the Frigate menu button for a few seconds and paste the diagnostics that show up?

Separating the 2 issues:

Video not playing: I see this only on MacOS currently. iOS (Home Assistant App) seems to load&play videos just fine.
On MacOS, the video loads but it isn't displayed and/or doesn't play automatically. After interaction, like pressing the play button, it plays fine.

Missing Thumbnails I see on both MacOS and iOS, also within the iOS Home Assistant App.
Here you can see the first thumbnail missing in the HASS iOS app. But there's varying degrees there, I have also seen more than one or even all of the thumbs not displaying.

I looked through the Web Inspector on Safari (MacOS) and it looks like the img tags with the content are there, just the display isn't working correctly. Potentially a CSS issue?
Here's a screenshot showing that the img tag has content for the inlined image, but the Thumbnails are not displaying:

I believe I have figured out the thumbnail issue. I cannot reproduce the video playing issue though, do you have any particular reproduction steps?
I'm testing on Safari Version 15.6 (Monterey 12.5).

Update: Also cannot  reproduce with Safari Version 16.0 (176<IP_ADDRESS>.10, 17614). What I'm doing:

Open the clips gallery, choose a clip, and scroll next/previous to move forwards/backwards though the clips. They reliably auto play.
OR: Set view to 'clip' (Most recent clip). Clip reliably plays on card load.

Thanks for checking. Here's a quick clip I recorded, showing what's happening on my end - occasionally.
The video starts playing and then after a few seconds it blanks out. If I then click on play, it continues:
https://streamable.com/fovy11

@AndLindemann Thanks for the video. Weird. Does it actually start playing (I can't tell) and then blank, or is it just a static frame followed by a blank? Would you mind trying in an incognito/private window and see if it still happens (could it be an extension of some kind?).

For reference, my HA website is configured to use HTTPS.

(I am also testing on https)

I can get this error to show in the console if I specifically disable auto play in the settings:

(Note: I can't get the blanking to happen, but it refuses to play and logs the error)

Ah.... omg, thanks.
I had all websites set to never auto-play. Have changed it for my HA site and it playback is fine now. Good hint! 👍
So just the thumbnail issue left then.

Yeah, saw your commit. I'll be away over the weekend anyway, so I'll probably just wait for the 4.1 release.
Thanks for your help and your effort on this, the card turned out to be really good. :)

OK! I'm going to close this for now to clean up the issues. If you try 4.1 and it still doesn't work, definitely re-open. Thanks!


Image builder Source to Image: Publish an App without a Dockerfile

k8s version：1.20.10
Kubesphere version：3.1.1
harbor：2.0

An error occurred after creating the submission
InternalError
Internal error occurred: failed calling webhook “s2ibuilder.kb.io”: Post “https://webhook-server-service.kubesphere-devops-system.svc:443/mutate-devops-kubesphere-io-v1alpha1-s2ibuilder?timeout=30s”: dial tcp <IP_ADDRESS>:443: connect: connection refused
pod错误信息Events:
Type Reason Age From Message
Normal Scheduled 45s default-scheduler Successfully assigned devops/f-v1-548d6c6959-rkb6p to master1
Normal Pulling 45s kubelet Pulling image “common/speeder-mgr:latest”
Warning Failed 9s kubelet Failed to pull image “common/speeder-mgr:latest”: rpc error: code = Unknown desc = Error response from daemon: pull access denied for common/speeder-mgr, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied
Warning Failed 9s kubelet Error: ErrImagePull
Normal BackOff 9s kubelet Back-off pulling image “common/speeder-mgr:latest”
Warning Failed 9s kubelet Error: ImagePullBackOff

/kind bug

/remove-kind bug
/kind support
Please confirm whether the image name common/speeder-mgr is correct. I guess the name should be https://your_harbor_host/common/speeder-mgr.

/remove-kind bug /kind support
Please confirm whether the image name common/speeder-mgr is correct or the namespace has sufficient permissions.
The image name and namespace and permissions are correct

The image name and namespace and permissions are correct

s2ioperator container log
E1111 10:00:53.591968       1 reflector.go:123] pkg/mod/k8s.io/client-go@v0.0.0-20190918160344-1fbdaa4c8d90/tools/cache/reflector.go:96: Failed to list *v1alpha1.S2iRun: s2iruns.devops.kubesphere.io is forbidden: User "system:serviceaccount:kubesphere-devops-system:default" cannot list resource "s2iruns" in API group "devops.kubesphere.io" at the cluster scope
E1111 10:00:53.592873       1 reflector.go:123] pkg/mod/k8s.io/client-go@v0.0.0-20190918160344-1fbdaa4c8d90/tools/cache/reflector.go:96: Failed to list *v1alpha1.S2iBuilder: s2ibuilders.devops.kubesphere.io is forbidden: User "system:serviceaccount:kubesphere-devops-system:default" cannot list resource "s2ibuilders" in API group "devops.kubesphere.io" at the cluster scope

That's so weird. Anyway, thank you for providing such detailed log. We will investigate as soon as possible.

The s2i container does not have permission to list resources in system:serviceaccount:kubesphere-devops-system:default. may need to modify the RBAC permissions

https://kubesphere.com.cn/forum/d/2846-s2i

Hi @xiaokangshuai , please check the corresponding role config in your environment.
By default, we have configured RBAC, please check it here: https://github.com/kubesphere/s2ioperator/tree/release-3.1/config/rbac.


DBZ-1930 Support for SMTs in embedded engine

Documented in https://github.com/debezium/debezium/pull/1398

Applied; thx, @jpechane!


Taylor/no enum

:tada: This PR is included in version 5.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


sap.m.ComboBox: Suggested text not highlighted when using Sogou IME in Firefox

OpenUI5 version: latest
Browser/version (+device/version): Firefox (latest)
Any other tested browsers/devices(OK/FAIL): Chrome, IE 11 OK
URL (minimal example if possible): http://jsbin.com/qejixikoco/edit?html,js,output
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

Bring up sample
Enter Chinese character '可' (first character shown in combobox history) into combobox using the Sogou IME (http://pinyin.sogou.com/)

What is the expected result? Expected that the suggested text in the combobox (matching first item in history) would be highlighted to the right of the first character.
What happens instead? None of the text is highlighted. With other browsers, and other locales and IMEs, the suggested text is highlighted.
Any other information? (attach screenshot if possible) This only appears to happen with Firefox and the Sogou IME.

Hi cmastrandrea,
Thanks for reporting the issue.
We unfortunately do not have resources to investigate into the usage of external/thrid party IMEs with OpenUI5.
We request you to use alternative IMEs (ones built-in/provided with your OS, e.g. Microsoft IMEs for windows) and see if they work fine here.
I will categorize this as won't fix. If this is however very critical, please mention this in your next sync meeting with SAP colleagues.
Thanks & Regards.


refactor: start using @fantasticfiasco/expect

Coverage decreased (-0.3%) to 96.262% when pulling b58949c5865fa6bbba6013b1aa854a602cbcf3ff on chore/replace-expect into 06aa160721c4ee2483646516ab57aeb8a77e1305 on master.

Coverage decreased (-0.3%) to 96.262% when pulling b58949c5865fa6bbba6013b1aa854a602cbcf3ff on chore/replace-expect into 06aa160721c4ee2483646516ab57aeb8a77e1305 on master.


[vtk] build failure: VTKM target missing

Operating system
Linux (Pop OS 22.04; jammy)
Compiler
GCC
Steps to reproduce the behavior
./vcpkg install

vcpkg.json:

{
  "name": "party",
  "version-semver": "0.0.0",
  "dependencies": [
    {
      "name": "vtk",
      "version>=": "9.3.0-pv5.12.0#3",
      "features": ["mpi"]
    }
  ],
  "default-features": [],
  "features": {
    "test": {
      "description": "Dependencies for testing",
      "dependencies": [
        {
          "name": "catch2",
          "version>=": "3.5.3"
        }
      ]
    }
  },
  "builtin-baseline": "da21e45c9ae689f63aa27f3a4ee0e64fe6b16494"
}

### Failure logs

vcpkg install
-- Using cached Kitware-VTK-407d4b541111686c40fa53935e7d22c70d5a3f7c.tar.gz.
-- Cleaning sources at /opt/vcpkg/buildtrees/vtk/src/c70d5a3f7c-8ab5789c09.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /opt/vcpkg/downloads/Kitware-VTK-407d4b541111686c40fa53935e7d22c70d5a3f7c.tar.gz
-- Applying patch FindLZMA.patch
-- Applying patch FindLZ4.patch
-- Applying patch libproj.patch
-- Applying patch pegtl.patch
-- Applying patch pythonwrapper.patch
-- Applying patch NoUndefDebug.patch
-- Applying patch fix-using-hdf5.patch
-- Applying patch FindExpat.patch
-- Applying patch cgns.patch
-- Applying patch vtkm.patch
-- Applying patch afxdll.patch
-- Applying patch vtkioss.patch
-- Applying patch jsoncpp.patch
-- Applying patch iotr.patch
-- Applying patch fast-float.patch
-- Applying patch fix-exprtk.patch
-- Applying patch devendor_exodusII.patch
-- Applying patch ot-dep.patch
-- Applying patch remove-prefix-changes.patch
-- Applying patch 10945.diff
-- Applying patch 10972.diff
-- Applying patch hdf5helper.patch
-- Using source at /opt/vcpkg/buildtrees/vtk/src/c70d5a3f7c-8ab5789c09.clean
-- Configuring x64-linux
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
Command failed: /opt/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja -v
Working Directory: /opt/vcpkg/buildtrees/vtk/x64-linux-rel/vcpkg-parallel-configure
Error code: 1
See logs for more information:
/opt/vcpkg/buildtrees/vtk/config-x64-linux-dbg-CMakeCache.txt.log
/opt/vcpkg/buildtrees/vtk/config-x64-linux-rel-CMakeCache.txt.log
/opt/vcpkg/buildtrees/vtk/config-x64-linux-out.log
Call Stack (most recent call first):
vcpkg_installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_configure.cmake:252 (vcpkg_execute_required_process)
buildtrees/versioning_/versions/vtk/0bb2f77c2eeff358d3be93b1d5f0d006573137b7/portfile.cmake:226 (vcpkg_cmake_configure)
scripts/ports.cmake:175 (include)

cat /opt/vcpkg/buildtrees/vtk/config-x64-linux-out.log
...
-- VTK module debug building: VTK::IOInfovis is being built
-- VTK module debug building: VTK::IOFDS is being built
-- VTK module debug building: VTK::RenderingSceneGraph is being built
-- VTK module debug building: VTK::RenderingVtkJS is being built
-- VTK module debug building: VTK::DomainsChemistry is being built
-- VTK module debug building: VTK::libharu is being built
-- Found LibHaru: vcpkg_installed/x64-linux/debug/lib/libhpdf.a (found suitable version "2.4.3", minimum required is "2.4.0")
-- VTK module debug building: VTK::IOExport is being built
-- VTK module debug building: VTK::IOExportPDF is being built
-- VTK module debug building: VTK::gl2ps is being built
-- VTK module debug building: VTK::RenderingGL2PSOpenGL2 is being built
-- VTK module debug building: VTK::IOExportGL2PS is being built
-- VTK module debug building: VTK::IOExodus is being built
-- VTK module debug building: VTK::IOEnSight is being built
-- VTK module debug building: VTK::IOHDF is being built
-- VTK module debug building: VTK::IOERF is being built
-- VTK module debug building: VTK::IOCityGML is being built
-- VTK module debug building: VTK::IOChemistry is being built
-- VTK module debug building: VTK::IOCesium3DTiles is being built
-- VTK module debug building: VTK::IOCellGrid is being built
-- VTK module debug building: VTK::IOCONVERGECFD is being built
-- VTK module debug building: VTK::IOCGNSReader is being built
-- VTK module debug building: VTK::IOAsynchronous is being built
-- VTK module debug building: VTK::FiltersAMR is being built
-- VTK module debug building: VTK::IOAMR is being built
-- VTK module debug building: VTK::InteractionImage is being built
-- VTK module debug building: VTK::ImagingStencil is being built
-- VTK module debug building: VTK::ImagingStatistics is being built
-- VTK module debug building: VTK::ImagingMorphological is being built
-- VTK module debug building: VTK::ImagingMath is being built
-- VTK module debug building: VTK::ImagingFourier is being built
-- VTK module debug building: VTK::IOSQL is being built
-- VTK module debug building: VTK::GeovisCore is being built
-- VTK module debug building: VTK::FiltersTopology is being built
-- VTK module debug building: VTK::FiltersTensor is being built
-- VTK module debug building: VTK::FiltersTemporal is being built
-- VTK module debug building: VTK::FiltersSelection is being built
-- VTK module debug building: VTK::FiltersSMP is being built
-- VTK module debug building: VTK::FiltersReduction is being built
-- VTK module debug building: VTK::FiltersProgrammable is being built
-- VTK module debug building: VTK::FiltersPoints is being built
-- VTK module debug building: VTK::FiltersParallelImaging is being built
-- VTK module debug building: VTK::FiltersParallelGeometry is being built
-- VTK module debug building: VTK::FiltersGeometryPreview is being built
-- VTK module debug building: VTK::FiltersGeneric is being built
-- VTK module debug building: VTK::FiltersFlowPaths is being built
-- VTK module debug building: VTK::FiltersParallelMPI is being built
-- VTK module debug building: VTK::DomainsParallelChemistry is being built
-- VTK module debug building: VTK::DomainsChemistryOpenGL2 is being built
-- VTK module debug building: VTK::vtkvtkm is being built
-- VTK_MODULE_USE_EXTERNAL_VTK_vtkm:
-- Searching for external VTKm
CMake Error at ThirdParty/vtkm/CMakeLists.txt:14 (message):
VTKM target missing

### Additional context

_No response_

Updating builtin-baseline worked for me. Thanks @WangWeiLin-MV!