Broken after upgrade to 2023.9.0

Upgraded from 2023.8.4
purei9: Not adding entity with invalid device info: Invalid device info {'default_model': 'Pure i9', 'identifiers': {('purei9', 'xxxxxxxxxx')}, 'manufacturer': 'Electrolux', 'name': 'Electrolux PI92', 'sw_version': '43.23'} for 'purei9' config entry: device info needs to either describe a device, link to existing device or provide extra information.

i am in the same situation
in version 2023.8.4 was "only" warning, in version 2023.9.0 it's already error - broken
purei9: Not adding entity with invalid device info: Invalid device info {'default_model': 'Pure i9', 'identifiers': {('purei9', 'xxxxxxxxxxxxx')}, 'manufacturer': 'Electrolux', 'name': 'baam robot I', 'sw_version': '43.23'} for 'purei9' config entry: device info needs to either describe a device, link to existing device or provide extra information.

Hello ! thanks for this integration !!! but i am in the same situation. updating to 2023.9.0 and not working :(
thanks !!

Thanks for reporting this! I'll look into it and get back when I have more information.

Great, thank you ! and if we want to suggest new functions (not necessarily now but maybe later) can we do it here?
I was thinking of adding the application's favorites so that it only works in the rooms you want

Great, thank you ! and if we want to suggest new functions (not necessarily now but maybe later) can we do it here? I was thinking of adding the application's favorites so that it only works in the rooms you want

It's best to create a new issue (top right). Else, it risks getting lost when I resolve this one. 🙂

ok ! thank you

Is this issue the culprit?
https://github.com/home-assistant/core/issues/45661
Logger: homeassistant.components.vacuum
Source: helpers/entity_platform.py:621
Integration: Dammsugare (documentation, issues)
First occurred: 9 september 2023 kl. 16:48:01 (1 occurrences)
Last logged: 9 september 2023 kl. 16:48:01

found the problem.
Device info is indeed the culprit.
this code in homeasistant is doing it.
for possible_type, allowed_keys in DEVICE_INFO_TYPES.items():
       if keys <= allowed_keys:
           device_info_type = possible_type
           break

   if device_info_type is None:
       raise DeviceInfoError(
           config_entry.domain,
           device_info,
           (
               "device info needs to either describe a device, "
               "link to existing device or provide extra information."
           ),
       )

   return device_info_type

its using this list to check if item is something that is in the DEVICE_INFO list
DEVICE_INFO_TYPES = {
    # Device info is categorized by finding the first device info type which has all
    # the keys of the device info. The link device info type must be kept first
    # to make it preferred over primary.
    "link": {
        "connections",
        "identifiers",
    },
    "primary": {
        "configuration_url",
        "connections",
        "entry_type",
        "hw_version",
        "identifiers",
        "manufacturer",
        "model",
        "name",
        "suggested_area",
        "sw_version",
        "via_device",
    },
    "secondary": {
        "connections",
        "default_manufacturer",
        "default_model",
        "default_name",
        # Used by Fritz
        "via_device",
    },
}

somehow the default_model is not accepted and throwing the exception
so by changing in custom_components -> pureI9
in vacuum.py line 255 "default_model" to "model"
in purei9.py line 165 "default_model" to "model"
it works again after a restart

found the problem.
Device info is indeed the culprit. this code in homeasistant is doing it.
for possible_type, allowed_keys in DEVICE_INFO_TYPES.items():
       if keys <= allowed_keys:
           device_info_type = possible_type
           break

   if device_info_type is None:
       raise DeviceInfoError(
           config_entry.domain,
           device_info,
           (
               "device info needs to either describe a device, "
               "link to existing device or provide extra information."
           ),
       )

   return device_info_type

its using this list to check if item is something that is in the DEVICE_INFO list
DEVICE_INFO_TYPES = {
    # Device info is categorized by finding the first device info type which has all
    # the keys of the device info. The link device info type must be kept first
    # to make it preferred over primary.
    "link": {
        "connections",
        "identifiers",
    },
    "primary": {
        "configuration_url",
        "connections",
        "entry_type",
        "hw_version",
        "identifiers",
        "manufacturer",
        "model",
        "name",
        "suggested_area",
        "sw_version",
        "via_device",
    },
    "secondary": {
        "connections",
        "default_manufacturer",
        "default_model",
        "default_name",
        # Used by Fritz
        "via_device",
    },
}

somehow the default_model is not accepted and throwing the exception so by changing in custom_components -> pureI9 in vacuum.py line 255 "default_model" to "model" in purei9.py line 165 "default_model" to "model" it works again after a restart

thx, your fix works

found the problem.
Device info is indeed the culprit. this code in homeasistant is doing it.
for possible_type, allowed_keys in DEVICE_INFO_TYPES.items():
       if keys <= allowed_keys:
           device_info_type = possible_type
           break

   if device_info_type is None:
       raise DeviceInfoError(
           config_entry.domain,
           device_info,
           (
               "device info needs to either describe a device, "
               "link to existing device or provide extra information."
           ),
       )

   return device_info_type

its using this list to check if item is something that is in the DEVICE_INFO list
DEVICE_INFO_TYPES = {
    # Device info is categorized by finding the first device info type which has all
    # the keys of the device info. The link device info type must be kept first
    # to make it preferred over primary.
    "link": {
        "connections",
        "identifiers",
    },
    "primary": {
        "configuration_url",
        "connections",
        "entry_type",
        "hw_version",
        "identifiers",
        "manufacturer",
        "model",
        "name",
        "suggested_area",
        "sw_version",
        "via_device",
    },
    "secondary": {
        "connections",
        "default_manufacturer",
        "default_model",
        "default_name",
        # Used by Fritz
        "via_device",
    },
}

somehow the default_model is not accepted and throwing the exception so by changing in custom_components -> pureI9 in vacuum.py line 255 "default_model" to "model" in purei9.py line 165 "default_model" to "model" it works again after a restart

Looks to be working after a quick test.

I appreciate the investigation!
If you'd like, you can send a PR with the changes and I'll merge it. Otherwise, I'll look into this next weekend. 🙂

I have released version 1.4.2 which contains the fix. Thank you @juulius.


Sort directives by execution order in apicast.conf

The content phase is executed before the log one, but in the config log_by_lua appeared before content_by_lua. There are some operations performed to calculate run times and to understand them it's necessary to know the order of execution of the phases. I think that sorting them in the config helps.

👍
I was thinking about renaming the content phase to post_action. So it is more obvious. Wdyt?

I agree. I'll change that.

The module.lua allows explicit phase to be called. So maybe just use that?


Qav configuration

Hi, I'm currently investigating Qav on the SJA1105TEL and got it to work to some extent I tested it using iperf3. When I set credit_hi/lo to 0x3fffffff and both send and idle slopes to 10000 the bandwidth was 50% (57MByte/s) as expected and increasing the send slope decreased the bandwidth as expected. However setting the send slope to 9000 suddenly jumps to 72MByte/s. Keeping the send slope at 10000 and increasing the idle slope instead seems to give better results above 50% not sure why. Is there any documentation available on how the Qav hardware works ? I did find sja1105_cbs_commit but it is not used anywhere.

Hi Rikus,
Surprised to hear back from you!
A lot has been happening with the sja1105 recently, most importantly it has received a new kernel driver which is now included in OpenIL master branch.
Adding support for the Credit-Based Shaper was one of my last major items on the to-do list for this switch, and now that you asked about it I finally took some time to do it.
Not sure how willing you are to switch to a kernel-based implementation at this point (although there would be a lot of reasons to - it supports 802.1AS using unpatched linuxptp, 802.1Qbv configuration using tc-taprio, 802.1Qci configuration using tc-gate, port mirroring, trapping/dropping/redirecting by DMAC, port, traffic class and flow policers), but at least you can take a look at the branch I set up: https://github.com/vladimiroltean/ls1021atsn-linux/blob/feature/sja1105-cbs/drivers/net/dsa/sja1105/sja1105_main.c#L1681
net: dsa: sja1105: offload the Credit-Based Shaper qdisc

SJA1105, being AVB/TSN switches, provide hardware assist for the
Credit-Based Shaper as described in the IEEE 8021Q-2018 document.

First generation has 10 shapers, freely assignable to any of the 4
external ports and 8 traffic classes, and second generation has 16
shapers.

We also need to provide a dummy implementation of mqprio qdisc offload,
since this seems to be necessary for shaping any traffic class other
than zero.

The Credit-Based Shaper tables are accessed through the dynamic
reconfiguration interface, so we have to restore them manually after a
switch reset. The tables are backed up by the static config only on
P/Q/R/S, and we don't want to add custom code only for that family,
since the procedure that is in place now works for both.

 I also tested it across a more varied range of bandwidths and it seems pretty linear.
Hope this helps,
-Vladimir

Hi Vladimir
This does help, thank you.
We'll be using a Digi module with a Yocto build, I'm not sure how easy it will be to pull in the latest kernel. I will be testing a SJA1105Q soon so having kernel support will be helpful.
Thanks
Rikus

For what it's worth, I'm not working on the sja1105-tool anymore, due to the many design limitations that it has, so it's unlikely that CBS support for it is going to happen.

I do have my own SJA register access code for our gPTP so could use that if need be, sja1105-tool also allow direct register access so it could be shell scripted as well. I just wasn't sure exactly how to use the CBS registers.

If you plan to migrate to the SJA1105Q and you do raw register access I suppose all of those scripts need to be updated anyway.


Update ListView Drop handler to be more generalizable

Modified the "ListViews with Drag, Drop, and Reordering Support" sample to make it more generalizable from the specific setup in this app. Also increased clarity in comments, and removed a typo.
Description

Modified the Drop handler for the "ListViews with Drag, Drop, and Reordering Support" sample's two ListViews. The insertion index is now initialized to zero. Only if there are items in the target ListView, does the calculation of the insertion index proceed. Otherwise the calculation is skipped and the index retains its initial value of zero. Also updated the comments to remove some ambiguity in describing what the code is doing. Finally, corrected a typo by removing an excess semicolon at the end of what was line 174 (now is line 170).
Motivation and Context

Previous version assumed height of ListViewItems in both source and target ListViews were identical. A sample ListViewItem (sampleItem) was selected from the source ListView. The height of this sampleItem was then measured to calculate the insertion index for the dropped items. If the item heights in the two ListViews were different, the insertion index would be incorrectly calculated, resulting in the item being inserted in the wrong place, possibly off-screen and possibly confusing the user.
Came across this issue when trying to follow the sample to implement this drag and drop functionality between two ListViews. The ListViews in this case did not have identical ListViewItem heights.

How Has This Been Tested?

Copied the ContactListViewTemplate DataTemplate in the Page.Resources and modified the copy to assign a different height to the Grid.. Assigned this modified DataTemplate to the ItemTemplate property on DragDropListView2. Built and ran the code. Dragged and dropped items between the DragDropListView and DragDropListView2, in both directions. Items were not inserted at the correct positions.
Repeated the same procedure with the changes made in this pull request to the Drop event handler for the two ListViews. Items were now inserted at the correct positions, regardless of size differences between the two ListViews' item templates.

Tested using Visual Studio 2019 Version 16.10.0 on a 2017 Surface Pro. Confirmed the only two references to the changed function were the two ListViews (DragDropListView and DragDropListView2), so no other area of the code should be affected.
Screenshots (if appropriate):
Types of changes

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

Thank you @MichaelKintscher, this is a great fix and I appreciate the thorough explanation. I agree that we usually try to add the C#/code-behind to the sample on the page as well, but for samples like this with more complicated logic it's fine to leave it out. I'll go ahead and approve/merge this now.
@chingucoding Thank you for all of your help in looking through these PRs as well! Much appreciated.


Sometimes it is impossible to control async work with zones, because some values are tied to root zone

In some cases, the control over the Dart zone can be limited when we use Future or Stream because some inner constants are tied to the root zone.
For example (inspired by FakeAsync from Quiver):
import 'dart:async';

import 'package:test/test.dart';

void noop([Object _]) {}

void main() {
  group('Counter should', () {
    List<void Function()> actions;

    int testCounter;
    int callbacksCount;
    int periodicCallbacksCount;
    int microtasksCount;

    // Create zone specification that just saves all callbacks
    // for timers and microtasks and then does nothing
    final zoneSpecification = ZoneSpecification(
      createTimer:
        (source, parent, zone, duration, f) {
          callbacksCount += 1;
          actions.add(f);
          return parent.createTimer(zone, duration, noop);
        },

      createPeriodicTimer:
        (source, parent, zone, period, f) {
          periodicCallbacksCount += 1;
          actions.add(() => f(null));
          return parent.createPeriodicTimer(zone, period, noop);
        },

      scheduleMicrotask:
        (source, parent, zone, f) {
          microtasksCount += 1;
          actions.add(f);
          parent.scheduleMicrotask(zone, noop);
        },
    );

    setUp(() {
      actions = [];
      testCounter = 0;
      callbacksCount = 0;
      periodicCallbacksCount = 0;
      microtasksCount = 0;
    });

    test('be incremented two times', () {
      runZoned(
        () {
          // Do some async work to register some callbacks
          Stream<Object>
            .periodic(const Duration(hours: 1))
            .take(1)
            .listen(
              (_) {
                print('onData');
                testCounter += 1;
              },
              onDone: () {
                print('onDone');
                testCounter += 1;
              },
            );

          // Call all registered callbacks syncroniously until there
          // will be no new scheduled callbacks
          while (actions.isNotEmpty) {
            final fns = List.of(actions);
            actions.clear();
            fns.forEach((fn) => fn());
          }

          // Check registrations count
          print('createTimer: $callbacksCount');
          print('createPeriodicTimer: $periodicCallbacksCount');
          print('scheduleMicrotask: $microtasksCount');

          // Test counter
          expect(testCounter, 2);
        },
        zoneSpecification: zoneSpecification,
      );
    });
  });
}

It is expected that the test should pass, but it fails:
onData
createTimer: 0
createPeriodicTimer: 1
scheduleMicrotask: 0
Expected: <2>
  Actual: <1>

package:test_api           expect
test/dart_test.dart 81:11  main.<fn>.<fn>.<fn>
dart:async                 runZoned
test/dart_test.dart 50:7   main.<fn>.<fn>

onDone
✖ Counter should be incremented two times
Exited (1)

We found this on Dart SDK 2.4.0, it also can be reproduced with Dart SDK 2.7.0.
Before it fails, .take(1) closes stream which cancels the subscription. In the current example, cancellation returns Future which is resolved with null in the root zone. It is constant.
https://github.com/dart-lang/sdk/blob/master/sdk/lib/async/future.dart#L151
The onDone callback will be called after cancellation Future resolving, but it is already resolved. So, it will be called with scheduleMicrotask from the zone of the resolved Future, which is the root zone. And here we lost control over onDone and why the test failed.
Unfortunately, this is a very popular fail case in tests, where Quiver, RxDart and other Stream-heavy libraries are used and when we try to test something synchronously.

@lrhn

It's also a hard to figure out which zone a microtask is scheduled in, and which it should be scheduled in.

It is true that the Zone API is very flexible and you can write code where it is indeed hard to figure out what runs in which zone. However, without any discipline zones become quite useless. Currently, most major frameworks - Flutter, AngularDart, Rx, Quiver - rely on the following two properties:

A callback executed asynchronously must execute in the zone it was registered in.
The receiver of an async callback schedules microtasks and timers in the current zone.

The first property seems to hold in Stream.listen(onDone). However, it violates the second property.
This is very surprising given that Future.then, Future.delayed, Time.run, scheduleMicrotask, Stream.listen, Window.onDrawFrame (or any Window.on* callback in Flutter), and many more all uphold these properties. This allows them to be combined and chained in arbitrary ways without leaving the zone.
We use this to implement a number of useful features:

WidgetTester creates a fake timeline (using Quiver's FakeAsync) allowing you to run tests that span many seconds in logical time in milliseconds of real time. You can even write a widget test that animates for 10 years and run that test in less than a second.
Developers write "activity tracking frameworks" that allow them to collect analytics and performance metrics from their apps by creating zones for user actions and measuring their performance.
Developers collect crashes due to uncaught errors by running apps inside a zone with an uncaught error handler.
AngularDart uses zones to detect user actions in order to kick a dirty check cycle to update the UI. Kicking code out of the NgZone will result in UI to stop updating.

It is therefore very surprising to see Stream.listen(onDone) to kick you out into the root zone. I think this is a serious bug.

Here are some bug reports associated with this issue:
https://github.com/google/quiver-dart/issues/583
https://github.com/flutter/flutter/issues/40074
https://github.com/flutter/flutter/issues/17738
https://github.com/ReactiveX/rxdart/issues/365

I don't think we've ever promised that "The receiver of an async callback schedules microtasks and timers in the current zone."
In fact, I don't even know what it means. The zone that is current when?
I would read it as saying that Future.then(something) should schedule microtasks related to something in the zone that is current when then(something) is called. It currently doesn't, and again, if there is more than one listener, then it won't use both. And if there is no listener, then the option does not exist, but we'll still schedule something to complete the future asynchronously (at least if it is an error).
For callbacks of Future and StreamSubscription we ensure that the callbacks remember the zone they were added in, and run in that zone.
It's not given which zone the underlying controller/future runs scheduleMicrotask in.
For Future it will likely be the zone where the future was "created" (which is not a specified concept, but when you call Future.then, you create the result future in the current zone of that call). The future actually only holds on to that zone in order to use its scheduleMicrotask, and I'd like to avoid that memory tax. And again, not all future completions use scheduleMicrotask, some just piggyback on other futures being completed, so we can complete multiple futures in a single microtask.
A stream will "run" in the zone where the listen was called. We just call the onListen in the zone where listen was called, and let the controller take it from there. That usually ensures that the events will come from that zone, but the stream controller actually mostly ignores zones, it's the stream subscription which switches zones when it calls its callbacks. So, schedule microtask will happen in the zone that the controller is invoked in. (For pauses and resumes, it's probably the zone that the calls to the stream subscription happens in).
The issue here seems to be that the onCancel call returns a future, and somehow that future's zone is used to schedule a microtask (because it's a completed future). There is nothing we can really do to prevent this without changing the behavior of completed futures (to, say, use the listener's zone).
We can try that, but it is very likely that a lot of other unstable code will break then.

@lrhn

I don't think we've ever promised that "The receiver of an async callback schedules microtasks and timers in the current zone."

It doesn't have to be a promise, but the default. If nothing in the documentation explicitly states that an API is shifting zones then the expectation is that it won't move my code to another zone. Any other behavior leads to surprises. After all, the Zone API is all about being able to intercept timers, microtasks, and other operations. In order to succeed zone behavior must be predictable. If some API doesn't openly scream "I'm messing with zones" (such as FakeAsync does in both the class name and in the docs) but then goes ahead and messes with zones, it makes the zone API too unpredictable and confusing to be useful in practice.
So far the vast majority of core libraries has been well-behaved. This instance is one of the rare exceptions, which makes it so surprising.

In fact, I don't even know what it means. The zone that is current when?

All code runs in some zone, if anything, the root zone. Consider a block of Dart code (a series of statements). Whatever zone the first statement ends up running in (the "current zone"), then, by default, all other statements should run in the same zone, unless there's something that very clearly shifts the zone. In the example above the statements inside onDone unexpectedly end up in a different zone:
          Stream<Object>  // zone 1
            .periodic(const Duration(hours: 1))  // zone 1
            .take(1)  // zone 1
            .listen(  // zone 1
              (_) {
                print('onData');  // zone 1
                testCounter += 1;  // zone 1
              },
              onDone: () {
                print('onDone');  // zone 2!!!
                testCounter += 1;  // zone 2!!!
              },
            );
          // zone 1

This is unexpected because there's nothing about producing a periodic stream of events that implies zone changes. It's a pure in-memory computation that relies on microtasks and timers, all of which are interceptable by zones.

We definitely do promise that the callbacks to Future's then and catchError methods, and to Stream's listen method will run in the zone where that call was made. If they don't, that's a bug.
The onListen etc. callbacks on a stream controller happens in the zone where the user called listen, pause, resume or cancel, not where the callbacks were set. (That too is a promise, and it's what guarantees that a stream listen operation actually happens in the zone where the listen method was called).
I honestly don't understand the connection between a Future and a Completer and whatever zones are involved. The Future has a zone before it's completed. That never made sense to me.
Everything else is less specified. We do not guarantee where the implementation runs, which does affect any microtasks it might schedule.

We definitely do promise that the callbacks to Future's then and catchError methods, and to Stream's listen method will run in the zone where that call was made. If they don't, that's a bug.
The onListen etc. callbacks on a stream controller happens in the zone where the user called listen, pause, resume or cancel, not where the callbacks were set. (That too is a promise, and it's what guarantees that a stream listen operation actually happens in the zone where the listen method was called).

This is both surprising and undocumented. Surprising, because what would the author of the onListen callback, which is conceptually "on the other end of listen", know about the behavior of the zone where listen runs. Imagine two libraries each running in its own zone, ending up at two ends of a stream, one at the listener side, and another at the stream controller side. These two libraries should be able to have control over zones their code runs in. The stream should establish a safe connection between the two zones without entangling them.

I honestly don't understand the connection between a Future and a Completer and whatever zones are involved. The Future has a zone before it's completed. That never made sense to me.

I don't think Future needs to have a zone in a way that leaks to the call site (i.e. code that creates and waits for the future).

Everything else is less specified. We do not guarantee where the implementation runs, which does affect any microtasks it might schedule.

It is actually fine for the implementation to run in a different zone, as long as it has a good reason to do so and has good docs. Stream's onDone doesn't have either.
Microtasks and timers are special, because ZoneSpecification has explicit handling for them. Hence the expectation that if an implementation schedules microtasks/timers, the zone should be able to intercept them.

I admit that the zone interaction with streams and futures is almost entirely undocumented.
The one thing that you can depend on is that only callbacks which are registered in a zone will also be called in a specific zone. That's the then/catchError/whenComplete callbacks of Future and the onData/onError/onDone callbacks of StreamSubscription. These are the callbacks which correspond to the asynchronous computation.
All other callbacks are not zone aware, and will be called in whatever zone is current at the time they are triggered. These are control callbacks for streams (onListen / onPause / onResume / onCancel) and all callbacks called from stream builder functions like Stream.where and Stream.map. The former is called in the zone where the user called stream.listen/subscription.pause, the latter only gets attached when the modified stream is listened to, so it's in the same zone as the listen call.
Making it possible to intercept microtasks/timers/etc. in a somewhat predictable way is actually why the stream controller's onListen runs in the zone of the stream's listen call. Everything below the listen call is considered implementation, and this way the implementation that creates stream events on a stream subscription, and schedules them, will run in the zone where the stream was listened to.
Stream objects themselves are passive, they have no computation behind them, and therefore they have no zone. The computation belongs to the stream subscription which is created when you listen to the stream. That's why the even creation code runs in that zone, so you do get to control how microtasks are used.
Zones are still a hot mess in many other ways, but I think that particular choice is reasonable.
It does mean that if you move a stream subscription into a different zone and add listeners there, the code providing events and the code consuming events will no longer be in the same zone, because setting a new listener with subscription.onData(handler) will remember the current zone and run the handler callback in that zone.
One big confuser here is that a Future contains the zone of its "computation" even when all you did was create a completer. The zone belongs to that zone after the completer was created, and completing it from a different zone can get weird (well, maybe, I can't say what happens without checking the code).
The other issue is that sometimes the future implementation needs to schedule a microtask. It has so far consistently used the zone that the future was created in.
I'd be fine changing that to the zone of the (well, a) listener when there is a listener. If there isn't, it's an error future with no current listener, and we don't generally share those, so the current zone is likely fine.

Hi is there any updates?

Hello, any update on this?

No new plans. The fake_async package has some usability issues that make it very easy to have deadlocks or just no progress, but that's not entirely because of this issue. It's inherently tricky to use correctly.
The constant null future is a problem, and there is a fix for it, but that fix actually breaks some tests that rely on the current behavior of running done code in the root zone. I gave up on landing that change once. I'm willing to look at it again, but don't expect a different outcome.

StreamSubscription.cancel currently returns the Future._nullFuture. I would expect that when calling cancel in a particular zone, this returns a future that is created in that zone and therefore uses the zone's scheduleMicrotask. Because this is not the case, the fake async zone cannot control this future and calling flushMicrotasks will not execute any registered callbacks. This behavior often causes tests with fake async not to complete, which is very difficult to debug.
I don't know how important the use of the Future._nullFuture is for the overall performance, but I would expect that public api's don't return this unless called from the root zone.

Can you show me an example of such bad code? I'm interested to learn more.

Can you show me an example of such bad code?

We have not tracked it down to a minimal reproduction case.

I think I remember one example using fake_async which depended on one particular future being in the root zone, and therefore running even when the fake-async zone was not being driven forward.
Code triggered by that future would then call elapse on the fake-async context.
If the future changed to be inside the fake-async zone, then nothing happened.


manually added sample because I screwed up rebase

[x] You've read the Contributor Guide and Code of Conduct.
[x] You've included unit tests for your change, where applicable.
[x] You've included inline docs for your change, where applicable.
[x] There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.

PR Title
Updated sample demonstrating how to connect session with Blazor and WebForms using a Blazor Web App
PR Description
Updated sample demonstrating how to connect session with Blazor and WebForms using a Blazor Web App
Addresses #382

@twsouthwick I redid the branch because I screwed up the rebase yesterday. It should be all set.


Top tabs redundantly animate scroll when changing screen width

node, npm, react-native, react and native-base version, expo version if used
node - v8.9.4
react-native - 0.53.3
native-base - 2.4.4
Expected behaviour
Same active top tab will already be loaded and present with no animation
Actual behaviour
Tab animation scrolls to previously active tab
Steps to reproduce
Change a screen with scrollable top tabs to have a width of 0 (for the purpose of hiding it and presenting another screen on top of it). Change the width back to what it was, and you'll see the tab animation scrolling to the tab you were previously on.
Is the bug present in both iOS and Android or in any one of them?
Both
Any other additional info which would help us debug the issue quicker.
I've done some debugging and it looks like _handleLayout in Tabs/index.js gets called when changing the width of the screen. Because our app hides the screen with the scrollable top tabs when presenting another screen on top of it, we set the width to 0. As a result, this block executes:
if (Math.round(width) !== Math.round(this.state.containerWidth)) {
  this.setState({ containerWidth: width });
  this.requestAnimationFrame(() => {
    this.goToPage(this.state.currentPage);
  });
}

This causes the animation to repeat when it shouldn't. Would it make sense to just do an additional check to see if the screen width is set to zero (indicating that the screen is being hidden) before executing the block in the if statement above? If so, I can open up a PR and do that.
I've attached a GIF below. You'll see that when entering the top tab with title "HEADLINE", clicking on an item, and then returning back to the top tab screen, the scrollable tab jumps to "HEADLINE" when it should just already be there.
Note - The GIF then quickly restarts and it looks like its going back to "TOP NEWS" so ignore that.

@shlokamin As per issue guidelines, you are missing out code snippet
Make sure the code snippet reproduces the issue
Putting it in snack would be more favourable

@SupriyaKalghatgi react-native-scrollable-tab-view  seems to be abandoned. I'll go ahead and open a PR anyways and see if I can find someone who can merge.
It also looks like the version native base is using is different than what is currently on their repo. Do you folks manually copy over the required components? I don't see react-native-scrollable-tab-view anywhere in your package.json

Also, it looks like someone has already made the fix here

@SupriyaKalghatgi  any update on this? Would be nice to use your official repo instead of my fork. Let me know if I can help out in any way! Like I said, it looks like if you update your react-native-scrollable-tab-view dependency this should be fixed!

@SupriyaKalghatgi can this issue be re-opened please? It looks like the fix is already implemented in the newer version of react-native-scrollable-tab-view, so it should be quick to update your dependencies and get it working again. Thanks!

Fixed #2572


Ability to pass an error (or multiple errors) to execution context

AFAIK, the only way to set an error in resolver is to throw an Exception, which will be caught in Executor. Sometimes I want to set an error, but to continue my work in resolver. Also I'd like to send multiple errors at once (without concating them in a single exception message). Is it possible? If not, may this feature be implemented?

You have $context for this. Make a separate class for your context and pass your errors/notices/warnings to it. Then use custom error handler to add your own errors to final result.
class MyContext {
    private $errors = [];
    public function addError(MyException $e)
    {
        $this->errors[] = $e;
        return $this;
    }
}

// Later in your resolver:
'resolve' => function($value, $args, MyContext $context) {
    $context->addError(new MyException('Whatever you want'));
    $context->addError(new MyException('Whatever you want 2'));
}

// Now querying graphql:
$myContext = new MyContext();
$result = GraphQL::executeQuery($schema, $queryString, $rootValue, $myContext);

$result->setErrorsHandler(function($e, $defaultFormatter) use ($myContext) {
    $formattedErrors = array_map($defaultFormatter, $errors);
    foreach ($myContext->getErrors() as $error) {
        $formattedErrors[] = [
            // format your error as you need
        ];
    }
    return $formattedErrors;
});


Upgrade to storybook v7 (non beta)

@nicolae536, @alexciesielski Have you tried following the migration guide?: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#angular-application-providers-and-modulewithproviders

It would probably be easier to restart from scratch and regenerate the storybook files using the new syntax and classes.

almost good now, compare the last storybook published to the one in progress, validate the chromatic build

Upgrade is done


Deprecated packages in 5.4.0

The following warnings are issued when I install a working project that uses<EMAIL_ADDRESS>:
npm WARN deprecated<EMAIL_ADDRESS>See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated<EMAIL_ADDRESS>Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated<EMAIL_ADDRESS>https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated<EMAIL_ADDRESS>See https://github.com/lydell/source-map-resolve#deprecated

Investigating the source of these dependencies shows this:
npm list<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>ts-template@ /Users/Invented/Path/To/Project
├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └─┬<EMAIL_ADDRESS>│     └─┬<EMAIL_ADDRESS>│       └─┬<EMAIL_ADDRESS>│         ├──<EMAIL_ADDRESS>│         ├──<EMAIL_ADDRESS>│         └──<EMAIL_ADDRESS>
I believe updating updating alias-hq dependency jscodeshift from 0.10.0 to 0.13.0 will solve the import of deprecated packages but I leave that your judgement and choice to update. Many thanks for this great package!

Thanks! Will take a look.

Thats great news, very much appreciated!


Need help : Hide or split buffer list to correct window, FLUTTER_DEV_LOG in my case

Hello, Mister.
I want to get your help with Cokeline configuration to change __FLUTTER_DEV_LOG__ buffer to hide it or split it the new window on the right. I am still confused about tweaking it. If you have any ideas, please tell me how to configure that. I want to hide __FLUTTER_DEV_LOG__ from the cokeline buffer or move it to above of the opened right window open __FLUTTER_DEV_LOG__. I want to do it because I feel disturbed about changing focused tab. Thanks for your help, and sorry for my English.
System info :
NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1692716794
Ubuntu 23.10 with Linux kernel 6.5.0-25-generic
GNOME Emulator and Alacritty used for open Neovim
This is my screenshot and Cokeline config
  {
    -- Cokeline, buffer list
    'willothy/nvim-cokeline',
    dependencies = {
      'nvim-lua/plenary.nvim',       -- Required for v0.4.0+
      'nvim-tree/nvim-web-devicons', -- If you want devicons
      'stevearc/resession.nvim'      -- Optional, for persistent history
    },
    event = 'BufEnter',
    config = function()
      -- This config using https://github.com/noib3/ configs
      local get_hex = require('cokeline.hlgroups').get_hl_attr
      local mappings = require('cokeline/mappings')
      local comments_fg = get_hex('Comment', 'fg')
      local errors_fg = get_hex('DiagnosticError', 'fg')
      local warnings_fg = get_hex('DiagnosticWarn', 'fg')
      local red = vim.g.terminal_color_1
      local green = vim.g.terminal_color_2
      local yellow = vim.g.terminal_color_3
      local text_bold = function(buffer)
        return
            ((buffer.is_focused and buffer.diagnostics.errors ~= 0)
              and true)
            or (buffer.is_focused and true)
            or (buffer.diagnostics.errors ~= 0 and false)
            or false
      end
      local components = {
        space = {
          text = ' ',
          truncation = { priority = 1 }
        },
        two_spaces = {
          text = '  ',
          truncation = { priority = 1 },
        },
        separator = {
          text = function(buffer)
            return buffer.index ~= 1 and ' ▏' or ''
          end,
          truncation = { priority = 1 }
        },
        devicon = {
          text = function(buffer)
            return
                (mappings.is_picking_focus() or mappings.is_picking_close())
                and buffer.pick_letter .. ' '
                or buffer.devicon.icon
          end,
          fg = function(buffer)
            return
                (mappings.is_picking_focus() and yellow)
                or (mappings.is_picking_close() and red)
                or buffer.devicon.color
          end,
          bold = function(_)
            return
                (mappings.is_picking_focus() or mappings.is_picking_close())
                and 'true'
                or false
          end,
          italic = function(_)
            return
                (mappings.is_picking_focus() or mappings.is_picking_close())
                and 'true'
                or false
          end,
          truncation = { priority = 1 }
        },
        index = {
          text = function(buffer)
            return buffer.index .. ':'
          end,
          truncation = { priority = 1 },
          bold = text_bold,
          underline = function(buffer)
            return
                buffer.is_focused and true
                or false
          end
        },
        unique_prefix = {
          text = function(buffer)
            return buffer.unique_prefix
          end,
          fg = comments_fg,
          italic = true,
          truncation = {
            priority = 3,
            direction = 'left',
          },
        },
        filename = {
          text = function(buffer)
            return buffer.filename
          end,
          truncation = {
            priority = 2,
            direction = 'left',
          },
          bold = text_bold,
          underline = function(buffer)
            return
                ((buffer.is_focused and buffer.diagnostics.errors ~= 0)
                  and true)
                or (buffer.is_focused and false)
                or (buffer.diagnostics.errors ~= 0 and true)
                or false
          end,
        },
        diagnostics = {
          text = function(buffer)
            return
                (buffer.diagnostics.errors ~= 0 and '  ' .. buffer.diagnostics.errors)
                or (buffer.diagnostics.warnings ~= 0 and '  ' .. buffer.diagnostics.warnings)
                or ''
          end,
          fg = function(buffer)
            return
                (buffer.diagnostics.errors ~= 0 and errors_fg)
                or (buffer.diagnostics.warnings ~= 0 and warnings_fg)
                or nil
          end,
          truncation = { priority = 1 },
        },
        close_or_unsaved = {
          text = function(buffer)
            return buffer.is_modified and '●' or ''
          end,
          fg = function(buffer)
            return buffer.is_modified and green or nil
          end,
          delete_buffer_on_left_click = true,
          truncation = { priority = 1 },
        },
        icon_indicator = {
          text = function(buffer)
            return
                buffer.is_focused and ' 󰋱'
                or ' '
          end,
          truncation = { priority = 1 }
        },
      }

      require('cokeline').setup({
        buffers = {
          filter_valid = function(buffer) return buffer.type ~= 'terminal' end,
          filter_visible = function(buffer) return buffer.type ~= 'terminal' end,
          new_buffers_position = 'next',
        },
        rendering = {
          max_buffer_width = 30,
        },
        default_hl = {
          fg = function(buffer)
            return
                buffer.is_focused
                and get_hex('ColorColumn', 'fg')
          end,
        },
        sidebar = {
          filetype = { 'neo-tree' },
          components = {
            {
              text = ' 󰙅 File Explorer ',
              fg = function()
                return get_hex('NeoTreeNormal', 'fg')
              end,
              bg = function()
                return get_hex('NeoTreeNormal', 'bg')
              end,
              bold = text_bold,
              delete_buffer_on_left_click = false,
              on_click = nil,
            },
          }
        },
        components = {
          components.separator,
          components.space,
          components.devicon,
          components.space,
          components.index,
          components.space,
          components.unique_prefix,
          components.filename,
          components.diagnostics,
          components.two_spaces,
          components.icon_indicator,
          components.space,
          components.close_or_unsaved,
          components.space,
          components.separator,
        },
      })
    end
  },

You can set nobuflisted or use the filter functions.
This is not an issue with Cokeline. Please make a discussion if you just need help with configuration, or use a simpler tabline plugin that doesn't require as much configuration.

I've thought about this and while it's not possible with cokeline, it could be cool to optionally have window-specific buffer lists.
You could probably implement your own using :h 'winbar' and :h vim.w window-local vars.


Fix solution ttt-ppp0101.py

Now generates correct model and calculates correct mass. (note that Trapezoid requires it's width input field to be calculated using angles because it's not given)

Thanks for pointing this out, there was a change in how Trapezoid works in that now the width is the overall width not the width of the "base" line which results in the problem.
Although your solution is correct, I try to avoid having the user do trig - how is this instead?
        with BuildLine() as bl:
            l1 = Line((0, 0), (18 / 2, 0))
            l2 = PolarLine(l1 @ 1, 8, 60, length_mode=LengthMode.VERTICAL)
            l3 = Line(l2 @ 1, (0, 8))
            mirror(about=Plane.YZ)
        make_face()

i.e. creating a trapezoid from lines - note that no trig is required here.

Maybe there should be an option in the Trapezoid object to select either the maximum or minimum length (this could be fairly complex as the left and right angles could be different)?

Ah, much better solution! (make_face throws me a RunTimeError: make_face doesn't apply to ['BuildSketch'], but I understand the idea)

Maybe there should be an option in the Trapezoid object to select either the maximum or minimum length (this could be fairly complex as the left and right angles could be different)?

Maybe, it would make working with Trapezoid easier (although maybe doing everything with lines is actually easier)

Thanks!


translation of introduction page

https://github.com/hyperledger/fabric-docs-i18n/blob/release-2.2/docs/locale/ja_JP/source/whatis.md

I'll work on this.

Closed this issue since the translation is merged.


Crash at vkQueuePresentKHR

Moving issue https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/8473 here since it happens without validation layer enabled.
Comments from @lsdh-fei in order:
Issue description
  -  macos 14.6.1 macbook pro 16-inch, 2019
  -  AMD Radeon Pro 5300M 4 GB
  -  sdk version: 1.3.283.0
  -  moltenvk version: 1.2.9
  -  SDL2 version: 2.30.6
  -  tool: vscode + clang

i wrote a demo, it runs well on m1 mac, and when i turned to intel x86, it crashed when call vkQueuePresentKHR, there has no validation info when it crash, stack as below:

libsystem_platform.dylib!_platform_memmove$VARIANT$Haswell (未知源:0)
libVkLayer_khronos_validation.dylib!DispatchQueuePresentKHR(VkQueue_T*, VkPresentInfoKHR const*) (未知源:0)
libVkLayer_khronos_validation.dylib!vulkan_layer_chassis::QueuePresentKHR(VkQueue_T*, VkPresentInfoKHR const*) (未知源:0)

it should run well , the cube demo runs well on the x86 machine, i dont know if there is some error when i use the new sdl2 version, when i use the sdl2 in the sdk, it couldent compile.

here is tasks.json:
{
"label": "cppdebug compile",
"type": "cppbuild",
"command": "/usr/bin/clang++",
"args": [
"-Wno-nullability-completeness",
"-std=c++17",
"-stdlib=libc++",
"-fcolor-diagnostics",
"-fansi-escape-codes",
"-I/usr/local/Cellar/sdl2/2.30.6/include",
"-L/usr/local/Cellar/sdl2/2.30.6/lib",
"-lSDL2",
"-I${workspaceFolder}/include",
"-I${VULKAN_SDK}/include",
"-L${VULKAN_SDK}/lib",
"-Wl,-rpath,${VULKAN_SDK}/lib",
"-lvulkan.1",
"-g",
"${workspaceFolder}/.cpp",
"${workspaceFolder}/include/imgui/.cpp",
"${workspaceFolder}/source/*.cpp",
"-o",
"${workspaceFolder}/output/vulkan"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "vulkan with vscode c++ plugin"
}

Second comment
after i remoded validation layer，It crashed in MoltenVK, stack as below:

libMoltenVK.dylib!MVKQueuePresentSurfaceSubmission::MVKQueuePresentSurfaceSubmission(MVKQueue*, VkPresentInfoKHR const*) (未知源:0)
libMoltenVK.dylib!MVKQueue::submit(VkPresentInfoKHR const*) (未知源:0)
libMoltenVK.dylib!vkQueuePresentKHR (未知源:0)

i will try the latest MoltenVK later

Third comment
the code works well with sdk <IP_ADDRESS> on m1 mac,but crashed with sdk 1.3.283.0 on intel cpu mac. the crash stack is shown in validation, so i post it here, but it seems a bug in MoltenVK.

Fourth comment
i tested with latest MoltenVK, it crashed with the same stack in MVKQueuePresentSurfaceSubmission.
latest MoltenVK log:

[mvk-info] GPU device:
model: AMD Radeon Pro 5300M
type: Discrete
vendorID: 0x1002
deviceID: 0x7340
pipelineCacheUUID: 18F2B84E-0E06-0200-0000-000100000000
GPU memory available: 4080 MB
GPU memory used: 0 MB
Metal Shading Language 3.1
supports the following GPU Features:
GPU Family Metal 3
GPU Family Mac 2
Read-Write Texture Tier 2
[mvk-info] GPU device:
model: Intel(R) UHD Graphics 630
type: Integrated
vendorID: 0x8086
deviceID: 0x3e9b
pipelineCacheUUID: 18F2B84E-0E06-0200-0000-000100000000
GPU memory available: 1536 MB
GPU memory used: 8 MB
Metal Shading Language 3.1
supports the following GPU Features:
GPU Family Metal 3
GPU Family Mac 2
Read-Write Texture Tier 1
[mvk-info] Created VkInstance for Vulkan version 1.2.290, as requested by app, with the following 3 Vulkan extensions enabled:
VK_KHR_surface v25
VK_EXT_debug_utils v2
VK_EXT_metal_surface v1

[mvk-info] Vulkan semaphores using MTLEvent.
[mvk-info] Descriptor sets binding resources using Metal3 argument buffers.
[mvk-info] Created VkDevice to run on GPU AMD Radeon Pro 5300M with the following 2 Vulkan extensions enabled:
VK_KHR_portability_subset v1
VK_KHR_swapchain v70
[mvk-info] Created 3 swapchain images with size (1024, 768) and contents scale 1.0 in layer CAMetalLayer: SDL_cocoametalview (0x7fc500746810) on screen Built-in Retina Display.

@lsdh-fei
You mention that the Cube demo runs fine on your x86 machine.
Do you have any way for us to replicate this? Are we able to access your demo app? Or can you modify the Cube demo to create the same crash?
If not, are you able to build MoltenVK in Debug mode, and run your app from Xcode, so that we can get a more detailed perspective about where in MVKQueuePresentSurfaceSubmission::MVKQueuePresentSurfaceSubmission() the app is crashing?

@billhollings i build the latest MoltenVK in Debug mode, and rerun the code, here is the stack:
libMoltenVK.dylib!MVKQueuePresentSurfaceSubmission::MVKQueuePresentSurfaceSubmission(MVKQueue*, VkPresentInfoKHR const*) (/Users/fei.han/Projects/c++/MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm:829)
libMoltenVK.dylib!MVKQueuePresentSurfaceSubmission::MVKQueuePresentSurfaceSubmission(MVKQueue*, VkPresentInfoKHR const*) (/Users/fei.han/Projects/c++/MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm:766)
libMoltenVK.dylib!MVKQueue::submit(VkPresentInfoKHR const*) (/Users/fei.han/Projects/c++/MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm:149)
libMoltenVK.dylib!vkQueuePresentKHR (/Users/fei.han/Projects/c++/MoltenVK/MoltenVK/MoltenVK/Vulkan/vulkan.mm:3209)
it crashed at here:

i think pSCRslts should be nullptr, maybe is doesnot init propely.

i add present.pResults = nullptr when create VkPresentInfoKHR and it didnot crash any more, it is a c++ code error, its really annoying

Thanks for including more info about the source of the crash.

i add present.pResults = nullptr when create VkPresentInfoKHR and it didnot crash any more

The Vulkan spec requires that present.pResults have a valid value:

If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values

From that error above, the value of of present.pResults seems to have been set to 0x2d, which is not a legal pointer address. So setting it to NULL fixes that. Otherwise, if you want the results back, you can set it to a valid pointer that has enough space for the returned array.

it is a c++ code error, its really annoying

Why are you thinking this has something to do with C++? Do you mean that you expected it to be initialized to zeros? If so, to be safe, you can create structures as follows:
VkPresentInfoKHR presInfo = {};

Why are you thinking this has something to do with C++? Do you mean that you expected it to be initialized to zeros?

OP may be used to another language like Rust, Go, or Swift, where validly initializing all variables is either a requirement or is done by the compiler automatically.

@billhollings i used clang this time, new compiler didnot init it to zero, i will keep in mind to use {} to initialize all structs, thx

Glad to hear you got it sorted out. Closing this now.


Factory methods for LibGDX arrays of primitives

Add factory methods for the following LibGDX arrays of primitives:

[x] BooleanArray
[x] ByteArray
[x] CharArray
[x] FloatArray
[x] IntArray
[x] LongArray
[x] ShortArray

Originally posted by @Divelix in #333

Thanks for the contribution, @vrudas.


In Terminal, while typing first command of terminal, the terminal info and directory path get cleared

Issue Type: Bug
Open terminal. You will see the terminal information and path of current directory like,
Microsoft Windows [Version 10.0.17763.379]
(c) 2018 Microsoft Corporation. All rights reserved.
e:\Dev-Visual-Code\web>
while typing first command of terminal, above all the information get cleared and user inputs only comman

d
VS Code version: Code 1.32.3 (a3db5be9b5c6ba46bb7555ec5d60178ecc2eaae4, 2019-03-14T23:43:35.476Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz (4 x 3293)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledsurface_synchronization: enabled_onvideo_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
15.90GB (9.86GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

vetur
oct
0.17.0

This has been a long time issue due to terminal rendering and many more issues. You're not alone. Hopefully ConPTY will fix it (available in Windows 10 19H1, and then VSCode)

/duplicate of #57803


Tracing and logging.

What if we want to trace in production for some reason? Currently this would mean compiling with the development flag for release...
What if we want to add a temporary trace as a sanity check that we intend to immediately remove once we have discovered the problem? This currently may involve a recompilation of Plutarch if we are not already in development mode.
I suggest we have a trace that always traces. We could have trace and log for these two styles. I think log would make sense as the one controlled by the development flag and trace should work like Debug.Trace.

Why would you ever want to trace in production? Anyway, you can make your own ptrace.


Realm() init expensive on CPU

Goals

I want to launch an instance of Realm without creating processing overhead in Realms initialisation procedure.
Expected Results

I expect the Realm() instance to have a minimal initialisation time and CPU cost.
Actual Results

I see that Realm called the shouldCompactOnLaunch() function of the config, every time I call Realm(). I also have iOS energy crash logs because of Realm() initialising. Although, this, may be 2 separate initialisation performance overhead bugs.
Steps to Reproduce

Init a Realm() instance, observe that the shouldCompactOnLaunch function is called. I use iOS DispatchQueue's. One dispatchqueue is created for my bluetooth data to be received, then it calls the function from the code snippet below.
Code Sample

private var _realm: Realm {
    return try! Realm()
}

internal func insertPicoStatData(_ picoStatData: PicoStatData) {

    self.picoStatDataWriteQueue.async {
        autoreleasepool {
            let realm = self._realm
            defer { realm.invalidate() }
            try! realm.write {
                // DVG CHECK THE DIFF!!!
                //realm.add(picoStatData, update: true)
                realm.create(PicoStatData.self, value: picoStatData, update: false)
            }
        }

        // Pass only if anybody is watching
        if (!self._rx_picoStatDataSubject.isDisposed && self._rx_picoStatDataSubject.hasObservers
            && picoStatData.statDataType == StatDataType.DataType.primary) {
            self._rx_picoStatDataSubject.onNext(picoStatData)
        }

        let foreground = UserDefaults.standard.bool(forKey: "app_in_foreground")
        if foreground   {
            // Pass only if anybody is watching
            if (!self._rx_picoStatDataForegroundSubject.isDisposed && self._rx_picoStatDataForegroundSubject.hasObservers
                && picoStatData.statDataType == StatDataType.DataType.primary) {
                self._rx_picoStatDataForegroundSubject.onNext(picoStatData)
            }
        }

    }
}

Time Profiler Snippet

Version of Realm and Tooling

Realm framework version: ?
Realm (3.9.0)
RealmSwift (3.9.0)
Realm Object Server version: ?
Not in my Podfile or project. (unless Realm imports it itself?)
Xcode version: ?
Xcode 10.1
Build version 10B61
iOS/OSX version: ?
iOS 12.2  but I see this issue on many iOS builds
Dependency manager + version: ?
CocaoPods 1.5.3

Hi @anansi
A compaction may be expensive if the Realm file is quite large.
Also note that 'compaction will be skipped even if the configuration block’s conditions were met. That’s because compaction cannot be safely performed while a Realm is being accessed.' So ensure your Realm if not being accessed by your Bluetooth functionality while the compaction is performing.
See more here: https://realm.io/docs/swift/latest/#compacting-realms
Thanks,
Lee


Text is not displayed on Android physical device after 0.73.0

Description
Since version 0.73.0 text in the Text component is not displayed on a physical connected Android device.
It works well both on Android Studio Emulator (tested with API 33 and API 34) and on physical connected device with react native below 0.73.0
Tested on two different physical devices
If I add background color to it, Text component would be visible, but content is not. Also, text is visible in TextInput component. Text in error logs is not visible too, but visible in loading log (at the very top of the application)
Steps to reproduce

Install the application on physical Android device
Notice that any text in the Text component is not displayed

React Native Version
0.73.1
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
  OS: Linux 6.6 Arch Linux
  CPU: (12) x64 AMD Ryzen 5 5600H with Radeon Graphics
  Memory: 3.57 GB / 14.98 GB
  Shell:
    version: "5.9"
    path: /usr/bin/zsh
Binaries:
  Node:
    version: 18.18.2
    path: ~/.local/nvm/versions/node/v18.18.2/bin/node
  Yarn: Not Found
  npm:
    version: 9.8.1
    path: ~/.local/nvm/versions/node/v18.18.2/bin/npm
  Watchman:
    version: 20231028.222255.0
    path: /usr/local/bin/watchman
SDKs:
  Android SDK: Not Found
IDEs:
  Android Studio: Not Found
Languages:
  Java:
    version: 17.0.9
    path: /home/crawraps/.local/sdkman/candidates/java/current/bin/javac
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.1
    wanted: 0.73.1
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: Not found
  newArchEnabled: false

### Stacktrace or Logs

```text
-

Reproducer
https://github.com/crawraps/reproducer
Screenshots and Videos

initial react native reproducer template

Install the application on physical Android device

Which device are you using?

Install the application on physical Android device

Which device are you using?

OnePlus 9RT with custom rom riceDroid-13.0
Also tested on Pixel 7 and get same behaviour

That's a screenshot from a Pixel 3 (physical device):

I cannot reproduce what you're reporting @crawraps

Tested on Pixel 5a (Android 14) physical device

Closing as cannot reproduce @crawraps
Please provide further evidence and we can re-open

@cortinico I'm also facing the same issue in my physical android device it is OnePlus 9r with NameLess Custom Rom.
I think to reproduce this issue someone will need a oneplus device with custom rom

@cortinico currently I'm trying to switch from commits from each release to figure out in which release this issue first appeared
Is there any other way to figure out the issue?

@cortinico I tried switching from commit to commit on 0.73 I was able to generate a build from yarn android but in 72.8 this command is not running.
it says
No Metro config found in /Users/Desktop/react-native.

I'm trying to switch from commits from each release to figure out in which release this issue first appeared

You should use the nightlies version we have listed here:
https://www.npmjs.com/package/react-native?activeTab=versions
to bisect this.
Specifically you can create a new app from a nightly version with:
npx react-native@latest init RNNightly --version 0.74.0-nightly-20231031-572dd76ba --skip-install

then do cd RNNightly && yarn && yarn android and verify when the issue started happening.

as I am able to figure out this is working in 0.72.9 but not it 73.0.

@cortinico this issue first appeared in 0.73.0-nightly-20230521-6d24ee13a working fine in 0.73.0-nightly-20230519-de1e9f5d1

this the commit which is mentioned in the nightly version
https://github.com/facebook/react-native/commit/6d24ee13a47a58ff1b19c5a51f39f52c9a4a8a28
I tried reverting these changes but still text is not visible.

I tried reverting these changes but still text is not visible.

How have you reverted those changes? The code is pre-compiled on Android, so editing the files inside node_modules will have no effect

I tried reverting these changes but still text is not visible.

How have you reverted those changes? The code is pre-compiled on Android, so editing the files inside node_modules will have no effect

How can I revert these changes other then that?

hey @cortinico can you please help to check if this is causing the issue

You'll have to use a build from source:
https://reactnative.dev/contributing/how-to-build-from-source

@cortinico this is now working in latest commit I think https://github.com/facebook/react-native/pull/42258 this fixed this issue since all the changes are in the same file as in the commit which first started this issue

@cortinico i'm using react native 0.73 I need this part only how can I get this changing in node_modules doesn't work any other way?

@cortinico i'm using react native 0.73 I need this part only how can I get this changing in node_modules doesn't work any other way?

Can you try to follow the insutrctions I linked (reactnative.dev/contributing/how-to-build-from-source), apply the changes in https://github.com/facebook/react-native/pull/42258 inside your node_modules folder, and verify if it solves?

Is the fix included inside RN 0.73.6 or only in the 0.74-RCs?

Hi @cortinico,
I too am facing the same issue. I'm currently upgrading my Project's React Native from 72.7 -> 73.8. The text is being rendered on Android Simulator but on My Physical Device [OnePlus 6T running SuperiorOS Custom Rom Android 13] text is not rendered. I just tried a new project using 0.74 and it's working. The issue is resolved somewhere between 73.8 to 74.0.


FFI: Look for JavaScript files the match module names

Currently the JavaScript files for FFI have to follow a folder per .. ex: Data.URI would be priv/elixir_script/data/uri.js. This proposal is to ALSO look for files that match module name. In the example, ElixirScript would also try to find priv/elixir_script/data.uri.js if it could not find the previous path.

This is a bit more complicated because to involves also updating the import path. Meaning this would have to take place at compile time probably


YouTube Data API Build Function doesn´t work

Environment details

OS type and version: Windows
Python version: 3.6
pip version: 19.3.1
google-api-python-client version: When running the this command _pip show google-api-python-client_ it shows 1.7.12 but in my code I do !pip install google-api-python-client --upgrade and the version becomes 1.8.2

Steps to reproduce
I will try to keep this as short as possible, so I will focus right in the beginning of the code where the error message occurs:

On Colab, install the google api python client, put your previously obtained api credentials and connection information and create the youtube object to start fetching the comments using below code (code section);

When you do this for the first time, everything goes well. But if Colab disconnects or if you try to execute the exactly same code in next day, it gives the following error:

UnknownApiNameOrVersion                   Traceback (most recent call last)
<ipython-input-21-064a9ae417b9> in <module>()
     13
     14
---> 15 youtube = googleapiclient.discovery.build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
     16 youtube
     17

1 frames
/usr/local/lib/python3.6/dist-packages/googleapiclient/discovery.py in build(serviceName, version, http, discoveryServiceUrl, developerKey, model, requestBuilder, credentials, cache_discovery, cache, client_options)
    241                 raise e
    242
--> 243     raise UnknownApiNameOrVersion("name: %s  version: %s" % (serviceName, version))
    244
    245

UnknownApiNameOrVersion: name: youtube  version: V3

Code example
!pip install google-api-python-client --upgrade

import os
import googleapiclient.discovery

DEVELOPER_KEY = "you_api_key"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

youtube = googleapiclient.discovery.build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
youtube

Stack trace
I don´t know waht Stack trace is, even when I looked for in Google. I´m very sorry for this.
Regards.

@leonardoparis thanks for submitting this issue! We're tracking a very similar issue #882 - the problem being with the underlying discovery service which the Python library depends on. Check out the conversation in #882 for a temporary workaround until we run this down. Thanks again.

Closing this issue now. Let's continue the discussion in #882.


Interchain: Expose isExecutable View

Description
A clear and concise description of the features you're adding in this pull request.
Additional context
Add any other context about the problem you're solving.
Metadata

Fixes #[Link to Issue]

Summary by CodeRabbit

New Features

Introduced comprehensive interchain communication capabilities through various contracts and interfaces.
Added support for cross-domain messaging across different Ethereum layers.
Implemented libraries for managing threshold signatures and type conversions.

Documentation

Added remappings for easier management of package paths and dependencies.

Tests

Comprehensive test suite covering unit tests for interchain database interactions, end-to-end tests for module communication, and library functionality tests.

Chores

Integrated forge-std and openzeppelin-contracts as submodules for enhanced functionality and security.

@coderabbitai review


Can't compile VideoProgressBar

I'm getting the following error at this position:
The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions

Any ideas on what could be causing this?

Any chance you are still working with TVVLCKit and swift ?     When the player loads it creates a memory leak of 48 Bytes,  I have been looking at other peoples example set and I found it in mine.  This example code has the leak, looking to see if you found and fixed it in another project ?


Blog App: Add authorization rules

In this PR, we ( @Timbar09 and @eudondian ) added user authorization rules.
Changes

Installed the CanCanCan gem.
Added a role column to the users table.
Implemented Post deletion by an authorized user and admin.
Implemented Comment deletion by an authorized user and admin.

Thank you for the feedback, @OyePriscilla, and @Abenezer-Tilahun, and for approving our project.


Make Spacelift stack repository configurable

what

Make Spacelift stack repository configurable

why

Allow configuring the stack repository from YAML stack config files

/test all


Move max block size into a constant

Looks good modulo comments.  As I mentioned, I think eventually we'll want this to be easily settable from wherever kbfsfuse is launched, so at that point there may be less need for an exported const (since the launcher can just determine their own block size).  But for now this looks useful, thanks!


SAK-31584 Allow auto wiring of Quartz Jobs.

This means you can just register a class with the job scheduler and then quartz will create an instance when it needs to and have spring autowire any dependencies.

Cool stuff @buckett!


docs(cn): fix loader import function

describe your changes...

[ ] Read and sign the CLA. PRs that haven't signed it won't be accepted.
[ ] Make sure your PR complies with the writer's guide.
[ ] Review the diff carefully as sometimes this can reveal issues.
[ ] Do not abandon your Pull Request: Stale Pull Requests.
Remove these instructions from your PR as they are for your eyes only.

https://github.com/docschina/docschina-issue-discussions-open/issues/42
https://github.com/docschina/docschina-issue-discussions-open/issues/40

Thanks 🌹


Issue 4390: Changed webaddons.py as per suggestion

As per @mhils suggestion in #4390, added webbrowser.open_new(url) so that running mitmweb opens in default browser.

I appreciate your enthusiasm, but this is not very helpful. Did you read the docstring at the beginning of the function? There is a reason why we don't call webbrowser.open directly.
That being said, this change is particularly hard to test for. If you submit a PR for this, I expect you to be on a system which exhibits the problem mentioned in #4390, then add xdg-open, and confirm that it solves the problem.

I did read the docstring but I assumed that you wanted to try and go ahead with adding it. I misunderstood the situation. I shall make the desirable changes with the testing and documentation you mentioned.


Avoid empty links on anchors with uiSref

uiSref directives doesn't bind href on null or empty string '' state.
Fixes #26

This will have the side effect of uisref links not having cursor: pointer


Fix generating vsproj with SCons 4.6.0+

Visual Studio project generation broke after the signature of find_batch_file() was changed in SCons 4.6.0+ (in https://github.com/SCons/scons/commit/7082c53ff6). Thanks to mwichmann for pointing that out in https://github.com/godotengine/godot/issues/85262#issuecomment-1826367724.
I can confirm that with these changes, vsproj=yes once again produces a VS solution as before, while I could reproduce the build failing without these changes.
I've also renamed the variable version to msvc_version for clarity. Otherwise, this just avoids passing env to find_batch_file() in SCons 4.6.0+, where that is no longer accepted. Instead, we need to find the product directory from env ourselves, as find_batch_file() previously did internally via find_vc_pdir(), which we now call ourselves.
find_vc_pdir() can in theory throw exceptions if the MSVC version is unsupported (UnsupportedVersion exception) or something unexpected occurs, but catching these wouldn't make much sense IMO, as we can't do much besides fail. Just having the build fail with these exceptions as in other cases here should be explicit enough.
We should see if we can remove some of the reliance on SCons internals here in the future. Some other stuff could likely be improved as well, but I tried to keep this minimal to get builds working again ASAP, and considering the time in the 4.2 dev cycle.
Fixes https://github.com/godotengine/godot/issues/85262.

Thanks!

Cherry-picked for 4.1.4.

Cherry-picked for 3.6.

Cherry-picked for 3.5.4.


[biomed nl] Fulfill logic for single entity and out prop

Simple fulfill logic to add a ANSWER_MESSAGE tile and ENTITY_OVERVIEW tile for single entity and single prop

thanks for the review!


Added Foxy documentation

Added Foxy documentation
Signed-off-by: ahcorde<EMAIL_ADDRESS>

closing this PR in favour of this other https://github.com/ros2/docs.ros2.org/pull/27


Web-Export not possible on macOS and Godot 4 RC2

Godot version
4.0-rc2 mono
System information
macOS Ventura (13.2.1) with M1 Max
Issue description
When I try to export my project for web it can't find the web export templates.

I manually downloaded the export files and double checked the export_template folder but the web_debug.zip as well as the web_release.zip are missing in both cases.

According to the approved answer in this post Godot 4 should have a web export.
Any idea why the web export templates are missing?
Steps to reproduce

Create a project
Try to export it for web

Minimal reproduction project
Test.zip

There are no HTML5 export templates for C# yet, because upstream support is missing. (It will only be restored in 4.1 at the earliest.)


Dissociate PyTorch / ONNX Runtime benchmark scripts

What does this PR do?

Dissociate the metrics / time evaluation between PyTorch and ONNX Runtime.
Add a method to perform only perf metrics evaluation, or only time evaluation if we are not interested in both.

Motivation: The current design in main is to run both evals in the same method, and it results e.g. for autoquantize in repeated evals with PyTorch when we try different quantization hyperparameters (only the eval for ONNX Runtime changes).
Below just design questions I am wondering about.
Is it worth "advertising" in the doc these scripts in a tutorial section? Having this included in Optimum?
At the end of the day, I think the goal is not only to have a seamless tool to compare vanilla PyTorch to a target backend, but to compare several backends / optimization strategies as well, for example INC, OpenVino, ONNX Runtime.
This is something that does not exist in transformers, there are only the run_etc.py example scripts. So I wonder if actually (except for autoquantize where it's the motivation) adding an additional layer of abstraction taking care of data loading, pre-processing, quantization, possible optimizations, inference & evaluation with pipelines is desirable or not ; and most of all if it's desirable to have it in the Optimum repository. It feels like a very different direction compared to the examples in transformers.
I feel the risk of this approach is to abstract too much the logic at the risk of loosing features provided by the backend. Still, for what I am doing it is pretty useful to have these scripts at hand, compare models / evals changing only a config file.
As we promised to improve the documentation for end of July I spent a little time on this to set clear the design if it is to be extended in the future to other backends, so let me know @mfuntowicz  & team if you think having these Run... classes as an additional abstraction is useful or not.
Doc to come in a next PR if approved.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Fetch using load() in browser get response body but no response body returned during ssr

Describe the bug
Hi everyone, i'm developing a sveltekit + laravel 9 app and i came across with a problem while testing ssr in my views.
When using the load function in my index.svelte the fetch() response of my laravel api is only readable from the browser but no from the server while rendering.
Entering index page triggers the ssr fisrt dispatch which is correct, because my laravel logs show so:
(Data obtained from telescope, a laravel api debugger)
SSR api response headers:
{
  "host": "localhost:8000",
  "connection": "keep-alive",
  "accept": "application/json",
  "accept-encoding": "gzip, deflate, br",
  "accept-language": "en,es-419;q=0.9,es;q=0.8",
  "cache-control": "max-age=0",
  "dnt": "1",
  "referer": "http://<IP_ADDRESS>:3000/",
  "sec-ch-ua": "".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"",
  "sec-ch-ua-mobile": "?0",
  "sec-ch-ua-platform": ""Linux"",
  "sec-fetch-dest": "document",
  "sec-fetch-mode": "cors",
  "sec-fetch-site": "same-origin",
  "sec-fetch-user": "?1",
  "upgrade-insecure-requests": "1",
  "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36"
}

SSR api resonse:
{
  "Laravel": "9.18.0"
}

While my client response looks like this:
Browser response headers:
{
  "host": "localhost:8000",
  "connection": "keep-alive",
  "sec-ch-ua": "".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"",
  "dnt": "1",
  "sec-ch-ua-mobile": "?0",
  "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36",
  "sec-ch-ua-platform": ""Linux"",
  "accept": "*/*",
  "origin": "http://<IP_ADDRESS>:3000",
  "sec-fetch-site": "cross-site",
  "sec-fetch-mode": "cors",
  "sec-fetch-dest": "empty",
  "referer": "http://<IP_ADDRESS>:3000/",
  "accept-encoding": "gzip, deflate, br",
  "accept-language": "en,es-419;q=0.9,es;q=0.8"
}

Browser response data:

Everything looks fine here, i've spent many hours looking for a solution but have nothing yet, my thougths are that fetch while ssr is unable to get the data that laravel is sending.
Maybe a header is missconfigured on the server side? Or fetch is not configured to get the data? Maybe fetch in ssr is not configured to take data from a php source?
Thanks to everyone in advance!
Reproduction
Fresh install of a laravel project.
php artisan serve to run server.
Only app URL can be accessed with http://localhost:8000
index.svelte
<script lang="ts" context="module">
  import type { Load } from "@sveltejs/kit";
  export const load: Load = async function ({ fetch, url }) {
        let res = await fetch("http://localhost:8000", {
        	headers: {
			accept: "application/json"
		}
        });
	try {
		console.log(await res.json()); <-- ssr fails here, but client doesn't
	} catch (error) {
		console.log(error);
	}
	return {
		props: {
			res
		}
	};
  }
</script>

Logs
Server side log:

TypeError: terminated
    at Fetch.onAborted (file:///home/guille/code/kit/node_modules/@sveltejs/kit/dist/node/polyfills.js:11987:50)
    at Fetch.emit (node:events:526:28)
    at Fetch.terminate (file:///home/guille/code/kit/node_modules/@sveltejs/kit/dist/node/polyfills.js:10246:11)
    at Object.onError (file:///home/guille/code/kit/node_modules/@sveltejs/kit/dist/node/polyfills.js:12121:35)
    at Request$2.onError (file:///home/guille/code/kit/node_modules/@sveltejs/kit/dist/node/polyfills.js:3152:27)
    at errorRequest (file:///home/guille/code/kit/node_modules/@sveltejs/kit/dist/node/polyfills.js:5735:13)
    at Socket.onSocketClose (file:///home/guille/code/kit/node_modules/@sveltejs/kit/dist/node/polyfills.js:5009:5)
    at Socket.emit (node:events:526:28)
    at TCP.<anonymous> (node:net:687:12) {
  [cause]: SocketError$3: closed
      at Socket.onSocketClose (file:///home/guille/code/kit/node_modules/@sveltejs/kit/dist/node/polyfills.js:4991:31)
      at Socket.emit (node:events:526:28)
      at TCP.<anonymous> (node:net:687:12) {
    code: 'UND_ERR_SOCKET',
    socket: {
      localAddress: undefined,
      localPort: undefined,
      remoteAddress: undefined,
      remotePort: undefined,
      remoteFamily: undefined,
      timeout: undefined,
      bytesWritten: 749,
      bytesRead: 2096
    }
  }
}

Server response (from laravel):

Response {
  [Symbol(realm)]: null,
  [Symbol(state)]: {
    aborted: false,
    rangeRequested: false,
    timingAllowPassed: true,
    requestIncludesCredentials: true,
    type: 'default',
    status: 200,
    timingInfo: {
      startTime:<PHONE_NUMBER>64,
      redirectStartTime: 0,
      redirectEndTime: 0,
      postRedirectStartTime:<PHONE_NUMBER>64,
      finalServiceWorkerStartTime: 0,
      finalNetworkResponseStartTime: 0,
      finalNetworkRequestStartTime: 0,
      endTime: 0,
      encodedBodySize: 20,
      decodedBodySize: 20,
      finalConnectionTimingInfo: null
    },
    cacheState: '',
    statusText: 'OK',
    headersList: HeadersList {
      [Symbol(headers map)]: [Map],
      [Symbol(headers map sorted)]: null
    },
    urlList: [ [URL] ],
    body: { stream: undefined }
  },
  [Symbol(headers)]: HeadersList {
    [Symbol(headers map)]: Map(9) {
      'host' => 'localhost:8000',
      'date' => 'Tue, 19 Jul 2022 03:04:06 GMT, Tue, 19 Jul 2022 03:04:06 GMT',
      'connection' => 'close',
      'x-powered-by' => 'PHP/8.1.8',
      'cache-control' => 'no-cache, private',
      'content-type' => 'application/json',
      'access-control-allow-origin' => 'http://<IP_ADDRESS>:3000',
      'access-control-allow-credentials' => 'true',
      'set-cookie' => 'XSRF-TOKEN=eyJpdiI6InZSM21LQ1pRZnR1b3ZySFEvaTZSeGc9PSIsInZhbHVlIjoiNURML3crVFpXb3BteFRJWlBsa0tRaWs0RFR6bVFMS0ZWNmlHZGVNMnJZc2tJYzN2eEtISkJrQmJxd3ZoSm80eUpsTHlLSjVBSllGVkl0TFBBdiswNjhKSlR4a2dSTnp2NlhBWS9HQXdlOXRrcHZ5bFJicEswME4xaUJVMFdHUzMiLCJtYWMiOiJhOTdiZWRjNzJjMTMwM2FjZDcxODI4ZWE4M2JiMDU1ZjhhMzBjYTcxNzFmMTIzZDk2ZWQxMTBiZWVjNDZhMjU5IiwidGFnIjoiIn0%3D; expires=Tue, 19 Jul 2022 05:04:06 GMT; Max-Age=7200; path=/; domain=<IP_ADDRESS>; samesite=lax, mis_horas_web_session=eyJpdiI6ImNqVlJ3bTFZRXU1Qmd4RUtXUitURVE9PSIsInZhbHVlIjoiV2Fld09mRURaUmVYclZwbWVCQllZekFKMnNYL3g1VnVaRnVJbW9IZTY5bExGR2lkVXRpOEV3RC9BOVpORmI0SE9vUEVaWnN5NitNbkYvY3diZlYwQXg4NVd6WFNQK21iZnRvenkxNHl3bjQxTFBraEl2U2UzVzNCc0R3TnlwM2ciLCJtYWMiOiJmNmUzYTUxODcwNjdlN2ZkNTIzZWVjYzEyOTQ5MmQ3NDRiYzNlYzY4N2RlYjI0NjY2MzJmOGRlMTljNzczNjNhIiwidGFnIjoiIn0%3D; expires=Tue, 19 Jul 2022 05:04:06 GMT; Max-Age=7200; path=/; domain=<IP_ADDRESS>; httponly; samesite=lax, 5QAoAk6FvSUDWU6YOJZbpTX4pwZDIGNTfCca8LhF=eyJpdiI6IkMwci9OTzk1dlFodStLL0NUTHZiSFE9PSIsInZhbHVlIjoia2t6NGRMaWltSHpDTWRxbjc3Wm5FR1hOeWxoVW5Ta29kWWd0UlN6VEs4bG5FZjVEYU9SRDdLOS9lSkpubVdwNElTWm5XeXdUUFBNQnVERXZiZlBjT1MyZUUzSjQwd3FIeVJTTThFN2hsK2FNWVVEaC93d3g2YkFUVDJZVUUvOWtTeHJkV29WeklUZ1g2VHVwSjY1R29EMWFUakJGWkRVc2ErTWdZWVlSNGZXWC82dWlwOHBRSDdKNXFEN3IzYW5IRndZRDh6MnJXRllscGcwV01xS0VMRlpGUHZHVGxZQ3lQaWtrNUN3dURFbGkyMFFNVFE2ZjJUT2FOUlJmbHhESVhMYitkYUowYjhnNTNFc3FGUVA2QlpySDhReURpZU96Sm9Db0hmOUs4NUFqZWpoM1pqL0FPL2V4YWQyZGpoNDR6VXkyVjFZOUhzb09uL25tdk85bEVXZms2QkFzOUxsT2RtT0FTQ2NOOXNZPSIsIm1hYyI6IjJkMjliOWM4Y2QxYWVlZWQ0ZGQ0MjZjMGQwNDM4NzMyOTEyMmU2ZmRiYjQxYzczZjNhZDY4OTI1YjFlNzgxNWMiLCJ0YWciOiIifQ%3D%3D; expires=Tue, 19 Jul 2022 05:04:06 GMT; Max-Age=7200; path=/; domain=<IP_ADDRESS>; httponly; samesite=lax'
    },
    [Symbol(headers map sorted)]: null
  }
}

System Info
System:
    OS: Linux 5.15 Ubuntu 22.04 LTS 22.04 LTS (Jammy Jellyfish)
    CPU: (4) x64 AMD Ryzen 3 3200U with Radeon Vega Mobile Gfx
    Memory: 2.02 GB / 5.75 GB
    Container: Yes
    Shell: 3.5.0 - /usr/bin/fish
  Binaries:
    Node: 16.14.2 - /usr/local/bin/node
    Yarn: 1.22.18 - ~/.yarn/bin/yarn
    npm: 8.9.0 - /usr/local/bin/npm
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.62
    @sveltejs/kit: next => 1.0.0-next.379
    svelte: ^3.44.0 => 3.49.0
    vite: ^3.0.0 => 3.0.2

Severity
serious, but I can work around it
Additional Information
Issue already reported but suggested solution didn't work for me https://github.com/sveltejs/kit/issues/5327

Thanks for the sleuthing @malinowskip. I'm going to close this as the bug is in Undici, and there's basically nothing that can be done about it on the SvelteKit end except wait for https://github.com/nodejs/undici/pull/1540 to be merged and released

Thanks to both of you @Rich-Harris and @malinowskip , in that case i will wait for the node.js fix to be realeased. For the moment y won't explicity use ssr.
Just to comment, the Offerzen doc was amazing @Rich-Harris !! keep going that way.

I ran into this exact error as well. I came up with a solution that fixed this issue.
Instead of starting the Laravel's local development server using the Artisan command serve and using the url http://localhost:8000, run the Laravel application on a server such as XAMPP or NGINX, configure a local domain (e.g. example.test) and then use in the load() function.
I have used XAMPP during development on Windows, and NGINX on the production server.
I hope this helps someone too! :)


Bump vm2 to fix critical security vulnerability

The CLI is vulnerable to CVE-2023-29017. This vulnerability was patched in the release of version 3.9.15 of vm2. There is a dependabot PR open that just needs to be approved/merged.

@ZackKanter We are already working on doing a new release to handle this.

@ZackKanter We are already working on doing a new release to handle this.

Thanks for the quick reply!

Library already updated.


Drop old TS versions from support

When we make a breaking change release (relatively soon but not immediately), we should cut the TS versions which predate the current Ember LTS versions we aim to support.

[ ] from CI.yml
[ ] from ember-try-typescript.js

…aaaaand I meant to do this. Welp. Next time. :joy: Having these old versions supported isn't hurting us, in any case!


Change the DnsMessage.id() to be a short.

Motivation:
The id of a DnsMessage should be a 16 bit identifier accourding to RFC 1035 Section 4.1.1.
See also https://www.ietf.org/rfc/rfc1035.txt
Modifications:
Change id from unsigned short to short to be compliant with the spec.
Result:
Correctly handle dns message id.

@trustin PTAL.
From the RFC:
The header contains the following fields:

                                    1  1  1  1  1  1
      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                      ID                       |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |QR|   Opcode  |AA|TC|RD|RA|   Z    |   RCODE   |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    QDCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ANCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    NSCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ARCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

ID              A 16 bit identifier assigned by the program that
                generates any kind of query.  This identifier is copied
                the corresponding reply and can be used by the requester
                to match up replies to outstanding queries.

I'm not sure what the problem is. If you are concerned about the case
where a user specify a negative integer then you could just add
validation in the constructor?
I'd like to keep the ID field unsigned because 1) negative values look
bad and 2) int is easier to work with than short (they are widen
internally anyways)

@trustin the problem is that it is just incorrect ;) What happens if a user want to parse a DnsResponse that is not the result of a query that is done with our encoder ? If the DnsResponse contains a negative id it will not correctly be reflected in the mojo. This is a bug.

Nope? Negative value will be converted to an unsigned value that is bit-
perfectly same with the negative value (i.e. we only do & 0xffff) Being
signed or unsigned does not affect the actual binary representation of
an integer.

@trustin I know that it does not affect the binary representation. What I say is that if the "real id" is negative the user should also see it as negative when calling id(), no ?

@normanmaurer What is the 'real id' is greater than 32767? The RFC does not state the signedness of ID so I'd assume it's an unsigned value because it's not common to find negative IDs..

It list unsigned explicit for all other things where it is unsigned to I would asume it is signed

Am 24.03.2016 um 03:20 schrieb Trustin Lee<EMAIL_ADDRESS>@normanmaurer What is the 'real id' is greater than 32767? The RFC does not state the signedness of ID so I'd assume it's an unsigned value because it's not common to find negative IDs..
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

Based on Wireshark source (https://github.com/wireshark/wireshark/blob/master/epan/dissectors/packet-dns.c#L3665 and L435) looks that this shoud be uint :)

Yep thx... Ignore me 😜


-lsapporo Not Found When Installing GPU Codes from Source

Describe the bug
Wen doing a make install ph4.code, the CPU worker compiles fine but the GPU worker does not. Upon inspecting the build.log, the error is that ld cannot find -lsapporo, even though sapporo2 built fine during the initial ./configure --enable-cuda -with-cuda-libdir="/opt/cuda-10.2/targets/x86_64-linux/lib/stubs" --enable-sapporo2 call.
To Reproduce
Likely machine-specific. However, I have included the config.mk below.
Expected behavior
-lsapporo should be easily found by ld.
Logs
# amuse configuration generated by ./configure from config.mk.in

PYTHON=/home/jglaser/miniconda3/bin/python
CODE_GENERATOR=amusifier

#
# PYTHON embedding
#
PYTHON_DEV=yes
CYTHON=/home/jglaser/miniconda3/bin/cython
PYTHONCONFIG=/opt/pulsar/bin/python-config
PYTHONDEV_CFLAGS=-I/opt/pulsar/include/python2.7 -I/opt/pulsar/include/python2.7 -fno-strict-aliasing -fPIC -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
PYTHONDEV_LDFLAGS=-L/opt/pulsar/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic

#
# Compilers, for compiling without MPI
# these compilers must be the same or compatible with
# the mpi compilers
#
CXX=g++
CC=gcc
FC=gfortran
GFORTRAN_VERSION=4.4.7
IFORT_VERSION=
FC_ISO_C_AVAILABLE=yes

#
# Default flags, append to these in the makefiles
#
CXXFLAGS=-g -O2 -fPIC
CFLAGS=-g -O2 -fPIC
FCFLAGS=-g -O2 -fPIC
LDFLAGS=

#
# MPI Compilers
#
MPI_ENABLED=yes
MPICXX=mpicxx
MPICC=mpicc
MPIFC=mpif90
MPIEXEC=/opt/pulsar/openmpi/3.0/bin/mpiexec

MPI_CFLAGS=-pthread
MPI_CXXFLAGS=-pthread
MPI_FCFLAGS=-pthread -I/opt/pulsar/openmpi/3.0/lib
MPI_CLIBS=-Wl,-rpath -Wl,/opt/pulsar/openmpi/3.0/lib -Wl,--enable-new-dtags -L/opt/pulsar/openmpi/3.0/lib -lmpi
MPI_CXXLIBS=-Wl,-rpath -Wl,/opt/pulsar/openmpi/3.0/lib -Wl,--enable-new-dtags -L/opt/pulsar/openmpi/3.0/lib -lmpi
MPI_FCLIBS=-I/opt/pulsar/openmpi/3.0/lib -Wl,-rpath -Wl,/opt/pulsar/openmpi/3.0/lib -Wl,--enable-new-dtags -L/opt/pulsar/openmpi/3.0/lib -lmpi_usempi -lmpi_mpifh -lmpi

#
# Java
#
JAVA_ENABLED=yes
JAVA=/usr/bin/java
JAVAC=/usr/bin/javac
JAR=/usr/bin/jar
JAVA_VERSION=1.8

#
# OpenMP
#

OPENMP_ENABLED=yes
OPENMP_FCFLAGS=-fopenmp
OPENMP_CFLAGS=-fopenmp

#
# Libraries: FFTW, GSL, HDF5, CUDA, SAPPORO
#

FOUND_FFTW=yes
FFTW_FLAGS=
FFTW_LIBS=-lfftw3 -lm   -lfftw3_threads

FOUND_GSL=yes
GSL_FLAGS=
GSL_LIBS=-lgsl -lgslcblas -lm

FOUND_GMP=yes
GMP_FLAGS=
GMP_LIBS=-lgmp

FOUND_MPFR=yes
MPFR_FLAGS=
MPFR_LIBS=-lmpfr

HDF5_FLAGS=-I/include
HDF5_LIBS= -L/opt/pulsar/lib -lhdf5_hl -lhdf5  -lrt -lz -ldl -lm

NETCDF_PREFIX=.
NETCDF_FLAGS=
NETCDF_LIBS=
NETCDFF_PREFIX=.
NETCDFF_FLAGS=
NETCDFF_LIBS=

CUDA_ENABLED=yes
NVCC=/opt/cuda-10.2/bin/nvcc
NVCC_FLAGS=
CUDA_TK=/opt/cuda-10.2
CUDA_LIBS=-L/opt/cuda-10.2/targets/x86_64-linux/lib/stubs -lcuda  -L/opt/cuda-10.2/lib64 -lcudart

FOUND_CL=no
CL_LIBS=
CL_FLAGS=

  GNU nano 2.0.9                                                                                File: config.mk

SAPPORO_VERSION=2
SAPPORO_LIBS=-fopenmp -L${AMUSE_DIR}/lib/sapporo_2 -lsapporo

FS_FLAGS=-I$(AMUSE_DIR)/lib/forsockets
FS_LIBS=-L$(AMUSE_DIR)/lib/forsockets -lforsockets

SC_FLAGS=-I$(AMUSE_DIR)/lib/stopcond
SC_CLIBS=-L$(AMUSE_DIR)/lib/stopcond -lstopcond
SC_FCLIBS=-L$(AMUSE_DIR)/lib/stopcond -lstopcond
SC_MPI_CLIBS=-L$(AMUSE_DIR)/lib/stopcond -lstopcondmpi
SC_MPI_FCLIBS=-L$(AMUSE_DIR)/lib/stopcond -lstopcondmpi

export PYTHON CXX CC FC CXXFLAGS CFLAGS FCFLAGS MPICXX MPICC MPIFC LDFLAGS
export JAVA JAVAC JAVAH JAR JAVA_FLAGS
export FS_FLAGS FS_LIBS SC_FLAGS SC_CLIBS SC_FCLIBS SC_MPI_CLIBS SC_MPI_FCLIBS
export FFTW_FLAGS FFTW_LIBS
export GSL_FLAGS GSL_LIBS
export HDF5_FLAGS HDF5_LIBS
export OPENMP_FCFLAGS OPENMP_CFLAGS
export NVCC CUDA_TK CUDA_LIBS CUDA_ENABLED
export SAPPORO_VERSION SAPPORO_LIBS
export MPICFLAGS MPICCFLAGS MPIFCFLAGS
export IFORT_VERSION
export NVCC_FLAGS
export PYTHONDEV_LIBS PYTHONDEV_CFLAGS PYTHONDEV_LIBS
export FC_ISO_C_ENABLED

ifdef AMUSE_DIR
export AMUSE_DIR
endif

I remembered this was an issue back when I filed https://github.com/amusecode/amuse/issues/615.
It was scheduled to get mentioned during the May workshop, though it looks like its still not updated (I was a bit busy trying to get my thesis out the door). Building with sapporo_light still works out just fine, but isn't the preferred option.
~ Joe G.


Create a subcommand for mesheryctl system logs, restart and reset

Description
Created subcommands for mesheryctl system logs, restart and reset.
whilst, also uploading the release notes for Meshery v0.5.15
This PR,

fixes #2937
fixes #2935
fixes #2943
fixes #3017

Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@Anita-ihuman Would you mind changing the Description to,
This PR,

Fixes #2937
Fixes #2935
Fixes #2943

So that when this PR gets merged, those issues will be closed too

LGTM @Anita-ihuman 🎉🚀

IG will it be updated this in your PR #3000 ?? @adithyaakrishna
Or will it be as it is above?
We may need to look at this actually @Anita-ihuman

@alphaX86 This would need a bit more research to check which pages exactly do show the blank spaces. We could perhaps open a new issue having all the pages once #3022 #3000 and #3002 are merged

@adithyaakrishna All commands have some default flags like --help and in case of system commands --context

@navendu-pottekkat I noticed that whenever I include a link for 1 item it reflects in all the subcommands under" system", How do I tackle this issue?

@Anita-ihuman what do you mean it reflects changes on every file under system?? 👀


Windows 11 22H2 - Toasts not displayed

Has anyone successfully got toasts running on Windows 11 22H2? The script will run fine and returns toast is displayed but nothing pops on machine. Previous Win11 21H1 version they run OK.
Thought it was Focus settings, but no.
Checked the WMI queries around Windows versions, and they all still pass fine for 22H2.
Doing some more digging, will report back if i find a resolution.

Hi.
Any luck with this?
I'm facing the same problem.

I wonder if this has to do with Microsoft's new platform they have rolled out in Win11 22H2 with org messaging. https://go.microsoft.com/fwlink/?linkid=2214096


As a Facility Supervisor I want to be able to add the amenities that my facility has to offer

Facility supervisors may identify additional places that I want to market and program. This might be inside or outside. If it is outside, I may need to draw on a map what I am intending to market/program. I may need to reference my current list or map of amenities.

From a rec leader:


Tweak the issue template

Added info about logs to instructions.
Hidden instructions in final issue in case the user doesn't delete them so they don't make noise.
Added a issue description heading with a note about adding screenshots or videos if relevant.
Let me know if any of the changes doesn't suit you.
See updated template at: https://github.com/Blisto91/dxvk/issues/new/choose

I just realized the hiding of the instructions makes the bold text there irrelevant :thinking:

I moved **Reports with no log files will be ignored.** outside the hidden text and made important all caps :eyes:

Made a change so we just refer to the wiki for creating a apitrace.

Need to actually verify that DXVK_LOG_LEVEL work properly with along with the lutris wine script and proton.

Kinda semi superceded on master.
For any further tweak proposals I'll just open a new PR.


Publish 0.8.0-edge to npm?

Can this be done? Please :)

I don't believe that 0.8 is ready to be published.
However, you can npm anyway via terminal using its tag:
npm install https://github.com/ractivejs/ractive.git#edge --save
Better yet, you can use the URL of a specific commit hash.

Just for clarification, this was brought up before and the reason was because of npm https://github.com/ractivejs/ractive/issues/2326
In the end, the workaround is still to use a direct github reference.