After upgrade to Android embedding V2, still get Shared.activity is null / NullPointerException on android.content.Context.getResources()

After upgrading to flutter embedding v2 I still get the following error occasionally:
E/IAWFlutterWebView(21166):
E/IAWFlutterWebView(21166):
E/IAWFlutterWebView(21166):
E/IAWFlutterWebView(21166): ERROR: Shared.activity is null!!!
E/IAWFlutterWebView(21166):
E/IAWFlutterWebView(21166): You need to upgrade your Flutter project to use the new Java Embedding API:
E/IAWFlutterWebView(21166):
E/IAWFlutterWebView(21166): - Take a look at the "IMPORTANT Note for Android" section here: https://github.com/pichillilorenzo/flutter_inappwebview#important-note-for-android
E/IAWFlutterWebView(21166): - See the official wiki here: https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
E/IAWFlutterWebView(21166):
E/IAWFlutterWebView(21166):
E/MethodChannel#flutter/platform_views(21166): Failed to handle method call
E/MethodChannel#flutter/platform_views(21166): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
E/MethodChannel#flutter/platform_views(21166): 	at android.view.ViewConfiguration.get(ViewConfiguration.java:481)
E/MethodChannel#flutter/platform_views(21166): 	at android.view.View.<init>(View.java:5178)
E/MethodChannel#flutter/platform_views(21166): 	at android.view.View.<init>(View.java:5320)
E/MethodChannel#flutter/platform_views(21166): 	at android.view.ViewGroup.<init>(ViewGroup.java:675)
E/MethodChannel#flutter/platform_views(21166): 	at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:56)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:410)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:353)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:336)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:323)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:313)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.InputAwareWebView.<init>(InputAwareWebView.java:28)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.InAppWebView.<init>(InAppWebView.java:612)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.FlutterWebView.<init>(FlutterWebView.java:68)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.FlutterWebViewFactory.create(FlutterWebViewFactory.java:28)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.SingleViewPresentation.onCreate(SingleViewPresentation.java:179)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.Dialog.dispatchOnCreate(Dialog.java:421)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.Dialog.show(Dialog.java:315)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.Presentation.show(Presentation.java:250)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.VirtualDisplayController.<init>(VirtualDisplayController.java:94)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.VirtualDisplayController.create(VirtualDisplayController.java:47)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(PlatformViewsController.java:112)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(PlatformViewsChannel.java:95)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:59)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:226)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:631)
E/MethodChannel#flutter/platform_views(21166): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#flutter/platform_views(21166): 	at android.os.MessageQueue.next(MessageQueue.java:336)
E/MethodChannel#flutter/platform_views(21166): 	at android.os.Looper.loop(Looper.java:174)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.ActivityThread.main(ActivityThread.java:7356)
E/MethodChannel#flutter/platform_views(21166): 	at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#flutter/platform_views(21166): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/MethodChannel#flutter/platform_views(21166): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Here is my Manifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.chronic_insights_flutter">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:label="My App"
        android:icon="@mipmap/launcher_icon">

        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">

            <!-- Specify that the launch screen should continue being displayed until Flutter renders its first frame. -->
            <meta-data
                android:name="io.flutter.embedding.android.SplashScreenDrawable"
                android:resource="@drawable/launch_background" />
            <!-- Theme to apply as soon as Flutter begins rendering frames -->
            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme"
                />

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <!-- This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />

    </application>
</manifest>

Here is my MainActivity (note I'm using the new embedding classes):
package com.my_app

import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterActivity() {

}

I'm also doing this in my flutter main.dart:
Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(new MyApp());
}

I've also done a flutter clean. I'm aware that this has been reported in earlier issues, and the solution was to upgrade to embedding V2 - but as far as I can tell I've done that - I've followed all the steps from here. What am I missing?
Thanks

It should be ok. If you try to create a new Fresh flutter app and you use the simple code example that you can find on the README.md, does it work??
If it works, then there is some configuration missing on your App.
In that case, you can simply move your App code inside the newly created app.

I'm facing the same issue, please any update or fix?

There is no fix, it should already just work. Any example I run is just fine!
As I said, If you try to create a new Fresh flutter app and you use the simple code example that you can find on the README.md, does it work??

@addtek Also, could you share the complete example project you created? If you can, make a zip file with all the project files and share it. In this way, I can test if there is something missing. Thanks.
@jamesncl you too if you can, Thanks!

@pichillilorenzo Thanks for the reply. This error occurred again today, so I've spent all morning trying to reproduce and identify the problem. Unfortunately, as I said in the original post, this only happens occasionally (maybe once every couple of days), which makes tracking down the problem very difficult.
The fact that it only happens occasionally makes me think there is some kind of timing issue or race condition going on. I'd be interested to hear if @addtek gets this error every time or only occasionally. This makes me think there is some timing issue going on. I also suspect that it may be related to hot restarting, because I think it has only occurred after I hot restart the app (not 100% sure though).
For what it's worth, here's a link to a minimal example I've created with the exact configuration for android that I'm using in my app (manifest, build.gradle etc). So far I've been unable to reproduce the error using it :( I'll continue to watch out for this error and try to figure out the exact steps required to reproduce.
Some more info:

I'm not using flutter_inappwebview directly, I'm using the youtube_player_flutter plugin

flutter doctor:

Flutter (Channel stable, v1.17.3, on Microsoft Windows [Version 10.0.19041.329], locale en-GB)
    • Flutter version 1.17.3 at D:\flutter
    • Framework revision b041144f83 (2 weeks ago), 2020-06-04 09:26:11 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\james\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[√] Android Studio (version 3.6)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.8052
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

I see that you don't call WidgetsFlutterBinding.ensureInitialized() before you are running your application.
As stated in the README.md file of my plugin, almost at the top of it (IMPORTANT Note for Android and iOS), you need to call it before runApp:
void main() {
 // it should be the first line in main method
 WidgetsFlutterBinding.ensureInitialized();

 // rest of your app code
 runApp(MyApp());
}

Now it should work.
Official wiki https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html
sO

Let me know if it works! If it does, then I will add this into my error message.

@jamesncl i get the error everytime i run my app.
and I'm not using flutter_inappwebview directly and  i use youtube_player_flutter too..
i have realized that the error occurs when i run some background task with android_alarm_manager and try to play a video from YouTube using the youtube_player_flutter plugin, but when i stop running the background task and and rebuild the app i don't get the error.  so i try  try run the background task with a different plugin(flutter_workmanager) and got the error again. So i have concluded that the probably the background process might be holding some resources that  flutter_inappwebview needs too work properly.

I see that you don't call WidgetsFlutterBinding.ensureInitialized() before you are running your application.
As stated in the README.md file of my plugin, almost at the top of it (IMPORTANT Note for Android and iOS), you need to call it before runApp:
void main() {
 // it should be the first line in main method
 WidgetsFlutterBinding.ensureInitialized();

 // rest of your app code
 runApp(MyApp());
}

Now it should work.
Official wiki https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html

Apologies, that line WidgetsFlutterBinding.ensureInitialized() IS in the app that is experiencing the error. I failed to copy that over to the minimal example I created. I've updated the shared file to reflect that. So, unfortunately, this isn't the solution :(

In fact, the offical guide on upgrading to upgrading pre-1.12 apps which you link to states:

If you invoke FlutterMain.startInitialization(...) or FlutterMain.ensureInitializationComplete(...) anywhere in your code, you should remove those calls. Flutter now initializes itself at the appropriate time. i.e. this will have no effect anyway.

@jamesncl i get the error everytime i run my app.
and I'm not using flutter_inappwebview directly and i use youtube_player_flutter too..
i have realized that the error occurs when i run some background task with android_alarm_manager and try to play a video from YouTube using the youtube_player_flutter plugin, but when i stop running the background task and rebuild the app i don't get the error. so i try run the background task with a different plugin(flutter_workmanager) and got the error again. So i have concluded that the probably the background process might be holding some resources that flutter_inappwebview needs to work properly.

@addtek Aha! I am also using alarm manager to do background tasks (downloading the latest list of YouTube video IDs). I'm using the workmanager plugin, which uses Android's WorkManager under the hood.
@addtek out of interest, when were you initialising Android WorkManager in your app? Do you do this before runApp() ? I initialise the workmanager plugin a bit after, while loading some background data. I'm trying to understand why it crashes for you every time but only happens to me sometimes.
I'm going to remove the workmanager plugin and see if I get this error again.

@jamesncl i get the error everytime i run my app.
and I'm not using flutter_inappwebview directly and i use youtube_player_flutter too..
i have realized that the error occurs when i run some background task with android_alarm_manager and try to play a video from YouTube using the youtube_player_flutter plugin, but when i stop running the background task and rebuild the app i don't get the error. so i try run the background task with a different plugin(flutter_workmanager) and got the error again. So i have concluded that the probably the background process might be holding some resources that flutter_inappwebview needs to work properly.

@addtek Aha! I am also using alarm manager to do background tasks (downloading the latest list of YouTube video IDs). I'm using the workmanager plugin, which uses Android's WorkManager under the hood.
@addtek out of interest, when were you initialising Android WorkManager in your app? Do you do this before runApp() ? I initialise the workmanager plugin a bit after, while loading some background data. I'm trying to understand why it crashes for you every time but only happens to me sometimes.
I'm going to remove the workmanager plugin and see if I get this error again.

I initalise the Workmanager after in the main app view after a user is authenticated, so that's pretty way after 'runApp()'. actually i don't get the error right away when the app runs but when i try to play a video.

Right, I think I have a minimal reproducible example :) I think the issue is a conflict with Android's AlarmManager.
Here's how to reproduce:

