Union error: "variable '....' of type '....' referenced from scope '', but it is not defined"

We have some code that uses unions, like so:
public interface IUser { }

public class Employee : IUser
{
    public string Name { get; set; }
}

public class UsersContext : IUsersContext
{
    public List<IUser> Users { get; set; } = new()
    {
        new Employee
        {
            Name = "test user"
        }
    };
}

public interface IUsersContext
{
    public List<IUser> Users { get; }
}

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);

        builder.Services.AddCors();
        builder.Services.AddTransient<IUsersContext, UsersContext>();
        builder.Services.AddGraphQLSchema<IUsersContext>(options =>
        {
            options.AutoBuildSchemaFromContext = false;

            options.ConfigureSchema = (schema) =>
            {
                schema.AddUnion<IUser>("user", null);
                schema.Type<IUser>().AddAllPossibleTypes();

                schema.UpdateQuery(queryType =>
                {
                    queryType.ReplaceField(
                        "users",
                        db => db.Users,
                        null
                    );
                });
            };
        });

        var app = builder.Build();
        app.UseHttpsRedirection();
        app.UseRouting();
        app.UseCors(builder =>
        {
            builder
            .WithOrigins("*")
            .WithMethods("POST")
            .AllowAnyHeader();
        });
        app.UseEndpoints(endpoints => endpoints.MapGraphQL<IUsersContext>());
        app.Run();
    }
}

When I execute this query:
{
   users
   {
      ... on Employee
      {
         name
      }
   }
}

I get this exception:
System.InvalidOperationException
  HResult=0x80131509
  Message=variable 'p_Employee' of type 'Example.Employee' referenced from scope '', but it is not defined
  Source=System.Linq.Expressions
  StackTrace:
   at System.Linq.Expressions.Compiler.VariableBinder.Reference(ParameterExpression node, VariableStorageKind storage)
   at System.Linq.Expressions.Compiler.VariableBinder.VisitParameter(ParameterExpression node)
   at System.Linq.Expressions.ParameterExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)
   at System.Linq.Expressions.MemberExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitMemberBinding(MemberBinding node)
   at System.Linq.Expressions.ExpressionVisitor.Visit[T](ReadOnlyCollection`1 nodes, Func`2 elementVisitor)
   at System.Linq.Expressions.ExpressionVisitor.VisitMemberInit(MemberInitExpression node)
   at System.Linq.Expressions.MemberInitExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)
   at System.Linq.Expressions.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes)
   at System.Linq.Expressions.Compiler.VariableBinder.VisitLambda[T](Expression`1 node)
   at System.Linq.Expressions.Expression`1.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)
   at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
   at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)
   at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
   at System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)
   at System.Linq.Expressions.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes)
   at System.Linq.Expressions.Compiler.VariableBinder.VisitLambda[T](Expression`1 node)
   at System.Linq.Expressions.Expression`1.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)
   at System.Linq.Expressions.Compiler.LambdaCompiler.Compile(LambdaExpression lambda)
   at System.Linq.Expressions.LambdaExpression.Compile()
   at EntityGraphQL.Compiler.ExecutableGraphQLStatement.<ExecuteExpressionAsync>d__32.MoveNext() in EntityGraphQL\Compiler\GqlNodes\ExecutableGraphQLStatement.cs:line 244

The error message appears to be similar to #239, but the repro steps are different.
This was tested with commit 099aad8cdb3b6c8f4dbc4b17b4727ba408dfb0f3

i have a feeling the implementation doesn't like only querying for a single type, in the method MakeSelectWithDynamicType i defaulted back to the old code is validTypes < 2.  Was for a mix of performance/safety reasons but I clearly missed this case.
Can you try add a second fragment type ?

@bzbetty Oooo, indeed, adding a second fragment type to the query makes the error go away! 🙂

what happens if you also ask for typename?
{ __typename users { ... on Employee { name } ... on Owner { id } } }

Have a look at TestAutoUnion seems to be a basic working sample?
I thought I'd used Unions in my codebase somehwere, i'll have a dig tomorrow.

Actually is this the same field vs property serialization issue you had in #263 ?

Shouldn't be the serialisation issue if running the above code as that is using the MapGraphQL extensions which sets that up.

@bzbetty  I thought this might be a field serialization issue, too (since indeed, I just messed that up, haha 😆), but as @lukemurray says, in this example, I'm using AddGraphQLSchema().

What version are you running against? if I use your sample app against 4.0.1 i get quiet a different error

@bzbetty  I'm running against commit https://github.com/EntityGraphQL/EntityGraphQL/commit/099aad8cdb3b6c8f4dbc4b17b4727ba408dfb0f3 🙂

oh interesting, my error seems to be due to not wrapping the sample app in a namespace - that's really confusing!

If I do the following instead of passing the query via http it seems to return the value correctly.
                    var gql = new GraphQLCompiler(schema).Compile(@"
query {
   users {
      __typename
     ... on Employee { name },
    ... on Owner { id }
   }
}");
                    var context = new UsersContext();

                    var qr = gql.ExecuteQuery(context, null, null);
                    int i = 0;

with a breakpoint in DefaultGraphQLResponseSerializer i can confirm the data is on the object, it's just not serialized for some reason.

potentially related https://github.com/dotnet/runtime/issues/31742

also this https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism?pivots=dotnet-6-0 - although I'm not seeing a fix

@bzbetty Very interesting... and unexpected! 🙂
I guess in our case, the solution is simple: Use the Newtonsoft serializer, which is actually what we're using anyway... I just used the System.Json serializer in the example, since that lead to a shorter repro.
I does look like .NET 7 supports polymorphic serialization, but... ya... that'd required apps to be running .NET 7: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism?pivots=dotnet-7-0
It look like we uncovered three bugs within this thread, haha.

BTW, I can confirm that this works fine when using the Newtonsoft serializer 🙂

@Bosch-Eli-Black would you mind double checking against the master branch? Want to make sure there is not an edge case we have missed. Thanks

@lukemurray I'm afraid that made it a bit worse, haha 😄
Code
using EntityGraphQL.AspNet;

namespace Example;

public interface IUser { }

public class Employee : IUser
{
    public string Name { get; set; }
}

public class Owner : IUser
{
    public string Id { get; set; }
}

public class UsersContext : IUsersContext
{
    public List<IUser> Users { get; set; } = new()
    {
        new Employee
        {
            Name = "test employee"
        },
        new Owner
        {
            Id = "1111"
        }
    };
}

public interface IUsersContext
{
    public List<IUser> Users { get; }
}

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);

        builder.Services.AddCors();
        builder.Services.AddTransient<IUsersContext, UsersContext>();
        builder.Services.AddGraphQLSchema<IUsersContext>(options =>
        {
            options.AutoBuildSchemaFromContext = false;

            options.ConfigureSchema = (schema) =>
            {
                schema.AddUnion<IUser>("User", null);
                schema.Type<IUser>().AddAllPossibleTypes();

                schema.UpdateQuery(queryType =>
                {
                    queryType.ReplaceField(
                        "users",
                        db => db.Users,
                        null
                    );
                });
            };
        });

        var app = builder.Build();
        app.UseHttpsRedirection();
        app.UseRouting();
        app.UseCors(builder =>
        {
            builder
            .WithOrigins("*")
            .WithMethods("POST")
            .AllowAnyHeader();
        });
        app.UseEndpoints(endpoints => endpoints.MapGraphQL<IUsersContext>());
        app.Run();
    }
}

Query
{ users { __typename, ... on Employee { name } ... on Owner { id } } }

Result
[
    {
        "key": "data",
        "value": [
            {
                "key": "users",
                "value": [
                    {},
                    {}
                ]
            }
        ]
    }
]

Tested with d65435fcfae85ac931f3f73b9f894fe0138dee3d

PR should now return
{
  "data": {
    "users": [
      {
        "name": "test employee",
        "__typename": "Employee"
      },
      {
        "id": "1111",
        "__typename": "Owner"
      }
    ]
  }
}

@bzbetty Thanks!
Will test tomorrow, God willing 🙂

@bzbetty and @lukemurray It works! Thank you! ^_^
I've confirmed that both bugs that were discovered in this issue have been fixed 🙂

https://github.com/EntityGraphQL/EntityGraphQL/issues/264#issue-1397293409
https://github.com/EntityGraphQL/EntityGraphQL/issues/264#issuecomment-1275635180

Thanks again! 🙂


Swift 2 Xcode7beta6 - Swift.join

Getting a compiler error that join is unavailable and to use joinWithSeparator() method on the sequence of elements instead. Will make a pull request that fixes one instance but couldn't figure out how to fix the following without casting.
    /// Joins the elements in the array to create a concatenated element of the same type.
    ///
    /// :param array The array to join the elements of.
    /// :param separator The separator to join the elements with.
    /// :return Joined element from the array of elements.
    public class func join<T: RangeReplaceableCollectionType>(array: [T], separator: T) -> T {
        return Swift.join(separator, array)
    }

http://github.com/ankurp/Dollar.swift/pull/176

This is now removed in https://github.com/ankurp/Dollar.swift/pull/179


[Website] Filter Documentation by Schema Version

It's probably a lot of work to do, but it would be very helpful to be able to filter the schema documentation by a maximum AdaptiveCards version.
For instance, I do a lot of work with Microsoft Teams, which still only supports 1.0 properties and elements, so I really only want to see the docs on the bits and pieces that will work with that version of the spec.

URL: https://adaptivecards.io/explorer/

Thank you for the feedback on this! That's a great suggestion worth adding to the Schema Explorer.
We are actually working on adding a Version Selector to the Designer in PR #3508. This drop-down will update the Toolbox and Properties based on the version selected.

Hopefully we'll have this rolled out within the next month or two.


Failed to build riscv-gcc

Hello, I'm trying to build RISC-V GCC using the command make tc-riscv-gcc in the Spatz root directory, but I encountered the following errors:
/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/../include/libiberty.h:349:44: error: invalid application of 'sizeof' to incomplete type 'hardwire_ttystate'
 #define XNEW(T)   ((T *) xmalloc (sizeof (T)))
                                            ^

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/ser-unix.c:181:37: note: in expansion of macro 'XNEW'
   struct hardwire_ttystate *state = XNEW (struct hardwire_ttystate);
                                     ^~~~

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/ser-unix.c: In function 'void* hardwire_copy_tty_state(serial*, serial_ttystate)':

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/../include/libiberty.h:349:44: error: invalid application of 'sizeof' to incomplete type 'hardwire_ttystate'

 #define XNEW(T)   ((T *) xmalloc (sizeof (T)))
                                            ^

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/ser-unix.c:195:37: note: in expansion of macro 'XNEW'
   struct hardwire_ttystate *state = XNEW (struct hardwire_ttystate);
                                     ^~~~

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/ser-unix.c:197:3: error: invalid use of incomplete type 'struct hardwire_ttystate'
   *state = *(struct hardwire_ttystate *) ttystate;
   ^~~~~~

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/ser-unix.c:89:13: note: forward declaration of 'struct hardwire_ttystate'
      struct hardwire_ttystate * state);
             ^~~~~~~~~~~~~~~~~

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/ser-unix.c: In function 'int hardwire_noflush_set_tty_state(serial*, serial_ttystate, serial_ttystate)':

