ClampingScrollSimulation has large nonzero velocity when near the end, and velocity even increases slightly there

The problem
When using ClampingScrollSimulation, there are two problems:

It has large nonzero velocity when near the end (see figure below). We all know, for list view scrolling to feel comfortable, it should decrease its velocity and get to near-zero value when near end, instead of a large nonzero value.
velocity even increases slightly there (again see figure below). We know velocity should at least decrease due to friction.

Reproduction code for "velocity increases when near end"
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  test('ClampingScrollSimulation should have decreasing speed', () {
    final ClampingScrollSimulation simulation =
        ClampingScrollSimulation(position: 0, velocity: 1000);

    final List<double> tValues = List<double>.generate(60, (int i) => i / 60);
    final List<double> xValues = tValues.map(simulation.x).toList();
    final List<double> xDeltas = <double>[
      for (int i = 0; i < xValues.length - 1; ++i) xValues[i + 1] - xValues[i]
    ];

    // If curious, uncomment this to see the real values
    // debugPrint('$tValues\n$xValues\n$xDeltas');

    for (int i = 0; i < xDeltas.length - 1; ++i) {
      expect(xDeltas[i], greaterThan(xDeltas[i + 1]));
    }
  });
}

Figures
Code:

import matplotlib
import numpy as np

matplotlib.use("MacOSX")

import matplotlib.pyplot as plt

import math
from dataclasses import dataclass

_kDecelerationRate = math.log(0.78) / math.log(0.9)
_initialVelocityPenetration = 3.065

def _decelerationForFriction(friction: float):
    return friction * 61774.04968

def _flingDistancePenetration(t):
    return (1.2 * t * t * t) - (3.27 * t * t) + (_initialVelocityPenetration * t)

def _flingVelocityPenetration(t):
    return (3.6 * t * t) - (6.54 * t) + _initialVelocityPenetration

def clampDouble(x, min, max):
    if x < min:
        return min
    if x > max:
        return max
    return x

def _sign(x):
    if x > 0:
        return 1.0
    if x < 0:
        return -1.0
    return x

def _array_map(x, f):
    return np.fromiter((f(xi) for xi in x), x.dtype)

@dataclass
class ClampingScrollSimulation:
    position: float
    velocity: float
    friction: float = 0.015

    def __post_init__(self):
        self._duration = self._flingDuration(self.velocity)
        self._distance = abs(self.velocity * self._duration / _initialVelocityPenetration)

    def _flingDuration(self, velocity: float):
        scaledFriction = self.friction * _decelerationForFriction(0.84)
        deceleration = math.log(0.35 * abs(velocity) / scaledFriction)
        return math.exp(deceleration / (_kDecelerationRate - 1.0))

    def x(self, time):
        t = clampDouble(time / self._duration, 0.0, 1.0)
        return self.position + self._distance * _flingDistancePenetration(t) * _sign(self.velocity)

    def dx(self, time):
        t = clampDouble(time / self._duration, 0.0, 1.0)
        return self._distance * _flingVelocityPenetration(t) * _sign(self.velocity) / self._duration

# %%

plt.clf()
plt.tight_layout()
ax1 = plt.gca()
ax2 = ax1.twinx()

dt = 1 / 60
t = np.arange(0, 1, dt)

simulation_a = ClampingScrollSimulation(position=0, velocity=1000)
x_a = _array_map(t, simulation_a.x)
v_a = _array_map(t, simulation_a.dx)
diffx_a = (x_a[1:] - x_a[:-1]) / dt

ax1.plot(t, x_a, label='x_a')
ax2.plot(t, v_a, label='v_a')
ax2.plot(t[:-1], diffx_a, label='diffx_a')

if False:
    b_start_time = 0.3
    simulation_b = ClampingScrollSimulation(
        position=simulation_a.x(b_start_time),
        velocity=simulation_a.dx(b_start_time),
    )
    x_b = _array_map(t, simulation_b.x)
    v_b = _array_map(t, simulation_b.dx)
    diffx_b = (x_b[1:] - x_b[:-1]) / dt

    ax1.plot(t + b_start_time, x_b, label='x_b')
    ax2.plot(t + b_start_time, v_b, label='v_b')
    ax2.plot(t[:-1] + b_start_time, diffx_b, label='diffx_b')

ax1.legend(loc="upper left")
ax2.legend(loc="upper right")

plt.xlim([0, 1])

plt.show()

Image:

zoom in:

zoom in again:

Hi @fzyzcjy
I label this issue for further investigation/insight from the team. This issue is reproducible on the latest stable and master channels with provided sample code.

Test result output
Expected: a value greater than <0.5439357546201506>
  Actual: <0.51773409104743>
   Which: is not a value greater than <0.5439357546201506>

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.3.4, on macOS 12.6 21G115 darwin-x64, locale en-VN)
    • Flutter version 3.3.4 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision eb6d86ee27 (23 hours ago), 2022-10-04 22:31:45 -0700
    • Engine revision c08d7d5efc
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

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

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

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

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 12.6 21G115 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.125

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 3.5.0-6.0.pre.37, on macOS 12.6 21G115 darwin-x64, locale en-VN)
    • Flutter version 3.5.0-6.0.pre.37 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 08e1729204 (9 hours ago), 2022-10-13 17:40:07 -0400
    • Engine revision 3711bbaeab
    • Dart version 2.19.0 (build 2.19.0-309.0.dev)
    • DevTools version 2.18.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

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

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

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

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

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

[✓] Connected device (3 available)
    • iPhone 14 Pro Max (mobile) • 332079AF-E895-4685-910E-7B1E18B0C6B8 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 12.6 21G115 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 106.0.5249.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

@fzyzcjy I am not sure what these charts are showing, can you explain?

Is this a duplicate of https://github.com/flutter/flutter/issues/16371?

