Restauration manager not disposed

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

replace testWidgets in tests/services/RestaurationTests.dart with testWidgetsWithLeakTracking
Run tests
See error

Or remove allowList is #134832
leakTrackingTestConfig: const LeakTrackingTestConfig(notDisposedAllowList:
      <String, int?>{'RestorationManager': 1})

Could you please retry this on master channel?
I checked two tests as below modified code but can't reproduce the leak:

Modified test code
    testWidgetsWithLeakTracking('root bucket retrieval', (WidgetTester tester) async {
      final List<MethodCall> callsToEngine = <MethodCall>[];
      final Completer<Map<dynamic, dynamic>> result = Completer<Map<dynamic, dynamic>>();
      tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) {
        callsToEngine.add(call);
        return result.future;
      });

      final RestorationManager manager = RestorationManager();
      final Future<RestorationBucket?> rootBucketFuture = manager.rootBucket;
      RestorationBucket? rootBucket;
      rootBucketFuture.then((RestorationBucket? bucket) {
        rootBucket = bucket;
      });
      expect(rootBucketFuture, isNotNull);
      expect(rootBucket, isNull);

      // Accessing rootBucket again gives same future.
      expect(manager.rootBucket, same(rootBucketFuture));

      // Engine has only been contacted once.
      expect(callsToEngine, hasLength(1));
      expect(callsToEngine.single.method, 'get');

      // Complete the engine request.
      result.complete(_createEncodedRestorationData1());
      await tester.pump();

      // Root bucket future completed.
      expect(rootBucket, isNotNull);

      // Root bucket contains the expected data.
      expect(rootBucket!.read<int>('value1'), 10);
      expect(rootBucket!.read<String>('value2'), 'Hello');
      final RestorationBucket child = rootBucket!.claimChild('child1', debugOwner: null);
      expect(child.read<int>('another value'), 22);

      // Accessing the root bucket again completes synchronously with same bucket.
      RestorationBucket? synchronousBucket;
      manager.rootBucket.then((RestorationBucket? bucket) {
        synchronousBucket = bucket;
      });
      expect(synchronousBucket, isNotNull);
      expect(synchronousBucket, same(rootBucket));
    }, leakTrackingTestConfig: const LeakTrackingTestConfig(notDisposedAllowList:
      <String, int?>{'RestorationManager': 1}),);

    testWidgetsWithLeakTracking('root bucket received from engine before retrieval', (WidgetTester tester) async {
      SystemChannels.restoration.setMethodCallHandler(null);
      final List<MethodCall> callsToEngine = <MethodCall>[];
      tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.restoration, (MethodCall call) async {
        callsToEngine.add(call);
        return null;
      });
      final RestorationManager manager = RestorationManager();

      await _pushDataFromEngine(_createEncodedRestorationData1());

      RestorationBucket? rootBucket;
      manager.rootBucket.then((RestorationBucket? bucket) => rootBucket = bucket);
      // Root bucket is available synchronously.
      expect(rootBucket, isNotNull);
      // Engine was never asked.
      expect(callsToEngine, isEmpty);
    }, leakTrackingTestConfig: const LeakTrackingTestConfig(notDisposedAllowList:
      <String, int?>{'RestorationManager': 1}),);

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.13.4, on macOS 13.5 22G74 darwin-x64, locale en-VN)
    • Flutter version 3.13.4 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 367f9ea16b (31 hours ago), 2023-09-12 23:27:53 -0500
    • Engine revision 9064459a8b
    • Dart version 3.1.2
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode15RC.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.82.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.72.0

[✓] Connected device (5 available)
    • RMX2001 (mobile)       • EUYTFEUSQSRGDA6D                         • android-arm64  • Android 11 (API 30)
    • iPhone (mobile)        • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.7.2 19H218
    • iPhone 14 Pro (mobile) • 3BD60F46-FB95-41A0-A179-8AA3F637DA4E     • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
    • macOS (desktop)        • macos                                    • darwin-x64     • macOS 13.5 22G74 darwin-x64
    • Chrome (web)           • chrome                                   • web-javascript • Google Chrome 117.0.5938.62

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.14.0-14.0.pre.333, on macOS 13.5 22G74 darwin-x64, locale en-VN)
    • Flutter version 3.14.0-14.0.pre.333 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e599dae423 (5 hours ago), 2023-09-17 17:34:39 -0400
    • Engine revision 9f3e46a21e
    • Dart version 3.2.0 (build 3.2.0-171.0.dev)
    • DevTools version 2.28.0-dev.8
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.82.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.72.0

