Weird behaviour when using floating-ui within a skewed element

Describe the bug
This is a bit of a niche issue. I'm building a website where the entire UI is skewed by 5 degrees. This is somehow throwing off the calculations for some of the middlewares, including offset and size.
To Reproduce
https://codesandbox.io/s/unruffled-dijkstra-kgt8vs?file=/src/App.js
Steps to reproduce the behavior:

Open sandbox
Without any skew, the offset is correct and the size middleware sets the correct height for the floating element
Click the "toggle skew" button
Now the floating element is shorter than it should be. The amount of extra space at the bottom depends on the viewport width - wider viewport leads to more empty space.
The offset is also incorrect. It varies based on both viewport width and height.

Expected behavior

For offset, the gap between the element should be the same as normal.
For size... well it's not entirely clear what the correct behaviour would be. With a padding value of 8px, should the lowest point (bottom left corner) be 8px away from the viewport edge? Or should it be the middle of the bottom edge that's 8px from the viewport edge, since that's the axis of the skew? I'm not sure but either of those would be preferable to the current behaviour.

Screenshots

Context:

OS: Windows
Browser: Chrome, Firefox
Version: @floating-ui/react-dom 2.0.2

I've tracked the problem down to the way elementClientRect is calculated from packages/core/src/detectOverflow.ts. It seems the convertOffsetParentRelativeRectToViewportRelativeRect function isn't designed to handle this scenario.

That wouldn't explain the offset being wrong though I don't think? Only the clipping detection

I found a decent workaround for this by portaling the floating element outside of the skewed app container (e.g. into the body). While you still need to fiddle with the padding and offset a bit, it's no longer variable with respect to the viewport at least, so it's reliable/deterministic.
https://codesandbox.io/s/hopeful-kepler-q3y8tj?file=/src/App.js
With how niche the issue is and the impact it would cause on bundle size to handle that most people will never see or need to use, I'm going to close it as wontfix.

Fair enough. Thanks for looking into it, I'll give that method a try. 🙂


Query: chaining multiple collection navigations followed by FirstOrDefault returns incorrect results

query:
ctx.Customers
  .Select(
    c => c.Orders
      .OrderBy(o => o.Id)
      .FirstOrDefault()
      .OrderDetails
      .OrderBy(od => od.Id)
      .FirstOrDefault()
      .Name)

we translate this to:
from c in ctx.Customers
select (
  from od in ctx.OrderDetails
  where od.OrderId == (
    from o in ctx.Orders
    where o.CustomerId == c.Id
    orderby o.Id
    select o).FirstOrDefault().Id
  orderby od.Id
  select od.Name).FirstOrDefault()

Now, because we apply C# semantics to the comparison, when od.OrderId is NULL and the orders subquery is null, we match this to true and return the associated order detail. This is not expected - we should filter out elements where null == null (i.e. simulate database null semantics for this specific case).

@divega to have a bit of a think.

@maumar I found a bit interesting that the SQL translation produced by EF Core 2.2 for the second query does not include terms to compensate for three value logic and produces the correct result:
SELECT (
    SELECT TOP(1) [od].[Name]
    FROM [OrderDetails] AS [od]
    WHERE [od].[OrderId] = (
        SELECT TOP(1) [o].[Id]
        FROM [Orders] AS [o]
        WHERE [o].[CustomerId] = [c].[Id]
        ORDER BY [o].[Id]
    )
    ORDER BY [od].[Id]
)
FROM [Customers] AS [c]

While the 3.0 translation is:
SELECT (
    SELECT TOP(1) [o].[Name]
    FROM [OrderDetails] AS [o]
    WHERE (([o].[OrderId] = (
        SELECT TOP(1) [o0].[Id]
        FROM [Orders] AS [o0]
        WHERE [o0].[CustomerId] = [c].[Id]
        ORDER BY [o0].[Id])) AND ([o].[OrderId] IS NOT NULL AND (
        SELECT TOP(1) [o0].[Id]
        FROM [Orders] AS [o0]
        WHERE [o0].[CustomerId] = [c].[Id]
        ORDER BY [o0].[Id]) IS NOT NULL)) OR ([o].[OrderId] IS NULL AND (
        SELECT TOP(1) [o0].[Id]
        FROM [Orders] AS [o0]
        WHERE [o0].[CustomerId] = [c].[Id]
        ORDER BY [o0].[Id]) IS NULL)
    ORDER BY [o].[Id])
FROM [Customers] AS [c]

