Placement Service not called for Actor Using Dotnet SDK and Docker-Compose

When using the DotNetCore 6,  DotNet SDK, Docker Compose, custom bridge, the placement service never gets called.
docker-compose
version: '3.4'

services:
  rentalpropertyservice:
    image: ${DOCKER_REGISTRY-}rentalpropertyservice
    build:
      context: .
      dockerfile: K8S_Actor_API/Dockerfile
    ports:
    - 50010:50001
    - "5124"
    depends_on:
      - dapr.statestores.redis
      - dapr.service.placement
    networks:
      - dapr

  rentalpropertyservice-dapr:
    image: "daprio/daprd:latest"
    command: [ "./daprd", "-app-id", "rentalpropertyservice", "-app-port", "5124", "-placement-host-address", "dapr.statestores.placement:50020", "-components-path", "/components"  ]
    volumes:
      - "./components/:/components"
    depends_on:
      - rentalpropertyservice
    network_mode: "service:rentalpropertyservice"

  dapr.service.placement:
    container_name: dapr.statestores.placement
    image: "daprio/dapr"
    command: ["./placement", "-port", "50020"]
    ports:
      - "50020:50020"
    networks:
      - dapr

  dapr.statestores.redis:
    container_name: dapr.statestores.redis
    image: "redis:alpine"
    ports:
      - "6380:6379"
    networks:
      - dapr

networks:
  dapr:

program.cs:
Log.Logger = new LoggerConfiguration()
    .WriteTo.Console()
    .CreateBootstrapLogger();

Log.Information("Starting up");

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((ctx, logger) => { logger.ReadFrom.Configuration(ctx.Configuration);  });

// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddDaprClient(); ;
builder.Services.AddActors(options => {
    options.Actors.RegisterActor<RentalPropertyActor.Actors.RentalPropertyActor>();
});

var app = builder.Build();

app.UseSerilogRequestLogging();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.MapActorsHandlers();

app.MapGet("/MarkPropertyReady/{OwnerId}/{PropertyId}/{UnitId}", async (string OwnerId, string PropertyId, string UnitId) => {

    if (string.IsNullOrWhiteSpace(OwnerId) || string.IsNullOrWhiteSpace(PropertyId))
        return Results.Problem("Owner Id or Property Id not filled out");

    var actorProxy = GetRentalPropertyActorAsync(OwnerId, PropertyId, UnitId);

    // Get UnitInfo, PropertyComplex from repo

    await actorProxy.PropertyReadyAsync(OwnerId, PropertyId, new RentalPropertyService.Model.UnitInfo(), new RentalPropertyService.Model.PropertyComplex());

    return Results.Ok();
})
    .WithName("MarkPropertyReady");
try
{
    Log.Information("Starting Webhost...");
    app.Run();

}
catch (Exception ex)
{
    Log.Fatal(ex, "Unhandled Exception");
}
finally
{
    Log.Information("Shut Down Complete");
    Log.CloseAndFlush();
}

IRentalPropertyActor GetRentalPropertyActorAsync(string OwnerId, string PropertyId, string UnitId)
{
    return ActorProxy.Create<IRentalPropertyActor>(RentalPropertyActor.Actors.RentalPropertyActor.GetActorId(OwnerId, PropertyId, UnitId), nameof(RentalPropertyActor));
}

when calling the actor endpoint via swagger, it says "Dapr.DaprApiException: actor runtime is not configured". Also, in the placement service, there is no log entries about a member update count. However, calling the /dapr/config on the service shows an entry, {"entities":["RentalPropertyActor"],"reentrancy":{"enabled":false}}
Code works when using the self-hosted mode.
dapr run --app-id rentalpropertyservice --app-port 5124 --dapr-http-port 3500 dotnet run

I've the exact same problem, did you figure it out?

@darthmolen - What logs do you see from Dapr? There are a couple reasons why the actor runtime may not be setup but the two main culprits would be:

Dapr isn't able to hit your app when calling dapr/config
The statestore isn't labeled as actorstatestore: true

I'm getting the same issue. My statestore is labelled as actorstatestore: true
The error message on calling the actor method on the proxy (in my case, await proxy.ProcessUpdate(update)) is:
Dapr.DaprApiException: actor runtime is not configured
   at Dapr.Actors.DaprHttpInteractor.SendAsyncHandleUnsuccessfulResponse(Func`1 requestFunc, String relativeUri, CancellationToken cancellationToken)
   at Dapr.Actors.DaprHttpInteractor.SendAsync(Func`1 requestFunc, String relativeUri, CancellationToken cancellationToken)
   at Dapr.Actors.DaprHttpInteractor.InvokeActorMethodWithRemotingAsync(ActorMessageSerializersManager serializersManager, IActorRequestMessage remotingRequestRequestMessage, CancellationToken cancellationToken)
   at Dapr.Actors.Communication.Client.ActorRemotingClient.InvokeAsync(IActorRequestMessage remotingRequestMessage, CancellationToken cancellationToken)
   at Dapr.Actors.Client.ActorProxy.InvokeMethodAsync(Int32 interfaceId, Int32 methodId, String methodName, IActorRequestMessageBody requestMsgBodyValue, CancellationToken cancellationToken)
   at Dapr.Actors.Client.ActorProxy.ContinueWithResult[TRetval](Int32 interfaceId, Int32 methodId, Task`1 task)
   at Program.<>c__DisplayClass0_0.<<<Main>$>b__1>d.MoveNext() in [C:\Users\rheck\source\repos\TeleTodo\TeleTodo.MinimalWebService\Program.cs]():line 60
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Http.RequestDelegateFactory.ExecuteTaskResult[T](Task`1 task, HttpContext httpContext)
   at Microsoft.AspNetCore.Http.RequestDelegateFactory.<>c__DisplayClass46_3.<<HandleRequestBodyAndCompileRequestDelegate>b__2>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

The logs when debugging looks like this:
> Executing task: daprd-debug <

> Executing command: daprd --app-id "teletodoapp" --app-port "3000" --components-path "./components" --dapr-http-port "3500" --metrics-port "9090" --placement-host-address "localhost:6050" <

time="2022-04-16T21:10:23.2404162-04:00" level=info msg="starting Dapr Runtime -- version 1.7.0 -- commit 3c4510a685470eb8a5403e9d9a451bc93e67e6c4" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.2404162-04:00" level=info msg="log level set to: info" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.2404162-04:00" level=info msg="metrics server started on :9090/" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.metrics type=log ver=1.7.0
time="2022-04-16T21:10:23.2440079-04:00" level=info msg="loading default configuration" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.2440079-04:00" level=info msg="standalone mode configured" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.2449702-04:00" level=info msg="app id: teletodoapp" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.2449702-04:00" level=info msg="mTLS is disabled. Skipping certificate request and tls validation" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.320053-04:00" level=info msg="local service entry announced: teletodoapp -> <IP_ADDRESS>:63416" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.contrib type=log ver=1.7.0
time="2022-04-16T21:10:23.320053-04:00" level=info msg="Initialized name resolution to mdns" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3210694-04:00" level=info msg="loading components" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3338195-04:00" level=info msg="component loaded. name: pubsub, type: pubsub.redis/" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3348368-04:00" level=info msg="component loaded. name: telegramtodosecretstore, type: secretstores.local.file/v1" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3361337-04:00" level=info msg="waiting for all outstanding components to be processed" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.347034-04:00" level=info msg="detected actor state store: statestore" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3477499-04:00" level=info msg="component loaded. name: statestore, type: state.redis/" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3477499-04:00" level=info msg="all outstanding components processed" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3477499-04:00" level=info msg="gRPC proxy enabled" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3477499-04:00" level=info msg="enabled gRPC tracing middleware" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime.grpc.api type=log ver=1.7.0
time="2022-04-16T21:10:23.3477499-04:00" level=info msg="enabled gRPC metrics middleware" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime.grpc.api type=log ver=1.7.0
time="2022-04-16T21:10:23.3482597-04:00" level=info msg="API gRPC server is running on port 50001" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3482597-04:00" level=info msg="enabled metrics http middleware" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime.http type=log ver=1.7.0
time="2022-04-16T21:10:23.3482597-04:00" level=info msg="enabled tracing http middleware" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime.http type=log ver=1.7.0
time="2022-04-16T21:10:23.3487939-04:00" level=info msg="http server is running on port 3500" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3487939-04:00" level=info msg="The request body size parameter is: 4" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3487939-04:00" level=info msg="enabled gRPC tracing middleware" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime.grpc.internal type=log ver=1.7.0
time="2022-04-16T21:10:23.3493114-04:00" level=info msg="enabled gRPC metrics middleware" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime.grpc.internal type=log ver=1.7.0
time="2022-04-16T21:10:23.3493114-04:00" level=info msg="internal gRPC server is running on port 63416" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-16T21:10:23.3493114-04:00" level=info msg="application protocol: http. waiting on port 3000.  This will block until the app is listening on that port." app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0

If Dapr isn't able to hit my app when calling dapr/config, what would that look like?

@rheckart - This line would be followed by more things:
time="2022-04-16T21:10:23.3493114-04:00" level=info msg="application protocol: http. waiting on port 3000.  This will block until the app is listening on that port." app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
For example:
INFO[0009] application discovered on port 5010           app_id=demo_actor instance=Hals-MacBook-Pro.local scope=dapr.runtime type=log ver=edge

I'm instantiating from a minimal API project and I don't see any entries past the application protocol: http. waiting on port 3000. log line. The code runs and debugs and does find the secrets manager.
using Dapr.Client;
using Dapr.Extensions.Configuration;
using Microsoft.AspNetCore.Mvc;
using TeleTodo.Base;
using TeleTodo.Service;
using Dapr.Actors;
using Dapr.Actors.Client;
using TeleTodo.Interfaces;
using Dapr.AspNetCore;

const string SECRET_STORE_NAME = "secretstore";
const string SECRET_TELEGRAM_URL_KEY = "telegramUrlToken";

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddDaprClient();

builder.Services.AddActors(options =>
{
    options.Actors.RegisterActor<ChatActor>();

    // Configure default settings
    options.ActorIdleTimeout = TimeSpan.FromMinutes(60);
    options.ActorScanInterval = TimeSpan.FromSeconds(30);
    options.DrainOngoingCallTimeout = TimeSpan.FromSeconds(60);
    options.DrainRebalancedActors = true;
    options.RemindersStoragePartitions = 7;
});

var app = builder.Build();
var daprClient = new DaprClientBuilder().Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

// app.UseHttpsRedirection();
// app.MapControllers();
app.MapActorsHandlers();

var telegramUrlTokenSecret = await daprClient.GetSecretAsync(SECRET_STORE_NAME, SECRET_TELEGRAM_URL_KEY);

