TLHC platform views on Android 14/15 stop updating on resume

Steps to reproduce
I've created a new project with flutter create and integrated a simple test view on Android side as per https://docs.flutter.dev/platform-integration/android/platform-views.
Set up FlutterEngine cache as per Step 3 of this guide https://docs.flutter.dev/add-to-app/android/add-flutter-screen#step-3-optional-use-a-cached-flutterengine.
Steps to reproduce

Launch the app
Switch to Home Screen
Open an app or two(camera, phone app etc.)

This step can be skipped if Developer option > Don't keep activities is enabled

Go back to the sample app.

Environment

Pixel 8 running AP31.240223.016.A3(Android 15 Preview)

Sample project: platform_view_test 3.zip
Expected results
The platform view hosted by Flutter app is displayed and interactive.
Actual results

On Galaxy the platform view is not displayed, instead the place it used to occupy is rendered solid white.
On Pixel the platform view is displayed, but not interacting(doesn't respond to touch).

Code sample
Code sample
Dart:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
      final Map<String, dynamic> creationParams = <String, dynamic>{};

    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text("App"),
      ),
      body: AndroidView(
        viewType: "nativeView",
        layoutDirection: TextDirection.ltr,
        creationParams: creationParams,
        creationParamsCodec: const StandardMessageCodec(),
      ),
    );
  }
}

Platform side:
class MyApplication : Application() {
    private lateinit var flutterEngine : FlutterEngine

    override fun onCreate() {
        super.onCreate()

        // Instantiate a FlutterEngine.
        flutterEngine = FlutterEngine(this)

        // Start executing Dart code to pre-warm the FlutterEngine.
        flutterEngine.dartExecutor.executeDartEntrypoint(
            DartExecutor.DartEntrypoint.createDefault()
        )

        // Cache the FlutterEngine to be used by FlutterActivity.
        FlutterEngineCache
            .getInstance()
            .put("my_engine_id", flutterEngine)
    }
}

class RootActivity: Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        startActivity(
            FlutterActivity.CachedEngineIntentBuilder(MainActivity::class.java, "my_engine_id")
                .build(this)
        )
        finish()
    }
}

class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        flutterEngine
            .platformViewsController
            .registry
            .registerViewFactory("nativeView", NativeViewFactory())
    }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/1478430/63054699-c025-43ca-a205-1ecc82eb2c99

Logs
Logs
---------------------------- PROCESS STARTED (19824) for package com.example.platform_view_test ----------------------------
2024-04-09 14:01:09.947 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 171979766; UID 10274; state: ENABLED
2024-04-09 14:01:09.947 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 242716250; UID 10274; state: DISABLED
2024-04-09 14:01:09.959 19824-19824 ApplicationLoaders      com.example.platform_view_test       D  Returning zygote-cached class loader: /system_ext/framework/androidx.window.extensions.jar
2024-04-09 14:01:09.959 19824-19824 ApplicationLoaders      com.example.platform_view_test       D  Returning zygote-cached class loader: /system_ext/framework/androidx.window.sidecar.jar
2024-04-09 14:01:09.962 19824-19824 ziparchive              com.example.platform_view_test       W  Unable to open '/data/data/com.example.platform_view_test/code_cache/.overlay/base.apk/classes.dm': No such file or directory
2024-04-09 14:01:09.975 19824-19824 ziparchive              com.example.platform_view_test       W  Unable to open '/data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/base.dm': No such file or directory
2024-04-09 14:01:09.975 19824-19824 ziparchive              com.example.platform_view_test       W  Unable to open '/data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/base.dm': No such file or directory
2024-04-09 14:01:10.011 19824-19824 nativeloader            com.example.platform_view_test       D  Configuring clns-6 for other apk /data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/base.apk. target_sdk_version=33, uses_libraries=, library_path=/data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/lib/arm64:/data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.example.platform_view_test
2024-04-09 14:01:10.024 19824-19824 GraphicsEnvironment     com.example.platform_view_test       V  Currently set values for:
2024-04-09 14:01:10.024 19824-19824 GraphicsEnvironment     com.example.platform_view_test       V    angle_gl_driver_selection_pkgs=[com.android.angle, com.linecorp.b612.android, com.campmobile.snow, com.google.android.apps.tachyon]
2024-04-09 14:01:10.024 19824-19824 GraphicsEnvironment     com.example.platform_view_test       V    angle_gl_driver_selection_values=[angle, native, native, native]
2024-04-09 14:01:10.024 19824-19824 GraphicsEnvironment     com.example.platform_view_test       V  com.example.platform_view_test is not listed in per-application setting
2024-04-09 14:01:10.025 19824-19824 GraphicsEnvironment     com.example.platform_view_test       V  Neither updatable production driver nor prerelease driver is supported.
2024-04-09 14:01:10.049 19824-19897 ResourceExtractor       com.example.platform_view_test       I  Found extracted resources res_timestamp-1-1712655907628
2024-04-09 14:01:10.052 19824-19896 nativeloader            com.example.platform_view_test       D  Load /data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/lib/arm64/libflutter.so using ns clns-6 from class loader (caller=<unknown>): ok
2024-04-09 14:01:10.059 19824-19824 tform_view_test         com.example.platform_view_test       W  type=1400 audit(0.0:18469): avc:  denied  { read } for  name="max_map_count" dev="proc" ino=6767069 scontext=u:r:untrusted_app_32:s0:c18,c257,c512,c768 tcontext=u:object_r:proc_max_map_count:s0 tclass=file permissive=0 app=com.example.platform_view_test
2024-04-09 14:01:10.133 19824-20001 vulkan                  com.example.platform_view_test       D  searching for layers in '/data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/lib/arm64'
2024-04-09 14:01:10.142 19824-19941 flutter                 com.example.platform_view_test       I  The Dart VM service is listening on http://<IP_ADDRESS>:40127/VYwrTLx62Uk=/
2024-04-09 14:01:10.160 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 279646685; UID 10274; state: DISABLED
2024-04-09 14:01:10.191 19824-20001 vulkan                  com.example.platform_view_test       D  added global layer 'VK_LAYER_KHRONOS_validation' from library '/data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/lib/arm64/libVkLayer_khronos_validation.so'
2024-04-09 14:01:10.216 19824-20001 vulkan                  com.example.platform_view_test       D  searching for layers in '/data/app/~~Jwigw4BUI7MoNTTzWd31uw==/com.example.platform_view_test-mcIrPFuHK3VSxqnVEsDqsg==/base.apk!/lib/arm64-v8a'
2024-04-09 14:01:10.228 19824-19824 tform_view_test         com.example.platform_view_test       W  Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J (unsupported,test-api, reflection, allowed)
2024-04-09 14:01:10.228 19824-19824 tform_view_test         com.example.platform_view_test       W  Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (unsupported, reflection, allowed)
2024-04-09 14:01:10.228 19824-19824 tform_view_test         com.example.platform_view_test       W  Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray; (unsupported, reflection, allowed)
2024-04-09 14:01:10.228 19824-19824 tform_view_test         com.example.platform_view_test       W  Accessing hidden method Landroid/util/LongArray;->get(I)J (unsupported, reflection, allowed)
2024-04-09 14:01:10.247 19824-19824 ContentCaptureHelper    com.example.platform_view_test       I  Setting logging level to OFF
2024-04-09 14:01:10.254 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 237531167; UID 10274; state: DISABLED
2024-04-09 14:01:10.301 19824-19824 WindowExtensionsImpl    com.example.platform_view_test       I  Initializing Window Extensions.
2024-04-09 14:01:10.581 19824-19855 tform_view_test         com.example.platform_view_test       I  Compiler allocated 4683KB to compile void android.view.ViewRootImpl.performTraversals()
2024-04-09 14:01:10.664 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 171228096; UID 10274; state: ENABLED
2024-04-09 14:01:10.666 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 210923482; UID 10274; state: ENABLED
2024-04-09 14:01:10.666 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 63938206; UID 10274; state: DISABLED
2024-04-09 14:01:10.703 19824-19855 tform_view_test         com.example.platform_view_test       I  Compiler allocated 4213KB to compile void android.widget.TextView.<init>(android.content.Context, android.util.AttributeSet, int, int)
2024-04-09 14:01:10.705 19824-19824 PlatformViewsController com.example.platform_view_test       I  Hosting view in view hierarchy for platform view: 0
2024-04-09 14:01:10.706 19824-19824 PlatformViewsController com.example.platform_view_test       I  PlatformView is using ImageReader backend
2024-04-09 14:01:10.706 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 236825255; UID 10274; state: DISABLED
2024-04-09 14:01:10.770 19824-19824 ImageTextu...istryEntry com.example.platform_view_test       E  Dropping PlatformView Frame
2024-04-09 14:01:10.777 19824-19824 ContentCaptureHelper    com.example.platform_view_test       I  Setting logging level to OFF
2024-04-09 14:01:11.933 19824-19824 ImageTextu...istryEntry com.example.platform_view_test       E  Dropping PlatformView Frame
2024-04-09 14:01:14.605 19824-19824 VRI[MainActivity]       com.example.platform_view_test       D  visibilityChanged oldVisibility=true newVisibility=false
2024-04-09 14:01:14.677 19824-19824 WindowOnBackDispatcher  com.example.platform_view_test       W  sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda11@e05917c
2024-04-09 14:01:17.388 19824-19824 ContentCaptureHelper    com.example.platform_view_test       I  Setting logging level to OFF
2024-04-09 14:01:18.676 19824-19824 Compatibil...geReporter com.example.platform_view_test       D  Compat change id reported: 289878283; UID 10274; state: DISABLED
---------------------------- PROCESS ENDED (19824) for package com.example.platform_view_test ----------------------------

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.19.5, on macOS 14.4.1 23E224 darwin-arm64, locale en-FI)
    • Flutter version 3.19.5 on channel stable at /Users/romanlaitarenko/Downloads/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 300451adae (12 days ago), 2024-03-27 21:54:07 -0500
    • Engine revision e76c956498
    • Dart version 3.3.3
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/romanlaitarenko//Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/romanlaitarenko//Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] VS Code (version 1.87.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.86.0

