v6.4 Changelog + upgrade notes

As i customer in don‘t understand the impact of the important upgrade note. How long is my instance down due to the migration? Why here the explicit note to backup the db before that?
Another thing:
Why are cloud related stuff inside the self-managed release notes?

A customer i don‘t understand the impact of the important upgrade note. How long is my instance down due to the migration? Why here the explicit note to backup the db before that?

cc @agnivade @isacikgoz if there are more details for ^

Another thing:
Why are cloud related stuff inside the self-managed release notes?

I removed a Cloud-related bug fix from the list, let me know if you had noticed others. @JtheBAB

@amyblais @JtheBAB Since we are replacing the entire schema migrations system, we ask to be cautious as some databases can be in a state where we haven't thought of yet. In terms of being down due to migrations depends on whether you have missing migrations in your schema or not and also how many records your database has. We have tested our migration system against community server, cloud workspaces, release test servers and validated it.


Timeout occurred while validating state

Type: Bug

A known error has occurred refreshing the repository state. Please share logs from "GitHub Pull Request" in the tracking issue.

GitHub Pull Request.log
Extension version: 0.77.2023110909
VS Code version: Code 1.84.2 (1a5daa3a0231a0fbba4f14db7ec463cf99d7768e, 2023-11-09T10:50:47.800Z)
OS version: Linux x64 6.5.0-14-generic
Modes:

System Info

Item
Value

CPUs
AMD Ryzen 5 5600G with Radeon Graphics (12 x 4117)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
17, 9, 6

Memory (System)
30.68GB (18.03GB free)

Process Argv
.

Screen Reader
no

VM
0%

DESKTOP_SESSION
plasma

XDG_CURRENT_DESKTOP
KDE

XDG_SESSION_DESKTOP
KDE

XDG_SESSION_TYPE
x11

Thanks for reporting! I've added more logging since your report which will help narrow it down. If you encounter this again please do share more logs.


Import Profile ignores Identifier and Name (and probably Description)

I have a LulzBot TAZ 6 printer configured in PrusaSlicer and executed an Export, Config, and saved the file as config.ini (included in .zip below).
I then clicked Import Profile..., browsed to the file on my desktop, and entered an Identifier and Name (I left the Description blank). After clicking Confirm the imported config was identified as config and named config. I believe that the Identifier and Name should have come from the Import Profile... values.

config.zip
 OctoPrint 1.10.0rc3 Python 3.9.2 OctoPi* 1.0.0cam (build 2<IP_ADDRESS>556)

This install is on an RPi 4B which does not normally have my printer attached. The printer is normally attached to an RPi 3B running OctoPi 0.18.0 and OctoPrint 1.10.0rc3.

I'm fairly certain this issue is now fixed in the latest update! I haven't made a new release yet, but you can test it out by downloading the .zip file and uploading it to OctoPrint via the Plugin Manager:


Add streamlined ListItemValue component

Checklist before requesting a review

[x] Working on iOS
[x] Working on Android
[x] Integration tests added
[x] Visual regressions screenshots are up to date
[ ] Design validated

@ianrobertlambert For Disabled and Loading state, you can create a separate ticket so we handle it on both the ListItem and ListItemValue together.


Feature: move to scratch Docker image (WIP)

Description
This fixes https://github.com/openfaas-incubator/golang-http-template/issues/45

Use empty scratch image
Do away with useless home directory
Use newer Go and alpine linux versions
Linted Dockerfile with hadolint
Statically build Go binaries
Set static user/group ids for easier debugging/mapping

I'm sorry, this PR isn't approved so I'm going to close it out. See my note on your issue, you are free to fork the templates repo and maintain your own, and then you can do whatever you like with them.
These are built to suit the needs of most users, and any bespoke changes can be made easily in your own repo.


Custom report location

This adds the ability to pass a custom report location as an environment variable. Let me know if you have any thoughts. Thanks!

Looks good to me, thanks :+1:


Close connection to database

We have a very specific use case for the osm-p2p-db. The main process that runs the server creates a database.  Subsequently, when we try to connect to the database from a different node process, we get a Resource temporarily unavailable because of the LOCK.
Looking through the documentation I wasn't able to find any way to close the db connection. What would be the best way to go about this?
Cc @olafveerman @gmaclennan

Hi @danielfdsilva,
If you're using osm-p2p-db (as opposed to osm-p2p - a simple wrapper) then you have control of the db instances you pass to the constructor, namely the hyperlog, the leveldb for join indexes, and the abstract-chunk-store (used for the kdb spatial index).
Each of these stores has a close() method usually, that takes a callback. You basically need to close each one yourself. It would result in problems trying to do this in osm-p2p-db because you control the data stores that are passed to osm-p2p-db and they could vary with their methods for closing.
This should be documented better somewhere, and I don't know if their is a better solution.

This makes me realize that osm-p2p really ought to have a close() method.

Run .close() on:

db.db
db.log.db
db.kdb.kdb.store

Looking at how much source code digging was necessary in order for me to figure that out, it seems a bit unreasonable that osm-p2p and osm-p2p-db don't expose close() methods.

@noffle That seems to have done it! thanks :)

Fixed in 4.2.0 :tada:


Fixing layout and json data

Added section object which adds margin top (used to fix error page layout)
Updated JSON data for the primary nav

Thanks @danbull. Now stop looking at GitHub and enjoy your holiday!! 😛


Synergy scores in test data used to assess accuracy have information from entire dataset

Because the test game data is used to calculate the synergy scores during the test game data evaluation, the random forest could be memorizing the relationship between the synergy scores and who wins then using that to overfit to test data, while being significantly less accurate in the real world

Because the test game data is used to calculate the synergy scores during the test game data evaluation, the random forest could be memorizing the relationship between the synergy scores and who wins then using that to overfit to test data, while being significantly less accurate in the real world

That's true, I can't believe they are using data from the testing set during training. This is very dissapointing :/

Because the test game data is used to calculate the synergy scores during the test game data evaluation, the random forest could be memorizing the relationship between the synergy scores and who wins then using that to overfit to test data, while being significantly less accurate in the real world

That's true, I can't believe they are using data from the testing set during training. This is very dissapointing :/

Yeah , I was unable to reproduce your results on professional league data. I used a different approach with a GRU and second by second game data and got to 82% accuracy on completely blind data without any processing of the validation set


Multiple packages with same name, id and source

Brief description of your issue
I have 2 packages with the same Name, Id and source. One of them is listed as having an update available, the other one is listed as being at the latest version.
> winget list --verbose "Double Commander" -s winget
Name             Id                        Version Available
------------------------------------------------------------
Double Commander alexx2000.DoubleCommander 1.1.14
Double Commander alexx2000.DoubleCommander 1.0.11  1.1.14

winget list --verbose "Double Commander"
Name             Id                        Version Available Source
-------------------------------------------------------------------
Double Commander alexx2000.DoubleCommander 1.1.14            winget
Double Commander alexx2000.DoubleCommander 1.0.11  1.1.14    winget

Steps to reproduce
I do not know how this could happen. I've read several other issues where it says that the issue is that the packages have different sources, but it doesn't look to be the case for me, i have the exact same source, winget for both.
Expected behavior
The package should only be listed once, not multiple times .. it's the same package.
Actual behavior
I have two packages with the same Id, Name and Source and I have no idea how to remove one of them. I cannot use winget to upgrade the package as it says that there are multiple matches and I should refine the search, but there's nothing different about the two entries, I can't refine by Id, Name or Source.
winget upgrade -e "Double Commander" -s winget
Multiple installed packages found matching input criteria. Please refine the input.
Name             Id
------------------------------------------
Double Commander alexx2000.DoubleCommander
Double Commander alexx2000.DoubleCommander

Environment
Windows Package Manager v1.7.11261
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19045.4170
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.22.11261.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled

Looks to be similar to the found issues, a side-by-side issue.


Contributing Zynga's implementation of Stage3D under MIT.

Didn't get much time this weekend after this contribution was approved so I know it's pretty rough. Feel free to fork from my repo back into your main line if you need to make major changes.
Feel free to sync with me so I can point out some of the functionality that I have yet to implement in Haxe/OpenFL.

