DNX451 support

Introduction to DNX
I start with some short introduction since the idea of Cross-Platform .NET is quite fresh.
DNX stands for Dot Net eXecution environment. It lets us restore Nuget packages, compile the code and execute it with native CLR Host. Some good introduction can be found here.  All that aims at cross-platform .NET. A very modularized .NET to be honest!
DNX451 is a DNX SDK running on .Net 4.5.1 (Desktop CLR / Full BCL and FCL). So it is not Cross-Platform yet, which NETCORE aka DNXCORE50 is.
To me DNX451 support is just a huge step forward for NETCORE support, which it the cool thing we aim for ;)
Changes in .NET applications development:

We need DNX toolchain to be installed link. It contains of . NET Version Manager (DNVM) and DNX. Once installed, we can get our hands on latest runtime with simple „dnvm upgrade” command. „dnvm update-self” is also worth to mention.

 We need .NET Core command-line (CLI) [link](https://github.com/dotnet/cli) to be installed.

.csproj and package.config files have been replaced with .xproj and project.json files. .xproj automatically references all .cs files so you don’t have to update it with every new class/interface/enum added (number of git conflicts has just dropped) Project.json allows us to target multiple frameworks with one file and manage all dependencies in single place. Simplicity over complexity! Project.json.lock tells the compiler exactly where to look for our dependencies. You can produce it with „dnu dotnet restore”.  Dnu is just an alias for a part of Dnx.
Forget about .exe files, now you get .dll files with entrypoints that can be nonstatic and async methods! Moreover VS does not produce output files by default, it preffers to do this in memory. But of course there is an option in VS to get these files. Alt + F4 -> Build tab -> „Produce output on build” checkbox
To start program you need to start it with „dnx dotnet run”. Run is just a command in your project.json file.
Program’s startup seems to be longer to me now. If you set DNX_TRACE to 1 then you get detailed status updates from DNX. That explains a lot! (I created dedicated VS profile for BDN for this to make troubleshooting easier)
All applications put nuget packages to the same folder now. It is „%USERPROFILE%/.dnx/packages”. MS plans to replace „dnx” with „nuget” in this path
Assembly.Location is just an empty string now. That is because the way of loading assemblies has changed.
In NECORE some of the APIs has changed. To make System.Object independent from System.Reflection, Object.GetType() returns a simple object that have only ONE field: Name. If you want to get more, you need to call other method: Object.GetType().GetTypeInfo()
& more. Yet to discover, at least for me.

Failed PoC:

I tried to use Nuget.Client v3 to get the dnu restore working, but it did not create project.json file I needed.
I tried to use Microsoft.Dnx.Compilation to compile, but I have failed to make it work. Dnx tool itself is using this, but it does so much configuration that I was unable to reproduce it.
I tried to use „dnu publish” to produce the dll first, and then run it with dnx run but it had one huge disadvantage: it was generating a lot of nested folders, which names I could not control, which caused a lot of „path too long exceptions”. I had to keep my benchmarks very close to drive’s root, like C:\bdn.

I succeded with dnx toolchain and it got retired by Microsoft. I had to switch to dotnet cli which also reduced the number of tricky things!

How it works
I have built a new toolchain that relies on the classic one. In order to reuse as much code as possible, most of the new classes just inherit from the existing ones.

CHANGE: Instead of generating .csproj file with references to .dlls, new project.json file that defines the dependencies is being generated.
NEW: To get all required dependencies dnu dotnet restore command is being executed. It is just a new „nuget restore”. It produces project.lock.json file.
CHANGE: Instead of compiling code and emitting assembly and then running it, a dnx run command is being executed. It does all that with single command and in memory (no .dll file). The disadvantage of doing it in memory is that we have to compile it with each iteration.
CHANGE: I have changed the way how console output is being read. Instead of while(output.ReadLine() != null) I used events. I have also added reading of error output. This might give us more detailed informations on errors.

Tricky things

To get „dnu dotnet restore” working when executing in VS/xUnit runner I had to put the auto-generated project.json file closer to VS solution folder root (DnxGenerator. GetDirectoryPath).
The other thing to get it running was to switch between dependency to BenchmarkDotNet project and package. When developing, we want our auto-generated program to get code from project, but when we are at production, then we want to it from the official nuget( BenchmarkDnxGenerator.GetTargetType()). I have relied it on the existing convention of AssemblyTitleAttribute ending with „-Dev”.

  I had also to increment the package version, otherwise I could not test the production part, because the nuget was restoring existing version.

To get „dnx run” working I had to define the compiler in project.json in explicit way (roslyn). When it was using the default compiler (DesignTime) it had differnt configuration and was unable to resolve dependencies.
To get the x86/x64 working I had to tell dnvm to use exact processor architecture (BenchmarkDnxExecutor. BuildParameters)
To ensure the high priority and right affinity in scenario where instead of starting single process I start cmd.exe that starts dnx.exe that starts the program I set these at Program.Main of the autogenerated program. This is because HIGH_PRIORITY is not inherited by child processes in Windows link

How to test
Testing from VS/xUnit runner requires no configuration.
Testing as a standalone application requires more effort:

Go to AssemblyInfo.cs and remove „-Dev” from it.

Build solution in Release

Create three new folders:  SomeName\BenchmarkDotNet\0.8.3

Go to „artifacts\bin\BenchmarkDotNet\Release” folder

Unzip BenchmarkDotNet.0.8.3.nupkg to the previously created folder

Add this folder as a nuget’s local feed link

Create new VS solution with new project „Console Application (package)” (or add it to your existing solution)

Remove NETCORE target from it’s project.json

Install BenchmarkDotNet.0.8.3 package from your local feed

Write some benchmarks like you used to do before.

 You can see that nuget has used your local feed now

Execute „dnx run” and ENJOY

It all seems crazy, but faking the nuget repo needs to be done only now, for testing the solution before official nuget package release. And the whole dnu/dnx thing is just the new way of executing .NET apps so the rest will be no suprise to the users.
How to debug:

DNX451: simply press F5
NET40: Configure VS to start executable on debugging, for our purposes I have already done this for Samples project

Please start testing, and do not hesitate to ask. I think that if you accept this this PR I will remove existing .csprojs and old solution. I can also squash the commits if you want. I left it this way just to keep the history.

It looks awesome. Thanks!
However, I want to spend a lot of time for testing. Here is my plan: first, I want to publish new API (v0.9.0) on the next week (see the refactoring branch). Next, I will try to merge your branch with new API, add an easy way to run benchmarks on DNX, and look at all of our samples on DNX. After that, I will publish v0.9.x with the DNX support. Probably, it will be at the end of February.

@AndreyAkinshin Thanks!
I understand the need of detailed testing. Please let me know when you merge refactoring with master, then I will sync this PR with master so you can start testing on working code.
Btw. in the meantime I will create another branch for CORE (aka DNXCORE50 aka .NET CORE 1.0). As a PoC I got it running on Windows just a moment before.

Great!

v0.9.0 is ready, see the master branch.

Ok, let the mortal kombat (merge) begin.

@AndreyAkinshin I have merged the code. I have also adopted to affinity change and new FSharp projects.
I think that you can start testing. Please use only the new .DNX VS solution.

It is awesome!
Unfortunately, DNX is retired (see https://github.com/aspnet/dnx), our future is dotnet/cli. Can you update your branch with new .NET Command Line Interface?

Sure, I will check if the cli supports all we need as dnx did.

Done! Switching from dnx to cli has also reduced the number of tricky things I had to do to get it working (look at the updated description).
Btw. .NET CORE should be a piece of cake now ;)

Awesome. Have a few things to test on .NET CORE :)

:watch: :eyes:

I want to try to merge master with dnx on this weekend.

Looks good! :dancers: Added a few comments. Mostly related to targets. Have you considered building for dotnet5.x/netstandard1.x?

@AndreyAkinshin I have just cleaned up the code (also found and fixed minor bug on my side). The merge should be easier for you now. If you want we can arrange some online meeting where I could give you some introduction/description of the changes.
@khellang Thanks for the comments! The next step will be to target CORE. I would like to wait with netstandard until it gets a little bit more mature idea. Perhaps it could be easily done now?

Hi, @adamsitnik, sorry for the late answer.
First of all, I would just like to thank you again, it is awesome job. However, I have some feature requests:

Can you put some documentation in the repo? I like description of your PR, it would be cool to make a DEVELOPING.md file with useful information
For now, you put each generated benchmark in the BenchmarkDotNet.Autogenerated folder. Can you put it in a separated folder (can be subfolder of BenchmarkDotNet.Autogenerated)? It is important to have ability to observe generated sources of all benchmark.
Can you add a sample (like Intro/IntroToolchains) with two toolchains (Classic and Dnx) for a single benchmark method?

BTW, what the status of the CoreCLR support?

Hi @AndreyAkinshin

Documentation - sure, I will write it down.
As for the folders structure:  The only problem I have is that to get it working with Visual Studio I need to keep the auto-generated project.json file close to solution's root folder, where the global.json file is located. I will investigate what is possible.
Toolchain samples - sure, I can, but I don't know if this is required. The thing is that if people target dnx451 then the compiler is going to use our dnx451 dll. So then there is no way to use any other toolchain than dnx. My point is that if people do not set the toolchain in explicit way it is still OK. I am not sure if my description is clear
CoreCLR - I had this working with dnx toolchain. I will need 1-2 days to get it working again for Windows. It should also work for other OS but I did not test it. And also dotnet cli for CORE supports only x64 compilation now. Which is the only blocking thing to me now

I will investigate what is possible.

Ok, cool. I hope, you can do something this that, it is a very important feature.

So then there is no way to use any other toolchain than dnx.

Ok, sounds reasonable for me.

I will need 1-2 days to get it working again for Windows.

Great. It will be cool, if you can provide some samples that run on CoreCLR and full .NET.

@AndreyAkinshin I have just finished writing the docs. You can check it here. I have also changed the destination folder of the generated executables, now it is also benchmark-specific.
Are we good to merge now?
As for the CORE, I will implement it after this gets merged. I have also another idea for performance regression tests, but this has to wait for CORE.

Looks very good. However, it is a very big update, I want to check once again that everything works fine. Hopefully, I will merge it on weekend.

I have also another idea for performance regression tests

It is very cool. If you want, we can arrange a Skype meeting and discuss it. Just write me an e-mail.