if (!telegramUrlTokenSecret.TryGetValue("telegramUrlToken", out string? telegramUrlToken)) throw new Exception($"{SECRET_TELEGRAM_URL_KEY} Secret not found");

app.MapPost("/{Token}", async ([FromBody] TelegramUpdate update, HttpRequest request) =>
{
    if (!request.Path.HasValue) return Results.Forbid();
    if (!request.Path.Value.Contains(telegramUrlToken)) return Results.Forbid();

    var actorId = new ActorId(update.Message.MessageId.ToString());
    var proxy = ActorProxy.Create<IChatActor>(actorId, "ChatActor");

    var response = await proxy.ProcessUpdate(update);

    return Results.Created($"{update.UpdateId}", response); // $"{update.UpdateId}", $"{update.UpdateId} is {telegramUrlToken}");
});

app.Run();

@rheckart - Where do you set your app port, I don't see anything that makes your app listen on port 3000 in that code sample. If you don't see anything past that log message it's most likely because dapr isn't able to contact your app.
The other thing that could be happening here is your app could be crashing because you try and get a secret from Dapr before it's initialized. Your app failing to come up could cause dapr to not finish as well. In this case, there's a method in the DaprClient for waiting for the sidecar and the configuration extension we vend also does this for you.

@halspang I found out the the app port was set incorrectly in my launchsettings.json file. I changed the applicationUrl property in that file to use port 5001 and got farther, including the message about the actor runtime starting. So in my case, it looks like the Curious Case of Incorrect Port Assignment.
time="2022-04-19T18:34:41.6623525-04:00" level=info msg="application discovered on port 5001" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-19T18:34:41.6629852-04:00" level=warning msg="[DEPRECATION NOTICE] Adding a default content type to incoming service invocation requests is deprecated and will be removed in the future. See https://docs.dapr.io/operations/support/support-preview-features/ for more details. You can opt into the new behavior today by setting the configuration option `ServiceInvocation.NoDefaultContentType` to true." app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-19T18:34:41.9780762-04:00" level=info msg="application configuration loaded" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0
time="2022-04-19T18:34:41.9791668-04:00" level=info msg="actor runtime started. actor idle timeout: 1h0m0s. actor scan interval: 30s" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime.actor type=log ver=1.7.0
time="2022-04-19T18:34:42.0117528-04:00" level=info msg="dapr initialized. Status: Running. Init Elapsed 4400.9219ms" app_id=teletodoapp instance=LAPTOP-EOLFRVG5 scope=dapr.runtime type=log ver=1.7.0

I have a different error occurring, but it may be me doing Dapr wrong:
Dapr.DaprApiException: error invoke actor method: error finding address for actor type ChatActor with id 1365

@rheckart - Glad we're making progress!
Do you see any messages like this:
INFO[0004] placement tables updated, version: 76         app_id=generator instance=Hals-MacBook-Pro.local scope=dapr.runtime.actor.internal.placement type=log ver=edge
INFO[0006] placement tables updated, version: 77         app_id=generator instance=Hals-MacBook-Pro.local scope=dapr.runtime.actor.internal.placement type=log ver=edge

After your app starts? The versions are probably different, but you should see those if you're getting updates from the placement service.
If you do see that, what do you get from calling /dapr/config when pointing at your local app? That'll show you what actor type is registered.

@halspang It was me doing Dapr wrong - I was messing with the placementHostAddress property for the VSCode tasks to see if that was the original issue. I had it set to the incorrect address and port number. Setting it to localhost:50005 fixed my issue - I'm all set at this point - thanks for the assistance! Hopefully it will help others.

@darthmolen - Were you able to get past your issue? If not, can you share some logs so we can troubleshoot it?

Closing this issue as it seems things were resolved. Feel free to re-open or create a new issue if you're still experiencing problems.


[feature]: Provide a command line option to "check" and "fix" issues so that it can be used with pre-commit hooks and become more useful.

Issue
I found the Plugin to be very useful but it currently only show issues in IDE. If I commit a file with issues hidden in multiple files, it has no problem committing them.
Suggestion
Provide command line options to check and fix (fixable issues) so that those commands can be added with pre-commit hooks and can be run together with other linting checks to improve tests.

I realised that the issues were only non-blocking for the files that were already committed before the rules were implemented. For a new file, the errors and warnings were blocking in nature.
I also realised that there is no separate command for fixing issues except the eslint command i.e.  "npx eslint . --fix". It is good to mention that in the readme file.
Apart from that it would be good to add more examples of which settings can be overriden and how in readme file apart from additionalAssertFunctionNames. I wanted to change the level of few settings from warning to error or vice versa but couldnt get them to work. I am using the .eslintrc.cjs file format.

It doesn't make sense for this plugin to document everything about how ESLint works. That would be a huge maintenance burden if every single ESLint plugin had to do so. If you want to know how ESLint works and it's available command line options, their docs are great, read them.
As for settings, everything is well documented.  Each rule has a full page of documentation which is linked to from the readme. additionalAssertFunctionNames is a global setting which is why it's included in the readme.
I'm closing this issue as there is nothing actionable for this plugin.

d. Each rule has a full page of documentation which is linked to from the readme. additionalAssertFunctionNames is a global setting which is why it's included in the readme.
I'm closing this issue as there is nothing actionable for this plugin.

Hmmm, okay. I am coming from a decent Java background but am completely new to the TypeScript + Playwright eco system. I migrated because I love what you guys have done with Playwright and Typescript.
In fact, I do love reading official documentation and read the complete user guide for Playwright, Prettier and typescript-eslint so far. The reason I am mentioning this is, even after all this I was lost for some time just because I am new to this eco system. Imagine how it will be for users, who dont take the efforts to read official docs?
One approach could be to say, screw them, they didnt read the docs but if we want to make more and more users to migrate to playwright, another approach could be to make it a little easier for new users to onboard and if that means adding a little redundancy with one or two lines of information, its not a bad idea after all?
P.S: The setting options are all available on GitHub and I both read all of those options and even tried to override them from my local machine to see if that works. Only after I was not able to succed I asked if it could be a good idea to take just one setting and show how to override it from the project.
If you still think its a terrible idea, then I wouldn't press it further. Cheers and kudos again for making a great product and also this plugin - which I love :).

@PramodKumarYadav Did you read the ESLint docs? You mentioned the Playwright, Prettier, and TypeScript-ESLint docs, but if you never mentioned reading the actual ESLint docs.
If you look at the many other ESLint plugins that are available, you will find that among the most popular plugins, none of them give step by step instructions about using the --fix option, using commit hooks, etc. They show how to use the plugin itself, not ESLint. I'm very firm on this being correct, it is not the responsibility of a plugin author to teach users how to use ESLint itself.
It is however the responsibility of plugin authors to make sure that you can easily use the plugin, which I think we have done well in this plugin given that we have extensive documentation for each rule as well as extensive documentation on setting up the plugin in the README.
It's not that we are saying to users "screw you" if you don't read the docs. Again, it's about what the plugin controls and therefore needs to document. Regarding the point about getting more people to migrate to Playwright, as a community maintained plugin, that's not really something I'm worried about. If users choose Playwright great, if not great. My goal in maintaining this project is to provide the best possible lint rules when using Playwright. My goal is not to get people to migrate away from Cypress, Selenium, Puppeteer, etc.
Hope this context helps. Maintaining open source software is a constant battle of priorities and opinions, as a maintainer it's about getting the balance right, and sadly that doesn't always please everyone.

@PramodKumarYadav Did you read the ESLint docs? You mentioned the Playwright, Prettier, and TypeScript-ESLint docs, but if you never mentioned reading the actual ESLint docs.
If you look at the many other ESLint plugins that are available, you will find that among the most popular plugins, none of them give step by step instructions about using the --fix option, using commit hooks, etc. They show how to use the plugin itself, not ESLint. I'm very firm on this being correct, it is not the responsibility of a plugin author to teach users how to use ESLint itself.
It is however the responsibility of plugin authors to make sure that you can easily use the plugin, which I think we have done well in this plugin given that we have extensive documentation for each rule as well as extensive documentation on setting up the plugin in the README.
It's not that we are saying to users "screw you" if you don't read the docs. Again, it's about what the plugin controls and therefore needs to document. Regarding the point about getting more people to migrate to Playwright, as a community maintained plugin, that's not really something I'm worried about. If users choose Playwright great, if not great. My goal in maintaining this project is to provide the best possible lint rules when using Playwright. My goal is not to get people to migrate away from Cypress, Selenium, Puppeteer, etc.
Hope this context helps. Maintaining open source software is a constant battle of priorities and opinions, as a maintainer it's about getting the balance right, and sadly that doesn't always please everyone.

@mskelton : Okay. I hear you. I started reading ESLint docs but went ahead to read TypeScript-ESLint docs when I realised for typescript those were the relevant ones; But taking your advice, I will finish the ESLint docs too.
I can still use some pointers with overriding settings. Lets say if I want to override a particular rule setting from playwright-pugin (example this one: https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/no-useless-not.md), where can I find an example of this?
Is it somewhere in this project or mentioned on the ESLint docs?

You are probably looking for this: https://eslint.org/docs/latest/use/configure/rules#disabling-rules


Missed param/filtered directory

Hi,
It looks like that you missed the param/filtered folder.
Could you upload those indices pt files?
Thank you,
Zhaoning

HI Zhaoning,
As indicated in README: the filtered indices are generated from train/refine_train.py
Since the indices would be different if you use different GNNs and data splits, I think it would be better to re-generate them.

I will create another file for the dataset filtering, though. I guess you encountered this problem when using non-parameterized explainers first. Note if you just want to do the explaining, you may not filter the dataset.

Thank you for your reply.
I regenerate the indices using refine_train.py.
But I can only get accuracy around 0.781 with the setting in run.sh ( python refine_train.py --dataset mutag --hid 100 --epoch 100 --ratio 0.4 --lr 1e-3 )
Could you tell me the setting for reproducing the accuracy in your paper?
Thank you,
Zhaoning

It would be better for you to specify what GNN did you use. Also, did you try different random seeds?

I retrained gnns by running gnns/run.sh.
I mean the output of both refine_train.py and example.py.
I have read the code. The ACC-AUC is the mean of all accuracy with different select ratios, right?
I did not try different random seeds, because the result I get is way less than the accuracy reported in the paper. ( 0.781 and 0.955).
I think it may be caused by the wrong setting I am using.
The steps I am doing:

python mutag_gnn.py
python refine_train.py --dataset mutag --hid 100 --epoch 100 --ratio 0.4 --lr 1e-3
python example.py  ( I changed codes in example.py for mutag dataset)
Also, I am using all default settings in those files.

