☂ Bring Material 3 to Flutter

Material 3, also known as "Material You", is the next generation of Material Design. The major changes include:

updates to many components (colors, text styles and shapes, etc.)
color system improvements
typography improvements
elevation refinements

This issue tracks the progress and status of adding Material 3 support to the Flutter material library. Although that work is now largely done, there are still some pending updates which you'll find in the Remaining Work section below.
Opt-in for now, becoming the default in the next stable release
The Material 3 changes are opt-in for now however in the next release Material 3 will be the default. Support for Material 2 will continue to be available for at least a year after Material 3 becomes the default. To opt-in to Material 3 use the new useMaterial3 ThemeData flag n your app:
  return MaterialApp(
    theme: ThemeData(useMaterial3: true),
    // ...
  );

Note
See the API docs for [useMaterial3] for the comprehensive list of changes.

Updates available in Flutter 3.10:
Check out the updates to components, color, typography, and elevation in the new Material 3 sample app.

Components
The following components have been updated to Material 3 colors, text styles and shapes generated from the Material 3 token database:

[x]  #99022
[x]  #94486
[x] #103528
[x]  #99023
[x] #99024
[x]  #99025
[x]  #88888
[x]  #99171
[x]  #92093
[x] #102684
[x] #114032
[x] #103530
[x] #107382
[x] #103529
[x] #110537
[x] #112169
[x] #101017
[x] #115005
[x] #111449
[x] #111450
[x] #111451
[x] #114091
[x] #103536
[x] #103537
[x] #105594
[x] #114811
[x] #104961
[x] #110624
[x] #111448
[x] #101481
[x] #114006
[x] #119627
[x] #111962
[x] #103551
[x] #117483
[x] #101480

Color

[x]  #89852
[x]  #93463
[x]  #91607
[x] #108948
[x] Dynamic color / Material You support available in the dynamic_color package
[x] #119333

Typography / Iconography

[x]  #89853
[x]  #97829
[x]  #101900
[x] Roboto Flex / Roboto Serif / Noto: While not part of the Flutter library, these font families are supported through the google_fonts package

Android features

[x]  #87839
[x]  #100234
[x]  #82850
[x]  #99783
[x]  #99884

Documentation / Dev experience

[x] #93434
[x] https://github.com/material-foundation/material-theme-builder/issues/50
[x] #101048
[x] #111118

Remaining work
Components

[ ] #23600 (a11y testing left to do)
[ ] #119328
[ ] #126069

Typography / Iconography

[ ] #102560

iOS features

[x] #94821

Documentation / Dev experience

[ ] #127064
[ ] #119319
[ ] #91772
[x] https://github.com/flutter/website/issues/8586
[x] https://github.com/flutter/flutter/issues/127216

Accessibility

[ ] #116595
[ ] #120425

Motion

[ ] #116525
[ ] #116526

Hey @TahaTesser, yeah that is one of the variations of app bar now. We should create an issue for it, I can do that

FWIW, the main reason to not have material be its own package is that we want the out-of-box experience to be quick. That is, people should be able to download Flutter, and immediately start writing an app with pretty buttons.

This could easily be solved by adding the new material library package to the pubspec.yaml file of the flutter template for new projects

That ends up being tricky for various reasons, e.g. we would have to pin the dependency which means now you can't upgrade the package without upgrading Flutter. (We have to pin all our internal dependencies, so we try to minimize how many packages we depend on.)
But yes, that's one approach we've discussed in the past.

But having material as a dependency in the pubspec template isn't really a flutter dependency. As its only part of a template that is being genrated when a new project is generated just like "cupertino_icons" which is added aswell
Besides that also I still don't see, how
"having an easier start (not needing to add material to pubpec)"
outweighs
"having a very hard time throughout the whole development process by fighting the inconsistent, fragmented and in general weird library that also has a hard time being up to date with modern styling because of backwards compatibility"

But having material as a dependency in the pubspec template isn't really a flutter dependency. As its only part of a template that is being genrated when a new project is generated just like "cupertino_icons" which is added aswell
Besides that also I still don't see, how
"having an easier start (not needing to add material to pubpec)"
outweighs
"having a very hard time throughout the whole development process by fighting the inconsistent, fragmented and in general weird library that also has a hard time being up to date with modern styling because of backwards compatibility"

And if Flutter were able to use the native libraries, using as a widget and not XML, so the native design libraries would not require any coding to be used in flutter, it is just a dream.

That is, people should be able to download Flutter, and immediately start writing an app with pretty buttons.

Yeah, but Flutter kind of already does that for icons and it works, right? There is uses-material-design: true and cupertino_icons in every app (because of the template) and you don't see people complaining it is hard to add material icons to Flutter because most use the template.

I'm not saying it's a blocker, just that it's one of the things we need to keep in mind.

What would happen if every package imported material2 and you wanted material3? Dependency override? That would be the most common issue.

That's definitely one of the downsides of having a package for material. You'd basically have one ecosystem per material version.

That's definitely one of the downsides of having a package for material. You'd basically have one ecosystem per material version.

We would have this issue for the transition to the package yes, but that could be fixed with "dart fixes"
In the future I think the material package could just release a new major version when material 4 comes out containing breaking changes.

@bernaferrari i liked your idea of renaming current library to material2 and making the material 3 as materail.dart, and you raised a very valid point that most of the developers do not update their apps accordingly, which they should!
@rami-a another thing i wanted to ask is that will the new theming be based on the tokens like color tokens, design tokens as mentioned in specs. e.g. https://m3.material.io/foundations/design-tokens/overview

@rami-a another thing i wanted to ask is that will the new theming be based on the tokens like color tokens, design tokens as mentioned in specs. e.g. https://m3.material.io/foundations/design-tokens/overview

This is a good question. The plan is for us to utilize these design tokens to ensure the components use the correct default values (i.e. default colors, shape, typography). However, theming is not going to change and will continue to be the same system we have in place currently (using ThemeData)

I think a good solution would be to write some sort of code generator, that can generate flutter compliant code based on the abstract tokens specified in a yaml file for example

Additionally, the Material team plans to add Flutter support to this new tool: https://material-foundation.github.io/material-theme-builder/
This will export dart code that sets up a ThemeData object with your chosen color scheme (you can try it out for jetpack compose or Android xml right now)

The way tokens were made (I suppose) is to allow quick theming in JS via the server, in a composable way. ThemeData is not serializable, so it wouldn't be that portable or flexible.

I think so too @bernaferrari
Currently there is a factory to create ThemeData from a colorScheme like this:
ThemeData.from(colorScheme: myColorScheme).copyWith(
    // Do your component specific theming here...
);

In my believe something like this could also be done for the new tokens like so:
ThemeData.from(tokens: myTokens).copyWith(
    // Do your component specific theming here...
);

tokens being something like a Material3Tokens class that can be initialized with JSON

Inconsistencies and redundencies of some API's due to deprecation is more annoying than outright breaking changes up to a point. That is if there are some small breaking changes here and there it is usually worth it for the end dev to work a few hours on that. If the application is still not compiling after days then it's a problem.
Regarding the issue of the fragmented eco system, that will happen with or without external package for material 3. External (unmaintained) packages will be stuck on an incompatible version of flutter.
So the 3 main issues I'm raising:

API awkwardness due to deprecation
A whole rework of the API ( think angularJS vs angular2) is intrusive
Fragmented eco systems in either cases

Have you thought about letting the end dev use multiple version in the same app ? so the app can be divided into parts that can be worked on separately. That would allow the end dev to use "broken" outdated packages, in parts of an application, while the transition is being made. This way flutter could do a 180 a la angular and rework its API with breaking changes.

Does anybody have an ETA for any of this stuff as Android 12 is on the rise, people getting new phones for Christmas, etc?

I think half of these changes are already merged and should be in the next flutter stable (which is hopefully in a few days, Dart 2.15 was just released today). But I don't think there is a hurry, Google is not on a hurry, they made the app theme thing restricted to Pixel (or Android 12L). So we will only see the Android 12 from the ad when Android 13 releases.

Yep, we're making progress on all things M3, stay tuned for more updates as we go along

Hello I have a question about the "Updating all major Material component (button, FAB, chips, dialogs, app bar, etc) default values to use new color scheme, text style, and shapes when opted in to Material 3" Maybe I can create button, chips and others. Do will create new named widgets like you did before. BottomNavigationBar (M2), NavigationBar(M3). Do you have suggestion or rule about the new M3 Major components ?
As I understand. Button, chips, dialogs using 5 different surface color which these are connected to primaryColor with Opacity. But there is an issue about the elevation and opacity, so should we create these normally with opacity and wait for the change the elevation?

Nice

Is it possible to move the material and cupertino packages outside of Flutter?

Components for other platforms are separate from Flutter (fluent, macos_ui, yaru, ...)
You can update packages without updating Flutter

Moving those packages outside flutter would be nice so you don't import a widget from the wrong package by mistake.

@Hixie You can see my proposal to help with migration
for example, MaterialButton will be auto migrated to MaterialButton3 and so on
By letting contributors make extensions or config templates, everyone will be able to migrate his project to M3 and give it a try

Will there be a Standard Navigation drawer as described here https://m3.material.io/components/navigation-drawer/overview

Will there be a Standard Navigation drawer as described here https://m3.material.io/components/navigation-drawer/overview

Are you going to contribute new navigation drawer? I can do it if you won't

Will there be a Standard Navigation drawer as described here https://m3.material.io/components/navigation-drawer/overview

We don't currently have a 'Navigation drawer' per se, but just a bare bones Drawer widget that can be populated with anything. I just opened an issue to track a full featured NavigationDrawer feature: #103551.

Will there be a Standard Navigation drawer as described here https://m3.material.io/components/navigation-drawer/overview

Are you going to contribute new navigation drawer? I can do it if you won't

@MarlonJD I would love to, but I am busy with my academic projects and I will stay busy for at least a month, if you want to start working on it please do otherwise if no one works then i will start working on it a month later

Will there be a Standard Navigation drawer as described here https://m3.material.io/components/navigation-drawer/overview

Are you going to contribute new navigation drawer? I can do it if you won't

@MarlonJD I would love to, but I am busy with my academic projects and I will stay busy for at least a month, if you want to start working on it please do otherwise if no one works then i will start working on it a month later