Create a new Flutter application, using the latest version of Android Studio (so that you get a new default project with the Android embedding v2 stuff)
Replace pubspec.yaml with:

name: youtubeplayerbug
description: A new Flutter application.

version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  youtube_player_flutter: ^7.0.0
  workmanager: ^0.2.0

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true

Replace main.dart with this:
import 'package:flutter/material.dart';
import 'package:workmanager/workmanager.dart';
import 'package:youtube_player_flutter/youtube_player_flutter.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  Workmanager.initialize(
    callbackDispatcher,
    isInDebugMode: true,
  );
  Workmanager.registerOneOffTask("1", "simpleTask");

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  YoutubePlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller =  YoutubePlayerController(
      initialVideoId: "WRiI65WugkE",
      flags: YoutubePlayerFlags(
        autoPlay: false,
        mute: false,
      ),
    );
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: YoutubePlayerBuilder(
          player: YoutubePlayer(
            controller: _controller,
            showVideoProgressIndicator: true,
          ),
          builder: (BuildContext context, Widget player) {
            return player;
          },
        ),
      ),
    );
  }
}

void callbackDispatcher() {
  Workmanager.executeTask((task, inputData) {
    print("Native called background task"); //simpleTask will be emitted here.
    return Future.value(true);
  });
}

Amend build.gradle in android/app/src/ and set minSdkVersion to 20:
defaultConfig {
        applicationId "com.example.youtubeplayerbug"
        minSdkVersion 20
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

Build and run. It will immediately crash with this error:
E/flutter (25293): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference, null)
E/flutter (25293): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter (25293): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:18)
E/flutter (25293): <asynchronous suspension>
E/flutter (25293): #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)
E/flutter (25293): #3      AndroidViewController._create (package:flutter/src/services/platform_views.dart:633:54)
E/flutter (25293): #4      AndroidViewController.setSize (package:flutter/src/services/platform_views.dart:550:14)
E/flutter (25293): #5      RenderAndroidView._sizePlatformView (package:flutter/src/rendering/platform_view.dart:175:29)
E/flutter (25293): #6      RenderAndroidView.performResize (package:flutter/src/rendering/platform_view.dart:156:5)
E/flutter (25293): #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1746:9)
E/flutter (25293): #8      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #9      RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #10     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #11     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #12     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #13     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #14     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:556:15)
E/flutter (25293): #15     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #16     RenderAspectRatio.performLayout (package:flutter/src/rendering/proxy_box.dart:526:13)
E/flutter (25293): #17     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #18     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #19     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #20     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:266:13)
E/flutter (25293): #21     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #22     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #23     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #25     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
E/flutter (25293): #26     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #27     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:246:13)
E/flutter (25293): #28     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #29     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:207:11)
E/flutter (25293): #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #31     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:11)
E/flutter (25293): #32     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:484:7)
E/flutter (25293): #33     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
E/flutter (25293): #34     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:399:14)
E/flutter (25293): #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #36     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #37     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #38     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #39     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
E/flutter (25293): #40     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #41     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #4

@jamesncl i get the error everytime i run my app.
and I'm not using flutter_inappwebview directly and i use youtube_player_flutter too..
i have realized that the error occurs when i run some background task with android_alarm_manager and try to play a video from YouTube using the youtube_player_flutter plugin, but when i stop running the background task and rebuild the app i don't get the error. so i try run the background task with a different plugin(flutter_workmanager) and got the error again. So i have concluded that the probably the background process might be holding some resources that flutter_inappwebview needs to work properly.

@addtek Aha! I am also using alarm manager to do background tasks (downloading the latest list of YouTube video IDs). I'm using the workmanager plugin, which uses Android's WorkManager under the hood.
@addtek out of interest, when were you initialising Android WorkManager in your app? Do you do this before runApp() ? I initialise the workmanager plugin a bit after, while loading some background data. I'm trying to understand why it crashes for you every time but only happens to me sometimes.
I'm going to remove the workmanager plugin and see if I get this error again.

I initalise the Workmanager after in the main app view after a user is authenticated, so that's pretty way after 'runApp()'. actually i don't get the error right away when the app runs but when i try to play a video.

Yep I also only get the error when I have a youtube player widget on the screen.

Thanks! I will try to debug it. I will let you know as soon as possible

I found that there is a problem with the Workmanager.registerOneOffTask method.
For example, if you delay that call to 3 seconds later, or somehow after the InAppWebView (or your youtube plugin widget) is added to the widget tree, it seems to work:
void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Workmanager.initialize(
    callbackDispatcher,
    isInDebugMode: true,
  );
  Future.delayed(const Duration(milliseconds: 3000), () {
    Workmanager.registerOneOffTask("1", "simpleTask");
  });

  runApp(MyApp());
}

Ok, I fixed it! I don't know why, but calling Workmanager.registerOneOffTask causes timing issue to my plugin and, somehow, delays and invert the order the calls of 2 Flutter android native API: FlutterPlugin.onAttachedToEngine event and ActivityAware.onAttachedToActivity event.
Because of this, a variable of mine gets null and shows the error you see.
This fix will be available in the next release 3.4.0.

Super cool thank you @pichillilorenzo

Nice! Thanks @pichillilorenzo for responding so quickly. Looking forward to 3.4.0 :)

Published new 3.4.0 version!


Fixed #33726 -- Django admin needs a skip link

Ticket
TO CHECK:

[x] The skip link is very simple, same as the screenshot in the ticket, do we want better styles?
[ ] I'm not big fan of do this, but there is another browser condition (Firefox): https://github.com/django/django/pull/15837/files#diff-12ef717f127caf8dbd84705926228907d362d342d6053ef1135305a0ac75c88bR44
like I did previously in https://github.com/django/django/blob/0dd29209091280ccf34e07c9468746c396b7778e/tests/admin_views/test_prevent_double_submission.py#L62
and looking it again we could delete the elif firefox ☝
[x] https://code.djangoproject.com/ticket/33726#comment:3

[x] Test keyboard only
[x] Then keyboard + screenreader
[x] Test mobile screenreader gestures
[x] Listen to screenreader output on all devices

[x] Tabulation is OK? https://github.com/django/django/pull/15837#discussion_r921237494

TO RUN TESTS:
./runtests.py admin_views.test_skip_link_to_content.SeleniumTests --selenium=BROWSER --parallel=1 with BROWSER as chrome, firefox or safari
NOTES
🗒 If you are testing in Mac with Firefox, please check: https://stackoverflow.com/questions/11704828/how-to-allow-keyboard-focus-of-links-in-firefox
🗒 If you are testing in Mac with Safari, please check: https://corehelpcenter.bqe.com/hc/en-us/articles/115003481673-Tab-key-is-not-working-on-Mac-Safari#:~:text=You can resolve this issue,each item on a webpage.

Hey @mgaligniana — this looks good. Thanks for picking it up.
I'm not quite following how your comment maps back to @thibaudcolas's acceptance list on the ticket? 🤔 Are you saying you didn't check the screen reader bit yet.
"Draft" — what are you looking for before proper review?

Hi @carltongibson!
Sorry about this! I put it as a draft because I'm still working (my tests are not passing in Safari and 1 is failling in Firefox).
Also I was using the PR description to take notes 🧠 🎗, I thought it was not going to be reviewed until it is ready 😅.

Are you saying you didn't check the screen reader bit yet.

Correct ☝

No problem @mgaligniana! I'm just trying to establish what I can do to assist you. Please don't apologise: I think this is awesome.
🏅

buildbot, test on selenium.

buildbot, test on selenium.

@thibaudcolas Thank you so much for your detailed review!

I applied all your styling suugestions + I compared/merged them with the example in https://webaim.org/techniques/skipnav/.

For RTL languages it creates horizontal scrolling

Seems it's working but I added a test to check that but I couldn't make the test takes the language override (line https://github.com/django/django/pull/15837/files#diff-12ef717f127caf8dbd84705926228907d362d342d6053ef1135305a0ac75c88bR108) @carltongibson could you help me with that?

The link’s focus outline being cropped is unideal

I didn't understand that, sorry! Could you show me with an image what you mean?
Thanks!

buildbot, test on selenium.

buildbot, test on selenium.

OK, this looks good to me: the patch is nice and small — the test is 🤯 :)
@thibaudcolas Can I ask if you have further comments? The behaviour seems correct to me, but I'm not experienced in serious keyboard navigation. I tab around, but my settings seem to take the focus off to the browser chrome rather than through the page at times, and enabling the more full-featured accessibility navigation leaves me with a rather large learning curve to climb up to even do anything, so I'm somewhat dependent on your judgement here. Thanks.