What's "Zynga's implementation of Stage3D"? I'd rather just the title be "Implementing Stage3D" at least that way you're not being perceived as directly endorsing a company, and especially Zynga of all of them (no offence).
That being said, I've researched up on this and I see they have their own language and binding for Flash called PlayScript, apparently a so-called successor to ActionScript 3. Lol... Maybe as the superior community, we should market Haxe more and make sure Zynga doesn't get any ground on this? Just saying.

@tienery : dschreck works for Zynga

Merged! :shipit:

@tienery - Correct, we released PlayScript under Apache 2.0 back in 2013, but then withdrew it. This is the only version of this code under the MIT license, which we've discussed in detail with @jgranick

@jgranick Excuse me, but could you revert these stuff? I can't run Starling programs with this because of many bugs. Why did you push stuff that break many existing functionalities? That is called regression, and you should avoid that when it's possible. Making software software stable is much more important than madding new functions to software. It shouldn't be in develop branch at least.
I think it would be much better to merge these stuffs one by one. That way you can guess which change broke existing functionalities. It's a bit hard to debug this because you included many stuff in a few number of commits...
This PR contains some interesting stuffs that are not currently supported by current implementation, I'd like to take a look at them anyway.

It would be much easier to start from partially broken state than from completely broken state...

Maybe there should be a superdev branch, but you can go back yourself via haxelib iirc.