/home/Workspace/hardware/PULP/spatz/sw/toolchain/riscv-gnu-toolchain/build/../riscv-binutils-gdb/gdb/ser-unix.c:217:28: error: aggregate 'hardwire_ttystate new_state' has incomplete type and cannot be defined
   struct hardwire_ttystate new_state;
                            ^~~~~~~~~

Environment:
OS: alamlinux8.8
GCC/G++: 11.2.0
make: 4.2.1

since like a gdb issue


batch size support

Should query batch size from user (new selector at the right panel) and pass it to net

The PR https://github.com/dividiti/crowdsource-video-experiments-on-desktop/pull/26 adds it.

The PR is merged - closing this issue.


After "Save As", status bar filename has unsaved asterisk until next save

Using 0.209.0 on Windows 7 Pro 64-bit, every time I use Save As (on plain text files, anyway), just after the operation completes the new file's name in the statusbar has the "unsaved asterisk" suffixed:

The asterisk disappears after I make further modifications to the buffer and save the file.

This no longer occurs for me in 0.210.0.


Homebridge starts automatically, but HomeKit can't see it. I have to killall home bridge & restart

Homebridge starts automatically, but HomeKit can't see it. I have to killall home bridge & restart.
Can anyone comment? I've gone the plist route, which was way too complicated for a simple add something to your System Preferences, Users & Groups, me, Login Items, +.
It starts automatically, I can see the terminal session running when I logon, but HomeKit doesn't see it.
Thoughts?

I'm having the same issue but rebooting doesn't seem to change anything. It was working when I first set it up but now it isn't.

Same here


Animeflix

Source name
AnimeFlix
Source link
http://animeflix.live
Source language
en
Other details
I wish that you could add this site to the app, It has no hentai.
it has many servers some of them have multi sub and also some of them uses crunchy an the other domain is animeflix.icu
Thank you!
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a title with source name.
[X] I have checked that the extension does not already exist on the website extensions list or the app.
[X] I have checked that the extension does not already exist by searching the GitHub repository and verified it does not appear in the code base.
[X] I will fill out all of the requested information in this form.

Would be good, current extension isn't even working...

Would be good, current extension isn't even working...

What do mean by "current extension" since there isn't any extension for animeflix.live?

Oh it's not the same site, but same name...

Yes they're two unrelated sites that just so happen to share the same name. If you have any problems with the existing animeflix, then create a new issue about it.


Where is advanced_task_guide.md

In docs/new_task_guide.md there are two references to docs/advanced_task_guide.md, but I can't find such file.

Hi! This file has been renamed to task_guide.md. I've updated the docs to point to this instead in #1348 .


Add replication commands

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Merci Damien... Je regarde ça ASAP


exec: "--port": executable file not found in $PATH: unknown

Using this docker-compose as my test/example:
---
version: "3"
services:
  lazytainer:
    container_name: lazytainer2
    environment:
      - PORT=8080
      - LABEL=lazytainer
      - TIMEOUT=30
      - MINPACKETTHRESH=10
      - POLLRATE=1
      - VERBOSE=true
    image: "ghcr.io/vmorganp/lazytainer:master"
    ports:
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
  ytdl:
    command: --port 8080
    container_name: youtube-dl
    depends_on:
      - lazytainer
    environment:
      - MY_ID=dbtech
      - MY_PW=password
    image: modenaf360/youtube-dl-nas
    labels:
      - lazytainer.marker=lazytainer
    network_mode: "service:lazytainer"
    volumes:
      - "/home/docker/YouTube:/downfolder"

I end up getting this error message:
Pull complete ytdl
Pulled Container lazytainer2
Creating Container lazytainer2
Created Container youtube-dl
Creating Container youtube-dl
Created Container lazytainer2
Starting Container lazytainer2
Started Container youtube-dl
Starting Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--port": executable file not found in $PATH: unknown

I've tried other containers as well with similar results. Is there a reason for this and can it be fixed easily for better compatibility?

This looks like a misconfigured YouTube dl. Referencimg their documents, it looks like you should be using the environment variable APP_PORT to configure the port rather than command.

Glad you were able to get it working. Closing this since it doesn't seem to be an issue with lazytainer.


Wrong navlink gets active class and animated scrolling

Hi,
I have implemented angular-scrollspy and it works pretty well. However I still have one problem:
When I click a navigation link it scrolls to the correct section but it seems like it scrolls just before the start of this section so the navigation link of the previous section is highlighted/gets the active class.
Also there are no scroll animations. Is there a good way to have the actual scrolling animated?
Thanks and best regards!

Hi @JonasJW currently this library does not have the functionality to scroll to an element. For scrolling functionality I would recommend using the browsers native window.scrollTo() with behavior: "smooth" option. See example here


RFE: Tool / Check should provide suggested remediation

Currently, a check indicates a simple pass/fail with confidence. For a developer, this does not actually help them know how they should improve the situation. Checks should provide a suggested remediation on how to fix or improve.

You want to propose some recommendation in the doc, maybe https://github.com/ossf/scorecard/blob/main/checks.md ?

@inferno-chromium I would argue it should output in the tool itself. If there is consensus on that I will try to work on a small PR to get it started.

Yes i meant show the link in tool and improve documentation.

Yes, makes sense to me. I think having the remediation content itself live on some website with a short summary and links in the tool makes sense.
Some of the guidance could be multiple paragraphs or longer, which could be hard to read in a terminal.

closing this to track it via #304


baked navigationmesh is incomplete

Godot version
4.0.3.stable
System information
Windows 11, CPU: 1th Gen Intel Core i7-11700F,  Renderer: Forward+, GPU: NVIDIA GeForce RTX 3060
Issue description
using NavigationRegion3D, the baked navmesh for a 'mountain terrain' is incomplete,
the navmesh cannot cover all area, even if 'agent max slope'  set to 90 degree.
otherwise, some area is wired, see blow picture.

Steps to reproduce
1.open project
2.open res://terrain/nav.tscn
3.bake navmesh using $Node3D/NavigationRegion3D
4.incompleted navigation area
Minimal reproduction project
minimal reproduction project
testnavmesh.zip

Adjust the properties on the NavigationMesh to your terrain.
The agent slope is just one parameters of many that affect the result.
Your terrain needs to go through a voxelization stage in the baking process where vertices get mapped to a voxel grid the size of your cell size and cell height. If the cells are too large the elevation differences between the voxel cells will be too much to count as traversable.
In general, even if the baking would not fail on the slopes, your terrain mesh looks way to complex around them to gain any reasonable navigation pathfinding performance out of it. Consider excluding that entire part and / or the use of a more simplified representation of your level as the source geometry for baking navmesh. Prefer collision shapes over visual meshes as the source geometry for the baking as those are faster and already more simplified compared to visual meshes.

so i should use a smaller cell_size/cell_height? godot will crash.😫
maybe i can split into small chunks and bake for each chunk.

If the baking crashes because ReCast runs out of memory that is also a clear hint that the source geometry is too large and complex for a single navmesh. Under such conditions, even if the baking would not fail, the resulting navmesh would be unusable for pathfinding performance.
Another possibility is that the terrain mesh is scaled so the real voxel grid ends up way larger than you think.

does cell_size corresponds to face size in blender? e.g. 1000x1000 plane subdivided to 10000 faces, then cell_size is 100.

The voxel grid size is determined by the Godot world dimensions of your mesh at scale 1.0.
A world unit in Godot is 1.0 meter and the default cell_size and cell_height is 0.25.

i have slowdown terrain, and use mesh->create navigation mesh on editor menu, result cover area perfectly. what's difference with NavigationRegion3D bake?

Create from Mesh only copies the vertices and indices to the NavigationMesh with zero validation if the data makes any sense.

Create from Mesh option only copies the vertices and indices from the visual Mesh to the NavigationMesh with zero validation if the data makes any sense for navigation and pathfinding.

is there any risk using Create from mesh, unavailable pathfinding or stuck or anything else?

Depends on your mesh.
In case of your currently used mesh it lacks any consideration for agents so everything will clip and move where it is not supposed to be, it will properly cause a lot of navigation map synchronization issues due to a mismatch of cell layouts, and it is  also poorly optimized e.g. look at the valley section, it is basically turned into a navigation grid with hundreds of grid cells what could be a single polygon. That will really tank the pathfinding performance.

If there are no further questions I think we can close this issue.


[data-poll-manager] fix unexpected interval

During test, it is noticed that when SED need to send Child Update Request after attach, the data poll after Child Update Request always happens to quickly (<=5ms, as seen from the highlight packet 126 in the pcap screenshot), however in fact we are expecting this data poll sent out about 100ms later after Child Update Request.

The root cause lies in the data poll manager - the design is to count the time elapsed when reconfigure the running poll timer. However if the new poll period is less than the time elapsed, it would fire immediately.
In our test situation, the external poll period is 3000ms,

SED attaches successfully when received Child Id Response at T0 (70.620606s).
the poll timer should fire at Tnext (T0 + 3000ms) next time for keep-alive.
SED sends Child Update Request at T1 (70.746827s), and want to send data poll 100ms later (kAttachDataPollPeriod 100ms), however the time elapsed (T1 - T0) =  0.126221s, i.e. 126ms, which is larger than the expecting poll interval 100ms.

Here updates the timer base to current time if the time elapsed is larger than the poll period expected.

@abtink , would you please help to share your thought on the design of taking the time elapsed into account?

good catch!

@librasungirl , the current code which takes into account any previous elapsed time when starting the timer is indeed part of design and I believe it is needed/essential.
Application layer can control poll interval very frequently (in our internal projects, we actually do this). If every time a new (shorter) interval is requested we start the timer from current time, we could possibly not send any data polls for a while (this can happen if user keeps requesting shorter and shorter intervals which is actually a common pattern).
I am not sure if this is a bug in the situation you mention. The difference I see in behavior with existing and new code in this PR would be as follows:

After request for 100ms poll interval, the existing code would send a data poll immediately followed by another one 100ms later.
The new code in this PR  would not send an immediate poll and only one after 100ms.

Sending and extra data poll should not impact the "Child Update Request" behavior.

