Is there a way to parameterize and pass an instance of Startup rather than just the type?

From @humblelistener on August 14, 2015 5:8
The intention is to avoid creating a separate TestStartUp class rather - rather inject an instance of Configuration
Sample start up below,
public class Startup
{
  public IConfiguration Configuration {get; set;}

  public void Startup()
  {
    Configuration = new ConfigurationBuilder()
              .AddEnvironmentVariables()
              .Build();
   }

  public void ConfigureServices(IServiceCollection services)
  {
     //uses Configuration object to set up everything
  }
}

In the above implementation, if only
TestServer.CreateBuilder().UseStartup(instanceOfStartup)
is permitted
I can do this,
Startup instanceOfStartup= new Startup();
instanceOfStartup.Configuration = myOwnconfigurationWithKeysRequiredForTest;
//create a test server with
TestServer.CreateBuilder().UseStartup(instanceOfStartup)

Advantage: I dont have to maintain multiple startup class.
Does it make sense?
Copied from original issue: aspnet/Home#831

How about the UseStartup(Action<IApplicationBuilder>) overload? So your sample above becomes: TestServer.CreateBuilder().UseStartup(instanceOfStartup.Configure)

These overloads are limited - It wont work because

Configure method can be using just IApplicationBuilder or taking ILoggerFactory and so on as parameters

If I then have a configure services method - it complicates further because the overload takes a different signature of configureservices compared to expected one defined for configure

Instead of trying to draw two parallels - using StartUp class and StartUpMethods and having supported UseStartUp extension method, IMHO - it will be simple and easy to just start supporting taking an instance of StartUp thats got environment specific configuration state in it.

and this is what I have to do to keep it working - right now
var startup = new Startup();

//update configuration
startup.Configuration["XYZ_ENV_VAR"] = testEnvValue;

var Action<IApplicationBuilder> configureMethod = (app) => {
  app.UseMvc();
};

var configureServicesStartupMethodInfo = typeof(Startup).GetMethod("ConfigureServices");

var configureServicesMethod = new ConfigureServicesBuilder(configureServicesStartupMethodInfo).Build(startup);

using (var testServer = new TestServer(TestServer.CreateBuilder().UseStartup(configureMethod, configureServicesMethod)))
{
  ...
}

Doesn't feel good! any suggestions?

Just to clarify the scenario you are trying to accomplish, you mostly want a way to configure a test to run with specific configuration (i.e. just tweak the configuration per test?)

that is right, I would prefer to keep the same startup while injecting a different configuration compared to having two startup files or having conditions in the start up file.

You can now configure a WebApplicationBuilder to use a Startup class and create a TestServer from it in #525.

Moving this to Backlog as we will be in RC2 ask mode very soon.  If you feel strongly about this issue, please ping me.

Fixed with 8f5f8d28d00468725d9fd8dd95123f43d22f2c3c which is post RC2. You can add an IStartup class to the DI container and that will get resolved for app startup.

PS: it would look like this:
Startup instanceOfStartup= new Startup();
instanceOfStartup.Configuration = myOwnconfigurationWithKeysRequiredForTest;
//create a test server with
var builder = new WebHostBuilder()
                      .ConfigureServices(services =>
                       {
                            services.AddSingleton<IStartup>(instanceOfStartup);
                       });
var server = new TestServer(builder);

And here's a nice blog post about the new IStartup interface: https://www.strathweb.com/2017/06/resolving-asp-net-core-startup-class-from-the-di-container/.


Fixed nvarchar length to optimize SQL Server query plan caching?

Lately, as we've run into SQL Server performance issues, I've noticed that the same query is in SQL Server's query plan cache over and over. I think this is due to the nvarchar length from parameterized queries in NPoco. Is there a way to fix the nvarchar length so that SQL Server can properly cache and optimize the query?
Here's an example from our production plan cache. Notice that each declared nvarchar has a different length. This query has three parameters, all nvarchars. The potential, worst case number of cache entries is 25,000 entries for this query.
(@fieldName nvarchar(41),@category nvarchar(11),@environment nvarchar(3))SELECT pc.KeyId, pc.FieldName, CASE WHEN
(@fieldName nvarchar(11),@category nvarchar(7),@environment nvarchar(3))SELECT pc.KeyId, pc.FieldName, CASE WHEN
(@fieldName nvarchar(19),@category nvarchar(7),@environment nvarchar(3))SELECT pc.KeyId, pc.FieldName, CASE WHEN

It seems that NPoco sets the nvarchar length based on the length of the C# string. Is there a way to force this length, or have NPoco pull the value from the database schema?
Thanks!

This should already be happening as can be seen here.
https://github.com/schotime/NPoco/blob/master/src/NPoco/Database.cs#L540
So I'm not quite sure whats happening.


Introduce syntax highlighting

Syntax highlighting would improve readability of scripts. Start with greying-out comments, perhaps.

Moved to https://github.com/learningsimulator/learningsimulator/issues/120


app throws exception on cold start (deployed on azure function)

Version
4.13.2
Describe the bug
Deployed on azure functions consumption plan, throws exception on cold start, but works when restarted from azure portal
To Reproduce
Steps to reproduce the behavior:

When we restart function app from azure portal console, it works
But after some time, when we invoke the function by sending an http request to messages endpoint, it fails with an exception

Expected behavior
It should execute the function after cold start, as it does when restarted from portal console
Additional context
This might look as a azure functions related issue and I should file the issue there (I have filed it there as well).
But I thought that adding singleton services of middlewares (ShowTypingMiddleware) might have played the role in this exception, and hence filing here
Related information

Programming language used : c#

The exception thrown indicates that this is a DI issue. So providing my startup code and the exception

Source
public class Startup : FunctionsStartup {
    public override void Configure(IFunctionsHostBuilder builder) {
      builder.Services.AddBotRuntime(builder.GetContext().Configuration);

      builder.Services
                .AddSingleton<IMiddleware>((s) => new ShowTypingMiddleware(delay: 500));
      var memoryStorage = new MemoryStorage();
      var inspectionState = new InspectionState(memoryStorage);
      var userState = new UserState(memoryStorage);
      var conversationState = new ConversationState(memoryStorage);
      builder.Services
                .AddSingleton<IMiddleware>((s) => new InspectionMiddleware(inspectionState, userState, conversationState));
    }

    public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder configurationBuilder) {
      FunctionsHostBuilderContext context = configurationBuilder.GetContext();

      string applicationRoot = context.ApplicationRootPath;
      string environmentName = context.EnvironmentName;
      string settingsDirectory = "settings";

      configurationBuilder.ConfigurationBuilder.AddBotRuntimeConfiguration(
          applicationRoot,
          settingsDirectory,
          environmentName);
    }
  }