[✓] Connected device (6 available)
    • Pixel 8 (mobile)            • 37280DLJH000VR                       • android-arm64  • Android 14 (API 34)
    • sdk gphone64 arm64 (mobile) • emulator-5554                        • android-arm64  • Android 14 (API 34) (emulator)
    • Roman’s iPhone (2) (mobile) • 00008110-00110D1614F9801E            • ios            • iOS 17.4.1 21E236
    • iPhone 15 Pro (mobile)      • AB1C69B3-AE98-458C-BD91-BEFAFF2357B0 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-4 (simulator)
    • macOS (desktop)             • macos                                • darwin-arm64   • macOS 14.4.1 23E224 darwin-arm64
    • Chrome (web)                • chrome                               • web-javascript • Google Chrome 123.0.6312.59

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Thanks for the report @evil159
Most likely you are hitting https://github.com/flutter/flutter/issues/139630 that you can check and confirm since you are also seeing similar behavior you mentioned on Samsung device running Android 14.
https://github.com/flutter/flutter/issues/139630#issuecomment-2007673827 for your reference.

@darshankawar Indeed the issue on Samsung can be explained by that, but then there is a separate bug on Pixels.

@darshankawar I've updated this issue accordingly, could you take a look at this again?
I don't believe that the fix that Samsung is preparing for Galaxy will fix the issue on Pixel phones.

I've been able to reproduce this issue on a Pixel 7 Pro.

I added a lot of traces to the engine and this is my current understanding of the bug:
After we resume the ImageReader.OnImageAvailableListener callback never fires again.
We continue to render frames and notify the engine that a frame is available but the image reader is never notified and when we ask the imagereader for its latest frame null is returned.

Another note:
The difference between stable and master is because https://github.com/flutter/engine/pull/50792 removed the cached first frame. That is,
When stable resumes we use the last frame rendered before we were backgrounded.
When main resumes we have nothing to render and so you see the Flutter app's background color.
Both stable and master would be fixed if ImageReader.OnImageAvailableListener was firing as expected.

Was not able to reproduce with a pixel fold running an unreleased version of android 14.
pipit-userdebug UpsideDownCake MASTER 93172441 dev-keys

Was not able to reproduce with Nexus 6 running android 7.1.2 build number n2g47w

I was able to reproduce on a pixel 6 running android 14 build number AP1A.240405.002

Today's update:
We've tried versions of Flutter back to 2022 and none of them work correctly on Android 14 (to be more precise: there are some Android 14 builds that work and some that do not, early Android 15 builds are broken too).
We have not reproduced this issue on Android < 14.
Simplest reproduction steps:
Open sample app
Background sample app.
Launch the camera.
Background camera.
Use task switcher to select sample app.
We are trying to bisect on the Android side to understand more.

Also, it does not appear related to having a cached engine.

Also, rotating the phone will fix the app.

A coworker bisected this issue using an emulator and was able to find that the problematic android change happened between between build 10480234 (from 7/11/2023) and build 10488473 (from 7/12/2023).
Links for googlers
10480234:

Bug for the build https://b.corp.google.com/issues/290863690
Build info https://coastguard.corp.google.com/build/ZP1A.230712.001/
Bugs fixed https://groups.google.com/a/google.com/g/android-build-police/c/ijdTOnVtluI/m/Dr3UlwCWCAAJ

For the second build I can't find any records.
https://groups.google.com/a/google.com/g/android-build-police/search?q=after%3A2023-07-11 before%3A2023-07-13

Build names appear to be
10480234  -> ZP1A.230712.001
10488473 -> ZP1A.230713.001
https://android-build.corp.google.com/build_explorer/branch/git_trunk-release/?gridSize=20&selectionType=START_BUILD_WINDOW&startBuildId=10488473&numBuilds=20&buildType=default
I think this url will let us search for changes but there were 1000 that landed.
https://android-build.corp.google.com/build_explorer/branch_dashboard/git_trunk-release/build_id/10488473/?gridSize=20&activeTarget=akita-user

From the android team a better way to search commits.
https://android-build.corp.google.com/range_search/cls/from_id/10488473/to_id/10480234/?s=menu&includeTo=0&includeFrom=1

Current belief is that this is an android regression that appeared during android 14 and we have escalated to the android team. Internal bug b/330184547

https://googleplex-android.googlesource.com/platform%2Fframeworks%2Fbase/+/20a4d68338ca000e3ee0c5c71a01552eab1061e1
the commit we think is the source of the error.

Is there any workaround for this issue? Any way to make that ImageReader.OnImageAvailableListener firing again?

We don't know of any work around that apps can trigger as of this moment if we do we will add it to this bug.  The android team has informed us of a way flutter can avoid this error and we are working on implementing a fix. That fix will require apps to adopt a new version of flutter.

The android team has confirmed that the commit we thought was the issue was indeed the problem and has a fix on their side. Unfortunately android source changes take a long time to ship and live in the wild for a longer time. We are working to avoid the classes that are bugged and will update this issue when there is something app developers can do.

WebView is not functioning properly due to this issue. For my app, multiple Samsung and Pixel users have reported that the app displays a white screen upon resume when the UI utilizes WebView, as noted in #139039.

Also, rotating the phone will fix the app.

I tested this on a Pixel 7 running Android 14, but unfortunately, it did not resolve the issue :cry:

This is crazy that flutter webview does not work on the latest version of Android. The response in the previous thread was incredibly poor as well, very dismissive.
"Locked as spam" on an issue this critical. I'm sure a lot of other people using or looking at Flutter will be steered away by this type of developer interaction.
We've just launched a new app on flutter and every user with a recent Samsung or Android it seems are getting a lot of white screens, their only option is to close and open the app again. I'd put this in the P-Minus-Zero category of priorities if Flutter is to be taken seriously.

@phcd30 there is a pull request open linked on this pr with a fix for flutter. https://github.com/flutter/engine/pull/52370

Do you think it will be fixed with a flutter update without the need to wait for Android 15 or a patch to Android 14?
The other thread starts with this statement - "Android 15 will include the fix. Unclear if Android 14 will be patched."

@phcd30 Flutter is an open source project, many of us volunteer to work on this project in our free time; others are employed by companies that donate their resources and time to the project. We all have our own list of what is most critical to us and what we need to work on next to address our needs.
If this is "P-Minus-Zero" for you, your best option is to contribute a fix or hire someone to work on a fix. We would certainly welcome you or someone you hire into the community and would love to help you become productive contributors in whatever way we can. You can find more in our contributing guide.
I encourage you to reread your comment and think how it might be received by someone whom you are not paying but who has nonetheless contributed their time to create a product that you now rely on.

Also, if your logging and alerting are on point you should be lighting up like a Christmas tree, not asking people to repro on different devices.

For privacy reasons, we do not log anything from applications shipped with Flutter, so we have to rely on folks who do log information from their users to report that information to us.

Happy to test this fix if possible?
My feedback is constructive, take it as it's intended. If Flutter is viewing it's as a hobby project, as opposed to the marketing on the flutter home page -

it would be irresponsible for anyone to consider it. Please update the marketing to reflect the views and responses on this repo.

Please review our code of conduct, especially the part relating to respect people's work and being kind and welcoming. I have blocked your account for seven days.

(Please move discussion about how Flutter is marketed to another issue or to a Discord thread; it is off topic for this issue. I'm happy to discuss that particular topic, but we should keep issues focused on the topic at hand, as per https://github.com/flutter/flutter/wiki/Issue-hygiene#issues-are-not-always-the-best-venue-for-discussions. If you do wish to have that discussion, please cc me! Thanks.)

"Please consult us about how we deceived you and how we can improve this going forward" is not an appropriate response.

We know this issue is serious and have spent multiple engineering weeks tracking down the root cause.
Current recap for those that are following.
On Android 14 platform views encounter an Android bug where we stop getting draw information from android when memory trim is called, usually the app is in the background. This causes platform views to render transparent BUT the actual underlying views are still there and are interactable. This set of trigger conditions is not unique to flutter. The apis we use would also fail for Android apps. Additionally there was a change between flutter 3.19 and flutter master (probably 3.20) where for platform views we no longer cache the last frame and draw it onResume until we get the surface information from android. Before that previous frame helped hide this issue since the underlying android views were still interactable.
To the best of my knowledge, this issue does not appear when using the app regularly. It does not appear when backgrounded unless under memory pressure. Rotating the phone clears the condition. Evicting the app and relaunching clears the condition.
In order to detect the bug with an automated test the test would have to 1) Launch an app with a platform view, 2) background the app, 3) trigger memory trim, 4) relaunch the app 5) Scroll or some other action to move items 6) Take a screenshot and pixel compare.
If you do not do step 5 then the test would continue to work because the last frame would have been preserved and you could still click the button and check for the callback or any other touch interaction. If you did step 5 but did not pixel compare a screenshot then the test would also have passed again because the underlying buttons are there but not visible/updating. As a general rule combining screenshots with scrolling is extremely flakey so we have not included those types of tests.
Also extending this bug is that it was reported as a samsung specific issue and the contributors working on this issue did not have access to samsung code to see how it differed. Samsung confirmed reproducibility but cross company interactions are significantly slower and then we were told Samsung had a fix but the code was not something we could review. I will admit my own fault that I assumed that Pixel phones would always have the newest version of android so I did not consider that this could have been a pure Android issue.
When we eventually tried to prove or disprove that Android had the bug we bisected a years worth of google internal android builds and narrowed it down to 2 days worth of commits (6 thousand commits) then searched for commits that could have touched the code at issue. The android commit at issue is linked above.
If you are here you probably care most about the fix.
Android has a fix committed to their upstream but their release process is slower than we know our customers want. We have confirmed that Android's fix will be in Android 15. We are escalating to see if we(flutter) can get them(Android) to backport the fix to future patch versions of Android 14, if that is approved and I am allowed to share android release information I expect to update this bug . @johnmccutchan has a pull request up now that has a work around to avoid the bug. Once that pr is merged, flutter plans to backport that pr into older flutter engine builds. This bug will be updated with which flutter versions have the fix when they land and the version numbers of those builds. Finally if you are running a custom engine or an engine older than we backport you can apply the patch yourself and build with a custom engine.