[✓] Connected device (4 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D                         • android-arm64  • Android 11 (API 30)
    • iPhone (mobile)  • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.7.2 19H218
    • macOS (desktop)  • macos                                    • darwin-x64     • macOS 13.5 22G74 darwin-x64
    • Chrome (web)     • chrome                                   • web-javascript • Google Chrome 117.0.5938.62

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

For me it reproduces just fine when I remove the allowList from the test.
leakTrackingTestConfig: const LeakTrackingTestConfig(notDisposedAllowList:
      <String, int?>{'RestorationManager': 1}),

I also tried removing it but the test is still successful. Checking this on master channel 3.14.0-14.0.pre.407.
✓ RestorationManager root bucket retrieval


[FEAT]: Improve instructions for agents skills

How are you running AnythingLLM?
Docker (local)
What happened?
recently, i use mistral nemo instruct for agent skill.
and the result is very interesting , I remark just when i ask "the list of document you are access", the json answer is:
{
  "name": "document-summarizer",
  "arguments": {
    "action": "list"
  }
}

the "good" answer is :
{
  "name": "document-summarizer",
  "arguments": {
    "action": "list",
    "document_filename": null
  }
}

I requested to GPT what to do to improve this, it said to add this sentence :
" This key must always be present in the response, even if its value is null." in the description of the document-summarizer instructions
"document_filename": {
"type": "string",
"x-nullable": true,
"description": "The file name of the document you want to get the full content of. This key must always be present in the response, even if its value is null."
}
I sent the new summarize.js to my docker, and now Nemo give me the good result.
Is-it possible to apply this improvement ?
Are there known steps to reproduce?
No response

Moving this to feat, as it not really a bug, but we should permit nullable keys to not throw a schema issue since in the above example you are correct that a null would not impact the end result so the agent skills need the ability to passthrough schema matches that are enable to be null


global in not defined

https://github.com/scniro/react-codemirror2/blob/3d490109229e8592772db922e9028c9a1dee3336/index.js#L66
this line will cause error in browsers(no webpack bundled). would it be possible to change to:
(typeof global !== 'undefined' && global['PREVENT_CODEMIRROR_RENDER'] === true)

I use this package with Electron, and I was able to workaround it with the following: https://github.com/scniro/react-codemirror2/issues/66#issuecomment-898400845

haha, I used the same workaround 😄.
but better to fix it the package: https://github.com/scniro/react-codemirror2/pull/260

in esbuild either use:
define: {
    'global': 'window'
}

or a plugin
plugins: [
        {
            name: 'foo-build',
            setup: ({onLoad}) => {
            onLoad({filter: /\/react-codemirror2\/index.js$/}, async ({path}) => {
                const contents = (await require('fs/promises').readFile(path)).toString();
                const replacedGlobal = contents.replace("global['PREVENT_CODEMIRROR_RENDER'] === true", "false");
                return {
                    contents: replacedGlobal,
                    loader: "js"
                }
            })
}

Hi @elsigh @scniro,
great that this was fixed!
Could you release a new version to npm? I'm still running into this issue with the latest published version.

@marcelgerber no they wont ^^
im now using a patch like:

fixes https://github.com/scniro/react-codemirror2/pull/260#issuecomment-1023202972
this bug has been fixed and merged to the source code of react-codemirror2,
but the maintainers said that they won't release it, because they are not using the project anymore.

diff --git a/index.js b/index.js
index d109de477e2b4afa44836ac8da63e75542743919..823a6b014ad15b895dcaf69f88b81f6c575320bd 100644
--- a/index.js
+++ b/index.js
@@ -63,7 +63,7 @@ exports.UnControlled = exports.Controlled = void 0;

 var React = require('react');

-var SERVER_RENDERED = typeof navigator === 'undefined' || global['PREVENT_CODEMIRROR_RENDER'] === true;
+var SERVER_RENDERED = false;
 var cm;

 if (!SERVER_RENDERED) {

@mhsdesign yes, I'm using a similar patch now (through yarn 3).
it's nice that this is easily possible, but on the other hand it would be even nicer if I didn't have to do that, and could just run the code that's in this repo already, but just doesn't get pushed to npm.
Thank you nonetheless :)


Lowest Common Ancestor of a Binary Tree

Hey, please assign me this issue. I am willing to provide C++ solution.

Can you please assign this issue to me?

I would like to contribute to this issue in C++. Please assign me.

Hey @1dharode,
I would like to add the program of Lowest Common Ancestor of a Binary Tree in C++,Java and Python.
Kindly Assign it to me.
Thank You!!

I am a c++ programmer and i would like to contribute in this problem. please assign me

Hello, Can you please assign this issue to me?
Thanks in advance :)


liberaforms: init at 3.1.1

Finally, every package is in pkgs/by-name.
I haven't touched the module, but if anyone wants to, one tip is that the old liberaforms-env is roughly the same as the new liberaformsEnv.pyEnv.

Closes https://github.com/ngi-nix/ngipkgs/issues/40


Generated names should sorted by  Letter-Number Sequencing

Functions/traits and other names in auto-generated docs should ordered in  Letter-Number Sequencing for fast search.

Duplicate of https://github.com/rust-lang/rust/issues/57448
This has been fixed upstream, but docs.rs does not rebuild docs that were built with older versions of rustdoc, so any docs that have unsorted sidebars will remain that way.


Web Debugging Not Working For Me

I am following the steps of Browser Debugging.  Note that I can use VS debugging with no issues. But following all of the steps of Web debugging concludes with this message: Debugging connection was closed.  Reason: WebSocket disconnected.
I have tried:

All of the steps multiple times trying with both Edge and Chrome.

All of the steps in Trouble Shoot.

Here are repo steps:

Create new Blazor WASM app with dotnetcore hosting.

2.F5 to run app.

In Browser, Shilft+Alt+D, which opens debugger tab.

Copy command.

Windows + R, run command.

Website Opens in Browser.

Shift+Alt+D which opens new debugger tab.

View "Inspectable pages" page:

Click on first page on list.

View Message that Websocket disconnected:

Am I doing something wrong?
I am using VS 16.9.0 Preview 1.0 which is the latest at present.

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

ID: ec2f61c7-9f51-6735-e328-3c7b495d70c3
Version Independent ID: 4d06e565-282d-6387-aa90-cb2c2986d35a
Content: Debug ASP.NET Core Blazor WebAssembly
Content Source: aspnetcore/blazor/debug.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @gregoryagu ... Open that for the product unit for investigation, as we only handle docs here. Please add a cc: @guardrex to your opening comment. I'll re-open this issue if we need to add or change something in the doc.
https://github.com/dotnet/aspnetcore/issues


refactor (various) to move inline styles

Move leftover inline styles from HTML templates to static CSS files.
Closes #1258

Not included are the scroll button styles already covered by #1234 and styling applied in Python code as that's harder to untangle. Ex. https://github.com/acdh-oeaw/apis-core-rdf/blob/cda343687afb839f8147dbe89a70c8f8038759c0/apis_core/apis_relations/forms.py#L49-L54
The styles in apis_relations.css may be redundant as they belong to relations_detail_generic.html, see #1259, but I didn't want to leave strays. I've added TODO comments in the file to make note of that.

I'm removing myself from the reviewers as I won't have time to look at this.
There is only one commit that touches multiple apps, it could easily be split up into smaller, easier to review, commits. It also mixes the refactoring with functional changes, i.e. replacing the style assignment in one element with a css class in another element without any explanation as to why. It also moves bootstrap inclusion without any mention in the commit message and overrides bootstrap code without explanation except the comment "fixes an issue with select2".
Feel free to assign to someone who either has more time to untangle all that stuff or who knows what all those changes mean by simply looking at them

I'm removing myself from the reviewers as I won't have time to look at this.

Ok.

There is only one commit that touches multiple apps, it could easily be split up into smaller, easier to review, commits.

I didn't think of splitting the changes up because they didn't seem substantial to me, but point taken about the scoping.

It also mixes the refactoring with functional changes, i.e. replacing the style assignment in one element with a css class in another element without any explanation as to why.

I understand refactoring to mean to replace [code] (markup, whatever) with other (simpler, cleaner etc.) [code] to achieve the same result. That's what these changes are doing.
Moving "pointers" to elements to other elements in the chain and manipulating them from there is a basic concept in CSS, so it didn't even occur to me it may need explaining. But I'm coming at this from a full-stack perspective, and frontend development is a whole separate field of work with its own separate domain-specific knowledge and skill sets. But frontend stuff is not a primary concern in this project. So it's difficult to know what or how much detail to try to cram into e.g. commit messages.
I'd suggest we discuss how we should deal with frontend-related code & documentation at a JF.

It also moves bootstrap inclusion without any mention in the commit message and overrides bootstrap code without explanation except the comment "fixes an issue with select2".

Ah, thx for pointing out the HTML move got subsumed here.
I refactored the template away because it seemed pointless to keep for the one remaining line of HTML (+ the comment) after moving the styles, but you are right, that shouldn't have got included.

There is only one commit that touches multiple apps, it could easily be split up into smaller, easier to review, commits.

I didn't think of splitting the changes up because they didn't seem substantial to me, but point taken about the scoping.

Its not primarily about the scope, splitting up into commits per app was only an example. Its about consideration for the person that has to review the PR. Also, if there are 5 different changes in a commit and one of those changes require more discussion, the remaining 4 changes have to be postponed until the discussion points are resolved. Some of those changes in the PR at hand could already have been merged.
Regarding the commit messages, I don't think that full-stack/frontend changes should be held to a lower standards than other changes. From https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/

To come up with thoughtful commits, consider the following:
Why have I made these changes?
What effect have my changes made?
Why was the change needed?
What are the changes in reference to?

See also this example: https://dhwthompson.com/2019/my-favourite-git-commit
Regarding the specific wording:
"move inline styles" sounds to me as if the inline styles where moved somewhere else, which is not what is happening in those commits. The inline styles are replaced by non-inline styles.

Regarding the specific wording: "move inline styles" sounds to me as if the inline styles where moved somewhere else, which is not what is happening in those commits. The inline styles are replaced by non-inline styles.

IMO the wording describes well enough what's happening here.
"Inline styles" means "styles which are applied (or which appear/...) on a line with HTML". When "these styles which appear inline" are put in an external file, that's primarily a matter of placement, not replacement. I think it's perfectly legitimate to call this "moving".
This is no different from moving Django template code from one template file (block,...) to another. Yes, sure, if I wanted to be literal, I could say I'm replacing x lines of template language with an include statement + a new file with a duplicate of those x lines, but I didn't think I would be misunderstood if I called this moving those lines to a separate template/include/...?
Would it help if the commit subjects were changed to e.g. "move styles to external files"?

IMO the wording describes well enough what's happening here.

:shrug:
suit yourself

Thank youuu!


Remove analyzer Location and to_mem() function

What was wrong?
How was it fixed?
To-Do

[ ] OPTIONAL: Update Spec if applicable

[ ] Add entry to the release notes (may forgo for trivial changes)

[ ] Clean up commit history

Closing in favor of #768


Move prefetched_for_webhook to payload serializers

Many product-related mutations use the method prefeteched_for_webhook to run prefetches needed by legacy webhook payload generators. This is inefficient since these prefetches are heavy and are unnecessarily run for webhook using subscription paylaods. To fix this, we should move the prefetched_for_webhook call to legacy payload generators.
Example:

prefetched_for_webhook is called in the post_save_action in the productCreate mutation
Instead, it should be moved to the legacy payload generator where it's actually needed

To do:

Analyze all usages of prefeteched_for_webhook (both for product and for variant) and move them to proper payload generators.
Remove prefetch of product_type__product_attributes__values which is not used by the product payload generator.
Update tests that check the number of DB queries; after these changes, the DB query count should be lower when subscription webhooks are enabled (note: in tests, make sure to use products with some attributes and values assigned).
Port changes to versions from 3.14 to latest.

Context: https://saleorcommerce.slack.com/archives/C06C6UWV45V/p1704470719634879

@maarcingebala Kindly review the PR.


Customize what happens in Model.fit with multi-output model and metrics

System information.

Have I written custom code (as opposed to using a stock example script provided in Keras):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 20.04
TensorFlow installed from (source or binary): conda-forge
TensorFlow version (use command below): 2.7
Python version: 3.7

Describe the problem.
I'm trying to write custom Model.fit according to TF doccument, but it seems that the document is tailored for single-output model, so self.compiled_loss and self.compiled_metrics works as expected. But when I use a multi-output model which uses different losses and metrics for each output, so self.compiled_metrics only returns <keras.engine.compile_utils.MetricsContainer at 0x7f6f2002e350> rather than a dictionary as expected:
model.compile(
    metrics={
        "score_output": [
            keras.metrics.MeanAbsolutePercentageError(),
            keras.metrics.MeanAbsoluteError(),
        ],
        "class_output": [keras.metrics.CategoricalAccuracy()],
    },
)

Is there anyway to use it in the right way? thank you

metrics are not returned as a dict by default, you have to use the return_dict=True argument when doing model.evaluate()
check the tf.keras.model docs

@ghylander I mean I want to customize how model.fit by implementing model.train_step manually:
class CustomModel(keras.Model):
    def train_step(self, data):
        # Unpack the data. Its structure depends on your model and
        # on what you pass to `fit()`.
        x, y = data

        with tf.GradientTape() as tape:
            y_pred = self(x, training=True)  # Forward pass
            # Compute the loss value
            # (the loss function is configured in `compile()`)
            loss = self.compiled_loss(y, y_pred, regularization_losses=self.losses)

        # Compute gradients
        trainable_vars = self.trainable_variables
        gradients = tape.gradient(loss, trainable_vars)
        # Update weights
        self.optimizer.apply_gradients(zip(gradients, trainable_vars))
        # Update metrics (includes the metric that tracks the loss)
        self.compiled_metrics.update_state(y, y_pred)
        # Return a dict mapping metric names to current value
        return {m.name: m.result() for m in self.metrics}

As you can see, self.compiled_metrics.update_state assumes multiple complied_metrics will use the same y, y_pred as input, which doesn't work for multi-output model using multiple losses and metrics for each output.

I see, thanks for the clarification, I didn't understand your question
I don't have experience with multi-output models with each ouput having different metrics, but having a look at this keras guide on how to build a training function from scratch, I would try to instantiate the metrics for each ourput, then try something like (pseudo-code: quickly patched from the guide I linked)
val_acc_metric1 = keras.metrics.SparseCategoricalAccuracy()
val_acc_metric2 = keras.metrics.SparseCategoricalAccuracy()

 for x_batch_val, y_batch_val1, y_batch_val2 in val_dataset:
        val_logits = model(x_batch_val, training=False)
        # Update val metrics
        val_acc_metric1.update_state(y_batch_val1, val_logits[0])
        val_acc_metric2.update_state(y_batch_val2, val_logits[0])
    val_acc1 = val_acc_metric1.result()
    val_acc2 = val_acc_metric2.result()
    val_acc_metric1.reset_states()
    val_acc_metric2.reset_states()

@ghylander implementing custom training_loop scratch can solve the problem easily, but I aim to leverage train_step so that I can use model.fit, which is cleaner and easier to maintain.

check this out
seems to be more in line with what you want

@hoangtnm Could you please refer to the comment above and let us know if it helps?Thanks!


Remove certain events as DAU events

I'm working on tracking Lovability (70% of EPD using Cody >15x a day) and I'm filtering for events where is_cody_product_DAU_event = TRUE.
Currently the following two events are marked as DAU events, when IMO they shouldn't be, because they don't need any explicit prompting. Having this currently inflates our usability numbers:

CodyVSCodeExtension:chatResponse:noCode (fires passively for every chat response)
CodyVSCodeExtension:chatResponse:hasCode (fires passively for every chat response)
CodyVSCodeExtension:recipe:next-questions:executed (context)

Query:
SELECT
name,
count(*),
count(distinct user_id)
FROM
dotcom_events.events
WHERE
LOWER(name) LIKE '%cody%'
AND timestamp > '2023-08-24'
AND is_cody_product_DAU_event = TRUE
GROUP BY 1
ORDER BY 2 DESC

This begs the question for me: Should we include the following events as also DAU metrics (which count towards Lovability)?

CodyVSCodeExtension:restoreChatHistoryButton:clicked
CodyVSCodeExtension:insertButton:clicked
CodyVSCodeExtension:keyDown:Copy:clicked
CodyVSCodeExtension:keyDown:Paste:clicked

One could argue that while these are users interacting with Cody, they're not "fundamental" actions like an autocomplete acceptance or chat question. Curious what others think CC: @dadlerj

@chenkc805 Those 4 events all fit our definition of product DAU. Full definition is here but here's the TLDR

A product DAU represents a user who (1) makes a choice to interact or engage with Cody and (2) likely gets value from it.

If you think we need to update our product DAU definition, I'm open to having that discussion (though we should move it to somewhere with a broader audience) but within our current definition, those events are product DAU events.

Yeah I agree with you Kevin about the first message at the top of this thread—nocode/hascode seem irrelevant, and I'm not even sure what the next-questions one is, but I trust you that it shouldn't be included if not a user-driven event.
I agree with Kelsey too, particularly about the copy and insert ones. What does the "Paste:clicked" event actually mean?
I would also say that for most of these, it's impossible to trigger them without having previously done a product DAU-qualifying action. E.g. you can't copy/paste Cody-generated code without first prompting Cody to generate code, you know? Hopefully these aren't material either way.

I would also say that for most of these, it's impossible to trigger them without having previously done a product DAU-qualifying action. E.g. you can't copy/paste Cody-generated code without first prompting Cody to generate code, you know? Hopefully these aren't material either way.

This is true, and doesn't affect DAU metrics at all, so we're good there.
It would, however, effect frequency metrics (ie. 15x + / day usage). These likely have a material impact on how we're measuring lovability today.
So all in all I'm good with removing:

CodyVSCodeExtension:chatResponse:noCode
CodyVSCodeExtension:chatResponse:hasCode
CodyVSCodeExtension:recipe:next-questions:executed
From the DAU definition.

And I'm good with keeping these 4 events as DAU metrics since it fits the definition:

CodyVSCodeExtension:restoreChatHistoryButton:clicked
CodyVSCodeExtension:insertButton:clicked
CodyVSCodeExtension:keyDown:Copy:clicked
CodyVSCodeExtension:keyDown:Paste:clicked

(not urgent, but something we should think about) It does make me think if it's worth thinking about an even smaller subset of events that purely measures a "Cody interaction", because that's what I think of as a "core valuable action" that user takes, not just, for example, accessing their chat history. These seems like the really valuable actions that we should measure success on. Curious what ya'll think. Specifically:
In my mind the only events that fit this category are:

accept and autocomplete
submit a chat/command/fixup
successfully embed a repo

other things such as:

copy/paste events
navigation events
passive events like autocomplete suggestions the next-question experience
even creating a custom command (since you're not interfacing with Cody until you execute it)

CodyVSCodeExtension:chatResponse:noCode
CodyVSCodeExtension:chatResponse:hasCode
CodyVSCodeExtension:recipe:next-questions:executed

Regarding the initial three event DAU updates, I have made those changes. These are now FALSE to productDAU.
It still makes sense to have those as billingDAU events based on our definition and these events should not affect billing DAU counts in a meaningful way

Thanks team. Closing this out

Regarding your questions above about the future of the metric:

(not urgent, but something we should think about) It does make me think if it's worth thinking about an even smaller subset of events that purely measures a "Cody interaction", because that's what I think of as a "core valuable action" that user takes, not just, for example, accessing their chat history. These seems like the really valuable actions that we should measure success on. Curious what ya'll think. Specifically:
In my mind the only events that fit this category are:

We'd be happy to modify our definition of a product DAU. The goal is to provide the best view of "real" product usage to the team. But that said, I don't necessarily agree with your list. In my eyes, if I copy some code that the AI generated... That is a sign of true value being delivered—even more so than creating an embedding, for example. As a user, I'm taking Cody's output and actually doing something with it (versus setting Cody up to do something in the future, like with an embedding).
Some of the others are definitely a bit more on the line, though, such as accessing chat history, and I think we could reasonably exclude that one without even modifying our definition.
Feel free to request changes either way (to the definition or to specific inclusions/exclusions).


I cannot find any config for routing with querystring

I want to be able to route through http queryString, but http-match-request has no related configuration.
Then I turned to envoyFilter, hoping to get the queryString, and modify the header according to the queryString, but the public function exposed by lua does not provide an API to get the queryString.
However, envoy has provided the ability to route according to queryString in version 1.6.0.
Does Istio plan to provide such an ability?

I'd like to work on this.

Added support in https://github.com/istio/istio/pull/13730


request: expose pane element of the OverlayRef

I am working in an experimental overlay manager based on Polymer overlay-manager and I need to access the pane element of the OverlayRef to control zIndex and visibility.
a getPane() method would be good.
Playground branch: https://github.com/jean-merelis/material2/tree/overlay-playground
to see it working, run demo-app and access http://localhost:4200/overlay

I'm working on a new proposal


On Arabic version of App, "Read more" under each service listed (in English) should align left

Tested Staging V 1.0.19:
"Read more" on the Arabic version of the app should align left like in the English version of the app - see screen shot below

Tested Staging V 1.0.22:
"Read more" is now aligned left, but the arrow is still on the left of the words "Read more" (see screen shot below)

Testing staging: 1.0.13, Android
Read more is left aligned but title and phone number re right aligned.
Formatting is generally messier than before.
Screenshot

Outstanding elements still right aligning on service listing in Arabic:

[ ] service name
[ ] Read more should have the arrow to the right (?) of the string
[ ] Phone
[ ] Web, also string is in Arabic should be English
[ ] Email, also string is in Arabic should be English
[ ] Open in Maps button

Tested Staging V 1.0.25 on iOS 12.3.1 at the HiVE:
Confirmed on Arabic version's service listing:

all content and icons are aligned left
all labels (Address, Phone, Fax, Web, Email) are now in English


Update problem.md

n.toString() does nothing unless it is assigned to a variable or passed as an argument.  The example could be slightly misleading for beginners who don't understand the concept of return values yet.

Thanks, good catch.


Incomplete/no data during Cluster Scaling

Hi,
I'm using your example (more or less) successfully on GKE. Yet I have the following problem:
My workload is highly elastic. Therefore the cluster is continuously increasing/decreasing the node pool. I have a (multi zone) region cluster - so its not a single master zone cluster. Anytime the cluster scales there is no data collected from my Cluster. Application based metrics on the other hand work fine.
I think the only customization that I did was to disable all the prometheus-adapter-*.yaml since it is running on GKE and I found an Issue that here that suggested that.
For reproduction:

I created a cluster on GKE, enabled autoscaling and deployed something - this is where the data in the screenshots "starts".
Then after a short while I scaled the deployment manually to more instances
Autoscaling kicks in, leads to the gap in collected data.
After a short while I scale back to 1
Autoscaling kicks in again, leads to the second gap in data

A metric that I collect from my application is fine and without gaps:

So what could this be, is it that I need to increase the replicas for some kube-system pod? I am not totally sure where the data originates from, but I already added a PDB and replica of 2 for kube-state-metrics-deployment.yaml

I tend to say yes, at the same time I am not aware of the definite origin of metric kube-pod-info. But the metrics in general are not affected, just multiple kube-system related metrics like the kube-pod-info.
How can this happen during a scale up, my first shot was, that the pod gets assigned to another node but the gap is a little bit too long for that and this should have been mitigated by PDB and replica 2 for  kube-state-metrics-deployment.yaml - if my assumption that this pod is the source of kube-pod-info is correct.
I think during the scaling of the node pool kubectl looses connection sometimes too, but I am not totally sure about this not beeing connected to me having a single master cluster before. If that would help narrowing it down, I could do another test.

kube_pod_info is definitely coming from kube-state-metrics. kube-state-metrics has some indirections, so to make sure we're aggregating away these indirection, do you see the expected result when querying this?
max(kube_pod_info) without(instance)

Prometheus thinks, that these are new time-series since it's a new process, however, as this data doesn't originate in kube-state-metrics, this dimension can be safely ignored.

I was not aware of that, interesting. But it did not resolve the issue,

Yet it appears to me that during the node scaling the kube-state-metrics pods were killed.  They were deployed at the same time as e.g. Grafana, Prometheus, yet their age is only 5 min - matching the age of the new nodes exporter. How did that happen?
kubectl get pods -n  monitoring  -w
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-9d97dfdc7-p52s7                1/1     Running   0          11m
kube-state-metrics-6fd7c48447-4h64h    4/4     Running   0          5m14s
kube-state-metrics-6fd7c48447-rrp66    4/4     Running   0          5m11s
node-exporter-4lksr                    2/2     Running   0          5m16s
node-exporter-95t2d                    2/2     Running   0          10m
node-exporter-cgd7w                    2/2     Running   0          11m
node-exporter-kfdsp                    2/2     Running   0          11m
node-exporter-lzdmb                    2/2     Running   0          11m
node-exporter-spmq9                    2/2     Running   0          10m
prometheus-k8s-0                       3/3     Running   1          10m
prometheus-operator-65c44fb7b7-75zbp   1/1     Running   0          11m

Kube-state-metrics-deployment (only replicas was adjusted)
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  labels:
    app: kube-state-metrics
  name: kube-state-metrics
  namespace: monitoring
spec:
  replicas: 2
  selector:
    matchLabels:
      app: kube-state-metrics
  template:
    metadata:
      labels:
        app: kube-state-metrics
    spec:
      containers:
      - args:
        - --logtostderr
....

PDB:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  labels:
    app: kube-state-metrics
  name: kube-state-metrics-pdb
  namespace: monitoring
spec:
  minAvailable: 1
  selector:
    matchLabels:
      app: kube-state-metrics

The cluster just scaled down again and kube-state-metrics pods were both re-created.
kubectl get pods -n  monitoring
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-9d97dfdc7-p52s7                1/1     Running   0          34m
kube-state-metrics-85557c49d9-gq529    4/4     Running   0          73s
kube-state-metrics-85557c49d9-s5dtv    4/4     Running   0          70s
node-exporter-95t2d                    2/2     Running   0          33m
node-exporter-cgd7w                    2/2     Running   0          34m
node-exporter-kfdsp                    2/2     Running   0          34m
node-exporter-lzdmb                    2/2     Running   0          34m
node-exporter-spmq9                    2/2     Running   0          33m
prometheus-k8s-0                       3/3     Running   1          33m
prometheus-operator-65c44fb7b7-75zbp   1/1     Running   0          34m

If you want this kind of high availability, you’re gonna have to also ensure the kube state metrics pods have anti affinity configured. Do you have that already?

I did not have it, thought the affinity would be enough. Just added it and the pods were located on different nodes (Listing 1) yet as soon as the node pool was increased, the kube-state-metrics pods were restarted again (Listing 2). The age matches again the age of the new node. Might the pods be crashing if a node is added?
kubectl get pods -o wide -n monitoring
NAME                                   READY   STATUS    RESTARTS   AGE    IP              NODE                                                NOMINATED NODE
grafana-9d97dfdc7-p52s7                1/1     Running   0          164m   <IP_ADDRESS>       gke-accointing-cluster-default-pool-24500f38-7w7z   <none>
kube-state-metrics-85d867cf6-864gk     4/4     Running   0          18s    <IP_ADDRESS>       gke-accointing-cluster-default-pool-f3f37fd0-ztpm   <none>
kube-state-metrics-85d867cf6-kgc9b     4/4     Running   0          12s    <IP_ADDRESS>      gke-accointing-cluster-default-pool-f3f37fd0-01vt   <none>
node-exporter-95t2d                    2/2     Running   0          163m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-6dae3a6f-844d   <none>
node-exporter-cgd7w                    2/2     Running   0          164m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-6dae3a6f-czj4   <none>
node-exporter-kfdsp                    2/2     Running   0          164m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-24500f38-7w7z   <none>
node-exporter-lzdmb                    2/2     Running   0          164m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-f3f37fd0-01vt   <none>
node-exporter-spmq9                    2/2     Running   0          163m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-f3f37fd0-ztpm   <none>
prometheus-k8s-0                       3/3     Running   1          163m   <IP_ADDRESS>       gke-accointing-cluster-default-pool-f3f37fd0-ztpm   <none>
prometheus-operator-65c44fb7b7-75zbp   1/1     Running   0          164m   <IP_ADDRESS>       gke-accointing-cluster-default-pool-6dae3a6f-czj4   <none>

kubectl get pods -o wide -n monitoring
NAME                                   READY   STATUS              RESTARTS   AGE    IP              NODE                                                NOMINATED NODE
grafana-9d97dfdc7-p52s7                1/1     Running             0          171m   <IP_ADDRESS>       gke-accointing-cluster-default-pool-24500f38-7w7z   <none>
kube-state-metrics-58dc8f5dd6-f6mnj    4/4     Running             0          21s    <IP_ADDRESS>      gke-accointing-cluster-default-pool-6dae3a6f-844d   <none>
kube-state-metrics-58dc8f5dd6-gtmb2    4/4     Running             0          18s    <IP_ADDRESS>      gke-accointing-cluster-default-pool-24500f38-7w7z   <none>
node-exporter-95t2d                    2/2     Running             0          171m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-6dae3a6f-844d   <none>
node-exporter-cgd7w                    2/2     Running             0          171m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-6dae3a6f-czj4   <none>
node-exporter-kfdsp                    2/2     Running             0          171m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-24500f38-7w7z   <none>
node-exporter-lzdmb                    2/2     Running             0          171m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-f3f37fd0-01vt   <none>
node-exporter-njhlk                    0/2     ContainerCreating   0          23s    <IP_ADDRESS>   gke-accointing-cluster-default-pool-24500f38-2fv8   <none>
node-exporter-spmq9                    2/2     Running             0          171m   <IP_ADDRESS>   gke-accointing-cluster-default-pool-f3f37fd0-ztpm   <none>
prometheus-k8s-0                       3/3     Running             1          171m   <IP_ADDRESS>       gke-accointing-cluster-default-pool-f3f37fd0-ztpm   <none>
prometheus-operator-65c44fb7b7-75zbp   1/1     Running             0          171m   <IP_ADDRESS>       gke-accointing-cluster-default-pool-6dae3a6f-czj4   <none>

Full Deployment:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  labels:
    app: kube-state-metrics
  name: kube-state-metrics
  namespace: monitoring
spec:
  replicas: 2
  selector:
    matchLabels:
      app: kube-state-metrics
  template:
    metadata:
      labels:
        app: kube-state-metrics
    spec:
      containers:
      - args:
        - --logtostderr
        - --secure-listen-address=:8443
        - --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
        - --upstream=http://<IP_ADDRESS>:8081/
        image: quay.io/coreos/kube-rbac-proxy:v0.4.1
        name: kube-rbac-proxy-main
        ports:
        - containerPort: 8443
          name: https-main
        resources:
          limits:
            cpu: 20m
            memory: 40Mi
          requests:
            cpu: 10m
            memory: 20Mi
      - args:
        - --logtostderr
        - --secure-listen-address=:9443
        - --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
        - --upstream=http://<IP_ADDRESS>:8082/
        image: quay.io/coreos/kube-rbac-proxy:v0.4.1
        name: kube-rbac-proxy-self
        ports:
        - containerPort: 9443
          name: https-self
        resources:
          limits:
            cpu: 20m
            memory: 40Mi
          requests:
            cpu: 10m
            memory: 20Mi
      - args:
        - --host=<IP_ADDRESS>
        - --port=8081
        - --telemetry-host=<IP_ADDRESS>
        - --telemetry-port=8082
        image: quay.io/coreos/kube-state-metrics:v1.5.0
        name: kube-state-metrics
        resources:
          limits:
            cpu: 100m
            memory: 150Mi
          requests:
            cpu: 100m
            memory: 150Mi
      - command:
        - /pod_nanny
        - --container=kube-state-metrics
        - --cpu=100m
        - --extra-cpu=2m
        - --memory=150Mi
        - --extra-memory=30Mi
        - --threshold=5
        - --deployment=kube-state-metrics
        env:
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: k8s.gcr.io/addon-resizer:1.8.4
        name: addon-resizer
        resources:
          limits:
            cpu: 50m
            memory: 30Mi
          requests:
            cpu: 10m
            memory: 30Mi
      nodeSelector:
        beta.kubernetes.io/os: linux
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
      serviceAccountName: kube-state-metrics
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: app
                    operator: In
                    values:
                      - kube-state-metrics
              topologyKey: "kubernetes.io/hostname"

Are these controller or compute nodes coming and going? It doesn't seem like the kube-state-metrics pods themselves are being restarted, which seems curious.

Mm, I'm not quite sure I fully understood. The steps are:

Cluster with 3 - 10 nodes on GKE
1 HPA for a single deployment which also has an affinity and is scaled on queue length in default namespace - so the scaling forcing the node auto-scaler quite often to in-/decrease the cluster size
metrics stuff is all in monitoring namespace deployed on cluster startup and not altered afterwards
If the HPA creates new pods, the auto-scaler adds nodes, then the kube-state-metrics pods get restarted and the gap occurs.

Did this answer your question? :\

I attached kubectl log to all containers in a metrics pod, addon-resizer(3) is flashy, isn't it?
kubectl logs kube-state-metrics-898d5f6d4-zrjj6 -n monitoring  kube-state-metrics  -f
I0613 12:44:55.970595       1 main.go:80] Using default collectors
I0613 12:44:55.970673       1 main.go:88] Using all namespace
I0613 12:44:55.970679       1 main.go:124] metric white-blacklisting: blacklisting the following items:
W0613 12:44:55.970694       1 client_config.go:552] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0613 12:44:55.975189       1 main.go:166] Testing communication with server
I0613 12:44:55.983657       1 main.go:171] Running with Kubernetes cluster version: v1.12+. git version: v1.12.8-gke.6. git tree state: clean. commit: f53039cc1e5295eed20969a4f10fb6ad99461e37. platform: linux/amd64
I0613 12:44:55.983677       1 main.go:173] Communication with server successful
I0613 12:44:55.984279       1 builder.go:112] Active collectors: configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,jobs,limitranges,namespaces,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,pods,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets
I0613 12:44:55.984291       1 main.go:208] Starting metrics server: <IP_ADDRESS>:8081
I0613 12:44:55.984546       1 main.go:182] Starting kube-state-metrics self metrics server: <IP_ADDRESS>:8082
rpc error: code = Unknown desc = Error: No such container: 525acabb0c52387df879a9f5b64f736e24e7d54fe7153c7383f895824f64c76a