@abtink , thanks for sharing your thoughts. Yes, no big unacceptable impact under above example situation.
However from Thread's behavior's perspective, it looks a little abnormal and unexpected. And in some scenarios, depending on randomization of the backoff,  the parent may retransmit up to 10+ times before successful delivery, i.e. the channel would be occupied during retransmission.
As currently application layer may only control data poll interval through mExternalPollPeriod, here we use one flag to indicate the data poll triggered by core and update the time base for such data poll when start poll timer.
Please help to review it again and share your inputs if any. Thanks.

@librasungirl , I am not sure if about the new model.
Here is what I see: For the "Child Update Request", in both existing and new code, there will be a data poll tx after ~100ms (which is the data poll where the parent would indicate it has a pending frame and a frame would be delivered). The only difference is whether we will have an extra immediate data poll or not.
However, this change can impact the user given interval. I think we should aim to always honor the poll interval requested by user (meaning we send at that interval or faster). Consider this scenario:

User wants data poll rate of 150ms
140ms has passed since last data poll, and at that time core code calls SetAttachMode(true) to set attach mode (requesting 100ms poll interval)
With new code, we would start the timer from that time for 100ms later, which would mean the next poll would go out 140+100 = 240ms after the previous poll was sent (thus not honoring the user's request of 150ms poll interval).

@abtink , in fact, the difference is not only whether we will have an extra immediate data poll or not, but also whether the parent would keep retransmitting (up to 16 by default) or not. What trying to be resolved here is to eliminate the meaningless retransmission attempts from the parent which would occupy the channel resource in the existing model.
Agree that the corner case you mentioned above may have chance to happen in the new model.
Here are some questions for the user's typical transactions - would the user always expect the response in XXX ms resolution? and such additional 100ms(or 188ms) delay is not acceptable?
If the answer is yes, for existing data poll management model, another possible option to avoid meaningless retransmission from parent is to delay the response (Mle Child Id Response/Child Update Response/ Data Response) maybe 10ms? Thus if data poll comes quickly after the request within 10ms, the parent won't try to deliver the response until next poll after 100ms later.
Or do we prefer accept such meaningless retransmission attempts and keep it as is? @abtink @jwhui

@librasungirl, first let me say I appreciate it that you are trying improve and fix the code. I agree that there are always room for improvements and doing things in a better and more efficient way.
Let me go into details about this a bit more. Please feel free to correct me if I miss something.
I understand your point and concern about the parent's behavior and its wasteful retransmissions.
First, about 16 retransmission, if I am not mistaken, you are referring to the retx number we commonly use internally.  We use 16 for direct tx attempts, but the frames from the parent to SED in this case would be indirect tx and we have a different number of attempts for direct vs indirect (OPENTHREAD_CONFIG_MAC_MAX_FRAME_RETRIES_INDIRECT is for indirect which is zero by default and I think we use 1 internally,  meaning we will have total of two indirect frame attempts per data poll).
Still, I agree that having two extra tx from parent is not good and ideal and if we can improve this, we should.
The root of this, in my opinion and as you pointed out, is in how we handle data polls on parent and how we prepare the indirect tx:

On the parent, at the time the radio receives the data poll frame, we don't yet have a message for this child so the radio sends an ack with "frame-pending" bit being clear.
This in turn causes the SED child to go back to sleep quickly.
But, by the time, the data poll frame is processed/queued on radio driver and is passed all the way up to the OpenThread stack (through MAC and mesh-forwarder layers), we actually do have a message for this child.
At that point, in the mesh-forwarder we prepare the msg for indirect tx and give it to MAC layer.
MAC/radio will retry the frame since they never get ack for the child (since child is already sleep).

The packet capture shows this pattern for the "Child Update Response" but actually it can happen and we have seen it for other messages as well.
I think it'd be great if we can address the root cause directly. To be honest, I don't have a good solution/suggestion for it. I guess, we may need a mechanism from radio driver (platform) to inform us if it did set the "frame-pending" bit in the ack or not, when it passes the received "data poll" frame to OT (this way we can avoid the indirect tx if we know child will be sleep).
I agree that delaying the data poll or the preparation of the response, can address the situation for the "Child Update Response" but I feel a more general solution for how we handle indirect tx would be more valuable.
Related to data poll manager behavior, I think/agree that it may be beneficial if we delay the first data poll tx, whenever the poll interval changes (no matter what triggers the change, internal or external). Let me think a bit more about this to see if there is good/easy way to change this.

@abtink , thanks for your explanation on the retransmissions, indeed I am not sure the configuration in internal project, however here is the traffic I got with our internal project device (parent) and CC2538 (SED), there is up to 10 attempts in this example, which is the motivation for this PR.

Agree with your thought on that introducing a mechanism from radio driver to inform whether or not 'FP' bit in ack is set should be the ideal solution. @bukepo is working on it as in #3785 .
This PR is updated to ensure at least kMinPollPeriod (10ms)  delay to send data poll after triggered either internal or external. Thoughts?

@librasungirl , I don't like that we see so many retx in the capture your posted for indirect tx. Can you please file an issue/bug to investigate this? Either something is incorrect in the configurations or there is a bug somewhere causing this. Either way it'd be good to find out the cause.

@abtink , thanks for your proposal in email. Here just pushed another patch, please have a review. Thanks.


⚠ ClamAV has degraded performance

In b20eff9, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 70 ms

Resolved: ClamAV performance has improved in f176ae2 after 5 minutes.


Sns launch fixes

Updates to the developer commands and structure for SNS docs.
Main changes
Restructured the directory and file names for all things SNS

Added "states" to every step of the SNS launch summary so the reader can see what is changing
Example #1:

Example #2:

Added instructions for downloading and using tools needed

closing this PR


Quickstart example does not work on a Chromebook (Crostini)

Hello, I installed the library with luarocks, but the example in the README does not work. The following code
local djot = require("djot")
local input = "This is *djot*"
local doc = djot.parse(input)
local html = doc:render_html()

yields the error
lua5.4: main.lua:3: attempt to call a nil value (field 'parse')
stack traceback:
        main.lua:3: in main chunk
        [C]: in ?

In an interactive session I see that the table structure is different from what can be found in the Example
> djot = require"djot"
> for k, v in pairs(djot) do print(k,v) end
Parser  table: 0x5c4c8eafefd0
> for k, v in pairs(djot.Parser) do print(k,v) end
add_container   function: 0x5c339792b410
find    function: 0x5c339792b3b0
get_inline_matches      function: 0x5c339792b380
new     function: 0x5c339792b030
build_ast       function: 0x5c339793ad20
render_ast      function: 0x5c339793ad80
issue_warnings  function: 0x5c339793acc0
get_eol function: 0x5c339792b470
render_html     function: 0x5c339793adc0
add_match       function: 0x5c339792b3e0
render_matches  function: 0x5c339793ac50
skip_space      function: 0x5c339792b440
get_matches     function: 0x5c339792b500
finish  function: 0x5c339792b4d0
parse_table_row function: 0x5c339792b060
parse   function: 0x5c339792b4a0
specs   function: 0x5c339792b1b0
> local doc = djot.Parser.parse("This is *djot*")
/usr/local/share/lua/5.4/djot/block.lua:652: attempt to call a nil value (method 'specs')
stack traceback:
        /usr/local/share/lua/5.4/djot/block.lua:652: in field 'parse'
        stdin:1: in main chunk
        [C]: in ?

It still does not work. I also tried out the colon operator to call parse. Help is highly appreciated.

Oh, I'm so sorry. This fork describes how it is done. Thank you anyways.

It looks like you're running old code, which had a different API (the fork also is old).
So, what you tried above should work -- it seems that for some reason you've installed an older version of the code.
Did you install from a recently checked-out git repository?

Oh, I'd forgotten that I'd put a version of djot on the luarocks repository. I'll need to update that!

Thank you very much for replying. I will install the new version. :)

For now just install from source as described at https://djot.net.
It may be a while before I release a new version on luarocks.


SVG icons

Would be nice to offer SVG icons.

Addressed by PR https://github.com/odeke-em/drive/pull/197


which version of caffe do you use?

I'm having endless error while trying to run your code, and I think it is because the version of caffe I'm using doesn't match with your caffe version.
please let me know:)

My current caffe version is '1.0-14-g4efdf7e'

Please refer to https://github.com/raingo/TGIF-Release/blob/master/code/gif2txt-lstm/README.md to get the right caffe version.
Thanks!

Thank you for kind comment, raingo!


ir restore does not work with skinsrestorer

When using inventory rollback while using a custom skin with skin restorer it can sometimes not open the backups menu
So basically it will open the main menu but you cannot open any other menu from there.
https://www.spigotmc.org/resources/skinsrestorer.2124/

also, I am running bungeecord


Typo

And fix typo from https://github.com/google/generative-ai-python/pull/18

Tested: cl/532840386


| - ळ्ह mapping in SLP1

SLP1 has special character | for Vedic retroflex l.
This needs to be captured.
I am afraid to create a PR as I do not understand what all places would require change.
I would also appreciate if you can guide me the places to correct in this case.
That would give me a hands on training for future PRs.

L is for retroflex l (ळ्)।
| is for aspirated retroflex l ळ्ह्।
No other script or scheme AFAIK has a special character for the second case - they just use the corresponding symbols for ळ् and ह् successively. So, mapping to devanAgarI or any other scheme would require Lh to be used.
Just add a special case before https://github.com/indic-transliteration/indic_transliteration_py/blob/0551ff6e2616bdaabd017b42e0e9130ebb910e45/indic_transliteration/sanscript/init.py#L224 . SOmething like:
if _from.startswith(roman.SLP1):
  data = data.replace("|", "Lh")

Also maybe:
if _to.startswith(roman.SLP1):
  result = result.replace("Lh", "|")

Thought of and implemented a more general and elegant way of solving this. (linked above)


🐛 .get() doesn't work with using

Hi, .using returns django QuerySet. For QuerySet.get  the correct way is to specify a field https://docs.djangoproject.com/en/5.0/topics/db/queries/#retrieving-a-single-object-with-get

But when you call ln.Artifact.get you actually call Registry.get implemented here https://github.com/laminlabs/lnschema-core/blob/e306c6b755709307c36e97771e0fc7ca92816556/lnschema_core/models.py#L597
This is the cause of the difference.
I agree this is confusing, maybe we need to make this uniform.

@falexwolf do you think we should change Registry.get?

Yes, we need to homogenize this. Hm. 🤔
I think we can subclass QuerySet.get() to enable the arg call that we want. That'd be a clean solution that will work for Lamin and Django users.

Fixed here:

https://github.com/laminlabs/lamindb/pull/1829