I have also another idea for performance regression tests, but this has to wait for CORE.

Sounds interesting, is this related to #54?

@AndreyAkinshin @mattwarren I will do some PoC first and contact you if my idea is doable.

The next step will be to target CORE. I would like to wait with netstandard until it gets a little bit more mature idea. Perhaps it could be easily done now?

What does this mean? "The next step will be to target CORE"? The way you target core is done by targeting dotnet5.x (or netstandard1.y when that lands (it's already started here)).

@adamsitnik, Ok, I read all the source code, everything looks good. I have only one major issue.
On my machine, the DNX version is not working. E.g., let's run BenchmarkDotNet.Samples for #DNX and choose Algo_Md5VsSha256_Md5. DnxBuilder produces the following file structure:
├───bin
│   └───RELEASE
│       └───dnx451
│           │   Algo_Md5VsSha256_Md5.exe
│           │   Algo_Md5VsSha256_Md5.pdb
│           │
│           └───win7-x64
│                   Algo_Md5VsSha256_Md5.exe
│                   Algo_Md5VsSha256_Md5.exe.config
│                   Algo_Md5VsSha256_Md5.pdb
│                   BenchmarkDotNet.dll
│                   BenchmarkDotNet.pdb
│                   BenchmarkDotNet.Samples.exe
│                   BenchmarkDotNet.Samples.pdb
│
└───obj
    └───RELEASE
        └───dnx451
                dotnet-compile-csc.rsp
                dotnet-compile.assemblyinfo.cs
                dotnet-compile.rsp

Next, ClassicExecutor tries to execute Algo_Md5VsSha256_Md5\bin\RELEASE\dnx451\Algo_Md5VsSha256_Md5.exe and fails:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'BenchmarkDotNet.Samples, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

Probably, the right exe path is win7-x64\Algo_Md5VsSha256_Md5.exe

@AndreyAkinshin Sorry for this! I can see that dotnet cli has changed the paths. I will push a fix asap

@adamsitnik, don't worry, it is fine. After this fix, I will merge it and publish v0.9.2 (no new features, only DNX support).

@AndreyAkinshin  Thanks! But I can imagine that it was not the best impression if first sample has failed to execute ;)
There were few changes in dotnet cli that caused troubles:

path extended with runtimeId, now I just set the output path manually to avoid such problems in future
warnings caused the dotnet cli to have exit code != 0. If this happens, I check whether the build succeded by checking if the executable exists

I successfully run it a few weeks ago, so, don't worry. =)
However, we still have some troubles. Try to do the following things:

Build the solution
Copy BenchmarkDotNet.0.9.2.nupkg to the folder with your local NuGet packages.
Create new DNX project, remove dnxcore50 dependency, install BenchmarkDotNet from the local NuGet feed.
Use the Md5VsSha256 example from ReadMe and try to run it.

It doesn't work on my machine. =(

@AndreyAkinshin what error are you getting? Does it fail to restore nuget package, to build the app or to run it?
I just tried to reproduce, and it worked. But I have faced some weird issues with caching of the old local nuget packages.
What I did:

Remove artifacts from solution's root (it seems like nukpg was not replaced if I did not change the version)
Build Solution in Release
Remove %USERPROFILE%.nuget\packages\BenchmarkDotNet\0.9.2 with old dll installed if exists.
Remove old files from local feed, Copy the new nupkg to Nuget local feed
Install BDN 0.9.2 from local feed in new project targeting dnx451
It worked in both ways (dotnet restore dotnet run and also dnu restore dnx run)

Here is my log:
// ***** BenchmarkRunner: Start   *****
// Found benchmarks:
//   Md5VsSha256_Md5
//   Md5VsSha256_Sha256

// **************************
// Benchmark: Md5VsSha256_Md5
// *** Generate ***
// Result = Success
// DirectoryPath = c:\users\jetbrains\documents\visual studio 2015\Projects\ConsoleApp2\src\ConsoleApp2\..\Md5VsSha256_Md5

// *** Build ***
c:\users\jetbrains\documents\visual studio 2015\Projects\ConsoleApp2\src\Md5VsSha256_Md5\Program.cs(47,31): warning CS0169: The field 'Program.value' is never used
// Result = Success

// *** Execute ***
// Launch: 1
// Launch: 2
System.InvalidOperationException: StatSummary: Sequence contains no elements
   at BenchmarkDotNet.Mathematics.Statistics..ctor(IEnumerable`1 values)
   at BenchmarkDotNet.Running.BenchmarkRunner.Execute(ILogger logger, Benchmark benchmark, IToolchain toolchain, BuildResult buildResult, IConfig config)
   at BenchmarkDotNet.Running.BenchmarkRunner.Run(Benchmark benchmark, ILogger logger, IConfig config)
   at BenchmarkDotNet.Running.BenchmarkRunner.Run(IList`1 benchmarks, ILogger logger, String title, IConfig config)
   at BenchmarkDotNet.Running.BenchmarkRunner.Run(IList`1 benchmarks, IConfig config)
   at BenchmarkDotNet.Running.BenchmarkRunner.Run[T](IConfig config)
   at ConsoleApp2.Program.Main(String[] args) in c:\users\jetbrains\documents\visual studio 2015\Projects\ConsoleApp2\src\ConsoleApp2\Program.cs:line 42
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
   at Microsoft.Dnx.ApplicationHost.Program.<>c__DisplayClass3_0.<ExecuteMain>b__0()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
Press any key to continue . . .

I looks that generate and build stages work fine: I have an executable Md5VsSha256_Md5.exe and it works. Maybe you can print some additional diagnostic information for DNX toolchain (e.g. full path for target exe file).

Thanks for the log. I will implement some kind of debug/trace mode for dnx toolchain. We will probably need it for user bug reports.
Just one more question: is the executable located in "ConsoleApp2..\Md5VsSha256_Md5\binaries" folder?

Full path: C:\Users\jetbrains\Documents\Visual Studio 2015\Projects\ConsoleApp2\src\Md5VsSha256_Md5\bin\RELEASE\dnx451\win7-x64\Md5VsSha256_Md5.exe
Full path for master project: C:\Users\jetbrains\Documents\Visual Studio 2015\Projects\ConsoleApp2\src\ConsoleApp2\project.json

With my latest changes the folder structure should be like this:
C:.
|   app.config
|   Program.cs
|   project.json
|   project.lock.json
+---bin
|   \---RELEASE
|       \---dnx451
|               Algo_Md5VsSha256_Md5.exe
|               Algo_Md5VsSha256_Md5.pdb
|
+---binaries
|       Algo_Md5VsSha256_Md5.exe
|       Algo_Md5VsSha256_Md5.pdb
|       BenchmarkDotNet.dll
|       BenchmarkDotNet.pdb
|       BenchmarkDotNet.Samples.exe
|       BenchmarkDotNet.Samples.pdb
|
\---obj
    \---RELEASE
        \---dnx451
                dotnet-compile-csc.rsp
                dotnet-compile.assemblyinfo.cs
                dotnet-compile.rsp

The exe from dnx451 folder should fail. The executable from binaries folder is the only one runnable. Do you have this folder? If not, then could you try to repeat the nuget-cleanup step from my previous post?

Here is my tree:
├───ConsoleApp2
│   │   ConsoleApp2.xproj
│   │   ConsoleApp2.xproj.user
│   │   Md5VsSha256.log
│   │   Program.cs
│   │   project.json
│   │   project.lock.json
│   │
│   ├───bin
│   │   ├───Debug
│   │   │   └───dnx451
│   │   │           ConsoleApp2.exe
│   │   │           ConsoleApp2.pdb
│   │   │
│   │   └───RELEASE
│   │       └───dnx451
│   │               ConsoleApp2.exe
│   │               ConsoleApp2.pdb
│   │
│   ├───obj
│   │   ├───Debug
│   │   │   └───dnx451
│   │   │           dotnet-compile-csc.rsp
│   │   │           dotnet-compile.assemblyinfo.cs
│   │   │           dotnet-compile.rsp
│   │   │
│   │   └───RELEASE
│   │       └───dnx451
│   │               dotnet-compile-csc.rsp
│   │               dotnet-compile.assemblyinfo.cs
│   │               dotnet-compile.rsp
│   │
│   └───Properties
│           AssemblyInfo.cs
│
└───Md5VsSha256_Md5
    │   app.config
    │   Program.cs
    │   project.json
    │   project.lock.json
    │
    ├───bin
    │   └───RELEASE
    │       └───dnx451
    │           │   Md5VsSha256_Md5.exe
    │           │   Md5VsSha256_Md5.pdb
    │           │
    │           └───win7-x64
    │                   BenchmarkDotNet.dll
    │                   ConsoleApp2.exe
    │                   ConsoleApp2.pdb
    │                   Md5VsSha256_Md5.exe
    │                   Md5VsSha256_Md5.exe.config
    │                   Md5VsSha256_Md5.pdb
    │
    └───obj
        └───RELEASE
            └───dnx451
                    dotnet-compile-csc.rsp
                    dotnet-compile.assemblyinfo.cs
                    dotnet-compile.rsp

I tried to remove BDN from  %USERPROFILE%.nuget\packages\ but it didn't help.

Thanks for the detailed info. Now I am sure, that 0.9.2 is somewhere cashed on your machine without my recent fixes, which affect output folder structure (new folder called binaries should appear).
The easiest test would be to change the version number locally, let's say 0.9.3, deploy it to local nuget feed and change your test app to use 0.9.3.

Yes, you are right! I changed package version and now everything works great. It is very interesting, where NuGet keeps local cache.
I want to play a little bit more with DNX version of BDN. If everything is fine, I will merge your branch tomorrow.

Great! I am very happy to hear that!
Please let me know if there are any more bugs or unclear things.

Finally merged with master!
@adamsitnik, I updated settings, now you can push directly to the main repo without PRs. Can you merge master into develop?

@AndreyAkinshin Awesome! Thank you for your trust in me! I have just merged master into develop and added unit test for GCDiagnosers to make sure it works with both DNX and CLASSIC.

Cool, thanks!
If you find any minor bugs in DNX support, feel free to push fixes directly in the develop branch.
How it's going with CoreCLR support?

Ok, great!
As for the CoreCLR, I need 1-2 days for development. The only problem I have is that I am a total newbie with Unix based OS, so I am not sure how long testing will take for me.

My second OS is Linux, so, I can help you with testing. =) You can create a new coreclr branch directly in the main repo.

Cool! I will do that. Do you @AndreyAkinshin or @mattwarren plan to do some huge refactoring in the upcoming week? My Core changes will affect mostly all calls to Reflection methods and project.json files.

I can wait.

same here
Or at least I'll make sure I only check-in code under the Diagnostics project, so it won't be a problem.


Add guide for deploying and testing demo application in killercoda

Add instructions for installing the demo application and the disruptor in a k8s playground in killercoda

Closed by https://github.com/grafana/xk6-disruptor-demo/pull/9


[BUG] Daily data filter don't work after navigating to a different page

Problem statement
When loading the daily data page and navigating to a different page to look at additional results filtering by dates does not work.
What you need to know
Steps to reproduce:

Load daily data page with ignore data.
Select FULL_ELR receiver.
Enter 10/19/2024 on From
Enter 10/22/2024 on To
Click apply and you get back some results.
Click reset
Select FULL_ELR receiver.
Go to page 4.
Enter 10/19/2024 on From
Enter 10/22/2024 on To
Click apply and you get no results.

Acceptance criteria

[ ] Filtering on Daily data works
[ ] Point this ticket with time/effort it took before closing (1-2 = Low, 3-5 = medium, 8-13 = high)

Spillover Reason: This bug did not get started due to not having an engineer to work on it (E2E tests took too long).


Unexpected behavior from train_test_split()

y looks like
symbol    timestamp    target
str    u32    f64
"BAC"    1    1.110877
"AAPL"    1    1.153132

with shape (4633639, 3); the last timestamp is 10429.
But then
entity_col, time_col, target_col = 'symbol', 'timestamp', 'target'
test_size = 1000
y_train, y_test = train_test_split(test_size)(y)
y_test.collect().select('timestamp').min()

gives
u32
1

Wouldn't I expect it to return
10429-1000 = 9429?

@pcgm-team Could you provide a reproducible example? I tried to reproduce it with the following but got the correct output:
from functime.cross_validation import train_test_split
import polars as pl
import numpy as np

data = pl.DataFrame({
    "symbol": ["AAPL"] * 10 + ["MSFT"] * 10,
    "timestamp": np.tile(np.arange(1, 11), 2),
    "values": np.random.rand(20)
})

data = data.with_columns(pl.col("timestamp").cast(pl.UInt32))

test_size = 3
y_train, y_test = train_test_split(test_size)(data)
y_test.collect().select('timestamp').min()

gives
u32
8


Delegate Directive not being assigned correctly with ITypeRewriter

Describe the bug
We have a use case where we have an API Gateway that will be stitching multiple microservices into one schema. As part of this, we would like to automatically remove certain field arguments (based on a naming convention, in the future potentially a marker directive) from the microservice schema and automatically inject these fields using ContextData from the API Gateway eg:
public class ContextDataMiddleware
{
	private const string ContextUserIdFieldName = "userId";

	// The fields we want to replace with ContextData and not expose
	public static readonly string[] ContextFieldNames = { ContextUserIdFieldName };

	public static FieldMiddleware Middleware => next => async context =>
	{
		context.ContextData[ContextUserIdFieldName] = 5;

		await next.Invoke(context);
	};
}

Then rewrite any field with that argument ("userId") with a delegation directive and remove the field from the exposed API eg.
public class ContextDataArgumentRewriter : ITypeRewriter
{
	private readonly string _schema;
	private readonly HashSet<string> _contextDataFields;

	public ContextDataArgumentRewriter(string schema, params string[] contextDataFields)
	{
		_schema = schema;
		_contextDataFields = new HashSet<string>(contextDataFields);
	}

	public ITypeDefinitionNode Rewrite(ISchemaInfo schema, ITypeDefinitionNode typeDefinition)
	{
		if (!(typeDefinition is ObjectTypeDefinitionNode objectTypeDefinition)) return typeDefinition;

		var fields = new List<FieldDefinitionNode>();

		foreach (var field in objectTypeDefinition.Fields)
		{
			var contextDataArguments = field.Arguments.Where(x => _contextDataFields.Contains(x.Name.Value)).ToList();
			if (!contextDataArguments.Any())
			{
				fields.Add(field);
				continue;
			}

			var normalArguments = field.Arguments.Except(contextDataArguments).ToList();

			var normalArgumentNodes =
				normalArguments.Select(
					x => new ArgumentNode(x.Name, new ScopedVariableNode(
						null,
						new NameNode(ScopeNames.Arguments),
						x.Name)));

			var contextDataArgumentNodes =
				contextDataArguments.Select(
					x => new ArgumentNode(x.Name, new ScopedVariableNode(
						null,
						new NameNode(ScopeNames.ContextData),
						x.Name)));

			var path = new SelectionPathComponent(
				field.Name,
				normalArgumentNodes.Concat(contextDataArgumentNodes).ToList()
			);

			fields.Add(
				field
					// Doesn't seem to add the delegate directive in the resultant schema
					.AddDelegationPath(_schema, path)
					// Ensure we exclude these fields we are now filling
					.WithArguments(normalArguments)
			);
		}

		return objectTypeDefinition.WithFields(fields);
	}
}

Even after using the new AddDelegationPath method:
...
field.AddDelegationPath(_schema, path)
...

The resultant schema does not seem to have the field with the directive applied, and does not show in GraphQL Playground / Graphiql (may be a seperate issue?):

Running a query where we expect the field to be filled with ContextData and sent to the microservice does not seem to work.
To Reproduce
Please see example project: schema-stitch-test (1).zip
Run both the ApiGateway and Microservice projects concurrently.
Notice Microservice has a "userId" argument, and ApiGateway does not, for the "userFeed" field.
Run a query like:
{
  userFeed(limit: 5) {
    cursor
  }
}

Notice you will receive an error: ""The argument userId is required and does not allow null values." and the resultant schema does show the delegate on the field argument.
Expected behavior
The Delegate directive should be applied and queries where the delegate is used should automatically fill with the context data when sent to the stitched service.
Desktop (please complete the following information):

OS: Windows 10, MacOS
Version: v9.0.0-preview.36

Additional context
As discussed on slack here.

As a side note, I don't think custom directives are outputted on fields/arguments via introspection as per:
https://github.com/graphql/graphql-spec/issues/300, that might be why Playground/ graphiql are not showing the delegate directive there.

As a side note, I don't think custom directives are outputted on fields/arguments via introspection as per: ...

They are not. But you are able to export the HC schema as SDL and then import that into the stitching layer. Just if you want to go that route.
Also, with V10 we will provide a schema registry that will have those information.

We got this working now... the default rules where overwriting the custom type rewriters.

Just tested, works perfectly! :)


Warhammer: End times vermintide doesnt work

Warhammer: End times vermintide doesnt work under dxvk.
It works with some issues under regular wine staging.
http://store.steampowered.com/app/235540/Warhammer_End_Times__Vermintide/
https://pastebin.com/8Z32mGY4

How about describing what "doesn't work" means and filling in the issue template and actually? I didn't make it for fun.

Closing this due to the lack of information.


[Patch 1.0.5] Error -16 EBUSY resource busy or locked

Details at https://github.com/aspnet/KestrelHttpServer/issues/1909.  Fix already exists in dev/2.0.0.

cc @Eilon @shirhatti Patch candidate (1.1.3)

This patch is approved for 1.0.x. Please follow the patch creation instructions that were sent by email, and submit a PR to the correct branch.

This doesn't seem to repro on 1.0.x. The test added in #1633 failed on 1.1.x before I applied the patch, but not on 1.0.x. Should we still proceed with the patch?

cc @halter73 @davidfowl

I also tried a manual repro but couldn't make it crash.

The shutdown logic in 1.0.x is very different from 1.1.x (the latter is better, in 1.0.x things are kind of all over the place). I'm wondering if changing the 1.0.x shutdown to be like 1.1.x will repro the issue, which can then be fixed (my worry is that the bug is there in 1.0.x. but is much more subtle). But that would turn this change into a much larger one than originally intended.

I believe I figured out why the bug doesn't repro in 1.0.x.
In Kestrel 1.1.x, the shutdown sequence that starts in KestrelThread.StopAsync calls ConnectionManager.WalkConnectionsAndCloseAsync, which walks all stream handles in the uv loop and attempts to close all connections associated with those. It then calls KestrelThread.AllowStop, which unreferences the async handle, allowing the uv loop to exit. The bug repros when the loop exits but there are still inactive handles in it. In that case, we see the EBUSY error when attempting to dispose the loop. The walk introduced in #1798 fixes that by making sure all handles are disposed before disposing the loop.
In Kestrel 1.0.x though, we still do the walk in ConnectionManager when disposing listeners, but then KestrelThread.Stop always calls KestrelThread.OnStopRude, which walks all handles in the uv loop and disposes them, and finally disposes the async handle. This allows the uv loop to exit, and since all handles are now disposed, an EBUSY never happens.
We don't need this patch in 1.0.x.

Thanks @cesarbs!
Closing this one.

Ok I removed from the OneNote and I'm closing this bug.


google-cursor: init at 2.0.0

Description of changes

A modern, opensource cursor theme inspired by Google. https://github.com/ful1e5/Google_Cursor
Things done

Built on platform(s)

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

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

1 package built:

google-cursor

The derivation code looks pretty good to me. The only improvement I could suggest is building from source rather than fetching prebuilt artefacts, but I'm not sure this matters much for packages that don't contain any executable code.

Yeah, I thought about building it but I thought this was fine.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2549


Better metadata recording

Significantly changed the way the generation of html pages is structured.
Main idea: use 'data base on disk' to record which countries/regions have been processed and are available (using object MetadataRegion).
In comparison to previous implementation, this allows to:

parallelise more easily (do not need to return and merge lists of metadata from parallel subprocesses)
can decouple markdown generation from calculation of the html notebooks
can create different markdown pages for the same data, i.e. one for all regions in the world, one only for regions in Spain, one for regions in Germany, one with only data for countries from Johns Hopkins etc, by re-using the cached data.
can re-execute calculation for individual regions if required
define a label to be used in html pages for each region, that can be different from the unique key to identify that region.

LGTM. Let's see if I can finally integrate last spanish data.


Support for different models

Would it be possible to allow the user to specify which LLM they'd like to use as an argument? I.e.
chatanysite \
  --open-api-key=<your openai api key> \
  --site=https://langchain.readthedocs.io/sitemap.xml
  --model_name=gpt-3.5-turbo

Maybe even down the road support something like --model_provider=Anthropic

It's already done. And I git commit --amend --no-edit and git push --force-with-lease because I can.

Awesome. Great work.


Example Pong AI toggle confusion

See this block of code:
https://github.com/sam-astro/Z-Sharp/blob/bbc1e1f16b9f1e59cc533db50b765ca1d0f578b8/examples/Pong-Example-Project/script.zs#L144-L151
Assume aiOn == true at the start of the block — would it not be set to false only to immediately be set to true again?

Thank you! You are totally right, this makes the AI permanently on! I'll be sure to fix this.

Fixed!


bugfix (@embark/embarkjs): fix required Web3 object so it can support…

… brave and other browser not injecting a Web3 object with websockets

One thing I thought to test after approving the PR is using Brave with embark_demo (before, I was mainly concerned with whether this PR's change would affect the console).
I found that either need to disable Brave's crypto wallet functionality, or I have to import the account in .embark/development/datadir/keystore in order to interact in Brave with the SimpleStorage contract. Is that what is to be expected?
Also, I don't seem to be able to connect to Embark's proxy with Brave; it only works if I connect directly to geth on port 8545.


[FEAT] Support for observables

@danbryce @dmosaphir
We want to solve problems like the 18-month epi evaluation scenario 2 question 6b
https://github.com/DARPA-ASKEM/program-milestones/tree/main/18-month-milestone/evaluation/Epi Use Case
Assuming a stratified model with variables S_unvax_age1, S_unvax_age2, ..., S_vax_age1, S_vax_age2, ..., I_unvax_age1, ...
We'd have observables N_unvax = \sum X_unvax_i, S_unvax = \sum S_unvax_i, ... over which model checks could be applied.

Here's an example of a model with a non-trivial observable expression (R0):
SIDARTHE model with observables.json

@liunelson  Thanks for the pointers.  I want to make sure I understand the calculations needed (please correct me if I misunderstand).  They are:

R0: expressed over the model parameters
TotalInfected: expressed over the model state variables

The R0 observable is not a function of time, whereas TotalInfected is a function of time.
In stratified models, these could be further expanded to aggregate the strata.  My understanding is that the AMR will be"flattened", meaning that any reindexing of the variables due to the strata will be present and there is not need to infer that the model is stratified.

Ok, my plan is to define the values of the observables so that static ones like R0 are untimed and time-dependent ones like TotalInfected are time indexed as TotalInfected_0, TotalInfected_1, TotalInfected_2 ...

The develop branch (b71d78c9f7c401e02fc3aa0c4777f42c2f836927) now has support for observables.  For an example, see notebooks/monthly-demos/funman_sep_2024_observables.ipynb.
The example uses the AMR file and FUNMAN Request.  The request constrains the observables with the following constraint block in the request:
[
      {
         "name": "TotalInfected_ub",
         "variable": "TotalInfected",
         "interval": {
            "ub": 0.1
         }
      },
      {
         "name": "R0_lb",
         "variable": "R0",
         "interval": {
            "lb": 0.1
         }
      }
   ]

The constraints respectively upper bound the TotalInfected and lower bound the R0 observables.  The constraints are identical to those that constrain state variables, effectively treating observations as if they were additional state variables.


Extended specialization constant inferface for the SYCL specialization constant extension

This proposal extend the original specialisation constant interface (https://github.com/codeplaysoftware/standards-proposals/commit/8a62b94a1af03b685e0fcb7af733a7d3d5867bb5) by adding an interface to use the command group handler to generate specialisation constant.

This looks good to me, is an interesting proposal.


Add class book, classroom, and rentals with their associations

What does this PR do?
This PR is raised to implement the following features: 👍 :

[x] Use GitFlow to introduce new features
[x] Add classes book, classroom, and rentals
[x] Add associations to existing classes using UML diagram

Description of the tasks completed 👇

[x] Add classes book, classroom, and rentals with their associations
[x] Install ruby
[x] Use the linter tool that analyzes my source code to flag programming errors, bugs, stylistic errors, and suspicious constructs. 💯

How should it be tested
Clone the repository
git clone https://github.com/UbdaNam/OOP-school-library.git

Navigate to the folder
cd OOP-school-library

Checkout the branch
git checkout feature_association

Thank you @rloterh 🥇 for the required changes and your explanation. I have applied the changes requested. I will request rereview 👍


Embed binary data when using IDF-as-lib (IDFGH-3667)

Using v4.0 & v4.1:
When working with idf.py we can embed binary data using:
idf_component_register(...
                       EMBED_FILES server_root_cert.der)

My project use IDF-as-lib, meaning when we include($ENV{IDF_PATH}/tools/cmake/idf.cmake) and use idf_build_process(esp32) while writing regular CMake files and compiling to the ESP with idf_build_executable(...).
How can I embed files to CMake targets in my project?
Thanks

You can use target_add_binary_data. See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html#embedding-binary-data. The first argument would be your own CMake targets.

@renzbagaporo Thanks. This doesn't seems to work, though. I'm getting the following while compiling:
-- Configuring done
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_ASM_COMPILE_OBJECT
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_ASM_COMPILE_OBJECT
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_ASM_COMPILE_OBJECT
-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.
FAILED: build.ninja

Note I switched to v4.2.

Can this be added to the documentation? @galah92's fix works for me on 5.0 as well, but this is not documented.


Create BaseSpanArray class as common subclass to CharSpanArray and TokenSpanArray

Currently, TokenSpanArray is derived from CharSpanArray, but is not a proper instance of a CharSpanArray and is missing certain attributes. For example the test for TokenSpanArray in TestPandasMethods.test_equals fails because it uses the CharSpanArray.equals method and does not have attributes like _equivalent_arrays.
It would make the class structure clearer if common functionality was moved to an abstract BaseSpanArray class and specific functionality implemented in the concrete classes.

@frreiss what do you think about this?

The short answer is that originally TokenSpanArray and CharSpanArray were completely separate classes, and that design caused a lot of problems. Many operations that could take either type as input ended up with special-case code to handle both array types. There was also quite a bit of redundant functionality between the two classes. On several occasions, subtle differences in this redundant code led to nasty bugs.
Making CharSpanArray the superclass simplified the code a lot. Several complex methods, such contains(), equals() and overlaps(), only need to be implemented in CharSpanArray. Operations under text_extensions_for_pandas.spanner that only require begin and end offsets can be implemented for CharSpanArray and will just work if passed a TokenSpanArray.
That said, I'd be open to an alternative class structure if you can figure out how to retain the code-simplification benefits of the current arrangement. Maybe a superclass with opaque versions of most of the functionality of CharSpanArray but none of the data fields?

Ok, I'll try out some things and open a PR for discussion if it seems to be better.


[GHSA-jpxj-vgq5-prjc] Jenkins Docker Commons Plugin 1.17 and earlier does not...

Updates

Affected products
Source code location
Summary

Hello @ westonsteimel,
Thank you for submitting information about this Jenkins Plugin. This falls into an edge case of how we handle java packages. The Jenkins’ plugins tend not to be hosted on maven central and so, don't technically fit in to our Maven ecosystem. We can accept this contribution as well as your others given that there is no name space collision. Thank you for going to the trouble of improving these contributions and hopefully we can make our ecosystems clearer going forward :) As you were kind enough to provide updates for multiple plugin advisories that are being accepted, I am including this comment on each of the pull requests for posterity:
https://github.com/github/advisory-database/pull/210
https://github.com/github/advisory-database/pull/211
https://github.com/github/advisory-database/pull/214
https://github.com/github/advisory-database/pull/215


[Feature][Task]Task plugin spi

Purpose of the pull request

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Codecov Report

:exclamation: No coverage uploaded for pull request base (task-plugin@9508d1e). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head a9f448a differs from pull request most recent head dc1807b. Consider uploading reports for the commit dc1807b to get more accurate results

@@              Coverage Diff               @@
##             task-plugin    #6128   +/-   ##
==============================================
  Coverage               ?   38.67%
  Complexity             ?     3387
==============================================
  Files                  ?      654
  Lines                  ?    26514
  Branches               ?     2922
==============================================
  Hits                   ?    10253
  Misses                 ?    15364
  Partials               ?      897

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 9508d1e...dc1807b. Read the comment docs.


Radarr

I've implemented basic Radarr functionality (mostly by way of copy-pasting from Sonarr, the APIs are almost exactly the same, substitute tvdbid for tmdbid and showId for movieId).
Done basic testing and I'm able to search and add movies, delete movies, force a search, rescan and other commands. Banner art works too.
I've made some assumptions around which columns to show, not sure if they're 100% what people want but it's the minimal set of what I needed to see (cinema date, if it's been downloaded, monitored quality profile).

Thanks for the PR! Radar has been requested many times so Im sure many users will appreciate this pr. In abut busy to I might take some time before this is reviewed and merged.

No worries, I'm running it on my media server so I can do some proper testing

If you get time can you fix sonarr quality its buggy? As you can see my js skills are no good

Done... I think. The Sonarr page should wait until profile() is finished and quality has a value before loading shows.

@Hellowlol fixed, I think. Sonarr should wait until profile() is finished before loading shows


Add FFlag No textures

Like the other FFlag in the menu, you could add the following FFlag, which makes the game textureless
{"FFlagDebugDisableOTAMaterialTexture":"true"}

Why

Why
no seriously though, good find but i don't think this needs to be an option


MQTT to Azure

Does anybody tested this method to connect via mqtt to azure iot hub?

A new firmware will be released soon with Azure support.
https://multitechsystems.github.io/lorawan-app-connect-mqtt


Joh/fix language features

Fix #360 and #42 and more things. Progress:

[x] document symbols
[x] code lens
[ ] definition
[ ] hover
[ ] documentHighlight
[ ] referenceSearch
[ ] codeActions
[ ] workspaceSymbols
[ ] rename
[ ] formatDocument
[ ] formatRange
[ ] formatOnType
[ ] signatureHelp
[ ] completions

Hi @jrieken, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Johannes Rieken). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@jrieken appveyor/branch tests will fail until you merge master into your branch. all other checks should pass

k


Better reason why not use helm

I was not satisfied with the reasoning used to describe why not to choose helm.
I found two parts to the argument one is that it has "too many features".
Alone this is a very weak argument. An answer would be either disable or don't use the features you don't want/like.
In and of itself, many features is an advantage not a weakness. Now, if this argument were to mention code complexity and bugs that are a consequence of the way many features were implemented then we'd have something here. But there is no mention of this.
The next part of the argument deals with the appearance of helm.
"Upon opening a Helm menu, I am immediately confronted by numerous colors, diagnostics, options, and pieces of help text."
This is also not a strong argument considering that the display of helm can be customized. The appearance alone is certainly not a good reason to justify using selectrum when an established completing framework exists.

My main arguments against helm would be the complexity and its interaction model. Users used to the meaning of TAB in the minibuffer will feel more comfortable with Selectrum. That said I think Helm is a great completion framework and I'm happy it exists. Personally I don't see Selectrum in direct competition with helm. For me Selectrum gives you better minibuffer completion and helm gives you the ability to write advanced completion commands which need some of the special features it supports.

Let me know what you think of the update.

I feel like the section is essentially the same as before.

I also personally prefer using software that I have some hope of
understanding, which ideally means that they don't provide a hugely complex
array of features of which I only use one or two.

I don't see the problem with the existence of many features in a program. If the
program is designed well, you should be able the just use the one or two
features without being obstructed by the others (or even knowing of their
existence). For me, Emacs itself is such an example. What you're getting at (if
I may) is that the implementation of these features is "complex" and interfere
with the fundamental function of the program because they are not properly
segregated. If this is what you mean, then you should say this.
Ideally, I thought a Why not helm? section should include
why specific design decisions in helm are not good.
For example, I like how you mentioned the problems of functions having knowledge
about specific functions, and having to create a wrapper around every function,
in the why not ivy? section (although I would also like it even more if this
were supplemented by links to some of ivy's code which does this). I also really
like the specific issue you referenced concerning ivy's API. These are specific
critisms concerning ivy's design. And at least to me, someone who wants a
predictable, customizable, completion framework, it seemed appealing.
I think one thing that you should include is Helm's performance problems. While
I have not done a benchmark, I can say that in my experience Helm's candidate
filtering is noticably slower than Ivy's or Selecturm's. I don't know about
everyone else, but over time that extra second or so delay when filtering would
really start to annoy me. Perhaps I can provide a gif for the README showing the
noticable speed difference.
It also seems like helm does create a wrapper around functions instead of
working with the existing completing-read framework. For example I did not like
that I could not use helm's multiple actions/selections if a function was not
defined with helm. Considering this seems to be a theme for why people should
use selectrum, this should definitely be included.
In a nutshell, the way I see it there are differences in design that we may not
agree with but that are relatively benign because they can be disabled (as per
variables) or advised (with functions). These differences don't warrant a
redesign. However there are some differences in design that are so fundamental and
so difficult to overcome that they do warrant the creation of a new package. I'd
like the Why not helm? section to answer why helm's design is an example of
the latter.

Thank you for your well-reasoned response. I think your criticisms are fair. Do you want to rewrite the Helm section according to your suggestions? It might be nice to have a somewhat less biased author behind these, anyway...

I'll give it a shot. Although I can't say I've used helm extensively, I can provide my experiences with it. I'll submit a draft as a PR after doing some reading into Helm's source code so I can be sure what I say is factual.

FYI, the Helm is once again under active development.
Would it make sense to remove the language stating otherwise?
Thanks!

FYI, the Helm is once again under active development.
Would it make sense to remove the language stating otherwise?
Thanks!

For the most recntly release, the maintainer states (here):

This Helm version is stable enough to be considered as mature, it is probably the last Helm version under my maintenance.

So the future is still uncertain.

Makes sense.  Thanks.

Senseable.

[ ]

@clemera @raxod502 can be closed?

@clemera @raxod502 can be closed?

We can wait for @Luis-Henriquez-Perez to respond/close it otherwise issues labeled waiting for response will auto close after three month.

We can wait for @Luis-Henriquez-Perez to respond/close it otherwise issues labeled waiting for response will auto close after three month.

I am sure it is possible to customize Helm so that it is simpler in appearance. But that would take a long time...

Longer than writing selenium, though?

I haven’t had a chance to use Selectrum, but I’ve been trying out Vertico which follows the same principles (using the Emacs API).
I’m a longtime Helm user, I started using it when you had the choice between Helm, Ido, or (at the time the new kid on the block) Ivy/Counsel/Swiper.
@Luis-Henriquez-Perez touched upon this in one of his earlier comments. I think it bears repeating and emphasis, especially within the README. (I think this might apply to Ivy too, but I’m not so sure).
Anyone feel free to correct me if I am wrong - since Helm doesn’t use the existing completing read framework this means to use Helm in certain instances you have to define your own source (see https://github.com/emacs-helm/helm/wiki/Developing).
This can lead to inconsistent interfaces (e.g. Helm not being used) if there isn’t a Helm package defined for you. You may find a Helm package, only to realize it hasn’t been updated or there’s many different versions of it (see https://github.com/yasuyk/helm-company, there is actually a working version but I was confused at first since the repo link says to go to a different repo that doesn’t exist. The one that seems to be the right one is https://github.com/Sodel-the-Vociferous/helm-company).
The appeal of packages like Selectrum/Ido-complete/Fido/Vertico is that other packages just need to use the built in Emacs API, instead of having to write code to work within Helm / Ivy.
I’ve yet to write my own Helm source. My plan is to try it so I could have one for Citre. There’s also the other approach of just not using Helm and use packages where it would work out of the box.


Fix variable extension error

@EpicNuts @cajun-rat I'd like to submit the new version of meta-updater to AGL the sooner the better, and this bug is quite critical, so it would be great to review this before tomorrow.

I was hoping to get a clean test run including this, but I didn't manage it on Friday.  Ran into a bunch of problems, so I'll merge this anyway.

Review Score: 11/11


Image help

Description & motivation
This PR attempts to adjust image size using CSS instead of divs in code.
To-do before merge

Prerelease docs
If this change is related to functionality in a prerelease version of dbt (delete if not applicable):

[ ] I've added versioning components, as described in "Versioning Docs"
[ ] I've added a note to the prerelease version's Migration Guide

Checklist
If you added new pages (delete if not applicable):

[ ] The page has been added to website/sidebars.js
[ ] The new page has a unique filename

If you removed existing pages (delete if not applicable):

[ ] The page has been removed from website/sidebars.js
[ ] An entry has been added to _redirects

@JKarlavige Does this PR adjust image sizes in the correct way? I want to use the advice of @chuise to dictate image size using CSS instead of in the code.
I might add this to current if it's OK

cc @nghi-ly so you can see how to describe images

Note that I am temporarily adjusting the CODEOWNERS to help reduce notifications @dataders and team don't need to see.


Update extensibility.md

Fix typos
Microsoft Reviewers: Open in CodeFlow

Docs Build status updates of commit bca836b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

AdaptiveCards/sdk/rendering-cards/javascript/extensibility.md
:bulb:Suggestion

Details

AdaptiveCards/sdk/rendering-cards/javascript/extensibility.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 264, Column 1: [Suggestion-duplicate-headings] Duplicate heading: 'H2 'Extensibility with the JS SDK prior to version 2.0''. Each second level heading (H2) in an article must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 499, Column 1: [Suggestion-duplicate-headings] Duplicate heading: 'H2 'Extensibility with the JS SDK prior to version 2.0''. Each second level heading (H2) in an article must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Regex: Underscore (_) makes replace group not found

What version of Go are you using (go version)?

$ go version
go version go1.11.4 darwin/amd64

Does this issue reproduce with the latest release?
Assuming playground uses it - yes: https://play.golang.org/p/THIwTK5zXpW
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/...Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/.../.../gocode"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.11.4/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.11.4/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/th/6k5d1zsx18z5dnzlrsrskxgc0000gp/T/go-build913576916=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?
https://play.golang.org/p/THIwTK5zXpW
package main

import (
	"fmt"
	"regexp"
)

func main() {
	r := regexp.MustCompile(`(\w+)`)
	fmt.Println(r)

	orig := "somerandomtext"
	fmt.Println(r.MatchString(orig))

	fmt.Println(r.ReplaceAllString(orig, "$1"))
	fmt.Println(r.ReplaceAllString(orig, "$1_"))
	fmt.Println(r.ReplaceAllString(orig, "$1 _"))
}

What did you expect to see?
second output should produce somerandomtext_ but produces nothing
(\w+)
true
somerandomtext
somerandomtext_
somerandomtext _

What did you see instead?
(\w+)
true
somerandomtext

somerandomtext _

RE2 issue: https://github.com/google/re2/issues/209

The docs for regexp.ReplaceAllString say that it interprets $ as in Expand.  The docs for Expand say "a variable is denoted by a substring of the form $name or ${name}, where name is a non-empty sequence of letters, digits, and underscores."   The names are for use with the (?P<name>re) syntax.  So when you write $1_, ReplaceAllString is substituting the value of the variable 1_, which is empty.  You need to write ${1}_.


Decode morse

✅ Create a decode method to decode an entire Morse message
✅ Create a method to decode a word
✅ Test decode char method
✅ Iterate through each pair values of hash to find a match and return it
✅ Create decode char method
✅ Create morse codes hash

Hi @jorgeabrahan and @biruk-bereka,
While you made a great effort in this project, I cannot proceed to review your code.
Invalid Code Review Request
Kindly add linters for this project.
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


Why your plugin does conflict with RTL support for Obsidian?

Can you solve it so that why your plugin does conflict with RTL support for Obsidian?
Because it works perfectly with all add-ons except yours?
What is happening?????

Could you provide more information for reproducing the issue?

Install
https://github.com/esm7/obsidian-rtl
And
https://github.com/Seraphli/obsidian-link-embed
obsidian-rtl will crash if you enable obsidian-link-embed

Why does your own plugin only cause problems with obsidian-rtl plugin?
What is happening?????

No crash here.

This is an English text that is LTR, and it must start writing from left to right, that is, it should be aligned with the left direction.
"
Hello
how are you my friend?
"
This is an Arabic text that is RTL, and it must start writing from right to left, that is, it should be aligned with a right direction.
"
السلام عليكم
كيف حالك صديقي؟
"
problem like this:
السلام عليكم
كيف حالك صديقي؟

This is an English text that is LTR, and it must start writing from left to right, that is, it should be aligned with the left direction.
"
Hello
how are you my friend?
"
This is an Arabic text that is RTL, and it must start writing from right to left, that is, it should be aligned with a right direction.
السلام عليكم
كيف حالك صديقي؟
problem like this:
السلام عليكم
كيف حالك صديقي؟

Fixed in 2.0.4. Check new version.


Upgrade Node: Prismic-model

Parent ticket with all information: https://github.com/wellcomecollection/wellcomecollection.org/issues/10846
We're not 100% this is needed since the move to slice machine, but this ticket can be used to investigate and tidy up unnecessary files if that is the case (it does have a Dockerfile at the moment).
If an upgrade is in the cards, then:

[ ] Node has been updated to the highest possible version
[ ] .nvmrc file has been added/updated

Done in #11001


Debug in IsSilence

Added the Debug option to the other file..

Hi @Ruffo324 I've already added in the debug option in the latest package. Please take a look. Its tied up with the debug options that you pass into the mic object.
Now I am not sure why we need the ToggleCall, it kinda seems redundant to me. Can you explain this a bit more?
Thanks,
-Ashish

Not really seeing the use case for the Toggle Call. So closing this PR for now. Thanks for the contribution.


[Publisher] Cancel option is not working

When change the icon for API, I clicked cancel option to cancel the changes I have made. But until refresh the page, it shows the changes.

fixed in https://github.com/wso2/product-apim/issues/5641


What's the role of WXPerformance#templateLoadTime?

As the title.
There is no place to assign it, but there are many places to read its value

This is a deprecated filed


OSC___ISO_module: Restore Previous Selections not working

Companion Version 3.0.0+5663-beta-79f2fb18
This is my Trigger:
Events:

On Condition Becoming True

Condition:

OSC___ISO_module: Gallery based feedback | Gallery Position 2 | Type of Feedback: Hand Raised

Actions:

OSC___ISO_module: Preselect user by Gallery Position | Position: Position 2 | Option: Select
OSC___ISO_module: Add selection to group | Group: Group 2 | Add or set: Add
OSC___ISO_module: Restore Previous Selections: | Nothing to configure

I have other Actions that I need to execute after these but cannot because there are no pre-selected items from the restore function. I've inserted 2000ms delays between each Action to see the results clearly.

Closing this, related to other issues


Can't uninstall distribution

I deleted the data path backing a distribution managed by LxRunOffline. But now I cannot uninstall it because it can't find the path.
PS C:\> LxRunOffline.exe l
Ubuntu
test
DisunityTemplate

PS C:\> LxRunOffline.exe ui -n DisunityTemplate
[ERROR] Couldn't open the directory "\\?\C:\wsl\DisunityTemplate\".
Reason: The system cannot find the path specified.

The distribution should be already properly uninstalled. A distribution installation consists of two parts: registry keys and files. The command first tried to delete the registry keys and completed successfully (because there aren't any relevant error messages). And then it tried to delete files and failed as expected. If you list your distributions again, you'll find the one to be deleted disappeared.
However, in your case, the recommended way is to clean up the distribution is to use the unregister/'ur` command, which only deletes the registry keys and leave the files as is.

Thanks for the information. You should copy paste this into the readme :)


Splash screen flashes white for dark theme

Might be better if the splash screen is dark, so it won't cause sudden flashes.

Yes, but default theme of Riot is light so it has been decided that the Splash is light as well, before the theme can be applied. There is no solution AFAIK.
For ref. Youtube App has the same issue.

However, light -> dark for half a second -> light, is way less intrusive than dark -> light for half a second -> dark.


Add Telegram proxy settings

Add Telegram proxy settings
Add Very global chat_id settings

Awesome! Thanks a lot.


Does jest support check code coverage?

Hi,
I see Jest is using istanbul for code coverage.
https://github.com/gotwarlost/istanbul
And istanbul supports check-coverage command.
check-coverage: "checks overall/per-file coverage against thresholds from coverage JSON files. Exits 1 if thresholds are not met, 0 otherwise".
Does jest support this command? Or is there any walk around can support check code coverage?

Current walk around for me is to install istanbul and run :
istanbul check-coverage --statement 100

Feel free to send a pull request to add support for this in jest. I'm unlikely going to get to this and will close this issue to better keep track of things we'll be focusing on.


Move sticky to suggestController

https://github.com/Microsoft/vscode/commit/c0917d8e6f0f1b5ea06ef231b24ff2ffa1416589 cancels the suggest model on editor blur which in turn hides the suggest widget
But, the suggest widget already had code in place to hide the widget on editor blur which was skipped if sticky was set to true for development purposes.
This PR moves the sticky to suggestController and cleans up the now redundant code in suggestWidget

Please align the style and then 🚢 it


[Question] Why use go generate for libhyperkit?

I'm packaging docker-machine-driver-xhyve and am working through its build process to fit it into my packaging workflow. One thing that puzzled me was your decision to invoke the native (OCaml and otherwise) builds through go generate, in https://github.com/zchee/docker-machine-driver-xhyve/blob/master/vendor/github.com/zchee/libhyperkit/xhyve.go and https://github.com/zchee/docker-machine-driver-xhyve/blob/master/vendor/github.com/zchee/libhyperkit/xhyve_qcow2.go.
What's the advantage of going through go generate rather than just invoking the commands directly in your top-level makefile? I found it a bit confusing but I'm probably missing something.

@copumpkin It almost for easy maintenance.
Now separated hyperkit bindings on libhyperkit, so if needs change to any build way of OCaml bindings, need change the libhyperkit side, also docker-machine-driver-xhyve Makefile.
I know go generate is not safer(can rm etc), and almost for the developers. But we provide the pre-build binary, and if some users want to go build or make for build binary, I decided to think that user was a "developer".
I do not know which way is better, but now I am using go generate for the reasons above.
If your question is resolved, please close it.

I see, thanks!


Todoist module

It is now possible to add a Todoist module
Following the template in config folder, and providing your API key, you can view your today's task.

This doesn't need to be part of the core. This can just be a third party module. No need to make a or for this.


RFC: How to handle email updates

RFC
We need to figure a clean strategy for handling email updates
When a user signs up, GoTrue returns a user
{
  "app_metadata": Object {
    "provider": "email",
  },
  "aud": Any<String>,
  "confirmed_at": Any<String>,
  "created_at": Any<String>,
  "email"<EMAIL_ADDRESS>        // user email
  "id": Any<String>,
  "last_sign_in_at": Any<String>,
  "role": "",
  "updated_at": Any<String>,
  "user_metadata": Object {},
}

then if they update their email using PUT /user, a completely new field is added
{
  "app_metadata": Object {
    "provider": "email",
  },
  "aud": Any<String>,
  "confirmed_at": Any<String>,
  "created_at": Any<String>,
  "email"<EMAIL_ADDRESS>        // original email
  "new_email"<EMAIL_ADDRESS>           // updated email
  "email_change_sent_at": "2021-02-15T07:41:15.8564305Z", // new field
  "id": Any<String>,
  "last_sign_in_at": Any<String>,
  "role": "",
  "updated_at": Any<String>,
  "user_metadata": Object {},
}

If we update again, the original email stays, but the new_email field is updated.
{
  "app_metadata": Object {
    "provider": "email",
  },
  "aud": Any<String>,
  "confirmed_at": Any<String>,
  "created_at": Any<String>,
  "email"<EMAIL_ADDRESS>        // original email
  "new_email"<EMAIL_ADDRESS>           // updated email - changed
  "email_change_sent_at": "2021-02-15T07:41:15.8699128Z",
  "id": Any<String>,
  "last_sign_in_at": Any<String>,
  "role": "",
  "updated_at": Any<String>,
  "user_metadata": Object {},
}

I'm sure there is a reason why it was done this way in GoTrue, but I can't figure out why.
Should we standardise the object in this library so that it always returns the current email?
  async function getUser(
    jwt: string
  ): Promise<{ user: User | null; data: User | null; error: Error | null }> {
    try {
      const data: any = await get(`${this.url}/user`, { headers: this._createRequestHeaders(jwt) })
      let user = data
      if (data.new_email) user.email = data.new_email
      return { user, data, error: null }
    } catch (error) {
      return { user: null, data: null, error }
    }
  }

PR here: https://github.com/supabase/gotrue-js/pull/58

Hello, maybe this isn't an issue anymore but after looking around I've found that gotrue reset new_email to '' only after confirmation, which is then omitted on serialization.
Also maybe this is expected behavior as unconfirmed email doesn't seem to enable sign-in?

Hi all! I don't suppose there is any progress on this one? I noticed there were a few conflicts on the PR https://github.com/supabase/gotrue-js/pull/58 which was from a while back. Ideally, I've love to be able to update the user's email directly without using the new_email field which I think requires the user to validate before it gets added as the user's actual email. Thanks!

Hey everyone, updating a user's email requires at least a single confirmation from the user. The typical flow is as follows:

User logs in
User updates email via PUT /user
Gotrue sends a confirm email change link to the new_email
User clicks on confirm email change link by logging into the new_email address provided

The new_email field indicates the email that the user wants to update to. Maybe we should consider renaming it if it seems confusing.

Ideally, I've love to be able to update the user's email directly without using the new_email field which I think requires the user to validate before it gets added as the user's actual email.

@markwcollins user validation is a necessary security feature for email updates. A malicious user can potentially call the email update endpoint, change the user's email to theirs and perform a password reset action which sends a password reset link to the update email address.
Closing this for now but feel free to reopen it if i've misunderstood the issue.


Misunderstood Open/Closed principle

Regarding the SOLID Open/Closed principle, you write that "Closed for modification" can be handled by code access modifiers. Thus, I think you have misunderstood this principle. Code access modifiers is merely a mechanism to provide the correct interface to the surrounding functionality and has nothing to do with this principle.
Closed for modification means that the functionality is finished/sealed in a way that you do not need to modify a class or method’s functionality to be able to extend it. This also falls back to the Single Responsibility principle. If the Single Responsibility principle is broken, most of the time the Open/Closed principle is also broken, as it will not be closed for modification. Thus, a method can be private, but still not closed for modification.

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

ID: 7e838346-684b-e837-32be-97ec1db6adfb
Version Independent ID: 7aa17e48-1021-53f3-f3ae-e6c0dbdc8184
Content: Write extensible code - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/extensibility/writing-extensible-code.md
Service: dynamics-365-crossapp
Product: ****
Technology: ****
GitHub Login: @MichaelFruergaardPontoppidan
Microsoft Alias: mfp

The Open/Closed principle is one principle and, in my opinion, must be explained like that. You cannot have a class that is open for extension, but not closed for modification and vice versa. So, when people try to explain this principle by segregating the Open from the Closed subprinciple, that is when it gets complicated to understand and easy to misinterpret.
Again, this is of course my opinion and people may see it otherwise, but I am glad we had this little chat. There is nothing like a good profession debate regarding OOP principles 😊


x-editable  default option (text) for not selected option.

Please refer to the example provided in angula-xeditable documentation.
http://vitalets.github.io/angular-xeditable/#editable-table
if we click on "Edit" then the status column for second row shows blank option (as the value was not selected). I want to show a Text for the not selected option e.g. "-- Please Select --" instead of blank option.
Kindly note that I would like to avoid to touch data (JS or JSON). It should be straight from HTML like we do for normal "Select" control.
Any reference? Thank you.

+1
It may not make sense as HTML in the element body, since that usually contains the display element (currently selected option). But maybe as an extra attribute like "e-placeholder"?

This was fixed with pr #429


Add Canary TLS support

What changed?
Added the option for Cadence Canary to connect to Cadence over TLS via the grpc port. This requires including the filepath of an appropriate CA file in the Canary config.

Why?
Cadence is moving towards primarily support communication over grpc. TLS-enabled Cadence clusters can only conform with this standard while using Canary if Canary supports TLS-encrypted connections.

How did you test it?
Verified this change by running my branch of canary against a TLS-enabled Cadence cluster. Confirmed that canary logs show a successful connection with the cluster, and that workflow_success counter metrics increase for the cadence_canary domain.
Regression tested by running my branch of canary against a non-TLS Cadence cluster, and without using the new tlsCaFile config parameter. Again, found that canary logs show a successful connection with the cluster, and that workflow_success counter metrics increase for the cadence_canary domain.

Potential risks
In the worst case, this change could affect existing connections between canary and cadence in production; however, changes to the current path have been minimised, making this unlikely.
If the new logic were to not work, only users who attempted to leverage the new TLS capability of canary would be impacted, by Canary being unable to connect.

Release notes
No configuration changes are required, so not notable.

Documentation Changes
None required.

Pull Request Test Coverage Report for Build 0186dbe1-a5cb-4aff-a37a-d73614516120

0 of 21 (0.0%)  changed or added relevant lines in 1 file are covered.
56 unchanged lines in 11 files lost coverage.
Overall coverage decreased (-0.02%) to 57.118%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

canary/runner.go
0
21
0.0%

Files with Coverage Reduction
New Missed Lines
%

common/task/weightedRoundRobinTaskScheduler.go
2
89.12%

service/history/task/transfer_active_task_executor.go
2
72.28%

common/persistence/statsComputer.go
3
93.57%

common/task/fifoTaskScheduler.go
3
84.54%

service/history/queue/timer_gate.go
3
95.83%

service/history/task/fetcher.go
3
91.75%

common/persistence/serialization/parser.go
4
62.41%

common/persistence/serialization/thrift_decoder.go
4
53.06%

service/history/task/transfer_standby_task_executor.go
4
87.24%

common/persistence/sql/workflowStateMaps.go
12
81.25%

Totals

Change from base Build 0186ca93-e16f-4fc5-8192-2a40200febed:
-0.02%

Covered Lines:
85099

Relevant Lines:
148987

💛  - Coveralls


[QUESTION] Support for RGB/BGR 24 bytes per pixel format?

I am trying to get some pixel data into an SKImage or SKBitmap for drawing it to a canvas without having to perform an expensive copy to a 4 channel format or encoding/decoding the image. This pixel data is the same format that a System.Drawing.Bitmap with PixelFormat.Format24bppRgb uses. It seems that SKImageInfo is not able to represent this pixel format though.
Here is the line I'm using to make my SKImageInfo:
SKImageInfo info = new SKImageInfo(myImage.Width, myImage.Height, SKColorType.Rgb888x, SKAlphaType.Opaque);

This results in an SKImageInfo that has BytesPerPixel = 4.
I can't find any other color type that would match this pixel format with 3 bytes per pixel, even though this is a very common format that .bmp files store internally. (BGR vs RGB aside)
Are 24bpp RGB/BGR bitmaps not supported?
Is there a way to construct an SKImageInfo that has BytesPerPixel = 3 and its other properties with the specific values I need?

Upon reviewing my question I noticed the "32-bit color" in the description for SKColorType.Rgb888x.
Clearly that's not the color type I need, so my question still stands; Is it possible to make an SKImageInfo that describes this 24-bit RGB pixel data?

I do not believe skia supports a 24-bit color type. It supports reading 8-bit, 16-bit and 32-bit colors and a few floating point colors.
I believe pixel sizes are for optimizing memory operations with either 1, 2 or 4 bytes. 3 bytes are a bit harder to copy and things like that. You might find that you get better performance with a single load and then faster operations vs a quick load and then all operations need additional math.
I would suggest asking on the skia engine discussion site for details on this: https://groups.google.com/g/skia-discuss


Getting network name missing in dictionary issue

This change is to fix network name missing issue during dataplane deployment.

You don't need to add these as those would be auto generated. I've cleaned up the sample in #671

Getting error due to Tenant network is unavailable in dict,
TASK [osp.edpm.edpm_network_config : Validating arguments against arg spec 'main' - The main entry point for the edpm_network_config role.] ***
Thursday 15 February 2024  01:49:59 +0000 (0:00:01.561)       0:00:10.449 *****
fatal: [edpm-compute-0]: FAILED! => {"msg": "'dict object' has no attribute 'Tenant'. 'dict object' has no attribute 'Tenant'"}
what could be the reason if no need to add manually?

/retest-required

recheck

/lgtm


It is unfriendly when hovering over the extender

-Version: 1.37.0-insider (user setup)
-Commit: 9296aaa2201b638e2b1dc71a9b9fe38c5ab2e904
-Date: 2019-07-09T05:26:27.407Z
-Electron: 4.2.5
-Chrome: 69.0.3497.128
-Node.js: 10.11.0
-V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.17763
Steps to Reproduce:

Install Cosmos DB Extension--> Expand the Cosmos DB accounts.
Check the result.

Actual:
It is unfriendly when hovering over the extender.

Does this issue occur when all extensions are disabled?: Yes

Do your Insiders and your non-Insiders both have the same setting for workbench.tree.renderIndentGuides ?
Please explain what you mean by "unfriendly".

The indent guides don't show if setting "workbench.tree.renderIndentGuides" to "None".

Closing as designed. If you don't like indent guides, disable them in the settings.


Minor fixes to make release smoother

Description

Fix to scala version check in examples
Fix to allow iceberg integration tests to use staged sonatype repo

How was this patch tested?
Locally ran integration tests
python3 run-integration-tests.py --run-iceberg-integration-tests --version 3.0.0rc2 --maven-repo https://oss.sonatype.org/content/repositories/iodelta-1120

lgtm


updated max_heap_Sort.py

Description
Added maximum heap sort code
#620
Type of change
Added new program in python
And updated the PR

[X] New feature (non-breaking change which adds functionality)

Checklist:

[X] I have read the contribution guidelines before making this PR.
[X] I have performed a self-review of my own code

Create an issue for this PR and link it.

Yeah I have updated the changes

No issue has been created for this PR. Create an issue and like it this PR


Path is showing but pdf is not generated

This path is showing " /storage/emulated/0/Android/data/com.reactnative/files/Documents/test.pdf " but pdf not generated

1+

Did you find a solution or another library to convert html to pdf ?

Same issue here, this happens only on android devices.

Did anyone find any solution still having the same issue?

how to fix this path issue?
"/storage/emulated/0/Android/data/com.hakeem/files/storage/emulated/0/Download/test.pdf"


mobile scroll doesnt work

when using iphone device scroll doesnt work add
import 'react-modern-drawer/dist/index.css';

for future readers, the fix here is to add box-sizing: border-box and ensure overflow-y: auto is set.


FR: Please support human-friendly project names

TL;DR
Currently the action will fail if given /project/projectname/... as the workload_identity_provider. The error indicates the failure is due to a mismatch in the audience field of the resulting request.
Detailed design
If the project is given in non-numeric form, make an additional request to normalize its form.
A more exact description in python psuedocode:
POOL_ID = "/project/my-project/locations/..."
def norm_numeric_project(id):
  parts = id.split("/")
  assert parts[:2] == ['', 'projects'], parts
  project = parts[2]
  if not project.isnumeric():
    project = subprocess.check_output(('gcloud', 'projects', 'describe', project, '--format', 'get(projectNumber)'))
  parts[1] = project
  return '/'.join(parts)

Additional information
Supporting the human friendly (i.e. /project/$GOOGLE_PROJECT/...) ID will make our usages of this action considerably more clear -- which is important for security. It's also less-surprising behavior for users.

Hi @bukzor-sentryio - this is a limitation of the Workload Identity product, it requires using a project number and does not support using a project id. Workload Identity is a feature of IAM. You can open an issue with the IAM team by creating a public issue on their issuer tracker: https://b.corp.google.com/savedsearches/559761


Check stack underflow in drop instruction

@bossek thank you so much for catching this! :+1:

@bossek thank you so much for catching this! :+1:


com.google.fonts/check/153  Check for count on ijacute

https://github.com/google/fonts/pull/1779#issuecomment-445486830 should  be checked for in check 153... reference https://typedrawers.com/discussion/1294/how-do-you-implement-ijacute-and-ijacute

Dupe of #1902, fixed with soft dotting check and shaperglot.


Titles: Add "| Microsoft Docs" + remove quotes

Fixes #1408
Change script
Adds ...
| Microsoft Docs
... to titles that don't have it. Also, removes quotes from titles.
@mairaw A handful ended up with a double-pipe due some existing piped text on the title. There aren't many of them. Here are a couple of examples:

Using C# Interactive with Visual Studio | C# Guide | Microsoft Docs
The .NET Portability Analyzer | .NET | Microsoft Docs

Let me know how you would like that situation handled.

The ones with double pipes should have the first one changed to a dash: -

@mairaw Done :+1:


Bump 7.9 branch to 7.9.4-SNAPSHOT

This PR bump chart version and Docker images to 7.9.4-SNAPSHOT version to test 7.9.4 development version.
See New branching model for more details.

jenkins test this please

jenkins test this please

jenkins test this please


Update Documentation when using fromRange

When using highlighter.fromRange(range) we should first execute highlighter.run() then only it works, it would be good if we update the doc for the same.

The methods .fromRange() and .run() are designed to have no dependency. If you find that, it maybe a bug.
I wrote some simple unit tests in api.spec.ts which call .fromRange() or .fromStore() without calling .run(). You could provide a minimum sample if you find such special case. I will try to fix it.
Thanks!

ok @alienzhou , Thanks for looking into, I will share a sample for the same.

I just tried again and it seems to be working, I guess I had some cache issue in developement.
Thanks Again


Move the CSS from the AEM solution to the envis repository

The css for the current version of equinor.com is based on 1rem being equal to 10px, so that needs to be changed so it works with the new css. Since the legacy css is based on scss, we should move the source files and the gulpfile over til envis and publish it as an npm module that can be imported into nextjs for the archived pages.

[x] Move the scss files and gulpfile to /legacy/css
[x] Create a package.json with a style field that points to the build
[x] Use @equinor/energyvision-legacy-css as the name of the package
[x] Add /legacy/css to the pnpm workspace file
[ ] Import the module in the relevant pages in nextjs
[ ] Update the Dockerfile and verify that it builds correctly

We don’t need to publish the package to npm at this point as pnpm will take care of the symlinking between dependencies
Related to #243

Fixing font sizing issues and looking into how node_module fonts can be loaded to nextjs application


I have 'datasets/coco/annotations/instances_train2014.json', but exist this error:

Traceback (most recent call last):
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1741, in
main()
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1735, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1135, in run
pydev_imports.execfile(file, globals, locals)  # execute the script
File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 171, in
main()
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 164, in main
model = train(cfg, args.local_rank, args.distributed)
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 60, in train
start_iter=arguments["iteration"],
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/build.py", line 154, in make_data_loader
datasets = build_dataset(dataset_list, transforms, DatasetCatalog, is_train)
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/build.py", line 44, in build_dataset
dataset = factory(**args)
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/datasets/coco.py", line 13, in init
super(COCODataset, self).init(root, ann_file)
File "/Users/chenghong/anaconda3/lib/python3.7/site-packages/torchvision/datasets/coco.py", line 97, in init
self.coco = COCO(annFile)
File "/Users/chenghong/anaconda3/lib/python3.7/site-packages/pycocotools-2.0-py3.7-macosx-10.7-x86_64.egg/pycocotools/coco.py", line 84, in init
dataset = json.load(open(annotation_file, 'r'))
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/coco/annotations/instances_train2014.json'

Traceback (most recent call last):
File "train_net.py", line 174, in
main()
File "train_net.py", line 167, in main
model = train(cfg, args.local_rank, args.distributed)
File "train_net.py", line 60, in train
start_iter=arguments["iteration"],
File "/home/opex/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 154, in make_data_loader
datasets = build_dataset(dataset_list, transforms, DatasetCatalog, is_train)
File "/home/opex/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 44, in build_dataset
dataset = factory(**args)
File "/home/opex/maskrcnn-benchmark/maskrcnn_benchmark/data/datasets/coco.py", line 43, in init
super(COCODataset, self).init(root, ann_file)
File "/home/opex/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/torchvision-0.2.1-py3.7.egg/torchvision/datasets/coco.py", line 97, in init
File "/home/opex/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/pycocotools-2.0-py3.7-linux-x86_64.egg/pycocotools/coco.py", line 84, in init
dataset = json.load(open(annotation_file, 'r'))
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/coco/annotations/instances_train2014.json'
I build the datasets folder in maskrcnn-benchmark, but i got this error, help!

Traceback (most recent call last):
File "train_net.py", line 174, in
main()
File "train_net.py", line 167, in main
model = train(cfg, args.local_rank, args.distributed)
File "train_net.py", line 60, in train
start_iter=arguments["iteration"],
File "/home/opex/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 154, in make_data_loader
datasets = build_dataset(dataset_list, transforms, DatasetCatalog, is_train)
File "/home/opex/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 44, in build_dataset
dataset = factory(**args)
File "/home/opex/maskrcnn-benchmark/maskrcnn_benchmark/data/datasets/coco.py", line 43, in init
super(COCODataset, self).init(root, ann_file)
File "/home/opex/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/torchvision-0.2.1-py3.7.egg/torchvision/datasets/coco.py", line 97, in init
File "/home/opex/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/pycocotools-2.0-py3.7-linux-x86_64.egg/pycocotools/coco.py", line 84, in init
dataset = json.load(open(annotation_file, 'r'))
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/coco/annotations/instances_train2014.json'
I build the datasets folder in maskrcnn-benchmark, but i got this error, help!

I put .json in here, like"~/maskrcnn-benchmarch/datasets/coco/annotations/instances_train2014.json"

I meet the same problem when I use pycharm to run the test_net.py. when I in a console in the first maskrcnn-benchmark fold, use commod:  python tools/test_net.py .Then it works. I think when I run test_net.py in pycharm. the datasets folder can't been seen.

Has anyone managed to resolve this? I am attempting to use COCO's 2017 dataset and receiving the same error. The issue seems to be with the COCO api but I've been unable to fix it.

The issue seems to be that pycocotools is attempting to fetch the annotations from within the site packages folder rather than in the data folder(perhaps switching to an older version of the COCO API would help). I found a temporary fix by adjusting the DATA_DIR accordingly in path_catalog.py inside maskrcnn_benchmark/config.

this problem is fixed by cd into tools dir, and then use : python train_net.py ...

Traceback (most recent call last):
File "tools/train_net.py", line 205, in
main()
File "tools/train_net.py", line 198, in main
model = train(cfg, args.local_rank, args.distributed)
File "tools/train_net.py", line 76, in train
start_iter=arguments["iteration"],
File "/home/james/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 156, in make_data_loader
datasets = build_dataset(dataset_list, transforms, DatasetCatalog, is_train or is_for_period)
File "/home/james/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 45, in build_dataset
dataset = factory(**args)
File "/home/james/maskrcnn-benchmark/maskrcnn_benchmark/data/datasets/coco.py", line 43, in init
super(COCODataset, self).init(root, ann_file)
File "/home/james/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/torchvision/datasets/coco.py", line 97, in init
self.coco = COCO(annFile)
File "/home/james/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/pycocotools/coco.py", line 84, in init
with open(annotation_file, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: "/home/james/V_hardness_kp/maskrcnn-benchmark/datasets/coco/annotations/train2020.json'"
I build the datasets folder in maskrcnn-benchmark, but i got this error, who can help me?

Traceback (most recent call last):
File "tools/train_net.py", line 205, in
main()
File "tools/train_net.py", line 198, in main
model = train(cfg, args.local_rank, args.distributed)
File "tools/train_net.py", line 76, in train
start_iter=arguments["iteration"],
File "/home/james/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 156, in make_data_loader
datasets = build_dataset(dataset_list, transforms, DatasetCatalog, is_train or is_for_period)
File "/home/james/maskrcnn-benchmark/maskrcnn_benchmark/data/build.py", line 45, in build_dataset
dataset = factory(**args)
File "/home/james/maskrcnn-benchmark/maskrcnn_benchmark/data/datasets/coco.py", line 43, in init
super(COCODataset, self).init(root, ann_file)
File "/home/james/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/torchvision/datasets/coco.py", line 97, in init
self.coco = COCO(annFile)
File "/home/james/anaconda3/envs/maskrcnn/lib/python3.7/site-packages/pycocotools/coco.py", line 84, in init
with open(annotation_file, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: "/home/james/V_hardness_kp/maskrcnn-benchmark/datasets/coco/annotations/train2020.json'"
I build the datasets folder in maskrcnn-benchmark, but i got this error, who can help me?

Traceback (most recent call last):
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1741, in
main()
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1735, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1135, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 171, in
main()
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 164, in main
model = train(cfg, args.local_rank, args.distributed)
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 60, in train
start_iter=arguments["iteration"],
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/build.py", line 154, in make_data_loader
datasets = build_dataset(dataset_list, transforms, DatasetCatalog, is_train)
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/build.py", line 44, in build_dataset
dataset = factory(**args)
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/datasets/coco.py", line 13, in init
super(COCODataset, self).init(root, ann_file)
File "/Users/chenghong/anaconda3/lib/python3.7/site-packages/torchvision/datasets/coco.py", line 97, in init
self.coco = COCO(annFile)
File "/Users/chenghong/anaconda3/lib/python3.7/site-packages/pycocotools-2.0-py3.7-macosx-10.7-x86_64.egg/pycocotools/coco.py", line 84, in init
dataset = json.load(open(annotation_file, 'r'))
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/coco/annotations/instances_train2014.json'

Have you solved it? Can you tell me how to solve it？

Traceback (most recent call last):
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1741, in
main()
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1735, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1135, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 171, in
main()
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 164, in main
model = train(cfg, args.local_rank, args.distributed)
File "/Users/chenghong/PycharmProjects/ObjectDetection/tools/train_net.py", line 60, in train
start_iter=arguments["iteration"],
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/build.py", line 154, in make_data_loader
datasets = build_dataset(dataset_list, transforms, DatasetCatalog, is_train)
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/build.py", line 44, in build_dataset
dataset = factory(**args)
File "/Users/chenghong/PycharmProjects/ObjectDetection/maskrcnn_benchmark/data/datasets/coco.py", line 13, in init
super(COCODataset, self).init(root, ann_file)
File "/Users/chenghong/anaconda3/lib/python3.7/site-packages/torchvision/datasets/coco.py", line 97, in init
self.coco = COCO(annFile)
File "/Users/chenghong/anaconda3/lib/python3.7/site-packages/pycocotools-2.0-py3.7-macosx-10.7-x86_64.egg/pycocotools/coco.py", line 84, in init
dataset = json.load(open(annotation_file, 'r'))
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/coco/annotations/instances_train2014.json'

Have you solved it? Can you tell me how to solve it？

Have you solved it? Can you tell me how to solve it？

Have you solved it? Can you tell me how to solve it？

In config/paths_catalog.py , set the variable DATA_DIR  changed from 'datasets' to '../datasets'