kubectl logs kube-state-metrics-898d5f6d4-zrjj6 -n monitoring -f kube-rbac-proxy-self
I0613 12:44:57.652525       1 main.go:213] Generating self signed cert as no cert is provided
I0613 12:45:49.051931       1 main.go:243] Starting TCP socket on :9443
I0613 12:45:49.052534       1 main.go:250] Listening securely on :9443
I0613 12:52:45.512317       1 main.go:304] received interrupt, shutting down
E0613 12:52:45.512526       1 main.go:257] failed to gracefully close secure listener: close tcp [::]:9443: use of closed network connection
rpc error: code = Unknown desc = Error: No such container: bd3088b526730474175b1cdabe2a2e0989d38e1b0d2b7d341bb3a0cd31bf8f69

kubectl logs kube-state-metrics-898d5f6d4-zrjj6 -n monitoring -f addon-resizer
ERROR: logging before flag.Parse: I0613 12:44:56.571204       1 pod_nanny.go:65] Invoked by [/pod_nanny --container=kube-state-metrics --cpu=100m --extra-cpu=2m --memory=150Mi --extra-memory=30Mi --threshold=5 --deployment=kube-state-metrics]
ERROR: logging before flag.Parse: I0613 12:44:56.571335       1 pod_nanny.go:81] Watching namespace: monitoring, pod: kube-state-metrics-898d5f6d4-zrjj6, container: kube-state-metrics.
ERROR: logging before flag.Parse: I0613 12:44:56.571341       1 pod_nanny.go:82] storage: MISSING, extra_storage: 0Gi
ERROR: logging before flag.Parse: I0613 12:44:56.572509       1 pod_nanny.go:171] Failed to read data from config file "MISSING/NannyConfiguration": open MISSING/NannyConfiguration: no such file or directory, using default parameters
ERROR: logging before flag.Parse: I0613 12:44:56.572544       1 pod_nanny.go:109] cpu: 100m, extra_cpu: 2m, memory: 150Mi, extra_memory: 30Mi
ERROR: logging before flag.Parse: I0613 12:44:56.572557       1 pod_nanny.go:138] Resources: [{Base:{i:{value:100 scale:-3} d:{Dec:<nil>} s:100m Format:DecimalSI} ExtraPerNode:{i:{value:2 scale:-3} d:{Dec:<nil>} s:2m Format:DecimalSI} Name:cpu} {Base:{i:{value:157286400 scale:0} d:{Dec:<nil>} s:150Mi Format:BinarySI} ExtraPerNode:{i:{value:31457280 scale:0} d:{Dec:<nil>} s:30Mi Format:BinarySI} Name:memory}]
ERROR: logging before flag.Parse: I0613 12:52:40.757479       1 nanny_lib.go:108] Resources are not within the expected limits, updating the deployment. Actual: {Limits:map[cpu:{i:{value:116 scale:-3} d:{Dec:<nil>} s:116m Format:DecimalSI} memory:{i:{value:408944640 scale:0} d:{Dec:<nil>} s:390Mi Format:BinarySI}] Requests:map[cpu:{i:{value:116 scale:-3} d:{Dec:<nil>} s:116m Format:DecimalSI} memory:{i:{value:408944640 scale:0} d:{Dec:<nil>} s:390Mi Format:BinarySI}]} Expected: {Limits:map[cpu:{i:{value:118000000 scale:-9} d:{Dec:<nil>} s: Format:DecimalSI} memory:{i:{value:0 scale:0} d:{Dec:0xc4201e3470} s: Format:BinarySI}] Requests:map[cpu:{i:{value:118000000 scale:-9} d:{Dec:<nil>} s: Format:DecimalSI} memory:{i:{value:0 scale:0} d:{Dec:0xc4201e3470} s: Format:BinarySI}]}