The exception thrown is:
2021-06-17T10:56:29.944 [Error] Executed 'messages' (Failed, Id=dcaee1ff-d8c1-43e8-af85-fba28541c495, Duration=2ms)System.NullReferenceException : Object reference not set to an instance of an object.at System.Linq.Expressions.Interpreter.CastInstruction.CastInstructionT`1.Run(InterpretedFrame frame)at System.Linq.Expressions.Interpreter.Interpreter.Run(InterpretedFrame frame)at System.Linq.Expressions.Interpreter.LightLambda.Run(Object[] arguments)at Thunk(Func`2 ,IResolverContext )at DryIoc.Factory.<>c__DisplayClass26_0.<ApplyReuse>b__2() at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6605at DryIoc.Scope.TryGetOrAdd(ImMap`1 items,Int32 id,CreateScopedValue createValue,Int32 disposalOrder) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 7849at DryIoc.Scope.GetOrAdd(Int32 id,CreateScopedValue createValue,Int32 disposalOrder) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 7834at DryIoc.Factory.ApplyReuse(Expression serviceExpr,Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6604at DryIoc.Factory.GetExpressionOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6564at DryIoc.WrappersSupport.GetArrayExpression(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 2903at DryIoc.ExpressionFactory.CreateExpressionOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 7699at DryIoc.Factory.GetExpressionOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6554at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 7083at DryIoc.Factory.GetExpressionOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6554at DryIoc.Factory.GetDelegateOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6634at DryIoc.Container.ResolveAndCacheDefaultFactoryDelegate(Type serviceType,IfUnresolved ifUnresolved) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 211at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType,IfUnresolved ifUnresolved) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 196at Microsoft.Azure.WebJobs.Script.WebHost.DependencyInjection.JobHostServiceProvider.GetService(Type serviceType,IfUnresolved ifUnresolved) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\JobHostServiceProvider.cs : 99at Microsoft.Azure.WebJobs.Script.WebHost.DependencyInjection.JobHostServiceProvider.GetRequiredService(Type serviceType) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\JobHostServiceProvider.cs : 82at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider,Type serviceType)at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)at Microsoft.Bot.Builder.Dialogs.Adaptive.Runtime.Extensions.ServiceCollectionExtensions.<>c.<AddBotRuntime>b__0_0(IServiceProvider sp)at DryIoc.Microsoft.DependencyInjection.DryIocAdapter.<>c__DisplayClass3_0.<RegisterDescriptor>b__0(IResolverContext r) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\DryIocAdapter.cs : 156at DryIoc.Registrator.<>c__DisplayClass27_0.<RegisterDelegate>b__0(IResolverContext r) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 4550at System.Linq.Expressions.Interpreter.FuncCallInstruction`3.Run(InterpretedFrame frame)at System.Linq.Expressions.Interpreter.Interpreter.Run(InterpretedFrame frame)at System.Linq.Expressions.Interpreter.LightLambda.Run(Object[] arguments)at Thunk(Func`2 ,IResolverContext )at DryIoc.Factory.<>c__DisplayClass26_0.<ApplyReuse>b__2() at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6605at DryIoc.Scope.TryGetOrAdd(ImMap`1 items,Int32 id,CreateScopedValue createValue,Int32 disposalOrder) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 7849at DryIoc.Scope.GetOrAdd(Int32 id,CreateScopedValue createValue,Int32 disposalOrder) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 7834at DryIoc.Factory.ApplyReuse(Expression serviceExpr,Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6604at DryIoc.Factory.GetExpressionOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6564at DryIoc.Factory.GetDelegateOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 6634at DryIoc.DelegateFactory.GetDelegateOrDefault(Request request) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 7740at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType,Object serviceKey,IfUnresolved ifUnresolved,Type requiredServiceType,Request preResolveParent,Object[] args) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 291at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)at System.Linq.Expressions.Interpreter.ExceptionHelpers.UnwrapAndRethrow(TargetInvocationException exception)at System.Linq.Expressions.Interpreter.MethodInfoCallInstruction.Run(InterpretedFrame frame)at System.Linq.Expressions.Interpreter.Interpreter.Run(InterpretedFrame frame)at System.Linq.Expressions.Interpreter.LightLambda.Run(Object[] arguments)at Thunk(Func`2 ,IResolverContext )at DryIoc.Container.ResolveAndCacheDefaultFactoryDelegate(Type serviceType,IfUnresolved ifUnresolved) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 225at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType,IfUnresolved ifUnresolved) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\DryIoc\Container.cs : 196at Microsoft.Azure.WebJobs.Script.WebHost.DependencyInjection.ScopedServiceProvider.GetService(Type serviceType) at D:\a\1\s\src\WebJobs.Script.WebHost\DependencyInjection\ScopedServiceProvider.cs : 25at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,Boolean isDefaultParameterRequired)at lambda_method(Closure ,IServiceProvider ,Object[] )at Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance[T](IServiceProvider serviceProvider) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.cs : 42at Microsoft.Azure.WebJobs.Host.Executors.DefaultJobActivator.CreateInstance[T](IFunctionInstanceEx functionInstance) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\DefaultJobActivator.cs : 32at Microsoft.Azure.WebJobs.Host.Executors.ActivatorInstanceFactory`1.<>c__DisplayClass1_1.<.ctor>b__0(IFunctionInstanceEx i) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\ActivatorInstanceFactory.cs : 20at Microsoft.Azure.WebJobs.Host.Executors.ActivatorInstanceFactory`1.Create(IFunctionInstanceEx functionInstance) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\ActivatorInstanceFactory.cs : 26at Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.CreateInstance(IFunctionInstanceEx functionInstance) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionInvoker.cs : 44at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ParameterHelper.Initialize() at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs : 759at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.TryExecuteAsync(IFunctionInstance functionInstance,CancellationToken cancellationToken) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs : 90

@mrivera-ms any update?

Thank you for reporting this issue, @vinaydate. Can you clarify some questions to help us understand the problem?

Is this a Composer bot?
Can you try deploying without the additions to Startup and see what is the behavior?

Yes, Its a composer bot.
I have tried with removing additions to Startup, but same exception trace is thrown

@vinaydate Can you provide sample code or steps to help us reproduce this?

@tracyboehrer,
Repro steps:

Create a bot project (e.g. from core bot template or empty bot template) in bot framework composer (v 2)
Deploy it on azure functions (consumption plan) (v 3, Windows)
ping the function on the messages endpoint
default response from bot api will be received
Let the function scale down to 0 instances (wait for say, 20 odd minutes)
ping again the function on the messages endpoint

This results in an exception trace that I have provided earlier

Hi @vinaydate,
I've done some digging into this, and I suspect that there is some kind of race condition that's occurring in the Functions host on the incoming request being issued to the app on cold start.
From what I can determine, the exception is specifically being thrown by the delegate specified here: https://github.com/microsoft/botbuilder-dotnet/blob/1220aed51d97a300a73b46c230dc49867483a97c/libraries/Microsoft.Bot.Builder.Dialogs.Adaptive.Runtime/Extensions/ServiceCollectionExtensions.cs#L101
Specifically, this appears to be caused by successful invocation of the Messages function trigger, which uses DI to request an implementation of IBotFrameworkHttpAdapter from the underlying IServiceProvider implementation (which, based on the stack trace, Functions host appears to use DryIoc which is a custom DI implementation from the standard .NET implementation).
It's hard to comment on exactly what's happening without a better understanding of how the Functions host operates, but based on what you are describing, I suspect the underlying DI container is getting disposed eventually after the app goes idle in consumption mode. On the request issued after the idle period, it would appear that it's still accepting incoming HTTP requests and triggering the underlying function while the DI container needs to be reconstructed. Since this seems to start behaving correctly after the app is warmed, I assume that the container is being asynchronously rebuilt so as to not block incoming requests.
I think next steps for the team would be to reach out to the Functions folks to see if they can provide a better understanding of the observed behavior and provide suggestions on steps that can be taken to help reduce the impact of cold starts on rebuilding dependencies. In the interim, you may wish to investigate either changing from a consumption-based plan to a premium plan for Functions to prevent cold starts, or alternatively investigate using the Web App-based bot app instead.

@taicchoumsft I'm in the process of reaching out to the Azure Functions team to try and find the right contact that can help provide guidance and next steps in terms of a formal resolution within the runtime itself. I'll provide an update once I have an answer.

Hi @peterinnesmsft,  any updates on this one?

@mrivera-ms can you take a look at this issue? Peter is no longer on the team.

@mrivera-ms Ping.

Closing due to inactivity. If problem persists please open a new issue.


Aggregate SGAs fails if no sga_target or sga_max_size is defined

Hello,
Running orahost role on a server with no sga_target or sga_max_size defined (in oracle_databases), raises:
TASK [opitzconsulting.ansible_oracle.orahost_meta : Aggregate SGAs] ************
Sunday 17 November 2024  20:17:49 +0100 (0:00:00.025)       0:00:20.754 *******
fatal: [mol-oracle-orademo]: FAILED! => {"msg": "'__orahost_oracle_database_sgas' is undefined. '__orahost_oracle_database_sgas' is undefined"}

Regards,
Alec

Fixed by #498


send 2 events for wall / line det3ector?

@tballmsft can the robot send 2 radio messages for events? is it going to be an issue with the interpreter?

Don't know - try it out - depends on what Michal does in the runtime.

@mmoskal question for you

At the Jacdac level it works - two Jacdac packets will be generated. Now, the code for the rule will be triggered twice in quick succession, so you need to make sure there is no race there. In particular you should not be doing async stuff in role dispatcher.

I am thinking about reception, what happens when you trigger twice a rule, do you cancel one?

From: Michał Moskal @.>
Sent: Wednesday, October 18, 2023 1:00:11 PM
To: microsoft/microcode @.>
Cc: Author @.>; Comment @.>; Assign @.>; Subscribed @.>
Subject: Re: [microsoft/microcode] send 2 events for wall / line det3ector? (Issue #456)
At the Jacdac level it works - two Jacdac packets will be generated. Now, the code for the rule will be triggered twice in quick succession, so you need to make sure there is no race there. In particular you should not be doing async stuff in role dispatcher.
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/microcode/issues/456#issuecomment-1769231312 or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA73QKPLGQVSUEG3FHGHQG3YAAYMZBFKMF2HI4TJMJ2XIZLTSOBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDUOJ2WLJDOMFWWLLTXMF2GG2C7MFRXI2LWNF2HTAVFOZQWY5LFUVUXG43VMWSG4YLNMWVXI2DSMVQWIX3UPFYGLLDTOVRGUZLDORPXI6LQMWWES43TOVSUG33NNVSW45FGORXXA2LDOOJIFJDUPFYGLKTSMVYG643JORXXE6NFOZQWY5LFVEZTEOBXGMZDOMBWQKSHI6LQMWSWS43TOVS2K5TBNR2WLKRRHE2DQNZVGAZTSN5HORZGSZ3HMVZKMY3SMVQXIZI.
You are receiving this email because you authored the thread.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Rule bodies are emitted as separate procedures. They are invoked with BG_MAX1 meaning if the procedure is already running it is not started again. So the second packet would be ignored.


.query types are not so obvious and I'm a bit blocked

Not sure what is expected here:

I tried an object, but

Why does it need table if I'm already querying db.users?
I searched the README but couldn't find anywhere this is covered too 😢

I searched the README but couldn't find anywhere this is covered too 😢

Because it's meant to be used internally. It's used for another internal class so I could not really make it private. We'll need to figure something.
There's no harm on using it, in fact people can use it. And the argument is a Query, which you can get with the select() method that is explained in the README.

We can also be modern and use #query -> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields

@fabien0102 like I said, I couldn't make it private because it's used for other class.

Maybe we use _query

Yeah, that can be a good idea.

Closing stale issue


[FEATURE] Easier way to pass key=value pairs as data to templates

Is your feature request related to a problem? Please describe.
Hello, thanks for creating and maintaining this library. Currently I am primarily using it through CLI and for most of my templates the data will be a small set of key-value pairs. However writing json in terminal is somewhat cumbersome as we have to deal with braces, quoting etc.
Describe the solution you'd like
It would be convenient if we could pass key=value pairs directly to the cli similar to how httpie autoconverts key=value pairs to json (Reference).
So,  instead of:
npx simple-scaffold MyComponent \
    -t project/scaffold/**/* \
    -o src/components \
    -d '{"className": "myClassName","author": "Chen Asraf"}'
    MyComponent

we would be able to write
npx simple-scaffold MyComponent \
    -t project/scaffold/**/* \
    -o src/components \
    MyComponent className=myClassName author="Chen Asraf"

which is easier to type. For non-strings httpie supports := which is also convenient.

This actually used to be the way before v1. I originally switched to JSON as it is easier to use any tool or language for the data as it is more universal, while the key=value way was a bit less convenient for generated command outputs.
I am considering bringing this alternative back as a solution. Maybe with an uppercase -D flag? I will try to see if it makes sense to implement 2 forms for the same command. What happens when you use both? Do they get merged? etc.
Thanks for the suggestions :) will try some things out and update here

@nirajsavaika Hi,
I have just release version 1.2.0.
You should be able to use the --append-data or -D (capital D) for short, to add data in the following formats:
npx simple-scaffold ... -D property=value
npx simple-scaffold ... -D property="value with spaces"
npx simple-scaffold ... -D property=value\ with\ spaces
# for raw values (must be JSON supported)
npx simple-scaffold ... -D property:=2345


Don't require Target when doing gNMI requests

Auto-populate Target when doing gNMI requests
Auto-remove Target when responding to gNMI SubscribeRequest that didn't have prefix populated: https://www.openconfig.net/docs/gnmi/gnmi-specification/#2221-path-target

Resolves #263

Is there a TODO to remove all the places in the lemming that accept a target?

Is there a TODO to remove all the places in the lemming that set a target?

Thanks for catching this. There are indeed a lot of places the code that now unnecessarily take target as an argument or otherwise assume that gNMI requires populating target. I'll create a task for clean-up.


feat: Add basic gameloop IT for Android

Fixes #1348
Test Plan

How do we know the code works?

Run ./gradlew IntegrationTests
integration.GameloopIT should run
All integration tests should pass

Checklist

[X] Integration tests updated

Codecov Report

Merging #1404 (fe27785) into master (81bf670) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1404   +/-   ##
=========================================
  Coverage     77.34%   77.34%
  Complexity      719      719
=========================================
  Files           250      250
  Lines          4834     4834
  Branches        922      922
=========================================
  Hits           3739     3739
  Misses          596      596
  Partials        499      499

@Mergifyio rebase


timeout warning stays active after timeout occurs, "extend session"

This is a bug anyone working on itap is very familiar with, the session timeout dialog stays active even after the timeout elapses.
I'm not certain what we want the behaviour to be replaced with. Perhaps just try and refresh the page, perhaps with an additional param so the server can add a "you've been logged out" message above the login form

This was actually fixed in WET (https://github.com/wet-boew/wet-boew/pull/9620) - if we update the WET version deployed by the helpers repo, the issue should be resolved.


The expiry date in the setup.cmd file is in the past.

Module: 11
Lab/Demo: 21
Task: Gather Documents for training
Step: 04
Description of issue
The expiry date in the setup.cmd file is in the past.
Repro steps:
The instructions say:
Leave the expiry_date variable as it is for the exercise. This variable is used when generating the Shared Access Signature (SAS) URI. In practice, you will want to set an appropriate expiry date for your SAS. You can learn more about SAS here
But if they follow the instructions they will get this expiry date
set expiry_date=2022-01-01T00:00:00Z
and the authentication will fail. Either this date needs to be changed to a future date, or change the instructions to help the students change it to a future date.

@georgiakalyva good catch! Thanks for letting us know. I updated the expiry date.


readBigUInt64BE is not a function

Hi,
I'm getting the below error while running the app.
TypeError: data.latestReplayId.readBigUInt64BE is not a function

Thanks
Ravi

Hi @chandra2ravi, are you using the right node version?
This project supports node v16.

Hi Philippe,
Thanks for the quick reply, updated it to the latest version and fixed the issue.
Thanks
Ravi


Add last updated data & link to revision history to advocacy topics

Motivation:

Provide visible indication of "freshness" & activity
Indicate that these are living documents
Provide credit to contributions

Not sure off-hand how this would be accomplished, but worth poking at - should be some metadata accessible during a build.

@cero-miedo how should we present this info on the page(s)?

Maybe the way to do this for MVP is to just show the last updated date, and link that to the file in the repo.

IMO this breaks down to two separate items

I'll pull in the file's last updated date, and make that available to each page. I think this will be straightforward to add.

I'll try to create a component that can pull the page's author and other metadata from github. This will run client side so it won't be a part of the build process. Then we could just add this component to the template for all advocacy pages for example.


[BUG] Crash on start with FTB Utilities (1.12)

Hespin2K

I just noticed that if I remove DI everything works, if I remove FTB everything works too. But not together. The logs took off. It is at this point that the server loads endlessly
https://paste.gg/p/anonymous/6640df1907704fa69b5eb1904d1b99e4

I am unable to reproduce this, can you send me the config file? Also which mod versions are you using (both ftb)?

https://paste.gg/p/anonymous/adff60357d98430592d8566a194b0e26
Its configs
I use dcintegration-1.1.11-1.12 and FTBUtilities-<IP_ADDRESS>.jar

You now should re-generate your bot token! If not someone else can run code on the bot!
Any other mods installed? Since it still starts for me locally it might be an issue with yet another mod, even tho it starts without ftb

This full mod list. And if I delete configs anyway server will be crash
appliedenergistics2-rv6-stable-7.jar
  | authmod-2.6.jar
  | Chameleon-1.12-4.1.3.jar
  | CodeChickenLib-1.12.2-<IP_ADDRESS>8-universal.jar
  | coroutil-1.12.1-1.2.36.jar
  | CraftTweaker2-1.12-4.1.20.jar
  | DynamicLights-1.12.2.ja
  | FTBLib-<IP_ADDRESS>.jar
  | FTBUtilities-<IP_ADDRESS>.jar
  | gregtech-1.12.2-<IP_ADDRESS>1.jar
  | HardcoreDarkness-MC1.12.2-2.0.jar
  | jei_1.12.2-<IP_ADDRESS>1.jar
  | NotEnoughItems-1.12.2-<IP_ADDRESS>-universal.jar
  | NuclearCraft-2.18o-1.12.2.jar
  | railcraft-12.0.0.jar
  | Shadows_of_Greg-1.12.2-2.13.0.jar
  | StorageDrawers-1.12.2-5.4.0.jar
  | TerraFirmaCraft-MC1.12.2-<IP_ADDRESS>.jar
  | zombieawareness-1.12.1-1.11.16.jar

Still starts without any problems for me 🤔
Try re-downloading the current version, maybe your download got corrupted


PISA Install Problems

Pisa installation seems to break with setuptools>60.0 (because of some interplay with deprecated numpy.distutils, see here). Pinning setuptools < 60.0, might be a short term solution. See this slack thread for more info.
If this keeps going, PISA will be falling apart very soon :grimacing:

Fixed in https://github.com/icecube/pisa/pull/753


[Broadcast] implement the algorithm with a buffering strategy (v1.1)

This PR is an attempt to implement a broadcast operator following the temporary conclusion of this discussion: https://forums.swift.org/t/swift-async-algorithms-proposal-broadcast-previously-shared/61210/36
This kind of operator can become tricky to implement once you consider the back pressure management and the cancellation policies.
To ease the understanding I've used 2 levels of state machines (known as orthogonal regions in my book):

a state machine per iteration/client to handle buffering and cancellation
a state machine for orchestrating the value distribution mechanism and restricting the access to the upstream sequence

I've used the pattern: one task for the upstream sequence iteration. This task is started on the first call to next by the first iteration and suspended between each element.
Pending questions (@FranzBusch, @phausler, @etcwilde) :

For now each client state machine is created on the first call to "next". It makes it a bit hard to test because we need some synchronisation between iterations to ensure we don't loose values and for now my tests are flaky because of that. Should we do that in the call to "makeAsyncIterator" instead ? (I remember a decision where nothing important should be done on makeAsyncIterator ... broadcast might be an exception to that rule)

For now I use an unbounded buffer per iteration, which can lead to uncontrolled memory footprint. Should we have an "on overflow" policy to drop elements? We mentioned an optimisation of the storage in the forum based on a single buffer and keeping track of indexes per client -> it means some more computations to handle the sanitisation of these indexes, meaning poorer performances also.

For now there is no "on cancellation" policy. The task for the upstream sequence remains alive when there is no more clients, waiting for a new one. Should we allow to cancel the upstream task in that case? It will be easy to do as I keep track of the task in the state machine.

For now there is a single locking mechanism for all the state machines (the main one and the ones per client). Should we consider a locking mechanism per client to increase the perfs (by parallelising computations) ?

I've not yet implemented a "replay" mechanism, but it will be pretty easy to do thanks to the separation of concerns between state machines. All we have to do is keep track of the history and initialise each new client state machine with this history in its internal buffer.

Hi, awesome work! What’s the relation between this pull request and #227? Have we decided which one to merge?

Hi, awesome work! What’s the relation between this pull request and #227? Have we decided which one to merge?

Hi
these are 2 different implementations of the same operator. One based on buffering strategy, the other based on a suspending strategy.
none of this has been reviewed yet since the focus is on validating all the existing operators for the v1.0.


emails: fix email sending

Broken links

Can you give more details about this?

This email is not being sent: https://github.com/inveniosoftware/invenio-communities/blob/master/invenio_communities/templates/invenio_communities/new_upload_email.html
Also {{config.CFG_SITE_URL}} does not exists anymore.

Thanks :+1:


Allow to specify custom name for Dockerfile

Right now the Dockerfile is hardcoded to be called Dockerfile, it is useful to be able to have multiple docker files in the same dir. For example in a Go repo it's useful to share the vendor/ dir at the top of the repo.
The follow-up commit will be https://github.com/aristanetworks/official-images/commit/121516b7b0e6a33df2bd22ea24c29f29f4a70f9e

Codecov Report

Merging #16 into master will decrease coverage by 0.52%.
The diff coverage is 60%.

@@            Coverage Diff             @@
##           master      #16      +/-   ##
==========================================
- Coverage   82.04%   81.51%   -0.53%
==========================================
  Files           7        7
  Lines         479      487       +8
==========================================
+ Hits          393      397       +4
- Misses         58       62       +4
  Partials       28       28

Impacted Files
Coverage Δ

manifest/rfc2822.go
75.93% <60%> (-0.73%)
:arrow_down:

Continue to review full report at Codecov.

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

If I'm reading this correctly codecov is now complaining only about pre-existing code:
https://codecov.io/gh/docker-library/go-dockerlibrary/src/5cfb31e65bb5a91577af5c89024d2667e6780086/manifest/rfc2822.go

Sorry for the delay. :bowing_man:
While this is not something that I envision us taking advantage of in official-images, it might be useful to anyone else that may use the bashbrew tool outside of official-images.  WDYT @tianon?

@yosifkit that's exactly what we're doing: using Bashbrew to build images for our internal registry.

@yosifkit can we bypass the false positives in codecov and merge this?

The PR over at https://github.com/docker-library/official-images will need a bit more, since it needs to also account for diff-pr.sh.  We'll also need to make changes in https://github.com/docker-library/docs and https://github.com/docker-library/oi-janky-groovy (at least), hopefully not too many other places.

Thanks @tianon. Any pointers for what diff-pr.sh is supposed to do and how to test it?

Updated PR for just adding File: support to bashbrew itself and diff-pr.sh is at https://github.com/docker-library/official-images/pull/4980.
If that is accepted, I'll look to update https://github.com/docker-library/docs next (to ensure the documentation can handle non-standard Dockerfile paths too) and then hit up the update.sh pipeline bits afterwards.


Inconsistent results from GPT with temperature = 0

I am getting a wide variety of results from GPT, but my temperature is 0. I'm using a custom-trained model. I contacted GPT/openai, but their customer support seems to be inadequate.
req := gogpt.CompletionRequest{
	Model:       "davinci:ft-text-friday-2022-10-02-03-58-57",
	MaxTokens:   100, // 16 is default
	Prompt:      prompt,
	Temperature: 0,
	//TopP:             1,
	//FrequencyPenalty: 0,
	//PresencePenalty:  0,
	Stop: []string{" ->", ">>>"},
}

Example 1
 TRC Respond in JSON. I want to buy water. ->
8:02AM TRC GPT 5
8:02AM TRC GPT 6
8:02AM TRC GPT 6.a
8:02AM TRC returned: null
We'll update the last message sent to match the reply, and we'll update the request.id to say:
{ 'Store': 'water', 'Category': 'latest', 'Message': 'I want to buy water', 'Date': '2016-09-21T10:52:13', 'RequestId': '20', 'Reply': 'null', 'ArrivalDate': '2016-09-21T10:52:13'}

Example 2, sent seconds later
8:02AM TRC Respond in JSON. I want to buy water. ->
8:02AM TRC GPT 5
8:02AM TRC GPT 6
8:02AM TRC GPT 6.a
8:02AM TRC returned: {'Function': 'contact_support', 'Noun': 'water', 'Adjectives': [], 'Category': '', 'ClothingType': '', 'Quantity': 0, 'ArrivalDate': '', 'Store': '', 'MinPrice': 0, 'MaxPrice': 0, 'Multiple': False}

@gronka I ran into this same problem a few months back when creating a fine-tuned classifier. If it helps you, they let me know at the time that GPT-3 is not fully deterministic even when setting Temperature = 0.

In case anyone is still wondering about this, the reason this happens is that all of the numeric completion request settings are values (not pointers) in the CompletionRequest struct. You can't actually pass 0 as a numeric value otherwise it will get removed during json by the encoding/json library serialization as specified by the omitempty tag. Then, when no temperature is provided in the request the model defaults to a value of 1. This is actually pretty frustrating, but you can more or less get around it for now by passing an extremely small temperature value e.g. 0.0001. The correct fix would be to redefine all of those internal structs using pointers instead of values as PullRequestInc does in their GPT-3 client https://github.com/PullRequestInc/go-gpt3.

This is a duplicate issue with https://github.com/sashabaranov/go-openai/issues/9, so please discuss it in https://github.com/sashabaranov/go-openai/issues/9 from now on.


Document import path

The canonical import for this project is package dhcp4 // import "go.universe.tf/netboot/dhcp4"
Is this still true? If so, could you add in the README that this is a mirror?
For anyone else that runs into the issue:
https://golang.org/doc/go1.4#canonicalimports

Thanks for the report, I've documented the canonical import path in the README.
To also repeat the warning in that readme: all these APIs are very unstable, and I'm probably going to break compatibility at some point, so use with caution :).


Document yaml build interaction with task groups

I can't seem to find any documentation on how yaml builds interact with task groups.
Can yaml builds reference existing task groups? Can task groups exist as .yaml files?
Are there other mechanisms for sharing code between multiple yaml definitions?
I'm excited to use yaml, but I'd like to be able to learn a little more about it before turning on the preview feature and diving in.
Here's where I looked:
https://docs.microsoft.com/en-us/vsts/build-release/actions/build-yaml?view=vsts
https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/yamlgettingstarted.md

Template files are the reuse mechanism in a yaml definition: https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/yamlgettingstarted-templates.md

Oh, cool, this is new. Does it exist today in the preview? Will it be available in the version of yaml builds that graduates from preview later this quarter? (is that's what meant by "coming in April"?)
Maybe a better direction to take this issue would be a migration guide.

It's rolling out with the current sprint's payload. It will finish rolling out over the next few weeks.

For migration, it doesn't look like the editor in a designer-based build definition supports task groups when clicking the "View YAML" link. I don't know offhand where that feature is on the backlog. A workaround, other than by hand, would be to inspect the task group JSON and convert it to YAML. I think the structure would be very similar. You can hit the URL https://ACCOUNT.visualstudio.com/TEAMPROJECT/_apis/distributedtask/taskgroups to see the JSON

We have Agent.Version 1.33.3 but template is not supported yet

@ivanrusso See commit "Update templates ETA" 12fffd179e7beb26c7b5d360760c49ddf80c5f2d
-# YAML getting started - Templates (coming in April)
+# YAML getting started - Templates (coming in May)

-## Phase reuse (coming in May)
+## Phase reuse

@vtbassmatt fyi, we should make sure this is clear in the docs on microsoft.com that task groups are not supported for yaml definitions and templates are the equivalent

@ericsciple: - I could see that define task groups in build yaml definition is not supported yet, but I hope that there is some kind of a workaround except of expanding the task group into tasks.


Panic on mist_site_setting with latest release 0.1.37

upstream: https://github.com/Juniper/terraform-provider-mist/issues/37

fixed in latest release


feat(header): added link in header to return to github repository

PR has been raised as fix for issue 9.
Screengrab ( header now has github icon which redirects to the github repo when clicked) :

@samyukthasudhakar For internal links you can you use the Link tag, but for external link you can simply just use the, i will make that small change to your pull request


Updated Sourcebans Icon

Redesigned the SourceBans logo to use 16x16 icons like the rest of the icons.

LGTM
(did you upvote your own PR? lol)


Broken Everyday Object Detection example?

Hi, I'm trying to play with the pretrained tflite model for "Everyday Object detection" using the given source code (commit https://github.com/FIRST-Tech-Challenge/FtcRobotController/wiki/Using-a-TensorFlow-Pretrained-Model-to-Detect-Everyday-Objects/1e8896b68d41bbfaf2954bb0dd6319a63b852928), the OpMode is running without error but detection per se is broken:

This usually happens to me when there's some mismatch between training and inference source code w.r.t image preprocessing (e.g. color normalization). I haven't changed the code except for camera selection (webcam: C270) and lower detection threshold... Could the problem be related to the camera (e.g. different pixel color format)?
Robot controller version 8.0
Control hub OS version 1.1.3 (firmware 1.8.2)

It's not broken at all. Depending on the neutral network type, a neutral network may actually have hundreds of detections within an image, with the vast majority of them being low confidence detections. Tensorflow uses the minimum confidence threshold to filter out low confidence detections, and it also uses other algorithms to remove duplicate detections in the same area. We also don't return ALL of the detections from the network. If you want the higher detection confidence, which hopefully provides a better detection result, you need to set the minimum confidence higher.
-Danny

It's obvious that I'll get more detections (and most likely garbage) if I lower the confidence threshold, and I know about the removal of duplicate detections (NMS), but something else is happening: 'easy' COCO objects like laptop, keyboard, cup, stop sign, etc. aren't detected even when the confidence threshold is low, and unsurprisingly it's worse if I raise the threshold (no detections at all). Is there a way to have access to the tensorflow pipeline? I'd check the input tensor colorspace and mean values...

No, there's no way to get access to the tensorflow pipeline.
You are adding ALL of the labels from the label map, right? I am assuming you are, but that's a common error that people make.
You might also want to try out using the TensorFlow 2.x COCO models that we have available for you to use. You can find the link to the Model Zoo models we converted here:
https://ftc-community.firstinspires.org/t/tensorflow-model-zoo-models/159/2
I mention this just in case something odd is happening with your zoo model. I personally use a C270 camera on a Control Hub using the TensorFlow 2.x Model Zoo model, and I get great results. Make sure you don't have camera calibration files being applied nor any other features that may be changing how TensorFlow is seeing the camera image.
-Danny

Yes, I'm using the whole labelmap file. I've tested your TF2.x models and now I get good detections with decent (>0.7) confidence score. Oddly, labels are shifted by one position, i.e. I get 'mouse' instead of 'laptop', 'parking meter' instead of 'stop sign', etc. Adding a line to the labelmap file fixed the issue. Maybe I'll test the initial TF1.x model on a Raspberry PI, just out of curiosity...

I bet if you compared the label map files you'd find they were slightly different (I haven't looked myself, but this is my hunch). While the two models might have the same origin, the conversion process was definitely different.
Glad the TF2 model gives you better results. I've not personally used the TF1 model, I can't vouch for its performance.
-Danny

I've compared the files, they are the same.  Seems that some people have had this label issue in the past: https://github.com/JerryKurata/TFlite-object-detection/blob/dd49053e1eaf31eb4e6c7da9e32905900c1f1d88/TFLite_detection_video.py#L86. Also, I've tested the TF1.x model on a Raspberry Pi and it worked fine. Maybe recent changes were made to the vuforia/tflite pipeline that impact performance for TF1.x models?

That's an interesting find, I have not used the TF 1.x models so I can't verify personally.
The only change this season to TensorFlow itself has been the upgrade in TensorFlow version, because the TensorFlow training network will not allow older versions of TensorFlow models to train soon. TensorFlow, being a research project, is fond of breaking old versions of things so it's very possible older models could be affected.
We did make a change to allow other input sources (other than Vuforia) for images into TensorFlow in the SDK, but that change would not affect just TF 1.x models.
-Danny

@lalondma, thanks for the observation "labels are shifted by one position" That is exactly what our team kept reporting but neither they nor I had the debugging skills that you've displayed. Now that I know the issue lies with our label file (honestly, no changes were made and @texasdiaz had alerted us previously to strictly observe the sequence), I'll have to get a team member to revisit the label files. (The team members were confused precisely by the two specific mappings you mentioned. I should have taken a closer look at the txt file).
Kind regards.

Additional information that is likely helpful in investigating this issue:

I'm closing this topic, because I think the label maps are a red herring to the ultimate issue, which is described in #505 better.


Create script to benchmark against Redis

Although we have some performance benchmarks in the README, we need to create a benchmark comparison with Redis.
Proposal

Create a script that can be triggered from the makefile.
The script should use redis-benchmark to test EchoVault and Redis.
Create a comparison chart or table for each commands tested.
Benchmark embedded EchoVault as well.

@kelvinmwinuka hey, I'll work on this if its free


Update limit-driver-distribution.md

Made some changes to Extended drivers and added an example.

Thanks for the PR @SillyKeith, really appreciate it.  This will be live within a few minutes.


Adittionalviewcontrols on detailviews  issue

Additional view controls don't update on property changes in detail views
To Reproduce
Steps to reproduce the behavior:

Update feature center app to 19.1
Run app and go to additional view controls/conditional view controls with positioning
Change name to more than 20 characters
No effect
5.controls appear only if you leave the view and return.

This behavior appeared after upgrading from 17.2 to 19.1

to speed up resolution please provide a sample, note that the Featurecenter app is not supported anymore and has been removed in recent source code

FeatureCenter.zip
Version 19.1

I see in model editor the when creating the execution context group ,the ObjectspaceObjectChanged does not exist in higher versions of xpand

this context was removed cause it too risky to use because of the large number of invocations and will most probably lead to problems,

Is there any way I can add it in my code without modifying expand assemblies?

from a quick look, there is no direct way  due to the nature of this feature, however patching can be used for such cases and expand has applied patching successfully using the Xpand.Patcher packages.

OK thanks very much

Could you please point me to the last version that contained this feature

the last commit containing the ObjectspaceObjectChanged  is the https://github.com/eXpandFramework/eXpand/commit/1ea2630243c0b72813db68929013cdf898a69b3e

u can look the date of the commit and browse the release to find one at that time


Add tests for MethodMatcher matching on return type

The MethodMatcher provides the option to match by return type. This isn't currently unit tested - coverage for this feature should be added to TestMethodMatcher.

@RadikalJin i am newbie to open source contribution, can i start working on this issue.

Hello @SivaTharun - and thank you for your interest in Astra!
That would be great. Our contribution policy has a couple of tips for getting started.

Thanks @RadikalJin for the info on contribution guidelines

Hello @vihaannnn - that would be great! Our contribution policy has a couple of tips for getting started - thank you for your interest in Astra.

@RadikalJin Thank You! As it is my first time contributing I am not sure how to run this codebase too see if what I will do works... could you help me out there?

Fixed by #55


error: MESA-LOADER: failed to open swrast

Hi,
Thank you for making this great tutorial!
I have installed the project but when I try to run the imagenet-camera.py demo, I got this error

And show no picture as below when the program is finished. It seems that my OpenGL lin is broken? Have you ever encountered this issue?

Thank you!

Hmm...is your display connected to your Jetson, or are you running headlessly over SSH?
Are you able to run glxgears or glxinfo?   (you may have to install the mesa-utils package first)
This may repair your OpenGL installation if you install it:  https://github.com/NVIDIA/libglvnd
Alternatively, you could try the jetson-inference container, or if all else fails re-flash your SD card to get OpenGL back.

thanks,now, it's OK


Add new variable create_saml to be able to skip saml config

Is your request related to a problem? Please describe.
I need a way to create the workspace, with SAML specify in authentication_providers but skipping aws_grafana_workspace_saml_configuration
The order of my scenario is like this

create aws_grafana_workspace_saml_configuration with authentication_providers = ["SAML"]
get the output workspace_endpoint
Deploy Keycloak with input workspace_endpoint (helm)
Get from Keycloak output the url for idp_metadata_url
Create aws_grafana_workspace_saml_configuration using output workspace_id

Describe the solution you'd like.
New variable create_saml so I can set to false
Describe alternatives you've considered.
Don't have any other
Additional context
The scenario is for EKS Blueprints GitOps

closed in #20


study programme: search by class - ability to view multiple classes

Currently "search by class" enables to choose one class only. Ability to add multiple (all) classes would provide more detailed info on study programme as a whole.

done


Scoped log

Testing logging output can be tedious... There may be mistakes with scopes.
Note: Duplicates caused by an object being scoped multiple times is bad. Solution is to reconsider positioning - look for entry points and lift to the parent/owner if required.

You're awesome, @james-darkfox ! :)


typeable property does not work in v1.1.4

I see PR and commit include @keypress event to call parseTypedDate, which should prevent keypress if typeable property set to false. But in v1.1.4, this code replaced with @keyup event listening (code), which can not prevent actual typing.

Yes, you are correct! Thank you for brining this to my attention.
Fixed in 5b588ca and released in v1.1.5

Thank you for fast reply!


fix: issue publishing to maven central

:tada: This PR is included in version 1.4.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Gradle tasks fail with apparent file locking issue when used with a winsshfs mounted drive.

Expected Behavior
Expect tasks to complete as normal, gradle clean for instance fails.
Current Behavior
14:15:59.976 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
14:15:59.976 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
14:15:59.976 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
14:15:59.976 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
14:15:59.977 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] java.io.IOException: Incorrect function
14:15:59.977 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Incorrect function
14:15:59.977 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
14:15:59.977 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Exception is:
14:15:59.977 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.UncheckedIOException: java.io.IOException: Incorrect function
14:15:59.977 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:43)

Context
Project is located on a winsshfs mounted drive.  I have tried using the wrapper, daemon, no daemon. I have attempted passing osgi.locking=none as vm arg.
Steps to Reproduce (for bugs)
Any project will do.
The key to the issue is that it is a winsshfs mounted network drive (this is a necessary evil for my environment at the moment) that the project is located on. Gradle is located locally on my Win 10 hard drive.  Execution via a bash shell or windows command prompt produces same result.
Your Environment
https://scans.gradle.com/s/cfmtm53bhcn3w
fail.txt
stack.txt

Could you please provide the full stack trace by running with -s?
@lacasseio Any chance you can try to reproduce the issue?

@mhardin18 Was it working previously? Or is this the first time and you are getting this error?
I'm under the impression the winsshfs driver may not implement all functions required by Java FileChannel#tryLock method. We will keep debugging once we have more information.

@bmuschko I'm not getting any more info out of using the -s option than is already in the stack.txt attachment. If I'm not doing it right please let me know.
@lacasseio This is the first time.  I should point out that I originally ran into this issue with Buildship . But after working with things I began to realize it was a gradle issue, not directly buildship.
In order to get Eclipse to work with the winsshfs driver it is necessary to add osgi.locking=none to the jvm args. I've attempted this with gradle but it did not have any effect.
Let me know what else I can provide.

In order to get Eclipse to work with the winsshfs driver it is necessary to add osgi.locking=none to the jvm args.

Where exactly did you add the JVM args? Please be aware that you are working with at least two different JVM process: the Gradle process and one or many daemon processes.

I've tried multiple different approaches (none of which may be correct), adding it to the command line such as:
$ gradle clean -s --no-daemon -Dosgi.locking=none
Adding it to the task in the build file:
jvmArgs = ["-Xosgi.locking=none"]
I probably tried a few other ways that I don't recall.

Can you try add it to the environment variable GRADLE_OPTS?

Not sure if I did this correctly, I added it as an environment variable and then attempted to execute:
`hardin003@USMCD1OLP122 MINGW64 /m/workspace/master/Kranz/K4_Commons (master)
$ gradle clean
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Unrecognized option: -Xosgi.locking=none
hardin003@USMCD1OLP122 MINGW64 /m/workspace/master/Kranz/K4_Commons (master)
$ declare -x GRADLE_OPTS="-Dosgi.locking=none"
hardin003@USMCD1OLP122 MINGW64 /m/workspace/master/Kranz/K4_Commons (master)
$ gradle clean
FAILURE: Build failed with an exception.

What went wrong:
java.io.IOException: Incorrect function

Incorrect function

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED
Total time: 1.741 secs
`

I have a feeling osgi.locking is an Eclipse specific flag and would have no effect on Gradle. The Buildship plugin delegates everything to Gradle. I assume Eclipse have a certain mechanism to skip any locking.

I when down the rabbit hole and looked at the JDK locking code for Windows, LockFileEx code in ReactOS, and dokany's locking code. My feeling is this issue isn't related to Gradle. Instead, it seems to be an issue with win-sshfs or dokany driver regarding the overlapped IO nature of LockFileEx (asynchronous).
I would suggest you provide a stronger case for us to fix this directly in Gradle or raise the issue on win-sshfs or dokany project itself. Note that locking in win-sshfs log an action error and simply return NTSUCCESS. Either of those won't play well with Gradle as no real locking seems to take place which will cause corruption on concurrent access.
An alternative would be to move all files that could potentially lock to a file system that supports such feature (aka local file system) with the --project-cache-dir flag and possibly the --gradle-user-home flag.
I will not proceed with more debugging and will close this issue as not actionable. Feel free to provide more information if required.

It's 2022 i meet same issue when i open an gradle project which in SSHFS mounted file system, i got some error like below.
I found a work round, it works well if we use the "Mapping Network Driver" in Window 10.
X:\work5\workspace\rk3588\vendor\ruijie\common\libs\OPSTurbo\.gradle\checksums\checksums.lock is locked by some "unknown" process


Correct some grammar mistakes.

See
https://www.osnews.com/story/23020/abusing-slow-news-days-common-mistakes-in-english/
.

Thanks, merged. I will check the link you sent me!

Thanks!


updated to Angular 9

Codecov Report

Merging #7 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #7   +/-   ##
=======================================
  Coverage   44.61%   44.61%
=======================================
  Files           5        5
  Lines         195      195
  Branches       36       36
=======================================
  Hits           87       87
  Misses         97       97
  Partials       11       11

Continue to review full report at Codecov.

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


Add CMake options for disabling docs, examples and tests

I'm trying to package this as a Debian package for use by team. Downloading things from the internet during a build is a big no-no for packaging (you ought to get them the necessary things from the repository). Since making the code work without Conan is more than I'm willing to bite and I only plan to package for internal use this simply adds options to turn off building docs, examples and tests. These are set to ON by default if mp-units is the top-level project, i.e. a normal dev setup.

The build without docs, examples, and tests is just a build of the library, right? If this is true than https://mpusz.github.io/units/usage.html#cmake-conan should be enough. If you do not want to use Conan than you can work with src/CMakeLists.txt directly as this is meant to work independently and just provide a library to the end user (without changing his/her dev environment i.e. compilation warnings flags).
A top-level CMake entry point is meant for library development and this is why it should always build everything with really demanding compilation flags.

Using src/CMakeLists.txt seems like a fine option.


Pass parameters when reloading the grid

Hi, I want to allow user to enter some search criteria, and pass these search criteria to the server when user click the search/reload? is this doable? Thanks in advance.

Yes, you can reload your grid with given parameters, here's an example on that.

Thank you @Muchiachio. So I can pass any number of parameters to the server? I have a mvc action that need to accept a few parameters. Thanks again.

Yes, its just a query string for the action.

Did you get it working?


Add Makefile

What type of PR is this?
/kind feature
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #26
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

The following commands only work on ubuntu
make generate

The following commands only work on ubuntu
make generate

The following commands only work on ubuntu
make generate


[release 1.2] Update cri to 0ca1e3c2b73b5c38e72f29bb76338d0078b23d6c

Fixes https://github.com/containerd/containerd/issues/2744
Release note is also updated.

oh oh, no DCO.  bad liu, bad ;)

@crosbymichael Done. My mistake :/

LGTM

LGTM


pipeline-dump should work with continuous views

Hey,
we're not too experienced with postgresql and the following error but with the update to the newest pipelinedb version today we experienced the following error:
FATAL:  database files are incompatible with server
DETAIL:  The database cluster was initialized with CATALOG_VERSION_NO 201508140, but the server was compiled with CATALOG_VERSION_NO 201510270.
We tried to find the pg_upgrade command but it seems that it is not there. The pipeline_dumpall | pipeline method also doesn't work (pipeline_dumpall is looking for pg_dump instead of pipeline_dump which we fixed with a symlink).
The relations for the continuous views and streams have been broken after applying the dumpall method
to a fresh database directory:
analytics=# \d
                                List of relations
 Schema |                        Name                        | Type  |   Owner
--------+----------------------------------------------------+-------+-----------
 public | schema_version                                     | table | sebastian
 public | statistics__installs__daily_mrel0                  | table | sebastian

analytics=# select * from statistics__installs__daily;
ERROR:  relation "statistics__installs__daily" does not exist

Are we doing something wrong or is that a bug?
Best,
Seb

Hey @Degola ,
The problem is that the continuous view metadata is not dumped, so it's not being created in the new database. We'll add support for this soon. In the meantime, here's what you can do to work around this:

Export your *_mrel0 tables with pipeline-dump --column-inserts --data-only --table=<*_mrel0> <db name>
Create your continuous views in the upgraded database using CREATE CONTINUOUS VIEW
Set continuous_query_materialization_table_updatable to true in your pipelinedb.conf
Load the exported *_mrel0 data into your upgraded database

Let us know if that works for you!

Hey @derekjn, thanks, we will live with that for now and next upgrade.

Requires support for continuous views and streams in pg_dump.c:dumpTableSchema.


Send dropping messages over 438 characters

I have an application that uses the Send method to send a json encoded byte array and it seems to be dropping messages when the message data is over 438 bytes. Is there some flag I need to set for longer strings?
I'm using Azure Event Hubs (which shows no messages received when I only send messages over 438 bytes)
serializedEvent, err := eh.codec.Encode(eh.index, &event.Content)
  if err != nil {
    if !event.Guaranteed() {
      return false
    }

    logp.Critical("Unable to encode event: %v", err)
    return false
  }

  session, err := eh.client.NewSession()
  if err != nil {
    logp.Critical("Creating AMQP session: %v", err)
    return false
  }

  sender, err := session.NewSender(amqp.LinkTargetAddress("/" + eh.queue))
  if err != nil {
    logp.Critical("Creating sender link: %v", err)
    return false
  }

  //message := amqp.NewMessage(serializedEvent)
  message := &amqp.Message{
    Data: [][]byte{serializedEvent[:438], serializedEvent[438:]},
  }
  logp.Info("Sending message: %v", message)
  err = sender.Send(context.Background(), message)
  defer sender.Close()
  if err != nil {
    logp.Critical("Sending message: %v", err)
    return false
  }
  return true

I can try to reproduce this later. It shouldn't be dropping the messages as far as I'm aware.
Is the above a reproduction? I'm not sure Event Hubs will work with Data: [][]byte{serializedEvent[:438], serializedEvent[438:]}. If I remember correctly, when I tried something similar with Service Bus only the first data payload was recognized, it seemed to ignore the second data payload.

Here's some debug output I've captured when sending a message over 438 bytes.
$ go test -v -timeout 100s -run 'TestIssue54_MessagesOver438Chars' -tags "integration debug"
=== RUN   TestIssue54_MessagesOver438Chars
=== RUN   TestIssue54_MessagesOver438Chars/issue54-messages-over-438-chars
TX: Begin{RemoteChannel: 0, NextOutgoingID: 0, IncomingWindow: 5000, OutgoingWindow:<PHONE_NUMBER>, HandleMax: 0, OfferedCapabilities: [], DesiredCapabilities: [], Properties: map[]}
RX: Begin{RemoteChannel: 0, NextOutgoingID: 1, IncomingWindow: 5000, OutgoingWindow: 5000, HandleMax: 255, OfferedCapabilities: [], DesiredCapabilities: [], Properties: map[]}
TX: Attach{Name: AGvQHzLfvPCkPdMrAnfyOlkovNrauyoMBDDZgVUM, Handle: 0, Role: Sender, SenderSettleMode: <nil>, ReceiverSettleMode: second, Source: <nil>, Target: source{Address: integration-issue54-11059684649119627575/Partitions/0, Durable: 0, ExpiryPolicy: , Timeout: 0, Dynamic: false, DynamicNodeProperties: map[], Capabilities: []}, Unsettled: map[], IncompleteUnsettled: false, InitialDeliveryCount: 0, MaxMessageSize:<PHONE_NUMBER>854775807, OfferedCapabilities: [], DesiredCapabilities: [], Properties: map[]}
RX(Session): Attach{Name: AGvQHzLfvPCkPdMrAnfyOlkovNrauyoMBDDZgVUM, Handle: 0, Role: Receiver, SenderSettleMode: <nil>, ReceiverSettleMode: second, Source: <nil>, Target: source{Address: integration-issue54-11059684649119627575/Partitions/0, Durable: 0, ExpiryPolicy: session-end, Timeout: 0, Dynamic: false, DynamicNodeProperties: map[], Capabilities: []}, Unsettled: map[], IncompleteUnsettled: false, InitialDeliveryCount: 0, MaxMessageSize: 262144, OfferedCapabilities: [], DesiredCapabilities: [], Properties: map[]}
RX(Session): Flow{NextIncomingID: 0, IncomingWindow: 5000, NextOutgoingID: 1, OutgoingWindow: 5000, Handle: 0, DeliveryCount: 0, LinkCredit: 1000, Available: 0, Drain: false, Echo: false, Properties: map[]}
RX(Session): Detach{Handle: 0, Closed: true, Error: *Error{Condition: amqp:not-allowed, Description: , Info: map[]}}
RX: Detach{Handle: 0, Closed: true, Error: *Error{Condition: amqp:not-allowed, Description: , Info: map[]}}
TX(Session): Detach{Handle: 0, Closed: true, Error: *Error(nil)}
--- FAIL: TestIssue54_MessagesOver438Chars (53.89s)
	integration_test.go:681: Creating hub integration-issue54-11059684649119627575
    --- FAIL: TestIssue54_MessagesOver438Chars/issue54-messages-over-438-chars (2.37s)
    	integration_test.go:431: Expected nil, got error link detached, reason: *Error{Condition: amqp:not-allowed, Description: , Info: map[]}
FAIL
exit status 1
FAIL	pack.ag/amqp	53.916s

Here's the test I'm running as well:
func TestIssue54_MessagesOver438Chars(t *testing.T) {
	hubName, _, cleanup := newTestHub(t, "issue54")
	defer cleanup()

	label := "issue54-messages-over-438-chars"
	t.Run(label, func(t *testing.T) {
		checkLeaks := leaktest.CheckTimeout(t, 60*time.Second)

		// Create client
		client := newEHClient(t, "issue54")
		defer client.Close()

		// Open a session
		session, err := client.NewSession()
		if err != nil {
			t.Fatal(err)
		}

		senderPartitionPath := hubName + "/Partitions/0"
		// Create a sender
		sender, err := session.NewSender(
			amqp.LinkTargetAddress(senderPartitionPath),
			amqp.LinkReceiverSettle(amqp.ModeSecond),
		)
		if err != nil {
			t.Fatalf("%+v\n", err)
		}

		data := make([]byte, 439)
		rand.Read(data)
		err = sender.Send(context.Background(), amqp.NewMessage(data))
		if err != nil {
			t.Fatal("Expected nil, got error", err)
		}

		var wg sync.WaitGroup
		wg.Add(1)
		var receiveErr error
		go func() {
			defer wg.Done()

			// Create a receiver
			receiverPartitionPath := hubName + "/ConsumerGroups/$Default/Partitions/0"
			receiver, err := session.NewReceiver(
				amqp.LinkSourceAddress(receiverPartitionPath),
				amqp.LinkCredit(10),
				amqp.LinkBatching(false),
			)
			if err != nil {
				receiveErr = err
				return
			}
			defer receiver.Close()
			ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
			msg, err := receiver.Receive(ctx)
			cancel()
			if err != nil {
				receiveErr = fmt.Errorf("Error after receives: %+v", err)
				return
			}

			if !bytes.Equal([]byte(data), msg.GetData()) {
				receiveErr = fmt.Errorf("Expected received message to be %v, but it was %v", string(data), string(msg.GetData()))
			}
		}()

		wg.Wait()
		if receiveErr != nil {
			t.Fatal("Receive error:", receiveErr)
		}

		client.Close() // close before leak check

		checkLeaks()
	})
}

After checking the send buffer for a message of 439 bytes, the first frame is sent with 446 bytes and the second is attempted to be sent with 1 byte. So, does it make sense that the issue is in how send framing is being handled?

@vcabbage yes that is the repro, if I remember correctly though I had also tried putting the whole payload in the first data payload and it still wasn't being received in EH.

With some help from the EH team I was able to deduce that the delivery-id is being incremented between the first frame and the second. This causes the entire message to fail. The delivery-id needs to be the same or omitted, but is currently being incremented and set if nil.

Sorry for the delayed response, I was sick for a couple days.
Thanks for reporting this @jseely.
Thanks for digging in to it @devigned, it probably would have taken me a while to find the cause.
I've opened a PR with a fix. I'm not going to merge it immediately as I may want to make some changes, but I should have it merged by the end of the weekend.

No worries. Hope you’re feeling better.


What is currently the most up-to-date stable branch?

It depends.  We technically do not have "stable" branches.  But basically both v1 and v2.0 branch receives "fixes" only nowadays.  If you find any problem, please let us know.
Here is a list of the branches we have.

develop : The development branch.  All new things should go here.  And this is the default branch.  This will be 2.1 or something else.
libcsp-1 : libcsp version 1.x
libcsp-2-0 : libcsp version 2.0
master : This one might be confusing.  But it points to libcsp-1 and we leave it there for backward compatibility.

#244 might gives you some idea as well.

Thanks Yashi for the quick answer.
Is it safe to use the develop branch?
What features/important bug-fixes are present in develop that are missing from libcsp-2-0?

Is it safe to use the develop branch?

It depends.  It's certainly safe to run it on your board. I shouldn't blow up. But I can't ensure that it's perfectly safe to run it for your mission critical human related project.
What features/important bug-fixes are present in develop that are missing from libcsp-2-0?
git rev-list --no-merges origin/libcsp-2-0..origin/develop | wc -l
87

There are only 87 non-merge commits between. :wink:
To read them, run the following
gitk origin/libcsp-2-0..origin/develop


Add huge warning about invalid JSON in ELK_nginx-json.

Please update to warn that there is a risk that invalid JSON strings are generated by nginx.
See https://github.com/elastic/logstash/issues/4339#issuecomment-164325513

Merged PR. Thanks!


Expand SSH hostname to IP where necessary (telnet for example)

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[x] bash
[x] zsh
[x] fish

Problem / Steps to reproduce
SSH hosts configuration file ~/.ssh/config is parsed when the fzf "host" completion is used. The configured names of hosts and their respective addresses (IP/domain) are parsed into two separate fuzzy completion hits. However, the configured names cannot be used with non-SSH commands as they do not use the SSH config file (telnet being an example) and so these fuzzy completion hits are not useful. It would be a practical feature if in these cases fzf expanded SSH names into addresses (after selecting the name from the list of hits).
Such a solution could be implemented with a new "host_sshexpand" completion mode, but if this is not desired, the existing "host" one could be refit for this purpose and provide the described expansion by default. And then the SSH-type commands (ssh, scp, dbclient, ...) could be treated as special cases where this additional expansion is not necessary.

What is the fzf "host" completion you refer to?
I worked out my own solution.  See https://github.com/junegunn/fzf/issues/2316

What is the fzf "host" completion you refer to?
I worked out my own solution.  See https://github.com/junegunn/fzf/issues/2316

It would be a practical feature if in these cases fzf expanded SSH names into addresses (after selecting the name from the list of hits).
Such a solution could be implemented with a new "host_sshexpand" completion mode, but if this is not desired, the existing "host" one could be refit for this purpose and provide the described expansion by default.

You should customize telnet completion instead.
After all hosts in ssh configs aren't for stuff like telnet anyway, you should set these in places like /etc/hosts.
Repurposing a semi-public function hurts backward compatibility and people who use _fzf_host_completion probably won't be grateful about this surprise.

I use fzf also because there is no need to edit /etc/hosts, so this would be counterproductive. Primarily I suggested an additional function (_fzf_hostssh_completion for example) that would expand SSH hosts into IPs after calling _fzf_host_completion and receiving input. There is no need to break compatibility.

You may like to have a look at...
https://github.com/junegunn/fzf/issues/2316

It seems as the proper way to DIY, but the referenced case is about using custom list (hostname source) and so at least partially-custom implementation is probably inevitable there. The case here would be to improve default completion capabilities so all host-autocompletion output would be cross-compatible between default-set command autocompletions. Another example besides telnet being unable to use expanded SSH hostnames is ping. Wouldn't it be cool if one could ping SSH hosts by their hostname?

TBH, I don’t quite understand this issue.
Any valid host (be it a name or an address literal) should be usable with telnet (and ssh, etc. pp.). Of course, whether something listens there, is a completely different question.
The only exception to this would be if one creates "fake" hostnames in ssh_config like I do e.g.:
Host VNC_foo.example.org
        HostName                foo.example.org
        LocalForward            localhost:51000 localhost:5900

then SSH could work with VNC_foo.example.org (because it knows a real name via HostName), but other's couldn't.
Is that what you mean?
I, personally, don't think that there's really a generic way in which fzf could solve this, other than allowing you to filter the host lists generated by __fzf_list_hosts(), in the various users of these (like _fzf_host_completion() and _fzf_complete_ssh().
One could perhaps offer something like what I propose in https://github.com/junegunn/fzf/pull/3454#issuecomment-1736345516, e.g. a FZF_COMPLETION_HOSTNAME_POSTPROCESS_CMD, where the user could then run a command to filter as he likes, in the example above e.g. via FZF_COMPLETION_HOSTNAME_POSTPROCESS_CMD="grep -v '^[A-Z]'".
Of course, one would then need different FZF_COMPLETION_HOSTNAME_POSTPROCESS_CMD and FZF_COMPLETION_SSH_HOSTNAME_POSTPROCESS_CMD.

Is that what you mean?

It's almost spot on. What you described actually already works with SSH commands since they handle the ssh_config hosts natively. What is proposed here is that the same functionality would also work for non-SSH commands through fzf. Considering your case this would mean that you were able to ping VNC_foo.example.org for example (which would get expanded into ping foo.example.org).

Hmm, I see.
Though I wonder, whether this would be even desirable?
I mean if someone makes up "fake" hostnames via SSH (which makes sense in some cases), then I still see why one wants to filter them out from non-SSH completions… but expanding such to some "real" name or IP feels conceptually a bit wrong, as the fake name is in principle something purely SSH internal.
I'd also think it's difficult to do:
Consider someone sets up a fake name in SSH (or anything similar) that is also a real domainname with IP.
So even if you say you go all the way down to IP addresses (an not just to the "resolved" (I mean within e.g. ssh_config) hostname: which IP address would you take? The one that ssh_config maps to or the one from DNS?

And, expanding all the way down to an IP address seems even more problematic, considering that hostnames may have attached several of them (A and AAAA RRs) and even other things like SRV RRs, which a tool like telnet might use.

Though I wonder, whether this would be even desirable?

To be fair the fzf completions are configurable, this would just be another available option. Personally I'd find it very useful to be able to ping SSH hosts.

the fake name is in principle something purely SSH internal.

The name itself yes, in principle, but the function would expand it to a valid host address from ssh_config, which should be resolvable and not purely SSH-internal.

And, expanding all the way down to an IP address seems even more problematic, considering that hostnames may have attached several of them (A and AAAA RRs) and even other things like SRV RRs, which a tool like telnet might use.
Again here, which of all these should the expansion use? One would loose e.g. round robin functionality and things like that, if simply one is chosen by chance.

The fzf's function would be to expand known SSH hosts to a ssh_config HostName value, nothing more, nothing less. This expansion would take precedence before DNS resolution is performed by the command itself, if necessary. If the user sets and uses this expansion wrongly, it is their problem, like with other available expansions.

The fzf's function would be to expand known SSH hosts to a ssh_config HostName value, nothing more, nothing less. This expansion would take precedence before DNS resolution is performed by the command itself, if necessary. If the user sets and uses this expansion wrongly, it is their problem, like with other available expansions.

Still, as said above, what if the expanded name is a normal valid hostname? It might be in ssh_config like so:
Host example.org
   Hostname <IP_ADDRESS>

And at the same time be in /etc/hosts as:
<IP_ADDRESS> example.org
<IP_ADDRESS> example.org

which even makes sense, if some services are available via both IPs, but SSH only via one.
At least if fzf would now expand example.org per default and even for non-SSH to <IP_ADDRESS>, other commands may no longer work as expected.
Another difficulty, I guess, might be if e.g. Match is used, in which case the same hostname can be mapped to different Hostname values.

Still, as said above, what if the expanded name is a normal valid hostname?

The normal valid hostname gets overridden due to the expansion, but that is user's problem. It'd be user's responsibility to know what they're doing (setup unique fake names). It's the same as with local DNS servers, hosts file configurations, ad blockers, ...

other commands may no longer work as expected.

The primary purpose of the expansion would be to help users with numerous SSH hosts that know what they're doing (and keep their SSH host configuration tidy). I'm not worried about users with messy ssh_config, everybody needs to learn sometime. If your software starts to handle all possible user mistakes, there will be no end. And fzf is more of a power user thing anyway.
Also, there will always be a guy that will find it funny to name his router locally google.com and we should definitely allow such aspiring brilliant minds to experience the results of their experiments rather than to wrap them in cotton wool.
To recap, a user has an option to set the ssh_config correctly in a way that both DNS and SSH hosts can be resolved, or wrongly, just as with any other setting in any other piece of software. Also, it would probably also not be the first expansion in fzf that could be used wrongly.

Another difficulty, I guess, might be if e.g. Match is used, in which case the same hostname can be mapped to different Hostname values.

Only exact Host matches would work. If you're talking about multiple HostNames under a single Host, then there's also really only one option. fzf cannot possibly know more than the user and the first HostName is the only one guaranteed, so it simply picks the first one. I believe this is the sole and only KISS solution here.
Picking the first HostName doesn't cover every edge case in the world, but is deterministic, which is much more important.

Still, as said above, what if the expanded name is a normal valid hostname?

The normal valid hostname gets overridden due to the expansion, but that is user's problem. It'd be user's responsibility to know what they're doing (setup unique fake names). It's the same as with local DNS servers, hosts file configurations, ad blockers, ...

other commands may no longer work as expected.

The primary purpose of the expansion would be to help users with numerous SSH hosts that know what they're doing (and keep their SSH host names unique). I'm not worried about users with messy ssh_config, everybody needs to learn sometime. If your software starts to handle all possible user mistakes, there will be no end. And fzf is more of a power user thing anyway.
There will always be a guy that will find it funny to name his router locally google.com and we should definitely allow such aspiring brilliant minds to experience the results of their experiments rather than to wrap them in cotton wool :)
So a user has an option to set the ssh_config correctly in a way that both DNS and SSH hosts can be resolved, or wrongly, just as with any other setting in any other piece of software. Also, it would probably also not be the first expansion in fzf that could be used wrongly.

Another difficulty, I guess, might be if e.g. Match is used, in which case the same hostname can be mapped to different Hostname values.

Only exact Host matches would work. If you're talking about multiple HostNames under a single Host, then there's also really only one option. fzf cannot possibly know more than the user and the first HostName is the only one guaranteed, so it simply picks the first one. I believe this is the sole and only KISS solution here.
Picking the first HostName doesn't cover every edge case in the world, but is deterministic, which is much more important.

It's the same as with local DNS servers, hosts file configurations, ad blockers, ...

Well I wouldn't consider this to be exactly the same situation. If I set up my own DNS server, but configure it in /etc/resolv.conf it's obvious that everything will use it (and potentially break things).
If, however, I make some config in ssh_config one can reasonable expect that only ssh and tools that use ssh will use it. So IMO it's not really to be expected that this may affect other things as well, which it then (with that expansion on completion) would however.
Don't get me wrong, I have nothing against the feature per se, I just think it may be quite tricky to implement properly and may cause behaviour that is not necessarily to be expected.
So nice if it would be implemented, but I think it should be an opt-in functionality that's disabled per default.
One idea that I had (for another use case) might actually help with yours, too:
What I'd like fzf to be able to do (well maybe it actually can already do it and I've been just to lazy to RTFM ;-) ):

If I complete e.g. ssh **<TAB> I want to see hostnames. I guess so far that makes sense.
 Should be still fairly reasonable.
If instead of Enter I do say e.g. <Shift-Tab>, I'd like to see another selection "pop-up" (within fzf), that prints me usernames for which I have access on the currently selected hostname (so that varies from selected host to host - and of course there needed to be some way where I store the information and fzf would need some way to get that list). If I then do Enter, I want the ssh<EMAIL_ADDRESS>

Of course, there would need to be quite some additional functionality (e.g. a way to tell fzf that it should combine the two selections to <selection from pop up>@<main selection>... but well.. it's just an idea so far. ^^
Anyway... this might be a nice way for what you want, just that the "pop-up" doesn't show usernames, but all possible mappings for the current hostname (which is possibly a fake hostname).
And of course in your case, fzf would need to be told to return just <selection from pop up>.

I also did not want to have to deal with usernames.
So I have wrapper script around 'ssh' I call 'r' which looks up the username to use if I don't give one.
So if I type    r -x l
It executes something like ssh -x<EMAIL_ADDRESS> (example only not my real account)
This wrapper expands the destination 'l' account using.

host aliases   EG: l -> lamia
DNS look ups...   lamia -> lamia.staff.example.org     don't even rely on '/etc/resolve' domains
and a account list for the username lookup, created originally for updating my homes on 500+ servers!

The wrapper handles normal ssh options, and if I actually give it a<EMAIL_ADDRESS>It also handles special cases like getting to specific machines via intermediate jump hosts if needed.
For more information look at my ssh notes....
https://antofthy.gitlab.io/info/apps/ssh.txt
and search for    'SSH Command wrapper -- Why do it?'
that file also has sections on...
'Calling your SSH Wrapper from another program'
for information on how to get programs like  "rsync", "scp", "cssh" etc., to call a wrapper script
'Parsing SSH options'
for information on parsing the ssh options so you can get the destination option reliably.
and so you can handle -l username.
I built this system a little at a time over 30 year!  Starting back in the days of telnet and rsh (may they rest in peace).   Every so often something else was added, abstracted away, re-factored, or simplified.
The  'r' script for example is NOT the only script that uses account names, so much of the 'lookups' was actually in other scripts that can be used by other scripts.  For example I have a 'find_acct' script to do the username lookup, and 'find_host' script to do the DNS lookup using personal host aliases file and a list of domains the host might be in.
NOW... That is NOT to say I don't use fzf  I do.
See...   https://github.com/junegunn/fzf/issues/2316
I just found using a ssh wrapper is a much better solution for some problems.


Streamcontroller class name does not exist

floor: ^0.17.0
dev
floor_generator: ^0.17.0
build_runner: ^1.10.3
Streamcontroller class name does not exist and cannot be generated normally

Did you make sure to import dart:async in your database file?
// required package imports
import 'dart:async';
import 'package:floor/floor.dart';
import 'package:sqflite/sqflite.dart' as sqflite;

import 'dao/person_dao.dart';
import 'entity/person.dart';

part 'database.g.dart'; // the generated code will be there

@Database(version: 1, entities: [Person])
abstract class AppDatabase extends FloorDatabase {
  PersonDao get personDao;
}

thanks


Add manifest file for Mozilla Thunderbird (Kabyle) v78.1.0 x64

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run


Fix link to separations not working

Currently, clicking the links on the separations isn't working. This is a simple fix to this problem.


Restructuring repo to support v1alpha2

What type of PR is this?
/kind design
/kind api-change
What this PR does / why we need it:
This adds new sets of v1alpha2 APIs and docs. This should mark the end of changes to v1alpha1. Note that both the docs and API definitions are starting as an exact copy of the corresponding v1alpha1 files. I've also added a note to the readme to indicate that only v1alpha1 is supported at this point.
Does this PR introduce a user-facing change?:
NONE

I think I've got codegen working well now, so this should be ready to go. PTAL.
/cc @danehans @jpeach

@robscott to see how the cluster api project handles api versioning and provide his findings to this PR.

@danehans From what I can tell, cluster-api has taken the same general approach proposed here and used in upstream. The main branch represents current work towards the next version, and when needed, release-{version} branches are maintained for patches to older releases. Given that, I think it makes sense to proceed with this approach here as well.

LGTM

/hold cancel

Hard to review but did a few ls | shasum to figure out if we missed any files and it doesn't seem like it.
/lgtm


fix log success

This will need a new unit test to ensure it works as it should. You can look at the test/spec.js file to see how tests are written.

Ok. I will try.

@prugel Thanks, I've landed the patch & published 0.9.5. In the future please write a message if I should re-review the patch as GitHub doesn't send email notifications if you just update the code in the PR so I didn't know anything changed here. :)


feat(apps/prod/tekton/setup): enable cloudevent emit and add sink url

Notice: currently we need update the config map tekton-pipelines/feature-flags manually because of the operator not support the congfiguration before v0.63.0.
Signed-off-by: wuhuizuo<EMAIL_ADDRESS>

/approve


compat with Terrafrimacraft?

would it be possible to have this work with tfc?

"work with" in what way? What doesn't happen now that you would like to happen?


Refs #35359 -- Removed unnecessary use of Concat() in GeneratedField test.

OperationTests.test_add_generate_field back ported to 5.0 and used
Concat(), which in Django 5.0 is not immutable on PostgreSQL and cannot
be used in GeneratedField, see 6364b6ee1071381eb3a23ba6b821fc0d6f0fce75.
Trac ticket number
Related to ticket-35359
Branch description
OperationTests.test_add_generate_field fails with django.db.utils.ProgrammingError: generation expression is not immutable in the Django 5.0 CI for postgres and postgis: https://djangoci.com/job/django-5.0/
The original test OperationTests.test_add_generate_field is "extra" and does not fail when the changes of ticket-35359 are reverted and only confirms that we can add GeneratedFields after FKs.
Another option is remove the test entirely.
Checklist

[ ] This PR targets the main branch.
[X] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[ ] I have checked the "Has patch" ticket flag in the Trac system.
[X] I have added or updated relevant tests.
[X] I have added or updated relevant docs, including release notes if applicable.

I'd target this only to the 5.0.x/stable branch.

I can see value in doing what you propose, but at the same time, I'm thinking that future backports in this file could more easily lead to conflicts given the test divergence against main. Considering that the test semantic is not changing, I'm inclined to suggest that we land this in main and then we backport to stable/5.0.x.
@felixxm @sarahboyce would you agree to the above?

would you agree to the above?

Yes, but for slightly different reasons. I think the test is now slightly simpler, still achieves what it wanted to test, and the naming is a bit clearer - so I would be happy to also land this in main 👍

I'd target this only to the 5.0.x/stable branch.

I can see value in doing what you propose, but at the same time, I'm thinking that future backports in this file could more easily lead to conflicts given the test divergence against main. Considering that the test semantic is not changing, I'm inclined to suggest that we land this in main and then we backport to stable/5.0.x.
@felixxm @sarahboyce would you agree to the above?

There are many differences between the main and stable/5.0.x branches, so I don't see much point in keeping this single test identical :shrug:

I'd target this only to the 5.0.x/stable branch.

I can see value in doing what you propose, but at the same time, I'm thinking that future backports in this file could more easily lead to conflicts given the test divergence against main. Considering that the test semantic is not changing, I'm inclined to suggest that we land this in main and then we backport to stable/5.0.x.
@felixxm @sarahboyce would you agree to the above?

There are many differences between the main and stable/5.0.x branches, so I don't see much point in keeping this single test identical 🤷

Fair enough, following this spirit I have also reverted the test name which is not (strictly speaking) relevant for this change. We may consider landing a better name in main  though.


The Typescript link to the code sample is broken

Perhaps it should point to the NodeJs one: https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/incoming-webhook/nodejs

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 90ff2a84-a8bc-9259-d37d-622b102df75b
Version Independent ID: e3b53e27-2946-189c-623b-9df704ea8f12
Content: Create an Incoming Webhook - Teams
Content Source: msteams-platform/webhooks-and-connectors/how-to/add-incoming-webhook.md
Service: msteams
GitHub Login: @laujan
Microsoft Alias: lajanuar

@theshumanator - Thank you for reporting this, we will get the doc updated.
@surbhigupta12 - Can you please help to update the code sample details in the following doc - https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook#code-sample
Please update the highlighted areas below -
Change the title from TypeScript to NodeJs.
Update the sample link to - https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/incoming-webhook/nodejs


Custom Sign In and Sign Up page using Clerk

Issue #15
Title:  Add custom sign in page
This pull request customizes the Sign In and Sign Up pages using the Clerk API. The enhancements include:

User Authentication: Integrates Clerk API for user authentication on the Sign In and Sign Up pages.
UI/UX Improvements: Enhances the user interface and user experience for signing in and signing up.
Error Handling: Adds robust error handling for authentication-related issues.
Responsive Design: Ensures the pages are responsive and work well on various devices.

Changes
Sign In Page

Integrated Clerk API for user authentication.
Improved UI components for a better user experience.
Added validation and error messages.

Sign Up Page

Integrated Clerk API for new user registration.
Enhanced UI elements for a seamless sign-up process.
Implemented input validation and error handling.

Testing

Verified that users can successfully sign in and sign up using the new pages.
Tested the error handling for various scenarios (e.g., incorrect password, existing email).
Ensured the pages are responsive and work well on different screen sizes.

Screenshots
Large screen

Small screen

@abhi9ab there seems to be some issue

I'll look into it

I think you have to enable the GitHub SSO connection in your clerk dashboard

@abhi9ab Yeah I agree with you. But I wasn't planning on allowing Github authentication, as that indicates the tool/product is developer oriented, whereas cal buddy is meant for everyone. So for now just include Google authentication and email authentication only.

Included only Sign in/Sign up with Google and Email authentication feature

@abhi9ab amazing job again! Thanks for contributing


Fix handling of PRIMARY KEY constraints

The SchemaManager raised an exception while reading tables without
any PRIMARY KEY constraints and ignored them when existing.
Relates #75.

@chaudum I've pushed another fixup as NOT NULL constraints are not supported in general and supporting it completely (create correct CREATE TABLE statements) should be done dedicated.