We are very thankful for the contributions, and because of the origins of our older Stage3D bindings (the only written documentation of wighawag's original code is listed as GPL) something had to be done from a licensing perspective. There are a number of great things about these bindings, I think that we will just need to help integrate it a bit more. I will be testing Starling soon.
We have a "develop" branch to guard in case someone needs a stable master branch to use. Anyway, let's all be positive, and yes, let's make things solid and stable! We just need a free open-source basis to do it upon. Thanks everybody :smile:

wighawag said on his github repo it's not GPL.
https://github.com/wighawag/openfl-stage3d/issues/23

So there is no reason to erase all previous work done by me and other developers. That's just waste of time. Did you even try to contact him?
I'm threatened by these commits because many users will report bugs with that. Do I need to fix new bugs/reintroduced bugs by myself?
This is the issue you could avoid by reviewing code carefully before merging.
You might be able to guess that "develop" branch has some issues, but this case is kind of extreme. I've been using development version of softwares such as Haxe, and even if developers say it's in development it's fairy stable.

Couple a things --
I agree with vroad it might make sense to start a temporary feature branch to work out the regressions. "develop" branches do seem like they're fair game to be unstable, but I've been bitten by this myself a few times and I think it's worth it to take time to nail down regressions without slowing anyone else down. The code isn't going anywhere so there's no harm in giving it some time.
As for the license however, even if wighawag said it's not GPL, if it was originally marked as GPL, and then others contributed to it, their contributions are probably legally presumed to be under GPL as well. In order to get the whole thing back under MIT you would need to track down every single contributor since the original license statement and get them all to agree that each individual contribution is fair game for MIT. Even then many companies would be afraid to use it in their work. I'm not saying it can't be overcome. If the original license mis-statement was long ago this can be a big issue, if it was fairly recent it might not be too hard to fix.

I guess it's mostly written by wighawag. That project has a few number of contributors, but do we get sued in practice? I guess it's highly unlikely. Nobody will sue us on not releasing a few lines of code with GPL. And they've never complained about it.
It may make sense to get permission from major contributors. It would be better to get permissions from contributors who made small changes, but it's highly unlikely to get sued on that. They will gain almost nothing from sueing us.
I don't think you need to get permissions from anyone contributed to away3d-core-openfl as it says it's MIT.

Nobody will sue us on not releasing a few lines of code with GPL.

Whether or not that's true for you and me, that might not be the opinion of a company seeking to use OpenFL and could serve as a barrier to wider adoption.
I thought this was the repo in question:
https://github.com/wighawag/openfl-stage3d/blob/master/haxelib.json#L4

Do other projects simply gives up relicenslng if they cannot contact somebody?
Yes, It's hard to prove something "does not" have copyright issues... devil's proof?
Not sure how can I "rewrite" code when a few lines have some legal issues.
It looks hard to write something very unique for that.
You may end up writing the same kind of code in this case. Do others claim that you stole the code?

It's a common problem with relicensing, but it can be worked around from what I've heard. If the total lines in question that are unaccounted for are small, I think you can re-write them so long as you follow a few guidelines. Again, I'm not a lawyer.
To be clear, the main issue here is not "oh no will this contributor sue me" -- though that's a possibility, as you say it's very unlikely. The real issue is that a company's legal department does due dilligence on OpenFL, notices a discrepancy like this, and refuses to touch it because of the technical liability. So it's either deal with it now or deal with it later.
From what I can tell, the Dolphin Emulator team had to re-write a small % of the code from people they could no longer contact, and that was enough to satisfy the legality of their license, for more details I guess it would be best to ask one of them.

I don't want OpenFL userbase to shrink, but if we release OpenFL with unreliable code, that will prevent users from using OpenFL... That might be worse than having (unlikely) legal issues.
As stage3d layer being a thin wrapper around OpenGL ES, it's very hard to write implementation in a very unique way.
Maybe AGALMiniAssembler is not. You are required to do some complicated work to convert AGAL to GLSL.

Well it looks like we have two different workable implementations here and any legal issues can likely be surmounted with the proper expertise. As both of those issues seem to be well over my head I trust it to you guys to sort it all out and I'll bow out of here now :D

Don't worry, we're not doing a new release yet. We can discuss more on Slack. Thanks :smile:

Here is some information (since I know my copyright laws well, even though I'm not a lawyer) about GPL licensed code:

You can sublicense GPL code under a similar license, i.e. You can choose to use version 2 of the GPL instead of version 3, and vice versa.
Normally, under the GPL, you need to attribute back to the author regardless of how you use the code.

However, all of that being said you do need to use a similar license to the GPL and MIT is certainly not one of them. There is no harm in asking permission from contributors of the original source code.
Also, you very rarely hear a case about a lawsuit between two open source developers, simply because of the money involved, unless the open source developer on one end is run by a private company who has millions of dollars to expend. Even that being said, most companies are reasonable enough not to go after the little guy, simply because it's not worth it. I wouldn't worry about a lawsuit, personally. I don't think it would ever go that far, even if the original developers had money.
That being said, you have "merged" the commit and if any of that source code is identified to be GPL code, what you have effectively done is sublicensed the code under MIT. But MIT isn't compatible with GPL, so even if it isn't a release, you're still technically violating the GPL. However, if the original developers are reasonable enough, you may get away with it. I can't make any promises on that front.

As someone working for a company currently striving very hard to sort out licensing issues so we can go OS, yeah, don't take licensing stipulation lightly. When it becomes business it is the very serious kind.

GPL is especially bad, because of its a "copy left" nature, using GPL source could mean that someone could approach a business and ask for all of their source for any products created using the library.
In C++, you can create a shared library and avoid some of these problems. That isolates it safely from user code, but we cannot do that with Haxe source right now. It's a non-starter.
For Linux system libraries, I understand the purpose of the license, but not for this.
@vroad thanks for your pull request today, let's continue to sync up on Slack on how we can make this the strongest representation of Stage3D in OSS :smile:


Output multiple types to single TS file?

I'd like to have one .ts file generated per .tst file.  So if I had a single .tst template for all classes in NamespaceXYZ, instead of one .ts file for each class in that namespace, I'd like a single .ts file that contained all of the classes.
I don't think that's currently possible, but maybe I'm just missing it?
It seems like I could put all of my C# classes inside a single source file and that does what I'm looking for, but I don't like that for code organization reasons.

This is not possible at the moment (other than putting all C# classes in a single file).
It would be a nice feature, but it's a hard one to implement, so maybe in a future version...

I was just thinking about opening an issue about this--I agree it definitely creates a ton of files if you have a lot of models and it'd be nice to just concat the output into a single file :+1: Couldn't there be a post-build step in the template pipeline that just concats all the output?

While I agree it might be a nice feature, but what happens when a class is changed? Either TypeWriter must find the output for that one class and change it (seems hard and troublesome), or re-render all the classes again (I imagine this is a costly action, depending on your tst-filter).
@frhagn what is the cost of writing to file vs generating file content?

There are two main issues to get this working. As @johannordin points out, when a file changes it needs to update a part of the output file or re-render all files. The other issue is tracking the path of the source files which at the moment only works for mapping a single output file to a single source file.
I'm working on support for this, but it's a major change so it'll be a while..

I would favour this over automatically re-rendering files.
ie. take the T4 Template approach and only re-render the output when the user right-clicks and chooses "run custom tool". TypeWriter could then find all the dependencies and re-render.

I just used typewriter in a demo and using tsconfig with compile on save
already doesn't trigger compilation when saving a tst file, so I think not
automatically rendering would be even more confusing. It took me a minute
to realize I had to open the generated TS files and hit save to get VS to
compile. So I would vote to at least keep the option to autogenerate.
On Sat, Mar 5, 2016, 06:00 Michael Aird<EMAIL_ADDRESS>wrote:

I would favour this over automatically re-rendering files.
ie. take the T4 Template approach and only re-render the output when the
user right-clicks and chooses "run custom tool". TypeWriter could then find
all the dependencies and re-render.
—
Reply to this email directly or view it on GitHub
https://github.com/frhagn/Typewriter/issues/75#issuecomment-192626835.

Maybe an option in properties to say if this tst should autogenerate or
manual. And multi-to-one is only supported by manual generation?
On Saturday, 5 March 2016, Kamran Ayub<EMAIL_ADDRESS>wrote:

I just used typewriter in a demo and using tsconfig with compile on save
already doesn't trigger compilation when saving a tst file, so I think not
automatically rendering would be even more confusing. It took me a minute
to realize I had to open the generated TS files and hit save to get VS to
compile. So I would vote to at least keep the option to autogenerate.
On Sat, Mar 5, 2016, 06:00 Michael Aird<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

I would favour this over automatically re-rendering files.
ie. take the T4 Template approach and only re-render the output when the
user right-clicks and chooses "run custom tool". TypeWriter could then
find
all the dependencies and re-render.
—
Reply to this email directly or view it on GitHub
https://github.com/frhagn/Typewriter/issues/75#issuecomment-192626835.

—
Reply to this email directly or view it on GitHub
https://github.com/frhagn/Typewriter/issues/75#issuecomment-192670229.

My personal reason for wanting this is to reduce the number of files that need to be imported/referenced from external TypeScript projects (I am generating .d.ts files containing interfaces that describe JSON endpoints). One solution might be to continue to generate output as is, but to additionally generate and maintain a single file, say models.d.ts, that imports or references each file created by Typewriter. This file would only need to be updated when types are added, removed, or moved, so it would not pose the same difficulty.
Anyway, I love this project. Keep up the awesome work!

I'm currently using TypeWriter to generate all of my Angular2 Services.  But it'd be nice if I could also generate a single file that imports all of my dynamically generated services so that I can put them into one single PROVIDERS array when the application is bootstrapped instead of having to manually add them.

kb3eua could I pursuade you to share the template you have created for Angular 2 services? I wish to create a template for asp.net 5 api controllers to autogen service ts files for Angular 2 services.

Rolf, here is my template for services.  It will only pull in controllers from certain namespaces and that have an attribute named "TypeScriptGenerate"... that way I have control over which controllers I create services for and which ones I don't.
All of my models are in a "models" sibling folder, so I scan all of the return types and input parameters of my controller actions and import models as needed.
I also have slightly different method signatures depending on whether the method:

returns "void"
returns a primitive value
returns a non-primitive model

For non-primitive models that are returned, I have a "ModelHelper" utility that I use to convert the JSON to a strongly typed instance of that class, which also handles converting ISO date strings from the JSON to actual JavaScript Date objects using moment.js.
Services.txt

Very nice template. Thank you for sharing!

Was going to open an issue for merging several .cs files into a single .ts/.js output.
One motivation that was not mentionned in this thread is that if you emit ES6 w/ modules, then your file name defines your module name. So unlike C#, file structure in ES6 modules matters a lot.
For example, in C# I write lots of entities in a Model folder, one file per entity. In TS I would like to have a single generated model module from which I can do:
import { Order, Product, Customer } from 'model';

Rather than having a file for each one:
import { Order } from 'model/Order';
import { Product } from 'model/Product';
import { Customer } from 'model/Customer';

+1
Well done, but make some hack, please. I cannot generate barrels like this. :(
export * from './entities'
export * from './application-bus'
export * from './message.service'
export * from './property.service'
export * from './elapsed.pipe'

Hello,
I did customize the file name factory so that it exports files with "___.ts". Then I did create a Node.js script to concatenate all the files with same namespace.
Actually I did already shorten and combine namespaces so that we only had some 40 files for about 1000+ exported DataContract classes and enumerations instead of some 100+. When we had over 3 parts in the namespace "foo.bar.baz.x.y", I just shortened them to "foo.bar.baz". It would have been much easier to combine everything to one mega sized file, ecause then you would not need about the imports, but that would have been way too messy in our case due to sheer size of that file, and possible name clashes as well.
Additionally I had to generate imports for these files in Typewriter template, when our types did extend or use types from an another namespaces. And I did generate constructors, and that was a bit complicated since you have to traverse base classes recursively to get all the derived properties of baseclass and of baseclass of the baseclass and of baseclass of the baseclass of the baseclass... you got it ;-)
Ultimately I had to solve the problem with ordering of imports and class definition in combined files, since you cannot have duplicate imports and you have to define "class A" before "class B extends A" and that class B before "class C extends B", because of the limitation in either Typescript compiler or in Webpack (or similar), I'm not quite sure about the reason. Compiler doesn't give a warning, but it simply won't work.
For reason unknown, I had to add some missing imports "manually". Most of these were imports from a project to another, so maybe that's expected, but some where inside the very same project. Out of ~200+ imports to generate, only a handful had to be added hard coded to the file combining & type import, so not a big issue.
To summarize, I needed to alter the Typewriter template/settings to:
-change the output file names prefixed with namespaces
-include imports from other namespaces
(-add derived properties to constructors)
And then I had to do an external script to:
-combine these namespace-prefixed files into .ts files simply to ".ts"
-remove duplicate imports from these files
-reorder classes so that derived classes are defined after their base classes
If you alternatively combine everything into a single file, you don't need to worry about imports, but the class defining is still important, unless you don't have any derived classes.

Sorry, file names in above posts where including special characters, so they got stripped of. So I did change Typewriter output file names to "(namespace)_(originalfilename).ts". And ultimately combined them to "(namespace).ts".

Back to the topic at hand, I'd like to add a bump for the idea of compiling to a single .ts file, but for a different reason than what's been stated so far.
We publish our web projects directly from Visual Studio, and in the interest of keeping generated files from cluttering the project files, we have typescript compile to one single .JS file and we don't check that file into version control. Same with our LESS files - we're set up to compile to a single CSS file, but we don't check in the outputted CSS file. This way, our version control only has the true "source" files, and we don't have problems with version control conflicts in generated files.
Typewriter doesn't work with this approach because when we update from VCS and get additional entries in the project file, but not the actual files, Typewriter is not clever enough to notice the missing files and regenerate them. Instead, I have to right-click the template file and click "Render Template". This is a really only a minor annoyance, but it's inconsistent with the rest of the Visual Studio / Web Compiler tools, which will automatically generate the missing JS / CSS files the first time I attempt to build the project after a fresh checkout. As it stands, I update from VCS, build, and get build errors for the missing generated TS files. Then I manually re-render the typewriter files, build again, and it works.
Knowing that our workflow isn't the most common, I tried a workaround: I edited our project file to include everything in the typewriter directory via glob pattern, like this: <TypeScriptCompile Include="app\dto\gen\*.ts" />, and I simultaneously added all those generated ts files to our version control's "ignore" list. That appeared to work. Now we could add new files, see the .TS files get automatically generated and see them included in visual studio. My thinking was that, instead of having .proj file entries for files that didn't exist, the files would simply be missing from the project altogether and typewriter would notice and regenerate them right off the bat. The problem with this approach was, once typewriter had noticed the change and rendered the new files, it had gone into the .proj file and obliterated our glob pattern Include and re-entered individual entries for all the generated files.
Either compiling to one single .TS file or improving Typewriter's handling of broken references / missing files in the .proj file would fix our issue. As it stands, our workaround is to check in the generated files. If that's how it has to stay, no big deal, this project is absolutely awesome and it's not that painful of a workaround. Just thought I'd add some more justification for the single file idea. If we're forced to check in generated code, I'd rather have it contained in one file then deal with an entire directory of generated files.

I've been looking at NSwag lately (https://github.com/NSwag/NSwag). It looks very promising for generating a full TypeScript client for webapi controllers.

While I initially chimed in asking for this feature, I don't think it is particularly necessary. The separate files actually make things quite clear and I just generate a file which re-exports all of them on build so they can be conveniently referenced. It turns out that, contrary to what I said, it wasn't the number of files that was the issue, it was simply a need for better organization. One I stopped putting my generated TypeScript files into a globally visible namespaces, I stopped wanting this feature.
Here is my somewhat convoluted post-build script (powershell is not my strong point)
# clean re-exports
Remove-Item -Path .\..\..\models.ts -Force -ErrorAction Ignore

# clean target dir
ls .\..\..\..\..\web\src\models\*.ts | Remove-Item -Force -ErrorAction Ignore

# collect individual files
$dts = ls .\..\..\TypeScriptModels\*.ts -Exclude *.d.ts
# generate re-exports
[IO.File]::WriteAllText(
	'.\..\..\models.ts',
	"import { Moment } from 'moment';`n"  + "export * from './models/" +
            [string]::Join("export * from './models/",
	($dts| % {$_.name.substring(0, $_.name.length - 3) + "';`n"})),
	[System.Text.Encoding]::UTF8
)
#copy files
$dts | Copy-Item -Force -Destination .\..\..\..\..\web\src\models
ls ..\..\models.ts | Copy-Item -Force -Destination .\..\..\..\..\web\src\models.ts

# clean re-exports
Remove-Item -Path .\..\..\models.ts -Force -ErrorAction Ignore

@frhagn any updates on this issue?

@frhagn I'm loving this piece of code. Therefore bumping this thread - we have a web project that aggregates models and we share the typings with linking the generated .d.ts from that aggregating project. It would be really great to be able to link a single file with all these models :)

@patrykbuzowicz it's easy to generate such file following the re-export pattern. I want it would be great if typewriter did this automatically, It's very easy to do manually, provided you organize things in an amenable fashion.

I really liked the idea of glob include in csproj - I think it should suit the needs that we have. I wanted to bump the thread to see if there's anything planned in that area.
Anyway, what we found more interesting is what the other issue is about:
https://github.com/frhagn/Typewriter/issues/171

I am simply doing a copy /b *.tsx generated.ts after generating all the files.

+1

+1

+1

I have found a potentially very bad solution, but it can save some headaches for small projects...
I needed to generate my SignalR hub definition and its parameters models definitions
Iterating through model classes, I build up a static string containing all my imports and generate typescript interfaces.
Then I import all my models (contained in different files) at once by using the static string.
It goes like
${
    using Typewriter.Extensions.Types;

    Template(Settings settings)
    {
		settings.IncludeCurrentProject();
    }

    static String allImports = "";
    string Imports(Class c)
    {
        allImports += $"import {{ {c.Name} }} from './{c.Name}'" + Environment.NewLine;
        return null;
    }

    string AllImports(Class c)
    {
        return allImports;
    }
}$Classes(MyHub.*Model)[$Properties[$Type[$IsPrimitive[][import {$Name} from './$Name';
]]]
$Imports[]export interface $Name {$Properties[
    $name: $Type;]
}]$Classes(MyHub.Hub)[$AllImports
export class Hub implements $Interfaces(i=>i.Methods.Count>0)[$Name][,] {
	constructor(private connection: any){}$Interfaces(i=> i.Methods.Count>0)[
	$Methods[
  public $name($Parameters[$name: $Type][, ]) {
    return this.connection.invoke('$name', model);
  }
]]}
    $Interfaces(i=> i.Methods.Count>0)[
export interface $Name {$Methods[
    $name($Parameters[$name: $Type][, ]): void;]
}]$BaseClass[$TypeArguments[

export interface $Name{$Methods[
    $name($Parameters[$name: $Type][, ]): void;]
}]]]

I use the following in my .csproj which solves me that problem when running a build:
  <Target Name="CopyGeneratedFiles" AfterTargets="BeforeBuild">
    <ItemGroup>
      <TypeScriptFiles Include="**\*.ts" />
    </ItemGroup>

    <ReadLinesFromFile File="%(TypeScriptFiles.Identity)">
      <Output TaskParameter="Lines" ItemName="FileLines" />
    </ReadLinesFromFile>

    <WriteLinesToFile File="generated.ts" Lines="@(FileLines)" Overwrite="true" />
  </Target>


check and tune PSFex source parameters

Also SourceExtractor detection threshold

Move to the legacypipe product at https://github.com/legacysurvey/legacypipe/issues/339


#1476 fix. clearLimit(), clearOffset()

No tests?..

No tests?..

Sorry, no know this package so well.

@Fi1osof Simple unit tests should be enough here - assert that builder constructs query as expected after calling new methods.
Take a look at test\unit\query\builder.js for inspiration

@Fi1osof Please raise a PR with documentation for the new feature at https://github.com/knex/documentation/pulls

@elhigu Can you imagine any real-world use-case when user would reset offset or limit in the middle of query building? Considering that this PR was abandoned unfinished and without documentation, I wonder if it's worth the effort to push over the finish line.

@kibertoad @elhigu sorry, i do not know english well and do not familiar with documentation and tests. And i can not complete this PR. But i can give an example.
let countQuery = query.clone();

let objects = await this.request(query).then()

countQuery.clearOrder();
countQuery.clearSelect();
countQuery.select(uniqueColumn);

Object.assign(countQuery._single, {
  limit: undefined,
  offset: undefined,
});

let qQuery = knex.count("* as count").from(countQuery.as("t1"));

let count = await this.request(qQuery)
  .then(r => r && r[0].count || 0));

I did clone prepared query with subqueries and wont count rows (without sort and limit). If i did not clear limit and offset, i get incorrect count.

@Fi1osof OK, fair enough, for cloned knex instances it makes sense. Can you at least split test in two as was requested during code review? It doesn't require elaborate English or testing skills, just do something along the lines of
it('clear limits', function() {
    testsql(
      qb()
        .select('*')
        .from('users')
        .offset(5)
        .limit(10)
        .clearLimit()
      {
// update code below so that they still have offset
        mysql: {
          sql: 'select * from `users`',
        },
        mssql: {
          sql: 'select * from [users]',
        },
        pg: {
          sql: 'select * from "users"',
        },
        'pg-redshift': {
          sql: 'select * from "users"',
        },
      }
    );
  });

and then same for offsets.
I could write documentation myself then.

Was this PR near the "finish line" ;-) ?


[pkg/logs] Move decoder, metrics, pb, processor and tag to internal

What does this PR do?

Move decoder, metrics, pb, processor and tag to internal.
Motivation
Reduce public API surface to make it easier to modularize Datadog Agent codebase. See here for explanation of internal packages.
Additional Notes

No-op, detected by this WIP tool.
It also suggested the following things that can be made internal to pkg/logs:

All mock packages (I didn't move this since it was weird to e.g. have pipeline and internal/pipeline/mock), but maybe it makes sense to make a internal/mocks package?
client/tcp is only used inside pkg/logs, while client/http is used extensively outside the folder. Also food for thought in case a refactor here makes sense?

Possible Drawbacks / Trade-offs

None: it can be reverted if needed. However, if you know that you want any of these packages to be part of the public API of your folder, maybe it doesn't make sense to merge (all of) this.
Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the config template has been updated.

@djmitche This is similar to #11030, but this time for pkg/logs. I was hoping you could have a look and see if moving these folders  to internal makes sense? There are also a couple other package-level refactor that could be done (see description), if any of those make sense I can do them in a separate PR.


Making axis sticky for large charts

Is there a way to make the axis stick while scrolling? Much like freeze panes in excel. I have a scatter plot that contains a wide range of data and after scrolling, i'm not able to see the axis values.

That's a very interesting idea! I don't think this is a feature that is likely to be addressed from within the library itself, but I think you could easily do it yourself! In particular you could do this by creating two charts: one on top of the other (with the top one having higher z-index as well as position absolute and pointer-events none). Then use normal overflow methods to scroll the bottom one.
If you make a demo of this you should file a PR to add it to the showcases, that's a wonderful idea.


[HUDI-5476] Fix utilities test failure with zookeeper

Change Logs
Fix test failures with zookeeper
2022-12-26T15:57:30.3678486Z 688759 [Listener at localhost/44497] WARN  org.apache.spark.sql.SparkSession$Builder [] - Using an existing SparkSession; some configuration may not take effect.
2022-12-26T15:57:30.3707697Z 688762 [Listener at localhost/44497] WARN  org.apache.zookeeper.jmx.MBeanRegistry [] - Failed to register MBean StandaloneServer_port-1
2022-12-26T15:57:30.3709094Z 688762 [Listener at localhost/44497] WARN  org.apache.zookeeper.server.ZooKeeperServer [] - Failed to register with JMX
2022-12-26T15:57:30.3710335Z javax.management.InstanceAlreadyExistsException: org.apache.ZooKeeperService:name0=StandaloneServer_port-1
2022-12-26T15:57:30.3713343Z 	at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437) ~[?:1.8.0_352]
2022-12-26T15:57:30.3715111Z 	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898) ~[?:1.8.0_352]
2022-12-26T15:57:30.3717015Z 	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966) ~[?:1.8.0_352]
2022-12-26T15:57:30.3718449Z 	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900) ~[?:1.8.0_352]
2022-12-26T15:57:30.3719939Z 	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324) ~[?:1.8.0_352]
2022-12-26T15:57:30.3721139Z 	at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522) ~[?:1.8.0_352]
2022-12-26T15:57:30.3722687Z 	at org.apache.zookeeper.jmx.MBeanRegistry.register(MBeanRegistry.java:96) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
2022-12-26T15:57:30.3724109Z 	at org.apache.zookeeper.server.ZooKeeperServer.registerJMX(ZooKeeperServer.java:377) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
2022-12-26T15:57:30.3725509Z 	at org.apache.zookeeper.server.ZooKeeperServer.startup(ZooKeeperServer.java:410) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
2022-12-26T15:57:30.3726965Z 	at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:123) ~[zookeeper-3.4.6.jar:3.4.6-1569965]