kubectl logs kube-state-metrics-898d5f6d4-zrjj6 -n monitoring -f kube-rbac-proxy-main
I0613 12:44:57.453260       1 main.go:213] Generating self signed cert as no cert is provided
I0613 12:45:21.854118       1 main.go:243] Starting TCP socket on :8443
I0613 12:45:21.952898       1 main.go:250] Listening securely on :8443
I0613 12:52:45.530729       1 main.go:304] received interrupt, shutting down
E0613 12:52:45.530979       1 main.go:257] failed to gracefully close secure listener: close tcp [::]:8443: use of closed network connection
rpc error: code = Unknown desc = Error: No such container: ae632f32c79bac6cab1c0871ca5e9e7b6033bb0c7341047500f654dabfedd23f

I can confirm with the removal of addon-resizer the kube-state-metrics pods outlive a cluster scale, as you can see below at the age.
kubectl get pods -o wide -n monitoring
NAME                                   READY   STATUS    RESTARTS   AGE     IP              NODE                                                NOMINATED NODE
grafana-9d97dfdc7-p52s7                1/1     Running   0          4h8m    <IP_ADDRESS>       gke-accointing-cluster-default-pool-24500f38-7w7z   <none>
kube-state-metrics-687bbb5cd9-ct7hp    3/3     Running   0          5m42s   <IP_ADDRESS>       gke-accointing-cluster-default-pool-24500f38-f1sn   <none>
kube-state-metrics-687bbb5cd9-kcb2f    3/3     Running   0          5m40s   <IP_ADDRESS>      gke-accointing-cluster-default-pool-f3f37fd0-b782   <none>
node-exporter-2qv9q                    2/2     Running   0          103s    <IP_ADDRESS>   gke-accointing-cluster-default-pool-f3f37fd0-tjwt   <none>
node-exporter-2stpp                    2/2     Running   0          87s     <IP_ADDRESS>   gke-accointing-cluster-default-pool-6dae3a6f-9lm6   <none>