Thank you,
Zhaoning

example.py is for evaluting baseline methods, which requires to specify an explanatory method.

I suppose different GNNs will make some difference on the performance of all explanatory methods. Thus, you could try to use the one provided to see if it was caused by the GNN model.

I run evaluate.py and get acc-auc 0.7884 with R-1.00.
I changed the default dataset from ba3 to mutag in the evaluate.py. Do I need to change other parameters?

Also, what is the select ratio for refine_ft?
The default is 0.4, do I need to change it?

pls try the default GNN first to see if this decline is caused by the GNN.

I have tried the default GNN and can get ACC-AUC around 0.946.
Could you tell me how to reproduce the default GNN and how to achieve the 0.978 in your paper?
Also, if I want to explain other GNNs, how can I change the settings?

In the paper, we reported 0.945 and 0.955 for ReFine-FT and ReFine, not 0.978. Note this two results are close in this dataset.

I have fixed the random seeds in the code. My settings follow exactly the same routines as yours, and the outputs are included in the log folder.
I guess the this problem might be caused by pytorch or the difference of the machines (I am not an expert of this). So my suggestions are that you could try different seeds in training the GNNs in case you use some really bad seeds, and compare the relative improvements of Refine above the baselines.
I will close this since what we discuss doesn't fit the title. You can open another if you need further discussion. Thanks.


[Improvement] README text shown on notes of the workflow step

The First workflow step shows README text. I am not certain how the text went into those boxes

The boxes are mainly here to explain what the step is doing, rather than writing where to file issues.

I am aware of how to change it, but I thought as an improvement for other users.
Another improvement: I am seeing you addicted to emoji icons ;) but less would be more ;)


Don't Bind An Existing Queue

If a queue already exists, we should not bind it with #.
See SO Question.

Maybe we should throw an exception if the existing infrastructure doesn't meet the expectations of Spring Cloud Stream ? On one hand we do have requirements for options to configure the routing key, e.g. https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/23 - on the other hand, my concern is that it makes it easy to make things unpredictable (e.g. the behaviour of a group of applications will be understood only if one looks at the way queues are set up - I guess that's okay when using AMQP directly, but I do wonder if it extends to Stream apps).

@mbogoevici We have talked before about "opening up" the binder config - perhaps it's giving users enough rope to hang themselves with but how about...
spring.cloud.stream.rabbit.bindings.input.consumer.exchange-type=topic (default)
spring.cloud.stream.rabbit.bindings.input.consumer.exchange-name= (default = destination)
spring.cloud.stream.tabbit.bindings.input.consumer.routing-key=# (default for non-partitioned)

Partitions are currently bound with name-<instanceIndex> - either we disallow routing-key when partitioned, or suffix with -<instanceIndex>.
Also, perhaps
spring.cloud.stream.rabbit.bindings.input.consumer.bind-to-exchange=true (default)


[core] move away from using qs for query string parsing

Instead of using qs library for query string search, this can be handled more reliably with the native URL Search Parameters - https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
cc - @xirzec

maybe related to work in #8535

This was already done in core-https

Re-opening as qs is being used in Identity

Updated the title to make the current focus of this issue easier to parse


Validation loss

Hi!
I am adapting the method to my own dataset and I want to make sure that the model does not overfit. How did you choose the number of epochs for the different tasks? Did you calculate the validation loss to see when it diverged from the training loss, or did you only look at the metrics such as current known mAP etc to see when they started to decline?
BR,
Hanna

Hi @hannalovisao,
I usually looked at the ratio between the known and unknown mAP and tried to find a good ratio between the two.
Usually, both known mAP and U-Recall go up in the beginning -  U-Recall faster than K-mAP. Then, K-mAP as K-mAP goes up U-Recall starts going down.

Best,
Orr


AdvFilter does not show an error to the user when invalid operator is provided

Instead the error can only be seen in the terminal.

Could possibly address this issue with the same error-catching mechanism that catches invalid command formats

Add an error


support multi prompts

p.prompt is list|str

@pythias
Thanks for sending the PR!
I did not know that p.prompt could be a list. Thanks for letting me know. If you don't mind, could you please tell me the specific operation of the case where p.prompt becomes a list? Because I would like to see what problems the existing implementation causes and how it can be improved with this PR.

@ototadana When I want to generate multiple styles in one api request, like the script '/stable-diffusion-webui/scripts/prompt_matrix.py'

@pythias
Thank you for your reply.
I apologize for my lack of understanding. Am I correct in understanding that this is a case of API calls only, not UI operations? And that you want to apply different prompts to each of the generated images?
If this understanding is correct, could you give me an example of a request for an API call, if you don't mind? I am quite interested in such a use case and would like to study it. (If this understanding is incorrect and could happen with UI operations, I would like to know the actual operation.)
Thank you.

@ototadana
Thank you for your reply.
You can call like this params
curl -X POST -H "Content-Type: application/json" 'https://<IP_ADDRESS>:7860/sdapi/v1/txt2img' -d '{"prompt":"winter|spring","script_name":"prompt matrix","script_args":[true,true,"positive","comma",10]}'

However, since the number of images returned by the face editor is twice the original number, it caused an error  (  File "./stable-diffusion-webui/modules/images.py", line 179, in draw_grid_annotations     assert cols == len(hor_texts), f'bad number of horizontal texts: {len(hor_texts)}; must be {cols}') when SD was drawing the grid. I remember that in a certain version, you provided the option to return only the final result.
谢谢你

@ototadana
In the extension I wrote, this is how I used it. I wrapped the original SD interface. When there are multiple style requests in the interface, I would modify the 'prompt' attribute in the StableDiffusionProcessing object.
def apply_multi_process(p: StableDiffusionProcessing):
    prompts = to_multi_prompts(p.prompt)
    if len(prompts) == 1:
        return

    processing.fix_seed(p)
    same_seed = get_extra_value(p, 'same-seed', False)

    p.prompt = prompts
    p.batch_size = 1
    p.n_iter = len(p.prompt)
    p.seed = [p.seed + (0 if same_seed else i) for i in range(len(p.prompt))]

https://github.com/pythias/sd-character-extension/blob/3475674df521e116de55d16c33b7432ac65c59a4/character/models.py#L171

@pythias
Thank you very much for your detailed explanation. You have given me a better understanding of the issues.
What do you think of the following modification to the proc_images function?
        if type(p.prompt) == list:
            p.prompt = p.prompt[i]
        proc = self.proc_image(p, option, image)

If there is no problem with such a modification, I would be willing to implement a modification based on this on my end after merging this PR. (I'm thinking of perhaps a slightly pessimistic implementation that would work even if len(res.images) and len(p.prompt) do not match, similar to the treatment for p.seed and p.subseed.)

However, since the number of images returned by the face editor is twice the original number, it caused an error

Thank you. This is another issue. We will be adding new options to address this.

@ototadana
Your implement is better, thank you.

@pythias
Thank you very much.


On Android/iOS tags can't be deleted

When I visit the demo page in Safari or Chrome on my iPad or iPhone tags aren't deleted when tapping on the "x" in the tag or when the backspace key on the virtual keyboard is pressed. When the backspace key is pressed the tag is selected/highlighted and the keyboard hides without deleting. The same thing happens in Chrome on my Android tablet.
Clicking on the "x" with a mouse on my desktop in Safari or Chrome or using the delete/backspace key on my desktop does delete tags.

My android Chrome $event.keyCode is always 229, and $event.key is not supported (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key). Should we update the code since keyCode is deprecated due to https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

I'm working on this, please wait #266

When will this be fixed?

I can't promise, may be next week. I am now on deadline of my daily works 😅

@noomz @Gbuomprisco Has this bug fixed yet? I see #266 has not been merged. Thanks you!

In testing this with Ionic 3.4.0/Angular 4 deleting by tapping on the "X" it seems to work on iOS and Angular all the time. On an older/slower iPad there is a timing issue where the tag will select but not delete.

On Android everything is working fine. FWIW on iOS selecting from the autocomplete dropdown doesn't work. It could be interacting with the focus or the hide/show of the mobile keyboard is moving divs around on the tap(?).


Changing indent of aligned lines loses alignment

When I have code like
function foo(array){
[TAB]array.map(a=>a[0])
[TAB]     .filter(a=>a);
}

I can change indentation by selecting one or more lines and pressing CTRL+].  Unfortunately, during this process the alignment spaces are converted into tabs rather than preserved.