buildbot, test on selenium.

buildbot, test on selenium.

OK, let's push this forward. We can follow up if any other adjustments are needed. Thanks @mgaligniana and @thibaudcolas for the work on this! 👍


Documentation / feature req: restore trident (not tridentctl import)

In case of a problem on trident. After reinstalling it, I want to map existing volumes on netapp SVM to an existing already running netapp pvc.
If i reinstall trident and re-add the backend I see "0" volumes. I need to delete the running pvc and then recreate it with tridentctl import. But ofc this implies a downtime in my application. Its manual and it does not scale.
How can make the new trident installation to recognise the existing volumes in the SVM and the existing PVC ?
Is the operator listening to the crds creation? can I just backup my CRDS in case of a failure and after reinstall trident, apply the crds so the backend, volumes and so on , can be restored all back and tracked by trident?
should we keep a copy of the crds on the SVM so in case of a total lost of the k8s cluster i can just install trident and do "tridentctl restore" ?

Hi @zakkg3,
If you uninstall Trident 19.07 or newer and then install Trident again all of the Trident CRDs should still exist. Did you use the same namespace when you reinstalled Trident?

Closing this issue as an update with additional information wasn't received.


Fix non-ascii character in README.rst

When I try to build django-hstore in a minimal build environment, I get this error:
File "setup.py", line 46, in
long_description=open('README.rst').read(),
File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 874: ordinal not in range(128)
This is easily fixed with a one character change.  Thanks for considering.

Coverage remained the same at 83.04% when pulling b59237e1567892d8bdc0e9468401f8ed30b8aa3b on kitterma:master into 61427e474cb2f4be8fdfce225d78a5330bc77eb0 on djangonauts:master.


docs: update cluster section user roles

This pull request updates the descriptions and features of user roles in the cluster section.
Fixes https://github.com/daytonaio/enterprise-docs/issues/97
Let me know if there should be another section in the documentation reserved to describe general user roles. If so, I can open another pull request containing those changes.

Sounds good, I have these changes ready, but will open a new pull request as it requires modifying the sidebar configuration - which is in the initial oss porting pull request.


Remove templateUtils

Describe the feature
templateUtils for compiling templates is deprecated and can be removed in v4
https://github.com/nuxt/nuxt/blob/648ef069931336b8ee0c0e48fef3ee700ebc3dbe/packages/nuxt/src/core/app.ts#L37-L38
Additional information

[X] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

👉 Recommend knitwork for manually creating templates.

implemented in https://github.com/nuxt/nuxt/pull/26925 under a flag (to be removed when v4 lands)


fix [CX-2690]: Update My Collection banner style

The type of this PR is: Bugfix

This PR solves CX-2690
Description
Updates My Collection banner style

@olerichter00 I think design wants it to be blue100

I am in a all with Dasha, i will check

Dasha said it's good this wa


Add HTTP Response checks

As the application checks for domain names and certificates, why not check for HTTP responses?
It should be simple enough:

Request Method selection
Configurable Authentication
Response Status Code match
Response Body Keyword match

Work started in this branch: https://github.com/flavioheleno/watchr/compare/feat/http-checks


Adding the MacOS to CI

What is the change?
Adding the MacOS to CI.
Why is the change being made?
I recently found out that some of our users are Mac people.
Notes

I can not immediately get our unit tests working in Mac in parallel (something about our test temp directory logic breaks). So, this PR only runs the unit tests in series.
The Mac Unit Tests take 14 minutes to run. Is that too long?

Checklist

[X] This PR has only one purpose or idea.
[X] Tests have been added/updated to verify any new/changed code.

[X] The code style follows good practices.
[X] The commit message(s) follow good practices.

[X] The release notes have been updated if necessary.
[X] The documentation is still up-to-date in the doc folder.
[X] The dependencies are still up-to-date in pyproject.toml.

I've got an old macbook air from grad school lying around if you ever need more mac-specific testing.

I borrowed my wife's Mac. But I'm sure I'd love a second tester. Up to you!


Intercom session not destroyed via Devise log out

In my routes:
devise_for :users, controllers: { :omniauth_callbacks => "users/omniauth_callbacks", registrations: 'registrations', sessions: "sessions" }

In my sessions_controller.rb
class SessionsController < Devise::SessionsController

  after_action :prepare_intercom_shutdown, only: [:destroy]

  protected
  def prepare_intercom_shutdown
    logger.debug "><><><><><><><><><><>< prepare_intercom_shutdown ><><><><><><><><><><><"
    IntercomRails::ShutdownHelper.prepare_intercom_shutdown(session)
  end
end

In my root path pages#home (redirected to after session destroy)
  after_action :intercom_shutdown, only: [:home]
  protected
  def intercom_shutdown
    logger.debug "><><><><><><><><><><>< intercom_shutdown ><><><><><><><><><><><"
    IntercomRails::ShutdownHelper.intercom_shutdown(session, cookies)
  end

In my log:
><><><><><><><><><><>< prepare_intercom_shutdown ><><><><><><><><><><><
Started GET "/" for <IP_ADDRESS> at 2016-05-12 10:54:13 -0500
Processing by PagesController#home as HTML
  Rendered pages/home.html.erb within layouts/application (98.6ms)
  Rendered layouts/_styles.html.erb (68.8ms)
  Rendered layouts/_header.html.erb (6.3ms)
  Rendered layouts/_footer.html.erb (1.1ms)
><><><><><><><><><><>< intercom_shutdown ><><><><><><><><><><><

Is your page controller an instance of ActionController::Base ?

Hey I followed the directions from here https://github.com/intercom/intercom-rails#using-devise which shows the following instructions:

Assuming that the destroy method of session_controller redirects to your visitors_controller.rb#index method, edit your visitors_controller as follow :

class VisitorsController < ApplicationController
  after_action :intercom_shutdown, only: [:index]

  def index
    # You logic here
  end

  # You logic here

  protected
  def intercom_shutdown
    IntercomRails::ShutdownHelper.intercom_shutdown(session, cookies)
  end
end

Where are you suggesting I put before_action :intercom_shutdown, only: [:home]

Just changed to before_action and deployed. Still broken. Also, can't test locally due to https://github.com/intercom/intercom-rails/issues/195

I'm disabling intercom acquire until we can get this fixed. Let me know if you have any other suggestions. Thanks

Hey.
That's a really strange issue.
The purpose of the helper is to erase the cookie that identifies the logged-in user with Intercom (intercom-session-).
Can you try to modify the intercom_shutdown method as follow :
def intercom_shutdown
    p session.class.name
    p cookies.class.name
    IntercomRails::ShutdownHelper.intercom_shutdown(session, cookies)
  end

Session should be an instance of ActionDispatch::Request::Session and cookies an instance of
ActionDispatch::Cookies::CookieJar.
Let me know what result you get.

@Skaelv where can I override this method in my app? Thanks

If you followed the instruction in the README you should have an intercom_shutdown in your homeController containing this function :
def intercom_shutdown
    IntercomRails::ShutdownHelper.intercom_shutdown(session, cookies)
end

Just replace it with what the code above.

Oh my bad.. sorry, thought I was overriding part of the Gem here..

Here's what I see in production with this edit:
><><><><><><><><><><>< prepare_intercom_shutdown ><><><><><><><><><><><
Completed 302 Found in 23ms (ActiveRecord: 2.8ms)
Started GET "/" for <IP_ADDRESS> at 2016-05-13 11:08:04 -0400
Processing by PagesController#home as HTML
><><><><><><><><><><>< intercom_shutdown ><><><><><><><><><><><
ActionDispatch::Request::Session
ActionDispatch::Cookies::CookieJar

Just activated logged out users again, and still having the same issue. Seeing previously logged in user's conversations...

This is the result I expected for
p session.class.name
p cookies.class.name

But it is strange that
p cookies['intercom-session-<your-app-id>']

doesn't even print nil...

Ah I think we're starting to get somewhere just checked in my cookies and the cookie has a different app id intercom-session-tx2p130c... Why would that be?