Sounds like we should be able to fix this by introducing a readiness probe with initialDeplaySeconds of 2x the scrape interval and set the maxSurge to 1 and maxUnavailable to 1. Then there should always be at least one instance of kube-state-metrics available during a rollout, even if the addonResizer is resizing due to node count change. Could you try that?

As of https://github.com/kubernetes/kube-state-metrics/issues/611 kube-state-metrics probably shouldn't even run with multiple instances - so this is probably the wrong attack angle (at least as long as kube-state-metrics doesnt support HA)? I reverted to replica:1 and disabled the addon-resizer inclusive pod nanny. Instead I apply over provisioning.
While the kube-state-metrics pod now outlives the scaling, the example query of max(kube_pod_info) without(instance) still has gaps.
What I also did was splitting up my workloads with labels and taints. I do now have a normal node pool and a dedicated autoscaling pool for my elastic workloads. The elastic pool is exlusive for 1 deployment. I rely on custom metrics for the HPA - therefore the gap is really an issue for me.
The new suspect is metrics-server-v0.3.1

$  kubectl describe deployments -n kube-system  metrics-server

....

  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  <none>
NewReplicaSet:   metrics-server-v0.3.1-5b4d6d8d98 (1/1 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  47m    deployment-controller  Scaled up replica set metrics-server-v0.3.1-7bb7548df6 to 1
  Normal  ScalingReplicaSet  47m    deployment-controller  Scaled down replica set metrics-server-v0.3.1-5b4d6d8d98 to 0
  Normal  ScalingReplicaSet  41m    deployment-controller  Scaled up replica set metrics-server-v0.3.1-7bc7477954 to 1
  Normal  ScalingReplicaSet  41m    deployment-controller  Scaled down replica set metrics-server-v0.3.1-7bb7548df6 to 0
  Normal  ScalingReplicaSet  40m    deployment-controller  Scaled up replica set metrics-server-v0.3.1-75bbf9847d to 1
  Normal  ScalingReplicaSet  40m    deployment-controller  Scaled down replica set metrics-server-v0.3.1-7bc7477954 to 0
  Normal  ScalingReplicaSet  7m34s  deployment-controller  Scaled up replica set metrics-server-v0.3.1-7bc7477954 to 1
  Normal  ScalingReplicaSet  7m34s  deployment-controller  Scaled down replica set metrics-server-v0.3.1-75bbf9847d to 0
  Normal  ScalingReplicaSet  7m30s  deployment-controller  Scaled up replica set metrics-server-v0.3.1-7bb7548df6 to 1
  Normal  ScalingReplicaSet  7m30s  deployment-controller  Scaled down replica set metrics-server-v0.3.1-7bc7477954 to 0
  Normal  ScalingReplicaSet  7m14s  deployment-controller  Scaled up replica set metrics-server-v0.3.1-5b4d6d8d98 to 1
  Normal  ScalingReplicaSet  7m14s  deployment-controller  Scaled down replica set metrics-server-v0.3.1-7bb7548df6 to 0

Added a PDB for metrics server, scaled manually to 2. Screenshot shows behavior before and after the applied settings for 2 elastic scenarios (= works now).

Sum up - the necessary steps for me:

PDB metrics-server
disable addon-resizer

Closing due to staleness. Please reopen if you think this is still relevant.


bpfman: add ppc64 and s390x support

Now that Aya has ppc64 and s390x support, add it to bpfman.
NOTE: As part of adding in ppc64 and s390x, it was discovered that arm64 userspace image builds were not building properly. So this PR also attempts to fix that. To cross-compile bpfman rust code, cross-rs is required (because bpfman depends on a locally installed openssl package and cross-rs allows architecture specific packages by running cross in a container). In this PR, to build the bpfman image, the cross command is run in the github CI VM and Containerfile.bpfman.multi.arch pulls the built artifacts into the container image. This will not work for Konflux (OpenShift builds) because it needs a standalone build container and cross fails to run in a container because there is a DockerInDocker setup and cross can't access the docker.sock file. So Containerfile.bpfman.openshift will still be broken and will require a followup PR to attempt to fix (still trying to determine a fix).

try to renable
https://github.com/bpfman/bpfman/blob/main/.tekton/bpfman-pull-request.yaml#L39
and
https://github.com/bpfman/bpfman/blob/main/.tekton/bpfman-push.yaml#L36

pls update https://github.com/bpfman/bpfman/blob/main/docs/developer-guide/image-build.md#bpfman to use the multi arch dockerfile

Done in #1236.

/LGTM


PLAT-88684 Button needs to be able to animate its separate pieces

Update Button component to support animation.

Add 2 props to the Button component
Animation : is string prop  will be applied on onRender.
AnimationDelay:  is the number prop which will be used to apply animation on buttons group.

Added css classes for animation on button

I'm working on resolving the merge conflicts.

Below is some example code to verify that the animation effect is working as as intended:
<div style={{padding: '3em'}}>
	<Button animate="onRender">A</Button>
	<Button animate="onRender" animationDelay={100}>B</Button>
	<Button animate="onRender" animationDelay={200}>C</Button>
	<Button animate="onRender" animationDelay={300}>D</Button>
</div>


Move type constraint from frontend storage to sql engine

Closes #202
Description
moves all type constraint checks out of storage into sql_engine
Client output
is not changed

Pull Request Test Coverage Report for Build 182220456

345 of 358 (96.37%)  changed or added relevant lines in 11 files are covered.
82 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-2.9%) to 82.245%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql_engine/src/dml/select.rs
33
34
97.06%

src/storage/src/frontend/mod.rs
12
13
92.31%

src/sql_engine/src/dml/update.rs
63
66
95.45%

src/sql_engine/src/dml/insert.rs
63
71
88.73%

Files with Coverage Reduction
New Missed Lines
%

src/storage/src/frontend/mod.rs
1
64.91%

src/sql_engine/src/dml/select.rs
5
65.09%

src/storage/src/backend.rs
10
93.41%

src/sql_engine/src/dml/insert.rs
28
61.24%

src/sql_engine/src/dml/update.rs
38
59.72%

Totals

Change from base Build 179893450:
-2.9%

Covered Lines:
3488

Relevant Lines:
4241

💛  - Coveralls


[6.x ]Stop using deprecated setMethods.

\PHPUnit\Framework\MockObject\MockBuilder::setMethods is deprecated.
onlyMethods and/or addMethods should be used instead.

See https://github.com/laravel/framework/pull/32234#issuecomment-609050647