Browse Charges missing temp colors, mileage unit

Missing colored temp text and units for the mileage column
mi

km

https://github.com/jheredianet/Teslamate-CustomGrafanaDashboards/releases/tag/v2024.04.11

https://github.com/jheredianet/Teslamate-CustomGrafanaDashboards/blob/main/dashboards/BrowseCharges.json#L641 should be lengthmi and a decimals 0 property added to match the km definitions at https://github.com/jheredianet/Teslamate-CustomGrafanaDashboards/blob/main/dashboards/BrowseCharges.json#L523

https://github.com/jheredianet/Teslamate-CustomGrafanaDashboards/blob/main/dashboards/BrowseCharges.json#L641 should be lengthmi and a decimals 0 property added to match the km definitions at https://github.com/jheredianet/Teslamate-CustomGrafanaDashboards/blob/main/dashboards/BrowseCharges.json#L523

Thank you, it's fixed on this commit https://github.com/jheredianet/Teslamate-CustomGrafanaDashboards/commit/6b7e20295b085da4a9d7cb7843e1bc29799e2a1a
It will be available in next release soon.


default capacity for P2H needs to be added

This value has to be imported from EtEngine?

@ChaelKruip see above question.

This value has to be imported from EtEngine or filled in the database?

It should be imported from ETE but I'm not sure if it already exists :smile:

but I'm not sure if it already exists

I would assume that it doesn't, since it doesn't get filled in automatically. So maybe a database default would suffice for now?

I would assume that it doesn't, since it doesn't get filled in automatically. So maybe a database default would suffice for now?

:+1: I think we already added its specifications earlier. This comment contains the values: https://github.com/quintel/etdataset/issues/599#issuecomment-98747401

I'm assuming it's the - input_capacity = 2 kW field. :smiley:
I added 2.0 as defaults for the default_capacity field for households_flexibility_p2h_electricity for the etmoses_production and etmoses_staging databases.

I'm assuming it's the - input_capacity = 2 kW field.

:+1:


fix for null scales

#756 changed the test used to determine whether or not a scale exists. This updates Plot.legend to match. Now Plot.legend({color: {}}) throws an error because it does not consider the color scale to be defined (there is neither a type nor a domain). Supersedes #757.

if (isScaleOptions(o) && o.legend) will break a number of tests, such as decathalon. 🤔


EF Core 1.0 RC2: async queries so much slower than sync

One of the features that I have missed in EF6 it was the possibility to use includes with raw quieries. This is possible with EF Core, something like this:
await myDbContext.MyDbSet.FromSql("Select * from Mytable")
.Include(x=> x.Property1.Property2.Property6)
.Include(x=> x.Property3.Property4.Property5)
.Include(x=> x.Property7.Property7)
.ToListAsync();

The problem is that this query it is very slow, about 5 minutes. When I use LinQ the time is slower, much slower, but in my case I wanted to use raw quieries because I want to use the hints of Sql Server to block some rows.
I am using Express Profiler to get the query that EF Core send to Sql Server, and if I run this query in Sql Server Management Studio, it takes just 3 seconds to complete. So the problem it seems to be in EF Core.
Also, with Express Profiler I see that the query makes 370000 reads that takes 310000 seconds (about 5 minutes). But I don't understand this because in SSMS takes 3 seconds this query.
I have tried this query:
await myDbContext.MyDbSet.FromSql("Select * from Mytable")
.ToListAsync();

This takes 3 seconds, but if I try this one:
await myDbContext.MyDbSet.FromSql("Select * from Mytable")
.Include(x=> x.Property1.Property2)
.ToListAsync();

It takes 77 seconds.
With EF6, the same query with all the includes takes 3 secods, and I am using a IQueryable that has to create the t-sql query. I have expected that EF Core would have a better performace than EF6, at least not so bad. The problem with EF6 is that if I want to use the hints of Sql Server I have to do two queries, one with the raw sql to block the rows and another query, with LinQ, to bring the entities to the dbContext and the includes.
Anyway, if I use the same query with LinQ with EF Core, it takes a bit more, about 4 seconds, so it has worse performace.
Really I don't know if I am doing something wrong or EF Core with the includes has worse performance than EF6. And with raw query with includes it is very bad.
I guess that EF Core has problem populating the navigation properties, because really the t-sql that send to the database is very fast, the total time it is very big.
Thanks.

@ComptonAlvaro Can you post the code for the query in EF6? (Given that EF6 does not have FromSql it cannot be exactly the same.)

Ok, in the case of EF Core with raw sql and includes, I missed a condition in the where so with the same conditions in the query with LinQ and includes and raw sql and includes, the time is the same, about 3 seconds. However, with EF6, in this case I only can try LinQ query, and the same includes, the time is about 1.5 seconds.
The code that I am using in EF Core:
First query:
IQueryable<TableA> iqTableA = miDbContext.TableA
	.Include(x => x.TableB).ThenInclude(y => y.TableC)
	.Include(x => x.PropertyA).ThenInclude(y => y.PropertyA-B).ThenInclude(z => z.PropertyA-C)
	.Include(x => x.PropertyB).ThenInclude(y => y.Property-B-B).ThenInclude(z => z.PropertyB-C);

	List<TableA> myLst = iqTableA.ToListAsync();

Second query:
List<TableA> miLst = await miDbContext.TableA
		.FromSql("Select * from TableA")
		.Include(x => x.TableB).ThenInclude(y => y.TableC)
		.Include(x => x.PropertyA).ThenInclude(y => y.PropertyA-B).ThenInclude(z => z.PropertyA-C)
		.Include(x => x.PropertyB).ThenInclude(y => y.Property-B-B).ThenInclude(z => z.PropertyB-C);
		.ToListAsync();

The Query in EF6 is:
IQueryable<TableA> iqTableA = miDbContext.TableA
	.Include(x => x.TableB.TableC)
	.Include(x => x.PropertyA.PropertyA-B.PropertyA-C)
	.Include(x => x.PropertyB.Property-B-BPropertyB-C);

	List<TableA> myLst = iqTableA.ToListAsync();

I think that this is the code that you wanted to see. If I am wrong, tell me and I post the correct code.
Thanks so much for your attention.

@ComptonAlvaro had I had to guess, I would say it's related to this #5808.
Did you check the output SQL queries?

Yes, I have check the two queries and the are the same, and the execute plan is exactly the same. So I gues that the problem is with EF Core, perhaps in the way that it populates the navigation properties.
Because I have tried to separate the query in three simplier queries and the time is the same.

@ComptonAlvaro Just to confirm, you are observing that the time to execute the SQL is the same between EF6 and Core, but the time spent processing the results in EF is slower in Core? Can you run your same experiments with sync instead of async and report the results?

@Anpete
I am doing a few more tests. This is the results.
In both cases, I am using LinQ, not raw sql and includes in the case of EF Core, because I know that the time is the same in both cases.
I have done 2 quieries per case, because the first run, in cold, is a bit slower. Also, with express profiler I can get the sql query time and with a stopwatch in my code I can get the total time.
EF Core sync
First run: query time 531ms; total 5242ms
Second run: query time 408ms; total 546ms
EF Core async:
First run: query time 10151ms; total 14666ms
Second run: query time 9600ms; total 9800ms
EF6 sync
First run: query time 1137ms; total 1472ms
Second run: query time 1133ms; total 1156ms
EF6 async
First run: query time 1504ms; total 1800ms
Second run: query time 1397ms; total 1400ms
EF Core sync is the faster, more than EF6, but in the async version it is the slowest. In the case of EF6, both, async and sync have the same performance. So the work in the sync version of EF Core s very good, but the async version is much worse.
Thanks.

Thanks @ComptonAlvaro. Could you please post the SQL as well?

@ComptonAlvaro would interesting to see the results when taking the SQL and using it with FromSql.
BTW, how many rows are returned by the query?

I have created and application to test EF6 and EF Core. The results are:

I have attached here the source code. You can find a project in .net 4.6.1 in VS2015 and a script to create the tables and insert the data in a Sql Server database.
TestEFCore.zip
I hope this cna help you, anyway, I will help you in all you need.
Thanks so much.

Thanks @ComptonAlvaro!

Here are my numbers running in Release:

And here is output from 10 iterations in an xunit test:
Async Sync:
3834  2355
1408   267
1384   218
1388   217
1372   220
1385   219
1383   221
1385   220
1386   219
1381   229

@anpete interesting stuff.
A. How come the raw SQL is slower?
B. Why the asynchronous version takes several seconds more?

@gdoron RawSQL is about the same, there is some variance between individual runs. Async incurs overhead (async state machine, context switching etc). Investigating to see if there is more we can do here.

Yes, I know that async methods has a little overhead, but as you can see, there is a big difference, 1 second with EF6 and 4 seconds in EF Core.
Really I like to see that in sync method EF Core is very fast, but I would like to be able to use the async methods of EF Core with a better performance than the async methods of the EF6.
From your comment, my capture with results was in debug mode, I forget to do int in realase mode.

@anpete obviously async has some overhead.
It shouldn't be more than a second though!
I would expect it to be on the worse case 100 ms, and even that just for the first run.
Basically it means using async in EF core is an anti pattern.

We'll also call this out as an issue in our release notes for 1.0.0. I think "Basically it means using async in EF core is an anti pattern." is correct, our guidance in general should be to use sync.
Interestingly, the benchmarks we run are showing slow down in async, but nothing as significant as the numbers here, so we should add a case that represents this (I'm guessing it's having a number of includes).

BTW from what we have found it seems like the title should be changed to reflect that this slow down is related to async. Agreed?

@rowanmiller
A. Are there release dates defined for next EF core versions?
B. Would all these performance issue will get solved in the next release?
I wanted to help EF team by using core and provide feedback, but as we get closer and closer to be ready for publishing our website and advertising it, EF core performance issues bother more and more to the extent that I think ditching all the core code and revert to EF 6.
We need to investigate each and every query with a profiler and many times write it raw SQL instead /ADO.
And besides of it being resource consuming, if we'll miss one unoptimized query that returns all of our tables data as we indeed found a week ago, we are ducked.