In the script I see
window.intercomSettings = {"app_id":"q1an771d"};(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/q1an771d';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}};})()

This is the Intercom app_id. It is probably the cookie that identifies you on Intercom so I don't think it is related to our issue here.

If you want to inspect what's happening in the gem you can just clone intercom-rails and point to your folder (~/src/intercom-rails for instance) in your gemfile like this :
gem 'intercom-rails', :path => '~/src/intercom-rails'

and run bundle install

Can you see an intercom-session-q1an771d in your browser cookies after you logged out ?

I don't see that cookie at all even when I'm logged in.

I just searched all cookies in chrome

Nevermind I do see it now.. it's there when I'm logged in, and remains after I log out.

I think in order to fix this we really need to figure this out https://github.com/intercom/intercom-rails/issues/195 first. It's impossible for me to do any local testing right now as the sessions aren't being created for logged in users due to the issue detailed in https://github.com/intercom/intercom-rails/issues/195

I tried adding this to the application controller but it doesn't work.. any idea where I could put it?
  after_action :remove_intercom_session

  protected

  def remove_intercom_session
    unless current_user
      cookies.delete 'intercom-session-q1an771d'
    end
  end
```ruby

Ha, wow. Ok finally got it working with:
after_action :remove_intercom_session
protected
def remove_intercom_session
unless current_user
cookies.delete('intercom-session-q1an771d', domain:'.hearingtracker.com')
cookies.delete('intercom-id', domain:'.hearingtracker.com')
end
end

Great!!
I dont think you need to erase the intercom-id cookie but it is Interesting that you had to provide the domain.
A nicer way would be to add an optional domain arg to the Intercom Shutdown Helper and do the same as you are doing but in the helper. Feel free to make a pull request for this if you want to :)

Thanks @abrambailey ! I had the same issue. Adding the :domain fixed it, as you mentioned.
Btw. according to this Stack Overflow answer, :domain needs to be added if the cookie is set with domain. So that makes me wonder, if the IntercomRails::ShutdownHelper.intercom_shutdown ever works?


No server info logs of the error when authorization request fails due to an expired JWT

Describe the issue:
Authorization requests fail when trying to make an authorization call with an expired JWT (the exp attribute having a past date) in the request object. Yes it is true that the request needs to fail in these types of scenarios as the JWT is expired. But the issue that we come across here is that there are no server info logs that could be found in such instances which makes the user completely unaware of why the request failed unless debug logs are enabled. The reason for it is because only debug logs are added when handling the exception. In the code snippet [1] it can be found where the exception is being thrown and in the code snippet [2] it can be found where the errors are being logged just when debugging is enabled.
Expected behavior:
Therefore if we could change the implementation in [2] to either add additional server info logs mentioning the reason for the error to occur when handling the exception or if we could remove the isDebugEnabled() condition check and log the exception anyway, then it would give more clarity to the user of the error that occurred in order to rectify it. If we are to use the option of adding additional server info logs then it should mention the error as Expired JWT when handling the exception. The purpose of implementing one of the aforementioned solutions  is because ideally the end user must be aware of the error occurring without even having debug enabled.
[1] https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/master/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth/RequestObjectValidatorUtil.java#L153
[2] https://github.com/wso2-extensions/identity-inbound-auth-oauth/tree/master/components/org.wso2.carbon.identity.oauth.endpoint/src/main/java/org/wso2/carbon/identity/oauth/endpoint/authz/OAuth2AuthzEndpoint.java#L1967

Expired JWT is an error from the client side. As a practice, such client side errors are not logged as info logs on the server side.
However, an appropriate response is sent to the client (in this case error=invalid_request_object) which should enable the client to detect the error from their end. In addition, as mentioned in the issue description as well, server side debug logs can be used to identify the error if required.
Closing the issue as this is the intended behaviour.


filecache: check filesystem for tile even if key does not exist

The filecache maintains a map of tiles in the cache. The cache reads the filesystem on init and then creates new entries in the map as the server generates new tiles. This approach does not account for seeding creating new tiles while the server is running, or possibly a shared file store situation (i.e. Amazon EFS).
When a tile key does not exist in our map, we should check the filesystem to see if it has been created outside of the server and after server init.

This issues will be covered by #203. Closing


laravel-websockets with spatie / laravel-multitenancy

Hi,
how can i integrate your package with laravel-multitenancy, noting that i'm using multi databases approach?
Any help will be appreciated.
Thanks

I use other package, into websocket server make a provider and into tenant server make a pusher custom Broadcaster to work
https://tenancyforlaravel.com/

@yashiroiori How did you config? can you detail how to config i face problem config does not work ?


Bootstrapping sBTC DR

Document how to bootstrap sBTC DR. It should include:

Deploying the contracts.
Sending the upgrade transaction to enable the protocol contracts.
Getting the pool to an active state so that signers can join and vote.

@jferrant in this issue we will discuss how to bootstrap sBTC Developer Release.

outdated


Buy failed all the time

Every time I look for any player, when I try to make the purchase it always says "buy failed".
This error already appeared on Monday, but with the fix and the update that you uploaded the files it was solved. Now it comes back to me and I don't know what to do @chithakumar13

Yea happening to me as well, have bought maybe 2-3 players in the past 2 days because of it.

@pipxgg , @ddster  , Are you guys able to manually bid in transfer market?

@chithakumar13 Yes, I can manually bid and buy things on the transfer market with no problem.

Yes, me too @ddster @chithakumar13

Please take latest version , i updated the error message to find why bidding failed

thnks for all, me too i can't buy anythink since monday "521-Server Rejected the request"

thnks for all, me too i can't buy anythink since monday "521-Server Rejected the request" @chithakumar13


Removed hasClass method

Fixes #8273
After merging #8419 PR in the master, there was an issue with the 'hasClass`method. This PR is to fix it when you select rows in a table by pressing 'shift+j' or 'shift+k

Where was this failing?
For cleaner code you can use
if (row?.hasClass('row-selected')) {

Where was this failing?
For cleaner code you can use
if (row?.hasClass('row-selected')) {

@richard-cox in master after updating it.

@richard-cox in master after updating it.

Where in the dashboard? Is there a specific list or location of the click?


Mocked methods that return nullable collections return non-null value by default

Given there is an interface
interface Service {
    fun getStrings(): Collection<String>?
    fun getStuff(): Stuff
}

data class Stuff(val a: String)

and a test that mocks the interface and calls and checks its methods sequentially
class MockitoKotlinTest {
    @Test fun `check mocking`() {
        val client = mock<Service>()

        assertThat(client.getStuff()).isNull()
        assertThat(client.getStrings()).isNull() // <-- fails here
    }
}

the assertThat(client.getStrings()).isNull() assertion will fail because by default mockito-kotlin makes it return LinkedList rather than null, despite the fact that interface explicitly allows null as return value. If I do something like
        whenever(client.getStrings()).thenReturn(null)

then test passes as expected, but it would be great if default return value for nullable collections were nulls.
Affected versions: 0.10.0, 0.10.1, 0.12.2

This is expected behavior as per Mockito itself:

By default, for all methods that return a value, a mock will return either null, a a primitive/primitive wrapper value, or an empty collection, as appropriate. For example 0 for an int/Integer and false for a boolean/Boolean.

See http://static.javadoc.io/org.mockito/mockito-core/2.2.27/org/mockito/Mockito.html#2.
Since there is no intention to change any semantic behavior that Mockito provides, this library will not change this.


Removes transparency from completed thoughts on Archived Boards (#177)

Adds an Archived input property to Task components, which is set to true on Archived Boards.
Removes 'opacify' styling from Task component content, star count, and completed checkbox, if the Archived input property is true.

Resolves Issue #177, regarding completed task transparency being unnecessary on archived boards and making thoughts hard to read.
Demo

Nice work @tyler-tm! I will review this during power up time tomorrow.


Add more details [#164025102]

Hi @lparis. I added only textual changes to this PR. If the changes look good, I'll add a couple of screenshots as well. Let me know when you review the PR and I'll merge it into the main branch.

LGTM, I have a couple more screenshots. Will send them over. Thank you for your help with this and detailed review.

Thanks @lparis and @vikafed!

Thanks @lparis and @vikafed!


Testing: 2.6.0 release

Master issue for testing the 2.6.0 beta release.

Rhino
Lead: @clairekuang

[ ] Complete

Issues:

[ ] Sample issue found with link or image

Grasshopper
Lead: @AlanRynne

[ ] Complete

Issues:

[ ] Sample issue found with link or image

Revit
Lead: @izzylys

[ ] Complete

Issues:

[ ] Sample issue found with link or image

Civil3D
Lead: @clairekuang

[ ] Complete

Issues:

[ ] Sample issue found with link or image

Tekla
Lead: @Reynold-Chan

[ ] Complete

Issues:

[ ] Sample issue found with link or image

CSI
Lead: @Reynold-Chan

[ ] Complete

Issues:

[ ] Sample issue found with link or image

Archicad
Lead: @izzylys

[ ] Complete

Issues:

[ ] Sample issue found with link or image

Bentley
Lead: @clairekuang

[ ] Complete

Issues:

[ ] Sample issue found with link or image

DUI
Lead: @teocomi

[ ] Complete

Issues:

[ ] Sample issue found with link or image


CW20: Remove IncreaseAllowance / DecreaseAllowance

(Not sure if this is the right place to leave feedback on the CW20 token standard, but none of my friends in the Cosmos ecosystem could know better.)
CW20 tokens have IncreaseAllowance and DecreaseAllowance logic copied from ERC-20. Originally not part of the ERC-20 spec, these functions were added afterwards. They do not serve a meaningful purpose and are mostly security theatre.
The origin of these functions is in the questionable discussion of security researchers claiming for a security vulnerability exists where such does not really exist. Such snake-oily behaviour was common during the early Ethereum smart contract years 2017/2018, because security researchers could get reputation and extra audit work by making blog headlines with posts like "all ERC-20 tokens have a vulnerability." Namely, the "race condition" explanation behind these calls does not make any sense as was created there just someone to make name for themselves as security researchers. Because the people pushing these calls were noisy and annoying, the rest of the ecosystem ended up adopting them, instead of tolerating the constant yelling.
Anyone who thinks logically will see through this security issue fallacy
Scenario A)

A user has given a token allowance for someone and this someone can do whatever with the allowed tokens, like steal them

Scenario B)

A user has given a token allowance for someone
Because of the "race condition", someone can see the token allowance is about to change in a new message and steals the tokens

Scenario B is not a real threat scenario, because if you give someone an allowance and they want to steal your tokens, they will do it the right way.  They are not going to wait for you to reissue approve() call.
Because CosmWasm is a new high-quality ecosystem, I would recommend CosmWasm not to copy increase/decrease allowance baggage from the past, as its only purpose has been serving as a security theatre.

These messages do not serve any meaningful purpose
They make the CW20 unnecessarily complicated
Having any token methods outside send() and transfer() confuse end user leading them being scammed

Anyone who thinks logically will see through this security issue fallacy

That's a bit of an absolute.
Please note we don't have anything like approve. We only have the increase/decrease calls for mutating the allowance.
I don't think we want to break this API at this stage.

The solution discussed in the Ethereum community was an IncreaseAllowance and DecreaseAllowance operator (instead of Approve). To originally set an approval, use IncreaseAllowance, which works fine with no previous allowance. DecreaseAllowance is meant to be robust, that is if you decrease by more than the current allowance (eg. the user spent some in the middle), it will just round down to 0 and not make any underflow error.

I don't think there is any kind of race condition which would be possible with just a simpler SetAllowance message. Or if there is some sort of scenario where because of the security two different messages are needed, it is not discussed in the spec.

I don't think there is any kind of race condition which would be possible with just a simple one SetAllowance message.

There are really two messages: GetAllowance and SetAllowance.
If I want to increase your allowance by N tokens, the race condition exists between checking your current allowance and setting the new allowance.

I set your allowance to 1,000.
I decide to give you an extra 2,000, so I check to see your current allowance: it's 1,000.
You spend 1,000.
I set your allowance to 3,000.
Now you can spend an additional 3,000 - I've accidentally given you 4,000.

You could automate this by watching mempool for my message 4 and trying to frontrun your spend. If you win, you get free money. If you lose, you simply spend some of the new allowance.
With increase/decrease allowance:

I increase your allowance (from zero) by 1,000.
I decide to give you an extra 2,000, so I increase your allowance by 2,000.
Now you can spend 3,000.

Whether or not you try to frontrun me, the total amount I give you is never more than 3,000.


Copy exchange.md and servicesMapping.json from qinezh-test branch

Docs Build status updates of commit f1c7df0:
:clock10: Full build: the average full build time is 16 min(s) 18 sec(s), this is based on the last 1000 build(s) for this repository.

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

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

exchange/exchange-ps/exchange/exchange.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/mapping/serviceMapping.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit ffd3c6f:
:clock10: Full build: the average full build time is 16 min(s) 20 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit ffd3c6f:
:clock10: Full build: the average full build time is 16 min(s) 20 sec(s), this is based on the last 1000 build(s) for this repository.

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

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/exchange.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/mapping/serviceMapping.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Z-Index foundation page

[ ] Write new documentation
[ ] Update external site docs with new content

Red-eye goal: Documentation complete

Red eye goal:  publish by EOS

Still pending sync with @amritadesmet and @pseys

18 Dec Update: Working on content documentation


use edit breaks the edit namespace

~> echo $edit:abbr
[&]
~> use edit
Exception: no such module: edit
[tty 2], line 1: use edit
~> echo $edit:abbr
Exception: variable $edit:abbr not found
[tty 3], line 1: echo $edit:abbr

It appears that failing to import the edit module will remove all edit names from the namespace. edit:abbr is chosen here to demo, but all edit symbols are removed.
Elvish version:
Version: 0.19.0-dev.0.20221005003058-684cfc2c82d7
Go version: go1.19.2

Hmm there is a simple fix/workaround. You could try:
~> del edit:

For me that restores the old edit-namespace


Adding new sites

Hey thanks for the pull request! The reason why I haven't added AO3 before is because they already have excellent download options built in and I don't want to create unnecessary traffic for them.
Also please use example_com as a template for new sites. The selectors can create NullPointer  if the elements cant be found (eg. wrong url)

Hey, thanks for responding! Yeah, I see your point about AO3 and I took it out, but I believe wnmtl should work, cause the NPE is caught getting the chapter list.

review when you can

Looks good!


Update MXSegmentedPager.m

Fix segmentedControlEdgeInsets not working with example

Hi @cerupcat ! thanks for your fix. Unfortunately your fork is out of date and this pull request does not contain your previous changes .
I have also updated the MXSegmentedPager class, but it won't affect your padding feature. If you have time to reapply your changes to the new code, please refork. Otherwise I will add it manually.
Thanks again for your contribution!


clarify how to use pg_net on a different database

why is this flaky :(

The tests do not work because the requests time out before a response can be returned. When the tests compare the expected return value to the message of a timeout error, it fails. The default max time for any request is 2 seconds. The endpoint, httpbin, is too slow.
I tried changing the API endpoint from httpbin to postman's testing API in a pull request some time ago. I was hoping utilizing a more reliable endpoint would solve the issue. However, after Github actions took over an hour to execute the test, I closed my pull request.
I'm not too familiar with Github actions, but perhaps modifying the testing code it relied on resulted in strange behaviors. Either or, if you can limit the max runtime for the actions, I think you should.


MacOS tar.gz bundle: playground fails on libiconv

Crystal version: 0.31.1 (also tested 0.31.0, which fails, too).
MacOS version: 10.14.6.
I am able to compile simple Crystal programs (I'm trying it for the first time today). However, when I try to run the playground with crystal play, once I connect to the URL the spinning start/stop button eventually announces a disconnect, and I get this in the terminal —
Listening on http://<IP_ADDRESS>:8080
Undefined symbols for architecture x86_64:
  "_iconv", referenced from:
      _*Iconv#convert<Pointer(Pointer(UInt8)), Pointer(UInt64), Pointer(Pointer(UInt8)), Pointer(UInt64)>:UInt64 in I-conv.o
  "_iconv_close", referenced from:
      _*Iconv#close:Nil in I-conv.o
  "_iconv_open", referenced from:
      _*Iconv#initialize<String, String, (Symbol | Nil)>:Nil in I-conv.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Error: execution of command failed with code: 1: `cc "${@}" -o '/Users/xxxxx/.cache/crystal/crystal-run-play-1-1.tmp'  -rdynamic  -lz `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'` `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libcrypto || printf %s '-lcrypto'` -lpcre /Users/xxxxx/local/pkg/crystal-0.31.1-1/embedded/lib/libgc.a -lpthread /Users/xxxxx/local/pkg/crystal-0.31.1-1/src/ext/libcrystal.a -levent -liconv -ldl -L/Users/xxxxx/local/pkg/crystal-0.31.1-1/embedded/lib -L/usr/lib -L/usr/local/lib`

There is a libiconv.2.dylib in /usr/lib, so I'm not entirely sure where the error is.

I needed a export LIBRARY_PATH=/usr/local/Cellar/openssl/1.0.2t/lib but afterwards I couldn't reproduce on 10.15.1.

Do you use Homebrew? Does the Homebrew version work for you?

I do not, and was hoping not to just to do some testing.

How are you installing crystal to test it?  Works here with git master 10.14.6 FWIW...


Symfony reports deprecations since 4.0

After upgrading to 4.0 I see this in my logs:
2021-01-21T12:24:32+00:00 [info] User Deprecated: The "Sentry\State\HubAdapter::startTransaction()" method will require a new "array<string, mixed> $customSamplingContext" argument in the next major version of its interface "Sentry\State\HubInterface", not defining it is deprecated.

2021-01-21T12:24:32+00:00 [info] User Deprecated: The "Sentry\State\Hub::startTransaction()" method will require a new "array<string, mixed> $customSamplingContext" argument in the next major version of its interface "Sentry\State\HubInterface", not defining it is deprecated.

Related to https://github.com/getsentry/sentry-php/pull/1134.
As this is reported by Symfony I report it here in the SymfonyBundle repository.
How can this be solved?

The tracing feature should be enabled by default, can you confirm that?
How did you enable that? Can you share a stacktrace of this issue?

The tracing feature should be enabled by default, can you confirm that?
How did you enable that? Can you share a stacktrace of this issue?

It happens because there is a new @param defined in phpdoc of HubInterface but not in the function argument, see https://github.com/getsentry/sentry-php/blob/d727bd1a35523b96dfe450ec4e8406338cec816c/src/State/HubInterface.php#L143-L145
The issue is reported by Symfony's DebugClassLoader.
See https://github.com/symfony/error-handler/blob/7d9e5470d7bfb692f1db4c4dfe79bd5ff3312ca1/DebugClassLoader.php#L675

It happens because there is a new @param defined in phpdoc of HubInterface but not in the function argument, see https://github.com/getsentry/sentry-php/blob/d727bd1a35523b96dfe450ec4e8406338cec816c/src/State/HubInterface.php#L143-L145
The issue is reported by Symfony's DebugClassLoader.
See https://github.com/symfony/error-handler/blob/7d9e5470d7bfb692f1db4c4dfe79bd5ff3312ca1/DebugClassLoader.php#L675

Oooh now I get it! Well, we're the same maintainers, and that feature has still to be implemented, so it should be a non-issue...

Oooh now I get it! Well, we're the same maintainers, and that feature has still to be implemented, so it should be a non-issue...

I understand. But it will now warn until this is implemented for every Symfony user that upgrades to 4.0.

I understand. But it will now warn until this is implemented for every Symfony user that upgrades to 4.0.

I understand but I don't know how to silence this. It seems to be triggered even if the code is used in a FC way, right?

I understand but I don't know how to silence this. It seems to be triggered even if the code is used in a FC way, right?

It can be silenced by removing the phpdoc from the interface.

It can be silenced by removing the phpdoc from the interface.

@ste93cry what do you think? Should we remove or alter it to avoid those deprecations?

@ste93cry what do you think? Should we remove or alter it to avoid those deprecations?

It can be silenced by removing the phpdoc from the interface

It won't be necessary, you made me find out some weeks ago that the signature of a method in a class implementing an interface can be different if the new arguments have a default value. so we can add the argument to the HubAdapter and Hub classes to solve the issue

It can be silenced by removing the phpdoc from the interface

It won't be necessary, you made me find out some weeks ago that the signature of a method in a class implementing an interface can be different if the new arguments have a default value. so we can add the argument to the HubAdapter and Hub classes to solve the issue

Fixed in https://github.com/getsentry/sentry-php/pull/1176

Fixed in https://github.com/getsentry/sentry-php/pull/1176

✅  Confirmed that https://github.com/getsentry/sentry-php/commit/540fd64e20381feeb269e151eb7227fa3aecdb75 works and the deprecation notice is now gone!

✅  Confirmed that https://github.com/getsentry/sentry-php/commit/540fd64e20381feeb269e151eb7227fa3aecdb75 works and the deprecation notice is now gone!


Adaptive Scale fix for PAG

Not a python dev, but took a crack at fixing the Adaptive Scale issue with the latest Forge updates.
Tested and verified in Forge version e2fe29c1 (latest as of November 5, 2024).
I put in a backwards compatibility check that hopefully works, but I wasn't able to test that part locally.
Thanks for the fantastic extension!

LGTM, thanks a lot! This should fix #26


ImmediateScheduler not returning immediately with debounce

Describe the bug
I am trying to use ImmediateScheduler to avoid using XCTWaiter to wait for a given debounce to finish. However, when I pass in a immediate scheduler to debounce() the value assigned by the subscriber is not set before the assertion happens. It won't even work if I add _ = XCTWaiter.wait(for: [XCTestExpectation()], timeout: 5) even though the debounce is only for 0.5 seconds.
The test succeeds if I use DispatchQueue.main and wait for 0.5 seconds. It might just be me understanding the functionality of purposes for ImmediateScheduler
// I am passing in a scheduler variable normally instead of hardcoding, just for demonstration purposes.
usernameState
            .debounce(for: 0.5, scheduler: DispatchQueue.immediateScheduler)
            .receive(on: DispatchQueue.immediateScheduler)
            .map { $0.message }
            .assign(to: \.usernameError, on: self)
            .store(in: &cancellables)

// Test:
func testUsernameErrorMessage() throws {
        var usernameError = ""

        viewModel.$usernameError
            .sink(receiveValue: { usernameError = $0 })
            .store(in: &cancellables)

        // Empty state
        viewModel.username = ""
        XCTAssertEqual(usernameError, "my error message")
}

Expected behavior
I expected the publisher to return the value immediately instead of having to wait, however it won't even work with an ImmediateScheduler if I add XCTWaiter.
Environment

Xcode 12 beta 6
Swift 5.3
OS (if applicable): iOS 14

Hey @madsodgaard! Thanks for taking the time to open this. Unfortunately Apple's more complex operators, like Debounce, Throttle, and Timer.Publisher are not compatible with our immediate scheduler (or even the ImmediateScheduler that ships with Combine), so this isn't something we can fix. But arguably we might not even want to fix this, because these operators introduce subtle logic into your code that should definitely be tested! ImmediateScheduler is mostly useful for simplifying tests that use receive(on:)s but otherwise introduce no significant logic to your application.
I've opened up #12 to document this a bit better.

Closing with the merge of docs in #12, but lemme know if you have any questions!


Inconsistent handling of dates before 01.01.1900

Hi,
currently absp2xlsx handles „invalid“ Excel dates (dates before 01.01.1900) different on the import and on the export side.
I want to convert an ALV to a CSV file using abap2xlsx. If the data contains such a date, converting the ALV to Excel works without problem. But exporting it to CSV fails.
In my opinion, this is inconsistent. What do you think?
Best regards,
Oliver
PARAMETERS p_path TYPE string LOWER CASE.

INITIALIZATION.
  cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = p_path ).
  cl_gui_cfw=>flush( ).

START-OF-SELECTION.
  TYPES tt_sflight TYPE STANDARD TABLE OF sflight WITH EMPTY KEY.

  DATA(gt_sflight) = VALUE tt_sflight(
      ( carrid = 'AA' connid = 1 fldate = '20000101'  )
      ( carrid = 'AA' connid = 1 fldate = '18000101'  ) ).
  cl_salv_table=>factory( IMPORTING r_salv_table = DATA(lo_salv)
                          CHANGING  t_table      = gt_sflight ).
  cl_salv_bs_runtime_info=>set( display  = abap_false
                                metadata = abap_false
                                data     = abap_false ).
  lo_salv->display( ).

  DATA(lo_converter) = NEW zcl_excel_converter( ).
  DATA(lo_excel) = NEW zcl_excel( ).
  lo_converter->convert( EXPORTING io_alv       = lo_salv
                                   it_table     = gt_sflight
                         CHANGING  co_excel     = lo_excel ).

  DATA(lo_excel_writer) = CAST zif_excel_writer( NEW zcl_excel_writer_csv( ) ).
  DATA(lv_file) = lo_excel_writer->write_file( lo_excel ).

  DATA(lt_file_tab) = cl_bcs_convert=>xstring_to_solix( lv_file ).
  cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = xstrlen( lv_file )
                                                    filename     = p_path && '\Sheet1.csv'
                                                    filetype     = 'BIN'
                                          CHANGING  data_tab     = lt_file_tab ).

Do you have a screenshot with the differences?

Do you have a screenshot with the differences?

The converter creates negative numbers from such a date. The CSV writer raises an exception if the number is negative.
Method date_to_excel_string vs. excel_string_to_date in class zcl_excel_common.

Obviously, a bug to be fixed. It must have been here for a long time; my 2 cents that it originates from ancient modifications of zcl_excel_worksheet=>set_cell concerning "data type" and "value type" notions (which I never clearly understood). In the program above, zcl_excel_writer_csv receives an empty data type for date and number fields, but the class expects "D" for date fields (there's also a crazy logic which tests the field names to determine the data type).

It looks like the texts of domain XUDATFM changed in newer systems:
NW 7.40: DD.MM.YYYY
NW 7.52: DD.MM.YYYY (Gregorian Date).
This breaks the crazy date identification logic.
I implemented a fix, which is part of https://github.com/abap2xlsx/abap2xlsx/pull/1268
Now the demo program also dumps in newer systems ;)
So what is your opinion on the invalid date handling on import/export side?

I think @oliver-huetkoeper was using 'E' as system-language and @sandraros did not.
That is why @oliver-huetkoeper got an exception and @sandraros got a result with negative values.

There is the following code in method create_csv
* --- Retrieve SAP date format
  CLEAR ls_format.
  SELECT ddtext INTO ls_format-attvalue FROM dd07t WHERE domname    = 'XUDATFM'
                                                     AND ddlanguage = sy-langu.     "THIS IS WRONG
    ls_format-cmpname = 'DATE'.
    CONDENSE ls_format-attvalue.
    CONCATENATE '''' ls_format-attvalue '''' INTO ls_format-attvalue.
    APPEND ls_format TO lt_format.
  ENDSELECT.

Please refer to method zcl_excel_worksheet->GET_DEFAULT_EXCEL_DATE_FORMAT:
There you find the following code:
      cl_abap_datfm=>get_date_format_des( EXPORTING im_langu = c_lang_e
                                          IMPORTING ex_dateformat = default_excel_date_format ).

The date formats like 'DD.MM.YYYY' and similar corresponds to english language only and should be read in english above, too.

After this fix we get always the exception. With issue #703 some code was added in zcl_excel_common->EXCEL_STRING_TO_DATE. Of course this is correct for normal excel output. But perhaps we should add a flag IP_PERMIT_NEGATIVE to be used from method create_csv only. Then the lower boundary to check is -693596 (01.01.0000)

@darnoc312 you are right regarding the language bug. I also discovered it and there is a fix for this in my pull request as well.
I was not sure if English is always correct. Therefore I SELECT now with sy-langu and with E.

In my opinion only language 'E' makes sense, because excel itself can not deal with 'JJJJ' or 'AAAA' as synonym for year in the format code. But you could argue to permit sy-langu because of backwards compatibility for csv only. So far the local date format was detected as date for csv although it does not work for excel. But if you like the possibility to switch the writer in your application program this may be another hidden problem. May @sandraros decide.

I think @oliver-huetkoeper was using 'E' as system-language and @sandraros did not.
That is why @oliver-huetkoeper got an exception and @sandraros got a result with negative values.

There is the following code in method create_csv
* --- Retrieve SAP date format
  CLEAR ls_format.
  SELECT ddtext INTO ls_format-attvalue FROM dd07t WHERE domname    = 'XUDATFM'
                                                     AND ddlanguage = sy-langu.     "THIS IS WRONG
    ls_format-cmpname = 'DATE'.
    CONDENSE ls_format-attvalue.
    CONCATENATE '''' ls_format-attvalue '''' INTO ls_format-attvalue.
    APPEND ls_format TO lt_format.
  ENDSELECT.

Please refer to method zcl_excel_worksheet->GET_DEFAULT_EXCEL_DATE_FORMAT: There you find the following code:
      cl_abap_datfm=>get_date_format_des( EXPORTING im_langu = c_lang_e
                                          IMPORTING ex_dateformat = default_excel_date_format ).

The date formats like 'DD.MM.YYYY' and similar corresponds to english language only and should be read in english above, too.

After this fix we get always the exception. With issue zcl_excel_common=>excel_string_to_date returns wrong value when cell was empty #703 some code was added in zcl_excel_common->EXCEL_STRING_TO_DATE. Of course this is correct for normal excel output. But perhaps we should add a flag IP_PERMIT_NEGATIVE to be used from method create_csv only. Then the lower boundary to check is -693596 (01.01.0000)

Looking at the code introduced with https://github.com/abap2xlsx/abap2xlsx/issues/703 it is basically the check statement at the beginning that solved the issue back then.
Therefore I would propose to simply extend the valid value range and do not introduce a new parameter. Or do you see any need to restrict this to only valid Excel dates?


Add intrinsics for xtheadvector extension

We are now adding XTheadVector C intrinsics that provide users interfaces in the C language level to directly leverage XTheadVector.
Link to the XTheadVector spec (adoc):
https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadvector.adoc
XTheadVector has a huge overlap with RVV. So it is reasonable, to reuse the RVV intrinsic API for XTheadVector as well (when applicable) and extend the API by additional functions.

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

You should add a reference in 'xthead.adoc' to let the document include the chapter.
You can refer to this PR https://github.com/T-head-Semi/thead-extension-spec/pull/31

You should add a reference in 'xthead.adoc' to let the document include the chapter.
You can refer to this PR https://github.com/T-head-Semi/thead-extension-spec/pull/31

LGTM


Add ModuleTemplate reconciler

Description
The new Module Catalog uses the ModuleTemplate CR as a main object to represent the Catalog entries. In order to make the implementation robust, we have to define a contract: What is allowed and what is not allowed with respect to ModuleTemplate object creating, deleting and editing.
Otherwise the users (or control-plane administrators) are free to manipulate the set of defined ModuleTemplates in any way they want, not necessarily the one that conforms to the assumptions we made during the analysis  or the implementation choices we made.
The ModuleTemplate reconciliation is required for:
New ModuleTemplate Creation

Every created ModuleTemplate is validated upon creation. Invalid ModuleTemplate is marked as such and cannot be used for the purpose of adding the module it represents to a Kyma object.

ModuleTemplate Deletion

Deletion of any valid ModuleTemplate is blocked by the LifecycleManager if the module it represents is currently used by some Kyma object(s).
This is required because our system should be consistent: There should be no Kyma CRs with a modules that do not have a corresponding entry in the Module Catalog - as defined by the Lifecycle Manager API.

ModuleTemplate Editing

What kind of changes are allowed? Maybe the ModuleTemplate should be immutable?
The easiest implementation would be to make the ModuleTemplate immutable. After all, the Catalog (of anything) - assuming no mistakes - shouldn't need any editing. The new entries are just appended and the old, deprecated entries are removed.
But taking into account the real world scenarios, where mistakes do happen, we should allow for some editing.
The scope of it is to be decided later, once we have the reconciliation logic.

ModuleTemplate Deprecation (Optional)

Before deleting ModuleTemplate, users should be able to deprecate given Module Catalog entry (a ModuleTemplate CR).
The deprecated ModuleTemplate cannot be used to the module it represents to any Kyma object, but existing usages continue to work. What happens if the user deprecates the most recent ModuleTemplate for some module within the regular channel? Nobody is able to add this module to any Kyma CR using regular channel anymore, but existing configurations still work.

Reasons
As for now, the Module Catalog contract is defined outside the Lifecycle Manager and is even defined in a non K8s-way.
In order to provide a robust implementation of the enhanced Module Catalog, we need to model it in terms of K8s resources that are then consumed by the Lifecycle Manager.
For us it is best to define the mentioned contract and K8s objects to be used as a part of the Lifecycle Manager API upon which we have direct control.
This shields the Lifecycle Manager from intentional or unintentional changes of the established Module Catalog rules and allows us to require our users to conform to the defined contract.
Acceptance Criteria

[ ] Extend the ModuleTemplate CR with necessary attributes: status sub-resource, deprecated flag (optional) etc.
[ ] Add the ModuleTemplate reconciler
[ ] Implement basic validation during ModuleTemplate creation - as described. Add more validations if there are some obviously required ones.
[ ] Prevent deletion of ModuleTemplates that are "used" (the modules they defined are currently managed on some Kyma CRs)
[ ] Determine the scope of allowed editing actions and implement it (it may be fully editable in the first iteration, then create a follow-up issue to strengthen it later on)
[ ] Add the ability to deprecate a ModuleTemplate CR
[ ] Create a follow-up issue to implement necessary changes to the Kyma controller (one cannot install deprecated modules)

Feature Testing
unit tests, integration tests, e2e tests
Testing approach
As with the other reconcilers
Attachments
No response
Related issue(s)
#1472

The decision taken by the team is to NOT implement the ModuleTemplate reconciler at the moment.


Large thread ids in Trace Event Format cause all traces to be collapsed into one thread

When loading a JSON file in Trace Event Format where the tid (thread id) values are very large (larger than 2**32 ?), Perfetto UI only shows a single thread which contains all of the function calls. If I replace the tid values in the JSON file with smaller values, Perfetto correctly shows multiple threads.
Attached are two files (in ZIP files, since Github does not allow JSONs) which demonstrate the problem:

trace-large-thread-ids.json.zip is not displayed correctly
trace-small-thread-ids.json.zip works well

I tried this both with the Stable and with the Canary versions at https://ui.perfetto.dev/ , with Chromium 114.0.5735.106 and with Firefox 114.0.2.
In the chrome://tracing/ viewer in Chromium, both files are displayed correctly.
I encountered this problem when viewing trace files created by an in-house C++ tool. The tid values come from std::this_thread::get_id() and have values like<PHONE_NUMBER>04608 .

Thanks for filing. I just updated our FAQ about this question: https://r.android.com/2646879
We get this sort of question now again re supporting very subtle behaviour from chrome://tracing. As the FAQs say, we support JSON on a best effort basis. Unfortunately supporting this feature would require supporting int64_t tids which would be a significant change and not worthwhile doing so.


[FEATURE REQUEST] - Heist Overlay

I would like to request that the Heist chart
From https://external-preview.redd.it/h1Dw4KLBUaJZLZVLyMe4MsmmEWRVlwOS0y-ymTlGvpk.jpg?auto=webp&s=931857b239ec813b461b9768da7debcba62cc6d3
be added in a similar fashion to how the Betrayal stuff is? Maybe make it so the ? button opens up a little branching button for two more buttons above it that have Syndicate and Heist to press to choose which one to open?
Also adding the ability to hotkey said Heist window like the beytrayal one would be super useful

Done in 1.1.8 release


Arguments description does not correspond to YAML snippet

[Enter feedback here]
The parameter description is inconsistent with the commented YAML snippet.  Just 2 examples:
YAML:
#connectionType: 'connectedServiceName' # Options: connectedServiceName, connectedServiceNameARM
Description:
Connection type | Required. Select Azure Resource Manager to invoke an Azure managment API or Generic for all other APIs.
YAML:
#waitForCompletion: 'false' # Options: true, false
Description:
Wait for completion | Required. How the task reports completion. Can be API response  (the default) - completion is when the function returns success within  20 seconds and the success criteria evaluates to true, or Callback - the external service makes a callback to update the timeline record.
The page itself could benefit from some example pipeline code.  The GUI screenshots aren't worth anything (we don't use the GUI - I don't even know where it is!)

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

ID: 89bc6da4-5a1e-5989-f4f0-27465953b5fd
Version Independent ID: fd12f976-5d3b-3b1b-3d0a-a0bf2a60c961
Content: Invoke HTTP REST API task - Azure Pipelines
Content Source: docs/pipelines/tasks/utility/http-rest-api.md
Product: devops
Technology: devops-cicd-tasks
GitHub Login: @RoopeshNair
Microsoft Alias: ronai

Thanks for letting us know. This issue is fixed in our new task reference, which is generated using the task source code and includes all task inputs, including any aliases here:
https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/invoke-rest-api-v1?view=azure-pipelines&tabs=yaml
Please check it out and let us know what you think. Thank you.


Monitor "oneshot" systemd service

We want to be able to monitor service we run via systemd-timer.

LGTM


chore: upgrade compiler version

Signed-off-by: Gregory Hill<EMAIL_ADDRESS>

Do we actually need nightly for the clients? It would be nice if we could use latest stable

I guess we need nightly because we compile the parachain in the tests


Add 404 error page #27

Related Issue
Add 404 error page @apoorvaron
Closes: #27
Description of Changes
created new theme for 404 PAGE with new color scehma.
Screenshots

https://github.com/apoorvaron/Shorty/assets/99162236/76f16c5b-c3ef-4290-ac19-1b8560ae456b

Something is not good , please review it @Ayushpanditmoto

Something is not good , please review it @Ayushpanditmoto

any problem?

just make that changes i will merge it

in your video its seems fine but in my browser more section merging with planet

https://github.com/apoorvaron/Shorty/assets/31253617/f4bf22c4-6811-4a7b-9b78-8e110dbfcaff

2023-08-04.12-31-37.mp4

Actually, I had given media queries depending on a suitable mobile screen. for now, i have updated the code for more devices you can check it with all mobile devices.
https://github.com/apoorvaron/Shorty/assets/99162236/12604709-79c8-4d07-9a4d-7d0cad1dcf2f

@Ayushpanditmoto 👀

Again assigned ?? 😢

Just assigned so that pointa will be added to your account

Just assigned so that pointa will be added to your account

oops okk . Thank youu


Implement verifier contract

One additional QoL improvement we could do is to use solidity custom errors: https://blog.soliditylang.org/2021/04/21/custom-errors/
They make the code slightly more verbose but they bring improvements on error handling and tracing when a tx actually fails.

One last comment... I promise, linting seems to be broken so there are several lines that need linting (that's another easy QA classic from audits).

One additional QoL improvement we could do is to use solidity custom errors: https://blog.soliditylang.org/2021/04/21/custom-errors/
They make the code slightly more verbose but they bring improvements on error handling and tracing when a tx actually fails.

#9

One last comment... I promise, linting seems to be broken so there are several lines that need linting (that's another easy QA classic from audits).

What linter are you using? I am using slither right now and I haven't configured it much.
Feel free to comment on #10 with any suggestions for what is recommended.

@tmigone I believe all comments you made have either been addressed with a code update or moved to an issue to be fixed after this PR. Could you confirm and approve the PR if that is the case?


chore: make yarn-upgrade use "minor" target for prod deps

Production dependencies (i.e: dependencies that are not
devDependencies) can generally not be "safely" updated to the latest
(major) release without risking subtle breakage (due to behavior changes
that may not be caught by unit tests).
In order to have a safer general mode of operation, the
yarn-upgrade.yml workflow will now use the "minor" (instead of
"latest") target for any production dependency of any package in the
repository (a dependency is minor-pinned for the whole repository if any
of the packages in the repository declares a "production" dependency on
it).

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-Blkkw9bQFn8A
Commit ID: 181095661ef98d70ba79193ff97ffbf7b2753b91
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


Fix column layout stacking and stretching

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


feat: use tree sitter to enhance context for code operations

https://neovim.io/doc/user/treesitter.html#lua-treesitter

@Robitx even better might be to embed the code-base with a local model (or even OpenAI) to embed into the context, so it can be done cross-file

I recommend enforcing brainstorming on very large projects, such as Chromium (38 million LoC).

Disclaimer: I am not a seasoned vim user, hence my knowledge might be limited
Per my understanding, Treesitter doesn't understand the semantics or the context beyond the structure of the code.
In a typical development routine of mine, most of the times the practical challenge is studying the workflow and lifecycle of components (symbols) across the [large] codebase.

Other tools (such as EasyCodeAI) have figured it out, and implemented their self-hosted codebase indexer which comes with its own limitations.
I think focusing on LSPs symbol referencing mechanism can be key; however when thinking large codebases there can be additional challenges, such as context overloading with dirty files that might not be of interest. What might be sounding plausible at first glance to me, is a multi-stage prompt operation whereas in the first, GPT is fed context upon referenced symbols, it discards those that are not-of-interest (based on a score) and only then it is feeded a cleaner context.

To add more thoughts to the topic, I'd also like to highlight the indexing challenge.
So far I have been working with two kinds of indexing mechanisms, being static and dynamic.
Looking at  clangd as example:
Static indexing
it is able to pre-index an entire codebase based on compile_commands.json (in the case of clangd), which stores on disk and gives you an instantaneous symbol resolution across all the codebase.
Pros and cons are respectively: having instantaneous symbols resolution project-wise, at the expense of having to pre-index the entire codebase  (takes arond ~3 hours on projects like Chromium on most powerful Mac) before being able to consume it.
Dynamic indexing
Indexes symbols dynamically based on the current buffer (by analyzing imports / includes). It is fast and handy, especially for module/sub-module work scope, but does reach outer contexts: this is a significant drawback if we think objectively about the importance of out-of-scope context when GPT serves as a "codebase-wide assistant".


Update .json and .md of network plugin.

The current network thunder plugin's document is not as per the latest code.
Update the network thunder plugin's document.
Jira ID:https://ccp.sys.comcast.net/browse/RDK-33900
@tnykkn
Could you please review this pull request?
I have removed the earlier pull request https://github.com/rdkcentral/rdkservices/pull/1901 since some mess happened in the branch.

Looks good to me.


Create VBox manager

We need simple way to list virtual machines, display their status and turn on/off. Application should allow user to list SS containers and turn it on/of by one click. This application should be menu based. Means that everything should be in tray menu.
Application should work on Mac, Windows and Linux.

Base functional is done.


Cannot read property 'constructor' of undefined when using expressions

Tell us about your environment

Browser and Browser Version: Chrome  61.0.3163.100
After Effects Version: CC2017

What did you do? Please explain the steps you took before you encountered the problem.
Only exported the bodymovin
What did you expect to happen?
The animation to actually animate
What actually happened? Please include as much relevant detail as possible.
The error showing in developers tool is:
Uncaught TypeError: Cannot read property 'constructor' of undefined
at sub (demo.html:34)
at Object.eval (eval at initiateExpression (demo.html:10), :4:45)
at Object.executeExpression [as getValue] (demo.html:34)
at TextAnimatorProperty.getMeasures (demo.html:27)
at SVGTextElement.renderLetters (demo.html:29)
at SVGTextElement.renderFrame (demo.html:29)
at SVGRenderer.renderFrame (demo.html:28)
at AnimationItem.renderFrame (demo.html:29)
at AnimationItem.gotoFrame (demo.html:29)
at AnimationItem.checkLoaded (demo.html:29)
This export was working on a previous version of bodymovin (4.10) and it's not working on the current release.
Please provide a download link to the After Effects file that demonstrates the problem.
SPINNING.zip

Found the issue, will be fixed on the next deploy.
Thanks!

i have that now.
I also encountered this problem, after packaging via webpack, Cannot read property 'constructor' . At
function $bm_isInstanceOfArray(e) {
         Return e.constructor === Array || e.constructor === Float32Array;
     }

@18292843691 Is it only happening when packaging?
can you share the animation?

@bodymovin yes, Only happening when packaging. Anxious to use it.

animation like that
 how to share you ?

@18292843691 can you share a link where I can check the error?

We temporarily replaced the static image, there is no link at the moment.sorry。

@mateenagy what tooling do you use for building the project?
Also, can you share a link with the error?

I use the angular cli to build the project. I can't share the link where the animation running because of the policy and it also not showing the error in the console only in sentry so I attach the picture of the sentry log if it is okay.

Can you share a reduced version that doesn't conflict with policies?
From what I've gathered so far, it seems to be related to a  js minifier / uglifier that messes the code up and removes array references.
But I need more context to try to figure this out.
What I know is that it's definitely related to an expression on some layer property.

Okey I will try to reproduce a blank angular project with this animation only and share it with you.

@bodymovin I reproduce only that complex animation with a blank angular project and it's also working local environment but after I put on my server it throw the error.
Here is the repo with all the codes if pull the repo you can run it on localhost and it will work:
https://github.com/mateenagy/angular-bodymovin
And here is the page on my server with the error (Here you can see in the console):
https://matenagy.me/

@bodymovin I start looking for more complex animation in this repo and try them and all of them works fine. So I started looking at my ae project what can cause the problem and it I start turning off things. Motion blur was turned on for every shape so I turned them off and actually it works, but I found it a little weird that when I run locally it is working just fine with the motion blur turned on.

@mateenagy motion blur shouldn't have anything to do with it, it's probably something else, since motion blur is ignored on export.
It's most likely related to an expression.

@mateenagy I went to that url and there doesn't seem to trigger any error. Dod you make it work or update the animation?

@bodymovin Yes I make it work and you were right. My college made the animation and he use expression which I didn't see first so I think that cause the error, but still don't get it why is it worked when I run it locally and get the error when I build the project. Btw Thanks for the help 😄