Impact
NA
Risk level
None.
Documentation Update
NA
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed


Update e2e test flow so cluster ip pool is not required

no issue
Update e2e test flow so cluster ip pool is not required
Ran local e2e tests
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/ok-to-test

/ok-to-test


Switch to golang modules

Pls consider switching to golang modules. It will only take a few minutes.

Are you running into a compilation issue?

Go modules is the standard golang way for managing dependencies now.

"if it ain't broke..."
Not sure what actually improves this project by switching, I know it's the new (over one year old) hot stuff... but deps does still work.

Yes you are right but if it works it takes 5 minutes to switch. You can give it a try.

I've tried a few months ago but gave up because it was super tedious. The conversion was taking up way too much of my time.
I'm not 100% convinced that moving to Go modules is needed for a project like this as dep does a good job vendoring for source compatibility.

I moved to Go modules. I don't recommend telling people that it'll only a few minutes though.


fix a typo of JSQMessagesTimestampFormatterTests.m

Pull request checklist

[✔ ] All tests pass. Demo project builds and runs.
[✔ ] I have resolved any merge conflicts.
[✔ ] I have squashed my commits into 1 commit.
[✔ ] I have followed the coding style, and reviewed the contributing guidelines. Confirmation: Kenny.W.Zhang

What's in this pull request?