What is the first version of phpunit which has this new method?

https://github.com/sebastianbergmann/phpunit/pull/3687#issuecomment-609098056

I wonder what is "suddenly" going on with PHPUnit.
For years, upgrading was rather painless but every since they added types (e.g. setUp(): void) I noticed that release since then have a LOT of moving parts. Granted, they do everything correctly by the book regarding semver (errors aside), but it's a lot changes in recent times.


Add Firefox support

Should be pretty easy to do, I managed to get an older build somewhat working.

Out of curiosity I ran a compatibility report on this, here's the results:

{
  "compat": [],
  "errors": [],
  "warnings": [
    {
      "message": "\"storage.sync\" can cause issues when loaded temporarily",
      "description": "This API can cause issues when loaded temporarily using about:debugging in Firefox unless you specify applications|browser_specific_settings > gecko > id in the manifest. Please see: https://mzl.la/2hizK4a for more.",
      "locations": [
        {
          "file": "scripts/background/AudioManager.js",
          "line": 218
        },
        {
          "file": "scripts/background/TownTuneManager.js",
          "line": 20
        },
        {
          "file": "scripts/options/options.js",
          "line": 137
        },
        {
          "file": "scripts/options/options.js",
          "line": 158
        },
        {
          "file": "scripts/options/tune_editor.js",
          "line": 137
        },
        {
          "file": "scripts/options/tune_editor.js",
          "line": 176
        },
        {
          "file": "scripts/options/tune_editor.js",
          "line": 183
        },
        {
          "file": "scripts/options/tune_editor.js",
          "line": 206
        },
        {
          "file": "scripts/background/StateManager.js",
          "line": 88
        },
        {
          "file": "scripts/background/StateManager.js",
          "line": 215
        }
      ]
    },
    {
      "message": "Unsafe assignment to innerHTML",
      "description": "Due to both security and performance concerns, this may not be set using dynamic values which have not been adequately sanitized. This can lead to security issues or fairly serious performance degradation.",
      "locations": [
        {
          "file": "scripts/options/options.js",
          "line": 54
        },
        {
          "file": "scripts/options/options.js",
          "line": 59
        },
        {
          "file": "scripts/options/options.js",
          "line": 177
        },
        {
          "file": "scripts/options/options.js",
          "line": 188
        },
        {
          "file": "scripts/options/zepto.min.js",
          "line": 2
        }
      ]
    },
    {
      "message": "eval can be harmful.",
      "description": "Evaluation of strings as code can lead to security vulnerabilities and performance issues, even in the most innocuous of circumstances. Please avoid using `eval` and the `Function` constructor when at all possible.'",
      "locations": [
        {
          "file": "scripts/options/zepto.min.js",
          "line": 2
        },
        {
          "file": "scripts/options/zepto.min.js",
          "line": 2
        }
      ]
    }
  ]
}

Looks like the storage.sync warning was the most important of these to get the music to start. These other warnings should probably be addressed at some point too.

Just to see what would break, I tried to load the extension into Firefox and here are the logs:
can't access property "enableBadgeText", options is undefined StateManager.js:36
    activate moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:36
    getSyncedOptions moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:109
    apply self-hosted:1871
    applySafeWithoutClone resource://gre/modules/ExtensionCommon.jsm:614
    wrapPromise resource://gre/modules/ExtensionCommon.jsm:843
    withLastError resource://gre/modules/ExtensionCommon.jsm:762
    wrapPromise resource://gre/modules/ExtensionCommon.jsm:831
    (Async: promise callback)
    wrapPromise resource://gre/modules/ExtensionCommon.jsm:813
    callAsyncFunction resource://gre/modules/ExtensionCommon.jsm:1091
    callAsyncFunction resource://gre/modules/ExtensionChild.jsm:1199
    callAndLog resource://gre/modules/ExtensionChild.jsm:1175
    callAsyncFunction resource://gre/modules/ExtensionChild.jsm:1198
    stub resource://gre/modules/Schemas.jsm:2679
    getSyncedOptions moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:88
    activate moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:35
    <anonymous> moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/main.js:13
    <anonymous> moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/main.js:15

Unchecked lastError value: Error: The storage API will not work with a temporary addon ID. Please add an explicit addon ID to your manifest. For more information see https://bugzil.la/1323228. StateManager.js:88
    getSyncedOptions moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:88

TypeError: can't access property "enableBackground", options is undefined2 StateManager.js:224:7
    checkTabs moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:224
    (Async: setInterval handler)
    StateManager moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:202
    <anonymous> moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/main.js:5
    <anonymous> moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/main.js:15

can't access property "enableBackground", options is undefined StateManager.js:224
    checkTabs moz-extension://5e4434c8-4da5-4223-a019-c6364d2e5983/scripts/background/StateManager.js:224
    apply self-hosted:1871
    applySafeWithoutClone resource://gre/modules/ExtensionCommon.jsm:614
    fire resource://gre/modules/ExtensionChild.jsm:1284
    recvRunListener resource://gre/modules/ExtensionChild.jsm:1288
    recvRunListener self-hosted:877
    _recv resource://gre/modules/ConduitsChild.jsm:78
    receiveMessage resource://gre/modules/ConduitsChild.jsm:169
    (Async: JSWindowActor query)
    _send resource://gre/modules/ConduitsChild.jsm:61
    _send resource://gre/modules/ConduitsParent.jsm:206
    _send self-hosted:978
    listener resource://gre/modules/ExtensionParent.jsm:1149
    apply self-hosted:1871
    applySafeWithoutClone resource://gre/modules/ExtensionCommon.jsm:614
    applySafe resource://gre/modules/ExtensionParent.jsm:756
    async resource://gre/modules/ExtensionCommon.jsm:2438
    (Async: promise callback)
    async resource://gre/modules/ExtensionCommon.jsm:2436
    listener chrome://browser/content/parent/ext-tabs.js:563
    listener2 chrome://browser/content/parent/ext-tabs.js:461
    emit resource://gre/modules/ExtensionCommon.jsm:327
    emitCreated chrome://browser/content/parent/ext-browser.js:715
    handleEvent chrome://browser/content/parent/ext-browser.js:559

I'm unable to access to the "dialog" box after clicking on the icon:

Any life in this? Would like to have it on my machines that use firefox, since chrome is a no-go for them.

I still want this


Add macro to remove 224 version of signature algorithms

Windows AES does not support sha-224 version of these algorithms. https://docs.microsoft.com/en-us/windows/win32/seccrypto/aes-provider-algorithms
Therefore adding macro to remove sha224 version of signature algorithms
CLA: trivial

I think this PR is a bad idea. It would only be relevant to master and is (apparently) intended to  make things work more smoothly with the CAPI engine which is deprecated. IMO we should not be adding complexity to libssl to ease the use of a deprecated engine. In any case there are runtime configuration options to achieve the same goal so I see no need for a compile time option.
Adding an OTC hold.

This is also borderline for CLA: trivial kind of change.

I strongly support @mattcaswell's comments.

CLA: trivial needs to be in the commit message.
Is this causing failures?

Yes. At some point my client and server were agreed to use sha224 on windows and since windows does not support 224, whole communication was failing.

Yes. At some point my client and server were agreed to use sha224 on windows and since windows does not support 224, whole communication was failing.

Whichever side was on Windows should not advertise SHA244 then.  The simplest work-around is to set the ciphersuites explicitly.

@mattcaswell What are the runtime configuration options to achieve the same. In other words, what is the best way to make sure that client and server does not agree on sha224 on windows?
Btw, some people/companies still use capi engine.

Yes. At some point my client and server were agreed to use sha224 on windows and since windows does not support 224, whole communication was failing.

Whichever side was on Windows should not advertise SHA244 then. The simplest work-around is to set the ciphersuites explicitly.

We can't control client side, which OS (Win XP, mobile android for example) will be there, what ciphersuites are available on that OS etc, hence can't just bluntly chose ciphersuites explicitly.  We would like them to communicate and chose the best possible options by themselves.

What are the runtime configuration options to achieve the same. In other words, what is the best way to make sure that client and server does not agree on sha224 on windows?

Use the function SSL_CTX_set1_sigalgs_list (or a similar function) as described here:
https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set1_sigalgs_list.html
Call this on the same endpoint that is using the CAPI engine and ensure that you don't specify any SHA-224 based sigalags.

What are the runtime configuration options to achieve the same. In other words, what is the best way to make sure that client and server does not agree on sha224 on windows?

Use the function SSL_CTX_set1_sigalgs_list (or a similar function) as described here:
https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set1_sigalgs_list.html
Call this on the same endpoint that is using the CAPI engine and ensure that you don't specify any SHA-224 based sigalags.

Looks like hardcoding all
ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA512:Ed25519:Ed448:RSA-PSS+SHA256:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA-PSS+SHA256:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA1:RSA+SHA1:DSA+SHA1:DSA+SHA256:DSA+SHA384:DSA+SHA512... would be pretty difficult and also non extensible. At the same depending on which OS the server is running, the list can't be static. Wouldn't it be too much bending over backward?

Is there any excluding options, instead of enumerating all them such as -sha224 etc?

Unfortunately not.

OTC: We do not want to have a new compile time option for this. We might consider PRs for improving run time sig alg configuration for post 3.0.


Johnau/swift3

Upgrade project to Swift 3 and XCode 8.2.1

@JohnAustin-MSFT,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Pagination functions

Need to implement an objective from #65. Constant & realtime pagination algorithm needed. Current obvious way is to linear search (or better: binary search, but this one is more implementation-heavy).

Will do sequential-access way, leaving old data unsubscribed.


Discussion

Is there an IRC channel, Slack or alternative for discussion of this project? I have a few questions about it but I would imagine they might not be welcome as issues.

Don't have one yet, but feel free to email me<EMAIL_ADDRESS>


Introducing flex ci

This ci is specifying gpu test by -m gpu.
Thus, before merging #578 , no test will run on flex ci.

Codecov Report

Merging #579 (80a9ed5) into main (a5ba9d0) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #579   +/-   ##
=======================================
  Coverage   97.17%   97.17%
=======================================
  Files          56       56
  Lines        2333     2333
=======================================
  Hits         2267     2267
  Misses         66       66

Continue to review full report at Codecov.

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

The reason lint failed is the black problem. it was also fixed in #577