Although this might be just a fortunate coincidence (and the reason for it might simply be that we didn't fully implement null semantics ), I agree with you that in this case the null semantics expansion doesn't apply.
At first glance, it seems that this is true in general when we compare FK to PK properties. In other words, when we traverse relationships (e.g. also for any joins). I cannot think of a better criteria we can use to decide this behavior applies.
Incidentally, even in LINQ to Objects, Join() does not yield rows on which both sides of the equals are null.
This also made me wonder what the translation should be if Order had a composite key, but currently (with preview6) the query is broken (exception at the end).
It seems to me that it should be possible to produce a translation that would work with composite keys using joins and window functions (again!) to return the first rows of orders and order details. Is there something simpler?
Here is the exception message you get in preview 6 with a composite key on Order:
System.InvalidOperationException
  HResult=0x80131509
  Message=Operation is not valid due to the current state of the object.
  Source=Microsoft.EntityFrameworkCore.Relational
  StackTrace:
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateOrderBy(ShapedQueryExpression source, LambdaExpression keySelector, Boolean ascending)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSubquery(Expression expression)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalSqlTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalSqlTranslatingExpressionVisitor.VisitBinary(BinaryExpression binaryExpression)
   at Microsoft.EntityFrameworkCore.SqlServer.Query.Pipeline.SqlServerSqlTranslatingExpressionVisitor.VisitBinary(BinaryExpression binaryExpression)
   at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalSqlTranslatingExpressionVisitor.Translate(Expression expression)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateWhere(ShapedQueryExpression source, LambdaExpression predicate)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSubquery(Expression expression)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalSqlTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalSqlTranslatingExpressionVisitor.Translate(Expression expression)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalProjectionBindingExpressionVisitor.Visit(Expression expression)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalProjectionBindingExpressionVisitor.Translate(SelectExpression selectExpression, Expression expression)
   at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSelect(ShapedQueryExpression source, LambdaExpression selector)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryCompilationContext2.CreateQueryExecutor[TResult](Expression query)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass9_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func`1 compiler)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
   at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.GetEnumerator()
   at System.Collections.Generic.List`1.AddEnumerable(IEnumerable`1 enumerable)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Repro15798.Program.Main(String[] args) in C:\Users\divega\source\repos\Repro15798\Program.cs:line 32

In 2.2 we deliberately did not apply null semantics in this case. When constructing a collection navigation we created dedicated expression representing correlation predicate, and when applying null semantics we would not apply null semantics for it (since it was custom expression, it was super easy to detect the case). That was my original plan but @smitpatel was adamant against it.
Wrt composite keys, I was thinking about something like this (third example): https://github.com/aspnet/EntityFrameworkCore/issues/15260 but I'm not sure if the approach can be generalized.

When constructing a collection navigation we created dedicated expression representing correlation predicate, and when applying null semantics we would not apply null semantics for it

Ok, I believe the solution would look like this, but I think we need to think trough and come up with a rational rule for when the behavior applies. E.g. is it really only for collection navigation? What about regular joins and references?

Wrt composite keys, I was thinking about something like thi

Yep, that looks like it should work.

When constructing a collection navigation we created dedicated expression representing correlation predicate, and when applying null semantics we would not apply null semantics for it

Incorrect. We did not do that at all. It is in where predicate and we did not fully expand it since we assumed null is fall so we don't need it.
The only case we did not apply null semantics in 2.x was single key join. Even for composite key we just went along and applied null semantics. (Though we may have treated it like predicate)

@smitpatel we created NullSafeEqualExpression (bad name) when expanding collection navigation and during translation we wrapped it around NullCompensatedExpression so that null semantics doesnt peek in. It does seem wrong for complex cases where scalar subquery is part of the correlation predicate and it has some stuff inside that would need null semantics. But for cases of simple navigation access it was fine.

As of now in new pipeline, I don't see NullSafeEqualExpression while translating to SQL.
So I am not able to understand your comment https://github.com/aspnet/EntityFrameworkCore/issues/15798#issuecomment-505339046
The thing which I argued against was to generate null check for outer key rather than inner key.

I discussed this further with @smitpatel. Here are some conclusions:

There is an agreement that equality with three-value logic does the right thing when traversing relationships so null compensation isn't necessary for these equality comparisons. This applies to anything that navigation expansion produces, and also to ad-hoc relationships introduced in join operations.

For the particular case of this query, @smitpatel has in mind a different solution that will add a term to make the key comparisons null-safe. This should have the advantage that it makes the query return the correct results and avoid throwing in an in-memory implementation. But doing this alone can have the potential disadvantage that the SQL is not going to be as simple as it can be.

I personally see the null-safe check proposed by Smit as orthogonal to whether the equality comparison should be expanded by null semantics. E.g. we could have the null-safe check and still generate the equality comparison in a way that null semantics doesn't try to add null-compensation.

We already correctly don't apply null semantics to the equality for single key join, but we do apply null semantics for composite key joins. This is only based on replicating the behavior in LINQ to Objects: simple keys that are null are not a match for Join(), but for composite keys (usually anonymous type instances) a member by member comparison is performed and if same members have null values then there can be a match. I think we should avoid doing this.


Direct Match Does not Work

System: Windows 10
Attempting to connect to another user directly (who was using cccaster) resulted in not being able to start the match. The ping sound effect played when they connected but the game did not start and the modal showed no changes. My only guess is that cccaster expects to be given a rollback and delay value like it does when you do netplay directly through the caster.

Concerto creates a "concerto-logs" folder for text files as a written history of CCCaster netplay attempts. Please provide me with the log file relevant to your netplay session in order for me to review the output and find the issue.


WIP: bump Rsbuild 0.3.0 canary

Summary

bump Rsbuild 0.3.0 canary
explicitly declare Node version of babel target

Related Links
TODO
Checklist

[ ] I have added changeset via pnpm run change.
[ ] I have updated the documentation.
[ ] I have added tests to cover my changes.

!canary


[url_launcher] DartDoc and test improvements

Description

Add a lint to url_launcher and url_launcher_platform_interface to
prevent undocumented public members.
Add some unit tests.

Related Issues
Fixes flutter/flutter#44404.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

Sorry, this needs some more tweaking before it's ready for review.

This is ready for review.


Update from 0.2.0 to 0.2.3 failed

Hey guys,
Recently I've upgraded my bundle and things started to fail.
Unable to compile mini_race's dependence libv8. It was updated from 6.3.292.48.1 to 6.7.288.46.1
current directory: /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/ext/libv8
/home/snake/.rbenv/versions/2.5.1/bin/ruby -r ./siteconf20181029-22526-3zkn7d.rb extconf.rb
creating Makefile

________ running 'git -c core.deltaBaseCacheLimit=512m clone --no-checkout --progress https://chromium.googlesource.com/v8/v8.git /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/_gclient_v8_QhkTpK' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
Cloning into '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/_gclient_v8_QhkTpK'...
remote: Sending approximately 406.83 MiB ...
remote: Counting objects: 1
remote: Counting objects: 6583
remote: Counting objects: 7660, done
Receiving objects:   0% (1/607285)
Receiving objects:   1% (6073/607285)
Receiving objects:   2% (12146/607285)
Receiving objects:   3% (18219/607285)
Receiving objects:   4% (24292/607285), 7.68 MiB | 15.33 MiB/s
Receiving objects:   5% (30365/607285), 7.68 MiB | 15.33 MiB/s
Receiving objects:   6% (36438/607285), 7.68 MiB | 15.33 MiB/s
Receiving objects:   6% (38757/607285), 7.68 MiB | 15.33 MiB/s
Receiving objects:   7% (42510/607285), 15.84 MiB | 15.81 MiB/s
Receiving objects:   8% (48583/607285), 15.84 MiB | 15.81 MiB/s
Receiving objects:   9% (54656/607285), 15.84 MiB | 15.81 MiB/s
Receiving objects:  10% (60729/607285), 15.84 MiB | 15.81 MiB/s
Receiving objects:  11% (66802/607285), 23.61 MiB | 15.71 MiB/s
Receiving objects:  12% (72875/607285), 23.61 MiB | 15.71 MiB/s
Receiving objects:  13% (78948/607285), 23.61 MiB | 15.71 MiB/s
Receiving objects:  13% (81125/607285), 23.61 MiB | 15.71 MiB/s
Receiving objects:  14% (85020/607285), 35.64 MiB | 17.78 MiB/s
Receiving objects:  15% (91093/607285), 35.64 MiB | 17.78 MiB/s
Receiving objects:  16% (97166/607285), 35.64 MiB | 17.78 MiB/s
Receiving objects:  17% (103239/607285), 35.64 MiB | 17.78 MiB/s
Receiving objects:  18% (109312/607285), 50.42 MiB | 20.13 MiB/s
Receiving objects:  19% (115385/607285), 50.42 MiB | 20.13 MiB/s
Receiving objects:  20% (121457/607285), 50.42 MiB | 20.13 MiB/s
Receiving objects:  21% (127530/607285), 50.42 MiB | 20.13 MiB/s
Receiving objects:  22% (133603/607285), 50.42 MiB | 20.13 MiB/s
Receiving objects:  22% (138665/607285), 50.42 MiB | 20.13 MiB/s
Receiving objects:  23% (139676/607285), 50.42 MiB | 20.13 MiB/s
Receiving objects:  24% (145749/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  25% (151822/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  26% (157895/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  27% (163967/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  28% (170040/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  29% (176113/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  30% (182186/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  31% (188259/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  32% (194332/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  33% (200405/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  34% (206477/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  35% (212550/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  36% (218623/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  37% (224696/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  38% (230769/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  39% (236842/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  40% (242914/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  41% (248987/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  42% (255060/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  43% (261133/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  44% (267206/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  45% (273279/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  46% (279352/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  47% (285424/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  48% (291497/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  49% (297570/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  50% (303643/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  51% (309716/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  52% (315789/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  53% (321862/607285), 65.22 MiB | 21.70 MiB/s
Receiving objects:  54% (327934/607285), 81.10 MiB | 23.13 MiB/s
Receiving objects:  54% (329595/607285), 81.10 MiB | 23.13 MiB/s
Receiving objects:  55% (334007/607285), 102.34 MiB | 22.70 MiB/s
Receiving objects:  55% (339239/607285), 102.34 MiB | 22.70 MiB/s
Receiving objects:  56% (340080/607285), 107.04 MiB | 22.03 MiB/s
Receiving objects:  57% (346153/607285), 118.57 MiB | 22.78 MiB/s
Receiving objects:  57% (347006/607285), 118.57 MiB | 22.78 MiB/s
Receiving objects:  58% (352226/607285), 142.99 MiB | 23.81 MiB/s
Receiving objects:  58% (353462/607285), 142.99 MiB | 23.81 MiB/s
Receiving objects:  59% (358299/607285), 167.14 MiB | 22.60 MiB/s
Receiving objects:  59% (358974/607285), 167.14 MiB | 22.60 MiB/s
Receiving objects:  59% (361432/607285), 191.32 MiB | 18.69 MiB/s
Receiving objects:  60% (364371/607285), 191.32 MiB | 18.69 MiB/s
Receiving objects:  60% (366015/607285), 205.27 MiB | 20.64 MiB/s
Receiving objects:  61% (370444/607285), 225.99 MiB | 20.20 MiB/s
Receiving objects:  61% (371115/607285), 225.99 MiB | 20.20 MiB/s
Receiving objects:  62% (376517/607285), 238.11 MiB | 19.98 MiB/s
Receiving objects:  62% (376530/607285), 250.42 MiB | 18.66 MiB/s
Receiving objects:  62% (378490/607285), 255.36 MiB | 16.14 MiB/s
Receiving objects:  63% (382590/607285), 255.36 MiB | 16.14 MiB/s
Receiving objects:  63% (384833/607285), 280.94 MiB | 17.74 MiB/s
Receiving objects:  64% (388663/607285), 291.70 MiB | 19.25 MiB/s
Receiving objects:  64% (389584/607285), 302.35 MiB | 18.62 MiB/s
Receiving objects:  64% (392293/607285), 322.93 MiB | 18.59 MiB/s
Receiving objects:  65% (394736/607285), 322.93 MiB | 18.59 MiB/s
Receiving objects:  65% (399301/607285), 345.42 MiB | 19.66 MiB/s
Receiving objects:  66% (400809/607285), 345.42 MiB | 19.66 MiB/s
Receiving objects:  67% (406881/607285), 356.40 MiB | 22.41 MiB/s
Receiving objects:  68% (412954/607285), 356.40 MiB | 22.41 MiB/s
Receiving objects:  68% (418053/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  69% (419027/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  70% (425100/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  71% (431173/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  72% (437246/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  73% (443319/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  74% (449391/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  75% (455464/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  76% (461537/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  77% (467610/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  78% (473683/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  79% (479756/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  80% (485828/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  81% (491901/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  82% (497974/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  83% (504047/607285), 367.80 MiB | 21.93 MiB/s
Receiving objects:  84% (510120/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  85% (516193/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  86% (522266/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  87% (528338/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  88% (534411/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  89% (540484/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  90% (546557/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  91% (552630/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  92% (558703/607285), 382.33 MiB | 22.49 MiB/s
Receiving objects:  92% (559805/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects:  93% (564776/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects:  94% (570848/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects:  95% (576921/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects:  96% (582994/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects:  97% (589067/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects:  98% (595140/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects:  99% (601213/607285), 396.00 MiB | 23.13 MiB/s
remote: Total 607285 (delta 509791), reused 607285 (delta 509791)
Receiving objects: 100% (607285/607285), 396.00 MiB | 23.13 MiB/s
Receiving objects: 100% (607285/607285), 406.64 MiB | 23.37 MiB/s, done.

Checking connectivity... [0:01:50] Still working on:
[0:01:50]   v8
done.
[0:02:00] Still working on:
[0:02:00]   v8
[0:02:09] Still working on:
[0:02:09]   v8
________ running '/usr/bin/python v8/third_party/depot_tools/update_depot_tools_toggle.py --disable' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
________ running '/usr/bin/python v8/build/landmines.py --landmine-scripts v8/tools/get_landmines.py' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-clang-format -s v8/buildtools/linux64/clang-format.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading v8/buildtools/linux64/clang-format...
Downloading 1 files took 13.680810 second(s)
Hook 'download_from_google_storage --no_resume '--platform=linux*' --no_auth --bucket chromium-clang-format -s v8/buildtools/linux64/clang-format.sha1' took 13.74 secs
________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-gn -s v8/buildtools/linux64/gn.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading v8/buildtools/linux64/gn...
Downloading 1 files took 3.876341 second(s)
________ running 'download_from_google_storage --no_resume --no_auth -u --bucket v8-wasm-spec-tests -s v8/test/wasm-spec-tests/tests.tar.gz.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading v8/test/wasm-spec-tests/tests.tar.gz...
0> Extracting 72 entries from v8/test/wasm-spec-tests/tests.tar.gz to v8/test/wasm-spec-tests/tests
Downloading 1 files took 3.576673 second(s)
________ running 'download_from_google_storage --no_resume --no_auth -u --bucket chromium-v8-closure-compiler -s v8/src/inspector/build/closure-compiler.tar.gz.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading v8/src/inspector/build/closure-compiler.tar.gz...
0> Extracting 4 entries from v8/src/inspector/build/closure-compiler.tar.gz to v8/src/inspector/build/closure-compiler
Downloading 1 files took 3.659086 second(s)
________ running '/usr/bin/python v8/build/linux/sysroot_scripts/install-sysroot.py --arch=x86' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
Installing Debian sid i386 root image: /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/build/linux/debian_sid_i386-sysroot
Downloading https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/9e6279438ece6fb42b5333ca90d5e9d0c188a403/debian_sid_i386_sysroot.tar.xz
________ running '/usr/bin/python v8/third_party/binutils/download.py' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_ia32/binutils.tar.bz2...
Downloading 1 files took 3.603731 second(s)
0> Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_x64/binutils.tar.bz2...
Downloading 1 files took 3.640955 second(s)
Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_ia32/binutils.tar.bz2
Extracting /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_ia32/binutils.tar.bz2
Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_x64/binutils.tar.bz2
Extracting /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_x64/binutils.tar.bz2
Hook '/usr/bin/python v8/third_party/binutils/download.py' took 10.59 secs
________ running '/usr/bin/python v8/tools/clang/scripts/update.py' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-344066-1.tgz .......... Done.
________ running '/usr/bin/python v8/build/util/lastchange.py -o v8/build/util/LASTCHANGE' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
Running: gclient root
Running: gclient config --spec 'solutions = [
  {
    "url": "https://chromium.googlesource.com/v8/v8.git",
    "managed": False,
    "name": "v8",
    "deps_file": "DEPS",
    "custom_deps": {},
  },
]
'
Running: gclient sync --with_branch_heads
Running: git submodule foreach 'git config -f $toplevel/.git/config submodule.$name.ignore all'
Running: git config --add remote.origin.fetch '+refs/tags/*:refs/tags/*'
Running: git config diff.ignoreSubmodules all
Previous HEAD position was dc70449... undef min,max macros on windows
HEAD is now at a64db1f... Version 6.7.288.46
________ running '/usr/bin/python v8/build/landmines.py --landmine-scripts v8/tools/get_landmines.py' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-clang-format -s v8/buildtools/linux64/clang-format.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-luci -d v8/tools/luci-go/linux64' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading v8/tools/luci-go/linux64/isolate...
Downloading 1 files took 4.101099 second(s)
________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-gn -s v8/buildtools/linux64/gn.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading v8/buildtools/linux64/gn...
Downloading 1 files took 3.375053 second(s)
________ running 'download_from_google_storage --no_resume --no_auth -u --bucket v8-wasm-spec-tests -s v8/test/wasm-spec-tests/tests.tar.gz.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading v8/test/wasm-spec-tests/tests.tar.gz...
0> Removed v8/test/wasm-spec-tests/tests...
0> Extracting 72 entries from v8/test/wasm-spec-tests/tests.tar.gz to v8/test/wasm-spec-tests/tests
Downloading 1 files took 3.567359 second(s)
________ running 'download_from_google_storage --no_resume --no_auth -u --bucket chromium-v8-closure-compiler -s v8/src/inspector/build/closure-compiler.tar.gz.sha1' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
________ running '/usr/bin/python v8/build/linux/sysroot_scripts/install-sysroot.py --arch=x86' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
Installing Debian sid i386 root image: /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/build/linux/debian_sid_i386-sysroot
Downloading https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/15b7efb900d75f7316c6e713e80f87b9904791b1/debian_sid_i386_sysroot.tar.xz
________ running '/usr/bin/python v8/third_party/binutils/download.py' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
0> Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_ia32/binutils.tar.bz2...
Downloading 1 files took 3.723548 second(s)
0> Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_x64/binutils.tar.bz2...
Downloading 1 files took 3.683810 second(s)
Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_ia32/binutils.tar.bz2
Extracting /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_ia32/binutils.tar.bz2
Downloading /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_x64/binutils.tar.bz2
Extracting /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/third_party/binutils/Linux_x64/binutils.tar.bz2
________ running '/usr/bin/python v8/tools/clang/scripts/update.py' in '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor'
Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-328716-2.tgz .......... Done.

WARNING: 'v8/third_party/depot_tools' is no longer part of this client.  It is recommended that you manually remove it.

WARNING: 'v8/test/wasm-js/data' is no longer part of this client.  It is recommended that you manually remove it.

Beginning compilation. This will take some time.
ERROR at //snapshot_toolchain.gni:101:1: Assertion failed.
assert(v8_snapshot_toolchain != "",
^-----
Do not know how to build a snapshot for //build/toolchain/linux:clang_ia32 on linux x86
See //BUILD.gn:19:1: whence it was imported.
import("snapshot_toolchain.gni")
^------------------------------
ninja: Entering directory `out.gn/libv8'
ninja: error: loading 'build.ninja': No such file or directory
/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/ext/libv8/location.rb:41:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/vendor/v8/out.gn/libv8/obj/libv8_monolith.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
	from /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/ext/libv8/location.rb:40:in `each'
	from /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/ext/libv8/location.rb:40:in `verify_installation!'
	from /home/snake/projects/taxibus2/shared/bundle/ruby/2.5.0/gems/libv8-6.7.288.46.1/ext/libv8/location.rb:26:in `install!'
	from extconf.rb:7:in `<main>'

extconf failed, exit code 1

Hello,
That's an issue with libv8, I'll close this in favour of https://github.com/cowboyd/libv8/issues/272


chore: fix clippy warnings in avm-transpiler

This PR replaces to_string methods with Display trait impls. I've also removed the usage of a deprecated function.

Benchmark results
No metrics with a significant change found.

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit b2a000e5 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,636
180,516
720,036

l1_rollup_calldata_gas
222,468
871,140
3,465,816

l1_rollup_execution_gas
314,955
988,880
3,685,473

l2_block_processing_time_in_ms
1,165 (+1%)
4,392 (+1%)
17,354 (+1%)

note_successful_decrypting_time_in_ms
312 (+1%)
1,003 (+3%)
3,771 (+5%)

note_trial_decrypting_time_in_ms
27.8 (+52%)
32.6 (-68%)
142 (-1%)

l2_block_building_time_in_ms
17,898 (+1%)
70,461
282,391 (-1%)

l2_block_rollup_simulation_time_in_ms
13,116 (+1%)
51,835
208,260 (-1%)

l2_block_public_tx_process_time_in_ms
4,726 (+2%)
18,548
73,885 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
13,948 (-2%)
26,540 (-3%)

note_history_successful_decrypting_time_in_ms
2,441 (-4%)
4,932 (+9%)

note_history_trial_decrypting_time_in_ms
98.3 (+13%)
214 (+2%)

node_database_size_in_bytes
17,313,872
33,050,704

pxe_database_size_in_bytes
29,923
59,478

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
311
44,481
26,193

private-kernel-ordering
195 (+1%)
44,513
14,929

base-rollup
1,405
128,970
881

root-rollup
82.9 (+1%)
4,088
677

private-kernel-inner
416
71,640
26,193

public-kernel-private-input
240
32,615
26,193

public-kernel-non-first-iteration
239
32,657
26,193

merge-rollup
7.73 (+2%)
2,608
881

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
15,575
37,974 (-1%)

Transaction processing duration by data writes.

Metric
0 new commitments
1 new commitments

tx_pxe_processing_time_ms
588 (+8%)
1,228

Metric
0 public data writes
1 public data writes

tx_sequencer_processing_time_ms
0.545 (+8%)
574


Error when provisioning APEX on latest version

The following error appears when provisioning APEX with latest release available (v1.0.3)

In order to make this work, it's required to execute an update fix on DB that looks like this:
begin
apex_instance_admin.set_parameter(
p_parameter => 'IMAGE_PREFIX',
p_value => 'https://static.oracle.com/cdn/apex/VERSION/' );

commit;
end;

Where VERSIONin this case is 21.1.3

Problem is explained on the following blog: https://blogs.oracle.com/apex/post/running-customer-managed-ords-on-autonomous-database-heres-how-to-get-ready-for-apex-211-upgrade


How to get rssi? (TZ-245)

Hello,
I'm not sure how it works, but is there a way to get the RSSI from my esp router/end device?
I created an router with an temperature and humidity sensor, from which I successfully get the LQI value but not RSSI, which my company would need for an field test.
Or maybe do I need the RSSI Location Cluster, which is not implemeted (yet), for this?

Hello,
Are you interested in obtaining the RSSI of an ESP Zigbee device?
Could you kindly share the method you employed to retrieve the LQI?
As of the current version, the RSSI API is not supported. However, there is a workaround available. You can utilize esp_ieee802154_get_recent_rssi() to access the RSSI value of the most recently received frame. It's important to note that this API only provides the RSSI for the latest received frame.
A more refined approach for obtaining RSSI will be introduced in an upcoming version.

Hello @xieqinan,
I didn't directly retrieve it, Home Assistant shows the LQI of the device but not RSSI.

OK, Let me know which kind way you expected to get  getting RSSI value.

I want it to be displayed here.

HomeAssistant successfully displays LQI from the device but always says Unknown for RSSI.

Yeah, it will be good to get RSSI in whole callback functions.

@Tropaion @BogatovT Adding RSSI to all the callbacks doesn't help with this issue.
There should be some tools used to connect the Zigbee device and HomeAssistant APP, could you check where does the HomeAssistant read the RSSI from? Actually I also wondering whether the LQI value is eported by Zigbee device or not.

@Tropaion,

I want it to be displayed here.  HomeAssistant successfully displays LQI from the device but always says Unknown for RSSI.

Regarding this issue, I believe there are two suggestions.
Firstly, please ensure that the ZCL Identify cluster has been created in your endpoint, as the 'diagnose' button is meant for sending identify commands.
Secondly, please ensure the RSSI function is visible as follows:

As a result, the Diagnose control panel will be displayed as follows:

@xieqinan Thank you. Did you test this? Do you have a code example? Because I did the basic implementation of the identify cluster, but I didn't get LQI and RSSI. Maybe there is some mistake in my implementation?

Yes, I have already tested it. You just need to use the HA_ON_OFF_LIGHT as the end device to join Home Assistant, then diagnose it.
Please note to click the RSSI icon to make it visible.

Ok, then I will try it again.

@Tropaion Please reopen if you have any follow up question on this topic.


Add JSON Support to V2 Engine

Description
Add JSON Support to V2 Engine
For example: The following request was handled by V2 engine:
curl --location --request POST 'http://localhost:9200/_plugins/_sql?format=json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
    "query": "select * from location"
}'
{"took":2,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":2,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"location","_id":"1","_score":1.0,"_source":{"center":{"lon":100.5,"lat":0.5},"description":"square"}},{"_index":"location","_id":"2","_score":1.0,"_source":{"center":{"lon":105.0,"lat":5.0},"description":"bigSquare"}}]}}

Issues Resolved
[List any issues this PR will resolve]
Check List

[x] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[x] New functionality has javadoc added
[ ] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I did a small test and there is the difference. Can we omit missed information?
legacy:
{
  "took": 4,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "books",
        "_id": "1",
        "_score": 1,
        "_source": {
          "id": 2,
          "author": "Alan Alexander Milne",
          "title": "Winnie-the-Pooh"
        }
      }
    ]
  }
}