fix a typo of JSQMessagesTimestampFormatterTests.m
remove one line unused code of JSQMessagesViewController.m

thanks @KennyWZhang ! :smile:


Unifying clear function

Part of https://github.com/microsoft/Power-Fx/issues/1550.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.


New author page should exist

Scenario
When a user visits the new author page
Then the page should be available at the new_author_path route and should render without errors
Hints
Currently, the application contains a single route (at /, see config/routes.rb), a view (app/views/home/index.html.erb) and a controller (app/controllers/home_controller.rb), connecting them.
All available application routes are displayed using the command rails routes.
Before implementing the requested feature, write a test for it. The file spec/features/author/new_author_spec.rb contains the needed test case, it needs to be un-commented.
The describe block defines which aspect will be tested. Specifying the feature type includes helper methods for simulating browser actions in tests. Each it block is a single test case. The test tries to access the path (i.e. the URL) of the "new author" page. This fails because no such path is defined yet.
Run the test (bundle exec rspec) and commit the failing test case.
To make the test pass, see the Rails Guide for creating the appropriate controllers, views and setting up routes for authors. Note: Instead of articles (in the guide), this exercise is concerned with authors.
You can learn more about RSpec, the testing framework here.
Error

Got NameError: undefined local variable or method `new_author_path' for #RSpec::ExampleGroups::NewAuthorPage:0x00005607a3009aa0
Did you mean?  new_polymorphic_path

1 exercise tests have passed. There are 44 in total. You will solve multiple at once towards the end.

Sorry, it's not working for me yet:
Scenario
When a user visits the new author page
Then the page should be available at the new_author_path route and should render without errors
Error

Got NameError: undefined local variable or method `new_author_path' for #RSpec::ExampleGroups::NewAuthorPage:0x000055c648a0a6e0
Did you mean?  new_polymorphic_path

If you have problems solving this task, please don't hesitate to contact the teaching team!

Sorry, it's not working for me yet:
Scenario
When a user visits the new author page
Then the page should be available at the new_author_path route and should render without errors
Error

Got NameError: undefined local variable or method `new_author_path' for #RSpec::ExampleGroups::NewAuthorPage:0x00007f92f826ad30
Did you mean?  new_polymorphic_path

If you have problems solving this task, please don't hesitate to contact the teaching team!

Sorry, it's not working for me yet:
Scenario
When a user visits the new author page
Then the page should be available at the new_author_path route and should render without errors
Error

Got NameError: undefined local variable or method `new_author_path' for #RSpec::ExampleGroups::NewAuthorPage:0x00007f779c2585f8
Did you mean?  new_polymorphic_path

If you have problems solving this task, please don't hesitate to contact the teaching team!


files not found

There is two terraform commands in deploy.sh script as terraform plan -out tfout.plan terraform apply tfout.plan. But there are no tfout.plan file found in the repo, is it a typo or file is missed?

@icecreamsandwich
Once you run the first command terraform plan -out tfout.plan , it will create the tfout.plan
And you can use the generated file in the next command: terraform apply tfout.plan
You may use any name for that file and not necessarily to be named as tfout.plan.
Of course you can directly run terraform apply instead of these 2 commands. But the best practice is to follow the two steps method: output the plan first and then apply it.

Oh, now I got it. Thanks, @pubudusj  for the reply. will try this. BTW This ALB can be deployed before any application to manage the load right?

@icecreamsandwich You may add other target groups (ex: ec2s) to the ALB created. Initial set up is to use Lambda as the target.


Function testing enhancements

Enable facts to be available in function testing
Fix hiera_config to be reconfigurable during function testing
Fix whitespace issues introduced in previous commits

Coverage increased (+0.06%) to 92.076% when pulling ff792f9103c74ad21047f879a28f24b2a85beeb2 on seanmil:function_fixes into 9c82100bedf597ac4cee604b4a601395185d4f2d on rodjek:master.

Coverage increased (+0.06%) to 92.076% when pulling 9cd57a5dae0d6ed7e8b21993e80a219e951c500c on seanmil:function_fixes into 9c82100bedf597ac4cee604b4a601395185d4f2d on rodjek:master.


Cannot read property 'sourceDir' of undefined

I am filing a bug.

OS. Mac OSX El Capitan.

Versions:

angular-cli: 0.0.37
node: 5.1.0
os: darwin x64

Repro steps:
Just run ng serve

Error logs:

 Cannot read property 'sourceDir' of undefined