This plugin only registers key bindings for TAB (Alignment Preserving Indent), SHIFT+TAB (Alignment Preserving Outdent) and ENTER (Alignment Preserving Newline).
If you would like CTRL+] and CTRL+[ to preserve alignment as well, you can change those key bindings to perform the alignment preserving commands mentioned above rather than the default commands provided by the editor.
Please let me know if that works for you, as I would prefer keeping the number of key bindings registered by this plugin to a minimum.

That does fix it, thanks!  I guess I just assumed that it would set those immediately.


Update ReadMe for a Step Describing Gradle wrapper

Added recommendation to add the Gradle wrapper command.
Issue #, if available:
Description of changes:
By submitting this pull request

[ ] I confirm that my contribution is made under the terms of the Apache 2.0 license.
[ ] I confirm that I've made a best effort attempt to update all relevant documentation.

huynya


Instance Generation should provide Regex compatible values for fields

Is your feature request related to a problem? Please describe.
When generating a JSON instance for a model with fields that have regex constraints, the generated instances are not valid instances of the model.
Describe the solution you'd like
We should use a library such as https://github.com/fent/randexp.js, to safely create sample values that are compatible with regex annotations on models.
This will allow upstream tools (such as concerto-ui) to generate values that are valid instances of the model

@mttrbrts Is this issue closed by #178 ?

Yes, thank you!


xrdp file copy slow

using xrdp + neutrinordp as an rdp proxy（build in my linux server）, copy file from remote windows server to PC,
transfer speed is very slow, About 30K/s. I use mstsc to connect directly to my server,speed is fast, About 3M/s.
Is there anything I didn't realize? Is there a switch option to adjust?Any suggestion is appreciated.
xrdp version: 0a669c5b06c120ea105a95d74807c45067f05206
neutrinordp version: f26ff2539f7f28121bc06c9623f1ae7dea76ad35
OS: CentOS
PC: Windows 10
mstsc.exe: 10.0.19041
remote windows server: Windows Server 2016

i redirect my pc drive to remote server, and i copy file to the drive


Translate task timeout exits to errors to retain plugged conn

So here’s the problem I’m with Bottler error-tracking:

The vast majority of our errors are task timeouts. When a task times out, it throws an :exit signal. There is no option to raise an error here. https://github.com/absinthe-graphql/absinthe/blob/master/lib/absinthe/middleware/async.ex#L86
With the changes I made recently, that :exit is caught by absinthe-plug and wrapped in a Plug.Conn.WrapperError, but, because :exit is not :error, the conn isn’t wrapped in the error and important context is lost. Importantly, the conn has callbacks attached with are necessary to close the trace at the end of the request.

Here's where the :exit is caught and re-raised: https://github.com/wistia/absinthe_plug/blob/master/lib/absinthe/plug.ex#L325
Here's where you can see that only :errors wrap the conn: https://github.com/elixir-plug/plug/blob/main/lib/plug/conn/wrapper_error.ex

These two places--where the task is awaited and where absinthe-plug catches the :exit are afaict the only places we can do something about it. So we've got two choices:

Move to a fork of absinthe, and apply one of the patches mentioned in the issue @blatyo opened 1.5 years ago: https://github.com/absinthe-graphql/absinthe/issues/1117
Pretend that timeout exit signals caught by this plug are actually errors. Which, like, they are, for all intents and purposes--if a task times out, the user will see a 500.

Since we already have this fork anyway, and since this plug does relatively light lifting as compared to absinthe itself, I think we should just do this.

Going to do this instead: https://github.com/wistia/bottler/pull/265


how make search field to filter tree data

Hey, sorry for the delayed response.
This is currently not supported, I haven't played around with filtering yet.

Thanks for your response !


feat: add pnpm/pnpm

Thank you for a great tool!
This is my first contribution, so please point out any mistakes strictly.
pnpm/pnpm: Fast, disk space efficient package manager
$ aqua g -i pnpm/pnpm

How to confirm if this package works well
Reviewers aren't necessarily familiar with this package, so please describe how to confirm if this package works well.
Please confirm if this package works well yourself as much as possible.
Command and output

$ which pnpm
/Users/t/.local/share/aquaproj-aqua/bin/pnpm
$ pnpm -h
INFO[0000] download and unarchive the package            aqua_version=2.27.0 env=darwin/arm64 exe_name=pnpm package_name=pnpm/pnpm package_version=v9.0.2 program=aqua registry=standard
Version 9.0.2 (compiled to binary; bundled Node.js v18.5.0)
Usage: pnpm [command] [flags]
       pnpm [ -h | --help | -v | --version ]

Manage your dependencies:
      add                  Installs a package and any packages that it depends on. By default, any new package is installed as a prod dependency
      import               Generates a pnpm-lock.yaml from an npm package-lock.json (or npm-shrinkwrap.json) file
   i, install              Install all dependencies for a project
  it, install-test         Runs a pnpm install followed immediately by a pnpm test
  ln, link                 Connect the local project to another one
      prune                Removes extraneous packages
  rb, rebuild              Rebuild a package
  rm, remove               Removes packages from node_modules and from the project's package.json
      unlink               Unlinks a package. Like yarn unlink but pnpm re-installs the dependency after removing the external link
  up, update               Updates packages to their latest version based on the specified range
...

If files such as configuration file are needed, please share them.

No additional configuration required

Reference

https://pnpm.io/installation
https://github.com/pnpm/pnpm/releases

Thank you for your contribution!

The repository https://github.com/pnpm/pnpm has too many GitHub Releases (922),
so I think you have to specify cmdx s' -limit option.
e.g.
cmdx s -limit 200 pnpm/pnpm

Then cmdx s would work well.

@suzuki-shunsuke Thank you for your comments.
I didn't realize cmdx s was failing. I manually wrote code using other packages as a reference, instead of using the blank file that was generated :)
The generated code is better than mine.
Thank you for the great tool.

I'm testing if pnpm works, but it seems sometimes pnpm doesn't work well.

Install pnpm by aqua

$ pnpm -v
9.0.2

$ aqua which pnpm
/Users/shunsukesuzuki/.local/share/aquaproj-aqua/pkgs/github_release/github.com/pnpm/pnpm/v9.0.2/pnpm-macos-arm64/pnpm-macos-arm64

Set up a test environment

$ mkdir hello
$ cd hello
$ echo '{
  "name": "pnpm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "typescript": "^5.4.5"
  }
}' > package.json

Try to install typescript by pnpm, then it failed.

$ pnpm add typescript
 ENOENT  not found: node

This error happened while installing a direct dependency of /Users/shunsukesuzuki/Documents/test/pnpm/hello