A way to force the background trim condition `adb shell am send-trim-memory   BACKGROUND

That’s a great effort from your team, people should see how the team is squeezing their brains to solve the flutter issues and make it a better framework
Thanks a lot

This is a great job and thanks all for making this progress so far.

This causes platform views to render transparent BUT the actual underlying views are still there and are interactable.
To the best of my knowledge, this issue does not appear when using the app regularly. It does not appear when backgrounded unless under memory pressure. Rotating the phone clears the condition. Evicting the app and relaunching clears the condition.

I see this problem on both Pixel 4 and Pixel 8 Pro, both on Android 14. However, my symptoms are somewhat different than this description.

I get a "black screen of death" when backgrounding the app for some period of time, e.g. 5 minutes (presumably under memory pressure, but not always in any obvious way), then switching back to the app.
The app is not responsive in any way -- I sometimes (but not always) get an ANR dialog if I leave the app in the "black screen of death" view for a few seconds.
I cannot connect a debugger to the running Flutter instance, which confirms that the app is not responsive under the black screen.
Rotating the screen does not clear the condition in my case.
The Back button pops the whole app, rather than what would be the current view in the app, which is another indication that the app is unresponsive.

Thank you to Flutter team for their hard work.
But when will the work around be available on the stable channel? Our users using Pixel are still having trouble.

3.22 has had the fix pr cherry picked into the engine. We are working on creating a new framework build that has the updated engine code. 3.22 is scheduled to land as stable sometime around the Google IO timeframe (next week).
Standard response below.
This issue has been fixed by https://github.com/flutter/engine/pull/52370  To determine what versions of Flutter contain the fix, please see where’s my commit. If the commit has no release tag, it is currently only available in the master channel.

Is this fixed in 3.22.0? Cannot find anything about https://github.com/flutter/engine/pull/52370 in the release notes.

I think the fix is merged in 3793869.
I found that under flutter/engine/3.22.0. Also the fix was mentioned in What’s new in Flutter 3.22: Platform views improvements.

I see that this issue is fixed with Flutter 3.22.0 for the mentioned steps, but I see this happening following different steps instead. Now if the platform view is your initial page and you press back button to move app to background, on launching again, you will see that the blank issue is reproducible. So looks like issue is still not fully fixed.
Another interesting thing is that after this, if you follow the steps for old issue i.e - switch from another recent app to sample app from recent apps launcher, the platform view starts working again.

Promised update on the android fix.
The change to fix existing flutter apps (pre 3.22) on android 14 has been cherry picked into the July release of Pixel. I am still working on the escalation for other manufacturers.

Promised update on Android fix for non google manufacturers. The patch could not cherry pick cleanly into AOSP and thus has been deemed too risky to introduce as an option to other OEMs. We have been told that Android 15 will have the fix.
The first patch release for 3.22 should be out wednesday 2024-06-03 which will contain the last known flutter change to avoid the underlying android issue.

So, Samsung devices with Android 14 will crash or Flutter version 3.22.2 will fix it?

I am actively working on a postmortem and hoping it gets approval to be public.
@amrgetment yes, 3.22.0 will fix most cases. There was a corner case for multi activity apps where one app was not a flutter activity that is fixed in 3.22.2. I will note that apps dont crash, they fail to get new pixels rendered for platform views.

I am actively working on a postmortem and hoping it gets approval to be public.
@amrgetment yes, 3.22.0 will fix most cases. There was a corner case for multi activity apps where one app was not a flutter activity that is fixed in 3.22.2. I will note that apps dont crash, they fail to get new pixels rendered for platform views.

Post mortem published docs/postmortems/Postmortem-Platform-View-android-14-regression


Fixed Legislator

Per the advice of Jesse, I updated the Arizona's District 4 State Senator to Christine Marsh.

Appreciate the work on this! We do want to keep the old legislator information, so I would appreciate if you could follow the steps outlined here as part of this PR so their information remains in our system.

This was remedied with a new scrape


rbd: removed a workaround to fix rbd snapshot scheduling

Removed to code workaround introduced in https://github.com/ceph/ceph-csi/pull/2656 to workaround the rbd snapshot scheduling bug.  once the rbd fixes the issue we will remove this in cephcsi
PR needs to be reverted back

[ ] #2656
[ ] #2669
[ ] #2694

@Madhu-1 iic, this is done, isnt it ?

@humblec this is a tracker to remove the workaround in cephcsi. once ceph identifies the issue will remove the workaround.

Thanks!

https://github.com/ceph/ceph-csi/pull/3413 fix it


support for GPUs

Hi there,
I have added modified sps to

optionally support NVIDIA GPUs
optionally support AMD GPUs
use boost for command line interface
query environment for SLURM variables if they are not specified on command line
use python3 + pandas to plot results
use cmake to build system
use gbp to build rpm/debs

There are still some rough edges (hence only draft pull request). Just a heads-up to see if you are interested.

Hi Magnus. We are very interested in adding GPU monitoring to SPS, so we appreciate your work so far. As this is a substantial change then it will take us significant time to fully review your code, but my first impression is this PR goes substantially beyond just GPUs, particularly the changes to compilation and plotting. Would you mind splitting this PR into several, each focused on a particular feature?

Hi Magnus. We are very interested in adding GPU monitoring to SPS, so we appreciate your work so far. As this is a substantial change then it will take us significant time to fully review your code, but my first impression is this PR goes substantially beyond just GPUs, particularly the changes to compilation and plotting. Would you mind splitting this PR into several, each focused on a particular feature? If you think splitting is not sensible, just say.

It grew - I think it should be relatively straight forwad to split the PR up into

cmake for building
GPU support
plotting
sphinx documentation

The other big change I made is how I generate rpm and deb packages. I might rethink that a little to make it fit a little more with what you have been doing, or just use cpack.
It might take a little until I get around to splitting the PR as I am going to the deRSE conference at the beginning of March.


Ethers v6

Waiting for v6 to be widely used before making this version the latest

Can we merge it now?


feat: tooltip message change of git pull button

@RoopKrrish9696 , Please review
Description

[!TIP]
User should be able to get correct tooltip message :
When the remote branch is ahead of the local branch along with the user is having some uncommitted changes.
Tooltip message should be “You have uncommitted changes, please commit or discard your changes before pulling the remote changes”.
in simple words, we have added commit or discard in the message

Fixes #32973
or
Fixes https://github.com/appsmithorg/appsmith/issues/32973

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test tags=""
:mag: Cypress test results

[!CAUTION]
If you modify the content in this section, you are likely to disrupt the CI result for your PR.

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[ ] No

@RoopKrrish9696 ,
@infinitetrooper
@brayn003
Let us know your review on this pull request.

Hey @tavishbarua94 thank you for raising this PR. I will help you to get this merged


Camera Distance

If the distance of the camera is higher than one meter, should we change the metric?
For instance in my dataset, camera distance is in range 1050 to 1100. Can I divide cloud points by 1200?
https://github.com/j96w/DenseFusion/blob/584efd68810c4d2f818207f2719a6ae886aac825/datasets/linemod/dataset.py#L153

Hi, I think it depends on whether you want to (1) Train on your own dataset from scratch or just (2) Test the model trained on Linemod to see whether it also works in your settings. For (1), nothing needs to change since the metric is still meter but just a little bit harder. For (2), I suggest you to divide and make the distance close to the settings of Linemod.

Thanks!


Adding support for variable length digests

Following on from issue #4 this change adds an optional -d --digestlen argument to provide support for variable length digests like shake_128 and shake_256.
/workspace/digest (master) $ digest
usage: digest [-h] [-b N] [-d N] [-v] algorithm [file ...]
digest: error: the following arguments are required: algorithm, file

/workspace/digest (master) $ digest shake_128 README.md
Variable length digest shake_128 requires --digestlen to be set

/workspace/digest (master) $ digest -d 13 shake_128 README.md
SHAKE_128 (README.md): eaecfece7c959319fafffa6422

Separately implemented in version 1.1.0. I didn't merge this PR because I wanted to implement it slightly differently. But the functionality is there, in 1.1.0, which has been pushed to PyPI.


Can we give base path and file to be picked up from there.

Can we give base path and all future folder pickup to be done from that base path.

This is already possible; here are the relevant docs on the matter.


ci: fix linting

@justinmk
Cannot merge it myself.
Please do so, or better consider adding me to the team.. :)


writer.writeObjectValue creates invalid JSON

I have a generated model that looks like this:
export interface ApiCartItem extends Parsable {
  /**
   * The foo property
   */
  foo?: ApiFooCartItem;
  /**
   * The bar property
   */
  bar?: ApiBarCartItem;
}

When consuming the relevant API, and passing the model as { bar: {...} } (item being the key that gets passed to writer.writeObjectValue), the resulting JSON is:
{"item":{,"bar":{...}},
Notice the invalid , being added to the beginning of the item object. The data being passed in to  writer.writeObjectValue(...) is valid, but afterwards, the data coming back in contentAsStr (below) now contains the invalid ,.
const serializedContent = writer.getSerializedContent();
  const decoder = new TextDecoder();
  const contentAsStr = decoder.decode(serializedContent);

1.0.0-preview.50

Thanks for raising this @hognevevle
The function takes 3 parameters ideally including a serializeFunction.
https://github.com/microsoft/kiota-typescript/blob/16a68d0811c28a1028ca618dc63e2d3dcedc6a04/packages/serialization/json/src/jsonSerializationWriter.ts#L115
Any chance you can share a full sample that replicates the scenario to help understand the issue better?

Hi @andrueastman
Yes, there is indeed a serializeFunction being passed as well.
export function serializeApiCartItemItemAddRequest(writer: SerializationWriter, apiCartItemItemAddRequest: Partial<ApiCartItemItemAddRequest> | undefined = {}) : void {
    writer.writeObjectValue<ApiCartItem>("item", apiCartItemItemAddRequest.item, serializeApiCartItem);
}
[...]
export function serializeApiCartItem(writer: SerializationWriter, apiCartItem: Partial<ApiCartItem> | undefined = {}) : void {
    writer.writeObjectValue<ApiCartItem>("foo", apiCartItem.foo, serializeApiFooCartItem);
    writer.writeObjectValue<ApiCartItem>("bar", apiCartItem.bar, serializeApiBarCartItem);
}

serializeApi{Foo,Bar}CartItem contains a writer.writeStringValue(...) for each of its properties.
Not sure if this helps -- I'm unable to provide a full code reproduction right now, but let me know if needed and I'll try to prepare that later this week.

Seems to be covered by https://github.com/microsoft/kiota-typescript/issues/1190 for which a fix has been merged. Closing for now.


Community meetings link reports 404 error

What happened:
The community meetings link in https://gateway-api.sigs.k8s.io/geps/overview/#1-circulate-the-idea reports 404 error.

What you expected to happen:
It should link to the correct link of community meetings: https://gateway-api.sigs.k8s.io/contributing/#meetings
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:

/aasign

/assign


.NET MAUI support

Describe the solution you'd like
A library compatible with MAUI.
Additional context
Next month, we will start a new project on .NET MAUI using the RC1. So, we would like to know if app center will provide a nuget package compatible with .NET MAUI.
Thank you

Hi @vhugogarcia
Thank you for reaching out to us!
We will test AppCenter SDK with MAUI and let you know if it works as expected.

Thank you so much! Really appreciate your support 🙂

Will follow this as well while we are setting up plans on migrating from Xamarin.Forms to MAUI. We sure would like to keep using App Center (Diagnostics, Test, Internal Android distribution). Seeing the Roadmap post about removing techdebt, I hope they are working on some technical revamp to make this all work.

Hi guys,
I checked the App Center SDK compatibility with MAUI and everything looked good. SDK was successfully integrated and worked as expected on Android and WinUI apps.
I haven't checked iOS as I didn't set up my windows -> mac, but since Android works, there is no reason for iOS to have any issues.
Note, that I tested internal NuGets from the developer branch. NuGets from official release don't support WinUI yet. We will release a new SDK version this month.
App Center CI/CD cervices including Build, Test and Distribution do not support MAUI yet. Please file a separate feature request if you are interested in these services as well.
So answering on the original question, Yes, SDK NuGet package support MAUI for iOS and Android, and will support WinUI starting from the next release.
I'm closing this issue, but feel free to reopen if you have additional questions.

Thanks @DmitriyKirakosyan for the detailed response. 👍🏻  That helped a lot.

Is there any release available supporting .Net6 and Maui

Hi @IndexOutOfLimit , yes we support .Net 6 and Maui in the current release. Feel free to open a new ticket in appcenter-sdk-dotnet repo if you face any issue integrating AppCenter SDK in your app.

Hi Dima,
When I added AppCenter nuget (v 4.4.0) in the Maui solution it is
throwing an error because it doesn't have support for net6.
On Fri, Dec 3, 2021 at 12:41 PM Dima @.***> wrote:

Hi @IndexOutOfLimit https://github.com/IndexOutOfLimit , yes we support
.Net 6 and Maui in the current release. Feel free to open a new ticket in
appcenter-sdk-dotnet https://github.com/microsoft/appcenter-sdk-dotnet
repo if you face any issue integrating AppCenter SDK in your app.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/appcenter/issues/2268#issuecomment-985270214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AF5QDTV7OGNXRW3G2IKO5K3UPBUSJANCNFSM5C3KS2QA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Hi, @IndexOutOfLimit! Could you please the full error message? Which platforms do you use in the MAUI project?

I am targeting Windows platform in MAUI and after adding the nuget I got many errors attached here.
AppCenterErrors.txt

@IndexOutOfLimit Thanks for the details. Your bug probably related to this issue. We already prepared a fix for it.
I will notify you when the fix will be available.

@AnastasiaKubova, Is it fixed now?

Hi, @IndexOutOfLimit ! Yes, the fix has been released.

Thanks @AnastasiaKubova for your quick response 👍🏻

We're waiting on this too. We're actively working on migrating from Xarmain.IOS to a MAUI-based app. It would be super helpful to us if we could continue to use AppCenter (which we currently use for CD/CI/build/distribution/diagnostics) for the MAUI app. I understand that MAUI is still in preview, but if AppCenter could also support it in a 'preview' mode, that would be greatly beneficial to us. This would avoid us having to manually provision/distribute devices to our internal Alpha testers and other stakeholders.
Thanks!

Hi guys,
I checked the App Center SDK compatibility with MAUI and everything looked good. SDK was successfully integrated and worked as expected on Android and WinUI apps. I haven't checked iOS as I didn't set up my windows -> mac, but since Android works, there is no reason for iOS to have any issues.
Note, that I tested internal NuGets from the develop branch. NuGets from official release don't support WinUI yet. We will release a new SDK version this month.
App Center Portal CI/CD services including Build, Test and Distribution do not support MAUI yet. However. it could work for iOS and Anroid if you create a Xamarin.iOS or Xamarin.Android apps. Please file a separate feature request if you are interested in these services as well.
So answering on the original question, Yes, SDK NuGet packages support MAUI for iOS and Android, and will support WinUI starting from the next release. I'm closing this issue, but feel free to reopen if you have additional questions.

We're waiting on this too. We're actively working on migrating from Xarmain.IOS to a MAUI-based app. It would be super helpful to us if we could continue to use AppCenter (which we currently use for CD/CI/build/distribution/diagnostics) for the MAUI app. I understand that MAUI is still in preview, but if AppCenter could also support it in a 'preview' mode, that would be greatly beneficial to us. This would avoid us having to manually provision/distribute devices to our internal Alpha testers and other stakeholders.

Hi @carmanj , thank you for reaching out! App Center SDK currently works on MAUI for iOS, Android and WinUI. However, as you mentioned, it is in preview, so anything may happen.
Please let us know if you faced any issue integrating App Center SDK into MAUI app.

Please add support for MAUI projects.

Hi @MichaelShapiro , we are currently working on it. You can fallow the progress in https://github.com/microsoft/appcenter-sdk-dotnet/issues/1647.

If Appcenter crashlytics works in MAUI apps what is the recommended initialization code?

@stephenhauck  AppCenter Crashes SDK doesn't rely on the app lifecylce. I would recommend to initialize it before any potential crash can happen.

Sure it does .. if you use Xamarin Forms it's initialized in App.xaml.cs where the lifecycle events happen
IN MAUI they don't have the lifecycle events in mauiprogram.cs but seem to encourage you to map to them with platform specific implementations through the use of ConfigureLifecycleEvents ?

@stephenhauck , Since MAUI App class does not have lifecycle callbacks, I believe you can call AppCenter.Start right in the constructor after all default initializations. No need to attach the sdk initialization to a platform specific lifecycle. The only recommendation is that you do it in the main thread to avoid any issues with crashes happening at the same time from another thread.
Note, that AppCenter SDK uses lifecycle events only for session tracking.
Please let me know if initialization in ctor doesn't work for you.

So someone at Microsoft need to document this ...
Appcenter has been abandon it seems ... still can't build C#9 and source geenerators in Appcenter
Until the documentation has been changed it doesn't support MAUI ...

@stephenhauck, initial issue regarding App Center MAUI Build is here: https://github.com/microsoft/appcenter/issues/2360
You can bump the initial issue if you mean AppCenter MAUI Build.


Allow setting of max string length for serialization

Is your feature request related to a problem? Please describe.
The current yaml syntax for String fields does not allow a length limit to be set, e.g. if you just need a char(1) or varchar(N) type for the database column (where N <= 126 in Postgres), you can save on storage by not having a string length at all, or having a 1-byte string length, respectively.
Describe the solution you'd like
I suggest a syntax like
class: Profile
fields:
  gender: String(1!)

where the ! causes char(1) to be used rather than varchar(1).

Maybe, although the database will report an error when a string is too long for a column.
My main concern though is storage space. A string that is always 1 character can be stored in one byte, whereas a string of arbitrary length takes at least 8 or 9 bytes.

Hmmm(learned something new), But is it really necessary to do it at the model/DB level? Cause What I say is, If it is handled by server/client and app level we don't actually need to do it right? Unless an intruder tries to communicate with your DB directly(A specific security-level case).

What I'm saying is that in the pgsql commands that create the tables, that are generated by Serverpod, there needs to be finer control over what the type of the column is, by adding some type metadata to the yaml syntax. This could dramatically reduce table size for some use cases.
See here:
https://www.postgresql.org/docs/current/datatype-character.html
I had some details wrong about storage sizes, but you can see there are different overheads for character(n), vs. varchar(n) where n is 126 or lower, vs. when n is 127 or higher.

The other cool thing about having more information in the database is that there are a ton of great tools built around Postgres that can take advantage of it. Stuff like https://github.com/nocodb/nocodb which can provide pretty full admin interfaces just by hooking up a database. I'm using https://github.com/beekeeper-studio/beekeeper-studio to manage my databases for example. If, for instance, I could use an array column type instead of json, the experience would be better for editing some of my data.


Add a tutorial on how to deploy with Docker

I have documented my process about deploying SB inside a container with Portainer because I think it is a very usfeull tool with a nice webGUI.
It also has documentation on how to use it with Cloudflare for SSL certificates and authentication, like Authelia.
It has images to understand more how to do it.  I wrote it with Silverbullet :)

Links were broken and I'm not sure about the file structure. Moved stuff around now though, looks like a good starting point to me so will merge this! We can improve things later.

I'm open to any changes to the documents, I would to improve with your suggestions.

Hey @Hylosium I'm migrating various guides to the new community site: https://community.silverbullet.md/t/cloudflare-and-portainer/31
Once/if you sign up there, I can transfer the post to your account.
Thanks!


247 bug demo app a11y dynamic type text

Note: Please transform - [ ] into - (NA) in the description when things are not applicable
Related issues

Description

Motivation & Context

Types of change

Bug fix (non-breaking which fixes an issue)
New feature (non-breaking change which adds functionality)
Refactoring (non-breaking change)
Breaking change (fix or feature that would change existing functionality)

Previews

Checklist

Contribution

[x] I have read the contributing guidelines

Accessibility

[x] My change follows accessibility good practices

Design

[x] My change respects the design guidelines of Orange Unified Design System

Development

[x] My change follows the developer guide
[x] I checked my changes do not add new SwiftLint warnings
[ ]  I have added unit tests to cover my changes (optional)

Documentation

[ ] My change introduces changes to the documentation and/or I have updated the documentation accordingly

Checklist (for Core Team only)

[x] The evolution have been tested and the project builds for iPhones and iPads
[x] Code review has been done by reviewers according to CODEOWNERS file
[x] Design review has been done
[x] Accessibiltiy review has been done
[x] Q/A team has tested the evolution
[x] Documentation has been updated if relevant
[x] Internal files have been updated if relevant (like CONTRIBUTING, DEVELOP, THIRD_PARTY, CONTRIBUTORS, NOTICE)
[x] CHANGELOG has been updated respecting keep a changelog rules and reference the issues
[ ]  The wiki has been updated if needed (optional)

@Tayebsed93 @ludovic35 Pourquoi dans le section "Type of change" il y a toutes les propositions qui sont conservées ? Normalement comme indiqué dans le template il aurait fallu juste garder la ligne "bug fix"

Désolé, je ne savais pas qu'il fallait éditer la description de la PR... Le process n'a jamais été partagé...

Le process a été partagé lorsque les templates ont été mis en place. De plus, il suffit de lire les commentaires dans le template pour comprendre les instructions à suivre ; et une simple relecture de la PR suffit pour moi qu'il y a un soucis.


implement babs-check-setup

Current high-level thoughts (need to add details):

[ ] sanity checks:

[ ] check consistency of container version numbers (in babs-init command, in yaml file, etc)
[ ] check if cluster_resources makes sense: e.g., no need to set s_vmem actually
[ ] ...

[ ] Run one subject (could be just dry run),

[ ] see if there is any error,
[ ] if it is what the user wants (i.e., might need to adjust the yaml file)

Its not quite clear whether babs-check-setup is intended to be run before or after babs-init. If it is before babs-init, IMO this might make more sense if the validation runs as part of babs-init. To only run validation, babs-init --dry-run

Ah apologize I just noticed your comment here before I replied to the other issue you opened. The plan was to run babs-check-setup after babs-init, and I'm also adding sanity checks in babs-init too. And what you recommend makes sense and I'll think in more details regarding this!
Thanks,
Chenying


Lint the logs lambda

Seen with the team, I ran https://github.com/ambv/black on the code

Seen with the team, I ran https://github.com/ambv/black on the code


Return ErrorResourceDoesNotExist when pod is not ready to be displayed

fixes #415

One question for you - can you remove that stale branch (provided it's not necessary), give a quick re-test and then merge?

@caseydavenport ok tested this with CNI and KDD backend:

create new pod (List returns nil during ADD)

delete pod (Get returns ok during DEL)

restart docker daemon so ADD gets called for an existing WEP, so CNI code takes the path where get WEP list returns something - non-nil

all of that looks good

I squashed 2 issues in 2 commits. Going to merge now


Clarify documentation about maximum number of supported encrypted peers for ESP-NOW (IDFGH-7960)

Problem Description
In the master branch documentation https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html#add-paired-device it is written

The maximum number of paired devices is 20, and the paired encryption devices are no more than 16, the default is 6.

However, it is unclear how to modify the number of paired encryption devices from the default of 6 to a higher number. AFAIK ESPNOW is shipped as a precompiled library libespnow.a, so it can't be a compile time switch. OTOH, I see no API to change this number either.

Thanks for reporting, fix is available at https://github.com/espressif/esp-idf/commit/d89a51299d54b3a8793872051a95d230e6818ee1, feel free to reopen.


Create README.md lab4.2

Hey @sailor4242 !
Thanks for your contribution but since this repository contains my own solutions to the problems, it wouldn't make much sense adding new homeworks that weren't there when I've attended the class.
For this reason, I've decided not to accept this kind of pull requests. Sorry about that and thanks anyway for the help!


Remove Latest tag on CC release notes

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/abac6451ee74c16fe2497a5af2f98143eefefc87/
Edited pages:

releases/index-cockroachcloud.md


Blazor Server

Does Scottplot.blazor work with server, or only WebAssembly?
Version 5.0.21

Currently, due to a limitation in .NET, SkiaSharp is only functional in WebAssembly. It is scheduled to be supported on the server side in the .NET 9 roadmap, but it's recommended not to count on this as it has been delayed once before.
Blazor Server App - Does not work
Blazor Client/WebAssembly App - Works
Blazor Web App Auto (only on .NET 8 ) -  If you set up ScottPlot on the client side, it will work
Blazor Hybrid/MAUI App - Does not work, but I think you can use some work around like Blazor WebView to display ScottPlot within the app (Not tested)


jinja2.exceptions.TemplateNotFound: googlemaps/gmapjs.html

Not sure if this is an issue with Flask-Googlemaps or just human error. I am currently using the library on an app deployed on Heroku, and now see the following error when I try to load a page where I am calling Flask-Googlemaps.
2018-03-20T15:05:30.959296+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_googlemaps/__init__.py", line 703, in render
2018-03-20T15:05:30.959297+00:00 app[web.1]:     return render_template(*args, **kwargs)
2018-03-20T15:05:30.959299+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/templating.py", line 133, in render_template
2018-03-20T15:05:30.959301+00:00 app[web.1]:     return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
2018-03-20T15:05:30.959302+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/templating.py", line 57, in get_source
2018-03-20T15:05:30.959304+00:00 app[web.1]:     return self._get_source_fast(environment, template)
2018-03-20T15:05:30.959306+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/templating.py", line 85, in _get_source_fast
2018-03-20T15:05:30.959308+00:00 app[web.1]:     raise TemplateNotFound(template)
2018-03-20T15:05:30.959393+00:00 app[web.1]: jinja2.exceptions.TemplateNotFound: googlemaps/gmapjs.html

I recently changed the app from having a single "journal.py" module which contained everything (routes, config stuff, models) to one where all this was spread across multiple modules. Previously my app looked like this...
/journal
    journal.py
    Procfile
    requirements.txt
    runtime.txt
    /templates
    /static

Now it looks like this....
/journal
    /app
        __init__.py
        models.py
        routes.py
        config.py
        /templates
        /static
    journal.py
    Procfile
    requirements.txt
    runtime.txt

I have confirmed that I am using the latest version (0.2.5).
This is an awesome tool. It has really made my life easy. Thanks for making it available to the community.

same issue here, did u end up fixing it?

Hey it turned out I was missing this very important line...
GoogleMaps(app, key="foobar")


i3status-rust: 0.20.2 -> 0.20.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/i3status-rust/versions.
meta.description for i3status-rust is: "Very resource-friendly and feature-rich replacement for i3status"
meta.homepage for i3status-rust is: "https://github.com/greshake/i3status-rust"
meta.changelog for i3status-rust is: ""
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/473m7c9gisnmbnw6daapcs881cvvsrp8-i3status-rust-0.20.3/bin/i3status-rs passed the binary check.

/nix/store/473m7c9gisnmbnw6daapcs881cvvsrp8-i3status-rust-0.20.3/bin/.i3status-rs-wrapped passed the binary check.

2 of 2 passed binary check by having a zero exit code.

2 of 2 passed binary check by having the new version present in output.

found 0.20.3 with grep in /nix/store/473m7c9gisnmbnw6daapcs881cvvsrp8-i3status-rust-0.20.3

found 0.20.3 in filename of file in /nix/store/473m7c9gisnmbnw6daapcs881cvvsrp8-i3status-rust-0.20.3

directory tree listing: https://gist.github.com/714dbcec90b92568cc350bbfafbd606d

du listing: https://gist.github.com/427763b2058293d2ce7ceb36efcd3b21

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
i3status-rust

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/473m7c9gisnmbnw6daapcs881cvvsrp8-i3status-rust-0.20.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A i3status-rust https://github.com/r-ryantm/nixpkgs/archive/a3a0a6edc2a1d45a978394ba51ef59f3ca72bb00.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/473m7c9gisnmbnw6daapcs881cvvsrp8-i3status-rust-0.20.3
ls -la /nix/store/473m7c9gisnmbnw6daapcs881cvvsrp8-i3status-rust-0.20.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

i3status-rust

Maintainer pings
cc @backuitist @globin @ma27 for testing.

Result of nixpkgs-review pr 132187 at a3a0a6ed run on x86_64-linux 1

1 package built successfully:

i3status-rust

1 suggestion:

warning: unclear-gpl
gpl3 is a deprecated license, please check if project uses gpl3Plus or gpl3Only and change meta.license accordingly.
Near pkgs/applications/window-managers/i3/status-rust.nix:56:5:
   |
56 |     license = licenses.gpl3;
   |     ^

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

1 package failed to build:

i3status-rust


Added podspec

Need to add a tag 0.3.1
You also need to register for a cocoapods account to push changes
https://guides.cocoapods.org/making/getting-setup-with-trunk

Will do! :)

Double check if the platform requirement is correct

Already updated the README. thanks! :+1:


Minor typo fix in containerize-net-framework-applications/index.md

Removed incorrect semicolons from an example code.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

I have noticed a few more instances of this issue, so I have created https://github.com/dotnet/docs/pull/2637 to fix those.

Thanks @arturek! :shipit:


Make image exporting dialog based instead of using a dropdown menu

We want to refactor the way we export images to a common saving pattern seen in several editors. We'll do this as soon as electron adds the necessary infrastructure. More details in this electron issue.

Using the Electron menu will always show the PNG option. There should be only one entry.


Actix-web: Support 1-tuple structs

At the moment, it doesn't seem like "newtypes" are supported, e.g.
#[api_v2_schema)]
#[derive(Serialize, Deserialize)]
pub struct TodoId(pub u64);

It would be neat if we could support this, perhaps by making it show as the underlying type in the Swagger spec.

Yeah, I think we can support 1-tuple structs, but it'd be ambiguous for other tuple structs (which lack property names) and unit structs (which lack properties and types).

No, thank you for being damn awesome. I love this and am using it in a simple-but-not-entirely-trivial PoC/template for API server Rust projects https://github.com/lloydmeta/todddo-openapi-rs

Thanks! That is amazing! :smile:

@hindenbug Would you like to work on this? This requires some changes to paperclip's actix plugin macro, and it's a great way to get into procedural macros. :)

@wafflespeanut Sure :) I can attempt this.

Great! We're interested in structs with unnamed fields, which are being skipped here.
What we should do instead is that if the struct contains exactly one field, then we should use this block to get the type contained within that field (which means, that block should be isolated into a separate function). Once you get that block, you do something like:
props_gen.extend(quote!({
    schema = #ty_ref::raw_schema();
}));

... which will be inserted here. However, in order for this to work, this line must be moved to the next line (so that we set the name after modifying the schema).

Hi @wafflespeanut, I began looking into it and have few questions (pardon my lack of in dept rust knowledge atm :) )

so we extract the logic to get the type in a new function ?
https://github.com/wafflespeanut/paperclip/blob/4bb0d4fd7ace9fb0a55a373aa8fadd65159c6135/macros/src/actix/mod.rs#L182-L206
we also need a function for FieldsUnnamed, similar to fn handle_field_struct(fields: &FieldsNamed, props_gen: &mut proc_macro2::TokenStream) , correct ? 🤔

... pardon my lack of in dept rust knowledge atm

No problem!

so we extract the logic to get the type in a new function ?

Yes, because both FieldsNamed and FieldsUnnamed have punctuated fields. And, each Field has a mandatory type (ty field). This function will take that field field as input and return whatever the block currently returns.

we also need a function for FieldsUnnamed, similar to fn handle_field_struct(fields: &FieldsNamed, props_gen: &mut proc_macro2::TokenStream)?

Sure. Makes sense.

or am looking at this wrong

No, you're on the right track. :smile:

@wafflespeanut I wonder how can we handle the continue in the new function :thinking: https://github.com/wafflespeanut/paperclip/blob/4bb0d4fd7ace9fb0a55a373aa8fadd65159c6135/macros/src/actix/mod.rs#L197-L204

Um... return early? :smile:

Awesome! Thanks @hindenbug and @wafflespeanut !


Sprite disappears when transitioning from an Animation that modifies the Scale property in the AnimationTree

Godot version
v4.0.beta12.mono.official [3c9bf4bc2]
System information
Windows 10, Vulkan, NVIDIA GeForce GTX 1050 Ti with Max-Q Design
Issue description

A Sprite will disappear when it's scale property is animated and the animation transitions to another animation using the AnimationTree.
Steps to reproduce

Create an empty node.
Add a Sprite with any texture
Create an AnimationPlayer
Create a new animation
Add a Bezier Track for the sprites Scale Property
Set the key values for the first frame to 1 for both x and y
Set the key values for the second frame to 1 for x and 0.9375 for y
Set the key values for the third frame to 1 for both x and y
Create a second animation (named anything). This animation can remain empty.
Create an AnimationTree, Assign the AnimationPlayer and set the Root to StateMachine
Add the First animation and set it to autoplay on start.
Add the second animation and add a transition from Animation1 to 2 then a second transition back to Animation1 that transitions at the End.
Set the AnimationTree to Active
Idle animation will be running, the sprite will be scaling up and down.
Press Play on Animation2 in the AnimationTree

Minimal reproduction project
GodotAnimationBug.zip

Can you reproduce it on 3.x? Then it will be a regression and we can correctly assign a milestone.

I did and it’s not reproducible in 3.5

The main reason for the scale being 0 is the lack of RESET animation (https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#for-better-blending), but apart from that, the acquisition of the BezierTrack for the RESET animation was broken.
The following project should work after #71823 is merged.
GodotAnimationBug.zip


Add tests for generated tuple/product aggregators

This PR increases our coverage for the worst offenders in algebird-core - the generated product and tuple aggregators.
I've also modified the generation script so that each data structure extends its parent. This reduces duplication and allows us to test ALL methods with ringLaws alone.
The inheritance doesn't break binary compatibility.

Current coverage is 72.51% (diff: 100%)

Merging #585 into develop will increase coverage by 8.10%

@@            develop       #585   diff @@
==========================================
  Files           111        111
  Lines          4572       4425   -147
  Methods        4154       4009   -145
  Messages          0          0
  Branches        379        377     -2
==========================================
+ Hits           2945       3209   +264
+ Misses         1627       1216   -411
  Partials          0          0

Powered by Codecov. Last update c91e1fb...282ca7e


Shake out some assumptions about architecture of host platform

The error
  Unable to automatically install 'GCCBootstrap-aarch64-linux-gnu.v4.8.5.x86_64-linux-musl.unpacked' from '/home/runner/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/Artifacts.toml'

is unrelated and we're seeing it everywhere, I'm not really sure what's going on.


Cant start reth.exe on windows 10 in powershell

Describe the bug

Steps to reproduce
install windows 10
download windows build from github
run the node from powershell with command ".\reth.exe node"
Node logs
PS C:\reth> .\reth.exe node
2023-06-21T17:21:43.080472Z  INFO reth::cli: reth 0.1.0-alpha.1 (b245193) starting
2023-06-21T17:21:43.080895Z  INFO reth::cli: Configuration loaded path="C:\\Users\\Admin\\AppData\\Roaming\\reth\\mainnet\\reth.toml"
2023-06-21T17:21:43.081022Z  INFO reth::cli: Opening database path="C:\\Users\\Admin\\AppData\\Roaming\\reth\\mainnet\\db"
Error: Failed to open database: -30784

Location:
    /project/crates/staged-sync/src/utils/init.rs:33:14
PS C:\reth>

Platform(s)
No response
What version/commit are you on?
0.1.0-alpha.1
What database version are you on?
?
If you've built Reth from source, provide the full command you used
No response
Code of Conduct

[X] I agree to follow the Code of Conduct

Can you try creating the path it tries to open? If that fixes it, then the solution is to create the database path (if it doesn't exist) before opening. This already happens on macOS and Linux I guess, but Windows is always an edge case...

The path was already created when I looked into it, here is screenshot:

do you have any solution for this? I have the same issue

@Ajes1337 @0xDaizz we've just added more database logs, can you please try running reth from the latest main with --db.log-level error CLI argument?
.\reth.exe node --db.log-level error

@shekhirin how can I build the exe file with the newest branch? when I compile the compiler throws a lot of errors..

@0xDaizz Just build from main, unfortunately the Windows release is borked because Windows is Windows. I am working on a fix, but it definitely works when compiling manually now after #3608
No need to add --db.log-level, I know what the underlying issue is.
Thanks for reporting this bug :)

I still have this error in Alpha2 release, also have the error with WSL2

reth is working now on WSL2 Ubuntu on windows 10, I had to upgrade from WSL1 to WSL2 👍

reth is working now on WSL2 Ubuntu on windows 10, I had to upgrade from WSL1 to WSL2 👍

Did you successfully finish syncing?
I have had some Bus error issues during execution phase several times.
https://github.com/paradigmxyz/reth/issues/3293

I have first just started syncing on WSL2, so cant say much yet

Closing as @Ajes1337 confirmed in the Reth Telegram chat that he was actually running WSLv1 instead of v2. @0xDaizz pls confirm you're on WSLv2? Else we can re-open.

@gakonst
on windows 10, still this error keeps me away from the node.
PS C:\Users\HW\Documents\reth-v0.1.0-alpha.4-x86_64-pc-windows-gnu> ./reth node
2023-07-23T08:01:28.877242Z  INFO reth::cli: reth 0.1.0-alpha.4 (b2b2cbe) starting
2023-07-23T08:01:28.878019Z  INFO reth::cli: Configuration loaded path="C:\\Users\\HW\\AppData\\Roaming\\reth\\mainnet\\reth.toml"
2023-07-23T08:01:28.878065Z  INFO reth::cli: Opening database path="C:\\Users\\HW\\AppData\\Roaming\\reth\\mainnet\\db"
Error: Failed to open database: -30784

Location:
    /project/crates/storage/db/src/lib.rs:125:18
PS C:\Users\HW\Documents\reth-v0.1.0-alpha.4-x86_64-pc-windows-gnu>

Used the pre-made binary on the reth github.

Confirmed that this issue can be solved by building my own binary via $env:RUSTFLAGS="-C target-cpu=native"; cargo build --profile maxperf. sorry for bothering with Windows x(


xgboost_R.cc:2:26: fatal error: dmlc/logging.h: No such file or directory

Latest commit 25 January 2016, R,
devtools::install_git('git://github.com/dmlc/xgboost', subdir='R-package')
There is no /dmlc folder in the /include folder.
In the xgboost_R.cc,
#include <dmlc/logging.h>
#include <dmlc/omp.h>
Am I missing something?
Thanks a lot.

devtools doesn't support the submodule in github.
So if you really need the latest version, please clone the repo to your computer and build it.
For weekly updated version, please try the following code.
install.packages("drat", repos="https://cran.rstudio.com")
drat:::addRepo("dmlc")
install.packages("xgboost", repos="http://dmlc.ml/drat/", type="source")

@thirdwing, thank you.

@thirdwing  I'he the same issue.. but your solution does not work in my case.. take a look, please:

devtools::install_git('git://github.com/dmlc/xgboost', subdir='R-package')
Downloading git repo git://github.com/dmlc/xgboost
Installing xgboost
"C:/Users/djunior/Documents/R/R-3.2.3/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL
"C:/Users/djunior/AppData/Local/Temp/Rtmp0mIt87/file192c314d417b/R-package" --library="C:/Users/djunior/Documents/R/R-3.2.3/library" --install-tests

installing source package 'xgboost' ...
** libs

*** arch - i386
cp -r ../../src .
cp -r ../../rabit .
cp -r ../../dmlc-core .
cp -r ../../include .
cp -r ../../amalgamation .
g++ -m32 -std=c++0x -I"C:/Users/djunior/DOCUME~1/R/R-32~1.3/include" -DNDEBUG -I.//include -I.//dmlc-core/include -I.//rabit/include -I./ -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0 -DDMLC_ENABLE_STD_THREAD=0 -DDMLC_DISABLE_STDIN=1 -DDMLC_LOG_CUSTOMIZE=1 -DXGBOOST_CUSTOMIZE_LOGGER=1 -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_    -I"d:/RCompile/r-compiling/local/local323/include"  -fopenmp -pthread   -O2 -Wall  -mtune=core2 -c xgboost_R.cc -o xgboost_R.o
xgboost_R.cc:2:26: fatal error: dmlc/logging.h: No such file or directory
compilation terminated.
make: *** [xgboost_R.o] Error 1
Warning: running command 'make -f "Makevars.win" -f "C:/Users/djunior/DOCUME~1/R/R-32~1.3/etc/i386/Makeconf" -f "C:/Users/djunior/DOCUME~1/R/R-32~1.3/share/make/winshlib.mk" CXX='$(CXX1X) $(CXX1XSTD)' CXXFLAGS='$(CXX1XFLAGS)' CXXPICFLAGS='$(CXX1XPICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX1XLDFLAGS)' SHLIB_LD='$(SHLIB_CXX1XLD)' SHLIB="xgboost.dll" ' had status 2
ERROR: compilation failed for package 'xgboost'

removing 'C:/Users/djunior/Documents/R/R-3.2.3/library/xgboost'
Error: Command failed (1)

install.packages("drat", repos="https://cran.rstudio.com")
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.2/drat_0.1.0.zip'
Content type 'application/zip' length 70295 bytes (68 KB)
downloaded 68 KB

package ‘drat’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\djunior\AppData\Local\Temp\Rtmp0mIt87\downloaded_packages

drat:::addRepo("dmlc")
install.packages("xgboost", repos="http://dmlc.ml/drat/", type="source")
trying URL 'http://dmlc.ml/drat/src/contrib/xgboost_0.4-4.tar.gz'
Content type 'application/octet-stream' length 384404 bytes (375 KB)
downloaded 375 KB

installing source package 'xgboost' ...
** libs

*** arch - i386
Warning: running command 'make -f "Makevars.win" -f "C:/Users/djunior/DOCUME~1/R/R-32~1.3/etc/i386/Makeconf" -f "C:/Users/djunior/DOCUME~1/R/R-32~1.3/share/make/winshlib.mk" CXX='$(CXX1X) $(CXX1XSTD)' CXXFLAGS='$(CXX1XFLAGS)' CXXPICFLAGS='$(CXX1XPICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX1XLDFLAGS)' SHLIB_LD='$(SHLIB_CXX1XLD)' SHLIB="xgboost.dll" ' had status 127
ERROR: compilation failed for package 'xgboost'

removing 'C:/Users/djunior/Documents/R/R-3.2.3/library/xgboost'

The downloaded source packages are in
‘C:\Users\djunior\AppData\Local\Temp\Rtmp0mIt87\downloaded_packages’
Warning messages:
1: running command '"C:/Users/djunior/Documents/R/R-3.2.3/bin/x64/R" CMD INSTALL -l "C:\Users\djunior\Documents\R\R-3.2.3\library" C:\Users\djunior\AppData\Local\Temp\Rtmp0mIt87/downloaded_packages/xgboost_0.4-4.tar.gz' had status 1
2: In install.packages("xgboost", repos = "http://dmlc.ml/drat/", type = "source") :
installation of package ‘xgboost’ had non-zero exit status

Try to reinstall Rtools and make sure to set up its environment variables during the installation.

@davidfjr3 I have the same problem as yours, how do you fix the problem?

Windows soluction

1) Download and install cygwin shell
	 https://cygwin.com/install.html

2) So here's what I did to finish a 64-bit build on Windows:
		2.1) Download and install MinGW-64: http://sourceforge.net/projects/mingw-w64/

		2.2) On the first screen of the install prompt make sure you set the Architecture to x86_64 and the Threads to win32
		2.3) I installed to C:/mingw64 (to avoid spaces in the file path) so I added this to my PATH environment variable: C:/mingw64/mingw64/bin
		2.4) I also noticed that the make utility that is included in bin/mingw64 is called mingw32-make so to simplify things I just renamed this to make
		2.5) Open a Windows command prompt and type gcc. You should see something like "fatal error: no input file"
		2.6) Next type make. You should see something like "No targets specified and no makefile found"
		2.7) Type git. If you don't have git, install it and add it to your PATH.
		   install git: https://git-scm.com/download/win

	source (python version): http://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform/35119904#35119904

3) on cygwin shell:

	3.1 cd C:/Users/user/Desktop/package
	3.2 git clone --recursive https://github.com/dmlc/xgboost
	3.3 cd xgboost
	3.4 git submodule init
	3.5 git submodule update
	3.6 cd dmlc-core
	3.7 make -j4

		if you get a error in the step 3.7 like:

		Makefile:83: recipe for target 'data.o' failed
		make: *** [data.o] Error 1

		skip to the step 4

	3.8 cd ../rabit
	3.9 make lib/librabit_empty.a -j4
	3.10 cd ..
	3.11 cp make/mingw64.mk config.mk
	3.12 make -j4

	source: http://xgboost.readthedocs.io/en/latest/build.html#r-package-installation

4) if step 3 was successful (no errors) skip to the step 5
   else, delete the folder 'xgboost' of the step 3 and on cygwin shell do:

	4.1 cd C:/Users/user/Desktop/package
	4.2 git clone --recursive https://github.com/dmlc/xgboost
	4.3 cd xgboost

	(New) 4.3.1: git checkout 9a48a40
	(New) 4.3.2: git checkout -b 9a48a40
	( source: https://github.com/dmlc/xgboost/issues/1267 )

	4.4 git submodule init
	4.5 git submodule update
	4.6 cd dmlc-core
	4.7 make -j4

		Remark: The same error msg is showed, however go to the step 4.8 end run each until 4.12 and finish the step 4.
			    In my case, after run the step 4 the step 5 works fine.

	4.8 cd ../rabit
	4.9 make lib/librabit_empty.a -j4
	4.10 cd ..
	4.11 cp make/mingw64.mk config.mk
	4.12 make -j4

Obs: This guy gives another soluction that I don't try because the step 4 works for me.
	https://www.kaggle.com/c/grupo-bimbo-inventory-demand/forums/t/22662/xgboost-and-windows-10/130070

5) In R console
	library(devtools)
	setwd('C:/Users/user/Desktop/package/xgboost')
	install('R-package')
	library(xgboost)

	source: http://xgboost.readthedocs.io/en/latest/build.html#r-package-installation

@emmating
Windows soluction

1) Download and install cygwin shell
	 https://cygwin.com/install.html

2) So here's what I did to finish a 64-bit build on Windows:
		2.1) Download and install MinGW-64: http://sourceforge.net/projects/mingw-w64/

		2.2) On the first screen of the install prompt make sure you set the Architecture to x86_64 and the Threads to win32
		2.3) I installed to C:/mingw64 (to avoid spaces in the file path) so I added this to my PATH environment variable: C:/mingw64/mingw64/bin
		2.4) I also noticed that the make utility that is included in bin/mingw64 is called mingw32-make so to simplify things I just renamed this to make
		2.5) Open a Windows command prompt and type gcc. You should see something like "fatal error: no input file"
		2.6) Next type make. You should see something like "No targets specified and no makefile found"
		2.7) Type git. If you don't have git, install it and add it to your PATH.
		   install git: https://git-scm.com/download/win

	source (python version): http://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform/35119904#35119904

3) on cygwin shell:

	3.1 cd C:/Users/user/Desktop/package
	3.2 git clone --recursive https://github.com/dmlc/xgboost
	3.3 cd xgboost
	3.4 git submodule init
	3.5 git submodule update
	3.6 cd dmlc-core
	3.7 make -j4

		if you get a error in the step 3.7 like:

		Makefile:83: recipe for target 'data.o' failed
		make: *** [data.o] Error 1

		skip to the step 4

	3.8 cd ../rabit
	3.9 make lib/librabit_empty.a -j4
	3.10 cd ..
	3.11 cp make/mingw64.mk config.mk
	3.12 make -j4

	source: http://xgboost.readthedocs.io/en/latest/build.html#r-package-installation

4) if step 3 was successful (no errors) skip to the step 5
   else, delete the folder 'xgboost' of the step 3 and on cygwin shell do:

	4.1 cd C:/Users/user/Desktop/package
	4.2 git clone --recursive https://github.com/dmlc/xgboost
	4.3 cd xgboost

	(New) 4.3.1: git checkout 9a48a40
	(New) 4.3.2: git checkout -b 9a48a40
	( source: https://github.com/dmlc/xgboost/issues/1267 )

	4.4 git submodule init
	4.5 git submodule update
	4.6 cd dmlc-core
	4.7 make -j4

		Remark: The same error msg is showed, however go to the step 4.8 end run each until 4.12 and finish the step 4.
			    In my case, after run the step 4 the step 5 works fine.

	4.8 cd ../rabit
	4.9 make lib/librabit_empty.a -j4
	4.10 cd ..
	4.11 cp make/mingw64.mk config.mk
	4.12 make -j4

Obs: This guy gives another soluction that I don't try because the step 4 works for me.
	https://www.kaggle.com/c/grupo-bimbo-inventory-demand/forums/t/22662/xgboost-and-windows-10/130070

5) In R console
	library(devtools)
	setwd('C:/Users/user/Desktop/package/xgboost')
	install('R-package')
	library(xgboost)

	source: http://xgboost.readthedocs.io/en/latest/build.html#r-package-installation


How to query by a type column + userId + createdAt

** Which Category is your question related to? **
AWS Amplify + GraphQL Queries
** What AWS Services are you utilizing? **
Cognito + AWS AppSync,
** Provide additional details e.g. code snippets **
type MyTable
  @model
  @auth(
    rules: [
      { allow: owner, ownerField: "userId", operations: [create, update, read] }
    ]
  )
  @key(
    fields: [“type”, "createdAt"]
    name: "SortByType"
    queryField: "listByType"
  ) {
  id: ID!
  userId: String!
  type: String!
  createdAt: AWSTimestamp!
}

The column type can be "A" or "B".
I query by
await API.graphql(
        graphqlOperation(listByInterval, {
          type: 'A',
          sortDirection: ModelSortDirection.DESC,
        })

The query will automatically query by the logged in userId.
Amplify has a default limit of 10.
If my data is on the 20th row, The first search will return me 0 results.
If I set the limit to 30, I get my results back.
So I tried changing the schema to 3 key fields and kept my Database to less than 10 items.
await API.graphql(
        graphqlOperation(listByInterval, {
          userId: userId
          typeCreatedAt: {
            eq: {
              type: 'A',
            },
          },
          sortDirection: ModelSortDirection.DESC,
        })

My createdAt timestamps are based on AWSTimestamp
I still get 0 results even though I have items in the DB that match it.
I am not sure what I am doing wrong, so any advice would be appreciated.

AppSync will filter the results of your query after they are fetched from the database (the @auth rules). You need to make your database query only return items related to the user. In general, do not use @auth directives to filter results.
Change your "SortByType" @key fields to ["userId","type","createdAt"] instead so that all results from the database are associated with your user when you query using this key.

@RossWilliams
Thanks.
In my post earlier, when I mentioned I tried 3 keys, I meant what you said regarding using.

["userId","type","createdAt"]

I tried that and used the query without specifying the createdAt
await API.graphql(
        graphqlOperation(listByInterval, {
          userId: userId
          typeCreatedAt: {
            eq: {
              type: 'A',
            },
          },
          sortDirection: ModelSortDirection.DESC,
        })

and with only 10 items in my database with a limit of 10 set, I still got 0 results back.

In general, do not use @auth directives to filter results.
How is my current @auth rule filtering results?
Specifying the userId in the $filter didn't help either.

Any updates on this?

You can leave off the createdAt in the example, it’s not required

I am not sure if this is actually an amplify bug, but more of a AppSync bug.
I have tried replicating the same thing with my own app. Instead of createdAt, I have time as AWSDateTime, which is composite sort key of ['userId', 'type', 'time']
After pushing I can confirm that DynamoDB has the index of type#time. I'm not sure if it's normal but the size of the index was 0 and the Item Count was 0.
Anyways, when I go to AppSync and test a query like
query SortByUserIdAndTypeAndTime($userId:String, $type:Int, $time:String) {
  SortByUserIdAndTypeAndTime(userId: $userId, typeTime: {
    eq: {
      type: $type
      time: $time (optional)
    }
  }) {
    items {
    	id
  	}
  }
}

QUERY VARIABLES
{
  "userId": "XXX"
  "type": 1
}

I get back zero results which doesn't make sense because I do have data in the DB that matches that requirement.

You likely don’t have an attribute on your items with a
Key “type#time”. If you add a GSI with a compound sort key, existing items will not have the compound key added to them, you will need to write a migration. New items added via AppSync resolvers will have the new compound key added.

@RossWilliams

If you add a GSI with a compound sort key, existing items will not have the compound key added to them, you will need to write a migration.

Thank you. That seems to make sense. Let me try this out and report my findings.
For writing migrations for existing items, do you have any resources you can share. I'm assuming this is outside the scope of the amplify cli. I'm guessing it's like using an aws sdk and using DynamoDB methods etc.

@RossWilliams It is as you said. It works for new data added in, I just need to migrate my existing data. Thanks a bunch!

@chantlong are you unblocked for us to close this issue? Thanks.

@undefobj Yes thank you, will close this issue.


On Document URLs, and Document IDs

It looks like I won't be able to finish this patch before I go out on holiday, so I'm going to write up my plan and push the branch so that it can either be critiqued or finished (or both).
I'm working on a new format to replace the UUID document IDs used by automerge-repo.
The goal of this change is twofold. First, to introduce a recognizable and consistently parsable URL for Automerge documents that can be stored in an Automerge document. In the future, this URL should support specifiying heads, or perhaps branch IDs, or other kinds of tomfoolery, but for now it's just designed to be a recognizable URL. Second, to allow Automerge-Repo to immediately discard URLs that are either the wrong data type or the result of a transcription error.
The URL format is straightforward:
automerge:<checksummed-bs58-encoded-UUID>
It looks like this:
automerge:3f1w4KRPqEgwCrGGdyM6ATLYfMWo.
Let's discuss each part of the URL.
scheme / protocol
First, the scheme, automerge. I've chosen to use a custom scheme because Automerge is not run over HTTP (though it can tunnel over it via websockets), and because a traditional HTTP url would require us to provide elements like a hostname which doesn't really exist in this context.
Unfortunately, the automerge scheme can't be fetch()'d, at least not as of this writing, and I presume by extension it can't be intercepted by a service worker either. I ran some experiments looking for a scheme that would be accepted by fetch() and so on, and concluded that browser URL parsing inconsistencies and limitations on fetch meant there was no way to produce an authentic automerge URL that would work reliably without doing things like adding a made-up hostname or calling it HTTPS.
uuid
I've kept the UUID as the "deep" representation of the data to maintain some amount of consistency with past versions, and also because using ~128b of entropy to identify some unique resource is pretty much industry standard. I could have thought of a shorter data type (maybe 64 bit is enough) but there's no reason to be cute here.
bs58 / bs58check
The encoding serves two purposes. First, a 16 byte UUID encoded into hex is 38 bytes of text. A bs58 encoding is a third shorter, at 24. We then "spend" four of those bytes back to add a checksum which allows us to detect if the URL was copy-pasted with a character missing or (worse) if someone is just passing wildly unrelated values into the system.
library internals
I've concluded the URL format should only exist "at the edge" of the library. Internally, on disk, and over the network we should use the most efficient 16 byte binary representation.
This URL format should be stored in the document as a string (for now), but at some point in the future we may add a custom type for it to optimize storage and retrieval of document connections.
Internally to the library, we should use the textual BS58check representation of the UUID for logging and anything user facing. This will allow the user to make visual comparisons to the URL they passed in.
Conclusions
URLs are hard! But this seems like a reasonable plan.  The most likely critiques I anticipate are with the bs58check system, and my theory there is that it's better to use something off the shelf than to invent something new.
I welcome your questions / comments.

I'm supportive of this plan. 128 bit length is good. I think it's a good idea to add a new datatype to Automerge that stores 16 binary bytes internally, and converts it to/from a bs58check URI in the API. We will need to make the internal encoding extensible, so that new features such as branch IDs/heads can be added to future URIs without a breaking change. For spidering purposes we could also offer an API to parse all of the Automerge URIs out of a compressed document without loading the whole thing into memory — it should be possible to do this very efficiently by scanning only the value metadata and raw value columns.

Agreed -- one question I continue to noodle on is how the document ID should be represented outside of the storage format. I think my current position (which I could be talked out of) is that that a document ID is always shown as a bs58-check encoded UUID. If we present the document IDs as something closer to their source form (hex strings, for example) then it will be confusing / annoying for users who are trying to correlate URLs and the underlying IDs.
On the other hand, the spec for bs58check is to add four bytes of SHA-256(SHA-256(uuid)) as the checksum which seems (without benchmarking) annoyingly expensive. We could define a different format but... now we're inventing things.

lol why hash it twice? That seems rather strange. On the upside, we already include an implementation of SHA256 so at least it shouldn't have much impact on the Wasm module size. Might be worth doing a very simple benchmark to check whether it would have a noticeable impact on loading times. I suspect it's probably fast enough. Agree about always showing the bs58-check encoded URI in the external API.

I think the double-hashing is to prevent certain attacks when IDs are used for identity.

I think the double-hashing is to prevent certain attacks when bs58check is used for cryptographic identity. CRC would be better for perf (presuming we don't need security), but as mentioned we'd have to implement it ourselves.

This approach makes sense to me. The only additional question I have is whether we use the same format for binary blobs stored in an automerge repo. We probably don't want users to store large binary blobs in automerge documents but I don't think we want to make users roll their own storage and sync for binary blobs because that way you lose a lot of interoperability (you end up with things like git LFS). This has implications for the internal representation of the document ID type (you probably want to be able to scan for all the reachable blobs as well as documents from a given document) but I think the important question for this discussion is whether an automerge URL should be able to point at a binary blob stored in automerge repo and if so whether the URL should indicate that it is a blob or whether that's something which is determined when you actually try and load or request the blob.

After some sync discussion with @pvh and @ept I think we don't need to do anything special for handling binary blob URLs. We also decided that the URL shouldn't specify the length of the underlying bytes.

Shipped!


Create component "Column"

Objective
Create bulma's component Column from scratch

Description
Based on project's roadmap, this component will need to have the following specifications

A code file based on React Hooks with Typescript
A test file (.test.tsx) for its related unit tests
A storybook file (.stories.tsx) to be deployed on a public Storybook site (and be tested for anyone)

Tasks

Research

[ ] Study its related documentation and implementation on bulma's docs
[ ] Document possible properties and behaviours

Development

[ ] Create its folder and a index.tsx file where the component will be coded
[ ] Create and/or update the needed interfaces, types, tuples and enums for the component
[ ] Create a .test.ts file for its units test and create the needed to reach at least 80% of code coverage
[ ] Create a .stories.tsx file for storybook stories and add at least 2 stories for different scenarios

Ticket relationships

Relationship
Involved tickets

Is related to
none

Is blocked by
#14

It blocks
none

Technical notes
TBD

Check coverage on SonarCloud settings to avoid files that are not index.tsx and [component].tsx