I wonder what is the source of this async slowdown? @stephentoub
From the compiler side, async method overhead is an extra 36-80 bytes allocated per async call, and an extra 100ns per call. You can reduce this considerably on the typical "hot" path (where all the awaits end up completing immediately) if you switch to ValueTask.
After that, there's the cost that each local variable access in an async method gets transformed into a field access. You can eliminate this by factoring out the inner loops into nested functions that don't touch the closure variables (C#7) or separate functions.
But the perf numbers in this thread are a different order of magnitude entirely. I wonder if these perf numbers are caused by threadpool starvation? (by using Task.Run(...) with a blocking synchronous delegate passed as argument to Task.Run).

"anti-pattern" because of perf issues or is there some other reason why it doesn't make sense to do async anyway? Like because of the layers of dependencies that async/await forces you into and that can mess up the IoC services? Or "it's in EFCore but not as good as we want it yet so for now...stick with sync"? Thanks for any clarity. And really glad to see @ljw1004 jumping in here.

@ljw1004 Thanks for chiming in. I think the biggest thing is that this code path is still using IX-Async, which causes a lot of extra allocation overhead - It doesn't use await and is heavy with closures. We are in the process of fixing this. Once we do, we will be in a better position to start on some of the further optimizations you call out.

@julielerman just the perf issues. Though in general async does have some overhead, so you have to make sure you are actually going to get benefit that outweighs that benefit. In a web scenario, if every request accesses the same database, then you can end up with less throughput using async. If you have a mix of requests that do/don't perform I/O (or hit different I/O sources) then async can increase throughput.

@rowanmiller @julielerman "anti-pattern" seems too strong here. I'm pretty sure this particular case is related to the heavy use of Include. When I remove them, the numbers are much better.

@gdoron sounds like you maybe just want to disable client side evaluation? That way you get an exception when something isn't getting pushed to the database (rather than having it transparently eval on the client).

@anpete agreed, I was just using a quote of a previous comment. I'm thinking more of a recommendation in the docs.

ahh good...anti-pattern was a bit alarming ;)

Update: I have a fix coming that yields a ~70% speed-up for async Include queries.

Very good work, it is a very good starting point, because I guess that now takes about 1400ms, a bit worse than EF6 async.
Thanks for your work.

Just to clarify, this fix won't make it into the v1.0.0 release yeah?

@ctolkien - the milestone says 1.1.0, so I guess not 😞

@ctolkien correct, this will ship in a following release.

@rowanmiller Is there a date for that?
Are you plan on staying on the same release schedule as ASP.NET?

@gdoron yes we plan to stay in-sync with ASP.NET Core and .NET Core, of course that plan may adapt over time depending on what happens in those various technologies

@rowanmiller so basically in core instead of relying on .NET Framework as was in the early versions of EF for the releases, we rely on ASP.NET...

@gdoron there is no technical dependency between EF Core and ASP.NET Core in terms of shipping updated releases. We all intend to ship on a pretty quick and regular cadence and at this stage we plan to keep our releases in-sync. But, given it's not a technical requirement, we'll be evaluating as we go.

One quiestion that I have is this.
This makes EF Core faster than EF6 in async? Because If I don't missunderstood, the problem is with the async part, so the overhead because of async is the same in EF6 than EF Core. So if the problem with the async methods is solved, could I expect a better performance in async EF core over EF6 like EFCore is much faster in sync methods than EF6?
Because @anpete tells that with this sollution he gets about 70% better performance, but this would be a bit worse than async EF6.
Thanks so much.

We've addressed the bulk of this issue. We may do future improvements.

Is there a branch / beta release we can use to leverage this before the Fall/Winter release?
We've just undergone a large migration from EFC1.0 back down to EF6 and this turned out to be one of the major reasons – amongst others (in-memory computations / querying limitations).
 All of our DB queries are async and not using them really is a deal-breaker – ie: one of the core reasons we are on C#/.NET in the first place.
Since migrations don't play nicely amongst the two frameworks we would really prefer to stay on EFCore if at all possible. We would need to be able to leverage this right away if so though – otherwise we will probably revisit an EF6-->EFCore migration again in mid-2017 at the earliest. This migration/experimentation cost was WAY too high for us to get burned this way again.

@marchy someone from the EF team wrote that Rowan is out of office for 6 weeks, so I'm not sure he's tracking issues.
But maybe someone else can respond.
We are in somewhat the same situation, we consider migrate from EF+SQL to MongoDB for the very same reasons.
Anyway, you can try testing with the nightly builds-myget feeds:
https://github.com/aspnet/Home/wiki/NuGet-feeds
Would be very helpful if you could share your finding (as you already know, testing these stuff is really time consuming :cry: so we haven't tested yet whether EF core is already good enough for our needs).

I just want to say thanks for the hard work, and me and my team are waiting on this fix  to be released

EFC v1.0.1
I just want to say that async methods are still more than 2x times slower than sync versions in my case. Hope this will be fixed.

I believe it is in version 1.1.0 that this fix, will be published

As a newb to dot net, could someone point me to a tutorial on how to install my deps from aspnetcore-dev?  I tried adding https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json to my list of package sources in Visual Studio, but it still could not find the package when I tried to install it from the PM.
I resorted to downloading the nuget file manually, but would prefer not to do that for every single dependency.

Never mind, figured it out.

@opensrcken  Some printscreens could probably help, I'm not sure what exactly your problem you're facing.
Ohhh, welcome to .NET 😄

Thanks @gdoron. I found some instructions online on my own, so I'm fine now. :)
Excited for .NET Core!

Has this been resolved in 1.1? What is the guidance from the team for sync vs. async?
@rowanmiller

@andrew-laughlin This was fixed in 1.1. If you are still seeing an issue, then please file a new bug with specific information about what you are seeing and a complete project or code listing that will let us reproduce what you are seeing.


Fix Typo

Hi Rob,
I found a typo in the code. I have been wondering why the register address of the PWM-registers was defined as this:
#define PCA9634_PWM(x)              (0x82+(x))
The correct definition should be
#define PCA9634_PWM(x)              (0x02+(x))
However, as the MSB overflows, this does not cause any problems but it's technically incorrect and might confuse other users. It took me quiet a while to wrap my head around it. As 0x02 works as intendet I assume that this is just a "working typo".
Best regards Johannes

ah I forgot:

FILE: PCA9634.h
Line 19

Thanks for pointing out.
It is also in the PCA9635, so it is caused by the copy paste when I setup this library.
TODO: check datasheet for both libraries.

checked the code and the library uses the auto-increment in writeN() so it is even mandatory.
(amazing how fast one can forget details of your own code).
uint8_t PCA9634::writeN(uint8_t channel, uint8_t* arr, uint8_t count)
{
  if (channel + count > _channelCount)
  {
    _error = PCA9634_ERR_WRITE;
    return PCA9634_ERROR;
  }
  uint8_t base = PCA9634_PWM(channel);
  _wire->beginTransmission(_address);
  _wire->write(base);
  for(uint8_t i = 0; i < count; i++)
  {
    _wire->write(arr[i]);            //  <<<<<<<<<<<<<<< here
  }
  _error = _wire->endTransmission();
  if (_error != 0)
  {
    _error = PCA9634_ERR_I2C;
    return PCA9634_ERROR;
  }
  return PCA9634_OK;
}

I noticed there is no readN() function to read back the values set.
Do you have a need for that? (would be a new issue)

solved with 0.1.2


feat(#22): time restrictions for rooms

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Please provide enough information so that others can review your pull request:
#22
Explain the details for making this change. What existing problem does the pull request solve?
#22
Test plan (required)
Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.
checks have passed
Closing issues
List all issues this PR resolves.

closes #22

Pre-Merge checklist
Complete these items before requesting reviews

[x] Static Analysis Rules Validated
[x] All commits follow naming conventions

Sub-tasks Checklist

[x] UI Implementation
[x] UI Test
[x] Backend Implementation
[x] Backend Tests
[x] Integration Tests
[x] System Tests
[x] Documentation

@EvanDime yeah I just had to resolve a few conflicts created from merging pr #269 ^^ @danseremet can you re-approve?

@EvanDime yeah I just had to resolve a few conflicts created from merging pr #269 ^^ @danseremet can you re-approve?


Question: How to specify target folder for Git dependency?

I'm trying to make use of the new and shiny "Git dependency" feature. Files from my Git repo are copied to under paket-files folder, but the problem is that Paket creates really deep folder structure there. So deep really that it is close to hit Windows 260 characters path limit.
I wonder if there is a way to specify explicitly where the repo should be copied to. Something like what FileSpec does for HTTP dependencies.
Do we have such option for Git dependencies? If not it looks like we better do.
Note: I'm looking for a way to specify the path relative to paket.dependencies location.
Thank you!
Konstantin

nope I don't think we have this.


Auto Copyright Notice checker only checks for only specific copyright

The copyright checker only checks for specific copyright notice. So if the user tries to add their own copyright the build will fail to complain about the incorrect copyright notice. Instead, the solution should be generic.

This has been addressed in #20.


m2mnsdlinterface.cpp: Free _endpoint->location_ptr before reallocation.

Free _endpoint->location_ptr before reallocation.

You shouldn't need the NULL test - free functions should normally be written to ignore requests to free NULL.  Standard C free(), C++ delete and ns_dyn_mem_free() all work like this.
Documentation of your memory_free doesn't actually state it in comments, but seems to be built on top of normal free().
Save a small amount of flash and line count by omitting unnecessary tests.

rebuild

rebuild


fix(sqlfmt): link correct bin name

@mason-org/triage notify(Reason::NewPullRequest)
This comment ensures a notification is delivered to maintainers.
 🤖 This is an automated comment.    📖 Source code


[Logging V2] Remove Logging tab from Logging Page

The logging tab in the sidebar should be replaced with an overview tab that displays the overview page.

Rancher version: master-head (09/10/2020) 198ec5bdf52d3ed2b4865cfcf6ac1d61150bf55f
The tab is no longer in the Logging Overview


long queries - async

Are there thoughts on using async for long queries?

This wouldn't help, as long-running queries are still a blocking C call in the end. If we made them async, they'd just block at some later point instead.
If you want to run queries in the backround, you'll have to use isolates.

Can we work the isolates into the library so that we just await stmt.execute?

I prefer this library to be a lightweight, but convenient, wrapper around sqlite3. Introducing builtin isolate support and all that comes with it shouldn't be a goal of this library. There are other packages which can do that for you:

sqflite_common_ffi is built on top of this package and provides an async API backed by isolates internally.
(shameless plug) I wrote drift, which provides a ton of convenience features including proper isolate support.

I saw drift, I will give it a spin...


Default FirebaseApp is not initialized in this process com.mstore. Make sure to call FirebaseApp.initializeApp(Context) first.

RN version: "react-native": "0.35.0"
"react": "15.3.2"
When i build and android app and try to run the apk on mobile i get this issue
05-07 07:11:54.733 7587-7624/? E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
Process: com.mstore, PID: 7587
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.mstore. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
at com.evollu.react.fcm.FIRMessagingModule.getFCMToken(FIRMessagingModule.java:73)
at java.lang.reflect.Method.invoke(Native Method)
at com.facebook.react.bridge.BaseJavaModule$JavaMethod.invoke(BaseJavaModule.java:318)
at com.facebook.react.cxxbridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
at android.os.Looper.loop(Looper.java:148)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196)
at java.lang.Thread.run(Thread.java:818)

You're probably missing
apply plugin: 'com.google.gms.google-services'
That fixed it for me.

@AlaaAttyaMohamed is the issue fixed?

@evollu i got same error, "Error: Default FirebaseApp is not initialized in this process com.luthfi. Make sure to call FirebaseApp.initializeApp(Context) first."
my react native apps build was success, no error. but when I try example code in example folder, I got above error.

try update your google play library again? I don't have the issue

I am getting the same error
Error: Default FirebaseApp is not initialized in this process com.luthfi. Make sure to call FirebaseApp.initializeApp(Context) first

@shruti8597 it is most likely your config issue. google this error and check potential fixes

Need to do 2 things:

Add this to your project level gradle -  classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
Add this to your app level gradle - apply plugin: 'com.google.gms.google-services'
Works for me

I already have these 2 things:
Add this to your project level gradle - classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
Add this to your app level gradle - apply plugin: 'com.google.gms.google-services'
Works for me
but this is not working for me.....
Please suggest me how to solve this issue

I am using react-native-push-notification but had the same error. Concerning the build config the RN firebase docs have helped me a lot! Also make sure you use Android Studio since it really helps you with keeping all the dependencies in sync.

dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.0.1'
}
//This IS Work for me

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cratisspace.wewriteone.ghmc_new/com.cratisspace.wewriteone.ghmc_new.MainActivity}: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.cratisspace.wewriteone.ghmc_new. Make sure to call FirebaseApp.initializeApp(Context) first.