pnpm: not found: node
    at getNotFoundError (/snapshot/dist/pnpm.cjs)
    at Function.whichSync [as sync] (/snapshot/dist/pnpm.cjs)
    at getCommandAbsolutePathSync (/snapshot/dist/pnpm.cjs)
    at Object.sync (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at checkPackage (/snapshot/dist/pnpm.cjs)
    at packageIsInstallable (/snapshot/dist/pnpm.cjs)
    at resolveAndFetch (/snapshot/dist/pnpm.cjs)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

The error message is not found: node, but node is installed already.
$ which node
/Users/shunsukesuzuki/.volta/bin/node

$ node -v
v20.11.0

We can execute pnpm via aqua exec -- pnpm.

$ aqua exec -- pnpm add typescript
Packages: +1
+
Progress: resolved 1, reused 1, downloaded 0, added 1, done

dependencies:
+ typescript 5.4.5

Done in 336ms

pnpm add typescript failed, but pnpm add sax succeeds.
$ pnpm add sax
Packages: +1
+
Progress: resolved 2, reused 2, downloaded 0, added 1, done

dependencies:
+ sax 1.3.0

Done in 200ms

$ pnpm add typescript
 ENOENT  not found: node

This error happened while installing a direct dependency of /Users/shunsukesuzuki/Documents/test/pnpm/hello

pnpm: not found: node
    at getNotFoundError (/snapshot/dist/pnpm.cjs)
    at Function.whichSync [as sync] (/snapshot/dist/pnpm.cjs)
    at getCommandAbsolutePathSync (/snapshot/dist/pnpm.cjs)
    at Object.sync (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at checkPackage (/snapshot/dist/pnpm.cjs)
    at packageIsInstallable (/snapshot/dist/pnpm.cjs)
    at resolveAndFetch (/snapshot/dist/pnpm.cjs)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Progress: resolved 1, reused 1, downloaded 0, added 0

I'm not sure why pnpm add typescript fails, but Unlike aqua exec -- pnpm, pnpm is executed via symbolic links and aqua-proxy.
https://aquaproj.github.io/docs/reference/lazy-install/#how-does-lazy-install-work
Some tools don't work well due to these symbolic links and aqua-proxy.
Not only typescript, other packages such as express and renovate can't be installed.
$ pnpm add react
 ENOENT  not found: node

This error happened while installing a direct dependency of /Users/shunsukesuzuki/Documents/test/pnpm/hello

pnpm: not found: node
    at getNotFoundError (/snapshot/dist/pnpm.cjs)
    at Function.whichSync [as sync] (/snapshot/dist/pnpm.cjs)
    at getCommandAbsolutePathSync (/snapshot/dist/pnpm.cjs)
    at Object.sync (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at checkPackage (/snapshot/dist/pnpm.cjs)
    at packageIsInstallable (/snapshot/dist/pnpm.cjs)
    at resolveAndFetch (/snapshot/dist/pnpm.cjs)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Progress: resolved 0, reused 1, downloaded 0, added 0

$ pnpm add express
 ENOENT  not found: node

This error happened while installing a direct dependency of /Users/shunsukesuzuki/Documents/test/pnpm/hello

pnpm: not found: node
    at getNotFoundError (/snapshot/dist/pnpm.cjs)
    at Function.whichSync [as sync] (/snapshot/dist/pnpm.cjs)
    at getCommandAbsolutePathSync (/snapshot/dist/pnpm.cjs)
    at Object.sync (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at getSystemNodeVersionNonCached (/snapshot/dist/pnpm.cjs)
    at checkPackage (/snapshot/dist/pnpm.cjs)
    at packageIsInstallable (/snapshot/dist/pnpm.cjs)
    at resolveAndFetch (/snapshot/dist/pnpm.cjs)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Progress: resolved 0, reused 1, downloaded 0, added 0

https://github.com/pnpm/pnpm/blob/65df252783f430bc5f1a2505d22e9107a4e4023f/config/package-is-installable/src/getSystemNodeVersion.ts#L1-L12
import mem from 'mem'
import * as execa from 'execa'

export function getSystemNodeVersionNonCached (): string {
  // @ts-expect-error
  if (process['pkg'] != null) {
    return execa.sync('node', ['--version']).stdout.toString()
  }
  return process.version
}

export const getSystemNodeVersion = mem(getSystemNodeVersionNonCached)

@suzuki-shunsuke
I created a simple project and re-tested it, and pnpm command was successful in my environment.
https://github.com/tomoyamachi/aqua-pnpm-local-test
~/src/github.com/tomoyamachi/aqua-pnpm-local-test$ aqua policy allow "/Users/t/src/github.com/tomoyamachi/aqua-pnpm-local-test/aqua-policy.yaml"
~/src/github.com/tomoyamachi/aqua-pnpm-local-test$ pnpm info pnpm
INFO[0000] download and unarchive the package            aqua_version=2.27.0 env=darwin/arm64 exe_name=pnpm package_name=pnpm/pnpm package_version=v9.0.2 program=aqua registry=standard

<EMAIL_ADDRESS>| MIT | deps: none | versions: 1045
Fast, disk space efficient package manager
https://pnpm.io

keywords: pnpm9, dependency manager, install, installer, uninstall, remove, link, prune, shrinkwrap, lockfile, fast, rapid, efficient, package.json, packages, dependencies, symlinks, hardlinks, modules, npm, package manager, monorepo, multi-package, workspace:*

bin: pnpm, pnpx

dist
.tarball: https://registry.npmjs.org/pnpm/-/pnpm-9.0.4.tgz
.shasum: b198ac6d38244fd829253720f9daafd6a606834d
.integrity: sha512-w3S1LePeiMWP2DM99mSnNyec2w4TRLpAVNOx//qaGjZwhU91XcpPFq3qPxS+mJan/K8WdAn+DBrWBHUnHa/oGg==
.unpackedSize: 16.8 MB

maintainers:
- zkochan<EMAIL_ADDRESS>- pnpmuser<EMAIL_ADDRESS>
dist-tags:
dev: 6.23.7-202112041634  latest-3: 3.8.1           latest-6: 6.35.1          latest-9: 9.0.4           next-7: 7.33.7            pr4475: 0.0.0-pr4475.1
latest-1: 1.43.1          latest-4: 4.14.4          latest-7: 7.33.5          latest: 9.0.4             next-8: 8.15.7
latest-2: 2.25.7          latest-5: 5.18.10         latest-8: 8.15.7          next-6: 6.35.1            next-9: 9.0.4

~/src/github.com/tomoyamachi/aqua-pnpm-local-test$ echo '{
  "name": "pnpm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "typescript": "^5.4.5"
  }
}' > package.json
~/src/github.com/tomoyamachi/aqua-pnpm-local-test$ pnpm add react

   ╭─────────────────────────────────────────────────────────────────╮
   │                                                                 │
   │                Update available! 9.0.2 → 9.0.4.                 │
   │   Changelog: https://github.com/pnpm/pnpm/releases/tag/v9.0.4   │
   │         Run a script from: https://pnpm.io/installation         │
   │                                                                 │
   │     Follow @pnpmjs for updates: https://twitter.com/pnpmjs      │
   │                                                                 │
   ╰─────────────────────────────────────────────────────────────────╯

Packages: +4
++++
Progress: resolved 4, reused 4, downloaded 0, added 4, done

dependencies:
+ react 18.2.0
+ typescript 5.4.5

Done in 692ms

My environments

macOS 14.4.1（23E224）
Apple M1

$ which node
/opt/homebrew/bin/node
$ node -v
v20.8.0

$ which pnpm
/Users/t/.local/share/aquaproj-aqua/bin/pnpm
$ pnpm -v
9.0.2

Next step
I will create a sample docker container to test behaviors when node is not installed.

My environment: M3 Pro
I installed node with volta.
I tried to install node with Homebrew, then the issue was solved.
$ brew install node@20
$ export PATH="/opt/homebrew/opt/node@20/bin:$PATH"
$ which node
/opt/homebrew/opt/node@20/bin/node

$ ls -lh /opt/homebrew/opt/node@20/bin/node
-r-xr-xr-x 1 shunsukesuzuki admin 47M  4 19 11:46 /opt/homebrew/opt/node@20/bin/node

/opt/homebrew/opt/node@20/bin/node isn't a symbolic link.
Then pnpm add typescript succeeded.
$ pnpm add typescript
Packages: +1
+
Progress: resolved 1, reused 1, downloaded 0, added 1, done

dependencies:
+ typescript 5.4.5

Done in 440ms

So it seems aqua-proxy and Node.js version manager are related to this issue.

@suzuki-shunsuke
I'm not considering it at the moment, but I plan to create a Debian-based node image.
https://aquaproj.github.io/docs/tutorial#docker

Do you think it would be better to include node in aqua as well?

What do you mean?

I created a simple project and re-tested it, and pnpm command was successful in my environment.

How do you install Node.js?

I wanted to know how you installed Node.js (So I should have asked How did you install Node.js?).
If you installed Node.js with Homebrew and pnpm worked well, this was consistent with my expectation.
But if you installed Node.js with Node.js version manager such as Volta but pnpm worked well, this was inconsistent with my expectation.

I tried the Docker image node:21.7.3-bookworm, then pnpm worked well.
docker run --rm -ti  node:21.7.3-bookworm bash

apt update
apt install -y curl vim

mkdir ~/workspace
cd ~/workspace
export PATH="${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua}/bin:$PATH"
curl -sSfL -O https://raw.githubusercontent.com/aquaproj/aqua-installer/v3.0.0/aqua-installer
echo "8299de6c19a8ff6b2cc6ac69669cf9e12a96cece385658310aea4f4646a5496d  aqua-installer" | sha256sum -c

chmod +x aqua-installer
./aqua-installer

git init
echo 'packages:
  - type: github_release
    repo_owner: pnpm
    repo_name: pnpm
    description: Fast, disk space efficient package manager
    version_constraint: "false"
    version_overrides:
      - version_constraint: "true"
        asset: pnpm-{{.OS}}-{{.Arch}}
        format: raw
        windows_arm_emulation: true
        replacements:
          amd64: x64
          darwin: macos
          windows: win' > registry.yaml
echo '---
# aqua Policy
# https://aquaproj.github.io/
registries:
# Example
  - name: local
    type: local
    path: registry.yaml
# - name: aqua-registry
#   type: github_content
#   repo_owner: aquaproj
#   repo_name: aqua-registry
#   ref: semver(">= 3.0.0") # ref is optional
#   path: registry.yaml
  - type: standard
    ref: semver(">= 3.0.0")
packages:
# Example
  - registry: local # allow all packages in the Registry
# - name: cli/cli # allow only a specific package. The default value of registry is "standard"
# - name: cli/cli
#   version: semver(">= 2.0.0") # version is optional
  - registry: standard' > aqua-policy.yaml

echo '---
# aqua - Declarative CLI Version Manager
# https://aquaproj.github.io/
# checksum:
#   enabled: true
#   require_checksum: true
#   supported_envs:
#   - all
registries:
- type: standard
  ref: v4.163.0 # renovate: depName=aquaproj/aqua-registry
- type: local
  name: local
  path: registry.yaml
packages:
- name<EMAIL_ADDRESS>  registry: local' > aqua.yaml

aqua policy allow
aqua i

$ pnpm add typescript
Packages: +1
+
Progress: resolved 1, reused 0, downloaded 1, added 1, done

dependencies:
+ typescript 5.4.5

Downloading<EMAIL_ADDRESS>5.83 MB/5.83 MB, done
Done in 630ms

We should try Node Version manager such as Volta and nvm too.

If I installed Node.js with nvm on a container, then pnpm worked well.
docker run --rm -ti debian:bookworm-20231009 bash

apt update
apt install -y curl vim

mkdir ~/workspace
cd ~/workspace
export PATH="${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua}/bin:$PATH"
curl -sSfL -O https://raw.githubusercontent.com/aquaproj/aqua-installer/v3.0.0/aqua-installer
echo "8299de6c19a8ff6b2cc6ac69669cf9e12a96cece385658310aea4f4646a5496d  aqua-installer" | sha256sum -c

chmod +x aqua-installer
./aqua-installer

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
nvm install 20

export AQUA_POLICY_CONFIG=$PWD/aqua-policy.yaml
echo 'packages:
  - type: github_release
    repo_owner: pnpm
    repo_name: pnpm
    description: Fast, disk space efficient package manager
    version_constraint: "false"
    version_overrides:
      - version_constraint: "true"
        asset: pnpm-{{.OS}}-{{.Arch}}
        format: raw
        windows_arm_emulation: true
        replacements:
          amd64: x64
          darwin: macos
          windows: win' > registry.yaml
echo '---
# aqua Policy
# https://aquaproj.github.io/
registries:
# Example
  - name: local
    type: local
    path: registry.yaml
# - name: aqua-registry
#   type: github_content
#   repo_owner: aquaproj
#   repo_name: aqua-registry
#   ref: semver(">= 3.0.0") # ref is optional
#   path: registry.yaml
  - type: standard
    ref: semver(">= 3.0.0")
packages:
# Example
  - registry: local # allow all packages in the Registry
# - name: cli/cli # allow only a specific package. The default value of registry is "standard"
# - name: cli/cli
#   version: semver(">= 2.0.0") # version is optional
  - registry: standard' > aqua-policy.yaml

echo '---
# aqua - Declarative CLI Version Manager
# https://aquaproj.github.io/
# checksum:
#   enabled: true
#   require_checksum: true
#   supported_envs:
#   - all
registries:
- type: standard
  ref: v4.163.0 # renovate: depName=aquaproj/aqua-registry
- type: local
  name: local
  path: registry.yaml
packages:
- name<EMAIL_ADDRESS>  registry: local' > aqua.yaml

aqua policy allow
aqua i

pnpm add typescript
Packages: +1
+
Progress: resolved 1, reused 0, downloaded 1, added 1, done

dependencies:
+ typescript 5.4.5

Downloading<EMAIL_ADDRESS>5.83 MB/5.83 MB, done
Done in 708ms

I tried Volta on a container, but unfortunately, volta doesn't support linux/arm64.
root@e054e6d42d7c:~/workspace# curl https://get.volta.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10930  100 10930    0     0  13880      0 --:--:-- --:--:-- --:--:-- 13870
Error: Sorry! Volta currently only provides pre-built binaries for x86_64 architectures.

If I installed Node.js with nvm on M3 Pro, pnpm worked well.
Unlike volta, nvm changes PATH dynamically instead of using symbolic links.
$ ls -lh /Users/shunsukesuzuki/.config/nvm/versions/node/v20.12.2/bin/node
-rwxr-xr-x 1 shunsukesuzuki staff 90M  4 10 23:28 /Users/shunsukesuzuki/.config/nvm/versions/node/v20.12.2/bin/node

If I installed Node.js with fnm on M3 Pro, pnpm worked well.
pnpm worked on most environments except for my environment (M3 Pro + Volta), so I think we can accept pnpm.

v4.164.0 is out 🎉
https://github.com/aquaproj/aqua-registry/releases/tag/v4.164.0

@suzuki-shunsuke
I apologize for the late response. Thank you for your generous support!


Log operator warnings only in verbose mode

Resolves https://github.com/microsoft/DeepSpeed/issues/5448


Add option to generate diagram without committing and pushing.

Playing around with it locally, I very much didn't expect it to automatically try to push my changes.

This duplicates #16 .

You're right.


Parsing test case

Please add it to ensure code that parses before still parses after you change grammar

I think the issue be closed by now


BUG: return cell fields instead of ordinal numbers on cell content or provide row signature in table schema

when clicking on a cell of the type

instead of returning just the ordinal numbers (which is synticatically also correct) the field id's should be returned ( in this case street, zip, city, country )
At the moment this information is not displayed anywhere, but it is essential for writing queries.

An alternative way would be to add this info on the left side, where now only row is displayed and no more additional info
This is essential when querying document based databases like mongodb via trino.
Thanks
Ognian

Funny:

if I set the type of address to varchar I get the above display which is correct
Could someone please explain to me why when setting the json to archer it works and why if I enter the correct row(...) signature it doesn't?

OK this is actually a BUG:
if I get the correct content output by setting the type to varchar it is not possible to select i.e address.zip BUT if I set the correct type to row("street" varchar,"zip" varchar,"city" varchar,"country" varchar) I can select address.zip but get the array  display and have actually no way to figure out that there is an address.zip field

still a problem in Superset 2.0.0 :( ... would be great if this would not get forgotten.

Faced with same issue.

Tempted to close this as stale, but it's still likely the same in Superset 3.1. Curious if any users of Trino (or Drill, etc) that connect to MongoDB want to open a proposal/PR to tackle this. This may also touch on the data catalog work that @betodealmeida is tackling, and the revised database navigation UI that @justinpark is tackling.

Hi all! Since this continues to be silent, I'll reluctantly close it as stale. I'm not sure if this is still happening in 4.x or on master. If anyone affected by this wants to tackle it, or can replicate it still being an issue, we can reopen it if warranted. Thanks for understanding, as we try to whittle our way toward a more actionable Issues backlog.


Refactor all commands

The commands are becoming quite bloated inside one file so moving all commands to their respective files would be ideal.
Structuring the project source tree should be discussed what would make the most sense as there will be a lot of *Command.cs files if all commands are cut out. Some commands are shared between modes but most are mode specific.
All fitting change commands should use the new refactored format that was introduced in #28.

Looks good, I especially like the new refactored command format.
I'd recommend refactoring all commands into the new format before breaking them out into separate files, as I think it will significantly cut down on the number of command classes.
After that, maybe each mode should be assigned to a namespace, and all the mode-specific commands can live inside that namespace and corresponding project subfolder.

Also we should fix the tests (and probably add more tests) before refactoring to help guard against introducing new bugs; see https://github.com/hifi/monodevelop-justenoughvi/issues/35

There should always be a test based on real Vi/Vim behavior and test coverage isn't that good at the moment. Would it make sense to create an issue per every command that has no test coverage or would it take longer to create an issue for everything rather than just implement the test?
Would you be interested in commit access as you seem to know what you're doing? Joining the gitter channel for live discussion would also be nice if you plan on refactoring more.

Sure! Although I do like getting my code reviewed and PRs are a good way to do that. Will check out the chat when I have time. Thanks for responding so quickly to everything and taking my PRs.


[shader-slang] Update to version 2023.5.0

Updated version number and hashes

@microsoft-github-policy-service agree

I don´t think I was supposed to close that, sorry.

Please run:
vcpkg x-add-version shader-slang --overwrite-version
git add versions
git commit -m "Update version database"


Allow individual version managers to trigger manual Ruby selection

Motivation
First step for #2793
This PR passes down the manuallySelectRuby function to version managers in order to allow specific version managers to offer configuring fallbacks under certain situations.
Implementation
This PR only starts passing the function down to managers. The next PR in the stack starts using it.
Automated Tests
Updated existing tests.

#2836
#2835  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @vinistock and the rest of your teammates on  Graphite


fix #7916 by using DOTNET_RUNNING_IN_CONTAINERS env var to detect container

Fixes #7916
I was assigned this back before @natemcmaster got back :). Finally just decided to do it rather than punting it around. Testing this looks tricky, I'll do a quick manual pass once it lands in the SDK. It's a pretty simple change.
All the official .NET Core images set this environment variable (Windows and Linux) so it should serve as a reasonable first thing to look for and make us a little more resiliant to running in other container runtimes.

@aspnet-hello triage https://dev.azure.com/dnceng/public/_build/results?buildId=175726

This comment was made automatically. If there is a problem contact<EMAIL_ADDRESS>I've triaged the above build. I've created/commented on the following issue(s)
https://github.com/aspnet/AspNetCore-Internal/issues/2450

The remote name could not be resolved: 'xsp2tfsprodcus2file0.queue.core.windows.net'

:( Will retrigger when Azure is feeling less under-the-weather

@aspnet-hello triage https://dev.azure.com/dnceng/public/_build/results?buildId=180794

This comment was made automatically. If there is a problem contact<EMAIL_ADDRESS>I've triaged the above build. I've created/commented on the following issue(s)
https://github.com/aspnet/AspNetCore-Internal/issues/2481


Don't hold locals longer than they are alive

When a local variable goes out of scope, the corresponding field needs to be nullified.
Example:
async {
    val foo = ...
    await(x)
    bar(foo)
    // nullify foo at this point!
    await(y)
    await(z)
}

Variable foo is never used after the call to bar(), so its field should not retain the reference, otherwise a memory leak may occur

Still an issue. See here: https://youtrack.jetbrains.com/issue/KT-16222


Auto-detect Next.js framework on netlify build

Which problem is this feature request solving?
Netflify's CLI is a bit behind in UX compared to Vercel's CLI.
I'm building Create Next Stack, and I'm having trouble getting the Netlify CLI to auto-detch that my repository is using Next.js when running netlify deploy. If this is correct, it doesn't seem to be possible to deploy a Next.js from the CLI without setting up configuration first. And maybe using the Next.js plugin?
At the moment running netlify deploy in a new Next.js project looks like below.
$ netlify deploy
This folder isn't linked to a site yet
? What would you like to do? +  Create & configure a new site
? Team: my-team
? Site name (leave blank for a random name; you can change it later): my-site

Site Created

Admin URL: https://app.netlify.com/sites/my-site
URL:       https://my-site.netlify.app
Site ID:   8bcd1f3d-27b4-47ae-96dc-93f2ca03b94c

Linked to my-site
Please provide a publish directory (e.g. "public" or "dist" or "."):
/Users/akd/workspace/my-site
? Publish directory /Users/akd/workspace/my-site/.next
Deploy path: /Users/akd/workspace/my-site/.next
Deploying to draft URL...
✔ Finished hashing
✔ CDN requesting 0 files
✔ Finished uploading 0 assets
✔ Deploy is live!

Build logs:        https://app.netlify.com/sites/my-site/deploys/648a24e53c733202a5f3bd46
Function logs:     https://app.netlify.com/sites/my-site/functions?scope=deploy:648a24e53c733202a5f3bd46
Website draft URL: https://648a24e53c733202a5f3bd46--my-site.netlify.app

If everything looks good on your draft URL, deploy it to your main site URL with the --prod flag.
netlify deploy --prod

When following the link to the build logs, you are met with a broken build, as the CLI didn't detect a Next.js project, and all steps were skipped:

Describe the solution you'd like
I'd like Netflify's CLI to auto-detect Next.js like Vercel's CLI does as follows:
$ vercel
Vercel CLI 30.2.2
? Set up and deploy “~/workspace/create-next-stack-tests/a6
7e4390-1fce-4284-b9a6-0268f8006453”? [Y/n] y
? Which scope do you want to deploy to? my-scope
? Link to existing project? [y/N] n
? What’s your project’s name? my-app
? In which directory is your code located? ./
Local settings detected in vercel.json:
Auto-detected Project Settings (Next.js): <-------------- AUTO-DETECTS HERE
- Build Command: next build
- Development Command: next dev --port $PORT
- Install Command: `yarn install`, `pnpm install`, or `npm install`
- Output Directory: Next.js default
? Want to modify these settings? [y/N] n
🔗  Linked to akd-io/my-app (created .vercel)
🔍  Inspect: https://vercel.com/akd-io/my-app/FAG8CW3nNJQdWNy4VxEdG2RvM1er [2s]
✅  Production: https://my-app.vercel.app [2m]
📝  Deployed to production. Run `vercel --prod` to overwrite later (https://vercel.link/2F).
💡  To change the domain or build command, go to https://vercel.com/akd-io/my-app/settings

Pull request (optional)

[ ] I can submit a pull request.

Should be fixed by https://github.com/netlify/cli/pull/6729


Decrease frequency of e2e-testnet workflow execution

Some time ago we temporarily increased frequency of workflow execution
from "every 6 hours" to "every 2 hours". We did that to have better
statistics of percentage of failing jobs. Now we have a good view and
can bring the frequency to original values.

BTW, @nkuba, could you please set the code-format check as required for merge of PRs to main branch?


Error importing pack in Twitch Launcher

Description of bug
When exporting a pack using packwiz cf export and trying to import the export.zip in Twitch it gives the error shown below.
Reproduction steps

Create new pack with packwiz init
Select fabric as modloader and use latest version.
Add any mod (haven't tried it without mods)
Run packwiz cf export and import the zip in Twitch.

Images

Assumption
I don't know anything about the format that Twitch uses for exporting modpacks but I guess it maybe because in the export.zip/manifest.json file the minecraft.modLoaders property is an empty array.

As stated on Discord: Twitch doesn't support launching Fabric, so packwiz will make an empty array for the modloader list. I can make packwiz add Jumploader and select Forge (configurable) when exporting to the CurseForge format, so that Fabric packs can be exported easily.
For now, you can select Forge and add Jumploader manually.


Canvas heights not set by default

Hi,
When I open a new project, The canvas width is set by default to the correct 375px, but the height doesn't. The height is set to 100px. Is there a reason for that?

Otherwise I will change it and send a pull request :P
Grtz Dennis

See pull request #34

Hello Devin,

The main use case of Lona Studio (for us right now, at least) is designing individual components,

Ahhhh that clarifies a lot.
I also have some ideas about this. I will work this out and post it.
What I wondered. Where are the parameter values set? The demo texts, images etc? I can see them in the demo component (card). But not in the GUI.
Greetings Dennis
PS. Is it an idea to setup a Gitter?  Thats works great for brainstorms

Let me think about the Gitter a bit... I'm thinking not yet since I'm not sure I'll have the time to stay on top of it at the moment. But this could be a good idea when I have a little more bandwidth in the future. Let's stick to Github issues for now but revisit if it becomes a hassle.
The parameters come from Cases in this example (definitely need a better way to visualize where parameters come from)

So far I see 2 good solutions:

Given that a  lot of the UI decision have been taken from Sketch start with no canvases defined. this implies that the canvas is based on your decisions.
Start with (n) clearly labeled phone sizes. This will give a guide to new users to what they may be building, coming from design land I often start with a full screen design and break down into components once I have an idea of the styling. Most small agencies and individuals don't have a full DLS setup before starting a project.

Hi Devin, Haswalt,
I think it is easier to give them the choice of canvas or component for they begin. See my (quick) concept.

After they make a choice we can set te canvas to the immediately height.

Right, creating two different starting "templates" (Canvas/Screen or Component) seems reasonable.
Pros

Clarity around your intent will help us choose a better default state for your new component

Cons

Fundamentally Lona only has "components", so the choice is kind of misleading. E.g. if I open up a saved file, I might wonder whether it's a canvas or a component, but that distinction doesn't actually exist.

I think it could just be a matter of naming. I think this could work if we called them "templates", or something that implies that you're just picking a starting point, but after that it's fully configurable.
(related: https://github.com/airbnb/Lona/issues/11)

AHhhh okay... Now I understand :P
2 new ideas:
Welcome screen:

Or in the GUI just like Sketch?:

Or... both

Okay I read # 11 (I had missed it). Initially the Workspace is always the starting point?

@dennislaupman I like this direction overall. It's clear which workspace I'm using, and I can see which components I can open.
I might tweak it so both "new component" and "open component" can be accessed from the same screen:

As some other inspiration, I think photoshop does this pretty well, and is closer to our use case than e.g. the Sketch or Framer launch screens:

Oww wow yes, thats looks great! (I'm still using C6 :P)

Maybe its a good idea to combine this issue with #11?

Good idea. Closing this one.


DEBUG not working in nextjs

As recommended by the getting_started guide I've tried using
export DEBUG='ndk:*'
and
localStorage.debug = 'ndk:*'
in the browser console.
I even tried adding it to my .env.
I still cannot see debug messages.  I am trying to debug AUTH and seeing these messages would be very helpful..

Hello,
I use NextJS (14.*) and I added in the scripts section of my package.json :
"dev:ndk": export DEBUG='ndk:*' && npm run dev
Then I run npm run dev:ndk and it works


Android Device will restart if you try to create a huge platform view

We should handle Surface out of resource exceptions more gracefully.

Has it been resolved?

I'd like to see this worked on, but we don't have the resources presently, and it seems like it's an edge case.


FR: Show if date link is in the future, today, or past

I have a feature request, I often use daily notes in my vault and I'd like to change their styling based on if that date is in the past or future.
For example I'd like to be able to do something like if today is 2023-10-22, then a link to 2023-10-23 would show up as red and 2023-10-21 would show up as blue.
As far as I can tell there isn't a way to do this currently. One option would be to add a way to run a javascript function for each link to determine the css class to add, although that would make caching very difficult and might be a big source of bugs.
Does this sound like something that is in scope for the plugin?

Hmm, yeah this is not static. I guess this should be possible by defining a CSS attribute for the current date, but date comparisons in CSS also sound like a bit of a hassle. I don't think I would work on this in the short term, but feel free to PR.


Support for temporary attribute duplication seems necessary

Hi, we had chat with @hegerj regarding #8 but ran into issue about user experience after attributes are de-duplicated but one has to make them distinct.
Imagine following structure, attribute 'tier' is used for simplicity but imagine attribute+, attribute- operations.
/main.fmf
/Perf/simple/main.fmf
/Sanity/smoke/main.fmf

All tests are tier: 1, but now I want to add new test /Perf/prod_like which where I don't want to have attribute tier defined (just for example, in reality it will be magic with require, component, relevancy or any other attribute (and attribute operations))
What is missing is feature to place unnecessary attribute on least places possible.
In the following example it means to

remove tier: 1 from /main.fmf
copy it into

/Sanity/main.fmf or /Sanity/smoke/main.fmf
/Perf/simple/main.fmf

So one can create /Perf/prod_like/main.fmf without defined tier attribute.
What complicates things are operations +- on attributes. Imagine situation where
/main.fmf with require: [foo]
/Perf/simple/main.fmf with require+: [perf]

But I can't have 'foo' in main.fmf (newly added test doesn't require it), so I need to have it removed from main.fmf (I don't want to manually 'undo' foo in /Perf/prod_like/main.fmf, imagine such change affects more tests).
So automation should move require attribute definition accordingly by changing least files possible.
As for command line: I would say this should operate on 'directory', most common use case being leaf directory with test. But one might want to duplicate on upper level (say I am creating new directory and I know that none of future cases there should inherit attribute from upper levels).

This sounds like a too much magic to me. The original idea of #8 was just to check whether an attribute is already defined upper in the hierarchy and has the same value (for example user defines on the top level that he/she is the default contact person). Which should be relatively easy to implement and understand. I would leave the merging operations using + and - to manual adjustments of the user.
We could also add some extra logic to the tmt test lint command which could investigate more deeply possible duplicates and suggest better place for a shared attribute. I'm not sure we want to do that auto-magically.

The way I understand #8 is to find all attributes that have common values, remove them from individual case files and put the as high up as possible to main.fmf without changing case metadata.
This could create a scenario where at the beginning there are few similar cases with similar attributes-values which would then be deduplicated high in fmf tree. If I were then to add new case that is not similar to original cases, the new one would inherit attributes-values that are mostly intended for the original few.
I would then have 2 ways how to deal with it:

Rewrite inherited values in the new, different case explicitly - not a good solution, I would have to assign attributes that might not have meaning to the new case with some random value.

Manually remove the originally common attributes-values from main.fmf high up and manually insert them into all original cases for which these attribute-values are relevant - this could be tedious work and could lead to errors/inconsistencies in metadata.

Neither is good solution imo. This issue suggests to have a tool that implements the way 2) auto-magically (iiuic).

I'd say that (in the current stage of the project) such a complex auto-magic would be a nice-to-have. Would implement just basic inheritance check for now and look into this next year ;-)


read OBJ groups

The Wavefront .obj file format supports a grouping of elements via the syntax
g group_name

This syntax is described in:

https://en.wikipedia.org/wiki/Wavefront_.obj_file#Referencing_materials
https://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf (p. 40–47)

Example: tet.obj.txt:
v 0 0 0
v 1 0 0
v 0 1 0
v 0 0 1
g oblique
f 2 3 4
g x-normal
f 1 3 2
g y-normal
f 1 2 4
g z-normal
f 1 4 3

The grouping is recognized by ParaView 5.6.0 which creates a cell-based field GroupIds with values 0, 1, 2, 3.  This can be used to colour the faces in ParaView or saved to XDMF: tet.xmf.txt, which contains
      <Attribute Name="GroupIds" Active="1" AttributeType="None" Center="Cell">
        <DataItem Dimensions="4" NumberType="Float" Precision="4" Format="XML">
0 1 2 3
</DataItem>
      </Attribute>

ParaView doesn't seem to read the names of the groups.
The grouping feature appears in a file used in some of OpenFOAM's tutorials: ${FOAM_TUTORIALS}/resources/geometry/motorBike.obj.gz.  I'm yet to ascertain whether OpenFOAM makes use of the groups or names.
meshio.obj._obj.read_buffer currently ignores lines beginning with a g along with all other lines not beginning with a v or f.

The reader splits those up into blocks now, not remembering the tags. Perhaps that's already good enough.

Hey thanks, you beat me to it.  I'll try this out and then close.

This is correct.  I'll close now and open a new issue should the need arise to:

read the names of the groups
write the groups, with names.

Briefly thinking ahead to how to store the names of groups, it's like cell_data but the data is constant per item of cells rather than different for each cell.  It seems to me that that kind of data is likely to arise fairly often with the new data structure for Mesh.cells: List[Cells]; viz. whenever the cells have been grouped into blocks for a reason (unlike nschloe/pygmsh#301).  Thus the group-names should be stored either:

as List[str], of the same len as cells, but where?
as  numpy.ndarray of dtype=int and shape==(sum(len(c[1]) for c in mesh.cells),), but then why bother breaking the cells into blocks?

But I'll defer answering that till it's needed.


Pricing calculator inputs are not reset to the maximum value

Description
A clear description of the bug:
Pricing calculator inputs are not reset to the maximum value when they reach it; they just keep switching between them.
Must include any relevant identifiers, like:

Network: Qanet

Version: 2.3.0-alpha12

Steps to reproduce
Just exceed maximum value and keep adding numbers.
screen-capture (10).webm

verified balances now does not reset to maximum the validation is only shown for the maximum possible value

https://app.testlodge.com/a/26076/projects/40893/suites/234374?expand_section=430165#case_4213523


Development Plan with GAT

GREAT WORK JOHN! woot.
Just curious if you plan to consolidate any common functions of whitebox-GAT to whitebox tools? Is this already the case that Whitebox-GAT calls rust whitebox-tools? I'm excited about this project -
myself I'd like to eventually be able to call rust these rust functions directly for go-code.. can just use go as a scripting language and call directly into the Whitebox-Tools binary for the time being... Do function calls return json output for non-file output? I imagine that there are a number of functions which have small amount of output, it'd be nice if this was machine parseable.
go john go!

The current version of Whitebox-GAT does not call WhiteboxTools functions as of yet. The plan is to finish porting all of the Whitebox-GAT tools to this new Rust library, and then use it as the back-end in one of the future versions of Whitebox-GAT. I still have some work to do in porting tool over to Rust though.
The tools that output non-raster/vector/LAS outputs generate html files. This includes tools that output tabular data and charts, which include interactive SVG histograms, scattergrams, and line graphs.


Reconciling Project Lifecyce with io.js WGs and future projects

This is my first attempt at reconciling what we've been doing in io.js Working Groups with the standard LF Project Lifecycle. I've tried to keep some of the constraints in place to project the foundation from spending resources while still allowing the more liberal creation and bootstrapping we've had success with in io.js Working Groups.
The biggest change is to the incubation and proposal phases. Basically, "Incubation" has two paths, either "bootstrapped" (inside the foundation) or a project matures outside the foundation to a significant point and then would like to join. In both cases incubation happens before a proposal or charter is defined. This allows us to experiment and create projects with less barriers but keep them at arms length (provisional status can be shut down at any time, no monetary or legal resources committed) and allow them to mature before we write the charter.
In the io.js working groups we've found that it's best to remove barriers to people forming groups and getting work done and that it's much better to have groups write a proposal/charter after they've been doing work successfully.
This change to the incubation phase actually reduced the number of levels and reviews, simplifying the process quite a bit. There are some other smaller edits and changes in the review processes that are trying to bring it more in line with the working groups we have in io.js which aren't strictly code projects with their own releases.

So when I reviewed Mike's draft documents I was surprised to see that they proposed one TSC versus one TSC per top level project - so I think @jasnell is proposing a valuable improvement.
However the obvious question then becomes how do the top level project TSCs coordinate with one another, when and if that is necessary? A TSC of TSC chairs? :-) OK that's probably not a great idea but some sort of mechanism may be necessary.
@jasnell suggested that the Board instruct each Project TSC to nominate one member from the TSC to represent the Project as a non-voting member of the Board and while this may be useful it won't provide the required coordination IMHO.

Ok, just finished a ton of work re-writing the life-cycle doc. I tried to keep it simple even though there's another level now.
I removed the existing review sections because I think we should totally re-think them a bit. Once we're confident in this new document I'd like to go through the existing io.js WGs and think about where they would fit intuitively and then work backwards from there to define what our criteria is.

LGTM at this point. Obviously still lots of details to flesh out but great start. Thank you Mikeal

Where can I see the list of currently proposed Working Groups and potentially give my input?

@metabench io.js has a bunch going already https://github.com/iojs/io.js/blob/v1.x/WORKING_GROUPS.md#current-working-groups and there are two more that are about to be chartered (NAN and Docker).

Following up after a call with @mkdolan.
The approval of top level projects in to the foundation is something the board will likely want to break out of the board itself. Once there are multiple top level projects a collection of representatives would be best. This can all get sorted out once we have more than on project to consider. The document as-is will be fine for now.
To @ingsings' point about board representation: the core TSC gets a guaranteed board seat. It might make sense for either the collection of project reps who approve new projects to get a seat, or each top level project get a seat, but we should probably punt on that until later because we don't know the target number of projects (if we end up with 50 top level projects this would be a huge issue).

My opinion is that having a Language Bindings Working Group would be useful. However, I don't have the specific knowledge about how to bind various other languages with node, and it's something that I would find useful to have a lot more support with as a user.
Having NAN as a Working Group does sound useful, and it well reflects where the state-of-the-art is with node bindings. However, by only having NAN as an official Working Group, it would still be using the idea of having C++ as the glue if I wanted to bind node to D. If there were a Working Group dealing with binding Node to other languages that kind of feature would be within their domain.
This could help the node ecosystem grow by getting more developers with skills, and code, in other languages using node making functionality from outside node available.

I am going to suggest that there be a hardware working group that helps direct the project to support and encourage the growth of node in and on devices. There is growing amount of applications for node/io interacting with existing hardware, driving new hardware, and (in the near future, with tessel2 as an example) running directly on hardware.  More so than almost any other language right now IoT is critical to node/io and, unfortunately, pretty much never represented as such. Often hardware node people are not at the forefront of the movement despite its wide adoption. Of the modern/next generation hardware groups, most of the use node.js including, but not limited to:

Spark
Tessel
Electric Imp
Espurino
TinyG
IBM (node-red)
Intel
NinjaBlocks

I can go on, but meh. The long and short of this is, the most exciting part of node/io isn't web services, but hardware -- there are zero working groups for hardware.  This is discouraging and sad and should be fixed, IMHO

@voodootikigod :+1:
I'm very interested in that, too. My interest is mostly for drones and wearables.

the most exciting part of node/io isn't web services, but hardware -- there are zero working groups for hardware.

It sounds like this working group proposal should make the barrier pretty low to start a working group, and I'd be very interested in at least following discussions for a hardware WG, if not participating fully.

@voodootikigod I like it! If you want to start this today we can spin up
an io.js WG and do scheduke the first meeting ;)
It would obvious come over to the foundation once this is all ratified.
On Thursday, April 2, 2015, Eric Elliott<EMAIL_ADDRESS>wrote:

@voodootikigod https://github.com/voodootikigod [image: :+1:]
I'm very interested in that, too. My interest is mostly for drones and
wearables.
the most exciting part of node/io isn't web services, but hardware --
there are zero working groups for hardware.
It sounds like this working group proposal should make the barrier pretty
low to start a working group, and I'd be very interested in at least
following discussions for a hardware WG, if not participating fully.
—
Reply to this email directly or view it on GitHub
https://github.com/joyent/nodejs-advisory-board/pull/33#issuecomment-89084298
.

@mikeal Thank you very much for this great work. Is there anything in particular you need help fleshing out in your proposal? I see some TODO items in the file. Does io.js have some documentation for those processes we could use as a starting point?
[ ] Project Proposal Review
[ ] Working Group Proposal Review
[ ] WG Core Review
[ ] WG Termination Review
Is there a good definition of what a project proposal is, what distinguishes projects from working groups, and the different ways in which they're governed?
Also, what is WG Core?

@ericelliott I think this document is good now. The next step is listing all the current io.js working groups and placing them in this structure and then using that process as a nice way of determining the review criteria for each step.

Count me in for the IoT wg, let's make it happen!
Il giorno ven 3 apr 2015 alle 22:21 Mikeal Rogers<EMAIL_ADDRESS>ha scritto:

@ericelliott https://github.com/ericelliott I think this document is
good now. The next step is listing all the current io.js working groups and
placing them in this structure and then using that process as a nice way of
determining the review criteria for each step.
—
Reply to this email directly or view it on GitHub
https://github.com/joyent/nodejs-advisory-board/pull/33#issuecomment-89410274
.

I'm not a contributor to any node/io projects etc., if you afford me an input on that basis then might I ask, how come there is no mention of requirements & open requirements management for a WG in the open governance specifications? Transparency around projects & timelines is about the specification and management of requirements isn't it?

@shotlom In io.js or in the new foundation docs?

Foundation docs. In a way GitHub does some vague requirements management through the open/closed issues and tasks, but nothing formal like a systems engineering process might do. E.g. Requirement_n1 "the system must do X", Verification of Requirement_n1, "the system does/doesn't do X". If the requirements and verification steps are transparent, then the project should define itself.

I'm just added another file called WG-Merger which tries to describe how the working groups would merge.
@misterdjules is there a repo or document anywhere that I can link to for the node.js build team or should I just list the names of the people who are doing it?
@kosamari I've used the spreadsheet you maintain as a guide for assigning international communities a status, would love you to double-check it :)

@mikeal There is no formal node.js build or repository, except for https://github.com/joyent/node-infra which has not really been used so far. @tjfontaine, @orangemocha and myself I think are the people who worked on the build system/infrastructure recently, but I may be missing some other people too.


doc: release: 3.5: Add note on 2 fixed MCUmgr bugs

Adds notes on a fixed settings_mgmt and fs_mgmt bug
DNM until https://github.com/zephyrproject-rtos/zephyr/pull/63833 and https://github.com/zephyrproject-rtos/zephyr/pull/63834 are merged

merged both


nnn: 1.8 -> 1.9

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/nnn/versions.
meta.description for nnn is: '"Small ncurses-based file browser forked from noice"'.
Release on GitHub
Compare changes on GitHub

Checks done (click to expand)

built on NixOS
Warning: no invocation of /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9/bin/nnn had a zero exit code or showed the expected version
/nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9/bin/nlay passed the binary check.
1 of 2 passed binary check by having a zero exit code.
0 of 2 passed binary check by having the new version present in output.
found 1.9 with grep in /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9
directory tree listing: https://gist.github.com/0abcf056a743a59853be51aa551d6502
du listing: https://gist.github.com/7ffb6c49413c6f9524440161b6b917da

Test this build with Cachix (click to expand)

One time setup in nixpkgs Git checkout:
cachix use r-ryantm
git remote add r-ryantm https://github.com/r-ryantm/nixpkgs.git

Test this build:
git fetch r-ryantm && git checkout 97b444c2954171f3439635e30f3ab23dfde37ca1 && nix-shell --pure -I nixpkgs=. -p nnn

cc @jfrankenau for testing.

Success on x86_64-darwin (full log)
Attempted: nnn
Partial log (click to expand)
install -m 0755 -d /nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9/share/man/man1
install -m 0644 nnn.1 /nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9/share/man/man1
install -m 0644 nlay.1 /nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9/share/man/man1
post-installation fixup
gzipping man pages under /nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9/share/man/
strip is /nix/store/251fvx4mx9q4zarbca5cciasmn66p668-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9/bin
patching script interpreter paths in /nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9
/nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9/bin/nlay: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/hp9yq2m1i066irvasv20zr2lmj54fk9h-bash-4.4-p23/bin/bash"
/nix/store/52hhis85h0m5kn9wgsx6wzy1iqv76a83-nnn-1.9

Success on x86_64-linux (full log)
Attempted: nnn
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9
shrinking /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9/bin/nnn
gzipping man pages under /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9/share/man/
strip is /nix/store/gpc2wld1s0c6qzx9326cwn1wcx29xzsj-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9/bin
patching script interpreter paths in /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9
/nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9/bin/nlay: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/56nrxy58wbhvs2sy3rir1jqa68p0kkm5-bash-4.4-p23/bin/bash"
checking for references to /build in /nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9...
/nix/store/7palfasggxrdf41m1qzgx6da08dy1bj7-nnn-1.9

Success on aarch64-linux (full log)
Attempted: nnn
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9
shrinking /nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9/bin/nnn
gzipping man pages under /nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9/share/man/
strip is /nix/store/ah0va6j4cnwj9nx4j6rwcfc8nh785jwm-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9/bin
patching script interpreter paths in /nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9
/nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9/bin/nlay: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/7q3ayirslrcva28wava6zpjcflcz1h3b-bash-4.4-p23/bin/bash"
checking for references to /build in /nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9...
/nix/store/7z537arml29hixv0rjbnrr4lsszdwf4q-nnn-1.9


server: return processContext as pointer instead of reference

Description: return a pointer to the ProcessContext from the factory context rather than a reference. The ProcessContext will be null when running in validation mode
Risk Level: low
Testing: unit tests
Signed-off-by: Elisha Ziskind<EMAIL_ADDRESS>

@ahedberg @htuch please take a look


IANA TLD validation

The IANA list is not evaluated when the method validateSyntaxOfEmailAddress is called.
Is it possible to write an additional method or change the one above to incorporate TLD validation against the IANA list?

Yes, that's certainly possible. Updates to this aren't on our near-term priority list, unfortunately, so please feel free to open a pull request with this functionality if you'd like to see it added.


Add scrabble-score

For #48in24

Can't test this locally at the moment due to a MacOS clang error. The CI example appears to be fine in the online D playground so I'm in the right direction. I'll check on my Linux laptop later this week.

@ErikSchierboom, for your review. Related to #214


[suggestion] Fabric support?

Fabric has no energy system. Anyway, you can do it if you want.

@BloCamLimb forge has a built-in energy system? or is fabric just more devided on the energy system?

Forge provides rich features and APIs, so it is suitable for developing large mod. Fabric is more just a lightweight loader, which itself can't help modding much. On Fabric, people commonly use several 3rd-party mod libraries for the energy system, fluid system and item transfer system.


Lavaplayer 1.3.73 Unable to load youtube playlists

Today across various bots and lavalink instances we are unable to load any youtube playlists.
https://www.youtube.com/playlist?list=PLPThSYCXh4Qup8-INBjKQz7qNik6WEaFN
https://www.youtube.com/watch?v=jzebNpYZMgU&list=UUMOgdURr7d8pOVlc-alkfRg&index=2
Armadeus Lavalink - https://hastebin.de/ipedobefal.apache
Armadeus LavalinkClient - Yes I'm aware this is outdated - https://hastebin.de/latudotimi.yaml
KittyBot URL1 - https://hastebin.de/yopucalako.apache
KittyBot URL2 - https://hastebin.de/ovumifuzul.apache

I've been seeing those for a few days already, here's some that I gathered. https://pastebin.com/4nQXQ2uN

https://www.youtube.com/watch?v=oFvQFCl0PZA&list=PLtuDHaqeIA79mRHwe01p8cE-Lq_bopsmZ&index=4&ab_channel=DaleDuroBeats
https://youtube.com/playlist?list=PLH2KgPdIWtj5V6KevCLCDgpot54spn5aK
https://www.youtube.com/playlist?list=PLPThSYCXh4Qup8-INBjKQz7qNik6WEaFN
https://youtube.com/playlist?list=PLE59WSVvT9LqBLsngdHA56Qh-k4m0-qvB

1 unavailable video is hidden

So some videos just can't be loaded for one reason or another, and LP is choking on that.