TypeError: Cannot read property 'sourceDir' of undefined
    at new Angular2App (/Users/ruwhan/Projects/dfci/test-portal/node_modules/angular-cli/lib/broccoli/angular2-app.js:30:40)
    at module.exports (/Users/ruwhan/Projects/dfci/test-portal/angular-cli-build.js:6:10)
    at Class.module.exports.Task.extend.setupBroccoliBuilder (/Users/ruwhan/Projects/dfci/test-portal/node_modules/angular-cli/lib/models/builder.js:55:19)
    at Class.module.exports.Task.extend.init (/Users/ruwhan/Projects/dfci/test-portal/node_modules/angular-cli/lib/models/builder.js:89:10)
    at new Class (/Users/ruwhan/Projects/dfci/test-portal/node_modules/core-object/core-object.js:18:12)
    at Class.module.exports.Task.extend.run (/Users/ruwhan/Projects/dfci/test-portal/node_modules/angular-cli/lib/tasks/serve.js:15:19)
    at /Users/ruwhan/Projects/dfci/test-portal/node_modules/angular-cli/lib/commands/serve.js:64:24
    at lib$rsvp$$internal$$tryCatch (/Users/ruwhan/Projects/dfci/test-portal/node_modules/rsvp/dist/rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (/Users/ruwhan/Projects/dfci/test-portal/node_modules/rsvp/dist/rsvp.js:1048:17)
    at /Users/ruwhan/Projects/dfci/test-portal/node_modules/rsvp/dist/rsvp.js:331:11
    at lib$rsvp$asap$$flush (/Users/ruwhan/Projects/dfci/test-portal/node_modules/rsvp/dist/rsvp.js:1198:9)
    at doNTCallback0 (node.js:430:9)
    at process._tickCallback (node.js:359:13)

I ran into this earlier today
https://github.com/angular/angular-cli/issues/616
Found the fixes for it.

Your angular-cli-build.js should pass an object as option to Angular2App. That object can be empty, but normally should include a vendorNpmFiles because we don't provide one for you anymore.
I'll leave this open as an issue that if no options object is passed in we should at least fail properly.

I think it is a bit confusing, from the docs seems that
ng new project
cd project
ng serve

should just run

I have the same issue also
I use win 10
64bit

@AhmedAlgonsel change angular-cli.json to be like:
{
"routes": [],
"defaults": {
"sourceDir": "src/client"
}
}
Kind regards

i am facing same problem did all what is mentioned above but not resolved.

I've create the file angular-cli.json to be like:
{
"routes": [],
"defaults": {
"sourceDir": "src"
}
}
And after that, I was able to run "ng serve", but this is not a fix. It is a workaround!
The issue is still present in<EMAIL_ADDRESS>I suggest to re-open this issue until we fix the underling issue.


Broken android build

Flutter 3.24.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 603104015d (3 weeks ago) • 2024-10-24 08:01:25 -0700
Engine • revision db49896cf2
Tools • Dart 3.5.4 • DevTools 2.37.3

build_runner 2.4.13
|-- frontend_server_client 4.0.0 (trans)

[+19003 ms] [+20522 ms] Unhandled exception:
[   +1 ms]             Null check operator used on a null value
[        ]             #0      SummaryCollector.visitFunctionExpression (package:vm/transformations/type_flow/summary_collector.dart:1763)
[        ]             dart-lang/webdev#1      FunctionExpression.accept (package:kernel/ast.dart:8588)
[        ]             dart-lang/webdev#2      SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:975)
[        ]             dart-lang/webdev#3      SummaryCollector._visitArguments (package:vm/transformations/type_flow/summary_collector.dart:1001)
[        ]             dart-lang/webdev#4      SummaryCollector.visitConstructorInvocation (package:vm/transformations/type_flow/summary_collector.dart:1756)
[        ]             dart-lang/webdev#5      ConstructorInvocation.accept (package:kernel/ast.dart:6666)
[        ]             dart-lang/webdev#6      SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:975)
[        ]             dart-lang/webdev#7      SummaryCollector._visitArguments (package:vm/transformations/type_flow/summary_collector.dart:1001)
[        ]             dart-lang/webdev#8      SummaryCollector.visitConstructorInvocation (package:vm/transformations/type_flow/summary_collector.dart:1756)
[        ]             dart-lang/webdev#9      ConstructorInvocation.accept (package:kernel/ast.dart:6666)
[        ]             dart-lang/webdev#10     SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:975)
[        ]             dart-lang/webdev#11     SummaryCollector.visitReturnStatement (package:vm/transformations/type_flow/summary_collector.dart:2430)
[        ]             dart-lang/webdev#12     ReturnStatement.accept (package:kernel/ast.dart:10140)
[        ]             dart-lang/webdev#13     SummaryCollector._visitWithoutResult (package:vm/transformations/type_flow/summary_collector.dart:978)
[        ]             dart-lang/webdev#14     List.forEach (dart:core-patch/growable_array.dart:417)
[        ]             dart-lang/webdev#15     SummaryCollector.visitBlock (package:vm/transformations/type_flow/summary_collector.dart:2273)
[        ]             dart-lang/webdev#16     Block.accept (package:kernel/ast.dart:9181)
[        ]             dart-lang/webdev#17     SummaryCollector._visitWithoutResult (package:vm/transformations/type_flow/summary_collector.dart:978)
[        ]             dart-lang/webdev#18     SummaryCollector.createSummary (package:vm/transformations/type_flow/summary_collector.dart:838)
[        ]             dart-lang/webdev#19     TypeFlowAnalysis.getSummary (package:vm/transformations/type_flow/analysis.dart:1912)
[        ]             dart-lang/webdev#20     _DirectInvocation._processFunction (package:vm/transformations/type_flow/analysis.dart:399)
[        ]             dart-lang/webdev#21     _DirectInvocation.process (package:vm/transformations/type_flow/analysis.dart:288)
[        ]             dart-lang/webdev#22     _WorkList.processInvocation (package:vm/transformations/type_flow/analysis.dart:1793)
[        ]             dart-lang/webdev#23     _WorkList.process (package:vm/transformations/type_flow/analysis.dart:1736)
[        ]             dart-lang/webdev#24     TypeFlowAnalysis.process (package:vm/transformations/type_flow/analysis.dart:1941)
[        ]             dart-lang/webdev#25     transformComponent (package:vm/transformations/type_flow/transformer.dart:123)
[        ]             dart-lang/webdev#26     runGlobalTransformations (package:vm/kernel_front_end.dart:632)
[        ]             dart-lang/webdev#27     compileToKernel (package:vm/kernel_front_end.dart:544)
[        ]             <asynchronous suspension>
[        ]             dart-lang/webdev#28     FrontendCompiler.compile (package:frontend_server/frontend_server.dart:660)
[        ]             <asynchronous suspension>
[        ]             dart-lang/webdev#29     starter (package:frontend_server/starter.dart:109)
[        ]             <asynchronous suspension>
[        ]             dart-lang/webdev#30     main (file:///C:/b/s/w/ir/x/w/sdk/pkg/frontend_server/bin/frontend_server_starter.dart:13)
[        ]             <asynchronous suspension>
[  +82 ms] [  +86 ms] Persisting file store
[        ] [   +1 ms] Done persisting file store
[        ] [   +1 ms] Target kernel_snapshot_program failed: Exception
[        ]            #0      KernelSnapshotProgram.build (package:flutter_tools/src/build_system/targets/common.dart:276:7)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#1      _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:875:9)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#2      Future.wait.<anonymous closure> (dart:async/future.dart:534:21)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#3      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:813:32)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#4      Future.wait.<anonymous closure> (dart:async/future.dart:534:21)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#5      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:813:32)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#6      Future.wait.<anonymous closure> (dart:async/future.dart:534:21)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#7      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:813:32)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#8      Future.wait.<anonymous closure> (dart:async/future.dart:534:21)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#9      _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:813:32)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#10     Future.wait.<anonymous closure> (dart:async/future.dart:534:21)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#11     _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:813:32)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#12     Future.wait.<anonymous closure> (dart:async/future.dart:534:21)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#13     _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:813:32)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#14     FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:635:16)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#15     AssembleCommand.runCommand (package:flutter_tools/src/commands/assemble.dart:328:32)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#16     FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1408:27)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#17     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#18     CommandRunner.runCommand (package:args/command_runner.dart:212:13)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#19     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:420:9)
[        ]            <asynchronous suspension>
[ +180 ms]            dart-lang/webdev#20     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#21     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:5)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#22     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#23     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#24     main (package:flutter_tools/executable.dart:93:3)
[        ]            <asynchronous suspension>
[        ] [  +31 ms]
[        ]            #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
[        ]            dart-lang/webdev#1      AssembleCommand.runCommand (package:flutter_tools/src/commands/assemble.dart:345:7)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#2      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1408:27)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#3      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#4      CommandRunner.runCommand (package:args/command_runner.dart:212:13)
[        ]            <asynchronous suspension>
[        ] [   +7 ms] "flutter assemble" took 20,843ms.
[        ] [  +82 ms] ensureAnalyticsSent: 80ms
[        ] [        ] Running 1 shutdown hook
[        ] [        ] Shutdown hooks complete
[        ] [   +1 ms] exiting with code 1
[        ] Invalidating in-memory cache of xxxxxx
[        ] > Task :app:compileFlutterBuildRelease FAILED
[        ]            dart-lang/webdev#5      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:420:9)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#6      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#7      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:5)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#8      run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#9      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
[        ]            <asynchronous suspension>
[        ]            dart-lang/webdev#10     main (package:flutter_tools/executable.dart:93:3)
[        ]            <asynchronous suspension>
[        ] FAILURE: Build failed with an exception.
[        ] * What went wrong:
[ +119 ms] Execution failed for task ':app:compileFlutterBuildRelease'.
[        ] > Process 'command 'C:\Users\no\fvm\default\bin\flutter.bat'' finished with non-zero exit value 1
[        ] * Try:
[        ] > Run with --debug option to get more log output.
[        ] > Run with --scan to get full insights.
[        ] * Exception is:
[        ] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileFlutterBuildRelease'.
[        ]      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)
[        ]      at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
[        ]      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140)
[        ]      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
[        ]      at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
[        ] :app:compileFlutterBuildRelease (Thread[Execution worker Thread 29,5,main]) completed. Took 21.211 secs.
[        ]      at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
[        ]      at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
[        ]      at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
[        ]      at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
[        ]      at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
[        ]      at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
[        ]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
[  +88 ms]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
[        ]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
[        ]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
[        ]      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)
[        ]      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)
[        ]      at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
[        ]      at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
[        ]      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[        ]      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[        ]      at java.base/java.lang.Thread.run(Thread.java:840)
[        ] Caused by: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\nope\fvm\default\bin\flutter.bat'' finished with non-zero exit value 1
[        ]      at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:415)
[        ]      at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:38)
[        ]      at org.gradle.process.internal.DefaultExecActionFactory.exec(DefaultExecActionFactory.java:202)
[        ]      at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1171)
[        ]      at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1166)
[        ]      at org.gradle.api.Project$exec$10.call(Unknown Source)
[        ]      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
[        ]      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
[        ]      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
[        ]      at org.gradle.internal.classpath.Instrumented$ExecCallSite.call(Instrumented.java:740)
[        ]      at BaseFlutterTask.buildBundle(flutter.groovy:1687)
[        ]      at BaseFlutterTask$buildBundle.callCurrent(Unknown Source)
[        ]      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
[        ]      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
[        ]      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:176)
[        ]      at FlutterTask.build(flutter.groovy:1825)
[        ]      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[        ]      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[        ]      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[        ]      at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[        ]      at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
[        ]      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
[        ]      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
[   +5 ms]      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
[        ]      at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
[        ]      at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221)
[        ]      at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:204)
[        ]      at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:187)
[        ]      at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:165)
[        ]      at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
[        ]      at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
[        ]      at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
[        ]      at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[        ]      at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
[        ]      at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
[        ]      at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
[        ]      at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
[        ]      at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
[ +131 ms]      at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
[        ]      at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
[        ]      at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
[        ]      at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
[        ]      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:124)
[        ]      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:80)
[        ]      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58)
[        ]      at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
[        ]      at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
[        ]      at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:181)
[        ]      at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:71)
[        ]      at org.gradle.internal.Either$Right.fold(Either.java:175)
[        ]      at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
[        ]      at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:69)
[        ]      at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)
[        ]      at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
[        ]      at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
[        ]      at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
[        ]      at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
[        ]      at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110)
[        ]      at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)
[        ]      at java.base/java.util.Optional.orElseGet(Optional.java:364)
[        ]      at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)
[        ]      at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
[        ]      at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)
[        ]      at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
[        ]      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
[        ]      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
[        ]      at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)
[        ]      at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
[        ]      at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
[        ]      at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
[        ]      at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)
[        ]      at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)
[        ]      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:254)
[        ]      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:91)
[        ]      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:56)
[        ]      at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
[        ]      at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
[        ]      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
[        ]      at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)
[        ]      at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)
[        ]      at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
[        ]      at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:281)
[        ]      at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
[        ]      at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
[        ]      at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
[        ]      at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
[        ]      at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
[        ]      at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
[        ]      at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
[        ]      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:139)
[        ]      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
[        ]      at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
[        ]      at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
[        ]      at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
[        ]      at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
[        ]      at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
[  +32 ms]      at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[        ]      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[        ]      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
[        ]      at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
[        ]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
[        ]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
[        ]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
[        ]      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
[        ]      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)
[        ]      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)
[        ]      at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
[        ]      at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
[        ]      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[        ]      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[        ]      at java.base/java.lang.Thread.run(Thread.java:840)
[        ] * Get more help at https://help.gradle.org
[        ] BUILD FAILED in 36s
[        ] 453 actionable tasks: 1 executed, 452 up-to-date
[        ] Watched directory hierarchies: [C:\Users\nada\fvm\default\packages\flutter_tools\gradle]
[ +544 ms] Running Gradle task 'assembleRelease'... (completed in 37.2s)
[  +23 ms] "flutter apk" took 38,811ms.
[  +21 ms] Gradle task assembleRelease failed with exit code 1
[        ]
           #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
           dart-lang/webdev#1      AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:500:9)
           <asynchronous suspension>
           dart-lang/webdev#2      AndroidGradleBuilder.buildApk (package:flutter_tools/src/android/gradle.dart:224:5)
           <asynchronous suspension>
           dart-lang/webdev#3      BuildApkCommand.runCommand (package:flutter_tools/src/commands/build_apk.dart:141:5)
           <asynchronous suspension>
           dart-lang/webdev#4      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1408:27)
           <asynchronous suspension>
           dart-lang/webdev#5      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
           <asynchronous suspension>
           dart-lang/webdev#6      CommandRunner.runCommand (package:args/command_runner.dart:212:13)
           <asynchronous suspension>
           dart-lang/webdev#7      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:420:9)
           <asynchronous suspension>
           dart-lang/webdev#8      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
           <asynchronous suspension>
           dart-lang/webdev#9      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:5)
           <asynchronous suspension>
           dart-lang/webdev#10     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)
           <asynchronous suspension>
           dart-lang/webdev#11     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
           <asynchronous suspension>
           dart-lang/webdev#12     main (package:flutter_tools/executable.dart:93:3)
           <asynchronous suspension>