Updating a Date Column with BatchUpdate and AddDays

Something like this:
new JobContext().Jobs.Where( j => j.DateCreated > EntityFunctions.AddDays( DateTime.Today, -1 ) && j.Package != "null" ).Update( j => new Job { DateExpires = EntityFunctions.AddDays( j.DateExpired, 10 ).Value } );
Throws error: "This function can only be invoked from LINQ to Entities.”
If I do not use the EntityFunctions.AddDays() but set to a hard coded value, it works.  But how could I update a batch of dates to 'slide them all forward' (which is a common pattern for our application)?

Hello Terry,
At my surprise, I cannot reproduce this issue. It seems to work fine from our side.
Can you tell me the following information

Entity Framework Version
Database Provider
Any other information which could help me to reproduce this issue!

Here is the SQL generated by the BatchUpdate in our environment:
exec sp_executesql N'
UPDATE A
SET A.[CreatedDate] =
     CAST( DATEADD (day, 10, B.[CreatedDate]) AS datetime2)

FROM [dbo].[BatchDeleteContext_Left] AS A
INNER JOIN ( SELECT
    [Extent1].[Id] AS [Id],
    [Extent1].[CreatedDate] AS [CreatedDate]
    FROM [dbo].[BatchDeleteContext_Left] AS [Extent1]
    WHERE [Extent1].[CreatedDate] > (DATEADD (day, -1, @p__linq__0))
           ) AS B ON A.[Id] = B.[Id]
',N'@p__linq__0 datetime',@p__linq__0='2016-09-21 00:00:00'

Here is my statement:
ctx.Jobs.Where( j => j.DateCreated > EntityFunctions.AddDays( DateTime.Today, -1 ) && j.Package != "null" )
	.OrderBy( j => j.DateCreated )
	.Update( j => new Job {
					Group = null,
					DateCreated = EntityFunctions.AddDays( DateTime.Today, 1 ).Value  }
		);

EF 6.1.3
SQL LocalDB:
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.2  (Build 9200: ) (Hypervisor)

Thank you,
I successfully reproduced the issue.
The issue is not related to our library but how an expression with an anonymous type is constructed.
There is a huge difference between this two lines
EntityFunctions.AddDays( DateTime.Today, 1 ).Value
EntityFunctions.AddDays( j.DateModified, -1 ).Value

The first one is a constant (which thrown an error) while the second one varies depending on the parameter so must be evaluated later.
There is no point to use EntityFunction with DateTime.Today when you could simply use directly the AddDay from the DateTime instances.
Example
ctx.Jobs.Where( j => j.DateCreated > EntityFunctions.AddDays( DateTime.Today, -1 ) && j.Package != "null" )
        .Update( j => new Job {
                    Group = null,
                        DateCreated = DateTime.Today.AddDays(1),
                        DateModified = EntityFunctions.AddDays( j.DateModified, -1 ).Value }
        );