v2:
{
  "_shards": {
    "total": 0,
    "successful": 0,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "hits": [
      {
        "_source": {
          "author": "Alan Alexander Milne",
          "id": 2,
          "title": "Winnie-the-Pooh"
        }
      }
    ]
  }
}

another small test for query
select 1, 1+1, now()
select 1, 1+1, now() from books; // for legacy

legacy
{
  "took": 413,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "books",
        "_id": "1",
        "_score": 1,
        "_source": {
          "id": 2,
          "author": "Alan Alexander Milne",
          "title": "Winnie-the-Pooh"
        },
        "fields": {
          "assign_1": [
            1
          ],
          "now()": [
            "16:36:42"
          ],
          "add(1, 1)": [
            2
          ]
        }
      }
    ]
  }
}

v2
{
  "_shards": {
    "total": 0,
    "successful": 0,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "hits": [
      {
        "_source": {
          "1": 1,
          "1+1": 2
        },
        "fields": {
          "now()": "2023-02-06 16:58:14"
        }
      }
    ]
  }
}

Just some thoughts on our options:

In the response formatter, rebuild SearchHits similarly as what we do in this PR
In meta field support in V2 engine, add _source meta field. Fill original JSON response to each row in OpenSearchIndexScan for later use

Does the getRawResponse() changes in core engine only work for OpenSearch? wonder have we evaluated the 2nd option in https://github.com/Bit-Quill/opensearch-project-sql/pull/217#issuecomment-1421476735 ?