am also getting same
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cratisspace.wewriteone.ghmc_new/com.cratisspace.wewriteone.ghmc_new.MainActivity}: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.cratisspace.wewriteone.ghmc_new. Make sure to call FirebaseApp.initializeApp(Context) first.

FirebaseApp.initializeApp(Context)

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cratisspace.wewriteone.ghmc_new/com.cratisspace.wewriteone.ghmc_new.MainActivity}: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.cratisspace.wewriteone.ghmc_new. Make sure to call FirebaseApp.initializeApp(Context) first.

try out this//
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.0.1'
}

Reason and solution:
This is the common error you will get most of the time.
Reason: when you integrate your project with the Firebase it adds the dependencies
 implementation 'com.google.firebase:firebase-auth:16.1.0'     implementation 'com.google.android.gms:play-services-auth:16.0.1'
and classpath
classpath 'com.google.gms:google-services:4.1.0'
you just need to update them
This is how you can update https://youtu.be/5d1g9aqczIE

Need to do 2 things:

Add this to your project level gradle -  classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
Add this to your app level gradle - apply plugin: 'com.google.gms.google-services'
Works for me

add google-services.json file to app folder downloaded from firebase dashboard

Need to do 2 things:

Add this to your project level gradle -  classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
Add this to your app level gradle - apply plugin: 'com.google.gms.google-services'
Works for me

I will add, just in case it helps anybody, that I had these in place too and was still getting the error. However my version was 4.1.0 instead of 4.0.1, and changing it to 4.0.1 actually solved the issue in my case.

After Adding this apply plugin: 'com.google.gms.google-services'
App crashes on android


Phone numbers overflow in case of multiple numbers in search results

Describe the bug
When there are more than 4 phone numbers, they overflow in search results.
To Reproduce
Steps to reproduce the behavior:

Go to Home
Focus on search bar
Click on Mumbai suggestion
Notice that in one of search results phone numbers overflow

Expected behavior
Wrap all phone numbers
Screenshots

Do you think some of the numbers should be added to the next line?


script files should have excution mode set

if they are not set, may get Permission denied.

#5e65388af2 fixes the permissions


allow the target to be set to http://kubernetes_host_ip:30556

I added code to access the K8S management API within the cluster to retrieve the hostIP address for the node on which the pod is running.
Before going down this path, I tried 2 other approaches and struck out with each. One was to try to use the feature referenced in this pull request that Jeremy pointed out: https://github.com/kubernetes/kubernetes/pull/27880. Unfortunately, this gives you the host name, not its IP address. Also, it is the hosts external name, as it is known outside the cluster. It is not resolvable within the cluster (its not in DNS, at least)
I also tried Jeremy's suggestion of parsing /proc/net/route. On the machines I looked at, there is nothing useful in that file.

Coverage remained the same at 100.0% when pulling a721771b0271f0d7f2792cb6bc2af8419ee679bf on kubernetes-hostIP-target into 4f30f2f4c0651fe6807116ef7f650019992abe17 on master.


[Bug] does_table_exist macro failure when a source with a quoted identifier exists

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the issue
Does table exist is searching the entire dbt graph which may include quoted objects. The Snowflake adapter automatically capitalizes these table or view names. And it causes some sort or ambiguity error.
Relevant error log or model output
Compilation Error in model stg_stripe__price_plan_tmp (models/tmp/stg_stripe__price_plan_tmp.sql)
  When searching for a relation, dbt found an approximate match. Instead of guessing
  which relation to use, dbt will move on. Please delete "DATABASE"."SCHEMA"."quoted_identifier", or rename it to be less ambiguous.
  Searched for: DATABASE.SCHEMA.QUOTED_IDENTIFIER
  Found: "DATABASE"."SCHEMA"."quoted_identifier"

  > in macro does_table_exist (macros/does_table_exist.sql)
  > called by model stg_stripe__price_plan_tmp (models/tmp/stg_stripe__price_plan_tmp.sql)

Expected behavior
Successful model run
dbt run -m stg_stripe__price_plan_tmp
Possible solution
Can we make the macro only search for objects inside the stripe database and schema? Why is it searching globally?
dbt Project configurations
vars:
stripe_database: internal_analytics
stripe_schema: stripe
Package versions
packages:
- package: dbt-labs/dbt_utils # Hubspot package recommends to remove this
version: 1.2.0

package: dbt-labs/codegen
version: 0.12.1
package: dbt-labs/audit_helper
version: 0.12.0
package: calogica/dbt_expectations
version: 0.10.4
package: fivetran/hubspot
version: [">=0.18.0", "<0.19.0"]
package: fivetran/stripe
version: [">=0.15.0", "<0.16.0"]
package: fivetran/facebook_ads
version: [">=0.7.0", "<0.8.0"]
package: fivetran/google_ads
version: [">=0.11.0", "<0.12.0"]
package: fivetran/linkedin
version: [">=0.9.0", "<0.10.0"]

What database are you using dbt with?
snowflake
How are you running this dbt package?
Fivetran Transformations, dbt Core™
dbt Version
Core:

installed: 1.8.6
Plugins:
snowflake: 1.8.3

Additional Context
No response
Are you willing to open a PR to help address this issue?

[ ] Yes.
[X] Yes, but I will need assistance.
[ ] No.

Wrong repo
https://github.com/fivetran/dbt_stripe_source/issues/84


IE 11 Support

I have no problem with IE, I have no problem with the Google browser, but IE error, all pages are not open, the error code is as follows:

How to solve it
this is my website: http://sztopfar.mozibrand.com  IE not open

Hello @mozibrand ,

What the errors says?
Could you make a same screen shot but with debug enabled? (See debug flag in a Constructor)
Does server has any errors?
What is IE and Windows version?

1: error see screenshot

In IE, it's not open
3: In the Google browser, after uploading the image, it doesn't show up

4: windows version is windows 10, IE version is IE 11

I'm trying to set up a git project, do you have time to help me see what the problem is because I don't speak English well enough to speak clearly

I'm trying to set up a git project, do you have time to help me see what the problem is because I don't speak English well enough to speak clearly

Okay, but first problem we have - I have no access to Windows. So, I'm not able to reproduce it.

Make sure es5-shim and ecmascript packages is installed
Make sure you're on the latest release of Meteor and Meteor-Files (ostrio:files)

Thank you for replying to me now, I guess you should be in the middle of the night in China
There's no relationship. You can use IE to try and see if the MAC can install 360 tests
http://www.360.cn/mac/

my meteor version is 1.5, npm is 4.6.1, ostrio:files version is  latest release, packages list is:
这是 Inspinia admin 默认配置的包
<EMAIL_ADDRESS>                # less 样式包
fortawesome:fontawesome     # 字体图标
<EMAIL_ADDRESS>            # jQuery
dbarrett:dropzonejs         # DropzoneJS是一个开源库，可以通过图像预览提供拖放文件上传
<EMAIL_ADDRESS>      # Bootstrap
<EMAIL_ADDRESS>         # Meteor 基础包
<EMAIL_ADDRESS>   # Meteor 默认移动端体验
<EMAIL_ADDRESS>              # Meteor 默认 MongoDB包
<EMAIL_ADDRESS># Blaze 模板包
<EMAIL_ADDRESS>             # Session 包
<EMAIL_ADDRESS>             # Meteor's client-side reactive programming library
<EMAIL_ADDRESS>            # 日志管理
<EMAIL_ADDRESS>             #
<EMAIL_ADDRESS>             #
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS># CSS minifier run for production mode
<EMAIL_ADDRESS># JS minifier run for production mode
<EMAIL_ADDRESS>        # Server-side component of the meteor shell command
<EMAIL_ADDRESS>kadira:blaze-layout         # 渲染Blaze模板
kadira:flow-router          # Flow-router
zimme:active-route          #
另外添加的功能包
<EMAIL_ADDRESS>         # Meteor 默认用户系统UI包
<EMAIL_ADDRESS>   # Meteor 默认用户系统
useraccounts:bootstrap      # Meteor 默认用户系统样式
useraccounts:flow-routing   # Meteor 默认用户系统路由
juliancwirko:s-alert        # 美化弹出alert
juliancwirko:s-alert-slide  # 右侧弹出
juliancwirko:s-alert-scale  # 美化弹出alert 动画效果
meteor-platform             # 表单检测
<EMAIL_ADDRESS>         # Meteor 核心JS库
#momentjs:moment            # 时间包：显示为多久前
rzymek:moment-locale-zh-cn  # 时间包中文化
ostrio:files               # ostrio:files 文件上传
#cfs:standard-packages       # 换 Meteor-CollectionFS
#cfs:gridfs
#cfs:filesystem
#iyyang:cfs-aliyun
dschulz:jquery-qrcode       # 生成二维码插件（液态码）
<EMAIL_ADDRESS>       # 页面全局变量
themeteorchef:jquery-validation  # 表单验证
nolimits4web:swiper         # 轮播滑动插件
dynamic-import
udondan:slick

Just a moment, please. I'll install it es5-shim and ecmascript

@mozibrand is this one solved?