Since when you use EntityFunctions, the method fail directly when the expression is created (so doesn't even enter in our library), there is nothing we can really do.
Can you try using directly the DateTime instead and let me know if that work?

You are right.  Coming from the LINQ to SQL world, the whole EntityFunctions (actually now DbFunctions) threw me for a loop.  Closing.


[#5017] - update signal processor to listen to Date/ResourceAccess

Pull Request Checklist:

[ ] Positive Test Case Written by Dev

[ ] Automated Testing

[ ] Sufficient User and Developer Documentation

[ ] Passing Jenkins Build

[ ] Peer Code review and approval

Positive Test Case

[Enter positive test case here]

METRIC
VALUE

https://sonarqube.cuahsi-workstation.com:9000/dashboard?id=hydroshare-5054


add one windowing example

Add one end-to-end example about how to use Beam windowing for AQI analysis

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @tvalentyn

R: @davidcavazos

The concepts are indeed very similar in both notebooks. But this one is focused on using the real air quality data to illustrate how these concepts work.


Enable whitespace "check-typecast" option in our codebase

Done, since we extend tslint:all for linting this project.


Mail 397 throws error in Internal Extension

I am getting following error when using a button which uses Code from codeunit 397 Mail.
The process cannot be completed because an unsupported function is used (.NET Framework-Interoperability)

For this Extension I used a daily build from the 27 July, 2018 and I got the AL Version: 0.17.26287
Here are my test files:
page.txt
app.json.txt
launch.json.txt

Client side DotNET does not work with the web client only the Windows client.
Though they could make it work with a specially configured Windows browser.

@rdebath I thought I can use codeunit 397 as a dotnet replacement. How am I supposed to send mails via Outlook then?

You can use any existing objects that contain server side DotNET as long as the methods you call have the [External] decorator. So Codeunit 400 SMTP is available as are many of the objects that call DotNET classes. If a method doesn't have [External] you can submit an "expose request" here.
But anything that would talk to DotNET on client side with BC has to deal with the the fact that a normal web browser will not have any trust in the remote. This includes anything trying to use Word, Excel and Outlook on the client. For Word and Excel the Nav objects are being altered to create files on server side and trigger a simple download. Outlook is harder; though as well as the traditional SMTP stuff, there appears to be some functionality that works with O365 (Haven't tried it, or even looked at it properly though).
More complete integration, such as extracting the email currently highlighted in Outlook into the database is simply impossible with the web clients.

But when I set the target property in the app.json I can use all functions, not only the [External] ones. So if I understand you corractly this is a restriction depending from the web browser?

Exactly. The web browser has no way to trust any host so it won't trust BC or even a service tier running on the same machine.

@rdebath thank you very much for your help


different colors for < and > redirection

I feel there is huge difference between < and <. One is harmless and reads from file, the other is dangerous and overwrites file.
I would like to have different colors for each to distinguish them. Unfortunately, zsh-syntax-highlighting treats them as same:
164:  [[ $1 == (<0-9>|)(\<|\>)* ]] && [[ $1 != (\<|\>)$'\x28'* ]]

Can you please implement this, or at least suggest what changes to make?

Changes to make: change the places that set redirection to set some other string. For inclusion, update docs and add fallback mappings (as for argv0). See also the NO_CLOBBER and APPEND_CREATE zshoptions(1). Excuse brevity.

I did patch main-highlighter.zsh in version 0.6, and it worked fine.
Basically I just added:
   elif (( in_redirection == 2 )); then
        if [[ "$arg" =~ '.*>' ]] ; then
            style=redirection
        else
            style=redirection2
        fi

and defined new color for redirection2.
Now I have upgraded to version 0.7, and the code in main-highlighter.zsh looks unrecognizable.
How can I have different colors for < and > ?

Something like
diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh
index 7ec6249..9728066 100644
--- a/highlighters/main/main-highlighter.zsh
+++ b/highlighters/main/main-highlighter.zsh
@@ -117,6 +117,9 @@ _zsh_highlight_main_calculate_fallback() {
       autodirectory arg0
       arg0_\* arg0

+      redirection-in redirection
+      redirection-out redirection
+
       # TODO: Maybe these? —
       #   named-fd file-descriptor
       #   numeric-fd file-descriptor
@@ -747,7 +750,12 @@ _zsh_highlight_main_highlighter_highlight_list()
         _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token
       else
         in_redirection=2
-        _zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection
+        if [[ $arg = *\>* ]]; then
+          style=redirection-out
+        else
+          style=redirection-in
+        fi
+        _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style
       fi
       continue
     elif [[ $arg == '{'${~parameter_name_pattern}'}' ]] && _zsh_highlight_main__is_redirection $args[1]; then

(Docs and test changes are an exercise for the reader.)

that works beautifully. thank you


Suggesting some grammatical corrections. Kindly check.

Thank you for submitting the pull request to the Apache Ignite.
In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:
The Contribution Checklist

[ ] There is a single JIRA ticket related to the pull request.
[ ] The web-link to the pull request is attached to the JIRA ticket.
[ ] The JIRA ticket has the Patch Available state.
[ ] The pull request body describes changes that have been made.
The description explains WHAT and WHY was made instead of HOW.
[ ] The pull request title is treated as the final commit message.
The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
[ ] A reviewer has been mentioned through the JIRA comments
(see the Maintainers list)
[ ] The pull request has been checked by the Teamcity Bot and
the green visa attached to the JIRA ticket (see TC.Bot: Check PR)

Notes

How to Contribute
Coding abbreviation rules
Coding Guidelines
Apache Ignite Teamcity Bot

If you need any help, please email<EMAIL_ADDRESS>or ask anу advice on http://asf.slack.com #ignite channel.

Suggesting some minor typo/grammatical corrections. Kindly let me know if there are any review comments.


Tracking Issue: Gnosis Chain Deployment

[x] Deploy contracts using deploy script
[ ] Configure and deploy subgraph for Gnosis Chain
[ ] Add Gnosis Chain support to frontend (see this pr for hints from last time)
[ ] Add Gnosis Chain to backend with base asset only (xDai)
[ ] Ship Gnosis Chain support with base asset only to production
[ ] Stand up a Gnosis Chain relayer, identify top non-base-asset tokens on the chain and add support to the backend (likely candidates: WETH, WBTC, GNO, other stablecoins?)

See this checklist

Contracts deployed and verified:

0xfb2dc580eed955b528407b4d36ffafe3da685401
0x31fe56609c65cd0c510e7125f051d440424d38f3

Subgraph for Gnosis Chain available here: https://api.goldsky.com/api/public/project_clfmn098ebuoc3svybn2l2tvp/subgraphs/umbra-xdai/v1.0.0/gn


Possible mac install remedies

To add the dependencies, you will need to install the following using npm:
minimatch
graceful-fs 4
gulp-util
In terminal (MacOS) run the following commands to install:
sudo npm install -g minimatch
sudo npm install gulp-cli -g
sudo npm install -g graceful-fs

Maybe they could be declared as optionalDependencies?
https://docs.npmjs.com/files/package.json#optionaldependencies

does that involve an optional install routine we could add to the docs (sounds like a good idea)

does that involve an optional install routine

It does, optionalDependency installation will be attempted for every install, but if the dependency requires a specific OS https://docs.npmjs.com/files/package.json#os or fails for any other reason, it can skip installation of that dependency without failing the entire install.

ahh nice, didn't know that's how that worked!


Docs 8913 confusing runtime manager alerts placeholders hn

26-after-Alerts _ MuleSoft Documentation.pdf

I was reading the docs, it is a little confusing at least for me to have a list of "Alert Variables" and later "Variables by Alert" I would have something like
One section explaining the variables availables in all alerts and app alerts, and a list showing only specific variables for alert, for example having "Exceeds event trac threshold" in the list with no specific variables is more confusing because it create a larger list but no add value in have the line, and I would sort the list trying to put together same kind of alerts, for example "CPU usage - CloudHub" is line 1 inside "CloudHub App Alerts" but "Memory usage - CloudHub" in the same category is line 6 and they have the same variables

Hi @ldebello in our latest ARM sustaining meeting, we discussed that
"Number of errors:
The number of errors in one minute reaches the specied limit."
is not clear. What is considered an error here? Can we please have this clarified with the PM and add it to the docs? Let me know if this should be tracked in a separate DOCS/PR. (Check details with Sebastian and Curra) - Thanks!

Hi @ldebello in our latest ARM sustaining meeting, we discussed that
"Number of errors: The number of errors in one minute reaches the specied limit."
is not clear. What is considered an error here? Can we please have this clarified with the PM and add it to the docs? Let me know if this should be tracked in a separate DOCS/PR. (Check details with Sebastian and Curra) - Thanks!

Hi the number of errors is provided by the runtime, so not sure can be respond that, the mule agent plugin only ask the runtime to get that information and send to the management plane, i am assuming the meaning is the number of flow execution that fails but not sure about that.


[Feature Request] Custom Extension

Quite simple, need to add the ability to create custom extensions via the operator. Currently this can be achieved by posting a zip file with the plugin.json.
In this particular case the extensions are JMX extensions, but I'm sure this can apply to any other type.
Would be convenient to add this functionality to the provider.
Cheers

That one will be a challenge. Uploading binary files is not necessarily something a Terraform Provider is supposed to do.
I will however look into the possibility to narrow things down to JMX Extensions only. Perhaps the plugin.json can get embedded into the .tf file using jsonencode.

Uploading a binary file via terraform is not easy indeed. However if the provider expects a json input, then providing the json document as-is from dynatrace-ui or custom then referencing it in the code is a vaild solution in my mind. something on the lines of local_file resource with jsondecode, then reference that resource as the payload for creating the custom extension.
thanks!


Return href as part of location

https://github.com/reach/router/commit/0a8af930398570d07d380ef1b6f80833501c8a29 broke Gatsby because we depend on location.href
We've pinned to 1.2.1 in the mean time

+1


Add OS codename dataset

In v6 we'll be allowing for searching by OS codename. This data isn't always available from upstream vunnel providers, so instead, we'll be injecting it at the last mile when writing records. This PR is only concerned with how the data is generated into the codebase, the workflow responsible for updating it, and the helper function to use the generated data to find codenames for OS names and versions (for example, given "ubuntu 20.04" return "focal").
Example workflow run that would create the PR if there were code updates https://github.com/anchore/grype-db/actions/runs/11957163261/job/33333641284

force pushed to rebase after #432 landed


ValueError: Unknown layer: Functional

Hi, Rozumnyi.
Excellent work!
Can you provide the versions of your tensorflow, keras and h5py? Cause I meet the issue of "ValueError: Unknown layer: Functional" when loading the FMODetect.h5 model at the 25 line of run.py.
Thanks a lot.

Hi, Rozumnyi. Excellent work! Can you provide the versions of your tensorflow, keras and h5py? Cause I meet the issue of "ValueError: Unknown layer: Functional" when loading the FMODetect.h5 model at the 25 line of run.py. Thanks a lot.

Hi friend, Did u solve this problem?

Hi @olivia1823,
Thank you! I'm sorry for the late answer (due to some personal reasons). Below I provide the versions:
tensorflow==1.13.1
tf.keras is the default one in this TensorFlow version
h5py==2.6.0
I believe the model loading will not work with other Tensorflow versions, unfortunately. Please let me know if this works.

hi @rozumden
The issue still prevails. Model is not being load.
Btw, pip install h5py==2.6.0 didn't work, used conda install -c clg_boar h5py

is someone who reproduces the experiments? or had successfully run the inference? if so please could you share with me the weights of the model

is someone who reproduces the experiments? or had successfully run the inference? if so please could you share with me the weights of the model

I tried to set the keras version to 2.4.0 and it works, you can try it

after sometime i run again successfully this using this setting.
python 3.7.4, h5py 2.10.0, tensorflow 2.11.0 and imageio 2.6.0, hope this help :)

anyone reimplement this algorithm with pytorch?


Extend configuration to ban matching of ts files

Description
I am researching different ways to run step definition files written with typescript and I would like to propose the following feature:
Proposal
Instead of tsifying files in plugins file let's allow the user to compile .ts files to .js with tsc and run cypress afterward.
Pros
Right now step definitions are being compiled on every run. This produces some problems:

Delay before tests start (it's really annoying)
Any compilation errors are shown inside cypress log, without details.

If we would compile ts files with tsc and just exclude them from files matching step definitions (we already have their's compiled version) then we will solve both of the stated problems.
Possible solution
Let's introduce new boolean param matchTypeScriptStepDefinitions with default value set to true.
I am ready to prepare PR and an example of usage if you would agree to add this feature to the project.

Got same issue.
I was using a package.json command that first ran ""tsc" then "cypress run/open", The problem with that approach is you need to manually re-run tsc each time you modify your code when using cypress open.
Though for performance and CI execution, it is much better to simply use "tsc" then "cypress run" and use the compile js file, rather than compiling the "ts" files using browserify for every test suites (in this case, *.features)

Due to personal reasons, the previous maintainers of this package are stepping down and handing the reigns over to me, a long-time contributor to the project and a user of it myself. This is a responsibility I'm very excited about. Furthermore, I'd like to thank @lgandecki ++ for all the work that they've done so far.
Read more about the transfer of ownership here.
The repository has however moved and all outstanding issues are being closed. This is not a reflection of the perceived importance of your reported issue. However, if after upgrading to the new version, you still find there to be an issue, feel free to open up another ticket or comment below. Please make sure to read CONTRIBUTING.md before doing so.


feat(conversation): propagate errors from lambda through subscription

❗ Dependent on https://github.com/aws-amplify/amplify-category-api/pull/2986
Description of changes
CDK / CloudFormation Parameters Changed
Issue #, if available
N/A
Description of how you validated changes
Checklist

[ ] PR description included
[ ] yarn test passes
[ ] E2E test run linked
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies
[ ] Any CDK or CloudFormation parameter changes are called out explicitly

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Closed in favor of https://github.com/aws-amplify/amplify-category-api/pull/3002


electron_11: 11.1.0 -> 11.2.0

Motivation for this change
https://github.com/electron/electron/releases/tag/v11.2.0
Things done

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

[x] NixOS

[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Other Electron updates also need ports to stable:
https://github.com/NixOS/nixpkgs/commits/master/pkgs/development/tools/electron
https://github.com/NixOS/nixpkgs/commits/release-20.09/pkgs/development/tools/electron

Other Electron updates also need ports to stable:
https://github.com/NixOS/nixpkgs/commits/master/pkgs/development/tools/electron
https://github.com/NixOS/nixpkgs/commits/release-20.09/pkgs/development/tools/electron

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109290 run on x86_64-darwin 1

2 packages built:

electron (electron_11)
vieb

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109290 run on x86_64-darwin 1

2 packages built:

electron (electron_11)
vieb

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109290 run on x86_64-linux 1

5 packages built:

_1password-gui
electron (electron_11)
nix-tour
obsidian
vieb

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109290 run on x86_64-linux 1

5 packages built:

_1password-gui
electron (electron_11)
nix-tour
obsidian
vieb

@TredwellGit could you elaborate on why this needs a port to stable? I don't see anything security related in the release notes you linked.

@TredwellGit could you elaborate on why this needs a port to stable? I don't see anything security related in the release notes you linked.

https://github.com/electron/electron/pull/27213
https://chromereleases.googleblog.com/2021/01/stable-channel-update-for-desktop.html

This update includes 16 security fixes.

https://github.com/electron/electron/pull/27213
https://chromereleases.googleblog.com/2021/01/stable-channel-update-for-desktop.html

This update includes 16 security fixes.

Ah, thanks now I get it.

Ah, thanks now I get it.


EdwardJLHaigh: new volunteer via Mozilla Science Lab Collaborate

This issue was created by @EdwardJLHaigh via Mozilla Science Lab Collaborate

Hi Edward.  Thanks for showing interest - it is a pleasure to have you!  Can you introduce yourself to the team and talk a little bit about your background?


Namespaces

Hi,
The repository contains some objects with quite generic names, eg:
FUGR ZREST
TABL ZREGISTER
DOMA ZCLASSNAME
DTEL ZCHAR75
DTEL ZORIGINAL
DTEL ZURI
DTEL ZUNAME
For these, there is a theoretical chance that the customer already has an object with identical names in their system.
I recommend prefixing objects to lower the risk, eg.
FUGR Z_AZURE_REST
TABL Z_AZURE_REGISTER
DOMA Z_AZURE_CLASSNAME
DTEL Z_AZURE_CHAR75
DTEL Z_AZURE_ORIGINAL
DTEL Z_AZURE_URI
DTEL Z_AZURE_UNAME
or something similar

@larshp -
We are looking into your suggestion for getting a unique Namespace.
I have one query on ABAPGit to understand whether ABAPGit would show any object overwriting warnings while doing the pull or clone from the repository to SAP system. Thanks

unique namespace: in my opinion it is easier just to prefix
overwrite: yes it shows warnings if the objects it tries to overwrite are outside of the expected package hierarchy(main repo package)

@krdash So, is ZxxADFxx the actual prefix Namespace (e.g. ZCL_ADF_..., ZADF_S_STRUC...)?
Should we move ZREST to ZADF one by one?

What is the status on this? It seems to me that the correct way to do it is to introduce a proper name space, instead of customer namespace Z...
For instance /AZURE/
Everything else will cause problems at some point...

Namespace must be Z or Y!
For reserved Namespaces like /AZURE/ one needs special key (producer/repair) to create objects in this namespace!

cool
one tip, you can setup abaplint to automatically check the objects have the preferred prefix, example at https://github.com/abapGit/abapGit/blob/main/abaplint.json#L335-L339