Looks like an integration test might need to be fixed?

@GabeFernandez310 Integration tests are expected to fail here and should pass once https://github.com/Bit-Quill/opensearch-project-sql/pull/237 is merged

In meta field support in V2 engine, add _source meta field. Fill original JSON response to each row in OpenSearchIndexScan for later use

Once my PR goes in, I think this is possible to retrieve the hit's result and store it in the response.  It'll be slightly different for each storage source, but the _source metafield would only be available for OpenSearchIndexes. We could have something similar for Prometheus/Spark

Does the getRawResponse() changes in core engine only work for OpenSearch? wonder have we evaluated the 2nd option in #217 (comment) ?

@dai-chen It does only work for OpenSearch. Currently, the JSON support in V2 will return the raw response from OpenSearch. In memory operations will not be included in the response yet until we have a more concrete idea of what we want/should include in the response. In the case that the user has function calls in their query with json format, the plugin will fall back to legacy and is implemented in https://github.com/Bit-Quill/opensearch-project-sql/pull/237.


fabric cross server kick

if more then 2 people are on the proxy then I get kicked from the fabric server.
here is my error
java.lang.IllegalStateException: Cannot register channel 'indrev:update_modular_level'. Too many channels registered!
at com.google.common.base.Preconditions.checkState(Preconditions.java:590) ~[guava-31.0.1-jre.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer.addChannel(CraftPlayer.java:2101) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCustomPayload(ServerGamePacketListenerImpl.java:3657) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:37) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:15) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1341) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:185) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1318) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1311) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1289) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1177) ~[paper-1.19.2.jar:git-Paper-307]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-307]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
[14:23:29 INFO]: endi0 lost connection: Invalid payload REGISTER!

I updated the other version from last bug report.

This seems impossible to be a fabric issue -- the stacktrace contains references to org.bukkit classes (Spigot/Paper). Are you sure you're using fabric?

Yep 100% Im running fabric here is the full log https://pastebin.com/w9h0gi91

oh i gave the logs from the wrong server  the paste bin is the right one

I gave the wrong log https://pastebin.com/w9h0gi91

Interesting, I'll take a look

@masterblaster221 Hi -- I've done some pretty thorough testing and I think I've fixed this now :)
https://modrinth.com/plugin/huskhomes/version/hIh47Fdr
Please try with the latest.


Logging in loses page state

I don't like the way I have to re-navigate to my page when I log in. You guys should fix that.

This is a duplicate of #234


Button with click event?

Hi
Does this plugin allow creation of buttons that change value of variables?
Thanks!

@yosiasz You can define the onClick event and use replaceVariables function to interpolate variables.
Let me know if it works or not working for you.

@yosiasz Please let us know if it worked or need anything else.


ApiClient methods missing async variants

notably: RequestJWTUserToken, GenerateAccessToken, GetUserInfo, and RequestJWTApplicationToken
All 4 (and overloads) are making http requests but are only offered as sync methods.

Do you have an ETA on moving to async methods?

Hi @bbarry , @epatrick ,
Async variants of above mentioned methods were added with out most recent release.
Marking this issue as completed. Feel free to reopen the same or create a new one in case you find any issue with the same.
Thank You.


Playground save method

Create a save method to set data to local storage with ease in code.

Code optimization instead of save() method.


Wandb server : User setting error - Application Error Unable to reach the backend api. If this perists, check the system logs.

Hi Team,
I am facing an issue while setting up Wandb server on a AWS EC2 machine for a team trial .
Installation and server start:
command : pip install wandb
version : version 0.15.3
start command: wandb server start
using on default port
System details
server and os : AWS Ec2 , os Amazon linux 2
network: private vpc
I opened up localhost:8080 , created a user and went over to System Settings to set up license keys, S3 storage and MysqlDb . I tried all possible options for frontend host : http://<IP_ADDRESS>:8080 and http://<IP_ADDRESS>:8080 . I always keep getting this error
Application Error
Unable to reach the backend api. If this perists, check the system logs

I tried resolving by looking at resolved GitHub issues - No luck

Hi @AJ-ajay-AY, thanks for reporting this! Would it be possible to share the Debug Bundle of your instance so I can have a look at it and see why this error is raising? An admin of the instance can get it from the /system-admin page -> top right corner W&B icon -> Debug Bundle. Feel free to send it to my email<EMAIL_ADDRESS>

Sent on your mail id .

Hi @AJ-ajay-AY, thanks for reporting this! Would it be possible to share the Debug Bundle of your instance so I can have a look at it and see why this error is raising? An admin of the instance can get it from the /system-admin page -> top right corner W&B icon -> Debug Bundle. Feel free to send it to my email<EMAIL_ADDRESS>
Hope you got the email .

I got the same errors, where can i check the system log?

from docker logs
mc: <ERROR> Unable to set 'notify_redis address=<IP_ADDRESS>:6379 format=access queue_limit=10000 queue_dir=/etc/minio/events key=filemetadata' to server. Access Denied. (Prefix access is denied: .minio.sys/config/config.json).

Any progress or movement on this @luisbergua  ?

Hi @AJ-ajay-AY, apologies for the delay on this! Would you mind sending the bundle again? It seems to be an invalid zip file and I'm unable to expand it so cannot check the logs. @twmht you can get the Debug Bundle from the /system-admin page -> top right corner W&B icon -> Debug Bundle. Would you mind sending it to<EMAIL_ADDRESS>

WandB Internal User commented:
AJ-ajay-AY commented:

Sent on your mail id .

WandB Internal User commented:
AJ-ajay-AY commented:

Hi @AJ-ajay-AY, thanks for reporting this! Would it be possible to share the Debug Bundle of your instance so I can have a look at it and see why this error is raising? An admin of the instance can get it from the /system-admin page -> top right corner W&B icon -> Debug Bundle. Feel free to send it to my email<EMAIL_ADDRESS>
Hope you got the email .

WandB Internal User commented:
twmht commented:
I got the same errors, where can i check the system log?

Hi @AJ-ajay-AY! Could you please share the Bundle again? I wasn't able to open the one that I received as the zip file was corrupted

WandB Internal User commented:
sydholl commented:
WandB Internal User commented:
AJ-ajay-AY commented:

Hi @AJ-ajay-AY, thanks for reporting this! Would it be possible to share the Debug Bundle of your instance so I can have a look at it and see why this error is raising? An admin of the instance can get it from the /system-admin page -> top right corner W&B icon -> Debug Bundle. Feel free to send it to my email<EMAIL_ADDRESS>
Hope you got the email .


Thresholds for lines of code per function

@mvankessel-EMC what do you think we should consider for thresholds for low/ medium/ high complexity for lines of code in a function? What about
low complexity: less than 20
medium complexity: 20 to 99
high complexity: 100 or more
This is entirely arbitrary, but I think some simple thresholds would be nice (in a similar way as we have for cyclomatic complexity)

https://github.com/darwin-eu-dev/DependencyReviewer/issues/14

Done.


Ability to declare interfaces for data classes

Drift has the ability to define custom data classes for row entities (@[UseRowClass]), which is fantastic, however...
I have several tables in my db, which conform to a similar schema (i.e, they all have Name, Description, and SortOrder).
I want to be able to write application code, which treats all these tables similarly.
I can achieve this with UseRowClass, and sharing a common superclass, however, by doing that, I need to manually define the entire table (all table fields).
This could be improved, by a declaration somewhere which would essentially say 'when declaring a Data Class of name X, declare that it implements contract Y'.
This could be implemented like this:
/// my manually written interface
abstract class NameAndDescription {
  String get name;
  String get description;
}

/// my manually written interface
abstract class Orderable {
  int get orderIndex;
}

/// tell the code generator to append my manually written interface contracts
@[DataClassContracts([
  'NameAndDescription',
  'Orderable'
])]
// (yes, I use mixins as my table class, rather than classes. @simulous we've started a previous discussion about this, please let this annotation be used on mixins :)
[class|mixin] TodoCategories extends Table {
  static TableField name = TableField(
    jsonKey: 'name',
    swaggerType: 'string',
    getter: (p) => p.name,
  );
  static TableField description = TableField(
    jsonKey: 'description',
    isNullable: true,
    swaggerType: 'string',
    getter: (p) => p.description,
  );
  static TableField orderIndex = TableField(
    jsonKey: 'orderIndex',
    swaggerType: 'integer',
    swaggerFormat: 'int32',
    getter: (p) => p.orderIndex,
  );
}

which would generate this... (note the 2 additional interfaces declared)
class TodoCategory extends DataClass implements Insertable<TodoCategory>, NameAndDescription, Orderable {

I didn't try this, but I'm wondering if it could work for this: We already support extending as an option on DataClassName. So is it possible to do
abstract class CommonDataClass implements NameAndDescription, Orderable {}

@DataClassName.custom(extending: CommonDataClass)
class TodoCategories extends Table {}

Hi @simolus3  - thanks - yes this almost works, couple of caveats....

NameAndDescription needs to extend from DataClass
Probably not an issue, just maybe an unnecessary limitation
The attribute cannot be applied to a mixin
This is the bigger issue - cannot pass multiple interfaces to 'extending', and if you use multiple @DataClass annotations, the generator only honors the last one - ignores the others...


Add barcode to picking list report

can we not generalize this and put it into base ?
if there is a class called barcode, we can make it a code ? and also it is better to pull the js files from CDN


Module build failed: BrowserslistError: Unknown browser major

I am using nuxt-community express-template with<EMAIL_ADDRESS>I updated the nuxt version of the express-template to nuxt 1.4.0 which depends on<EMAIL_ADDRESS>Somehow<EMAIL_ADDRESS>that the latest postcss-cssnext is using may have a bug with<EMAIL_ADDRESS>They does not support one of the query defined in the browserslist of bootstrap:
last 1 major version

An error occurs during nuxt build:
Module build failed: BrowserslistError: Unknown browser major

Remove the last 1 major version from package.json of bootstrap works. Update the autoprefixer in postcss-cssnext to the latest version also works. I guess the problem is between the autoprefixer and browserslist that the later one does not recognize the query.
autoprefixer has to be updated to the newer version to make this work.

For now, I just modify the yarn.lock file to force postcss-cssnext to use<EMAIL_ADDRESS>If you are using npm, you can use shrinkwrap.

Possibly resolved by #445

postcss-cssnext has been deprecated in favor or postcss-preset-env. Read more at https://moox.io/blog/deprecating-cssnext/


Removing schema from CNI providers

Right now we have a very restrictive schema in antrea 1.2.3 .  This can have dangerous, uninteded consequences that can prevent people from upgrading properly - and thus - bring down clusters during upgrade scenarios.
The value of a restrictive schema, during this phase of TCE, for something critical such as CNIs, isnt very high.
https://github.com/vmware-tanzu/community-edition/blob/main/addons/packages/antrea/1.2.3/bundle/config/schema.yaml
And also in calico.

We'd like to keep the CNIs schemaless for backwards compatibility for the time being, since they play a critical role in the upgrade of clusters.

In cases where older versions are being incrementally upgraded, it would be unfortunate for us to have to put data mangling code into TCE required for managing old versions of CNIs... and it would be hard to test all upgrade paths.

Additionally being able to have flexibility to plumb optional features that are undocumented into CNIs has some value in terms of testing bleeding edge components.

Other options
We can put custom code in the controllers for the add ons if we want that are backwards compatible.

per conversation w/ amim, this might completley break TCE so im closing this issue :)


Handling forms.

I think we need to introduce Live::Form to handle form data. Specifically, I think we need a way to handle form data as part of the tag data set. However, we want to avoid serialising that data in a way which makes it difficult to recreate the form. We also want to handle onsubmit too, possibly in a more explicit way.
class Form < View
	def submit(fields)
		# The submit button was clicked, fields was the form data at that time.
	end
end

I'm not sure if we can have an effective fallback to non-WS/JS forms.. if a user has multiple forms on the page, submitting a form shouldn't break the UX for other regions on the page.

#6
@ioquatix


chore: truncate long keys in DiscrTrees

Per discussion on zulip.

I've cherry-picked this on top of #7244 to see if it helps.

... It didn't help :(


Final Merge from Dev into Main

Overview
The final pull from dev into main. After this PR is resolved, all PRs should be built so that they merge into main, per the discussions of the team at the last sponsor meeting 😄 .
@steven-murray if you could run this through its paces and try to break it any way you can, that would be ideal before merging this so that any last issues can be fixed before the project gets moved to the main domain name 😄 .
Also, as a side note, I setup a notification on uptimerobot for api.thehalomod.app so that it would shoot me an email if it ever goes down for some reason. It might be good for you to do that as well if you are interested.
Developer Checklist:

[x] My code has been developer-tested and includes unit tests
[x] I have considered proper use of exceptions
[x] I have eliminated IDE warnings

Thanks @aneuhold. I'll give it a good thorough check ASAP. I am out for the next few days, so probably won't get back to it til next Wednesday.

@aneuhold let me know which things you'd like me to try and tackle, and which things might be best left for future issues. I might have some time on Friday to try a few things out.

@steven-murray
That is a helpful list. Thank you.

During the second to final meeting it sounded like we came to the conclusion that because of the overhead of implementing an initial model on the client side, it would be implemented on the server side only. See this comment for more info on the needs there if it were to be implemented on the client side. Is this something that should be done before it is released? If so, that can be worked on.
The drop-down is admittedly not intuitive in how that functions. This can be worked on as well.
Same goes with the updated x-axis that is compatible.
Yes, that should be easy. If you want to give this one a shot you can.
This sounds relatively easy, personally going to be working on the other things first though. If you want to give this one a shot as well, that would work well 😄
Going to be looking into this first.
Going to be looking into this second.

Thanks @aneuhold. Yes, if you can look at the last two, I'll try looking at 4+5. Neither of these are critical though -- if I can't get to them this week, I say we make them issues and merge. Just the critical ones are needed.
As for the initial model -- it sounds like we have a pre-computed model on the server that we clone to make new models when sent from the client. This makes sense, and is really probably good enough.

I'll looking into 2+3 later this weekend.

@aschnapp already working on 2+3 and almost finished at the moment.

@steven-murray @aneuhold the auto restart is done in #172

@steven-murray the auto-restart was implemented and the server is back up now. Somewhere along the line an SSL dependency was removed from requirements.txt so that was causing some problems with it coming back up.

@aneuhold Aha! Great, thanks!

@steven-murray Hi Steven! Just wanted to check in about this and see if there was anything else that needed to be done before merging into main and deploying it. It seems to be taking a bit longer than expected so if there is something in particular that you want to see done first feel free to bring it up so it can be worked on 😄 .

Just wasn't working on the active issues until it got deployed to make sure that went smoothly first. But if you would rather have those worked on for now that can be done 😄 .

Hi @aneuhold. Thanks for checking up on it. Yes, I essentially get a couple of hours a week at most to work on this, so it's slow from my end. As you know, I worked on one of the checklist items, which is now done (thanks for fixing it up!).
I had another I was going to work on (the "thanks for reporting an error" box). I may be able to try it out tomorrow, but I get the feeling I might not have the time.
However, are the things I marked as CRITICAL fixed up? If those are done, I say we merge now and add the rest as issues for later.

@steven-murray yes sir the ones marked as critical are done. Just checked them off. Didn't realize you could mark checkboxes in other people's comments! Haha and no worries about the time commitment.
Alright, going to merge now then!


Adding an icon while using the Button component will result in the following error. I have not found a solution yet. Is this a bug

Hmm where is Icon imported from?

lucide-react， I follow the same approach as the Taxonomy project. If I remove the icon, it will not report this error


[embedded] Add back the -coff embedded stdlibs for cross-compiling