no no no, I created a project, is new, you just installed the package, not run directly, an error, do nothing, only your package installed, in IE an error

============
meteor create ostriofiles
cd ostriofiles
meteor add ostrio:files
meteor

@dr-dimitru Just installed one package, a new meteor project, really doesn't support IE?

Could you make a same screen shots but with debug enabled? (See debug flag in a Constructor)

1: I tried Meteor - CollectionFS, in IE is ok, but bad to use, pictures showed not, i want to use ostrio: files, but ostrio: files for ie not open. create a new meteor project, only installed ostrio: files package, Also have the wrong

How do you solve this problem，thank you very mach， In a hurry with

I use the translation software, sometimes the tone is wrong or not friendly, please excuse me, because my English is very rubbish

I'm in a hurry. You have a very good bag. I don't want to use it any more Meteor - CollectionFS，He had no one to maintain, it was a discarded bag

@dr-dimitru #

What the errors says? On the screenshot at the IE console, where is something meteorInstall and above it.

SCRIPT1002: 语法错误
ostrio_files.js (4138,51)
SCRIPT5007: 无法获取未定义或 null 引用的属性 “FilesCollection”
global-imports.js (7,1)
SCRIPT5009: "meteorInstall" 未定义
app.js(1,1)
====================================
SCRIPT1002: grammatical errors
Ostrio_files.js (4138,51)
SCRIPT5007: unable to retrieve an attribute "FilesCollection" of undefined or null references
Global imports.js (7, 1)
SCRIPT5009: "meteorInstall" is undefined
App. Js (1, 1)

Does that make sense? Can you solve it? This is the addition of the package. I didn't write a single line of code. In IE11, no, it's not possible to not support IE11

meteor create demo
cd demo
meteor add ostrio:files
meteor update
meteor
in ie11, error

:)

Now it's more clear.
Looks like import statement is missing:
import { FilesCollection } from 'meteor/ostrio:files';

Or use globally defined (note: will be deprecated in future):
Meteor.Files

I didn't write a single line of code.

Hmm.. this is weird. Try to check if error will gone with --production flag:
meteor --production

@mozibrand @dr-dimitru
@dr-dimitru He has explained his problem in Meteor China Community, and I have investigated it with him. I would say sorry representing him for his poor English and thank you for your warm help and hardwork on this package!
ostrio:files depends the npm module fs-extra, which is loaded on the client-side(is this an intended behavior?). That package is in ES6 and has no transpilation conducted by itself. While meteor doesn't transpile NPM modules, this problem happened due to the fact that IE11 doesn't support Arrow Functions. The first error in @mozibrand 's screenshot is just caused by https://github.com/jprichardson/node-fs-extra/blob/master/lib/util/assign.js#L7-L11 .
So, do you have any suggestions on how to solve this problem? Would you like me posting another issue respecting the real problem to track, or just say you don't want to support legacy browsers like IE11?
Thank you for your hardwork!

@laosb Thank you very much!

@dr-dimitru I look forward to your response, thanks

Hello @mozibrand @laosb ,

npm module fs-extra, which is loaded on the client-side(is this an intended behavior?)

No, this shouldn't happen. fs-extra is meant to be used on Server only.

So, do you have any suggestions on how to solve this problem?

Now, only falling back to older release.

or just say you don't want to support legacy browsers like IE11?

I would support IE 11, and make sure backend NPM packages only loaded on Server.
The big update is coming. We're moving from CoffeeScript to ES6 and this should solve all current issues. But I can't tell you when it will be published.
I'll mark this as a bug. Thank you for report.
Let me know if downgrading to older release temporarily fixes this issue.

Having same issue with Windows 10 IE 11. Edge is working fine.

Hello @mozibrand @haojia321 @laosb
This should be fixed in v1.8.0 please update to the latest release and let me know if it solves this issue.

@mozibrand is now trying it out - let's see if it works!

Thank you very much, and now we've been able to support IE9, and congratulations on getting a lot of fans back from CFS back to the ostrio: files

@laosb thank you for stepping in.
@mozibrand thank you for contribution. Do you have a chance to test other IEs? 8, 10, 11, Edge?
I'm doing this blindly as have limited access to Win 7 with IE 8 onboard, which wont even display something. It will be great to know where it work or not. Thank you

Mentioned you in release, thanks a lot once again!

@dr-dimitru Great, keep it up!

@dr-dimitru Ie7,ie8 is not supported, ie9, ie11 is supported,  , ie7 , ie8 is still like my screenshot

edge is supported , very good

The meteor itself does not support IE7.8, so it is unsolvable，It's great to be able to support IE9 now，Thanks again

This week I've been working with bizarre browsers including Maxthon, UCBrowser and IE.
Made it work in IE>=9, latest Maxthon and some version of UCBrowser which is recognized as Chrome 37.
Do you have any experience with Meteor on Maxthon and/or UCBrowser? As far as I know Maxthon is widely used in China.

Maxthon is no longer popular in China at this moment. Sounds like you have covered a big part of China specific browsers since you can simply see them as older versions of Chrome. Amazing!

If you want to know the marketshare in China, you can refer to [this analysis conducted by Baidu](, with all data they get with their GoolgeAnalytics-liked producted.

Maxthon is no longer popular in China at this moment

That's great, less browsers - less hassle :)
Thank you a lot for this info.

Hi,
I've recently had this error in IE11, using<EMAIL_ADDRESS>There are over 100 errors in the console that start with a purported syntax error in modules.js on Line 14584, Column 51. This is an arrow function, which I realize IE11 does not support. However, it is from the fs-extra package, which should never be loaded client side.
I understood from the comments above that this issue should have been fixed in version 1.8.0. Is this a regression?

Ah! I've fixed the issue!
My code was using fs = require('fs-extra');.
When I updated it to be fs = Npm.require('fs-extra');, all of my IE11 problems went away. I've certainly learned a lesson ;-)

@runlevelsix you should not import fs and/or fs-extra on the Client

I agree, my code is in a /lib folder, but is also in side a Meteor.isServer block.
The only solution which worked was using var fs = Npm.require('fs-extra'); rather than simply var fs = require('fs-extra');.
I think that because Meteor (Babel?) was doing all of the code splitting, it got confused by the require and put fs-extra into the client-side code bundle, regardless of my code only using it server side.

Yes, it's caused by Meteor's compilation process. If is sees require or import keywords it will preload mentioned libraries with no respect to Meteor.isServer block.
That's why we have been forced to implement exact code splitting.


Update developer guide with mark app implementation

Not sure what design considerations to add (if needed) for mark appt,
also not sure if should make mark and unmark separate or put them together since they are very similar

I think it's possible to just do for Mark, then state then Unmark follows a similar logic!


Add 'create if not exists'clause in dsl for get

Perhaps this feature does not make sense since a get command does not have object data in it. So what would we index - Empty object, just to get an _id? Closing this issue for now.


[Renderers/SDL3] Adds an example using SDL3 as a renderer

This example is rather basic but it does provide an example how one could setup a rendering loop between clay and SDL3.
Although SDL3 is in its infancy and doesn't have an official stable release the API has been locked so there shouldn't be any code adaptations required for this example if one was to update to a more recent SDL3 release in the future.

Awesome, thank you for the contribution! I will take a proper look at this over the next week or so 👍

Tested as working on macOS 15.2 -- thanks for this! I appreciate that you took the time to wrap in SDL_ttf. I also like that you used the new callbacks method for integration. I'm all-in on SDL3 so it's nice to see others adopting it for new, useful frameworks like Clay.
I left one comment on the SDL_ttf version, above. Otherwise, the demo works a treat.
My thoughts:

Do you think it would be good to split this into a renderer that could be shared?
Should this be using dynamic libraries by default?

I'd also love to see the demo essentially replicate the Raylib scroller, which would involve adding SDL_image to the build. (I'm one of those weirdos who thinks SDL_image and SDL_ttf should be part of the base library, though. 🤣 )

Nice that it worked.
Regarding extensions. There is one caveat with the builtin renderer in SDL. There's no ability to render circles out of the box. I didn't look into the "border" rendering commands from clay. But my best guess is that there might be some issues with this and the border radius. This will require bespoke solutions per project that does chose to utilize clay.
For me that's a reason to avoid providing a default SDL renderer within clay and instead leave that to the user to solve for their particular case.
Granted I'm not the maintainer of the repo and if there's an interest in extending this renderer to a provided solution I'm open to help out.


Error: Type 'ParseErrorLogger' not found

ParseErrorLogger not found
Retrofit REST client generates .g.dart and adds errorLogger to constructor of the generated file (i.e. .g.dart) of type ParseErrorLogger errorLogger but that class ParseErrorLogger is not found
To Reproduce
Here is a code that I use to generate REST client:
`part 'auth_client.g.dart';
@RestApi()
abstract class AuthClient {
factory AuthClient(Dio dio, {String baseUrl}) = _AuthClient;
@POST('auth/register')
Future signup(@Body() body);
@POST('auth/login')
Future getUser(@Body() body);
}`
dependencies:
retrofit: ^4.4.1
logger: ^2.4.0
json_annotation: ^4.9.0
dev_dependencies:
build_runner: ^2.4.13
json_serializable: ^6.8.0
retrofit_generator: ^9.1.4
Expected behavior
To have a working generated class with extension .g.dart
My environment
Java version: 17
Flutter SDK version: 3.24.4
OS: Ubuntu 24.04

Facing the same issue, with latest retrofit package

https://github.com/trevorwang/retrofit.dart/issues/715#issuecomment-2415813794

import 'package:retrofit/retrofit.dart' instead of  import 'package:retrofit/http.dart';

import 'package:retrofit/retrofit.dart' instead of import 'package:retrofit/http.dart';

Thank you very much, it works :)


NodeJS bindings

What programming language are you using (C/C++/Go/Rust)?
Wish it was NodeJS.
What did you expect to see and what you saw instead?
NodeJS bindings would be excellent to attract users of Electron, away from it. And NodeJS is a well established JS runtime.

@matteoturini Have you tried the Deno bindings at https://github.com/webview/webview_deno ?

Yes. It's not the same thing. I still need NodeJS webviews, it's not the same thing.

We rely on the community's support to create bindings. If you have the ability to make a JavaScript binding that relies on the NodeJS runtime, we would be happy for you to get things started. We support bindings by linking to them in our README and the mature ones live in the webview organization.
This repository is for the C/C++ core library. We do not develop bindings for all other languages. If you notice a bug in our library when creating a binding, then please open an issue and let us know!

Hey, I found this today: https://github.com/suchipi/webview-node @matteoturini.

suchipi/webview-node is not a binding, it is a wrapper around exe.

Thank you, I will check it out!