@Piinks The charts are reproduced from the attached python code. The python code is just a python version of dart ClampingScrollSimulation (because I want to use python's plotting lib).
That may not be a duplicate. Because that issue is talking about "not matching" (which is quite strict), while this issue is merely saying it is counter-intuitive.

The charts are reproduced from the attached python code. The python code is just a python version of dart ClampingScrollSimulation (because I want to use python's plotting lib).

Thanks for the context! Can you add labels? I don't know or understand what each line or axis represents.

Here's a repro recipe for this issue, directly in terms of how a user sees it:
Steps to Reproduce

Run the platform_tests/scroll_overlay app on an Android device. (Or really any other app with a long, scrollable list using the default behavior, on any non-Apple platform.)
Swipe up rapidly, once, to scroll with a rapid fling. Wait a couple of seconds as the scrolling slows down.
Watch carefully in the last quarter-second or so before the scrolling completes.

Expected results:
The scrolling motion should continuously slow down until it stops.
Actual results:
After slowing down for a while, the scrolling motion speeds up again slightly, and then abruptly stops.

This issue has been reported several times in passing, as part of other issues or PRs. I think this is the right thread to use to track it (and to consolidate any future duplicates onto.)
Recording those here for reference:

#77497

I've noticed that the Android Flutter scroll logic appears to be slightly off. After a scroll slows down to a sufficient amount, items appear to "snap" into place. It's as if the inertial scrolling clamps down and micro movements are not allowed. Note the difference is very subtle but present across Flutter apps, e.g. Stadia, gPay etc. […] Since this has been driving me mad […]

PR aimed at specifically this issue, with a repro video: #92338

One of several observations in: #16371

Besides, before the end of scroll, I have a feeling that it "suddenly" stops.

And last week by me at https://github.com/flutter/flutter/issues/119875#issuecomment-1414580430 .

Copy-pasting from that last one the part that belongs on this issue instead, and editing slightly:
An issue with the ClampingScrollSimulation curve: the scroll does not come to a smooth stop.
Instead the velocity actually increases over the last 200ms or so, before abruptly stopping when the simulation ends. In the Android scroll physics, the velocity decreases continuously to reach zero at the end.
I originally noticed this issue thanks to the graphs I posted at https://github.com/flutter/flutter/issues/119875#issuecomment-1416241372 ; when interacting as a user, I hadn't ever put my finger on it. But now that I know about it, it's very conspicuous to me when using scroll_overlay and I find it noticeable even in a normal app with a long list to scroll through.
I suspect that for lots of users the lack of a smooth stop contributes to a feeling that the scrolling isn't quite right, even without them ever identifying specifically why.
To fix this issue and get a smooth stop, we want the curve to have velocity 0 at t = 1, i.e. dx/dt(1) = 0, like the Android curve does.

Rereading this now, I have a correction to make to my previous comment:

Run the platform_tests/scroll_overlay app on an Android device. (Or really any other app with a long, scrollable list using the default behavior, on any non-Apple platform.)

This issue did not actually reproduce on platform_tests/scroll_overlay out of the box. That's because out of the box (and before #120420 was merged just now), that app showed the symptoms of #120338: the scroll fling simulation would be frequently restarted, which masked this issue.
I'd been seeing this on a version of that app where I'd made the list items all have the same height, instead of each item being slightly taller than the last. That caused it not to trigger #120338, so that it did show the symptoms of this issue. I guess when I wrote the above comment, I hadn't yet fully understood how these two issues interacted.
In any case, #120420 should fix both of these issues and has now been merged.


[!!!] Rename *Table types to *Map

Reasoning described in #31
There is absolutely no consistency in any other language in terms of naming ordered/unordered associative containers (some call trees maps, some hashes, some use both names, sometimes neither of the names are used), so it was mostly just arbitrary decision to name it Map. Adding "BTree" or "Binary" prefix is probably not really useful anyway, since it makes type ~2 longer to type without bringing any benefit over Map.

Needs changelog.

Anyone else has an opinion if this rename is necessary?

I'd prefer if the btreetables were renamed to BinaryTable or TreeTable, Map is not descriptive enough in my opinion.

I don't really care about exact naming - BTable, or TreeTable or Map or SortedTable or whatever - just not the same as std/tables.Table.

Rejected for multiple reasons:

We don't rename things in fusion, this is stable software you can use.
We made it compatible (names included) with std/tables as a decision choice so that code can easily simply change the import to get the other table implementation.
You can easily import both modules and use A.Table vs B.Table notations.


Draft: KeyId and DID

Should be merged after releasing 3.7.0 since this change touches everything
Fixes #73

this change touches everything

You were not wrong


⚠ BeyondHD has degraded performance

In ac10327, BeyondHD ($BHD) experienced degraded performance:

HTTP code: 200
Response time: 623 ms

Resolved: BeyondHD performance has improved in 6ec4304.


Make the strongbox-storage-api's tests work in parallel

The test cases in this module are taking quite a long time, as they're all running consecutively.
With our upgrade of JUnit to JUnit5 (handled by @ptirador in #871), we now have the means to further fine-tune the parallelization of our tests.

[ ] Each test method of each test must now take care of creating its own test resources and not rely on them to be created by a common test initialization method, or other test methods.
[ ] Test cases which require a repository, should create the repository in each test method and not rely on them to be created by a common test initialization method, or other test methods.

This task is a sub-task of #839. For reference of how things should be done, you can have a look at #936.

Hi, I would like to work on this.

@juanmanuelromeraferrio ,
I would suggest having a look at the work in #1165 and possibly helping out there first. Thanks! :)

Hi, I'd like to pick this up.

Great! Go for it! :)


Display test results more like a sentence

It would be awesome if test results could be displayed more like a sentence. For example:
✓ Door can be opened and closed
✓ Door has a handle on each side
✓ Door cannot be opened if locked

✓ Window can be opened and closed
✓ Window has a handle on each side
✓ Window cannot be opened if locked
✓ Window smashes if struck

or
Door
    ✓ can be opened and closed
    ✓ has a handle on each side
    ✓ cannot be opened if locked

Window
    ✓ can be opened and closed
    ✓ is transparent
    ✓ cannot be opened if locked
    ✓ smashes if struck

I appreciate this may not suit everyone, so maybe it could be enabled or disabled by a flag or something. Jest by facebook produces test results in the latter format, and it makes them very nice to read like a spec.
It looks like this:

You can see an example of this here
Currently, it shows the fully qualified class name, which can be a little verbose at times. Maybe this could only happen if someone turns debug or verbose on?

If people are interested, I could look into putting a PR together for this?

Sorry, it took so long to reply, but we've been super busy.
I don't think we should approach this full-on DDD mode as from my experience not many people really embrace this style of testing. Additionally, I like FQCN in there for quick pinpointing the failing test (especially if you have 3 different IndexTests in different namespaces :D ).
With that being said, I wouldn't mind a middle ground providing less verbose output which might look something like this:
House\Components\DoorTest
(1/7)    ✓ can be opened and closed (11 ms)
(2/7)    ✓ has a handle on each side (2 ms)
(3/7)    ✓ cannot be opened if locked (3 ms)

House\Components\WindowTest
(4/7)    ✓ can be opened and closed (10 ms)
(5/7)    ✓ is transparent (2 ms)
(6/7)    ✓ cannot be opened if locked (4 ms)
(7/7)    ✓ smashes if struck (2 ms)

LGTM
I get what you mean about the FQCN.
On Thu, May 10, 2018, 04:55 Rudolf Halas<EMAIL_ADDRESS>wrote:

Sorry, it took so long to reply, but we've been super busy.
I don't think we should approach this full-on DDD mode as from my
experience not many people really embrace this style of testing.
Additionally, I like FQCN in there for quick pinpointing the failing test
(especially if you have 3 different IndexTests in different namespaces :D ).
With that being said, I wouldn't mind a middle ground providing less
verbose output which might look something like this:
House\Components\DoorTest
(1/7)    ✓ can be opened and closed (11 ms)
(2/7)    ✓ has a handle on each side (2 ms)
(3/7)    ✓ cannot be opened if locked (3 ms)
House\Components\WindowTest
(4/7)    ✓ can be opened and closed (10 ms)
(5/7)    ✓ is transparent (2 ms)
(6/7)    ✓ cannot be opened if locked (4 ms)
(7/7)    ✓ smashes if struck (2 ms)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/LimeDeck/phpunit-detailed-printer/issues/15#issuecomment-387995349,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAg0VJLbf1OXtY6M1jy3sRCpFK0NrRMiks5txACGgaJpZM4SSIsx
.

Closing due to inactivity


added functions log() and sampling_rate() to fast5.hpp

Hi! here the pull request for the functions log() and sampling_rate().

Hi,
I committed the changes. Don't worry about the deleted file "fast5.hpp~", it was a local backup file and I accidentally included it in the 1st commit.
I also changed the argument of string::find() from "Sampling rate" to "Sampling rate is" (to prevent matching other strings that may be added in the future to the log)
Let me know if it could work or if you'd like other changes to be made.
Nicola

Merged


[sig-scale] Increase virt-controller QPS and Burst default configuration

What this PR does / why we need it:
With the current default rate limiting configuration for virt-controller, creating 1000 VMs in a 12-node cluster can take up to 23 minutes in total, which is very slow.More info here.

Consider the figure above, where I increased the virt-controller's QPS/Burst from the original value of 5/10 to 100/220, 200/400 and 400/600, with a total of 4 scenarios.
Note that while pod creation takes up to 25 seconds, the VM creation time with the original rate limiting configuration can take up to 22.7 minutes. Which is not acceptable. After increasing virt-controller's QPS/Burst to 400/600, the maximum VM creation latency was 25s.

Also, consider the figure above, the throughput is very low with the original configuration, being able to create only 1 VMI/s. However, after increasing virt-controller's QPS/Burst to 400/600, VMI creation per second increases up to 17.
Note that, the virt-controller is composed by several internal controllers (virt-controller-vm, virt-controller-vm, virt-controller-snapshot-vmsnashotstatus, virt-controller-node, virt-controller-evacuation, virt-controller-workload-update, and virt-controller-disruption-budget) which are subject to the virt-controller rate limiting request throttling.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #6055
Special notes for your reviewer:
Some might be wondering about the impact of increasing the virt-controller QPS/Burst to 400/600. For example:
What is the overall in-flight requests to the kubernetes api-server?
There are two metrics to analyze this. The rate of request per secondsum(rate(apiserver_request_total{}[5m])) and the number of concurrent requests apiserver_current_inflight_requests{}.
Note that these metrics are fundamentally different. The apiserver_request shows occupancy = rate X duration and there are many requests that take longer than 1s, so we can expect to see a very high rate. On the other hand, the apiserver_current_inflight_requests shows the current requests being served, which by default is set to be up to 500 (maximum in-flight request).
We can see in the figures below that although there is an increase in the rate of requests to the apiserver, up to 800 req/s, but the number of current requests in progress remains low, up to 40 req/s (far below 500).
Therefore, we can safely say that the system is healthy and there is a lot of room for request on the apiserver after increasing virt-controller's QPS/Burst to 400/600.
This PR defines the  QPS/Burst somewhere in between worst case scenario and best performance, such as 200/400.

What is the impact in the resource usage?
Regarding resource utilization, there is no significant increase in memory usage, but CPU utilization is noticeable. The virt-controller CPU usage was up to 25% in the original configuration and increased to up to 160% when creating 1K VMs (and up to 241% when creating 2K VMs), which is still reasonable for this load.

Finally, I want to point out here that increasing the virt-controller's QPS improves the performance of all virt-controller workqueues, which was previously identified as an open issue in #6055 and #5733.

Release note:

NONE

Signed-off-by: Marcelo Amaral<EMAIL_ADDRESS>

/cc @ezrasilvera @rthallisey @davidvossel

/cc @fabiand could you please review this PR and approve if you agree?

It would be great if @rthallisey could share his thoughts on this as well.
cc @xpivarc

@davidvossel Thanks for the review!
Regarding the number of requests:

Considering the best performance scenario (highest QPS), creating 1.2K VMs, we have approx. per VM:

~19 PUT requests in virt-controller
~6 POST requests in virt-controller
~4 PATCH requests in virt-controller
there are very few GET requests

Since all requests are for all managed objects, VMs, VMIs, and Pods, these numbers seem reasonable. WDYT?

I think my primary concern is making sure we aren't covering up a performance issue that should be address.

Right, in fact, increasing the FPS should really highlight the issues and not hide them. We will be able to see the actual demand from the system requests.

gains in efficiency as well in the actual code.

@andreyod submitted a PR (#7349) to decrease the number of Get Nodes requests.
But of course, there might be more things to improve!

@rthallisey While creating 100 VMs is fast, increasing the QPS will also improve it by some factor.

Can you share the data on this because it seems like a bug.  That would mean we're getting rate limited on API calls when we're less than 200/400 which is surprising.

Would it be possible to see data for 20/30 case(our current default)? It would allow us to see how do we improve our default behavior. Right now I only see 5/10 and the next one 100/220(maybe typo?).

@xpivarc sorry, there was an error in the PR description. I actually used 20/30 (the original configuration) and not 5/10.
So, I corrected the description!

We had a discussion in SIG-scale today.  Here's a summary:

Find the right default. 200/400 seems reasonable because it has significant performance benefits even with small workloads sizes like 100 vmis.  It was also brought up that 200/400 is reasonable for a controller, which is backed up by Marcelo's diagrams that shows no difference in API server requests processed.
Document the appropriate QPS based on performance and scale requirements.  There will be some cases that require much higher QPS and Burst.  We should document how much QPS and Burst is required in those cases - 50 VMIs/sec versus 20VMIs/sec.
Reduce API requests.  With ~19 PUT requests per VMI from the virt-controller, it should be easy to measure the impact with 1-2 less PUT requests.  Maybe there are some requests we don't need or maybe some other optimization?
Virt-controller waitDuration is really high at low QPS.  Check the virt-controller logs for traces (default thresholds is 1s) to see if we can find what is slow.  If there are no traces, it might be the keys are spending most of their time in the rate limiting queue because they had to retry their work.

+1 from me to go with 200/400 as the default

/lgtm

Reduce API requests.  With ~19 PUT requests per VMI from the virt-controller, it should be easy to measure the impact with 1-2 less PUT requests.  Maybe there are some requests we don't need or maybe some other optimization?

19 PUT, 4 PATCH, 6 POST
That's ~29 writes to get a VM to a running phase. Which I see includes both the VM and VMI controllers.
Lets say optimizations could could be halved to ~14-15 writes. Perhaps we could then get qps/burst down to 100/200, which seems a little more reasonable.
Here's my thoughts.
I'm okay with increasing to 200/400 now as long as we're able to track this and begin making this more efficient. What want to avoid is this number to keep increasing. So, 200/400 is our ceiling based on @marceloamaral's excellent analysis, and from here we want to go down by improving efficiency
Does that sound reasonable? and do we have anyone involved with scale that can start looking into how to make our controllers more efficient? Or at least ensuring they don't become less efficient as an initial effort?

I'm okay with increasing to 200/400 now as long as we're able to track this and begin making this more efficient. What want to avoid is this number to keep increasing. So, 200/400 is our ceiling

I agree that we should keep 200/400 as our ceiling limit and we should track this to make it more efficient.
@davidvossel So, could you please lgtm and approve this PR?

/retest

/retest


allow newer omniauth-oauth2 versions

Any plans / hopes on this getting merged? Running into a version issue.
Bundler could not find compatible versions for gem "omniauth-oauth2":
  In snapshot (Gemfile.lock):
    omniauth-oauth2 (= 1.7.1)

  In Gemfile:
    omniauth-clever was resolved to 1.2.1, which depends on
      omniauth-oauth2 (~> 1.1.1)

This would definitely be a help in some of my projects!


Add "Available to Spend" text to account details header.

Connected to https://github.com/bithyve/hexa/issues/2246.

@CypherPoet once the conflict is resolve I will merge this.


ResultSet.toMap() and ResultSet.indexForColumnName() not working for FTS

In CBL 2.0 and 2.1, I cannot get FTS to return all the properties that I ask for in the SelectResult. When I run the exact same query without the FTS Where expression, it works as expected. Specifically, the indexForColumnName() method returns -1 when the value is in-fact present in the values. As shown in the screenshot, the correct index for "overview" is 9. In indexForColumnName, the first line correctly returns 9, but the bitwise operators in the third line return false so -1 is returned. I assume the issue lies in how missingColumns is calculated.
private int indexForColumnName(String name) {
        Integer index = rs.getColumnNames().get(name);  // Expected result: 9, Actual result: 9
        if (index == null) return -1;
        boolean hasValue = (missingColumns & (1 << index.intValue())) == 0; // Expected: true, Actual: false
        return hasValue ? index.intValue() : -1;
    }

@percula Can you provide the FTS query that you constructed? I want to use that to reproduce that the issue.

Hi @pasin , thanks for looking into this! I am using a temporary workaround: I added CBL as a local library and bypassed the last two lines of indexForColumnName() and now it's working, so that is definitely the issue. This works fine, but now my build times are horribly slow. I looked for the .aar that Android Studio is supposed to build, but cannot find it. Does CBL for Android output that to a custom location?
Here is my FTS query as requested:
Limit[json={OFFSET=0, LIMIT=500, WHAT=[[.security], [.mn_cbl_dkp], [.mn_server_dkp], [._id], [.mn_view], [.sort_date], [.searchable_text], [.writable], [.visibility_writable], [.overview], [.location], [.type]], WHERE=[AND, [=, [.mn_view], Assets], [MATCH, searchable_text, north]]}]

A sample document would have a string value with key searchable_text with some value containing the word "North". We have a dozen or so such documents in our sample database that should match.

I was curious if the ._id was causing issues, so I tried removing that but the issue persists.

Closing. If you get the needed info feel free to reopen.


Automated cherry pick of #6306: fix: openstack 安全组规则同步

Cherry pick of #6306 on release/3.2.
#6306: fix: openstack 安全组规则同步

Codecov Report

Merging #6310 into release/3.2 will increase coverage by 0.01%.
The diff coverage is 7.63%.

@@               Coverage Diff               @@
##           release/3.2    #6310      +/-   ##
===============================================
+ Coverage         7.04%    7.05%   +0.01%
===============================================
  Files              646      649       +3
  Lines           110882   111210     +328
===============================================
+ Hits              7813     7850      +37
- Misses          102467   102752     +285
- Partials           602      608       +6

Flag
Coverage Δ

#aFlag
7.05% <7.63%> (+0.01%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/baremetal/manager.go
0.50% <0.00%> (+<0.01%)
:arrow_up:

pkg/baremetal/tasks/bm_register.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/db_dispatcher.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/domainresource.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/infraresource.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/project.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/sharablevirtual.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/virtualresource.go
0.00% <0.00%> (ø)

pkg/cloudprovider/cloudprovider.go
1.53% <0.00%> (-0.11%)
:arrow_down:

pkg/compute/guestdrivers/managedvirtual.go
0.00% <0.00%> (ø)

... and 34 more

Continue to review full report at Codecov.

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


No available video device

OS: Ubuntu 18.04
just cloned repo, installed cmake and, according to instruction from readme
installed:
libsdl2-dev
and finally command
cargo run in lesson-01 gives error:
thread 'main' panicked at 'called Result::unwrap()on anErr value: "No available video device"', src/libcore/result.rs:1009:5
Googling didn't help.
May you suggest what is wrong?

It is the SDL issue, can't help you here.
Try googling "SDL No available video device".
Some suggestions that pop up is to install packages xorg-dev and ia32-libs.


React Native Video for Extension based video URLs

What does this PR?
fixes #2177
Added react-native-video module for playing extension based video urls.
Solves the issue of thumbmail not showing.
Issue number
#2177
Screenshots/Video
https://loom.com/share/4067f50c0b604674b0e24fc64dc6a2d9

@aliseyalvi iOS side is working great. do also test playback on android side... in my tests it is not behaving as expected...
note: on android, we are sticking with modal based player for now, react-native-video should atleast play video in modal. that being said, I also force tested it in android inline playback, seem it is greatly misbehaving, for instance, not video thumb show up and playback controls float on screen.

@noumantahir please check the latest update here https://github.com/ecency/ecency-mobile/pull/2187/commits/176fa12a01cdb0c90694116f8361ac33582c8bb8.

Added react-native-media-controls for showing controls in android because on android the controls are doesn't supported and default controls greatly misbehave. Using custom controls also add further flaxibility for adding additional controls later.
on iOS side working good in inline and on android tested inside modal. A minor bug on android side is that player deosn't support full screen in android. This is a bug in react native video. Force tested as well. To fix this we would have to make this behaviour custom i-e extend the modal heights and widths to cover the whole screen and showing the close button on top to dismiss full screen.

@aliseyalvi working as expected, tested on android as well....

@feruzm you may review and merge now....


newtonsoft serializer settings is not respected

Swashbuckle does not respect newtonsoft serializer setting on .net core 3.1 because of the following line:
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/6fd662b7e1f1a9920dcd5a0f5d71bbe8f0c76187/src/Swashbuckle.AspNetCore.Newtonsoft/DependencyInjection/NewtonsoftServiceCollectionExtensions.cs#L27
it should be:
#if NETCOREAPP3_0 || NETCOREAPP3_1

Is there any estimate when this will get updated ? :-)

NETCOREAPP3_0 is a compile-time const to support multi-targeting during the Swashbuckle build process. It currently targets netstandard2.0 and netcoreapp3.0, and the latter will work with a 3.1 application without any problem. So, I highly doubt this is the root cause of the problem.
I would say your issue is most likely a dup of #1459. TL;DR this version defaults to honoring System.Text.Json (as opposed to Newtonsoft) serializer behavior. You need to expicitly opt-in to honoring Newtonsoft as described in the readme:
https://github.com/domaindrivendev/Swashbuckle.AspNetCore#systemtextjson-stj-vs-newtonsoft

Can you reevaluate your evaluation please, although I do not remember the details of my test, I have tried with downgrading my app 3.0 to test and it worked. However when I have changed backed 3.1 the options were not respected.
As you have said NETCOREAPP3_0 is compile time, when I compile with 3.1 #if part will be discarded because it will evaluate to false.
Basically;
#if NETCOREAPP3.0
Console.WriteLine("3.0");
#else if NETCOREAPP3.1
Console.WriteLine("3.1");

the output will be different based on systems sdk(3.0, 3.1 etc.)


Add nginx sources and debug info

Add nginx upstream sources to use latest stable (mainline) nginx packages
Add nginx TLS 1.3 support
Add debug info message before installing bbb packages and dependencies since this step takes quiet a while and the playbook may seem stuck

Added the suggested. Please check and merge

Hi @DerDanilo, please resolve the ansible-lint failures. Rest looks fine!

Hope that I got it now.
There seem to be some other lint erros regarding other playbooks as well.

closed due to inactivity.
Please send a message if you wish to work on this PR again.


gm config options in a separate file

I've been writing a gulpfile and trying to keep configuration options in a separate file when they're likely to be changed.  Can anyone suggest a practical way to split out the callback?
Here's the links to my work in progress:
gulpfile is at https://github.com/adrinux/web-starter-hugo/blob/master/gulpfile.js
config file is at https://github.com/adrinux/web-starter-hugo/blob/master/config/config.js

Do I understand correctly that you want to split out this callback into a config object in a separate file? https://github.com/adrinux/web-starter-hugo/blob/master/gulpfile.js#L41-L44
This module doesn't support configuration objects out of the box, but you could write a function that takes a config like var actions = [{ name: "resize", args: [1280, 1024] }] and applies it like this:
//  ES2015
.pipe(plugins.gm(function (gmfile) {
  return actions.reduce((gmfile, action) => gmfile[action.name](...action.args), gmfile);
}))


Radio button options do not update with ngx-translate

⭐⭐⭐
Description
I am using ngx-translate but the radio button options do not update when language is changed.
I can see in the console that the translations are working fine but the radio button options do not change.
Minimal Reproduction
https://stackblitz.com/edit/angular-k8dzcs-c2avjr?file=src/app/app.component.ts
Your Environment

Angular version: 7.2.15
Formly version: 5.10.27

Additional context
Problem:
The radio button options do not change when a different language option is selected.

Desired Behavior:
The radio button options should update when a different language option is selected.

@aitboudad Can you please help? I would really appreciate it if you can look into this. Thank you very much.

You should override options in order to let Angular detect your changes, also better define testingFields as a function
https://stackblitz.com/edit/angular-k8dzcs-fsrsau?file=src/app/view-formly.ts


ConvexHull should raise ValueError for NaNs.

It used to trigger a Segmentation Fault, which is not a very elegant
way to show that something is wrong. As it should not try to figure
something out of NaNs, it beautifully resigns with a ValueError now.
Fixes #5450

Similar guard should probably be added also to Delaunay etc..
Probably the correct place for this would be in class _Qhull

infs seem to raise QhullErrors, which seems appropriate.
Yes, np.isnan(points).all()could be used. Maybe also raise QhullError if that is the preferred error.
Should the same function be used to check for similar issues in Delaunay? Or do you think that this should be delegated to lower-level code?
I'd say that this is not even something I'd expect the class to do, but taking into account that it produces a segmentation fault some intervention is required.

Thanks, merged

Thanks for reviewing. Always glad to help.


docs: add contribute to the table of contents

Contribute was not in the table of contents, trying to help a contributor see the contribute section in case they did not scroll to the bottom of the readme.
For this project it is important that a contributor reads through the entire readme.
However, when groking the Readme there are two very challenging sections to the first timer. Configuration and FAQ.
A contributor needs to temporarily skip these parts to get to the all important Contribute section that tells them how to run locally without scaffolding a new react or angular app.
Putting contribute in the table of contents allows another path to that documentation.
Contribute
Run npm install
Run npm run bootstrap at project root
Use npm run angular to start the Angular sample application
Use npm run react to use the React sample application

Disclaimer is also not in the table of contents.


fix(linter): noUselessFragments deal html escapes under fragements wrong

Summary
closes: #4059

Test Plan

I need to review some code, waiting to merge

@fireairforce I added a comment to explain the allocation of a new string and the trimming in 02824b1 (#4107)

thank u~learn from this


SocketException: Socket has been closed

I got the following error when I run these simple codes.
import 'dart:async';
import 'package:mysql1/mysql1.dart';

Future main() async {
  final conn = await MySqlConnection.connect(new ConnectionSettings(
      host: '<IP_ADDRESS>', port: 3306, user: 'root', db: 'ppms'));

  var results = await conn
      .query('select * from user');

  for (var row in results) {
    print('UserName: ${row[0]}, Password: ${row[1]}');
  }
  await conn.close();
}

E/flutter ( 6312): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: SocketException: Socket has been closed
E/flutter ( 6312): #0      MySqlConnection.connect (package:mysql1/src/single_connection.dart:142:5)
E/flutter ( 6312):
E/flutter ( 6312): #1      main (package:f_sqljocky_test/main.dart:8:38)
E/flutter ( 6312):
E/flutter ( 6312): #2      _runMainZoned.. (dart:ui/hooks.dart:189:25)
E/flutter ( 6312): #3      _rootRun (dart:async/zone.dart:1124:13)
E/flutter ( 6312): #4      _CustomZone.run (dart:async/zone.dart:1021:19)
E/flutter ( 6312): #5      _runZoned (dart:async/zone.dart:1516:10)
E/flutter ( 6312): #6      runZoned (dart:async/zone.dart:1500:12)
E/flutter ( 6312): #7      _runMainZoned. (dart:ui/hooks.dart:180:5)
E/flutter ( 6312): #8      _startIsolate. (dart:isolate/runtime/libisolate_patch.dart:300:19)
E/flutter ( 6312): #9      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
E/flutter ( 6312):
Syncing files to device Android SDK built for x86...

I've got a similar problem trying to run similar line of code.
E/flutter ( 7524): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: SocketException: Write failed (OS Error: Broken pipe, errno = 32), address = <IP_ADDRESS>, port = 53786
E/flutter ( 7524): #0      MySqlConnection.connect
package:mysql1/src/single_connection.dart:142
E/flutter ( 7524):
E/flutter ( 7524): #1      GameDatabase.GetLastMove
package:flutter_tic_tac_toe/…/tic-tac-toe10_1v1_database/game_database.dart:54
E/flutter ( 7524):
E/flutter ( 7524): #2      GamePageState._movePlayed
package:flutter_tic_tac_toe/…/tic-tac-toe10_1v1_database/game_page_database.dart:127
E/flutter ( 7524):
E/flutter ( 7524): #3      GamePresenter_Database.onHumanPlayed
package:flutter_tic_tac_toe/…/tic-tac-toe10_1v1_database/game_presenter_database.dart:21
E/flutter ( 7524):
E/flutter ( 7524): #4      GamePageState._movePlayed.
package:flutter_tic_tac_toe/…/tic-tac-toe10_1v1_database/game_page_database.dart:150
E/flutter ( 7524): #5      State.setState
package:flutter/…/widgets/framework.dart:1122
E/flutter ( 7524): #6      GamePageState._movePlayed
package:flutter_tic_tac_toe/…/tic-tac-toe10_1v1_database/game_page_database.dart:140
E/flutter ( 7524): #7      _AsyncAwaitCompleter.start (dart:async/runtime/libasync_patch.dart:49:6)
E/flutter ( 7524): #8      GamePageState._movePlayed
package:flutter_tic_tac_toe/…/tic-tac-toe10_1v1_database/game_page_database.dart:121

@ItsNotMyFault , may be you're closing your connection to database before it fetches all data.
Need to see code, for further investigation.

@ThitSarNyanLynn did you solve the error?

I didn't solve it, I simply gave up on MySQL1 and used PHP to create the connection to the database. Just used http request  to access web services.

@ThitSarNyanLynn is the issue still relevant?

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.

Is privilege issue, check your privilege for root user and grant all privileges for 'root'@'%' like :
grant all privileges on . to 'root'@'%';
check into your database using:
show grants for 'root'@'%';

Is privilege issue, check your privilege for root user and grant all privileges for 'root'@'%' like :
grant all privileges on . to 'root'@'%';
check into your database using:
show grants for 'root'@'%';

Thanks. this one solves the problem for me. I change "localhost" to "%" and it works now.


no point to get FD usage if we are not root which will trigger and fl…

No point to get FD usage if we are not "root" , this will trigger audit if DISA_STIG has been applied
DISA_STIG V-72127 - All users of the openat command must be audited
On busy systems this will flood audit daemon specially if its continuously running (e.g. metricbeat) without root permission which on safety critical system applications will run with non-root privileges
E.g. audit rules:
-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access
-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access
-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access
-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access

:grey_exclamation: Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Reason: The PR is not allowed to run in the CI yet

Start Time: 2021-11-13T10:23:37.842+0000

Duration: 3 min 46 sec

Commit: d8cbb7c0ad18e51ec6a3876c7e1cb487b3c7de3a


Don't unmap message segments before last consumer is done

Describe the bug
We have a bug (hard to trigger) that we may unmap message segments before the last consumer deliver loop has finish writing to the socket, causing a segmentation fault.
We should rethink when we do the unmap. Maybe a fiber waiting for all deliver loops to be done (using a WaitGroup).

@spuun solved by https://github.com/cloudamqp/lavinmq/pull/850 right?

Yes, #850 solved this.


Document how to use schema_mapping setting on transferwise variants of target-snowflake and target-postgres

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2442
Originally created by @DouweM on 2020-11-10 23:19:03

The format of the setting is not currently documented:

https://meltano.com/plugins/loaders/snowflake--transferwise.html#schema-mapping
https://meltano.com/plugins/loaders/postgres--transferwise.html#schema-mapping

Reading the PipelineWise source reveals the intended format:
{
  "<source_schema>": {
    "target_schema": "<target_schema>",
    "target_schema_select_permissions": "<target_schema_select_permissions>",
  },
  # ...
}

These <variables> correspond to the values in the PipelineWise YAML config that can be seen in https://gitlab.com/meltano/meltano/-/issues/2385:
schemas:

  - source_schema: "public"            # Source schema in postgres with tables
    target_schema: "repl_pg_public"    # Target schema in the destination Data Warehouse
    target_schema_select_permissions:  # Optional: Grant SELECT on schema and tables that created
      - grp_stats

  # Here go `tables`

  # You can add as many schemas as you need...
  # Uncomment this if you want replicate tables from multiple schemas
  #- source_schema: "another_schema_in_postgres"
  #  target_schema: "another

View 6 previous comments from the original issue on GitLab


SPIKE - change my work experience

Context
Allows a Candidate to change their Work Experience after submitting an Application Choice.
Changes to the Work Experience details do not change the submitted Application
Changes proposed in this pull request

Modify the ApplicationExperience model to have a polymorphic exerienceable relationship rather than being attached directly to an ApplicationForm
Duplicates the Work Experience record and connects it to the ApplicationChoice when the Application is submitted

This is displayed in the Provider Interface
This would also need to be used in the ApplicationPresenter in the Vendor API

Guidance to review
This may cause issues elsewhere in the codebase.
It is possible to create an Application, with Work Experience, submit it and then update the Work Experience.
Viewing the Application as a Provider, the original Work Experience will be visible - without the edits.
Running locally
The migrations cause issues because we run our database migrations and then run the data migrations. This PR has a data migration that needs run before a migrations changing a column to not null.
Run rails db:migrate this will fail on a check_constraint - this is expected in this PR - after this error run rails data:migrate and then run rails db:migrate.
Link to Trello card
https://trello.com/c/WfLe897a
Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated added to the Azure KeyVault

This is looking rather lovely and I think the approach is sound. I haven't tested it locally yet (will do that now), but I do have a couple of questions:

Should it be behind a feature flag? Is the plan to roll it out immediately or release it next cycle (I know there are always considerations to do with whether or not the change means people applying after the change have an advantage over those who didn't...)
Do you want to check how this works with carrying over an application to the next cycle? I think it should be fine, but worth testing manually and possibly adding some specs to the duplicate_application class.

Thanks for your comments. We don't plan on merging this PR, only using it as a feasibility check.
We may use a feature flag for this, although we can do the underlying changes without the Candidate noticing. The first commit in this PR makes the section editable to the Candidate which will act like a feature flag.
Good should on the carried over Applications 🤔 we'll look into this too. Do we carry over the Application Form, the Application Choice or both?

Closing this PR as the spike is complete.
Please see https://github.com/DFE-Digital/apply-for-teacher-training/pull/9627 for full ADR


Is any way to change the default black background?

Is any way to change the default black background?

This is a bug in Windows 10 that also affects other thumbnails – for example transparent PNG images here and here.

This is a bug in Windows 10 that also affects other thumbnails – for example transparent PNG images here and here.

Is it possible to manually give a gray background instead ?


menu opens on hover

someone made an issue asking for the popup menu to open on hover so here it is

Ok ill make the changes sorry

i reviewed it with the diftool and it should now be okay

Two things - I still see what seem to be a lot of indentation changes that were made unnecessarily - also, there is a merge conflict that needs to be dealt w/...

@Patcybermind do you plan on continuing work on this PR?

yeah.. i cant do it
sorry


[Feature] Burp suite extension for interactsh client

Maybe it is not very necessary, but if it would be something interesting, a client for burpsuite (community), it is necessary to take into account that it would be an extra maintenance, no wonder they reject the idea. but still I comment

@vay3t Can you test out https://github.com/wdahlenburg/interactsh-collaborator?

Working very well @wdahlenburg, thanks a lot for making and sharing this with everyone 💚

of course @wdahlenburg

@wdahlenburg @ehsandeep  It works spectacular. Are you thinking of joining the project to projectdiscovery or giving it support?

thanks for confirming, closing this issue now. We will be linking this in the readme as well with instruction details.

@wdahlenburg @ehsandeep It works spectacular. Are you thinking of joining the project to projectdiscovery or giving it support?

Thanks! I'm going to hold on to it for the near future for support. Once it's a bit more robust, I'd love to see if Portswigger will accept it in the BApp store.
From a longer term perspective it may make sense for PD to own it (if they want to), but it really depends on how much activity there is on the repo.


Add auto escape method to Zend\View\Helper\FlashMessenger

Added methods setAutoEscape and getAutoEscape to Zend\View\Helper\FlashMessenger as proposed in issue #5600.

I'm trying to put a link into a flashmessage... this working? Cause in my project, this function don't have this parameter $autoEscape.


Release 0.7.6

This change is

@adityapatwardhan please follow the release process.
This change needs to be reverted.
The version is controlled by tag and automatically updated from the script.

@vors How does the version get updated? Did not see that in the release process. Btw, I already released

It's updated from the tag, if tag is present
https://github.com/PowerShell/platyPS/blob/d48da3fed9298bb3233b69a04a628783c40c87e2/build.ps1#L38

@vors It did not get updated over here: https://ci.appveyor.com/project/PowerShell/markdown-maml/build/<IP_ADDRESS>8/artifacts
How do i create a tag?

Can we keep it as is for this release? I will go ahead and push another change that makes the psd1 version back to 0.0.1?

Yes, it's fine to leave it for this release. Lets just revert it back in the master branch.

@vors Thanks. I will release on gallery now.

How do i create a tag?

git tag 0.7.6
git push 0.7.6


fix(ui): ipv6 validation and formatting issues when connecting to a remote node

Description:
Resolve #2172
Resolve #2270

Motivation and Context:
Currently, ipv6 addresses are sanitized incorrectly when using lndconnect string or manual connection. E.g
lndconnect://[1fff:0:a88:85a3::ac1f]:10009?cert=x&macaroon=y
How Has This Been Tested?
Manually
lndconnect://[1fff:0:a88:85a3::ac1f]:10009?cert=x&macaroon=y

Screenshots (if appropriate):

Types of changes:
Bugfix/enhancement

Checklist:

[x] My code follows the code style of this project.
[x] I have reviewed and updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes where needed.
[x] All new and existing tests passed.
[x] My commits have been squashed into a concise set of changes.

Coverage decreased (-0.003%) to 20.509% when pulling 6447e142e9b5fa0b6952474bae759a4e9f6107c1 on korhaliv:fix/ipv6 into 57a994fc8681dfca57529384c3f15e011d541f55 on LN-Zap:next.


python311Packages.shimmy: disable failing test

Description of changes
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 324902 run on aarch64-darwin 1

2 packages marked as broken and skipped:

python311Packages.shimmy
python311Packages.shimmy.dist

Result of nixpkgs-review pr 324902 run on x86_64-darwin 1

2 packages marked as broken and skipped:

python311Packages.shimmy
python311Packages.shimmy.dist

Result of nixpkgs-review pr 324902 run on x86_64-linux 1

2 packages built:

python311Packages.shimmy
python311Packages.shimmy.dist

Result of nixpkgs-review pr 324902 run on aarch64-linux 1

2 packages built:

python311Packages.shimmy
python311Packages.shimmy.dist


Change the overlap button URL

Right now the URL points to an excel sheet which was handled by some other party and it breaks because of changes put by them.

Fixed in #197


Allows user to click a value on slider to change exaggeration

Made changes that now allows a user to click on the slider to adjust the terrain exaggeration, implemented using a new FXML method to handle onMouseReleased. @tschie could you have a look please? thanks.

@tschie thanks! I decided to keep it as an FXML sample. I think it was separated out before because the main point of the sample (setElevationExaggeration) would have been drowned in the UX set up of the Slider.  At least having the two separated allows the user to identify the relevant API more easily.


Searchbar bug

The searchbar overlaps the icons on portrait and in landscape it cuts when the row and columns are set to max.
Landscape

Portrait

Thanks for the report!

Fixed!


Port C# Demonstration Algorithms->Py

These algorithms should be ported to Python to match their C# equivalents:
https://github.com/QuantConnect/Lean/blob/master/Algorithm.CSharp/IndicatorSuiteAlgorithm.cs
https://github.com/QuantConnect/Lean/blob/master/Algorithm.CSharp/RenkoConsolidatorAlgorithm.cs
https://github.com/QuantConnect/Lean/blob/master/Algorithm.CSharp/CoarseUniverseTop5DollarVolumeAlgorithm.cs
https://github.com/QuantConnect/Lean/blob/master/Algorithm.CSharp/DisplacedMovingAverageRibbon.cs

Before closing this issue, verify that the above algorithms were not only ported, but also added to the regression tests.


feat: add support for multi-properties

WIP: Add support for multi-properties in calendar parsing.

Updated InnerComponent multi_property from Vec to BTreeMap<String, Vec>
When converting into InnerComponent, split the properties by those that "May occur more than once" and all others
Added a basic test as proof of concept
Still to do is add filtering for other properties such as attach, cattegory, etc.

Here is the basic outline, let me know what needs to change or any other feedback. I'm still pretty new to Rust so I've very likely missed something, especially around lifetimes.

@daveterra I'll take this over if you don't mind

@daveterra I'll take this over if you don't mind

Sounds good! Let me know if there is anything else I can help with.

thank you so much for finding this and helping out with the fix!!!

https://crates.io/crates/icalendar/0.15.9

This should be a semver-breaking change, as it changes the signature of the public Component::multi_properties method.

Oh no you're right. I had run semver checks but it didn't report that. I'll have that version.

@qwandor thanks for ringing the alarm, it's 16.0.0 now
👏

I assume you mean 0.16.0? Thanks!

of course


fix for correct localization

fix for correct localization

fix for correct localization

Thanks for the PR @CMiSSioN !


A logo more in line with MacOS

May I suggest something regarding the aesthetic of the Applite logo? Perhaps it would be worth considering using a logo that aligns more with the macOS style. Would that be a possibility?

Which icons are you talking about? The title suggests that you mean the Applite logo, but your comment suggests in app icons.

Sorry, my expression may misunderstand you. I meant to request a modification for the Applite logo.

I'm happy to take suggestions, but I can't guarantee that I'll change the current one. Do you need the figma file for the current logo?

No thanks. I was just making a suggestion in hopes that Applite can become even better.


Feature/name change

@marten-cz hi, may i ask what was this about?

Wrong target for the merge. Because of the fork it used your repo as default.


fix: TypeError: LongTermMemory.search() missing 1 required positional argument: 'latest_n'

References:

https://github.com/joaomdmoura/crewAI/issues/487

Thanks I think we added a default now, but merging just in case :D


Add support for raw-window-handle

It would be nice to be able to use winsafe in things like softbuffer. So it would be nice if it exposed raw-window-handle's HasWindowHandle trait on types like WindowMain. Even if it was an optional feature that would be nice.

The ptr() method returns the actual pointer to any handle, not just window handles. Conversely, from_ptr() can construct a handle from any pointer. These are the escape hatches to integrate with external libraries.
Aren't these enough?

raw-window-handle has a WindowHandle type, where it is asserted that the window inside is a valid window handle. It has an unsafe constructor to assure this. It would be useful to not have to call this unsafe constructor in my own code.
(Note that one of the conditions for a valid window handle is that is has to belong to the calling thread)

I understand that some libraries do use raw-window-handle as a dependency, but WinSafe doesn't. So I don't think it's a good idea to add it as dependency just to have an integration – if so, it would be justifiable to add a dependency to every other library in the world.
Interoperation across library boundaries is inherently unsafe. If you don't feel comfortable using unsafe blocks in your project, I suggest you to create an interoperation crate to make the bridge between WinSafe and raw-window-handle. This way the unsafe code would be confined there.


Update copy for SR instance of patient-facing results

Background
Update SR instance of patient results to include Multiplex information.
Design
FIGMA: https://www.figma.com/file/NPSPM5SBzQ7Ra3mmr9M9cB/SimpleReport-Public-Site?node-id=6991%3A25519
POSITIVE FLU AND COVID

POSITIVE FLU ONLY

NEGATIVE ALL

Acceptance Criteria

[ ]  Add flu a result
[ ]  Add flu b result
[ ]  Update document header
[ ]  Update "notes" guidance based on +/- results for COVID/Flu

Additional context
Reach out to Kenny for clarification on the copy for the "More information" section
"More information" copy for POSITIVE flu result:
Most people with flu have mild illness and can recover at home. Stay at home and avoid contact with others until at least 24 hours after your fever is gone, except to get medical care or other necessities. Wear a face mask if you leave home, or cover coughs and sneezes with a tissue. Wash your hands often.
People at Higher Risk of Developing Flu–Related Complications (cdc.gov/flu/highrisk) should contact a doctor as soon as possible to see if antiviral treatment is recommended.
For more information, visit Flu: What To Do If You Get Sick (cdc.gov/flu/treatment/takingcare.htm).
Spanish translations:
https://app.zenhub.com/files/302387839/7377ceed-6d15-4780-9402-436c668590b7/download

@kenieh can you update screenshots?

@emmastephenson updated!

Ready for dev work!
I think but am not positive that this component is actually shared between the text results and PDF view of the details (#3493). They both seem to use the TestResults component as the source of truth. That in turn relies on en.ts and es.ts for the actual content.


csbindgen generates unknown type "C"

Version
1.9.2
Issue
Given the following Rust enum:
#[repr(C)]
pub enum CResultStatus {
    Ok,
    Err,
}

Version 1.8.0 generated the following csharp enum:
    enum CResultStatus : uint
    {
        Ok,
        Err,
    }

whereas the new version generates:
    enum CResultStatus : C
    {
        Ok,
        Err,
    }

dotnet then throws an error due to it not knowing what type C is

thanks, I've fixed in 1.9.3.


Update modelId() to Enable Polymorphic Collections Out of the Box

For Issue: https://github.com/jashkenas/backbone/issues/3965
Changes

modelId() now takes the model in question as the second argument
modelId() will look at the model in question's idAttribute before falling back to Collection.prototype.model.idAttribute and then 'id'
Retains backwards compatibility
Update tests to show default modelId() fallbacks
Update tests to show default polymorphic collection behavior

Rationale
Right now modelId(attrs) is only passed a plain-object representation of the model's attributes. This makes it difficult for application developers to create n-degree polymorphic Collection subclasses.
Contrived Example:
// A collection of mixed entity types that maintains sort order based
// on their joinDate property

var Entities = Collection.extend({
  modelId(attrs){
    // What ID attribute to use? Not determined at runtime.
  },
  comparator: 'joinDate'
});

// These are only two entity types with different idAttributes, but assume
// There may be up to (n) different entity types, each with different idAttributes,
// determined by the database backing this example application.

var Company = Model.extend({
  idAttribute: 'companyId'
});

var Customer = Model.extend({
  idAttribute: 'customerId'
});

// Proceeding to add and remove Customers, Companies, etc, to the Entities
// Collection will mess up the `_byId` cache because the Entities collection
// is not aware of all the different possibilities for `idAttribute` at runtime and
// a `modelId` method cannot be written to satisfy the needs of this app.

By making the modelId callback take the form modelId(attrs, model), where the second argument is the model in question, Backbone can retain backwards compatibility but enable the default implementation to be:
// Always give precedence to the provided model's idAttribute.
// Fall back to the Collection's idAttribute, and then to the default value `id`.

Entities.modelId = function modelId(attrs, model){
  return attrs[(model && model.idAttribute) || this.model.prototype.idAttribute || 'id'];
};

It still maintains backwards compatibility: For any implementation that is not already polymorphic, Collections will still function normally – models will have their idAttribute set when added to the Collection by the Collection's model constructor. Those that are already polymorphic, or have some type of non-standard idAttributes, will already have this modelId method overwritten.

:+1: If liked, would it be fitting to remove the couple warnings about collections with polymorphic models using idAttribute needing to override modelId?

Another benefit of this change: Allows collections using component generators to use the appropriate idAttribute of its possible models.
http://jsfiddle.net/53oo2bo9/4/

@caseywebdev, pulling you in because of your original work on modelId: https://github.com/jashkenas/backbone/pull/3133
Also, wondering if it may be time to talk about this again in a separate thread: https://github.com/jashkenas/backbone/issues/2043 (see minor freak out on above line comment for context)


remove duplicate plugin name entries from manifests

What is your persona?
plugin publisher
What is your story / use case?
As a plugin publisher, I would like to configure the name of the plugin once, instead of twice https://github.com/konveyor/crane-plugins/blob/main/index.yaml#L4 and https://github.com/alaypatel07/crane-plugins/blob/main/index.yaml#L4 to avoid typos
What is your specific intent, not necessarily the feature you want, but what are
you trying to achieve?
Reduce bugs caused due to human errors during publishing a plugin
How does your immediate need fit into your bigger picture? What's the overall
benefit?
This makes sure that crane plugin-manager list and crane plugin-manager add work with the same name
Do you have a suggestion for implementation?
It's important to decouple implementation from the story and use case itself,
but do you have a proposed solution that would serve your needs?

this is evident in fix https://github.com/konveyor/crane-plugins/pull/19

Also considering this closed by #19 , @JaydipGabani need confirmation.


Support colons in path for server-side

Motivation:
Currently, gRPC verb suffix is supported by introducing a VerbSuffixPathMapping.
There were several issues with this approach:

VerbSuffixPathMapping was applied inconsistently.

For instance, RouteBuilder path(String pathPattern) applies VerbSuffixPathMapping, but RouteBuilder path(String prefix, String pathPattern) doesn't.

In the context of ExactPathMapping, VerbSuffixPathMapping was acting as a workaround to support colons in the path. Additionally the support for colons is incomplete since only the last colon is correctly handled.

Another side-effect of this is route collisions are incorrectly reported since the verb suffix isn't taken into account.

Continued support of VerbSuffixPathMapping makes supporting colons natively difficult.
Misc) A path such ending with an escape character failed to start up the server: /path\\

The original motivation for #5613 was that the following patterns weren't supported.

/path/{param}:verb
/path/literal:verb

I propose that the first case be handled via using REGEX PathMapping types, and the second case be handled by natively supporting colons in our path parameters.
Note that colons are supported per the rfc3986, and we already have an issue https://github.com/line/armeria/issues/4577.

Supporting /path/{param}:verb

I propose that we support this simply by introducing a new PathMappingType.REGEX. We can simply check if the last PathSegment is a VerbPathSegment.

Supporting /path/literal:verb

Internally, we represent colons as parameterized variables both in ParameterizedPathMapping and RoutingTrieBuilder. This makes it difficult to support colons, so I propose that we modify the internal representation to a different character (\0). This character isn't a valid path character per rfc3986, so I believe the impact is minimal.
One side effect of this approach is that ParameterizedPathMapping#paths will return null character delimited paths.
e.g. /v0/:/path -> /v0/\0/path
Having said this, I believe the normal user path doesn't really use this value so it shouldn't matter.

Supporting colons in general

When one calls RouteBuilder#path(String), we determine whether to use ParameterizedPathMapping or ExactPathMapping depending on whether a colon is used.
https://github.com/line/armeria/blob/8ab42847c146b481c72f000dbc1c4d77dc009220/core/src/main/java/com/linecorp/armeria/server/RouteBuilder.java#L546

If the colon does not start the segment (e.g. /a:b), it is trivial to assume that the colon should be matched exactly.
If the colon does start the segment (e.g. /:param), it is ambiguous whether the user intended this to be a literal or parameter.

For this case, I propose the following:

If a colon is used as-is, /:param, then the segment will be used to represent a parameter
If a colon is escaped, /\\:param, then the segment will be treated as a literal

Optimization) ExactPathMapping is more performant than ParameterizedPathMapping because a simple equality check is done. I propose as an optimization we modify the condition to check if /: is contained instead of :. As a downside of this approach, the colon escape logic needs to also be added to ExactPathMapping. This can be undone if this logic seems too complicated though.
Modifications:

When VerbPathSegment is used, use RegexPathMapping for gRPC transcoding.
Removed VerbSuffixPathMapping and related changes in RoutingTrieBuilder, RouteBuilder, and ParameterizedPathMapping
Modified RoutingTrieBuilder and ParameterizedPathMapping to use \0 instead of ':' to represent parameterized path segments. This allows us to use ':' in most PathMapping types.
Relaxed ParameterizedPathMapping to act like ExactPathMapping when a path segment isn't capturing a path parameter.
Replace /\\: to /: in ParameterizedPathMapping and ExactPathMapping to give users an option to use the first colon as a literal.

Result:

https://github.com/line/armeria/issues/4577 is closed
Logic related to gRPC verb suffixes is generalized and cleaned up

@jrhee17 👍 👍 👍 👍 👍


No such file or directory error

Error that keeps popping up requiring the user to create the parent folder could likely be fixed by adding the -p parameter to mkdir.  Reference: https://discord.com/channels/640229510662455326/746560644995612752/1188693492654940241

fixed, development branch


Fix the incorrect payer name on the non-reimbursable transaction

Details

Change the logic on defining the payer name for a non-reimbursable transaction to show the requestor name instead of the manager/approver name of the workspace.
Fixed Issues

$ https://github.com/Expensify/App/issues/36186
PROPOSAL: https://github.com/Expensify/App/issues/36186#issuecomment-1966455435
Tests

Contributor can't get access to the Expensify Card transaction, so instead we can create a manual request data and merge the data with the dummy Expensify card data via the console. For speed things up, you can put the above code in the component (e.g., ReportScreen).
Onyx.merge('cardList',
{
  4: {
    "bank": "Expensify Card",
    "lastFourPAN": 3458,
  }
}
);

Onyx.merge('transactions_<TRANSACTIONID>', {amount: 1000, currency: 'USD', cardID: 4,  modifiedMerchant: null, merchant: "Test ECard Transaction", mccGroup: "Airlines", status:"Posted", hasEReceipt: true, receipt: {}, reimbursable: false });

Login with an account that an employee of a collect policy
Go to the workspace report and create a manual request
Take a note on the transactionID for the manual request you just created
Merge the dummy data with the transactionID
Verify the text on 3 places below correctly showing <requestor's name> spent

5a. Alternate text on LHN

5b. Report preview

5c. Money report preview header

[x] Verify that no errors appear in the JS console

Offline tests

Same as the tests.
QA Steps

Log in to your account with the Expensify Card transaction<EMAIL_ADDRESS>Go to the workspace chat with the transaction (https://staging.new.expensify.com/r/4612388815642526. If the transaction is settled, please create another Expensify Card transaction)
Verify the text on 3 places below correctly showing <requestor's name> spent

3a. Alternate text on LHN

3b. Report preview

3c. Money report preview header

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Friendly bump @grgia

@mollfpr could you merge main?

Fixed the conflict!

Thank you @mollfpr, I'm just going to have a second pair of eyes take a look at the adhoc build before I merge :)

Hmm how do I use the links here? It seems I don't have access

I tested a card transaction on staging / reported on a free workspace and I see the correct person in the title ("Kevin"). Is that all we need to do to confirm this is working as expected?

not sure what happened there

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


[BUG]

\AppData\Local\Programs\Python\Python311\Lib\site-packages\bbox_visualizer\bbox_visualizer.py", line 34, in draw_rectangle
output = img.copy()
^^^^^^^^
AttributeError: 'str' object has no attribute 'copy'

i coulndt solve this.
bbox=(100, 100, 200, 200)     img = bbv.draw_rectangle(img_path, bbox)

You're supposed to use the image numpy array as the input, not the image path.
Please read the docs: https://bbox-visualizer.readthedocs.io/en/latest/#bbox_visualizer.bbox_visualizer.draw_rectangle


correct "close to" float match expectation

Spelling/typographical correction for the float match external.
https://vitest.dev/api/expect.html#tobecloseto

@cometkim


Adding Verify method

Mock have both a Verify and VerifyAll method but currently AutoMocker is only exposing a helper method for VerifyAll.
This exposes a helper Verify method to be able to call Verify on all mocks. Very similar to the existing VerifyAll method. This allows for verifying only setups marked as verifiable.

Thanks! This is a really clean change that should make it a lot more functionable


Overlay ".empty" class needs to be defined wider/higher

Should be at app or overlay level. Otherwise it cannot affect backgrounds.

Related to #315


Currently in Eloquent Polymorphic Many-to-Many relationships it isn't possible to define the model_type column name

Laravel Version: 8.22.1
PHP Version: 7.4
Database Driver & Version: MySQL 8.0

Description:
Currently there is a hardcoded string for the morphType in a polymorphic many to many relationship that is impossible to override meaning that you cannot define a polymorphic relationship against an existing database structure unless you have the same db structure.
It can be seen here: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php#L53
Is it possible for this to be made so it can be overridden by the developer in some manner.

An example of the DB structure I have:
tags_models
id
tag_id
model_id
model

Where model is what Laravel expects to be model_type

An example of the DB structure I have:
tags_models
id
tag_id
model_id
model

Where model is what Laravel expects to be model_type

This sounds more like a feature request so I've moved the issue to the ideas repo.

This sounds more like a feature request so I've moved the issue to the ideas repo.


fix: do not use identity column when identity insert is off #131

There is a problem with SQLite when using BulkInsertOrUpdateAsync due to the generated SQL containing identity column. This PR should fix this issue.

@videokojot I think this is wrong solution, I'll close this for now


Fixed #26718 -- Added system check for existence of the fields specified by ForeignKey.to_field.

https://code.djangoproject.com/ticket/26718

The formulation The related model '%s' has no field named '%s'. sounds better to me. Other than that LGTM.

Please pick a new code as fields.E308/9 are "claimed" in https://github.com/django/django/pull/6640.

merged in 21130ce1a9c4fcbfce4c614be9e5408b43092bf0, thanks!


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update help window

Updated help window to include all commands.

Codecov Report

Merging #154 (fd9c7aa) into master (5b99ffd) will decrease coverage by 0.32%.
The diff coverage is n/a.

 Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Nuget says no dependencies, but I get an error on dependency check

PM> install-Package Nustache
Attempting to gather dependency information for package 'Nustache.<IP_ADDRESS>' with respect to project 'Admin\webfront', targeting '.NETFramework,Version=v4.5'
Attempting to resolve dependencies for package 'Nustache.<IP_ADDRESS>' with DependencyBehavior 'Lowest'
install-Package : Unable to resolve dependencies. 'Microsoft.AspNet.Razor 3.0.0' is not compatible with 'Microsoft.AspNet.Mvc 5.2.3 constraint: Microsoft.AspNet.Razor (>= 3.2.3 && < 3.3.0)', 'Microsoft.AspNet.WebPages 3.2.3 constraint: Microsoft.AspNet.Razor (>= 3.2.3 && < 3.3.0)', 'RazorEngine 3.7.7 constraint: Microsoft.AspNet.Razor (>= 3.0.0)'.
At line:1 char:1
+ install-Package Nustache
+ ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

in Nuget info:

shouldn't this just install "anywhere"?

It should indeed, the only package with Nustache that requires MVC is Nustache.Mvc3


Feature/dev 81 test celery tasks

BEFORE:
using django-eth-events 1.0.30
AFTER:
using django-eth-events 1.0.33, improved test cases

Coverage increased (+2.6%) to 90.205% when pulling 2cb6639e900d7fbe6cffef67e3f302555a2d19c6 on feature/DEV-81-test-celery-tasks into a907531305bd2efb26c3c50ff7dfa7c5ca0e7e21 on development.


Angular 11 Migration fixes

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: LucasBrazi06:white_check_mark: jerome-benoit:x: gochaxYou have signed the CLA already but the status is still pending? Let us recheck it.

@jerome-benoit
Conflict to resolve

@jerome-benoit
Conflict to resolve

Done.
The end result of that migration PR is really good in term of response and transpilation time.


GCP access token expires for services used less frequently

Title: GCP access token expires for services used less frequently
Description:

Describe your idea.  We are running cartography for our big GCP environment. The issue we faced is that GCP token is expiring for services that are used less frequently. The issue was as below

Cartography uses GCP python library to fetch credentials
Credetials are service specific i.e. different for compute/storage/dns/container/servicecatalog
If a specific credential is not used for 1hr, the token gets revoked. If it is in use, it gets refreshed.
Now resources like GKE or GCS buckets are few and far between projects.
So interval between two GKE/GCS API call might be more than 1hr for which credentials gets stale and errors out.

To Reproduce:

As said, same service call between projects with gap of more than an hour will cause this.
Logs:
If applicable, copy and paste your console log with the failing stack trace.

ERROR:cartography.sync:Unhandled exception during sync stage 'gcp'
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/cartography/sync.py", line 111, in run
    stage_func(neo4j_session, config)
  File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 197, in timed
    return method(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/__init__.py", line 252, in start_gcp_ingestion
    _sync_multiple_projects(neo4j_session, resources, projects, config.update_tag, common_job_parameters)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/__init__.py", line 210, in _sync_multiple_projects
    _sync_single_project(neo4j_session, resources, project_id, gcp_update_tag, common_job_parameters)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/__init__.py", line 181, in _sync_single_project
    storage.sync_gcp_buckets(neo4j_session, resources.storage, project_id, gcp_update_tag, common_job_parameters)
  File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 197, in timed
    return method(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/storage.py", line 247, in sync_gcp_buckets
    storage_res = get_gcp_buckets(storage, project_id)
  File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 197, in timed
    return method(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/storage.py", line 32, in get_gcp_buckets
    res = req.execute()
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py", line 932, in execute
    headers=self.headers,
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py", line 222, in _retry_request
    raise exception
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py", line 191, in _retry_request
    resp, content = http.request(uri, method, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/oauth2client/transport.py", line 175, in new_request
    redirections, connection_type)
  File "/usr/local/lib/python3.7/site-packages/oauth2client/transport.py", line 282, in request
    connection_type=connection_type)
  File "/usr/local/lib/python3.7/site-packages/httplib2/__init__.py", line 1725, in request
    conn, authority, uri, request_uri, method, body, headers, redirections, cachekey,
  File "/usr/local/lib/python3.7/site-packages/httplib2/__init__.py", line 1444, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/local/lib/python3.7/site-packages/httplib2/__init__.py", line 1396, in _conn_request
    response = conn.getresponse()
  File "/usr/local/lib/python3.7/http/client.py", line 1373, in getresponse
    response.begin()
  File "/usr/local/lib/python3.7/http/client.py", line 319, in begin
    version, status, reason = self._read_status()
  File "/usr/local/lib/python3.7/http/client.py", line 280, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/local/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "/usr/local/lib/python3.7/ssl.py", line 1071, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/local/lib/python3.7/ssl.py", line 929, in read
    return self._sslobj.read(len, buffer)
ssl.SSLError: [SSL: KRB5_S_TKT_NYV] unexpected eof while reading (_ssl.c:2570)
Traceback (most recent call last):
  File "/usr/local/bin/cartography", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/cartography/cli.py", line 724, in main
    sys.exit(CLI(prog='cartography').main(argv))
  File "/usr/local/lib/python3.7/site-packages/cartography/cli.py", line 705, in main
    return cartography.sync.run_with_config(self.sync, config)
  File "/usr/local/lib/python3.7/site-packages/cartography/sync.py", line 189, in run_with_config
    return sync.run(neo4j_driver, config)
  File "/usr/local/lib/python3.7/site-packages/cartography/sync.py", line 111, in run
    stage_func(neo4j_session, config)
  File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 197, in timed
    return method(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/__init__.py", line 252, in start_gcp_ingestion
    _sync_multiple_projects(neo4j_session, resources, projects, config.update_tag, common_job_parameters)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/__init__.py", line 210, in _sync_multiple_projects
    _sync_single_project(neo4j_session, resources, project_id, gcp_update_tag, common_job_parameters)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/__init__.py", line 181, in _sync_single_project
    storage.sync_gcp_buckets(neo4j_session, resources.storage, project_id, gcp_update_tag, common_job_parameters)
  File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 197, in timed
    return method(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/storage.py", line 247, in sync_gcp_buckets
    storage_res = get_gcp_buckets(storage, project_id)
  File "/usr/local/lib/python3.7/site-packages/cartography/util.py", line 197, in timed
    return method(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cartography/intel/gcp/storage.py", line 32, in get_gcp_buckets
    res = req.execute()
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py", line 932, in execute
    headers=self.headers,
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py", line 222, in _retry_request
    raise exception
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py", line 191, in _retry_request
    resp, content = http.request(uri, method, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/oauth2client/transport.py", line 175, in new_request
    redirections, connection_type)
  File "/usr/local/lib/python3.7/site-packages/oauth2client/transport.py", line 282, in request
    connection_type=connection_type)
  File "/usr/local/lib/python3.7/site-packages/httplib2/__init__.py", line 1725, in request
    conn, authority, uri, request_uri, method, body, headers, redirections, cachekey,
  File "/usr/local/lib/python3.7/site-packages/httplib2/__init__.py", line 1444, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/local/lib/python3.7/site-packages/httplib2/__init__.py", line 1396, in _conn_request
    response = conn.getresponse()
  File "/usr/local/lib/python3.7/http/client.py", line 1373, in getresponse
    response.begin()
  File "/usr/local/lib/python3.7/http/client.py", line 319, in begin
    version, status, reason = self._read_status()
  File "/usr/local/lib/python3.7/http/client.py", line 280, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/local/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "/usr/local/lib/python3.7/ssl.py", line 1071, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/local/lib/python3.7/ssl.py", line 929, in read
    return self._sslobj.read(len, buffer)
ssl.SSLError: [SSL: KRB5_S_TKT_NYV] unexpected eof while reading (_ssl.c:2570)

Please complete the following information::

Cartography release version - 0.91
Python version: 3.10
OS: debian

Added suggested PR which worked for my case

Hey Saumyadip, thank you for the bug report.
Are you sure the issue is with token expiration?
Asking cause I would expect HTTP 401 (Unauthorized) when token has expired instead of SSLError with KRB5_S_TKT_NYV.

Yes I did get 401 in another stackthread but did not save if unfortunately. Only when I got 401 I understood the issue and could fix it.

Note: Might be related to #245


A nightly build is being served as the latest version on NPM

Describe the feature
At the moment there is a nightly build served as the latest version by NPM:
$ npm info @swc/core

<EMAIL_ADDRESS>| Apache-2.0 | deps: 2 | versions: 593
Super-fast alternative for babel
https://swc.rs

keywords: swc, swcpack, babel, typescript, rust, webpack, tsc

dist
.tarball<EMAIL_ADDRESS>.shasum: 7154ce61a735387153d50321253cfff391ca9a2d
.integrity: sha512-AesMVEByycvq7bN/EJI0KQaiXmL+0rd2ysS4YjHuV3gHxvW+N+0SY6ecPZL+LumFHmKN5qiRRTq2kpuj5aEqMw==
.unpackedSize: 120.3 kB

dependencies:
@swc/counter: ^0.1.3 @swc/types: ^0.1.8

maintainers:
- kwonoj<EMAIL_ADDRESS>- kdy1<EMAIL_ADDRESS>
dist-tags:
latest: 1.5.29-nightly-20240612.3   nightly: 1.5.21-nightly-20240529.1

published 6 hours ago by kdy1<EMAIL_ADDRESS>
Was the intent to release it as 1.5.29?
Babel plugin or link to the feature description
No response
Additional context
No response

https://github.com/swc-project/swc/commit/4ecda3851c9b31d14a623a325a97ffd9af9b4922 should fix it once CI is done

It's back again.

Fixed