SwiftDriver/Triple+Platforms.swift:348: Fatal error: unsupported Windows environment: nil

The driver code demands that an environment be specified for a Windows triple that is either cygnus or gnu or msvc or itanium, it seems.

IIUC it should be able to parse it as object format component when environment component parsing fails. I've previously added test cases for this: https://github.com/apple/swift-driver/pull/1558/files

IIUC it should be able to parse it as object format component when environment component parsing fails. I've previously added test cases for this: https://github.com/apple/swift-driver/pull/1558/files

The parsing seems fine, yeah, but then downstream platformName() which we query to determine the toolchain stdlib path is where we hit the error that an environment is required for Windows triples.


Fixed debounced numeric field not updating value from text on blur. Fixes issue #3651

Description
Fixes issue #3651 - Numeric field with debounce interval doesn't apply change when the field loses focus.
Update the value before updating the text formatting on losing focus (on blur) of debounced numeric fields.
How Has This Been Tested?
Unit tests all pass. Also tested via demo in docs.

Checklist:

✔ The PR is submitted to the correct branch (dev).
✔ My code follows the code style of this project.
❌ I've added relevant tests.

No Tests Added

Look good to me @henon?


Are the class for next/back button reversed?

See below, should not the btn-prev for back button, and btn-next for next button? what set now for the default is reversed.
// specify the next button class (if not given it defaults to "btn btn-prev btn-primary btn-lg" which depends on bootstrap)
nextButtonCls: "btn btn-prev btn-primary btn-lg pull-right"
// specify the back button text (if not given it default to "btn btn-next btn-primary btn-lg")
backButtonCls: "btn btn-next btn-primary btn-lg pull-left"

Thanks for picking this up.. you are correct. Does not change behaviour but CSS is mixed up. I will fix this soon.


ignore # ~FC015 syntax does not work with definitions

I got this warning:
FC015: Consider converting definition to a LWRP: ./definitions/default.rb:1
Adding "# ~FC015" to the first line in the definitions/default.rb file did not ignore the warning...

Is FC015 still relevant? https://github.com/acrmp/foodcritic/issues/279 suggests deprecating it, and I'm on board with that. Definitions did not go away, and they do have valid use cases.
@jaymzh @lamont-granquist weigh in?

So as far as this issue is concerned the right way to do it is:
define :multipackage_install do # ~FC015

It doesn't go on the first line it goes on the define line.
I've used this successfully, so know it works.

Lamont, I get this error on your cookbook:
>>> Lint for chef/cookbooks/core/multipackage/definitions/default.rb:

   Error  (FBCHEFFoodcritic) FC015
    Consider converting definition to a LWRP

    >>>        1
               2 # definitions are the right way to do an accumulator pattern
               3 define :multipackage_install do # ~FC015
               4   # @todo make sure package_name and version have the same # of items (unless verison is omitted)
 LINT ERRORS  Lint raised errors!

Yeah, it looks like it has to be on the define line, which has to be the first line of the file after comments are stripped out.  If you drop the first line, I think it does work?
Github needs a :lolwut: emoji.

This definitely does work so there is a workaround:
https://github.com/lamont-cookbooks/sk_sysctl/blob/master/definitions/sysctl.rb#L1

Is this relevant?
# ~FC009
chef_gem 'chef-vault' do
  # ~FC009
  compile_time true if respond_to?(:compile_time) # ~FC009
end # ~FC009

FC009: Resource attribute not recognised: ./recipes/default.rb:19


avoid recreating already deleted dataset

when use p2p type storage backend. we notice that on primary node of deleted dataset. dataset will be created and then deleted constantly.
this exclude already deleted dataset in local_desired_datasets

Thanks for the patch @zhenghc
Unfortunately we no longer test or support this ZFS backend so it's going to be difficult to merge this change.
Can you use one of the block device backends instead?

https://docs.clusterhq.com/en/latest/flocker-features/storage-backends.html

And if not, we'd be interested to learn more about your ZFS use case and about how you plan to use Flocker.

I recreated the problem today and verified that your patch prevents recreation of deleted datasets.
Later this week I'll see if I can add a short unit test for the code.
It should be simple to write a test for the calculate_changes logic without us having to install ZFS build slaves.

https://github.com/ClusterHQ/flocker/blob/master/flocker/node/test/test_p2p.py#L355

Or if you have time to write test that would be greatly appreciated.
Thanks.

@zhenghc I've copied your contribution to another branch (https://github.com/ClusterHQ/flocker/pull/2689) so that I can run it through our build system.
Take a look, test the branch if you can and comment on that PR if you  have any suggestions.


"workaround for bogus errors using sed in OS X" provokes error under linux

I had to revert pull request #64:
This reverts commit dedbd6f007550f2f20bc74da60f390337aa5b61c.
Patch does provoke errors for me. I had to revoke it in my branch.
Here the error message under debian 8 with sed (GNU sed) 4.2.2:
can't read s:<(book|article):<!DOCTYPE \1 [<!ENTITYle or directory...

We can't just revert the change because it would break OSX again. We need to find a way to make this command work on all platforms or use some sort of OS-specific conditional.

I had a look into this again and the PR I opened has a misleading title: I was encountering bogus warnings, not errors, and could successfully generate a target document. If #64 prevents conversion completely on debian, it would make sense to revert but rename this issue to find a POSIX fix for the use of sed.

OK, after trying a few approaches to this problem, this one seems to be the cleanest while still using sed and avoiding the creation of unwanted backup files:
https://github.com/asciidoctor/asciidoctor-fopub/compare/master...bsmith-n4:sed-port
@getreu do you want to test this fix on debian? Branch is found at the following:
https://github.com/bsmith-n4/asciidoctor-fopub/tree/sed-port
thanks

Thanks @bsmith-n4!

@bsmith-n4 : it works for me. Thank you!
@mojavelinux : I wait for your merge into master and will then synchronize my branch with it. Please also have a look in other recent changes, especially -H.


New "Extension"

I have build a Drupal theme base on this project, and it will be nice if we can added in the extension part of the readme.
https://www.drupal.org/project/light_skeleton

We'd love to add your extension here skeletonframework/built-with-skeletonframework


Modify Gecko to load MP3 and JSON files from GitHub or web server Gecko loads from.

Modify Gecko to load MP3 and JSON files for annotation directly from either GitHub or from the let.rmati.ca web server.
Currently a modified Gecko can be run from:
https://let.rmati.ca/gecko
The user can load data files from their local computer only.
How much effort would it take to load files from a data directory on that web server? Even better would be to load from GetHub directly so that latest committed version is always used.
Please investigate viability and report. It may be more work than is worth the effort. Just clear the assignment if this is not something you want to work on.

Modify Gecko to load MP3 and JSON files for annotation directly from either GitHub or from the let.rmati.ca web server.
Currently a modified Gecko can be run from:
https://let.rmati.ca/gecko
The user can load data files from their local computer only.
How much effort would it take to load files from a data directory on that web server? Even better would be to load from GetHub directly so that latest committed version is always used.
Please investigate viability and report. It may be more work than is worth the effort. Just clear the assignment if this is not something you want to work on.

Hi Craig, Do you want any guidance on using Gecko? If so I wrote a few basics in this issue. let-voice/issues/5

Hi Craig, Do you want any guidance on using Gecko? If so I wrote a few basics in this issue. let-voice/issues/5

Hi Craig, Gecko already has the ability to load and save from and AWS S3 storage. The free tier will allow 10GB/mth transfer, which should be enough. Each lecture is only about 25MB for both MP3 and JSON files. I'll work on adding a free S3 account.

Hi Craig, Gecko already has the ability to load and save from and AWS S3 storage. The free tier will allow 10GB/mth transfer, which should be enough. Each lecture is only about 25MB for both MP3 and JSON files. I'll work on adding a free S3 account.

So do you want to put this aside for now? Honestly, given the relatively low number of files we'll be loading and editing, I don't mind a bit of annoyance at app startup time—most of the effort is in the annotation process itself.
I did look at around at the source code a bit. I don't think it would be too hard to add the ability to load from a folder on the host server (don't even bring up a dialog box -- just generate a list of links, one for each file on the server). But I should say that while I have some JS experience, it does extend to full-stack app development or frameworks like Angular.js (or node.js, npm, etc, etc). There are definitely aspects of the programming model that are foreign to me.

So do you want to put this aside for now? Honestly, given the relatively low number of files we'll be loading and editing, I don't mind a bit of annoyance at app startup time—most of the effort is in the annotation process itself.
I did look at around at the source code a bit. I don't think it would be too hard to add the ability to load from a folder on the host server (don't even bring up a dialog box -- just generate a list of links, one for each file on the server). But I should say that while I have some JS experience, it does extend to full-stack app development or frameworks like Angular.js (or node.js, npm, etc, etc). There are definitely aspects of the programming model that are foreign to me.

I did play around with gecko a little bit, and I think I have a basic sense of what I would need to do in practice. There are probably a number of features I haven't discovered yet that would be useful.

I did play around with gecko a little bit, and I think I have a basic sense of what I would need to do in practice. There are probably a number of features I haven't discovered yet that would be useful.

Thanks for looking into that. I Looked into the S3 integration and it's not much help for a basic user. The files to load all have to be put straight into the URL. I do think that we'll just put both the S3 and the web server loading  ideas on hold.
I'm just learning many of these frameworks too.

Thanks for looking into that. I Looked into the S3 integration and it's not much help for a basic user. The files to load all have to be put straight into the URL. I do think that we'll just put both the S3 and the web server loading  ideas on hold.
I'm just learning many of these frameworks too.

Not worth the effort right now.

Not worth the effort right now.


docs: Added a new intro page for configuring external IdPs.