@jensjoha Can you determine where this problem comes from?

So looking briefly at the code my guess is that something like this is happening:

It starts creating summary for a member (TypeFlowAnalysis.getSummary (package:vm/transformations/type_flow/analysis.dart:1912) -> SummaryCollector.createSummary (package:vm/transformations/type_flow/summary_collector.dart:838)). This sets _enclosingMember to a non-null value.
When visiting it sees a ConstantExpression and goes to SummaryCollector.visitConstantExpression.
This calls into ConstantAllocationCollector.typeFor which visits and lands in ConstantAllocationCollector.visitRecordConstant or ConstantAllocationCollector.visitInstanceConstant both of which calls addFieldUsedInConstant (which I assume is TypeFlowAnalysis.addFieldUsedInConstant).
This calls TypeFlowAnalysis.getFieldValue which, if field.isCovariantByClass, calls summaryCollector.createSummary on the field.
This then sets _enclosingMember to the field, overwriting the previous member, does its thing and sets _enclosingMember to null.
Back at the original member visit we reach SummaryCollector.visitFunctionExpression (package:vm/transformations/type_flow/summary_collector.dart:1763) which does _enclosingMember!, but as _enclosingMember on the recursive call was set to null it crashes.

All in all I'd say it's a VM issue, not a CFE one.
/cc @alexmarkov who seems to have done a lot with these files.

Thank you, @jensjoha ! SummaryCollector.createSummary is not re-enterable and if that happens, this is definitely a bug and can cause this crash.
However, I'm struggling to create a repro for this bug. As far as I understand, fields used in constants should be final and cannot be isCovariantByClass. Could you help me with this last bit?

I don't know. It seems that it shouldn't be possible to have isCovariantByClass be true in a constant. Maybe it is anyway, or maybe there's another re-enterable way around. Or something else is weird.
It will be interesting if the new throw on _enclosingMember != null will turn up something.

@cyberpwnn Can you provide a sample which can be used to reproduce the crash?