Okay, I already did new drawer for my project and I'll try to implement the code to repo, which branch i should base?

@MarlonJDm continue the discussion on https://github.com/flutter/flutter/issues/103551.

Are you also planning to add the animation between extended and regular FAB?
I think since Flutter already animates appearing and disappearing, this would be great too.
https://user-images.githubusercontent.com/13891066/169715139-2a19b9af-e5a3-4386-bdeb-5bd7db650a71.mp4

It seems to me that the checkboxes do not use the color palette ( I tried on dark theme). I think those should have a sensible default.

It seems to me that the checkboxes do not use the color palette ( I tried on dark theme). I think those should have a sensible default.

The checkbox is still using the M2 defaults (there isn't an updated M3 spec for it yet). Please file a separate issue for this and we will look into at least cleaning up the defaults here.

It appears that there is an issue for TextField support (#103537), but I don't see it listed anywhere in this issue. Just wanted to bring attention to this, thanks for the great work!

It appears that there is an issue for TextField support (#103537), but I don't see it listed anywhere in this issue. Just wanted to bring attention to this, thanks for the great work!

Sorry about that. There was some reorganization that took place and it must have got lost in the shuffle. It is back on the list again. Thx.

Working link to Material 3 sample app https://flutter.github.io/samples/material_3.html

I know this part of the issue is an old topic, but I'd like to contribute my thoughts. I agree that the material and Cupertino widgets should be separated from the main Flutter repo (and included by default in the pubspec.yaml from flutter create) for several reasons:

It enables Flutter and Material to have different views on breaking changes. For example, Flutter seems to be very against breaking changes, favoring a time-based deprecation scheme instead of semantic versioning. Dart also uses its own language versioning process. Having a separate package would allow the widgets to stay in sync with the Material spec, independent of Flutter's policies.
On the same note, if a dev prefers, they can mix and match versions of Flutter and Material (to an extent, probably). For example, if a dev was on Flutter 2, they could easily make the purely technical switch to Flutter 3 and gain all the performance improvements without committing to the stylistic changes of Material 3.
This platform-agnostic separation would make using other platforms feel less hacky. It's no doubt that Flutter intends for Material to be the "default", and for documentation purposes, it still could be. Have all the codelabs follow Material, sure. But today, adding support for other platforms is not straightforward.

Some widgets have a .adaptive constructor, like Switch.adaptive. It is unclear which platforms these constructors support since they are included in the material library. Also, it is impossible for these widgets to take advantage of other supported platforms like fluent_ui since that's a separate package.
Other widgets have platform adaptive behavior, like Scrollable. When over scrolled, it sends GlowingOverscrollIndicator or BouncingScrollPhysics notifications, depending on the platform. It can even send StretchingOverscrollIndicator notifications like Material 3. Again, it's unclear which behavior will be chosen. Again, it is also impossible for these widgets to function properly on platforms with their own package, like fluent_ui.
Yet other widgets are split between material, cupertino, fluent_ui, and other libraries, and must be chosen manually. Given the range of behaviors listed above, it's unclear when to rely on the default Material widget or find an alternative in these massive libraries. The result can be a mixed feeling between Material and the desired platform. As mentioned, some even have dependencies on others, making them not truly independent.

This will make it easier for developers to introduce their own pervasive themed widgets. Separately from using ThemeData, there are cases where one wants every or most Material widget to be replaced with their own. A modular framework allows devs to create their own widgets, hardly interacting with the default Material library. For example, a wiki site for a game that wants to have buttons, text, and displays themed like the game's UI. For an example, see this page from Factorio's website. Imagine importing package:factorio instead of material to create that site.

@rami-a  When we click on the bottomNavigationBar buttons, it will go to the square shape of Ripple, if you have to look at the shape of a circle or Bizo, Ripple will go to the Google Play program.

When we click on the bottomNavigationBar buttons, it goes to Ripple Square

That's true, this can also be verified in the Selection area under https://m3.material.io/components/navigation-bar/guidelines
https://user-images.githubusercontent.com/48603081/183062010-979e3118-f500-4cf7-b4d6-67cb1a6ca8d9.mp4

This is what you mean?

This is what you mean?

Yes, it should be like this

After upgrading to "beta" Flutter channel IconButton in actions section of AppBar is not round anymore. Is it according to M3 design?

Hi. I wonder if there already an open issue with the SimpleDialog widget in material 3 mode. The looks when dark mode is wrong (it changed to material 2 design)

Brightness.light
Brightness.dark

✔
❌

@FeodorFitsner - IconButton now has its own Material Widget and its size is constrained by the AppBar.actions horizontal layout.  This issue was also reported here: https://github.com/flutter/flutter/issues/64702#issuecomment-1203141210. We're working on restoring the proper circular splash.
CC @QuncCccccc

@iqfareez - that looks like a bug, thanks for pointing it out. CC @TahaTesser

I noticed that these two buttons known as ElevatedButton in Material 3 style can only be implemented in a separate class, not in MyApp. Otherwise, they will look like the default.

I noticed that these two buttons known as ElevatedButton in Material 3 style can only be implemented in a separate class, not in MyApp. Otherwise, they will look like the default.

This is desired behaviour, if you want to use Filled or Filled Tonal button styles, you have to create your own classes.
/// | Type         | Flutter implementation  |
/// | :----------- | :---------------------- |
/// | Elevated     | [ElevatedButton]        |
/// | Filled       | Styled [ElevatedButton] |
/// | Filled Tonal | Styled [ElevatedButton] |
/// | Outlined     | [OutlinedButton]        |
/// | Text         | [TextButton]            |

Check out examples here.

@MaxYablochkin and @ivirtex the FilledButton and FilleButton.tonal implementations are coming too. Check out @darrenaustin's awesome open PR about it here https://github.com/flutter/flutter/pull/107382. It has just not landed even in master yet. It was discussed in this proposal https://github.com/flutter/flutter/issues/104357, where it was first not considered to be added, but perhaps the discussion led to a change of heart, which I appreciate. 💙

In Flutter for Android, the sparkle sequin effect in InkSparkle is rendered below the indicator on the bottom navigation bar buttons, which I think is the right solution.  In the case of Android, it does not look so good.

Will it be possible to replicate the solution from Android for InkSparkle with a sparkle effect that spreads around like InkRipple?

I find the sparkle effect a bit odd in colors too, there will / is a parameter app wide to change the color so it goes from grey to a color that's more in line with the theme ?

https://user-images.githubusercontent.com/102767277/184976696-b20a2fb1-4d9f-448d-9ee6-4ec38b6cf081.mp4
https://user-images.githubusercontent.com/102767277/184976745-8ea35295-7df5-4309-a46d-a43a01786c9a.mp4
The color (surface) of the AppBar when the ListView scrolls up does not change as smoothly as in native Android.

https://user-images.githubusercontent.com/102767277/184979626-77c227d3-ccfc-4f8c-a28e-b72afe999227.mp4
When text is selected, the pointers and menus overlap the bottom navigation bar.

When text is selected, the pointers and menus overlap the bottom navigation bar.

Imo that's worth it's own issue ticket

Hi. I wonder if there already an open issue with the SimpleDialog widget in material 3 mode. The looks when dark mode is wrong (it changed to material 2 design)
https://github.com/flutter/flutter/issues/91605#issuecomment-1207373317

Sorry, I think I was mistaken.
By adding the useMaterial3 in the darkTheme, it shows correctly for light & dark mode.
title: 'System Cursor Demo',
      theme: ThemeData(
        primarySwatch: Colors.green,
        useMaterial3: true,
      ),
-      darkTheme: ThemeData.dark(),
+      darkTheme: ThemeData.dark().copyWith(useMaterial3: true),
      themeMode: ThemeMode.system,

Nevertheless, it would be nice if the changes opted in automatically for both brightness if the main theme is already opted in to material3
https://github.com/flutter/flutter/issues/109158

Nevertheless, it would be nice if the changes opted in automatically for both brightness if the main theme is already opted in to material3

theme and darkTheme are separate and you have to enable useMaterial3 on both themes.
Looks like there is no migration needed for SimpleDialog, It uses Dialog which already supports Material 3.

Screenrecorder-2022-08-11-03-43-39-883.mp4
When text is selected, the pointers and menus overlap the bottom navigation bar.
What is the name of this app?

@rami-a When we click on the bottomNavigationBar buttons, it goes to Ripple Square, when it should be Circle or Bayesian ripple. Take a look at the Google Play app.

Is there any issue for this, that I could track? And if there isn't, do you mind creating it?

Запись экрана-2022-08-11-03-43-39-883.mp4
Когда текст выделен, указатели и меню перекрывают нижнюю панель навигации.

@rami-a

https://user-images.githubusercontent.com/102767277/188236322-ec601c91-4bff-4d63-aba3-a81162d74261.mp4
The AppBar changes color from Surface to Background when scrolling through a PageView or ListView as a child of a Container that is wrapped in an outer PageView or ListView. Also in this example, when there is a transition between ListView and PageView, jerks are noticeable when scrolling. Is this a bug or a feature😀?

Когда мы нажимаем нижние кнопки NavigationBar, он переходит на Ripple Square.

Это правда, это также можно проверить в Selectionразделе https://m3.material.io/components/navigation-bar/guidelines .
kykifyox-множественные переходы3P.mp4

In the Google Clock app, clicking on the navigation bar buttons below the circle shape hides a square shape, an InkSparke effect that only starts from the center and is accompanied by a ripple with sparkles without being tied to any theme color.

@MaxYablochkin, I think you are using an old version of the app
https://user-images.githubusercontent.com/16593680/188392374-abfce9b7-656b-4b6c-b081-c043338a4a36.mp4

@MaxYablochkin, I think you are using an old version of the app
https://user-images.githubusercontent.com/16593680/188392374-abfce9b7-656b-4b6c-b081-c043338a4a36.mp4

I tested on the emulator with Android version 12. From the beginning, I clicked on the buttons, and then with the mouse button held down, moved the cursor outside the borders of the emulator screen, and as a result I saw this.

The implementation is already closest to the native one. But I noticed that when I hold and release my finger, the selection animation disappears too quickly, but before the Flutter 3.3.0 update, it had a more correct value.
native android:

flutter:

@rami-a
The new iPhone 14 Pro has a new screen cutout and additional islands called dynamic island, but will Flutter be adapted to the new bangs, and will it be implemented in the new widget or in the existing SafeArea?

I guess there will be a separate issue for this, as it is not in Material specs and I don't even know if iOS specs are already available.

Я предполагаю, что для этого будет отдельная проблема, так как этого нет в спецификациях материалов, и я даже не знаю, доступны ли уже спецификации iOS.

The first thing you can see is that the icons in the statusBar can be hidden or moved to the edges of the screen, crowding out the current ones.

In the interest of everyone subscribed to this thread, let's move discussions on particular aspects of Material 3 to new issues to have better in-depth discussions. Please mention this issue (#91605) such that it appears in the issue feed. I'm going to hide non-M3 comments as off-topic for now.
If you're about to comment, ask yourself: "does this relate to Material 3 in the broadest sense?"

In Flutter, will this implementation of a floating window with a projection of some area for simplified text input correspond to the native one? Is it possible to somehow interact with this window?

I want to remove the ripple effect of NavigationBar, but I did not see the relevant local API, can be removed, I looked at the source code of NavigationBar, found that it is implemented with InkWell, but did not provide the parameters of splashFactory, please ask whether you can provide this parameter externally, delete his ripple effect

I want to remove the ripple effect of NavigationBar, but I did not see the relevant local API, can be removed, I looked at the source code of NavigationBar, found that it is implemented with InkWell, but did not provide the parameters of splashFactory, please ask whether you can provide this parameter externally, delete his ripple effect

Wrap Navigation Bar with Theme Widget and set splash factory to NoSplash.splashFactory, highlight color to Colors.transparent

I am using Material 3 and I found that the cards do not have "inner padding" as described in the material 3 specs.
This is how the card looks (with the content inside)

This is how I believe it should look (achieved with a padding widget inside the card):

Is it possible to increase the size of the sequins as in native?

To reiterate https://github.com/flutter/flutter/issues/91605#issuecomment-1240952485:
If you have an issue with Material 3, please file a new issue and mention "#91605" its description.

Comparing the behavior of Flutter, Jetpack Compose, and AndroidView (xml) animations, I notice more and more that each one is somewhat different from each other, although 2 of which are native, but I would like to know what example Flutter sets for itself, so that be analogous.

Hi the community, do you have any date for the complete release of Material 3 f for flutter?
I am hesitating to embrace it for a new project of client that rewrite its app from scratch using flutter.

Why is the background color displayed incorrectly in colorScheme, unlike colorSchemeSeed?

There seems to be little support for the web.

Indeed, great stuff by the material.io team! Please check out new guidelines (including updated components), dark mode, and a new Flutter landing page.

When will these cool things be available?

Stay tuned, we'll have more to share before the end of the year.

I wanted to ask why the color of the thumb changes on hover on the web, but not on android.

I wanted to ask why the color of the thumb changes on hover on the web, but not on android?

This is off-topic for this issue, as we are trying to keep the conversation about general M3 issues and not specific components. You could try asking this on discord, the Switch issue, or file a new issue.

Is it an analogue of ComboBox or something else?
https://user-images.githubusercontent.com/102767277/200956815-2f7274dd-2564-4422-81d0-1e7bcdbe84b5.mp4

Is it an analogue of ComboBox or something else?
Screenrecorder-2022-11-10-00-31-10-324.mp4

No, the ComboBox is basically an outlined text field with a trailing icon button that drops down a menu. It's one of the configurations for menus.

Understood, but then what could it be at the demonstration, PopupMenu?

Is it an analogue of ComboBox or something else?
Screenrecorder-2022-11-10-00-31-10-324.mp4

No, the ComboBox is basically an outlined text field with a trailing icon button that drops down a menu. It's one of the configurations for menus.

@MaxYablochkin - Please move this discussion to https://github.com/flutter/flutter/issues/115005.

It feels like progress is too slow, Compose Material 3 stable version has been released, and flutter Material 3 has not yet been developed

It feels like progress is too slow, Compose Material 3 stable version has been released, and flutter Material 3 has not yet been developed

@peter100u
To be honest, I also follow Compose, and Compose has a slow progress of Material 3, and it is quite raw, because it lags behind in time and implementation (spec mismatch) relative to Flutter and XML.  It feels like Compose's M3 will be finished when Material 4 comes out. Flutter just doesn't say as much about M3 as Compose does, I think, but it's better in line with the spec.  But what I love about Compose is the integration with Figma.  I really hope that Flutter will have this powerful tool.

@peter100u I don't have any official insights on what is planned to be included in the next stable release of Flutter and when, but Material 3 is pretty far along in the master channel.
Very few, if any, blockers, for mobile usage left there. On desktop side there are still some new components missing, and yes some new components we have not hade before on mobile, were still missing last time I checked, but I would not call those show stoppers.
Flutter 3.3.x has a bunch of M3 showstopper issues though, so don't use it for production yet. You can develop with M3 on master to be ready when next stable comes out, which I think and hope will be close enough that I can also recommend it and say, yes using it is fine for 95% of mobile use cases.
Do I wish it would have been ready faster? Yes, but progress has picked up in speed after v3.3. Clearly more focus and efforts have been put into M3 and many devs on the team have been doing fabulous work with M3 implementions. Hopefully next stable version will surprise us 🙂💙

I am using Flutter 3.3.10 but still says outlineVariant and scrim are not defined in ColorScheme. As per the note above it should be in Flutter 3.3 but not for me why?

@applegrew For some reason those two new colors in ColorScheme did not land in Flutter 3.3 and are only available in master channel, and in latest beta (I did not verify beta status, but I think they are also there).
Theoretically they could have landed in 3.3 already, but for some reason they did not. My expectation is that they will land in next stable release that will probably be released Jan 25, 2023. This is just my expectation, I have no actual insight into what will be released when. However, based on public info, I think it is a reasonable assumption.

Same goes for filled and tonal buttons. Might be other widgets that are missing.

Same goes for filled and tonal buttons. Might be other widgets that are missing.

Filled and tonal buttons are now part of Flutter 3.7

What is the point of not having dedicated constructors for Elevated, Outlined and Filled cards? They are part of M3, and in the m3 sample/demo they are still coded modifying the default card.

What is the point of not having dedicated constructors for Elevated, Outlined and Filled cards? They are part of M3, and in the m3 sample/demo they are still coded modifying the default card.
The same goes for the IconButton and other widgets...

Please follow https://github.com/flutter/flutter/issues/111800 for icon buttons and file a new issue for Cards, mentioning this issue (#91605) in the description.

Flutter 3.7 Update
As you probably know, Flutter 3.7 was released last week, just prior to Flutter Forward. Leading up to the event, many Flutter Medium posts worth reading were published, and I want to highlight Material 3 for Flutter by @esouthren.
3.7 was a big release, with as many Material 3 issues closed in this one as in the first two releases combined! A big thank you to all contributors, early adopters, and issue filers!

Remaining work
We're working on the next stable release, and we've highlighted the most important items under "Remaining work" in this issue's description. These include highly requested features like Material Symbols and updated motion.
If you'd like to help, there are many opportunities, including improving API documentation and sample code. Please get in touch on Discord. Opting-in and filing issues is also helpful. As always, prefer to file separate issues and mention this one (#91605), and use 👍 to help prioritise work.

Shouldn't Add Dropdown support to FilterChip also be included here?
Since Update chips to support Material 3 is already marked as done.

Shouldn't Add Dropdown support to FilterChip also be included here?

Good question. It's not an exhaustive list of everything planned to be worked on, that's in the project. Generally speaking, 👍 get issues on that list.

Am i wrong or Padding space change when switch from light mode to dark mode (In Material Design 3)
Is dark mode similar to MD2 or not completed yes ?

Please bring Material You to Flutter

Recently, I used Material 3 Design Kit (https://www.figma.com/community/file/1035203688168086460) to design application software, but I found that the component token in the design draft and the color scheme in flutter development do not correspond to the attributes Token and development of one-to-one token restoration

@peter100u Do u know how to set the systemNavigationBarColor to same as bottom navigatiobar?

The following interactive effect, please ask whether material 3 is built-in support, I hope the official can support this effect
https://github.com/flutter/flutter/assets/14010579/373d9324-c495-41de-ba9c-6cf70975d783

Underlines used to inherit the color of the text but with Material 3 enabled, it instead defaults to black. Is this change intentional?

@peter100u this looks nice, can u share the code of this?

@peter100u这看起来不错，你可以分享这个代码吗？

Not my project, but a video example I saw, I was sure it was the design style of Material 3, and I didn't know how to implement it, I would like to consult the official how to do it or if they can support this kind of animation interaction

Underlines used to inherit the color of the text but with Material 3 enabled, it instead defaults to black. Is this change intentional?

Also, noticed that the underline straight up disappears when switching to dark theme. Is this issue the right place to be reporting this or should it be an issue of its own?

Also, noticed that the underline straight up disappears when switching to dark theme. Is this issue the right place to be reporting this or should it be an issue of its own?

Please file a separate issue and mention this one in the description.

@peter100u can u share what the app name is?

https://apps.apple.com/cn/app/cookie-记账/id1559943673

Has progress kinda halted here?

As of Flutter 3.16, we're calling this project done and closing the issue.

As of Flutter 3.16, we're calling this project done and closing the issue.

Really

I switched to Kotlin / Compose, I will remember Flutter fondly🩵

As of Flutter 3.16, we're calling this project done and closing the issue.

There are important missing parts #119328, #126069

As of Flutter 3.16, we're calling this project done and closing the issue.
it's a bit confusing how a project can be called "done" with so many outstanding issues
sounds like pulling a "navigator 2.0"

@iapicca - you are correct, there's still work to be done (there will always be work to be done).  It's no longer useful to have such a broad based umbrella issue now that we've made Material 3 the default. The open subordinate issues will remain open.

@iapicca - you are correct, there's still work to be done (there will always be work to be done). It's no longer useful to have such a broad based umbrella issue now that we've made Material 3 the default. The open subordinate issues will remain open.

But I think that it is fair to say that material 3 is not fully implemented

There are Material 3 specification changes (small color diffs for example) rolling out even now, so you could say that the spec isn't fully implemented. This umbrella issue was about the main effort to upgrade all of the components and themes and I think it's fair to close it. We'll continue to track the smaller stuff in separate issues.

Having an umbrella issue (epic) allows easier tracking and provides a single point to check.  The alternative is to tag the issues correctly, so one can easily query the current status

Thanks @HansMuller for the clarifications.
While it might feel odd to call it done, since there are parts not yet implemented, I agree that it does not make sense to keep this umbrella issue open forever.
The Material3 spec continues to evolve, it has done so a lot during this project. If we look at its original scope and spec when it was published, the original target has even been exceeded in the 3.16 release!
New changes to ColorScheme and surface colors and contrasts have been published, as has a new nice Carousel component. These new features and side sheet, plus many date picker variations are not yet supported. Some motion designs are also not quite there yet, along with many minor details. M3 is a moving target, the implementation in Flutter is ready enough to no longer need this umbrella issue, it has served its purpose well.
Yes there are still issues, there will always be more and new issues, that needs to be tracked and solved. The normal process supports that well.
Thank you all for the work done to bring Material3 to Flutter. It has been interesting to track its progress, test use it and provide feedback during the journey 🙂💙

Спасибо@HansMullerза разъяснения.
Хотя может показаться странным называть это завершенным, поскольку некоторые части еще не реализованы, я согласен, что нет смысла оставлять этот зонтичный вопрос открытым навсегда.
Спецификация Material3 продолжает развиваться, и за время этого проекта она уже много раз развивалась. Если мы посмотрим на его первоначальный объем и характеристики на момент публикации, то в версии 3.16 первоначальная цель была даже превышена!
Опубликованы новые изменения в ColorScheme, цветах и контрастах поверхности, а также новый приятный компонент Carousel. Эти новые функции и дополнительный лист, а также многие варианты выбора даты пока не поддерживаются. Некоторые анимационные проекты еще не совсем готовы, как и множество мелких деталей. M3 — это движущаяся цель, реализация во Flutter достаточно готова, чтобы больше не нуждаться в этой зонтичной проблеме, она хорошо выполнила свою задачу.
Да, проблемы все еще есть, всегда будут новые и новые проблемы, которые необходимо отслеживать и решать. Обычный процесс хорошо это поддерживает.
Спасибо всем за проделанную работу по внедрению Material3 во Flutter. Было интересно следить за его прогрессом, тестировать его использование и оставлять отзывы во время путешествия 🙂💙

Hello with Ukraine💙💛
В цілому я з вами згоден

Just updated Flutter and several UI elements in my iiOS app have changed color, shape, etc. Reading this thread, this is apparently expected behavior for this update. Assuming I don't want to blanket disable Material 3 altogether, is there a migration guide that will help me get things back to the way they were with minimal effort? I.e. what UI elements are likely to be different now and what arguments are needed to replicate prior appearance. Thank you.

You can opt out easily by setting a property in the theme. I cannot search it right now. But you just need to set material 3 to false

You can opt out easily by setting a property in the theme. I cannot search it right now. But you just need to set material 3 to false

Thank you, I am aware, which is why my question included, "Assuming I don't want to blanket disable Material 3 altogether..."

I do find it odd that making useMaterial3 default to true wasn't considered a breaking change in Flutter. I understand Flutter has different deprecation policies but at the end of the day, a simple upgrade to a new minor version of Flutter completely changed my app's colors and design. Can someone on the Flutter team comment on this, and what the policy for visually breaking changes is in general?

It's true that in most respects making M3 the default was a breaking change. The official rule for breaking changes allows for visual changes that don't break existing customer tests, however this was a big visual change and we apologize for the havoc it may have created.

@Levi-Lesches, even if it was very nice of @HansMuller to apologize for the potential "havoc" 😄 it may have caused, I would like to add that as well known, Flutter SDK does not use semantic versioning, the minor stable releases pretty much always contain some breaking changes.
There is always an attempt to list all breaking changes under https://docs.flutter.dev/release/breaking-changes. Sometimes one or two have been missed, it happens, I've certainly been hit by that too. However, in this case the change of defaulting useMaterial to true instead of false, is listed and included as the 2nd breaking change in release 3.16, see https://docs.flutter.dev/release/breaking-changes/material-3-default#migration-guide.
It was even mentioned already in the previous Flutter 3.13 release notes, that in the next stable release after it, Material3 would be made the default, see https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

So this change should not be a big surprise for anybody and the fix is a single flag toggle.
Legacy M2 based themes and styles?
What might become a much bigger challenge is when the the flag is deprecated and even later, when the code supporting legacy Material-2 themes and styles are removed. How do we recreate the legacy styles then? This is an interesting question.
You can however make a theme using Material-3 in Flutter's useMaterial3: true mode, that creates an app that looks like it using Material-2, as if is the flag would be set to useMaterial3: true. This also means it is possible to replicate custom styles, as they were when made with M2 after enabling M3, that do not break the app so much. This might interest you @cbatson as well.
In this tweet https://x.com/RydMike/status/1721535442783236259?s=20 I show an example of a theme changing from using M3, to pretty much look like it is using M2 mode and its defaults, while it is actually using M3 mode all the time. It is only being themed to look like it is using M2.
Here is a similar recording demoing it:
https://github.com/flutter/flutter/assets/39990307/2c490531-cb3e-4217-bd71-a1850d1213b8
How much you have to change in the M3 theme depends on your custom M2 theme and styles. It is currently not possible to for all cases get a 100% match, but probably close enough for most custom designs, for the parts that matters anyway.
Sure the above example use my FlexColorScheme package that contains some presets in the Themes Playground config app to set it to an M2 look-alike design in M3 mode with one-click. However, the Themes Playground is just a visual config tool for the FlexColorScheme package API, which in turn is a fancy ThemeData factory. So anything it can do, you can do with just vanilla ThemeData as well.
I might write a blog with some general and in-depth guidance on how to go about doing this. Perhaps something will also be written about it by the Flutter team as well. It is certainly a topic that many will ask and wonder about once the useMaterial3 flag is removed.
A few quick pointers to get from M3 to an M2 look-a-like app in M3 mode:

Use a hand-made ColorScheme with legacy style colors. You probably have a custom one for your app already.
In light mode set ColorScheme.surfaceTint to Colors.transparent. In dark mode, set it to a neutral grey color that gives a similar dark mode overlay elevation as the one you got in M2 mode, if the dark M2-mode is/was used correctly. Few Flutter apps used M2 dark mode correctly though.
Map ColorScheme colors on component themes as they were in M2, yes "some" are different in M3, Buttons, AppBar, FAB etc.
Set elevations on components themes with elevations, as they were in M2.
Set shadowColor to Colors.black for component themes where it defaults to Colors.transparent. The ColorScheme.shadow color already defaults to Colors.black, but some component themes that used it in M2, now set it to Colors.transparent in M3 mode. By setting it back to black, you can bring shadows back to such components, e.g. AppBar.
Set shape border radius on components as they were in M2, typically 4.
If the older typography is still around (2014=pre-M2 and 2018=M2) when the flag is removed, switch to the one you used, instead of the M3 default one, or of course keep whatever you use in your custom design.
Set AppBar component theme scrolledUnderElevation to the same value as elevation, so there is no elevation change when scrolling.

With these changes in place, you should have no tinted surface colors, no elevation tint and border radius and elevations should be same as before, and you should have a bit lighter grays on elevated surfaces in dark mode. This is needed so they are visible against the background, since the shadow does not really show so sell in dark mode, even if it is there, this is used by M2 as well.
For a custom design you might have other minor things not mentioned here that needs tuning in order to not break it a lot visually when you enable M3.


ola_buttonIcon isn't vertically centered

If you use the ButtonIcon component on a table, the icon isn't centered vertically. it can be fixed by adding vertical-align: middle;

Good catch! Fixed


Preliminary support for building CUDA C files with nvcc.

This adds preliminary support for compiling CUDA C sources using the nvcc compiler shipped with the CUDA toolkit.
Currently, this only supports the typical "one-pass" compilation steps of: *.cu -> *.o -> *.a. The main differences from gcc consist of: passing different PIC args to the compiler, and omitting some args that nvcc does not support.
(Not implemented is a more involved "two-pass" compilation required for supporting dynamic parallelism, i.e. dynamic kernel launches. This requires some extra flags and linking with a certain shared object.)
I've personally used this on the CUDA 7.0 and CUDA 7.5 toolchains.

Neat!


Disable GcsSinkTaskGroupByTopicPartitionPropertiesTest.limited

See https://github.com/aiven/gcs-connector-for-apache-kafka/issues/143

It doesn't iterate 1..100, it randomly picks a value from this range.
There are various ways to reduce the number of tries (it's 1000 by default, so we can lower this), but better to figure out the root cause somehow. Maybe some setting could help or we pin some older version of google-cloud-nio

It doesn't iterate 1..100, it randomly picks a value from this range.

OK. Got it.

but better to figure out the root cause somehow.

+1


Add basic watchOS support to better support multi platform apps

This PR is mainly to prevent compile time errors and doesn’t implement a good UX on watchOS. I have a multiplatform app. With Xcode 15 I can't build my app anymore as Roadmap fails to compile for watchOS. I think in most cases a Roadmap doesn't make sense on watchOS. But I'm not aware of a good way to restrict platforms for a Swift package.
https://forums.swift.org/t/restrict-platforms-for-packages/29456/7
Not mentioning watchOS in platforms just means the oldest watchOS version is supported implicitly.
I'm not 100% sure yet why Xcode even tries to compile Roadmap for watchOS in my project. I only have it as a dependency in my own Package.swift for a library target that is only added to an iOS target. I also added a TargetDependencyCondition .product(name: "Roadmap", package: "Roadmap", condition: .when(platforms: [.iOS])), And the actual view is surrounded with #if os(iOS) #endif But this iOS target also embeds my watchOS target.
This PR only fixes the errors. I didn't make any other changes so the watchOS UX is probably not very good. I don't plan to use Roadmap on my watchOS app anyway. But this is how the preview looks.

Edit: I missed another dependency that was also depending on Roadmap. Adding condition: .when(platforms: [.iOS])) there as well fixed things. So now it's not building for watchOS anymore. Therefore I don't need these changes anymore. But maybe it's still useful for others to have this basic compatibility. Then you don't need to constrain everything.

Hi, I'm not sure I understand the problem. You can exclude Roadmap from the watchOS target, and it compiles fine?
I'm using Roadmap on 4 different apps; all have a watchOS target, and I've never faced a problem.


nxstyle reporting error: Space precedes right parenthesis

There are case where we need to align the right parenthesis.
(it appears dealigned here, but if you copy to text editor you will see it is aligned)
const struct trace_msg_t g_usb_trace_strings_deverror[] =
{
TRACE_STR(STM32L4_TRACEERR_ALLOCFAIL            ),
TRACE_STR(STM32L4_TRACEERR_BADCLEARFEATURE      ),
TRACE_STR(STM32L4_TRACEERR_BADDEVGETSTATUS      ),
TRACE_STR(STM32L4_TRACEERR_BADEPGETSTATUS       ),
TRACE_STR(STM32L4_TRACEERR_BADEPNO              ),
TRACE_STR(STM32L4_TRACEERR_BADEPTYPE            ),
TRACE_STR(STM32L4_TRACEERR_BADGETCONFIG         ),
TRACE_STR(STM32L4_TRACEERR_BADGETSETDESC        ),
TRACE_STR(STM32L4_TRACEERR_BADGETSTATUS         ),
TRACE_STR(STM32L4_TRACEERR_BADSETADDRESS        ),
Please fix nxstyle to access this code beautification

There are case where we need to align the right parenthesis.

Why.  It is unnecessary to align right parentheses and difficult to maintain.  It is also contrary to the coding standard which states explicitly in paragraph 1.6 Parentheses:  "Never space before the right parentheses. There should never be space before a right parenthesis ()). "
This is not an issue.  It is a proposed violation of the coding standard.  I will close the issue.


Usb Device Info Plugin

Displays the device details user input usb devices

... sorry - could you fix conflicts?

Sorry about that.

Hey - thanks again for your plugin, in three short days we've added over 60 new amazing plugins. I wonder if you could take a minute to add a bit of metadata to your plugin?
Docs: https://github.com/matryer/bitbar#metadata


No module named 'urlparse'

StaSh v0.7.0 on python 3.6.1
Warning: you are running StaSh in python3. Some commands may not work correctly in python3.
Please help us improving StaSh by reporting bugs on github.
Tip: Use mc to access files in your Dropbox or on a FTP-Server
[~/Documents]$ git
Opening: https://github.com/jsbain/gittle/archive/master.zip
Save as: /private/var/mobile/Containers/Data/Application/********/tmp//gittle.zip (??? bytes)
28334
Opening: https://github.com/FriendCode/funky/archive/master.zip
Save as: /private/var/mobile/Containers/Data/Application/********/tmp//funky.zip (??? bytes)
8474
stash: <class 'ModuleNotFoundError'>: No module named 'urlparse'
[~/Documents]$

use python2 and fix some line in 'git.py'.

modify 'urlparse.urlparse(...)' to 'urlparse(...)'

import 'urlunparse' from 'six.moves.urllib.parse'

delete 'config.write_to_path()' in 'get_config_or_prompt()'

@l1m0n3  Thanks. But I want to keep this issue open since it looks like this project will abandon python2. So I think it is a bug for python3 user.

Unfortunately, some libraries are not compatible with python3...
So its kind of hard to fix it :(

since it looks like this project will abandon python2

It is unlikely that we abandon python2 anytime soon. There is simply no reason to do so. The only reason we may have sometime in the future to abandon python2 would be if pythonista stopped supporting python2.

Yes, it is a problem for this python 3 user ;-)
(Note the app is called "Pythonista 3" on the apple store.)
Is there an alternate way to clone a git repo into pythonista using StaSh, or otherwise?
Are other packages required: there was also a "dulwich" requirement to run git:
Installing StaSh on an iPhone 6s I get the same startup messages as the OP,
but then typing
[~/Documents]$ git
Produces:
dulwich was not found. Will attempt to download.
... [y/n]? y
which, as with OP above, ends with:
stash: <class 'ModuleNotFoundError'>: No module named 'urlparse'

@bennr01 Yes, that works fine - thanks.

@l1m0n3 thanks, your edits made git push work with py2. @ywangd will you make these changes part of StaSh?

thanks

Could we please fix our git dependencies to work on Python instead of requiring StaSH to run on legacy Python?  213 days until Python 2 end of life.

Could we please fix our git dependencies to work on Python instead of requiring StaSH to run on legacy Python? https://github.com/jsbain/gittle Seems to be many commits behind the Python 3 changes to its upstream. 213 days until Python 2 end of life.

What exactly do you mean? Are you proposing that we should completeley drop py2 and only focus on py3? I dont think that would be a good idea. Before we should discontinue support for py2, we should have at least one version of StaSh supporting both py2 and py3, otherwise we create some sort of frankenstein monster which neither runs on py2 nor py3 correctly.
If you mean we should just switch to mainstream gittle then i support that idea. I have experimented with porting git to py3 a few times and it seems that using pip install <dependencies here> for dependency installation would fix a few things.
Honestly i think git does need a complete rewrite, but that would be a ton of work. IIRC dulwich.porcelain could largely replace gittle, but last time i checked (~half a year ago), it was still missing some important features regarding remote, merge and status. If anyone is interested, i still have code from an old attempt  for a complete rewrite somewhere in my files.

I am fine with 2+3 but at a minimum, StaSH git should work on Python 3.

There are many things like basestring and (urlparse)[https://github.com/jsbain/gittle/blob/master/gittle/utils/urls.py#L2]


Provide support for other scheduling models

Not everyone wants to hand full responsibility for application scheduling over to asciimatics.  It would be good if I could provide a simple API to allow integration with any other framework.
Rather than provide custom versions of Screen.play() for every framework out there, it's probably better to provide a state recording mechanism inside the Screen and a simple API to refresh the current Scene - e.g. Screen.draw_one_frame().
The other frameworks then simple need to schedule this on a regular basis - ideally every 50ms.

I'm very glad to see this enhancement in your issue tracker and would like to say I would appreciate this feature greatly. I was checking out asciimatics and was hoping to use it with/integrate it into my framework. Right now, it appears that calling Screen.wrapper does not return a screen object, but simply starts it's own event loop.
This basically prevents me from using asciimatics concurrently with my framework, without resorting to icky workarounds like parallel threading. Since it looks like that is the only way to have the two play together, it basically means I can't use your package to provide a frontend for my apps at all, which is a shame, as that would be pretty awesome.

The exact interface here might be interesting.  Screen.wrapper() does not actually start the event loop.  It is similar to curses.wrapper() in that it notes down the current environment, sets up what it needs and returns the Screen object through the function specified as a parameter to the wrapper() function, then tidies up the environment when that function returns.
I guess these days, there might be a case for doing this within a context manager, but that still doesn't solve the scheduling issue.
I would expect applications that want more control on the scheduling to need a method (let's call it Screen.next_frame()) that allows them to handle any input and draw the next frame of the Scene.  In other words provide a single iteration of what is happening inside Screen.play().  This can then be called at a convenient point inside your main loop.

Actually, I played with it some more, and figured out a way to get it to work. Screen.wrapper might return None, but I can save the screen as an attribute of a object using the method that wrapper() requires. Then I can use that to get keypresses. Here's how it looks, if you were curious: https://github.com/erose1337/pride/blob/master/asciitest.py
Looking forward to using the rest of it!

The way you let wrapper return means that the program will not reset correctly once you have finished.  You'd be better off simply wrapping your existing main function to be called by wrapper.  It also may result in bad output as it will be using the wrong win32 handles in this case.

I suppose that's why I was having difficulty getting the screen to refresh.
Currently, I have my own Command Line object that retrieves user input and handles output of it, albeit in a manner significantly less spectacular then asciimatics. This object appears to be more or less equivalent to your Screen, in that it processes the input/output. The way my framework functions, the Command Line is only created for some programs, and not for others, depending on the nature of the program and if it is required. The normal entry point for creating a terminal is when a User is created, which is potentially an instruction that can be executed at any time, not just when the program is first launched..
Is it possible to separate Screen creation, Screen running (i.e. getting input, refresh), and resource cleanup into separate methods? If it's already this way, what functions should I use for each purpose?
If you're taking suggestions for an interface, I would vote for:

Create a screen object

Allocates resources and whatnot
Does not process any input/output
Returns the Screen object

A run method for the screen

Overload to do input handling/display updating/refreshing
Can be scheduled by the framework to run every X seconds
Does not deallocate/cleanup anything when function exits

A finalizer method

Cleanup/restore any required resources

Thanks for all your help!

Just a sec...
If you have an entry point in your application where you want to call a function to handle your User interactions, why don't you just call that entry point with Screen.wrapper() instead?  Once your code exits (presumably when the User session is over), the function will return and so the wrapper will tidy up and also return...
Or is your application asynchronous, and so you need your Screen to be created in a completely different function from where it will be tidied up?

My application is asynchronous, and I do require that it is cleaned up in a different function from the one that it is created in. You hit the nail on the head there.
As an explanation, my application uses well known names/references to objects. These references can be looked up in a dictionary to return the object indicated by the reference. This results in a different information flow. Objects are created, and may exist for the duration of the application, or be deleted at arbitrary points during execution. Many objects exist as part of the environment, providing commonly required services. It is reminiscent of dbus, if you are familiar with that.
This lets me easily create programs that function concurrently with any other ones I have written, and most enjoyably lets me do so with no weird headache material like threads/locks/semaphores/stack frame switches/eventlets/asyncio/yield/etc. It also provides me with a command line I can use to investigate the state of my programs while they are running. I have many objects/daemons that use this interface already, so I am pretty much married to it.

I've now written the first half of this with https://github.com/peterbrittain/asciimatics/commit/9450f604aceab563fb17e0603dbfd078e90a9a54
This introduces the open/close functions on Screen so you  can create a Screen and tidy up whenever you want (and now make wrapper use these).  Need to break apart play next.

Awesome, I'm excited! Thank you for responding to my feature request so quickly. Hopefully any changes weren't too painful on your end?

OK - I've now added the other half with https://github.com/peterbrittain/asciimatics/commit/535644787329862b66dee1be858e79d7313a5b93
It works well enough for me...  Can you please let me know whether it works for you and then I'll close this enhancement.

It is working beautifully. Thank you so much!

Great!  And you're welcome.


fix: handle errors in closures [1.x]

When you pass a closure instead of a class there is obviously no failed method which can be called in case of a failure. This PR adds a simple check and let's the exception bubble up.
I raised the PR to 1.x (because that's what I use with Tenancy package) but can of course adapt the changes to 2.x as well if you want.

Could you add some tests?

@stancl sorry for the delay but finally I could manage to work on it 😊

@stancl okay, I noticed that the proposed change is maybe just too much. Instead I could simply rely on a closure but the issue right now is that errors are not handled properly. My recent changes should fix it with minimal invasion. Could you please have another look?

Can you update the PR desc?

@stancl sorry, done 😊

Bit confused about what exactly the test is doing. The entire try-catch is inside the closure?

Oh, wow, you were right... seems I was very tired and too happy that the test executed at all 😁 I hope it's now working better.

The diff looks good now. I've confirmed the added test fails without the change. Can you open an additional PR for the 2.x branch? I'd merge them at once.


Update Overview.md

Update architecture image and other minor changes

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4203/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4293/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4294/
Test PASSed.

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.0 please


custom max volume support and skip buttons

Works with latest mpv-remote-node commit to allow volume above 100.
Also added skip +5 and -5 buttons to playerController as seeking using the seekbar was a bit inconsistent on mobile. You can only keep the max volume commit if you prefer

Thanks!


SPIKE: Ruby Runtime Manager Implementations

PoCs to determine a number of approaches to facilitate selecting different Ruby & Puppet versions

https://docs.google.com/document/d/1m3l15WMS_zo6aKCui59VlOgL-NwdNuVEwg5Qp-QmRp0/edit?usp=sharing


Metrics tables not displaying proper label for NaN values

Describe the bug
The metrics tables from metrics.lk do not display the specified label when the output value is NaN. This appears to be an issue with the metric() function, whereas the metric_row() function displays the label from metrics.lk even if the output value is NaN.
To Reproduce
Steps to reproduce the behavior:

Go to PV Battery, Single Owner case
Set ppa_price_input to 0
Simulate
See 'flip_actual_irr' where 'Internal rate of return (IRR)' should be

Expected behavior
Label showing with NaN value such as in this screenshot for 'Developer internal rate of return'. This example uses metric_row() on line 31 of metrics.lk, where the first example uses metric() on line 63

Updated and fixed in pull request #773

No effect on previously correct additional metric tables


Weird types when batching FindMany

I'm working on a server that uses Prisma Client Rust to interact with its database. One of its endpoints needs to run multiple find_many queries, so I'm trying to batch them into a single request. My code looks something like this:
use crate::prisma::my_object::{Data, FindMany};

let db: &PrismaClient = todo!();

let queries: (FindMany, FindMany) = todo!();

let results = db
	._batch(queries)
	.await
	.unwrap();

Now, I would expect results to be a tuple with one item corresponding to each item in queries and containing a Vec<Data> since each FindMany query should return a Vec<Data>.
However, the actual type of results is (Data, Data).
Is my code wrong, or is this another code generation bug?

Not a codegen bug but a library bug, is an easy fix

@codemaster138 should be fixed in rev = "999f772cfd4d5185b451ec8d5a018b2f5f7b17d7"

Yep, seems to be working


Check SIMT and cooperative matrix pipeline correctness in e2e matmul tests

In e2e matmul tests we have correctness tests for SPIRVBaseVectorize pipeline. We need to also add support for SPIRVMatmulPromoteVectorize and SPIRVCopperativeMatrixVectorize pipelines there.

We have it done already.


Set appear/disappear costs to zero at boundary of ROI

To accomodate for cells entering/leaving the field of view without paying a cost

We have added support for providing an "ignore_attribute" to CostAppear and CostDisappear that enables this use case. We will delegate knowledge of the ROI and setting that attribute appropriately to motile_toolbox (for blockwise and non-blockwise tasks).


Demo will not run with Fabric Version 1.0.4 (hlfv1)

When the FABRIC_VERSION environment variable is set to hlfv1, the below error happens.
It does not happen when running with hlfv11 or when the FABRIC_VERSION is not set.
The hlfv1 version of the demo DOES NOT set the FABRIC_VERSION to hlfv1, so it runs as hlfv11.
# Submit the setup transaction.
docker run \
  --rm \
  --network composer_default \
  -v $(pwd)/.vld-card-store:/home/composer/.composer \
  hyperledger/composer-cli:0.16.5 \
  transaction submit -c admin@vehicle-manufacture-network -d '{"$class": "org.acme.vehicle_network.SetupDemo"}'
pwd
Error: Error trying to ping. Error: Error trying to query business network. Error: chaincode error (status: 500, message: Error: Collection with ID '$sysdata' does not exist)
Command failed

Tried to downgrade to 1.0.3, got the same error. Seems like the problem somewhere else. Downgrading composer to v0.16.2 didn't help ether.

HLF v1.0 and Composer 0.16 are old and have now further development being done. The demo was moved in line with supporting HLF V1.1 and equivalent version of composer and support for the demo running on HLF v1.0 was dropped.


Xiaomi Aqara: added interface and discovery_retry to the config validation

Description:
Xiaomi Aqara: added interface and discovery_retry to the config validation
Related issue (if applicable): fixes #10098
Checklist:
If the code communicates with devices, web services, or third-party tools:

[X] Local tests with tox run successfully. Your PR cannot be merged unless tests pass

If the code does not interact with devices:

[X] Local tests with tox run successfully. Your PR cannot be merged unless tests pass

Your validation doesn't look correct. This is a proper configuration:
xiaomi_aqara:
  interface: <IP_ADDRESS>
  discovery_retry: 5
  gateways:
    - mac:
      key: xxxxxxxxxxxxxxxx

Your are assuming something like this with your code change:
xiaomi_aqara:
  gateways:
    - mac:
      key: xxxxxxxxxxxxxxxx
      discovery_retry: 5
      interface: <IP_ADDRESS>

I am closing it since your config is incorrect


Calling plugin without shell

Now plugins shell out to cmd or sh only if the file extension is .bat or .sh
An option to shell to python was added, this allows for plugins in python to be developed
A python plugin example was added. To register the example just use
register crates\nu-plugin-python\plugin -e json

let's try it!


Construct git tag path properly when falling back to artifacts from main

Backport of #3670 to release-0.12
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/close


Accessibility Features

We are aiming for WCAG 2.1 AA compliance level

Voice Control
Screen Reader
Zoom
Color Contrast

We are going with Accessibility as a DoD requirement for issues so closing this Epic


Building python wheel for RTK failing

The documentation at http://wiki.openrtk.org/index.php/ is outdated and says the SimpleRTK module is needed. However, the SimpleRTK module is no longer needed and there is a setup.py file directly in the RTK directory itself. I'm unable to install using it though.
It would be nice if the documentation could be updated on how to use the updated Python module

Yes, the wrapping is being updated. We haven't updated the doc yet but we will before RTK's release. Basically, you can look at ITK's documentation for using those packages. If you want pre-compiled packages, I have a few here which require  the ITK packages v5.0b01.

With the recent release of RTK v2 and associated python packages, SimpleRTK is no longer maintained and I suggest to use the new packages.


[1.x] Prevent pulse:check from filling the file cache

This PR fixes an issue when using the file cache driver where the cache locks would continue growing on disk. This is due to the file cache driver not automatically removing files when the cache item has expired.
Fixes #238

Building failing until #261 is merged.


PHOENIX-7449 Handling already disabled table gracefully during dropTables execution

See jira for details.

Only flappers failed, merging


ASP.NET Core Identity 2.2 to 3.0

From @Eirenarch ...
I've tried searching around (ASP.NET Core Identity 3.0 breaking changes, Migrating ASP.NET Core Identity 2.2 to 3.0 and some other search terms) and I have failed to find a change log describing the changes in ASP.NET Core Identity 3.0. It would be great if you can provide docs on that

Does 3.0 include any changes to the database? Do I need to make any changes to the structure of my existing database in order to move to ASP.NET Core 3.0
What changes to the code are required

Side question - is it possible to use Identity 2.2 with ASP.NET Core 3.0 (I've tried and failed)

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

ID: 76f39eec-9dd1-6167-56ec-47b26e0b5063
Version Independent ID: f9f2b0f3-01eb-cf58-8767-194fe0fc0e44
Content: Migrate from ASP.NET Core 2.2 to 3.0
Content Source: aspnetcore/migration/22-to-30.md
Product: aspnet-core
Technology: aspnetcore-migration
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

One last note on this if you just need a quick ❓ answered: We recommend Stack Overflow for the more involved questions ... discussing coding approaches, for example. Slack and Gitter are great chats for asking questions and receiving immediate feedback.

Slack
Gitter

I've read the ASP.NET Core migration guide carefully but didn't realize the lack of mention of Identity changes (other than the UI templates) means there are none especially since . I just assumed they are listed somewhere else. Thank you.

Sure thing. The framework is huge; so generally, we only talk about the things that change. If you don't see something, it usually† means that it didn't change.
usually† ... but we do miss things for sure. This topic has some open issues for further work now.
If you run into a migration problem, those chats are great. If we need to add content to the migration topic, use the feedback form at the bottom of the topic. We'll get back to you quickly.


Add the --entry Parameter

This seems to be available in wasm-ld so I'm just testing what the effect is of adding it as a parameter of wasm-component-ld.

Sorry - meant to do this against my own fork!


[synthetics-job-manager] Update helm charts with latest node-browser-runtime

Is this a new chart
No
What this PR does / why we need it:

Adds latest node browser runtime deploy to helm charts

Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] Chart Version bumped
[ ] Variables are documented in the README.md
[ ] Title of the PR starts with chart name (e.g. [mychartname])

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


Integrate test-vectors bpf-loader in SVM

Problem
The firedancer team has released the test-vectors to ensure conformance between their validator and Agave. This means, we can include the tests in our CI to avoid any difference in transaction processing from future changes.
The vectors include tests for the following builtins:

BPF-loader
Stake program
System program
Vote program
Compute budget tests

Summary of Changes
This PR adds tests for the BPF-loader program. Further tests will be added in upcoming PRs.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 82.8%. Comparing base (e86ab5a) to head (9482b68).
Report is 15 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##           master    #1386     +/-   ##
=========================================
- Coverage    82.8%    82.8%   -0.1%
=========================================
  Files         872      872
  Lines      369310   369310
=========================================
- Hits       305846   305817     -29
- Misses      63464    63493     +29


fix: OrganizationHttpError did not get correct status code

Description
In status_code = response.status_code if exc.response else None, bool(exc.response) always returned False
How has this been tested?

Checklist

[ ] changelog was updated with notable changes
[ ] documentation was updated

/e2e --tests sdk,substrafl,mnist

End to end tests: :hourglass_flowing_sand: STARTING


Use native finmath curves in equities framework

What is this PR for?
The equities framework currently knows only flat yield curves. This change extends to general curves by incorporating net.finmath.marketdata.model.curves.DiscountCurveInterpolation
What type of PR is it?
Improvement
Todos
N/A
What is the related issue?
N/A
How should this be tested?
Tests already exist and still pass with the new curve framework. New test added for non-constant curves.
Screenshots
Questions:
Does the licenses files need update?
NO
Are there breaking changes for older versions?
NO
Does the change require additional documentation?
NO

Thank you. Personally I would prefer the package name "valuation" instead of "pricer". A "price" is formed by the market. A model performs a "valuation".


[Feature request] automatic video scheduling for the "youtube" provider

Please Describe The Problem To Be Solved
The Twitch affiliate agreement includes a timed exclusivity period (Affiliate agreement §2.2), which requires VODs and livestreams to be available only on Twitch for at least 24hrs. This means even with a project like autovod, there's still some manual labor - mainly with scheduling the VODs.
(Optional): Suggest A Solution
youtubeuploader supports specifying when to schedule a video to (for that to work, the visibility has to be set to private). if autovod incorporated that in some way, it would make lives of streamers who maintain a VOD channel so much easier.

Details of the technical implementation
If autovod supported automatically taking system time say, at the beginning and add 24hrs (or user specified time) and supply youtubeuploader with that information - this could help automate that compliance.
I can't find the specific CLI arg, but I know that if using the metaJSON argument, it's specified in the json as publishAt
If that's only supported while using the JSON file based metadata, I assume autovod would need to spit out a temporary JSON file somewhere and point youtubeuploader to it.
Tradeoffs made in design decisions
Depending on the complexity of the code or any issues this might cause, removing the user specified offset feature and keeping it 24hrs only could be a thing that could be done as a last resort.
Not sure how OS specific would be pulling the local system timezone to be able to supply youtubeuploader with the correct timestamp, but if it proves troublesome it could be beneficial to just make the timezone user specifiable (and assume the user specified the timezone in accordance to how the system keeps the time).
Caveats and considerations for the future
None at the moment.
EDIT: I have remembered autovod starts piping Streamlink into youtubeuploader at stream start, which means it's probably passing the metadata to YouTube at the very beginning. I have reflected the implications of this by rephrasing a bit.

This should be fairly easy to add.
I just have to think about the best way to add it:

By default publish 2 days later if youtube option is selected, then boolean var to turn it off?
Able to choose how many days you want delay upload  as a int var? default 0

It seems Twitch has removed section 2.2 regarding the ability to re-upload the VOD.
Is this still a wanted feature?

I guess not, because it was meant as a solution after all :)
Hopefully they don't change it back haha


FloatingPanel's contentViewController does not fit properly

Description
Setting a UIViewController as contentViewController for a floatingPanel does not fit properly
Expected behavior
The contents of contentViewController's view should fit the floatingPanel properly
Actual behavior
The contents of the view controller stretches beyond the floatingPanel's bounds
Steps to reproduce

Instantiate FloatingPanelController (FPC)
Instantiate a UIViewController (VC) from Storyboard
set the VC as contents for FPC

Code example that reproduces the issue
        // Initialize a `FloatingPanelController` object.
        floatingPanel = FloatingPanelController()

        // Assign self as the delegate of the controller.
        floatingPanel.delegate = self

        // Set a content view controller.
        let contentVC = UIStoryboard(name: "BooksList", bundle: nil).instantiateViewController(withIdentifier: "StoryID_BooksList_VC") as! BooksListVC
        contentVC.delegate = self
        contentVC.bookID = bookID
        floatingPanel.set(contentViewController: contentVC)

        // Track a scroll view(or the siblings) in the content view controller.
        floatingPanel.track(scrollView: contentVC.tableView)

        floatingPanel.isRemovalInteractionEnabled = true
        // Create a new appearance.
        let appearance = SurfaceAppearance()

        // Define shadows
        let shadow = SurfaceAppearance.Shadow()
        shadow.color = UIColor.black
        shadow.offset = CGSize(width: 0, height: 16)
        shadow.radius = 16
        shadow.spread = 28
        appearance.shadows = [shadow]

        // Define corner radius and background color
        appearance.cornerRadius = 8.0
        appearance.backgroundColor = .clear

        // Set the new appearance
        floatingPanel.surfaceView.appearance = appearance

        // floatingPanel.backdropView = backdropVw
        floatingPanel.backdropView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleBackdrop(tapGesture:))))

How do you display panel(s)?
self.present(floatingPanel, animated: true, completion: nil)

Add as child view controllers
Present modally: Yes

How many panels do you displays?

1

Environment
Library version
Latest
Installation method

CocoaPods

iOS version(s)
iOS 14.5.1
Xcode version
Version 12.5 (12E262)

I'm sorry I can understand what behavior is "properly"? One I guess is that you might want the content always fits the visible area of a panel. If so, you are able to use fitToBounds content mode of FloatingPanelController. See also Scale the content view when the surface position changes section in README for more detail.


Add in parent link for the generation of links government frontend

This adds in the parent link, this is hardcoded currently in
government frontend, this pull should enable us to do it in
the standard govuk way

cheers @tijmenb :+1:


Algebraic Expression Parser for the Analyzer Module

Need to have a full fledged algebraic expression parser that can handle complex algebraic expressions for specifying the performance objective.
Algebraic Expressions can be of type a/b such as in this example or a more complex one such as (a^2)/(b/2)*sqrt(c)).

@dinogun Thanks for adding an issue to address the need for an Algebraic Expression Parser.
To have a clear picture of the issue, I came up with a set of assumptions which I got after going through the issue description. Please correct me if I'm wrong

As the title mentions for the Analyser Module I expect the implementation should be in Java
I'm expecting the end goal of this expression parser is to come up with a dynamically calculated result based on the function variables listed in yaml and the expression given in the yaml

@bharathappali Can I pick this up?

@ShishirH - Bharath isn't working on this one, so go ahead. Thanks.

@dinogun I found this open source project which is licensed under the MIT Open Source license. It seems to be doing pretty much what are requirements are.
https://github.com/uklimaschewski/EvalEx

Is this issue still open if yes, then I would like to work on it

Closing this as this is now available through the PR #366


[vcpkg_configure_make] Report warning when unresolved arguments are passed in

In https://github.com/microsoft/vcpkg/pull/22321, I wrote a typo keyword OPTIOS and it was not recoginzed or report warnign message, that's not good.
Fix that.
Fixes #22535.

Depends on #22534

CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:85 (file):
  file failed to open for reading (No such file or directory):

    /mnt/vcpkg-ci/buildtrees/liburing/build-x64-linux-dbg-out.log
Call Stack (most recent call first):
  scripts/cmake/vcpkg_build_make.cmake:187 (vcpkg_execute_build_process)
  scripts/cmake/vcpkg_install_make.cmake:26 (vcpkg_build_make)
  ports/liburing/portfile.cmake:20 (vcpkg_install_make)
  scripts/ports.cmake:142 (include)

No idea why it happened.

vcpkg_configure_make does not match vcpkg_build_make when NO_DEBUG is enabled.


Update README.md to remove the mentioned shepherd

I guess the "shepherd" can be removed since he/she does not exist any more. :+1:

@saschagrunert A number of teams have shepherds. See the Rust Team page.

Alright, then I guess we have to re add the role of the shepherd or just a minimum description about what a shepherd_ is, right? It seems a bit out of context here.

The change is accurate regardless.


How to use isTablet or isMobile in component

Hi all
It works great using it in html like this:

I'll show you if I'm a smartTv device.

I'll show you if I'm a desktop device.

I'll show you if I'm a tablet device.

I'll show you if I'm a mobile device.

But I need to use isDesktop, isTablet etc... inside component.
Is this possible?
thanks

I don't think you can do that with this tool, you can however use the MatchMedia API.


remove empty manual page

There is an empty manual page here:
https://mne-tools.github.io/dev/manual/preprocessing/filter.html
This PR deletes it.

thx @drammock


Signal Detection

The following is the signal I collected using USRP. May I ask if this is a DroneID burst signal?

yes! it is

did the decoding changed?

It does look correct in terms of number of OFDM symbols and location/structure of the ZC sequences. I can't tell if the sample rate is correct from the image though, so make sure that you're capturing at 15.36 MSPS or properly resampling in the process_file.m script


InvalidFlrFileException on parsing attempt

I am getting the following exception:
$ ./run.sh -f flight_recording_18060comlinkedinparseqexamplesimplePerfFuseExample12801.jfr -o ~/dev/temp/flame.txt
Exception in thread "main" java.lang.RuntimeException: com.jrockit.mc.flightrecorder.internal.parser.binary.InvalidFlrFileException
at com.jrockit.mc.flightrecorder.FlightRecordingLoader.loadFile(FlightRecordingLoader.java:194)
at org.wso2.jmc.JFRToFlameGraphWriter.write(JFRToFlameGraphWriter.java:57)
at org.wso2.jmc.Application.main(Application.java:33)
Caused by: com.jrockit.mc.flightrecorder.internal.parser.binary.InvalidFlrFileException
at com.jrockit.mc.flightrecorder.internal.parser.binary.ChunkHeader.(ChunkHeader.java:23)
at com.jrockit.mc.flightrecorder.FlightRecordingLoader$ChunkBuffer.readHeader(FlightRecordingLoader.java:230)
at com.jrockit.mc.flightrecorder.FlightRecordingLoader.(FlightRecordingLoader.java:79)
at com.jrockit.mc.flightrecorder.FlightRecordingLoader.loadFile(FlightRecordingLoader.java:157)
at com.jrockit.mc.flightrecorder.FlightRecordingLoader.loadFile(FlightRecordingLoader.java:192)
... 2 more
Have you run into this issue? I can open the flr file without a problem using JMC. I am using jdk1.8.0_60 and JMC <IP_ADDRESS>303.

I haven't seen this issue before. Is it same for all JFR files? Are you running "jfr-flame-graph" from the same Java version? The run.sh uses "java" command directly, so, please check that.

It turned out that flr dump was gzipped. Looks like at least flr dumps obtained by Eclipse JMC plugin are gzipped.

I had the same problem with for dumps which were created from Mission Control. Uncompressing the file with gzip -d solved the problem.

If you are interested, I have provided a pull request that decompresses flight recorder files in case they are compressed.

Hi @jodzga,
Now there is an option to decompress the JFR file. I merged @mgruendler's PR #6
Thanks a lot for reporting the issue.


FileSystems should throw exception if filesystem for schema is not found

Not failing and falling back to LocalFileSystem creates hard to find bug and delayed failure.
Example:
File path: gs://my_bucker/my_folder
Running the program from /root/
If GCS is not added then in the current code we create a local file "/root/gs://my_bucker/my_folder" without any exception or message.

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Spark

Go

---
---
---
---
---

Java

Python

---

---
---
---

R: @lukecwik @jkff

Thanks - I've hit this issue many times too, but will this work correctly on Windows? (for paths like c:/path/to/file.txt)

No, It will not work for windows. The patter is
<schema>:* which will extract "c" as schema in this case.
We can change the pattern to
<schema>://* to fix this.

Sounds reasonable. Or check that scheme has more than 1 character.

Thanks!


SequentialInferenceTest takes too long (15+ minutes on my machine)

it's worth simplify or add some description how to run just unit tests and separate long running "integration" tests in a separate gradle command.

Hi, @kokorins
The running of the JUnit test only is possible via api:test like it described in the Contribution Guidelines file

How about that long-running tests are always performed before a PR is merged into the main branch, but are optional for making a PR and contributing to that PR? That way short tests can still be performed during development whilst not hindering devs from working. Ideally these final tests could be performed on a central server 😉 @zaleslaw.
I am not sure if something like this could be automated and how hard it would be to do so.

The time of tests is reduced in many places due to changing the main constants, but integration tests are kept as a part of testing


CMMD dataset

Hi,
I am wondering how did you divide the train/test/validation for the CMMD dataset. Is there any file list that you can provide?
Cheers

Hi @Ch1kara, thanks for your question! We used full CMMD dataset for evaluation, i.e. all 1,775 studies. This is a relatively new dataset so none of the models in the meta-repository were trained using CMMD data. Please refer to the TCIA website for CMMD dataset details/download: https://wiki.cancerimagingarchive.net/pages/viewpage.action?pageId=70230508.

Thank you so much for your explanation!

Hi Jwitos,
I am wondering if it's possible for you to share the data.pkl generator file for CMMD dataset?
Cheers


bug or idk

its either a bug in the miner or it has to be like that
when i upload miner into virustotal and go to behavior
i see this: https://prnt.sc/12q91mi
does that mean my email is too long? or it has to be like that? because "gmail.com" is missing...

and there's an extra %

I'm not sure how virustotal does it (maybe they shorten the string) but you don't need to include an actual email if you don't want to. You can just enter test as the email and it will work as a password

If you want to see the actual command line string the use something like Process Hacker and hover over the miner process and you should be able to see them.
Also keep in mind that if you upload anything to virustotal it will become detected by all antiviruses since they are a distributor.

If you want to see the actual command line string the use something like Process Hacker and hover over the miner process and you should be able to see them.
Also keep in mind that if you upload anything to virustotal it will become detected by all antiviruses since they are a distributor.

then comes the next eth miner update?

I will repost a former reply

Well I'll try to get in as much time to work on it as I can but for the next 20-30 days I'll only have 1-2 hours a day of time away from work if I'm lucky. Moreover, there are still quite a few things to get to work and add into the ETH miner itself and no one has found a solution for the AMD fix that can be done automatically or worked around since the problem is with the AMD drivers themselves.


fix: minor stale naming fix

getDataTreePath --> getNoteHashTreePath
+ run yarn format in yarn-project
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

[ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
[ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to relevant issues (if any exist).

Benchmark results
No metrics with a significant change found.

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit 6c20b459 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,444
179,588
716,132

l1_rollup_calldata_gas
223,044
868,100
3,447,788

l1_rollup_execution_gas
842,131
3,595,208
22,203,157

l2_block_processing_time_in_ms
1,967 (-3%)
7,545 (+1%)
29,560

note_successful_decrypting_time_in_ms
291 (-2%)
859
3,137

note_trial_decrypting_time_in_ms
96.0 (-6%)
67.0 (-1%)
133 (-1%)

l2_block_building_time_in_ms
13,076 (-1%)
52,030
208,402

l2_block_rollup_simulation_time_in_ms
11,763 (-1%)
46,819
187,184

l2_block_public_tx_process_time_in_ms
1,269
5,081
20,731 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
21,752 (+1%)
42,663 (+1%)

note_history_successful_decrypting_time_in_ms
2,073 (+3%)
4,033 (+3%)

note_history_trial_decrypting_time_in_ms
120 (-2%)
142 (-1%)

node_database_size_in_bytes
1,632,650
1,101,300

pxe_database_size_in_bytes
27,188
54,187

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
72.6 (+1%)
61,697
18,841

private-kernel-ordering
43.6
24,233
8,089

base-rollup
1,773
656,309
811

root-rollup
75.4 (-3%)
4,072
1,097

private-kernel-inner
53.4 (+1%)
81,504
18,841

public-kernel-private-input
41.7 (+1%)
41,455
18,841

public-kernel-non-first-iteration
26.6 (+1%)
41,497
18,841

merge-rollup
0.993 (+12%)
2,592
873

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
8,723
27,240

If I was to be pedantic, I'd always refer to it as a 'sibling path' 😝


use defaults and process once

by using default liquid string filter, you get your variable exactly as you want it and then reuse instead of having to make the same evaluation multiple times.
I didnt test this change, but its pretty easy to do so and I use them for my jekyll sites already so I dont expect any problems.
Also, I left a few other things that you can do with these types of changes out so that I didnt overwhelm you. Good start!

Right on man!
Thank you so much for this, I will be taking a look at it as soon as I have the time.
This kind of help is exactly what I was hoping to get.
:)


Allow item with no categories

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 4 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 84.158%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
255

Relevant Lines:
303

💛  - Coveralls


Google Fonts not working / gstaticadssl.l.google.com

According to my pi-hole installation gstaticadssl.l.google.com is blocked by this:
Match found in https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts:
gstaticadssl.l.google.com
This would not be a problem but...
fonts.gstatic.com.      300     IN      CNAME   gstaticadssl.l.google.com.
gstaticadssl.l.google.com. 300  IN      A       <IP_ADDRESS>
This means that all CDN Google fonts used will not work anymore.
However, given the name "g static ad ssl" this might be a change that would show more Google ads probably.
This is however very annoying. Though I could just add a custom exception in pi-hole I think I'm not the only one who does not like Google Fonts not working anymore per default.

@tricoos  it's already been FIXED. Update your lists please.

@dnmTX Ah, thanks. I did search for "fonts" before posting but failed to search in closed issues. Sorry.


Add sorting by timestamp before the fit in catboost models

Before submitting (must do checklist)

[x] Did you read the contribution guide?
[x] Did you update the docs? We use Numpy format for all the methods and classes.
[ ] Did you write any new necessary tests?
[x] Did you update the CHANGELOG?

Proposed Changes
Add sorting by timestamp before the fit in catboost models.
Closing issues
Closes #792.

It was checked that sorting doesn't influence the result of predict. So, it is done only in fit.

The results of running with and without sorting in fit.
default:

SMAPE: 8.113868
MAE: 33.117068

default + has_time=True

SMAPE: 8.445682
MAE: 33.865089

sort(train):

SMAPE: 8.096917
MAE: 33.602366

sort(train) + has_time=True:

SMAPE: 8.318793
MAE: 34.054797

Script:
import pandas as pd

from etna.models import CatBoostMultiSegmentModel
from etna.datasets import TSDataset
from etna.transforms import LagTransform, SegmentEncoderTransform, DateFlagsTransform
from etna.pipeline import Pipeline
from etna.metrics import SMAPE, MAE

HORIZON = 14

def main():
    df = pd.read_csv("examples/data/example_dataset.csv")
    df_wide = TSDataset.to_dataset(df)
    ts = TSDataset(df=df_wide, freq="D")

    model = CatBoostMultiSegmentModel(has_time=True)
    transforms = [
        LagTransform(in_column="target", lags=list(range(HORIZON, 50)), out_column="lags"),
        SegmentEncoderTransform(),
        DateFlagsTransform(),
    ]
    pipeline = Pipeline(model=model, transforms=transforms, horizon=HORIZON)

    metrics, _, _ = pipeline.backtest(ts=ts, metrics=[SMAPE(), MAE()], n_folds=5)

    print(metrics.mean())

if __name__ == "__main__":
    main()

Codecov Report

Merging #1337 (b7af7d3) into master (aac0fe1) will increase coverage by 0.13%.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##           master    #1337      +/-   ##
==========================================
+ Coverage   88.95%   89.09%   +0.13%
==========================================
  Files         204      204
  Lines       12641    12636       -5
==========================================
+ Hits        11245    11258      +13
+ Misses       1396     1378      -18

Files Changed
Coverage Δ

etna/models/catboost.py
100.00% <100.00%> (ø)

... and 8 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


rust impl structure

@robinbudd @jared-s

note the move of ockam crates from implementations/rust/ to implementations/rust/ockam/
and implementations/rust/examples to implementations/rust/examples/workers ... so we can have many example crates under implementations/rust/examples

@robinbudd @jared-s

note the move of ockam crates from implementations/rust/ to implementations/rust/ockam/
and implementations/rust/examples to implementations/rust/examples/workers ... so we can have many example crates under implementations/rust/examples

this makes the C, Rust and Elixir impl top level folders roughly identical.

this makes the C, Rust and Elixir impl top level folders roughly identical.