Definition of Ready

[ ] I am happy with the code
[ ] Short description of the feature/issue is added in the pr description
[ ] PR is linked to the corresponding user story
[ ] Acceptance criteria are met
[ ] All open todos and follow ups are defined in a new ticket and justified
[ ] Deviations from the acceptance criteria and design are agreed with the PO and documented.
[ ] No debug or dead code
[ ] My code has no repetitions
[ ] Critical parts are tested automatically
[ ] Where possible E2E tests are implemented
[ ] Documentation/examples are up-to-date
[ ] All non-functional requirements are met
[ ] Functionality of the acceptance criteria is checked manually on the dev system.

Added a new landing page to the External IdP section to give an overview about Social Logins/ Identity Brokering as mentioned in this issue:
https://github.com/orgs/caos/projects/29/views/1?pane=issue&itemId=28765843


Add medit (a.k.a. mooedit) lightweight, themeable text editor with syntax highlighting.

Interesting project you've started. Like the concept. Hope to contribute more. :)

this pull request is accepted thanks alot for contributing

this pull request is accepted thanks alot for contributing


Using the Graph View's Local View in the Sidebar is missing the background

Reported by "Hamster151" in a Discord DM.

Addressed in version 1.1.0


Disable Thumbnail Box upon drag and drop in file explorer.

Description of the new feature / enhancement
The feature to disable the thumbnail box upon drag and drop in File Explorer enhances user experience by streamlining the file management process. When dragging and dropping files within the File Explorer interface, the thumbnail box, which typically displays a preview of the dragged item, will be suppressed. This modification aims to optimize efficiency and reduce visual clutter during file operations.
By eliminating the thumbnail box, users can focus on the task at hand without interruptions caused by unnecessary visual elements. This enhancement is particularly beneficial for users handling large quantities of files or performing repetitive tasks within File Explorer, such as organizing, transferring, or copying files between directories.
Furthermore, the option to disable the thumbnail box provides flexibility to cater to diverse user preferences and workflow requirements. Users who prioritize a minimalist interface or prefer a streamlined file management experience can seamlessly toggle this feature on or off based on their individual needs.
Scenario when this would be used?
Overall, the ability to disable the thumbnail box upon drag and drop in File Explorer represents a user-centric approach to software design, empowering users with greater control over their interaction with the file management system while promoting efficiency and simplicity in file handling tasks.
Supporting information
No response

/feedbackhub


Crash: Roots render Crash with TileEntityOffertoryPlateRenderer

Crash: Roots render Crash with TileEntityOffertoryPlateRenderer
I don’t know what caused it but there is a crash happening with the crash log saying something about the offertory plate renderer
OPlate.txt
https://pastebin.com/CGWQtp1L
Roots-1.12.2-3.0.4.jar
Forge <IP_ADDRESS>38

one of my pals have same issue, appears only if there is something placed on plate, there is his crashlog
https://paste.dimdev.org/himiwamoja.mccrash

I'm looking into it now and aim to have a new release out tomorrow that fixes (at least) this bug and the memory leak with armor.


Create docs and flow diagram for Merra Pipeline

https://github.com/airavata-courses/CloudElves/wiki/Homework-3:-Merra2-Pipeline


fix(auth): proper values returned on auth_decode_ipc_msg errors

Test case for authenticator error -208 IncompatibleMockStatus
Test case for authenticator error -103 when decoding share MData
request for non-existent MData

Resolves #452
Resolves #454
@joshuef @bochaco I'm unable to properly test 2 new cases, see auth.spec, because they both output a -1 ERR_ENCODE_DECODE_ERROR. I need to think about what I need to do to properly include these tests.
Also, I've decided to simply show an error notification in browser. I don't think there is an easy way to respond to an external app with an error. The errors occur when attempting to decode the auth requests and decoding is needed to be able to then encode a response. I'll continue to think about a solution.
QA:
Easiest way to test this PR would be to:

Run API playground
Initialise app
Pass object to authorise operation and run, where the whole func to be executed as auth should look like:

async () => {

        const authReqUri = {
          uri: 'safe-auth:bAAAAAAEKDQ7DAAAAAAACOAAAAAAAAAAANZSXILTNMFUWI43BMZSS4YLQNFPXA3DBPFTXE33VNZSC453FMJRWY2LFNZ2C4OIAC4AAAAAAAAAAAU2BIZCSA53FMIQECUCJEBYGYYLZM5ZG65LOMQGQAAAAAAAAAACNMFUWIU3BMZSSATDUMQXACAQAAAAAAAAAAADQAAAAAAAAAAC7OB2WE3DJMMCAAAAAAAAAAAAAAAAAAAIAAAAAEAAAAABQAAAABQAAAAAAAAAAAX3QOVRGY2LDJZQW2ZLTAQAAAAAAAAAAAAAAAAAACAAAAABAAAAAAMAAAAAA'
      };

      // Sends autorisation request to authenticator
      try {
        authUri = await safe.authorise(authReqUri);
      } catch (err) {
        return err;
      }
      return `Auth URI returned. Next, back in auth section, pass authUri to loginFromUri.`;
    }

Expect to see an error notification
Same steps for encodedNonExistentShareMDataReq

To QA with external app:

You could use my repo and set forceUseMock to false here, in order to get a -208 error.
To test for error -103, uncomment this block, then replace authUri here, with the shareMDataReqUri variable.

I've taken note of this TODO, however I do think it should be for a separate task as it effects code in Authenticator web app which requires some extra testing to prevent regression.

Hmm. @hunterlester following your instructions I don't see any notification pop up :( on OSX. Will check on linux now

I'm only seeing https://www.dropbox.com/s/d9ds89pafxqpb4w/Screenshot 2019-02-19 12.00.39.jpg?dl=0 on both osx/linux, FYI @hunterlester

@joshuef Ah, I gave bad instructions.
The following object should be passed to authorise:
const authReqUri = {
    uri: 'safe-auth:bAAAAAAEKDQ7DAAAAAAACOAAAAAAAAAAANZSXILTNMFUWI43BMZSS4YLQNFPXA3DBPFTXE33VNZSC453FMJRWY2LFNZ2C4OIAC4AAAAAAAAAAAU2BIZCSA53FMIQECUCJEBYGYYLZM5ZG65LOMQGQAAAAAAAAAACNMFUWIU3BMZSSATDUMQXACAQAAAAAAAAAAADQAAAAAAAAAAC7OB2WE3DJMMCAAAAAAAAAAAAAAAAAAAIAAAAAEAAAAABQAAAABQAAAAAAAAAAAX3QOVRGY2LDJZQW2ZLTAQAAAAAAAAAAAAAAAAAACAAAAABAAAAAAMAAAAAA'
};

aha, right. I'll update the original comment to include full code for this.
Looking good now on osx

This has been placed atop the #598, so merging that PR will close this one. (And that ideally will form initial commit after next release)

merged in with #598

Tested with live browser and mock application which @hunterlester suggested, and getting the error -208 IncompatibleMockStatus while authorising, as expected. - first scenario
Tested the live app with live browser after uncommenting the block and replacing auth uri with shareMDataReqUri , which hunter mentioned, it throws -103 error as expected - second scenario


Not all texts in templates are in locale file

When using an existing template for various emails and such, I often dealt with the localization problem. Not all projects I create are in English which means  that if I want to translate headings, I must copy the template to my repository and change it directly in the html. This may be a minor issue but when creating multiple confirmation emails, logins, registration it can get quite annoying.
It would be much easier if all the headings and untranslated pieces of text were taken from the locale file. That way I could edit the locale files not needing to copy the whole template.
Example here. I can't leave the "Sign up" title in a non-english project.
Is there reason why all labels and texts aren't in locale file? If not, I would be happy to fix this issue right away.

Thank you, but we've intentionally decided not to internationalise any of the devise views, see #2820 and the related comments and other issues/PRs for more context.


Network dependent notification endpoints

Context
Notification related endpoints

POST /notifications/devices - not cached at all
DELETE /notifications/devices/{uuid} - not cached at all
DELETE /notifications/devices/{uuid}/safes/{address} - not cached at all

The client gateway should forward the registration to all required services
Open questions

It has to be possible that the signature generated by the client is still valid when the payload is split up for the different services
Currently it is not defined how to indicate on what chain a Safe is, this needs to be adjusted from the current endpoints.

Sub-issues
#455
#454

This endpoint should be chain independant

Which endpoints specifically do you mean?
AFAICT, DELETE /notifications/devices/{uuid}/safes/{address} would need it, so we can identify the safe uniquely.
Additionally, for POST /notifications/devices there seem to be 2 variants in the core services documentation for the model passed in the body. Would you simply add a field to both variants called chain_id: String ?
I am not sure I see a way to make all 3 endpoints network independent.

The dependency for the chain id should not be in the url, but in the post data. It should be possible to register and delete multiple devices/ safes for multiple chains at once.
We should also evaluate if we need all three of these endpoints

This is issue is now duplicated by #454 and #455


Question: validation set size, how many epochs to train?

What is the recommend size of the validation set for a data set with 22000 wav files?
How many epochs/iterations to train for a feasible result? How many epochs did you train the model used on the demo site?

@domcross Ideally, validation size is 5 % of your total data point but vocoder  performance usually subjective to listening only so 5 to 10 number of files would be fine. I generally use 5 files as validation.
Make sure batch size should always 16, and training around 800k step (around 600 epochs ) starting giving good results.

Thanks.


"Big new design" for nowcasting_dataset

Detailed Description
Over the last few weeks, we've come up with a bunch of ideas for how to simplify nowcasting_dataset.
This issue exists to keep track of all of those "new design" issues and to discuss how these individual issues hang together into a single coherent design; and to discuss how to implement this new design in a sequence of easy-to-digest chunks :)
Here are the main issues which relate to this new design:

[ ] #211
[ ] #209
[ ] #202
[ ] #166
[ ] #86

And here are some other issues which are mildly related:

[ ] #212
[ ] #208
[ ] #204
[ ] #97
[ ] #48
[ ] #25

A bit more context
I think I've made our lives far harder than they need to be by trying to support two different use-cases:

Loading training data on-the-fly from multiple Zarr files during ML training; and
Pre-preparing batches.

I think we can make life way easier by dropping support for use-case 1  :)
Here's the broad proposal that it'd be great to discuss:
We drop support for loading data directly from Zarr on-the-fly during ML training (which we haven't done for months, and - now that we're using large NWP images - it would be far too slow).  nowcasting_dataset becomes laser-focused on pre-preparing batches (just as we use it now).
This allows us to completely rip out PyTorch from nowcasting_dataset (#86); and enables each "modality" to stays in a single data type throughout nowcasting_dataset (#209).  e.g. Satellite data stays in an xr.Dataset.  Each modality would be processed concurrently in different processes; and would be output into different directories (e.g. train/satellite/ and train/nwp/) (#202).
Inspired by and making use of @peterdudfield's Pydantic PR (#195), we'd have a formal schema for the data structures in nowcasting_dataset (#211).
The ultimate aim is to simplify the code (I'm lazy!), whilst keeping all the useful functionality, and making the code easier to extend & maintain :slightly_smiling_face:
Of course, we'll still use a pytorch dataloader to load the pre-prepared batches off disk into an ML model.  But that's fine; and should work in very a similar (maybe identical?) fashion to how it works now :slightly_smiling_face:
I certainly can't claim to have thought this all through properly!  And everything's up for discussion, of course!

Great work @JackKelly putting this all together. I think this will be super useful at making a really solid base for our ML learning problems we are trying to solve.
I'm slightly biased by 1. , but yea I would do 1. first. #195
2. #202 then is a good next logic step. I would be tempted to split this into two tasks.
A. Change current save to netcdf to save several files. B. Change core code sot hat it can run in different processes. Doing A, first will allows us to remake datasets more easily, and just copy the ones that are the same from previous versions.
3. 4. Perhaps this can be done at the same time. I feel like doing #209 first gives us a quicker win, and makes things simpler.
5. Then #211 will be a nice bonus on the end.
I'll just share my thoughts on how #209 can be done, that allows data to end up as numpy / tensor values

I love the idea of re-using stuff!
But, a few thoughts and questions about doing x = Batch(**x) inside forward(x):

Does converting x from a dict to a Batch help make our code more readable?  My expectation is that, within forward(x), x will be a Dict[str, Tensor].  So, as is the case now, we'll be able to write human-readable code like x['satellite'] to get the satellite data.
I'd be a bit worried that this will force PyTorch to move the data from GPU memory (when x is a dict[str, Tensor]), to CPU system memory (when x is a Batch and is being validated by Pydantic), and back to GPU memory for training.  That may slow training down because the PCIe bus is way slower than the GPU's memory bus.
Pydantic's validation logic may slow down the training loop.  I'd advocate for doing all our data validation when we prepare the training batches. Then, during the training loop, we should just trust that the data has already been validated :slightly_smiling_face: .  I agree that's perhaps as not as belt-and-braces as validating the data multiple times, but hopefully it's sufficient to validate the data once (when we pre-prepare the ML batches).

What do you think?

Sure, sounds good, thanks loads for doing the test!  That's super-useful.  (Yay for empirically testing stuff!)  Let's go for it!

Here's a useful method to covert a xr.Dataset to dictionary of torch items

This design looks great to me!
Please do implement this now in a branch other than main.
But, unless I've misunderstood, the code in main (as at stands right now) is incompatible with this design, because, right now, the code in main forces each modality to change data type multiple times as it passes through the code (e.g. satellite data starts as an xarray object, then numpy, then a tensor, and finally into the pytorch DataLoader).  So Pydantic may complain when Batch.satellite stops being an instance of class Satellite(xr.Dataset) and gets turned into a numpy array, for example.  (Or maybe it'll be fine as long as the satellite data is an instance of class Satellite(xr.Dataset) at the time that Batch is instantiated: maybe Pydantic won't notice if the Batch.satellite data subsequently changes to a numpy array?
I plan to rip out the pytorch DataLoader over the next few days.  So, hopefully, by the end of the week the code will be fully compatible with your design!  So, yeah, if you go ahead and implement it in a new branch, while this is on your mind, then hopefully we can merge it later in the week once I've completely finished #86 and have implemented the design I sketched out in https://github.com/openclimatefix/nowcasting_dataset/issues/213#issuecomment-940153782 above :slightly_smiling_face:.
Or have I misunderstood?  :slightly_smiling_face:

Cool beans, all sounds great!  Thank you!  I'm genuinely excited to see nowcasting_dataset really mature and become well-designed and easy to modify - thank you for all your work!


Make sender.dtmf be null for video tracks + shim removeStream.

Description

sender.dtmf should be null for video tracks.
Also shims removeStream so senders don't accumulate after renegotiations.

Purpose
Fix for https://github.com/webrtc/adapter/issues/447 + make it more robust for real use.

LGTM


Consider Scrollable location in text selection drag events

Previously, edge scrolling was incorrect if it caused a Scrollable to scroll.  Our math only considered scrolling the RenderEditable itself, but not a containing Scrollable.  This PR fixes this by taking both into consideration.

Old
New

The problem
Drag gestures in GestureDetector don't consider scrolling that happens during the event, as demonstrated in this dartpad.  Because of this, we have to compensate for the scrolling manually when calculating the selection area during edge scrolling.
The scrolling location is not manually calculated, it's just done via renderEditable.showOnScreen, so we don't have the calculated scroll position anywhere.
Previously, this compensation was done only for scrolling that happens inside the RenderEditable (here).  However, it's also possible that a tall text input in a small Scrollable causes the Scrollable to scroll (example in the issue), not the RenderEditable, and this must be compensated for, too.
The current solution
Grab the scroll position using Scrollable.of(context).position.pixels and use it to compensate for any scrolling when calculating the selection Rect.
Related
Fixes https://github.com/flutter/flutter/issues/102484
Partially fixes https://github.com/flutter/flutter/issues/104500 (desktop only fix)

@Piinks Actually I explicitly need the Scrollable above the EditableText, not inside of it.  Previously we were compensating only for scrolling inside of the EditableText (done here with renderEditable.offset).  This PR aims to compensate for any scrolling happening above the EditableText in the widget tree.  The issue has an example.
I'll see if I can do this in a cleaner way at all.  I'll tag you for re-review.

Oh! Ok, sorry I did not realize. :) So there may, or may not, be an enclosing Scrollable above the TextField. I think in this case then, Scrollable.of if the best approach. Since the Scrollable is outside of the TextField, there is not another way for it to know about it.

Hey @justinmc, is this PR still on your radar?

@Piinks This is ready for review again.  Sorry for the long delay since you last reviewed, but I've now used the Scrollable.of approach and cleaned up the PR.

I tried it and this seems to only fully fix https://github.com/flutter/flutter/issues/104500 on desktop.  I'll update that issue.


Optional Props for Strings

Specific Demand
I'm not sure the solution in #175 quite works for Option<String>.
use dioxus::prelude::*;

#[derive(PartialEq, Props)]
pub struct TextFieldProps {
    #[props(optional)]
    r#type: Option<String>,

    #[props(optional)]
    placeholder: Option<String>,
}

pub fn TextField(cx: Scope<TextFieldProps>) -> Element {
    cx.render(rsx! {
        input {
            r#type: "{cx.props.r#type:?}",
            placeholder: "{cx.props.placeholder:?}",
        }
    })
}

Omitting the :? presents the following error:
`std::option::Option<std::string::String>` doesn't implement `std::fmt::Display`
the trait `std::fmt::Display` is not implemented for `std::option::Option<std::string::String>`
in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead

Leaving it in has this result:

Doing it like this compiles:
pub fn TextField(cx: Scope<TextFieldProps>) -> Element {
    let input_type = cx.props.r#type.clone().unwrap_or_default();
    let placeholder = cx.props.placeholder.clone().unwrap_or_default();

    cx.render(rsx! {
        div {
            cx.props.label.clone().map(|name| rsx!(
                h3 {
                    "{name}"
                }
            ))
        }
        input {
            r#type: "{input_type}",
            placeholder: "{placeholder}",
        }
    })
}

And also renders correctly:

But it's not quite as ergonomic as something that doesn't require me to call unwrap_or_default. Not sure of the best approach here.
There is an additional issue where the following has a macro parsing issue of some sort:
       input {
            r#type: "{r#type}",
            ...
        }

because of this opening brace
invalid format string: expected `'}'`, found `'#'`
if you intended to print `{`, you can escape it using `{{`

Implement Suggestion
I'm not sure the ideal solution for a more ergonomic unwrap_or_default, but the r#type issue I just noticed might be an oversight of some sort.

I think it's caused by the special name r#type

One approach is just deriving empty strings:
#[derive(PartialEq, Props)]
pub struct TextFieldProps {
    #[props(default)]
    r#type: String,

    #[props(default)]
    placeholder: String,
}

pub fn TextField(cx: Scope<TextFieldProps>) -> Element {
    cx.render(rsx! {
        div {
            cx.props.label.clone().map(|name| rsx!(
                h3 { "{name}" }
            ))
        }
        input {
            r#type: "{cx.props.r#type}",
            placeholder: "{cx.props.placeholder}",
        }
    })
}