@johnniwinther to the rescue on this one, being able to easily create a field in a constant marked as isCovariantByClass.
abstract class A<T> {
  T get field;
  void set field(T value);
}

class C<T> implements A<T> {
  @override
  final T field;

  const C(this.field);

  @override
  set field(value) => throw '';
}

const c = C<String>('');

void main() {
  print(c);
}

which - with some instrumentation to print some nice stuff - gives this:
Setting _staticTypeContext to non-null... It's already Instance of 'StaticTypeContextImpl'
Overwriting an already set _staticTypeContext
Previous set via:
#0      SummaryCollector.createSummary (package:vm/transformations/type_flow/summary_collector.dart:648:40)
#1      TypeFlowAnalysis.getSummary (package:vm/transformations/type_flow/analysis.dart:1920:36)
#2      _DirectInvocation._processFunction (package:vm/transformations/type_flow/analysis.dart:399:40)
#3      _DirectInvocation.process (package:vm/transformations/type_flow/analysis.dart:288:14)
#4      _WorkList.processInvocation (package:vm/transformations/type_flow/analysis.dart:1793:27)
#5      _WorkList.process (package:vm/transformations/type_flow/analysis.dart:1736:7)
#6      TypeFlowAnalysis.process (package:vm/transformations/type_flow/analysis.dart:1947:14)
#7      transformComponent (package:vm/transformations/type_flow/transformer.dart:122:20)
#8      runGlobalTransformations (package:vm/kernel_front_end.dart:640:20)
#9      compileToKernel (package:vm/kernel_front_end.dart:551:11)
<asynchronous suspension>
#10     runCompiler (package:vm/kernel_front_end.dart:339:19)
<asynchronous suspension>
#11     main (pkg/vm/bin/gen_kernel.dart:34:19)
<asynchronous suspension>

Currently at:
#0      SummaryCollector.createSummary (package:vm/transformations/type_flow/summary_collector.dart:645:24)
#1      TypeFlowAnalysis.getFieldValue (package:vm/transformations/type_flow/analysis.dart:1937:45)
#2      TypeFlowAnalysis.addFieldUsedInConstant (package:vm/transformations/type_flow/analysis.dart:2096:24)
#3      ConstantAllocationCollector.visitInstanceConstant.<anonymous closure> (package:vm/transformations/type_flow/summary_collector.dart:2956:45)
#4      _LinkedHashMapMixin.forEach (dart:_compact_hash:726:13)
#5      ConstantAllocationCollector.visitInstanceConstant (package:vm/transformations/type_flow/summary_collector.dart:2955:26)
#6      InstanceConstant.accept (package:kernel/src/ast/constants.dart:681:42)
#7      ConstantAllocationCollector.typeFor.<anonymous closure> (package:vm/transformations/type_flow/summary_collector.dart:2846:59)
#8      _LinkedHashMapMixin.putIfAbsent (dart:_compact_hash:636:23)
#9      ConstantAllocationCollector.typeFor (package:vm/transformations/type_flow/summary_collector.dart:2846:22)
#10     SummaryCollector.visitConstantExpression (package:vm/transformations/type_flow/summary_collector.dart:2626:40)
#11     ConstantExpression.accept (package:kernel/src/ast/expressions.dart:4657:44)
#12     SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:987:44)
#13     SummaryCollector._visitArguments (package:vm/transformations/type_flow/summary_collector.dart:1005:16)
#14     SummaryCollector.visitStaticInvocation (package:vm/transformations/type_flow/summary_collector.dart:2146:18)
#15     StaticInvocation.accept (package:kernel/src/ast/expressions.dart:2603:44)
#16     SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:987:44)
#17     SummaryCollector.visitExpressionStatement (package:vm/transformations/type_flow/summary_collector.dart:2312:5)
#18     ExpressionStatement.accept (package:kernel/src/ast/statements.dart:50:43)
#19     SummaryCollector._visitWithoutResult (package:vm/transformations/type_flow/summary_collector.dart:990:10)
#20     List.forEach (dart:core-patch/growable_array.dart:417:8)
#21     SummaryCollector.visitBlock (package:vm/transformations/type_flow/summary_collector.dart:2263:21)
#22     Block.accept (package:kernel/src/ast/statements.dart:103:43)
#23     SummaryCollector._visitWithoutResult (package:vm/transformations/type_flow/summary_collector.dart:990:10)
#24     SummaryCollector.createSummary (package:vm/transformations/type_flow/summary_collector.dart:848:9)
#25     TypeFlowAnalysis.getSummary (package:vm/transformations/type_flow/analysis.dart:1920:36)
#26     _DirectInvocation._processFunction (package:vm/transformations/type_flow/analysis.dart:399:40)
#27     _DirectInvocation.process (package:vm/transformations/type_flow/analysis.dart:288:14)
#28     _WorkList.processInvocation (package:vm/transformations/type_flow/analysis.dart:1793:27)
#29     _WorkList.process (package:vm/transformations/type_flow/analysis.dart:1736:7)
#30     TypeFlowAnalysis.process (package:vm/transformations/type_flow/analysis.dart:1947:14)
#31     transformComponent (package:vm/transformations/type_flow/transformer.dart:122:20)
#32     runGlobalTransformations (package:vm/kernel_front_end.dart:640:20)
#33     compileToKernel (package:vm/kernel_front_end.dart:551:11)
<asynchronous suspension>
#34     runCompiler (package:vm/kernel_front_end.dart:339:19)
<asynchronous suspension>
#35     main (pkg/vm/bin/gen_kernel.dart:34:19)
<asynchronous suspension>

Setting _staticTypeContext to null
Unhandled exception:
Null check operator used on a null value
#0      SummaryCollector._staticDartType (package:vm/transformations/type_flow/summary_collector.dart:1412:44)
#1      SummaryCollector._makeCall (package:vm/transformations/type_flow/summary_collector.dart:1298:30)
#2      SummaryCollector.visitStaticInvocation (package:vm/transformations/type_flow/summary_collector.dart:2162:23)
#3      StaticInvocation.accept (package:kernel/src/ast/expressions.dart:2603:44)
#4      SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:987:44)
#5      SummaryCollector.visitExpressionStatement (package:vm/transformations/type_flow/summary_collector.dart:2312:5)
#6      ExpressionStatement.accept (package:kernel/src/ast/statements.dart:50:43)
#7      SummaryCollector._visitWithoutResult (package:vm/transformations/type_flow/summary_collector.dart:990:10)
#8      List.forEach (dart:core-patch/growable_array.dart:417:8)
#9      SummaryCollector.visitBlock (package:vm/transformations/type_flow/summary_collector.dart:2263:21)
#10     Block.accept (package:kernel/src/ast/statements.dart:103:43)
#11     SummaryCollector._visitWithoutResult (package:vm/transformations/type_flow/summary_collector.dart:990:10)
#12     SummaryCollector.createSummary (package:vm/transformations/type_flow/summary_collector.dart:848:9)
#13     TypeFlowAnalysis.getSummary (package:vm/transformations/type_flow/analysis.dart:1920:36)
#14     _DirectInvocation._processFunction (package:vm/transformations/type_flow/analysis.dart:399:40)
#15     _DirectInvocation.process (package:vm/transformations/type_flow/analysis.dart:288:14)
#16     _WorkList.processInvocation (package:vm/transformations/type_flow/analysis.dart:1793:27)
#17     _WorkList.process (package:vm/transformations/type_flow/analysis.dart:1736:7)
#18     TypeFlowAnalysis.process (package:vm/transformations/type_flow/analysis.dart:1947:14)
#19     transformComponent (package:vm/transformations/type_flow/transformer.dart:122:20)
#20     runGlobalTransformations (package:vm/kernel_front_end.dart:640:20)
#21     compileToKernel (package:vm/kernel_front_end.dart:551:11)
<asynchronous suspension>
#22     runCompiler (package:vm/kernel_front_end.dart:339:19)
<asynchronous suspension>
#23     main (pkg/vm/bin/gen_kernel.dart:34:19)
<asynchronous suspension>

which - via visitInstanceConstant - works as described in https://github.com/dart-lang/sdk/issues/57084#issuecomment-2475783480 (except that it crashes on _staticTypeContext! instead).
Changing the main to
void main() {
  c;
  () {
    print(c);
  }();
}

we crash at the in visitFunctionExpression on _enclosingMember!.