MWPW-144477-Fix selector tray alignment

Fix selector tray alignment

Resolves: MWPW-144477
Test URLs:

Before: https://main--cc--adobecom.hlx.live/drafts/ruchika/ff-selectortray?martech=off
After: https://firefly-selectortray--cc--adobecom.hlx.live/drafts/ruchika/ff-selectortray?martech=off

With 3 options:

Before: https://main--cc--adobecom.hlx.live/drafts/ruchika/firefly/remove-dnt/document1?martech=off
After: https://firefly-selectortray--cc--adobecom.hlx.live/drafts/ruchika/firefly/remove-dnt/document1?martech=off

Verified the flow on the below url : selector tray alignment is the seen the same now for 1799px, 1649px, 1437px
https://firefly-selectortray--cc--adobecom.hlx.live/drafts/ruchika/ff-selectortray?martech=off

https://firefly-selectortray--cc--adobecom.hlx.live/drafts/ruchika/firefly/remove-dnt/document1?martech=off


soc: nordic_nrf: nrf91: Add support for nRF9161 SiP / nRF9120 SoC

The nRF9161 is technically a SiP (System-in-Package) that consists of the nRF9120 SoC and additional components like PMIC, FEM, and XTAL, so for nrfx/MDK the nRF9120 SoC is to be selected as the build target, but since the nRF9161 is what a user can actually see on a board, using only nRF9120 in the Zephyr build infrastructure might be confusing. That's why in the top level of SoC definitions (for user-configurable options in Kconfig, for example) the nRF9161 term is used and nRF9120 underneath.
This PR performs also some related clean-up and adds support for the nRF9161 DK.

Rebased, updated hal_nordic SHA.

@anangl are you going to address the request to add tf-m support?


Referencing workspace packages through aliases in templates

This is not supported by Yarn v1 unfortunately.

.

Right now, because the example packages cause conflicts with upstream, I think we need set the name of example packages more unique. Or better way, we can add a scope option when user run create-turbo

https://classic.yarnpkg.com/blog/2017/08/02/introducing-workspaces/
https://pnpm.io/workspaces

This still doesn't seem to work with Yarn v1 when the upstreams don't exist and all packages are private.

Closing for now


future version plan

like Angular 6 month major update , and lake of using typescript instate of javascript , our concern is we are searching a lot through internet for see do VueJS will make big migration and lack of back word compatibility like angularJS to angular

do VueJS will make big migration and lack of back word compatibility like angularJS to angular

You don;t have to worry about that, Vue.js will still mostly be what it is today. Breaking changes will not be a new framework


Prefer ledger by branch

These changes leverage the ancestry information of validated ledgers to better select a preferred working ledger for consensus.  Additionally, the Validations class now tracks both full and partial validations. Partial validations are only used to determine the working ledger; full validations are required for any quorum related function. Validators are also now explicitly restricted to sending full validations with increasing ledger index, otherwise the validation is marked partial.
The algorithm for determining the preferred ledger is described in the LedgerTrie::getPreferred documentation. The LedgerTrie documentation describes the trie data structure used to support this calculation.

99494837fc13e831300a8f4591756912d6626d6b is a motivating consensus simulation
c6060d8 introduces the LedgerTrie data structure
The subsequent commits are meant to be manageable sized commits that transition to use the ledger trie for the preferred branch calculations.

febedc4 is from #2292

@HowardHinnant and @seelabs, could you focus on the LedgerTrie data structure commit in c6060d8. It should be standalone, although the use case comes in the later commits.

@JoelKatz and @wilsonianb , could you focus on the remaining commits that change how Validations stores validations and uses the ledger ancestry.

I get some warnings:```
compile_log.clang.debug.txt:src/ripple/beast/utility/Journal.h:272:5: warning: definition of implicit copy assignment operator for 'Journal' is deprecated because it has a user-declared destructor [-Wdeprecated]
compile_log.clang.debug.txt:src/ripple/beast/utility/Journal.h:272:5: warning: definition of implicit copy assignment operator for 'Journal' is deprecated because it has a user-declared destructor [-Wdeprecated]
compile_log.clang.debug.txt:src/ripple/beast/utility/Journal.h:272:5: warning: definition of implicit copy assignment operator for 'Journal' is deprecated because it has a user-declared destructor [-Wdeprecated]
compile_log.clang.debug.txt:src/test/csf/PeerGroup.h:50:5: warning: definition of implicit copy assignment operator for 'PeerGroup' is deprecated because it has a user-declared copy constructor [-Wdeprecated]
compile_log.clang.debug.txt:src/test/csf/PeerGroup.h:50:5: warning: definition of implicit copy assignment operator for 'PeerGroup' is deprecated because it has a user-declared copy constructor [-Wdeprecated]

@seelabs Excellent!  I've been wondering when compilers would start warning about that.  What compiler gave us these warnings?

@HowardHinnant That's clang 5.0

Well, it's going to put me out of a job.  This is one of the things I look for to bitch about during code reviews. ;-)

Jenkins Build Summary
Built from this commit
Built at 20171215 - 22:00:35
Test Results

Build Type
Result
Status

clang.debug.unity
983 cases, 0 failed, t: 378s
PASS :white_check_mark:

coverage
983 cases, 0 failed, t: 587s
PASS :white_check_mark:

clang.debug.nounity
981 cases, 0 failed, t: 594s
PASS :white_check_mark:

gcc.debug.unity
983 cases, 0 failed, t: 420s
PASS :white_check_mark:

clang.release.unity
982 cases, 0 failed, t: 439s
PASS :white_check_mark:

gcc.debug.nounity
981 cases, 0 failed, t: 744s
PASS :white_check_mark:

gcc.release.unity
982 cases, 0 failed, t: 466s
PASS :white_check_mark:

Good catch @seelabs. Looks like I grabbed a stale version from #2292. I'll rebase after that gets in the next 0.90.0 beta.  The other warnings I will fix.

Codecov Report

Merging #2300 into develop will increase coverage by 0.14%.
The diff coverage is 82.73%.

@@            Coverage Diff             @@
##           develop   #2300      +/-   ##
==========================================
+ Coverage    70.96%   71.1%   +0.14%
==========================================
  Files          691     692       +1
  Lines        51663   51933     +270
==========================================
+ Hits         36661   36929     +268
- Misses       15002   15004       +2

Impacted Files
Coverage Δ

src/ripple/app/consensus/RCLConsensus.h
80% <ø> (ø)
:arrow_up:

src/ripple/app/main/Application.h
100% <ø> (ø)
:arrow_up:

src/ripple/app/misc/NetworkOPs.cpp
63.64% <0%> (+0.87%)
:arrow_up:

src/ripple/consensus/Consensus.h
89.69% <100%> (+0.87%)
:arrow_up:

src/ripple/app/main/Application.cpp
61.05% <100%> (+0.09%)
:arrow_up:

src/ripple/app/consensus/RCLValidations.h
82.14% <100%> (+4.87%)
:arrow_up:

src/ripple/app/consensus/RCLConsensus.cpp
68.04% <50%> (+1.38%)
:arrow_up:

src/ripple/app/consensus/RCLValidations.cpp
80.48% <73.19%> (+7.37%)
:arrow_up:

src/ripple/beast/utility/Journal.h
97.1% <90%> (ø)
:arrow_up:

src/ripple/consensus/LedgerTrie.h
90.45% <90.45%> (ø)

... and 11 more

Continue to review full report at Codecov.

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

What is the rule for rejecting a validation because its sequence number is too low? Is the rule that the sequence must be greater than that for any non-expired validation from that same validator? And does the code now issue partial validations automatically if the sequence number is less than or equal to that of any non-expired full validation that server has issued?

Thanks for your fix @seelabs, I grabbed that and added a fix for PeerGroup warnings.  The other warnings will be fixed in a future rebase.

@JoelKatz
There are two separate ways this is enforced--when issuing validations and when receiving validations. When issuing validations, a validator tracks the largest sequence number/ledger index of a full validation and requires any subsequent full validation to be for a higher number. Otherwise, the validation becomes a partial validation. This also builds on #2167 so that on a restart, this largest number must exceed that of the largest persisted ledger.
Similarly, when receiving validations, a node maintains the largest full validation sequence number from every validator. If it receives a full validation with smaller sequence number, that validation is ignored. This state is not currently persisted across restarts.
All of these changes are in 1e349e2.
As coded, expiring a validation does not change this behavior.  I could change it such that the receiving node resets the largest seen full validation sequence number if the most recent validation from that validator expired. Alternatively, instead of rejecting a full validation that violates the increasing sequence number invariant, we could treat it as a partial instead (which is what the issuing node should've done anyway).
Note that this implementation does expire stale validations as before and will not use expired validations in the new ledger ancestry/preferred branch calculations.

@JoelKatz, I believe the latest commit 2e85e5a addresses your concerns regarding expiration and allowed full validation sequence numbers. The invariant is now: require a full validation to be for a ledger sequence/index larger than any non-expired full validations previously received from that validator. The invariant enforced earlier in this PR did not include the non-expired qualification.

Merged in 94c6a2a850081faa006a1e39d30a2536a7f824ba


Remove redundant comment

Ⅰ. Describe what this PR does
add comments to func home
Ⅱ. Does this pull request fix one issue?

Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
pkgs/utils/home.go
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

#373


Support Planetscale as a database

https://planetscale.com

They don't support foreign key constraints, which Wakapi heavily relies on (both for maintaining integrity as well as for cascading deletes, etc.). Migrating away from foreign key constraints is not an option, so Planetscale will not be supported.


Ability to list available language aliases

The purpose of this PR is to introduce ability to access information about the available language aliases via the Highligther class instances.
This can be particularly helpful in web applications if presenting user with a drop-down list of syntaxes to choose from.
Although the normalised names should be quite helpful, they can sometimes also be a bit confusing, for example the html language is merely an alias for xml. This is not super-obvious to most users (and in fact for a while I thought the library had no HTML syntax highlighting myself).
I've also tried to implement tests for methods that got changed/added to help with regression testing.
All input is welcome, so if you think something needs to be changed/improved, do let me know - especially since PHP is not something I delve into on regular basis :)

Addressed the review comments, minus the array_merge thing (see explanation).

Addressed the review comments, minus the array_merge thing (see explanation).

Sorry for the confusion, see my edited comment. Yea the check is necessary, I just meant a change in coding style to get rid of the else condition like so (the logic remains the same):
if ($language->aliases === null) {
    return [$language->name];
}

return array_merge([$language->name], $language->aliases);

Fixed, let me know if it's good now :)

Thanks for submitting the PR and being responsive with the requested edits 👍

No worries, I like it myself when maintainers are fast to respond :)