App freezes on device when using localizationsDelegates and supportedLocales

Hello,
I am trying to use the datePicker confirgued with the Locale("fr", "FR"). Bellow how this feature has been implemented:
Here is my call to action:
onTap: () {
                showDatePicker(
                  locale: const Locale("fr", "FR"),
                  context: context,
                  initialDate: DateTime.now(),
                  firstDate: DateTime.now(),
                  lastDate: DateTime.now().add(Duration(days: 365)),
                ).then((value) {
                  if (value != null) {
                    showTimePicker(
                      context: context,
                      initialTime: TimeOfDay.now(),
                    );
                  }
                });
              },

on pubspec.yaml:
dependencies:
  flutter:
    sdk: flutter
  **flutter_localizations:
          sdk: flutter`**

on main
MaterialApp(
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate
      ],
      supportedLocales: [
        const Locale('en'),
        const Locale('fr')
      ],

This run s well on simulator, but it freezes my App on a real device.
Expected results:
Actual results:

Logs

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, 2.3.0-0.1.pre, on macOS 11.4 20F71 darwin-x64, locale fr-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.56.2)
[✓] Connected device (3 available)
! Error: iPhone is busy: Copying cache files from device. Xcode will continue when iPhone is finished. (code -10)
• No issues found!

Hi @ben55j
I cannot reproduce any app freeze running code sample on 2.2.1 or 2.3.0-17.0.pre.259
Try the code sample

minimal code sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      localizationsDelegates: [GlobalMaterialLocalizations.delegate],
      supportedLocales: [const Locale('en'), const Locale('fr')],
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {
          showDatePicker(
            locale: const Locale("fr", "FR"),
            context: context,
            initialDate: DateTime.now(),
            firstDate: DateTime.now(),
            lastDate: DateTime.now().add(Duration(days: 365)),
          ).then((value) {
            if (value != null) {
              showTimePicker(
                context: context,
                initialTime: TimeOfDay.now(),
              );
            }
          });
        },
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 2.3.0-17.0.pre.259, on macOS 11.4 20F71 darwin-x64,
    locale en-GB)
    • Flutter version 2.3.0-17.0.pre.259 at
      /Users/tahatesser/Code/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ba5208122a (9 hours ago), 2021-06-07 23:29:04 -0400
    • Engine revision b5dca5d4b4
    • Dart version 2.14.0 (build 2.14.0-188.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode-beta.app/Contents/Developer
    • Xcode 13.0, Build version 13A5154h
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Volumes/Extreme/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

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

[✓] Connected device (3 available)
    • Taha’s iPhone (mobile) • 00008020-001059882212002E • ios            • iOS
      15.0
    • macOS (desktop)        • macos                     • darwin-x64     •
      macOS 11.4 20F71 darwin-x64
    • Chrome (web)           • chrome                    • web-javascript •
      Google Chrome 91.0.4472.77

• No issues found!

Hello Taha,
Yes, this sample works good. I will investigate more on my side to clarify the issue. Maybe a problem of interactions of packages...
I will let you know asap.
Many thanks.
Benjami
Le 8 juin 2021 à 14:14 +0200, Taha Tesser @.***>, a écrit :

Hi @ben55j
I cannot reproduce any app freeze running code sample on 2.2.1 or 2.3.0-17.0.pre.259
Try the code sample
minimal code sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
 title: 'Material App',

 theme: ThemeData.dark(),

 localizationsDelegates: [GlobalMaterialLocalizations.delegate],

 supportedLocales: [const Locale('en'), const Locale('fr')],

 home: Home(),

);
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
 appBar: AppBar(

   title: Text('Material App Bar'),

 ),

 body: Center(

   child: Container(

     child: Text('Hello World'),

   ),

 ),

 floatingActionButton: FloatingActionButton(

   child: Icon(Icons.add),

   onPressed: () {

     showDatePicker(

       locale: const Locale("fr", "FR"),

       context: context,

       initialDate: DateTime.now(),

       firstDate: DateTime.now(),

       lastDate: DateTime.now().add(Duration(days: 365)),

     ).then((value) {

       if (value != null) {

         showTimePicker(

           context: context,

           initialTime: TimeOfDay.now(),

         );

       }

     });

   },

 ),

);
}
}
flutter doctor -v
[✓] Flutter (Channel master, 2.3.0-17.0.pre.259, on macOS 11.4 20F71 darwin-x64,
locale en-GB)
• Flutter version 2.3.0-17.0.pre.259 at
 /Users/tahatesser/Code/flutter_master

• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ba5208122a (9 hours ago), 2021-06-07 23:29:04 -0400
• Engine revision b5dca5d4b4
• Dart version 2.14.0 (build 2.14.0-188.0.dev)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Volumes/Extreme/SDK
• Platform android-30, build-tools 30.0.3
• ANDROID_HOME = /Volumes/Extreme/SDK
• Java binary at: /Applications/Android
 Studio.app/Contents/jre/jdk/Contents/Home/bin/java

• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Volumes/Extreme/Xcode-beta.app/Contents/Developer
• Xcode 13.0, Build version 13A5154h
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
 🔨 https://plugins.jetbrains.com/plugin/9212-flutter

• Dart plugin can be installed from:
 🔨 https://plugins.jetbrains.com/plugin/6351-dart

• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
• IntelliJ at /Volumes/Extreme/IntelliJ IDEA CE.app
• Flutter plugin can be installed from:
 🔨 https://plugins.jetbrains.com/plugin/9212-flutter

• Dart plugin can be installed from:
 🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.56.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.23.0
[✓] Connected device (3 available)
• Taha’s iPhone (mobile) • 00008020-001059882212002E • ios            • iOS
 15.0

• macOS (desktop)        • macos                     • darwin-x64     •
 macOS 11.4 20F71 darwin-x64

• Chrome (web)           • chrome                    • web-javascript •
 Google Chrome 91.0.4472.77

• No issues found!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi @ben55j
I just tried code sample on the stable and dev (Channel dev, 2.3.0-16.0.pre), in both debug and release mode, the app doesn't get freeze.
Preview
https://user-images.githubusercontent.com/48603081/121334388-49410100-c922-11eb-9bd4-3ed9fc314440.mov
Logs

flutter doctor -v
[✓] Flutter (Channel dev, 2.3.0-16.0.pre, on macOS 11.4 20F71 darwin-x64, locale
    en-GB)
    • Flutter version 2.3.0-16.0.pre at /Users/tahatesser/Code/flutter_dev
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fa5883b78e (3 weeks ago), 2021-05-21 13:04:03 -0700
    • Engine revision 2f067fc4c5
    • Dart version 2.14.0 (build 2.14.0-136.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode-beta.app/Contents/Developer
    • Xcode 13.0, Build version 13A5154h
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Volumes/Extreme/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

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

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554             • android-x86    •
      Android 11 (API 30) (emulator)
    • Taha’s iPhone (mobile)  • 00008020-001059882212002E • ios            • iOS
      15.0
    • macOS (desktop)         • macos                     • darwin-x64     •
      macOS 11.4 20F71 darwin-x64
    • Chrome (web)            • chrome                    • web-javascript •
      Google Chrome 91.0.4472.77

• No issues found!

My device is using on IOS 15, which iOS version you're testing on?
Also please try again with latest dev channel
Can you please upgrade to the latest  dev and try again
Execute the following commands to upgrade
flutter channel dev
flutter upgrade --force
flutter doctor -v

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Add PaymentRequest spec to lib.*.d.ts

As a workaround the definitions for the PaymentRequest spec are added to definetly typed, but they should be added to lib.*.d.ts when Edge finishes it's implementation.
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/12461

Looks like Edge has come a long way implementing this.
https://blogs.windows.com/msedgedev/2016/12/15/payment-request-api-edge/

@zhengbli do we get these with the latest update?

I PaymentRequest in dom.d.ts of 2.2

indeed. thanks.


Chunks which are not used in an entry point are appearing in the Assets list for it and are being included in the entry-download-size-limits validation

Describe the bug
I recently added the Statoscope CLI to my project to perform validation in bundle sizes. It's awesome and I am enjoying the tool, however, upon optimizing some of my entry points I noticed weird behavior.
When changing imports to dynamic imports within one entry point, the module I'm importing gets added to the list of Assets for every other entry point which doesn't use or import the module. This throws off my entry-download-size-limits validation rule and is visible within the Statoscope HTML report. However, when checking the stats file for some of the other entry points, I don't see the asset there, nor is it loaded when actually running the application.
I am not sure if this is a bug or if something is up with my configuration but I haven't been able to figure this out on my end so any discussion around this could be helpful!
To Reproduce
Steps to reproduce the behavior:

Setup multiple entry points
Have one with no imports
Have another with multiple imports, including dynamic imports to generate async chunks
Observe that async chunks are included in the entry-download-size-limits validation rule and as Assets for the entry point with no imports

Expected behavior
For my use case, I would expect only the chunks or assets that are required for a particular entry point to be included in the calculations and lists in the UI.
Screenshots
If applicable, add screenshots to help explain your problem.
Stats file:

Statoscope UI:
This entry point actually only requires two of the chunks shown here, Statoscope seems to be pulling in the other initial and async chunks incorrectly.

Statoscope CLI validation:

Versions:

Node (for non-browser bug):
Browser (for browser-bug):
Webpack: 5.73.0
Statoscope: 5.22.0

Addition information:
Looking at the entry-download-size-limits source it appears the default is to include all the children of each chunk with an entry point. I was able to find that my runtime chunk had a lot of children which aren't used in the entry point in question. I wonder if this is included because the runtime chunk could technically fetch any of these at some point in time.
I am currently using optimization.runtimeChunk = "single" in my Webpack config. Setting optimization.runtimeChunk = false removes the runtime chunks and their children from appearing within all entry points, but the CLI validation errors persist.
I did some testing by modifying the source for entry-download-size-limits and I think that adding an exclusion option for chunks would help me work around this, without trying to modify the internals of Webpack on how it reports async chunks in the runtime. This is my first time using jora, so it's pretty ugly, but it is serviceable.
diff --git a/packages/stats-validator-plugin-webpack/src/rules/entry-download-size-limits/index.ts b/packages/stats-validator-plugin-webpack/src/rules/entry-download-size-limits/index.ts
index 476b200..901c5fc 100644
--- a/packages/stats-validator-plugin-webpack/src/rules/entry-download-size-limits/index.ts
+++ b/packages/stats-validator-plugin-webpack/src/rules/entry-download-size-limits/index.ts
@@ -16,7 +16,7 @@ export type Limits = {
   maxAsyncSize?: number;
 };

-export type RuleExcludeItem = ExcludeItem<'compilation' | 'entry' | 'asset'>;
+export type RuleExcludeItem = ExcludeItem<'compilation' | 'entry' | 'asset' | 'chunk'>;

 export type Params = {
   exclude?: Array<string | RegExp | RuleExcludeItem>;
@@ -87,11 +87,12 @@ const entryDownloadSizeLimits: WebpackRule<Params> = (ruleParams, data, api): vo
   $input: resolveInputFile();
   $params: #.params;
   $useCompressedSize: [$params.useCompressedSize, true].useNotNullish();
+  $getChunks: => $.data.chunks.exclude({ exclude: $params.exclude.[type='chunk'].name, get: <name> }).($ + $..children);
   $getSizeByChunks: => files.exclude({
     exclude: $params.exclude.[type='asset'].name,
     get: <name>,
   }).(getAssetSize($$, $useCompressedSize!=false)).reduce(=> size + $$, 0);
-
+
   $input.compilations
   .exclude({
     exclude: $params.exclude.[type='compilation'].name,
@@ -113,13 +114,13 @@ const entryDownloadSizeLimits: WebpackRule<Params> = (ruleParams, data, api): vo
         maxInitialSize: [$matchedRule.maxInitialSize, $params.global.maxInitialSize].useNotNullish(),
         maxAsyncSize: [$matchedRule.maxAsyncSize, $params.global.maxAsyncSize].useNotNullish(),
       };
-      $chunks: ($entry.data.chunks + $entry.data.chunks..children);
+      $chunks: $entry.$getChunks();
       $initialChunks: $chunks.[initial];
       $asyncChunks: $chunks.[not initial];
       $size: $chunks.$getSizeByChunks($compilation.hash);
       $initialSize: $initialChunks.$getSizeByChunks($compilation.hash);
       $asyncSize: $asyncChunks.$getSizeByChunks($compilation.hash);
-
+
       $entry,
       $chunks,
       $initialChunks,

@hyshka Hello! Would you provide some stats-file (obviously without source code) that reproduces this behaviour? :)
I can't reproduce this with the steps you specified :(

@smelukov For that entry, it would be:
<script src="/static/bundles/runtime.3dd7a6382151c3421dd7.bundle.js" ></script>
<script src="/static/bundles/billing_form.ac131a2772166f40a1de.bundle.js" ></script>

@hyshka Could you try 5.22.1-alpha.0 please?
If it'll fix your issue then I'll publish a stable version

@smelukov Thank you! I just tested it and my issue with the runtime chunks children is fixed :heavy_check_mark:. However, it is still only a partial fix for me. I found now that another chunk, which is used within many modules, appears to be having its children pulled in as well. Here's an example:
These chunks in the Statocope report are incorrect:

Because the entry point is only using these chunks:

However, two of them 3858 and 9755 are both being pulled in when importing jQuery and have many children. These child chunks are what is showing up in the Statoscope report, although they are not used by the entry point onboarding_startguide. The trouble here is that I'm not sure why all of these chunks are being marked as children. They seem to be all 3rd party packages which we're using in other entry points. In addition, these are only identifiable by the module or chunk IDs and are specific to our project.

@hyshka Could you try 5.22.1-alpha.1 ? :)

Which assets exactly included into html on tableview? )

The tableview would contain:
<script src="/static/bundles/runtime.5d784a2b8506267e699b.bundle.js" ></script>
<script src="/static/bundles/3858.66f3908b791245f8c592.bundle.js" ></script>
<script src="/static/bundles/9755.c2da9ff2c8cc9a06df5c.bundle.js" ></script>
<script src="/static/bundles/7963.4b2130295c9a9ad5abb9.bundle.js" ></script>
<script src="/static/bundles/144.3ba4cdce77e3138b7786.bundle.js" ></script>
<script src="/static/bundles/984.36b30268b8d6b8e5a73f.bundle.js" ></script>
<script src="/static/bundles/6699.1f19460fee7ba0a969fc.bundle.js" ></script>
<script src="/static/bundles/629.0f567b86f3792a489144.bundle.js" ></script>
<script src="/static/bundles/178.78bc5cbaa67ca0c5b4c7.bundle.js" ></script>
<script src="/static/bundles/6950.92428004a9ebe30e7b00.bundle.js" ></script>
<script src="/static/bundles/7907.2a1100728c580ed88771.bundle.js" ></script>
<script src="/static/bundles/3331.98ab1754fbb38e2267cb.bundle.js" ></script>
<script src="/static/bundles/tableview.b4008db71d963a76e398.bundle.js" ></script>

This is another page where we use multiple entry points so in the HTML we would also include these although Webpack is not aware.
<script src="/static/bundles/7915.495cf5511fe06a533f9d.bundle.js" ></script>
<script src="/static/bundles/muckrack.e00b28506927562b450e.bundle.js" ></script>

Working on it )

@hyshka how about 5.22.1-alpha.3 ? 😄
onboarding_startguide

tableview

@hyshka
For example, let's look at the origins of chunk with id 144
compilations.chunks.[id=144].origins

This module from styleguide-entrypoint
So, styleguide-entrypoint requires chunk with id 144. Chunk 144 is initial and contains node_modules/vue/dist/vue.runtime.esm.js
Note that styleguide.chunks != all the initial chunks of the styleguide-entrypoint.
Some chunks contain children chunks that is not listed in entrypoint's chunks

<script src="/static/bundles/runtime.5d784a2b8506267e699b.bundle.js" ></script>
<script src="/static/bundles/3858.66f3908b791245f8c592.bundle.js" ></script>
<script src="/static/bundles/9755.c2da9ff2c8cc9a06df5c.bundle.js" ></script>
<script src="/static/bundles/7963.4b2130295c9a9ad5abb9.bundle.js" ></script>
<script src="/static/bundles/7915.495cf5511fe06a533f9d.bundle.js" ></script>
<script src="/static/bundles/styleguide.31cb7cd49690c21c7a1c.bundle.js" ></script>

If webpack does not include chunk 144 into your page as initial then it's strange.
Either webpack has a bug with chunk including or stats generation :)

@smelukov Thanks for taking a look at that, this covers everything within Statoscope for me than! Thanks so much for your help in resolving this, it is really appreciated. I am really enjoying Statoscope.
Both of my modules where this chunk is used load it async, so it seems like Webpack should not be marking chunk 144 as initial. I can confirm that chunk 144 is not loaded except for the pages which pull it in asynchronously. I will investigate this separately or report the bug to Webpack.

@hyshka Thanks for your issue and for your help. It made Statoscope better ☺
I'm going to publish a stable version with chunk relations fix


REDIS1 error

Error:
debug_error_string = "{"created":"@1557752707.241967824","description":"Error received from peer ipv4:<IP_ADDRESS>:6565","file":"src/core/lib/surface/call.cc","file_line":1041,"grpc_message":"Validation for feature spec with id ride.month failed: Serving store with id REDIS1 does not exist","grpc_status":11}"
How to register a REDIS1 storage to the core ?

Version:16.04
Platform:Ubuntu
Subsystem:

Hi @xalekx the storage is configured on the helm chart.
eg in your values.yaml
you might have:
store:
  errors:
    type: "stdout"
  warehouse:
    type: "bigquery"
    options: '{"project": "gcp-project-id", "dataset": "feast"}'
  serving:
    type: "redis"
    options: '{"host": "...", "port": "6379"}'

We used to have a function where a Feature could choose it's own stores, and we removed this.
How old is the version you are trying out?

Using the latest version.

I think we should pick this up after 0.3.0 is released. A lot the functionality described here (SDK/CLI) will be changed.


Implement inverse function

Hi, @TE-TakuyaNarihira san, @TE-AkioHayakawa san!
I've implemented inverse matrix function. This uses eigen inverse function with CPU. In GPU context, cublas<t>getrfBatched() is considered to be used.
x = nn.Variable((1, 10, 10))
inverse = F.batch_inv(x)

x.d = np.random.random((1, 10, 10))
inverse.forward()

assert np.allclose(inverse.d, np.linalg.inv(x.d)) # True

I've refactored backward_impl to omit implementation at cuda extension. But I have some issues about this.

the unit test sometimes passed, but sometimes fails.
gx_ uses pointer to inputs[0]->grad(), but the result seems not to reflect this value.

@TE-AkioHayakawa san, @TE-TakuyaNarihira san
I've completed batch_inv implementation. Now, batch_inv works with forward and backward correctly including cuda extension. I didn't expect that the data pointer of inputs[0]->grad() is wiped at backward.

@TE-TakuyaNarihira
Hi!, I think I've done :)

@TE-TakuyaNarihira
I merged master branch to this :)

I've created a new PR to merge this branch. See #550.


code problem

In sptsv2.py line 60
out_label = self.vocab_embed(hs[2])[-1][:,1:text_length+1].reshape(src.size(0),-1,self.num_classes)
I know the purpose of this code is to extract the predicted text, but why is the index here using [:, 1: text_length+1]? What is the special meaning of index 1 here? Use center point annotation in the code, should we start with 2. If bezier is used for annotation, it needs to be modified here.

q: why using [:, 1: text_length+1]；
a: because the first output is location y, which is not important in text recognition. if using bezier annotation, 1 should be modified to 15.

I'm still a bit confused。
If we use the center point as the annotation, the first two outputs of the second decoder are x position and y position, followed by 25 text character. So I think we should use [:, 2: text_length+2,:] here. If we use bezier annotation,2 should be modified to 17.
I'm not sure if I'm interpreting this correctly, thank you very much for answering my next question.

I still have some confusion.
If we use the center point as the annotation, the first 2 outputs of the second decoder are x position and y position, followed by 25 text characters. So I think we should use [:, 2: text_length+2] here.If  using bezier annotation, i think 2 should be modified to 16.
I'm not sure if I'm understanding this correctly, thank you very much for answering me.

I appreciate your answer , I understand it.


Enable snapping for JS API 4.19

The syntax to enable snapping has changed with the new version of the JS API. Instead of selfEnabled, snapping is now turned on with the property enabled.
Currently, self snapping is not working anymore in Urban :) needs some fixing there as well after this is merged.
Additional, this PR adds functionality to enable snapping to other features with the featureSources property. The DrawingTool component takes a list of layer ids that are used as sources for snapping while drawing.

Do we need to fix this if - probably in the next PR - this component will be removed?

Do we need to fix this if - probably in the next PR - this component will be removed?

Jap true, this might become obsolete :)

@lisastaehli v0.2.24 is published!


Missing parenthesis lead to broken SQL queries

Setup
Versions

Rust: rustc 1.36.0 (a53f9df32 2019-07-03)
Diesel: latest master (0cacfa080183076669112a5ccb192d9c30b8ac15)
Database: psql (11.1, server 11.4 (Debian 11.4-1.pgdg90+1))
Operating System Debian 11.4-1.pgdg90+1

Feature Flags

diesel: postgres

Problem Description
Missing parentheses around equality operator lead to malformed SQL queries in the best case and wrong SQL queries silently returning incorrect results in the worst case.
What are you trying to accomplish?
Build a query which corresponds to something like this:
SELECT (1 > 0) = true

Translating this to diesel, the code will look like this:
numbers.select((n.gt(0)).eq(true));

Full runnable test can be found in my operator-precedence-bug branch of diesel. Here is the full test https://github.com/DNNX/diesel/compare/master...operator-precedence-bug which can be run with (cd diesel_tests && cargo test --features "postgres" --no-default-features expressions::test_operator_precedence).
What is the expected output?
Green test.
What is the actual output?
➜  diesel git:(operator-precedence-bug) ✗ (cd diesel_tests && cargo test --features "postgres" --no-default-features expressions::test_operator_precedence)
   Compiling diesel_tests v0.1.0 (/Users/dnnx/work/diesel/diesel_tests)
    Finished dev [unoptimized + debuginfo] target(s) in 12.26s
     Running /Users/dnnx/work/diesel/target/debug/deps/integration_tests-514980afda54a7bd

running 1 test
test expressions::test_operator_precedence ... FAILED

failures:

---- expressions::test_operator_precedence stdout ----
thread 'expressions::test_operator_precedence' panicked at 'assertion failed: `(left == right)`
  left: `Ok(true)`,
 right: `Err(DatabaseError(__Unknown, "syntax error at or near \"=\""))`', diesel_tests/tests/expressions/mod.rs:469:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

failures:
    expressions::test_operator_precedence

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 309 filtered out

error: test failed, to rerun pass '--test integration_tests'

Are you seeing any additional errors?
No.
Steps to reproduce

Check our my branch or apply the diff below to latest diesel master.
Run `(cd diesel_tests && cargo test --features "postgres" --no-default-features expressions::test_operator_precedence).

diff --git a/diesel_tests/tests/expressions/mod.rs b/diesel_tests/tests/expressions/mod.rs
index e6cd0b1e..2dbd584c 100644
--- a/diesel_tests/tests/expressions/mod.rs
+++ b/diesel_tests/tests/expressions/mod.rs
@@ -454,3 +454,17 @@ fn test_arrays_b() {

     assert_eq!(value, vec![7, 14]);
 }
+
+#[test]
+fn test_operator_precedence() {
+    use self::numbers::columns::*;
+    use self::numbers::table as numbers;
+
+    let connection = connection();
+    connection
+        .execute("INSERT INTO numbers (n) VALUES (2)")
+        .unwrap();
+    let source = numbers.select((n.gt(0)).eq(true));
+
+    assert_eq!(Ok(true), source.first(&connection));
+}

Additional notes
I already raised this issue in https://github.com/diesel-rs/diesel/issues/2133#issuecomment-517470349, but I probably failed to express myself very clearly.
The big problem with this bug is that it may result in incorrectly working SQL queries, in particular in Mysql. Mysql is less strict about queries, so it parses things like select 2=2=2=2 just fine, whereas Postgres rejects such queries.
I tried to fix the bug myself, but I don't even know where to start. I think adding parentheses around every operator might be a solution, but there's one subtle issue with it: diesel also uses eq to generate SET part of the UPDATE statements - and there having parentheses around x = <expr> in UPDATE foo SET x = <expr> will be a problem.

Checklist

[x] I have already looked over the issue tracker for similar issues.
[x] This issue can be reproduced on Rust's stable channel. (Your issue will be
closed if this is not the case)

To be clear numbers.select((n.gt(0)).eq(true)); is never to be expected to insert any parenthesis based on parenthesis on the rust code because there is no way to tell at a type system level (that's where the query string is build) if there are parenthesis.
Beside of that I see two possible solutions to fix this:

Being smarter about where the insert parenthesis in the generated SQL
Expose a function to explicitly group query part and document that this should be used if required.

As you've already noticed it is not as simple as adding just parenthesis everywhere the first solution would involve a quite heavy rework of our internal query constructing workflow. Additionally even than there may be expressions where it is just not decidable which variant is the right one. In that light I'm in favour of keeping the rules as simple as possible and just add parenthesis in as few cases as possible and expose the functionality to insert parenthesis manually.

To be clear numbers.select((n.gt(0)).eq(true)); is never to be expected to insert any parenthesis based on parenthesis on the rust code because there is no way to tell at a type system level (that's where the query string is build) if there are parenthesis.

Yes, I understand that.

... Additionally even than there may be expressions where it is just not decidable which variant is the right one.

Could you please give an example? From what I can see, if we just wrap all binary operations in parenthesis, the resulting SQL AST will be exactly the same as the original Rust AST (which is what library user want, as I see it). Considering the example of n.eq(0).eq(true), syntax tree would be something like:
           Op =
         /      \
       Op =      Const true
    /       \
Var n       Const 0

And, assuming we put parenthesis around every binary operation, SQL syntax tree is exactly the same. It will result in (n = 0) = true then, which is semantically equal to the Rust one.
As to using eq in UPDATE ... SET (as in update(posts).set(body.eq("updated")), I don't really understand why the same eq function is used there as in boolean-returning equality expression. Those are kind of different things. = in UPDATE doesn't return anything - it's not an expression; comparison operator = returns a bool. Also, right hand side of = in UPDATE  can't be an arbitrary expression, unlike in equality comparison operator. It's just a coincidence that they both syntactically represented as equal sign. Assignment operator could as well be := or <- or something along those lines, and equality operator could easily be ==.
It may sound stupid or maybe overly naïve, but what if we change the public api of update/set to look like this:
update(posts).set(body, "updated");
update(users).set(login_attempts, login_attempts + 1);

// or

update(posts).set(body.assign("updated"));

This way we could freely add parenthesis around all binary operators and be sure that Rust and SQL expressions have the same meaning.

Could you please give an example?

What about the following, pathological example?
true.into_sql::<Bool>.eq(false).eq(false)

That would generate the following query  true = false = flase where both variants ((true = false) = false and  true = (false = false) would be meaningful (depending on the context and the definition of meaningful, but it's just an example 🤷)

It may sound stupid or maybe overly naïve, but what if we change the public api of update/set to look like this:

Changing the public API of update/set is currently not an option because of our backwards compatibility promise.

true.into_sql::<Bool>.eq(false).eq(false)

Well I think syntactically this is the tree below, no ambiguity here. So if we properly wrap every expression in brackets, it will render as ((true = false) = false).
           Op =
         /      \
       Op =      Const false
    /       \
Var true       Const false

If one wants (true = (false = false)) to be generated, they have to write corresponding Rust: true.into_sql::<Bool>.eq(false.into_sql::<Bool>.eq(true)). Again, clear 1-1 mapping between Rust code and generated SQL.

Changing the public API of update/set is currently not an option because of our backwards compatibility promise.

Makes total sense.
Speaking of keeping backward compatibility. I was also playing with the idea of changing the way SET expression is rendered. Let's assume all operations are generated with parenthesis, no exceptions. Then in order to "fix" UPDATE...SET, we can implement a new struct Ungrouped, which will "override" walk_ast implementation of given binary operator not to render () around the expression.
We can use it on one single place then, like this:
diff --git a/diesel/src/query_builder/update_statement/mod.rs b/diesel/src/query_builder/update_statement/mod.rs
index 53ec7870..faeb7c70 100644
--- a/diesel/src/query_builder/update_statement/mod.rs
+++ b/diesel/src/query_builder/update_statement/mod.rs
@@ -207,7 +207,7 @@ where
         out.push_sql("UPDATE ");
         self.table.from_clause().walk_ast(out.reborrow())?;
         out.push_sql(" SET ");
-        self.values.walk_ast(out.reborrow())?;
+        Ungrouped(self.values).walk_ast(out.reborrow())?;
         self.where_clause.walk_ast(out.reborrow())?;
         self.returning.walk_ast(out.reborrow())?;
         Ok(())

Hmmm, actually, looking at the code, I'm not even sure anymore that update(t).set(x.eq(1)) would generate brackets around x = 1 even if we override Eq to generate parenthesis no matter what. Looks like my assumption was wrong. I think, this code is used for SET ... rendering: https://github.com/diesel-rs/diesel/blob/master/diesel/src/query_builder/update_statement/changeset.rs#L72-L74, which is independent from the code which renders x.eq(y) when they are part of equality comparison expressions.
So, bottom line is: I still believe that the right way to go is to wrap all operator expressions in parenthesis there https://github.com/diesel-rs/diesel/blob/b649a86bd810fae05063710f8db73b88047333ee/diesel/src/expression/operators.rs#L109-L111.
When I have more time, I'll play with the code. I want to see what is going to be broken by this change as I don't really see it now.

I just made a little test and ran (cd diesel_tests && RUST_TEST_THREADS=1 cargo test --no-default-features --features mysql) (and --features posgres too) on this https://github.com/DNNX/diesel/compare/master...brackets-brackets-everywhere.
Almost everything passed with one exception: between tests. Because of the way Between/NotBetween structs are implemented, the And part is assumed to be a subexpression and it renders it as (x BETWEEN (y AND z)). But conceptually, BETWEEN is not a binary operator, it's a ternary construct. If we implement it this way, as a struct with 3 fields, and implement QueryFragment for it to avoid rendering inner parenthesis, everything is going to be green, probably :)

First of all: Passing all tests in diesel_tests does not mean that there is no code out there that will break by this change.
Beside of that I'm not sure if that follows the operator precedence from the underlying database systems. I would like to avoid situations where diesels generated sql diverges from those rules. (I cannot point out a example where this is the case, by this is something that needs to be verified.)
Additionally I would like to hear the opinion of the other @diesel-rs/core members here.
Maybe open a PR and continue the discussion there?

@weiznich This seems like the same issue as #2017, doesn't it? The same solution seems like it'd make sense IMO. I'm wondering if we should even just always insert parens for all uses of infix_operator!


Problems with importing obj file and converting to skeleton format

Thanks for your wonderful work.
Now, I am using chordatlas to do some urban scene texturization projects and have some issues when following this pipeline. Firstly, I can not see the imported obj, should I change the world coordinate to make it visible? If so, how?
Secondly, after importing the obj (see the below figure, take the cube as the example), I can not see the "convert to skeleton" button. How can I run the ObjSkelGen to get the facade and window labels (like you showed in the video)?

Looking forward to your reply!!!

Thanks for the bug. I haven't touched this codebase in a while, so I'm afraid it will be a while before I get a chance to look into this.
I think this old video shows something similar, if you import the GIS footprints first, any meshes should appear somewhere within them:
https://www.youtube.com/watch?v=OP8PbY9XtFU

Sorry for the late reply.
Your video helped a lot. However, I still can not generate the skeletons, i.e., roof and facade. I can not even see the  "convert to a skeleton" button after importing the obj file (as shown in the below figure). Could you help me with it?
BTW, except chordatlas, could you recommend some hacky code that takes an obj file as input and generate the roof and facade semantic labels？

Sorry, can you create a video recreating your problem. This looks like the Glasgow data? Can you try the workflow as shown in the video?
I'm not certain the code is setup to work with arbitrary meshes without corresponding footprints (your white cube meshes are a long way from the GIS footprints?).

Sorry for the late reply.
I am really grateful for your help and glad to see that you are still willing to maintain this project even after years.
I made two videos to recreate the problems:

Invisible imported obj file: In video 1, we can not find the imported building file (our data) in the Glasgow map.

Unoperable obj:  In video 2, we added a "house" obj in the Glasgow project and then exported it. We tried to re-import this "house" and wanted to further process it, e.g., edit the obj and re-texturize it, but it failed.  In the left toolbar, we can not find the "convert to a skeleton" button.

Besides, I also followed the pipeline as you suggested to align the mesh with the footprint. However, no matter the group data (mini mesh) or the single object, I can not see the "align tool" button (which should appear on the left side).
I also referred to the recommended undergrad project (by leekkww) and reproduced it (with the provided Glasgow map as the footprint), but failed in the importing step (see the below figure).

Lastly, may I get your personal contact to communicate more effectively (my mail: yinofcqudpt 'at' gmail.com)?
Best regards

Hi! Great to hear from people using the project.

This is strange! What are the coordinates in the OBJ file (if you look at the file in a text editor, you can see the coordinates). Sometimes these are many kilometers from the origin in GIS systems.

No, sorry once you re-import an OBJ it is only a mesh and no longer a skeleton. I don't think we have the functionality to save and restore skeletons at this time.

Sorry for the late reply.
I really appreciate your patient guidance. Currently, I have solved the invisible imported mesh problem by moving mesh to the origin in Blender. Also, we successfully addressed the skeleton generation problem. Thanks again for your great work!!
However,  there are two issues when converting the mesh to the skeleton. Please see the below example (from "original mesh -> converted skeleton -> rendered results"). we see that 1) some building parts can not be recognized correctly. 2) some faces are not seen as valid and, therefore, can not obtain the semantic label (see the blank part in the skeleton).

In this skeleton generation step, I receive an error message as follows.

Is this error caused by the structure characteristic of our data? If so, could you recommend some mesh-simplification solutions to address it?


Add ability to display specific prompt number

Add ability to display a specific prompt from the text

Resolved by #9. ReadFile returns a 2D slice of strings that you can easily reference.


How to configure Ethercat master in build.rs?

I want to configure Ethercat master  in build.rs of my project.
fn main() -> Result<(), Box<dyn std::error::Error>> {
    use std::process::Command;
    use std::{env, fs};
    let dir = fs::canonicalize("./vendor/etherlab")?;
    env::set_var("ETHERCAT_PATH", &dir);
    env::set_current_dir(&dir)?;
    Command::new(format!("{}/bootstrap", dir.display())).current_dir(&dir).status().unwrap();
    Command::new(format!("{}/configure", dir.display()))
        .current_dir(&dir)
        .arg("--disable-8139too")
        .arg("--enable-igb")
        .arg("--enable-cycles")
        .arg("--enable-rtdm")
        .arg("--enable-hrtimer")
        .arg("--with-rtai-dir=/usr/realtime")
        .arg("--with-linux-dir=/usr/src/linux")
        .status()
        .unwrap();
    Ok(())
}

It should run build.rs of my project first, and then run build.rs of ethercat-sys.
But in fact, build.rs of ethercat-sys is first.
Do you have any suggestions?

No, I   not want to use pregenerated-bindings.
I have success to run this project by manual configure.
I run bootstrap , configure and set ETHERCAT_PATH env, then run cargo run, it can work.
I just wat to configure it by build.rs.

As far as I know, there is no way to have build.rs or anything else run before the dependencies build.rs.

Can I call ethercat-sys/build.rs in my build.rs?

That wouldn't help since at that time ethercat-sys/build.rs already has run.


Add support for running additional diagnostic packages

As more packages are included, ensure the environment is updated in order to run them.

We are now using the cupid-analysis environment for all notebooks.


More bootstrap integration (mainly checkboxes)

Hey there,
I am using the new simple form with bootstrap 2 (also using your sample app as a reference) and it is working really well but it would like to give feedback on some things that according to me could be improved. So maybe these are feature requests or bugs, i'll leave that up to you. If you could point me to a solution that's even better :) To make things clear i am using the same config as on the example simple form bootstrap app: https://raw.github.com/rafaelfranca/simple_form-bootstrap/master/config/initializers/simple_form.rb.
:wrapper => false always falls back to the default defined wrapper
In previous versions of simple form (without the configurable wrapper) when you did :wrapper => false the surrounding divs around the input where not rendered. This doesn't seem to work anymore because (after small code check) it will always fall back to the default. Is this expected ?
When rendering checkboxes in a list not using a collection. Let say i just want 3 independent checkboxes beneath each other (like in bootstrap 2 > Extending form controls) see below code:

  Checkboxes

      <input type="checkbox" name="optionsCheckboxList1" value="option1">
      Option one is this and that—be sure to include why it's great

      <input type="checkbox" name="optionsCheckboxList2" value="option2">
      Option two can also be checked and included in form results

      <input type="checkbox" name="optionsCheckboxList3" value="option3">
      Option three can—yes, you guessed it—also be checked and included in form results

Note: Labels surround all the options for much larger click areas and a more usable form.

There is no easy way to this with simple form because of the boolean_style configuration and the fact that if you use the boolean input on it's own you cannot insert anything after it. I will demonstrate:
.control-group.check_boxes
  .controls
    = f.input :yippie, :wrapper => false, :as => :boolean, :hint => "tester"

generates

      <input name="user[yippie]" type="hidden" value="0">

        <input class="boolean optional" id="user_yippie" name="user[yippie]" type="checkbox" value="1">

tester

The wrapper false is not doing anything as i would expected that it would not generate the div[class="controls"] around the input and also the hint is placed outside the label input generation (what i expected).
WORKING SOLUTION: This is the only working solution i have currently which also includes defining a wrapper none.
  config.wrappers :none, :tag => false do |b|
    b.use :input
  end

.control-group.check_boxes
  .controls
    %label.checkbox
      = f.input :yippie, :wrapper => :none, :as => :boolean, :label => false, :boolean_style => :inline
      = "test"
    %label.checkbox
      = f.input :yippie, :wrapper => :none, :as => :boolean, :label => false, :boolean_style => :inline
      = "test"

Sorry for all the information but i wanted to make clear what is going on and improvements can be made. Maybe there is a need for a new kind of input that allows you to define a list of checkboxes without using collection for it (grouped_input? which fakes the bootstrap control-group > controls ability) or maybe a new boolean_style (:inline_bootstrap) option that allows for the example above. I will leave this up to you guys to think about it and give feedback and maybe i can then help implementing it.
Thnx for the great effort already.

Hey, thanks for the extensive explanation.
:wrapper => false
It is supposed to work this way, if it is not, we might have a bug here. We are going to check, thanks.
checkbox rendering
We've tried to improve as most as we could to handle collections of check_boxes/radio_buttons to integrate with bootstrap. Your example might be improved if we fix the :wrapper => false issue, so lets start by that to see if we can make it easier to do custom check boxes like your example.
I'd like to ask you if you could fork the example app and add examples of these failing cases in the articles form, then send a pull request. We could use such examples as base, that'd be great.
Thanks again for your feedback.

Don't have time today to add the tests, but i probably have tomorrow afternoon. So i will check if it has not been done already. Are there specific test that check for bootstrap compatibility or do you think that doesn't belong in the simple_form project?

Actually, if you want to generate just the input, you should just go ahead and use f.check_box. I can't see any reason why one would use SimpleForm API instead.

It's not just about the input it is just to generate it as close as possible as bootstrap is defining so i agree that it is not a simple form issue (although the wrapper false needs to be checked). I actually checked a bit further and even found another way and simple form allowed me to do it. Maybe i shouldn't have posted it here but on the example bootstrap and will try to send a pull request for it.
in simple form config:
  config.wrappers :checkbox, :tag => false do |b|
    b.use :label_input
  end

in haml:
.control-group.check_boxes
  .controls
     = f.input :login_disclaimer_accepted, :wrapper => :checkbox, :as => :boolean, :label => "Accept disclaimer", :label_html => {:class => :checkbox}
     = f.input :remember_me, :wrapper => :checkbox, :as => :boolean, :label => "Keep me logged in on this computer", :label_html => {:class => :checkbox}

I think :wrapper => false is weird for Simple Form 2.0 because if there is no wrapper, there is nothing to be generated. Maybe we should make :wrapper_tag => false work instead (if it doesn't), which makes more sense conceptually.

I'm trying this out. Twitter bs 2 and simple form 2. Installed simple form with the bootstrap option and scaffolded something.
deleted the scaffold.css
The form is somewhat bootstrapped but looks frankly not über cool.
What other steps are required to give the simple form the full bootstrap look?

@bingobob You have to install bootstrap css stuff into your app as well. Just go to boostrap site, download css, put into your vendor/stylesheets folder and link in your application.css file.

@bingobob you basically need to do that. Please follow the example app for some examples on how to build a form with bootstrap integration.


User without Oauth2 permissions logs in

Use Case: Using Portainer at a department development environment.
Have you reviewed our technical documentation and knowledge base? Yes
Question:
How can I check which users are allowed to log in with oauth2?
Currently I've set up a client with Keycloak and added a policy to only allow access from users with a certain role. When evaluating the permissions from Keycloak my user that has the role works but another without the role (and also without any group in the realm) also logs in.
This is my current configuration on Portainer:

And this ones from Keycloak:

How can it be that if the oauth client doesn't allow access from the testing user it still logs in?

Ticket update by Bala Natarajan<EMAIL_ADDRESS>Hi
As soon as the OAuth identity provider provides a JWT portainer accept it as
the authorization token . pl refer this
https://keycloak.discourse.group/t/allow-users-only-for-specific-clients-in-
a-given-realm/2384
hope it answers ur query


install: add openshift-ambient profile

Please provide a description of this PR:
https://github.com/istio/istio/issues/42341

/test all

@jewertow: new issue created for failed cherrypick: #49889

In response to this:

/cherry-pick release-1.21

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


fixed return envelope value in letter response

It looks like return envelope values in letter responses can either be null or a return envelope object. The previous version of the response included boolean, which is not an accepted response value for the return envelope field.
https://lobsters.atlassian.net/browse/DXP-1106

No idea why Redocly is failing 😐

@sudoku-lord  I have closed this PR because the linter GH action had run for 2 days, and it was the only way to stop it. You are welcome to re-open if needed.


Also update OverlaySlot Materials

To prevent Debug.LogError() in  Validate() in  OverlayData.cs failing the assertion:
if (!asset.material.Equals(targetMaterial))

You bet - I'll look at it.
On Wed, May 30, 2018 at 9:24 PM, Kenan<EMAIL_ADDRESS>wrote:

Hey, thanks for submitting a pull request. Would you be able to tabify
your commit so not every line is getting marked as changed?
@Jaimi https://github.com/Jaimi you want to review this one since you
started this tool?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/umasteeringgroup/UMA/pull/134#issuecomment-393380913,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AK564FIzJuDXFBH0_kDW5H0TKi2Y8sqSks5t31REgaJpZM4UUMGG
.

Hmm yeah - annoying.

https://github.com/umasteeringgroup/UMA/pull/135


GP migration - Hotfix for email and item transaction issues

This PR contains the following fixes to the GP migration.

Corrects a previous merge issue regarding the setting of email addresses for Customers and Vendors.
"mailto:" will automatically be stripped from email addresses.
Empty item transactions are now skipped.
Increased the item transaction batch size and reduced the batch name prefix to allow for more item transactions.
Fixes AB#497954

Looks like we've got a few failing tests:
  Error: Function TestGPCustomerImport Assert.AreEqual failed. Expected:<GoodEmailAddress<EMAIL_ADDRESS>(Text). Actual:<goodemailaddress<EMAIL_ADDRESS>(Text). E-Mail of Migrated Customer is wrong.
      Testfunction TestGPCustomerImport Failure (0.883 seconds)
        Error:
          Assert.AreEqual failed. Expected:<GoodEmailAddress<EMAIL_ADDRESS>(Text). Actual:<goodemailaddress<EMAIL_ADDRESS>(Text). E-Mail of Migrated Customer is wrong.
        Call Stack:
          Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft
          GP Data Migration Tests(CodeUnit 139664).TestGPCustomerImport line 127 - Dynamics GP Intelligent Cloud Tests by Microsoft
          Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft
          Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft
          Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

  Error: Function TestEmailAddressSelection Assert.AreEqual failed. Expected:<longeremailaddressshouldnotbeselected@test.net;ANOTHEREMAILADDRESS<EMAIL_ADDRESS>(Text). Actual:<longeremailaddressshouldnotbeselected@test.net;anotheremailaddress<EMAIL_ADDRESS>(Text). Incorrect multiple email text. (100 max length).
      Testfunction TestEmailAddressSelection Failure (0.003 seconds)
        Error:
          Assert.AreEqual failed. Expected:<longeremailaddressshouldnotbeselected@test.net;ANOTHEREMAILADDRESS<EMAIL_ADDRESS>(Text). Actual:<longeremailaddressshouldnotbeselected@test.net;anotheremailaddress<EMAIL_ADDRESS>(Text). Incorrect multiple email text. (100 max length).
        Call Stack:
          Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft
          GP Data Migration Tests(CodeUnit 139664).TestEmailAddressSelection line 25 - Dynamics GP Intelligent Cloud Tests by Microsoft
          Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft
          Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft
          Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

  Error: Function TestGPVendorImport Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). Vendor primary address email was not set correctly..
      Testfunction TestGPVendorImport Failure (1.796 seconds)
        Error:
          Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). Vendor primary address email was not set correctly..
        Call Stack:
          Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft
          GP Data Migration Tests(CodeUnit 139664).TestGPVendorImport line 206 - Dynamics GP Intelligent Cloud Tests by Microsoft
          Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft
          Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft
          Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft
          Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

I’ll get them corrected soon.
Jay
From: Jesper Schulz-Wedde @.>
Sent: Wednesday, January 31, 2024 8:19 AM
To: microsoft/ALAppExtensions @.>
Cc: Jay McKinney @.>; Author @.>
Subject: Re: [microsoft/ALAppExtensions] GP migration - Hotfix for email and item transaction issues (PR #25777)
CAUTION: This email originated from outside of Enavate. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Looks like we've got a few failing tests:
Error: Function TestGPCustomerImport Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). E-Mail of Migrated Customer is wrong.
  Testfunction TestGPCustomerImport Failure (0.883 seconds)

    Error:

      Assert.AreEqual failed. ***@***.******@***.******<EMAIL_ADDRESS>(Text). ***@***.******@***.******<EMAIL_ADDRESS>(Text). E-Mail of Migrated Customer is wrong.

    Call Stack:

      Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft

      GP Data Migration Tests(CodeUnit 139664).TestGPCustomerImport line 127 - Dynamics GP Intelligent Cloud Tests by Microsoft

      Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft

      Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft

      Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

Error: Function TestEmailAddressSelection Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). Incorrect multiple email text. (100 max length).
  Testfunction TestEmailAddressSelection Failure (0.003 seconds)

    Error:

      Assert.AreEqual failed. ***@***.******@***.******@***.******@***.******<EMAIL_ADDRESS>(Text). ***@***.******@***.******@***.******@***.******<EMAIL_ADDRESS>(Text). Incorrect multiple email text. (100 max length).

    Call Stack:

      Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft

      GP Data Migration Tests(CodeUnit 139664).TestEmailAddressSelection line 25 - Dynamics GP Intelligent Cloud Tests by Microsoft

      Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft

      Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft

      Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

Error: Function TestGPVendorImport Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). Vendor primary address email was not set correctly..
  Testfunction TestGPVendorImport Failure (1.796 seconds)

    Error:

      Assert.AreEqual failed. ***<EMAIL_ADDRESS>(Text). ***<EMAIL_ADDRESS>(Text). Vendor primary address email was not set correctly..

    Call Stack:

      Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft

      GP Data Migration Tests(CodeUnit 139664).TestGPVendorImport line 206 - Dynamics GP Intelligent Cloud Tests by Microsoft

      Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft

      Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft

      Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/ALAppExtensions/pull/25777#issuecomment-1919088651, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXXGMLI2V4AGJKH77WUD6OTYRJAEHAVCNFSM6AAAAABCKUTA2SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJZGA4DQNRVGE.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

I committed a fix and all tests pass now.
From: Jay McKinney
Sent: Wednesday, January 31, 2024 8:22 AM
To: microsoft/ALAppExtensions @.>; microsoft/ALAppExtensions @.>
Cc: Author @.***>
Subject: RE: [microsoft/ALAppExtensions] GP migration - Hotfix for email and item transaction issues (PR #25777)
I’ll get them corrected soon.
Jay
From: Jesper Schulz-Wedde<EMAIL_ADDRESS>Sent: Wednesday, January 31, 2024 8:19 AM
To: microsoft/ALAppExtensions<EMAIL_ADDRESS>Cc: Jay McKinney<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/ALAppExtensions] GP migration - Hotfix for email and item transaction issues (PR #25777)
CAUTION: This email originated from outside of Enavate. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Looks like we've got a few failing tests:
Error: Function TestGPCustomerImport Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). E-Mail of Migrated Customer is wrong.
  Testfunction TestGPCustomerImport Failure (0.883 seconds)

    Error:

      Assert.AreEqual failed. ***@***.******@***.******<EMAIL_ADDRESS>(Text). ***@***.******@***.******<EMAIL_ADDRESS>(Text). E-Mail of Migrated Customer is wrong.

    Call Stack:

      Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft

      GP Data Migration Tests(CodeUnit 139664).TestGPCustomerImport line 127 - Dynamics GP Intelligent Cloud Tests by Microsoft

      Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft

      Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft

      Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

Error: Function TestEmailAddressSelection Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). Incorrect multiple email text. (100 max length).
  Testfunction TestEmailAddressSelection Failure (0.003 seconds)

    Error:

      Assert.AreEqual failed. ***@***.******@***.******@***.******@***.******<EMAIL_ADDRESS>(Text). ***@***.******@***.******@***.******@***.******<EMAIL_ADDRESS>(Text). Incorrect multiple email text. (100 max length).

    Call Stack:

      Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft

      GP Data Migration Tests(CodeUnit 139664).TestEmailAddressSelection line 25 - Dynamics GP Intelligent Cloud Tests by Microsoft

      Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft

      Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft

      Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

Error: Function TestGPVendorImport Assert.AreEqual failed<EMAIL_ADDRESS>(Text<EMAIL_ADDRESS>(Text). Vendor primary address email was not set correctly..
  Testfunction TestGPVendorImport Failure (1.796 seconds)

    Error:

      Assert.AreEqual failed. ***<EMAIL_ADDRESS>(Text). ***<EMAIL_ADDRESS>(Text). Vendor primary address email was not set correctly..

    Call Stack:

      Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft

      GP Data Migration Tests(CodeUnit 139664).TestGPVendorImport line 206 - Dynamics GP Intelligent Cloud Tests by Microsoft

      Test Runner - Mgt(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft

      Test Runner - Isol. Codeunit(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft

      Test Suite Mgt.(CodeUnit 130456).RunNextTest line 20 - Test Runner by Microsoft

      Command Line Test Tool(Page 130455).RunNextTest - OnAction(Trigger) line 7 - Test Runner by Microsoft

—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/ALAppExtensions/pull/25777#issuecomment-1919088651, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXXGMLI2V4AGJKH77WUD6OTYRJAEHAVCNFSM6AAAAABCKUTA2SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJZGA4DQNRVGE.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

This has been processed internally by Nikola. I will attempt to merge this PR.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 15885.

Availability update: We will publish a fix for this issue in the next update for release 23.
Build ID to track: 15908.


remove() on embedded document: "conflicting mods in update"

I have the following code in a controller:
exports.destroy = function(req, res) {
  // Comments are embedded in an Activity
  // req.params.activity is the activity id
  // req.params.comment is the comment id
  Activity.findById(req.params.activity, function(err, activity) {
    // this looks like it works, a console.log(activity.comments) shows the item is removed
    activity.comments.id(req.params.comment).remove()
    // Throws "MongoError: have conflicting mods in update"
    activity.save(function(err, data) {
      if (err) { throw err }
      res.send(204)
    })
  })
}

Any ideas as to what is going on?
edit:
I've tried running the same pattern in the node repl and it seems to work so I'm now I'm really confused.
edit:
Turns out it has something to do with mongoose-types and the Timestamp plugin, because disabling this works a treat
using:
mongoose: 2.3.8
mongo: 2.0.0
express-mongoose: 0.0.4

yeah this is a known issue and the fix isn't simple. https://github.com/LearnBoost/mongoose/issues/438


Add CloudNative-PG CRD's

CloudNative-PG, is a project building a postgresql operator.
Worthwhile to have the CRD's added for this one.

the code for the schema can be found here:
https://github.com/cloudnative-pg/cloudnative-pg/tree/main/config/crd/bases

the code for the schema can be found here: https://github.com/cloudnative-pg/cloudnative-pg/tree/main/config/crd/bases

For the CRD yes, not the schema though...
Tried schema extractor, didn't work nicely with my k3s distro and I, sadfully, have other opensource work that takes priority :(

you can run this script on the CRD itself, and it will generate the CR json schema.

Sorry, I currently are otherwise pre-occupied.
The readme stated that I should then just file an issue instead.

@Ornias1993 you're right.
I'm just adding the comments if someone from the community will want to pitch in and help with that.

@Ornias1993 you're right.
I'm just adding the comments if someone from the community will want to pitch in and help with that.

Cool thank! :)

Hi @Ornias1993, I've just created a PR to add CloudnativePG CRDs : https://github.com/datreeio/CRDs-catalog/pull/183, so coming soon


Updated the procedure for Reviewing consumer group properties

<EMAIL_ADDRESS>please review

FYI @mmurphy

http://file.rdu.redhat.com/~fmcdonal/MGDSTRM-7853/MGDSTRM-7853_README_140422.html generated - please review
@mmurphy and @jbyrne-redhat

Thanks for generating the HTML preview @fmcdonal - that helps.
Now that I see the output, I don't think the structure of the procedure is right. Currently, the paragraph beginning "Alternatively..." appears as an alternative set of steps for just step 3 of the main procedure. Which they aren't - they are an alternative to steps 1, 2, and 3.
I'm not sure we need to add a whole alternative procedure anyway. Instead, I think we could do something like the following:
.Procedure
. In the {product-kafka} web console, go to *Streams for Apache Kafka* > *Kafka Instances* and click the name of the Kafka instance that contains the consumer groups that you want to review.
. Select the *Consumer groups* page.
. Select the options icon (three vertical dots) for the relevant consumer group and click *View partition offsets*.

NOTE: You can also view consumer groups for a specific topic. In your Kafka instance, select the *Topics* page and then click the name of a topic. Select the *Consumer groups* page. For a given consumer group, select the options icon (three vertical dots) and click *View partition offsets*.


Ship project in Docker

in order to run it easly
AND run integration test

@rehia integration tests should be

in /integration/
in  /test/integration/
elsewhere ?

@dandreit could confirm that for now you use this docker image of geonames jumplead/geonames-server https://hub.docker.com/r/jumplead/geonames-server/ ?

Require to provide as a lib first https://github.com/lightstream-company/geonames/pull/2

[x] Pull request #2 merged
[x] Conflicts solved
[x] Merging PR #1


'pycolmap.Image' object has no attribute 'projection_matrix'

Hello, thanks a lot for your interesting work. I came across an error when running your visualization scripts. The error is shown as below, could you plz help take a look? Thanks a lot!

Can you tell me the version of pycolmap you are using?
Please use pycolmap.version = '0.3.0

Can you tell me the version of pycolmap you are using? Please use pycolmap.version = '0.3.0

Thanks a lot! After changing pycolmap.version to '0.3.0', the issue has been fixed.


Can't modify pickup day

Describe the bug
A clear and concise description of what the bug is. Steps to reproduce.
After Integration is setup I can not modify the pickup day.
Configuration
YAML or Config Flow (GUI):
Copy the sensor configuration here (for config flow, describe parameters or add screenshots)

Error log/debug information
After I click on the Integration, then options, then submit I get:
Unknown error occurred
Copy the error message from Developer tools/Logs here.
Logger: aiohttp.server
Source: custom_components/garbage_collection/config_flow.py:500
First occurred: May 3, 2020, 1:05:31 PM (15 occurrences)
Last logged: 5:59:50 AM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 418, in start
    resp = await task
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 458, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 119, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/real_ip.py", line 39, in real_ip_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 73, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 127, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 125, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 209, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 54, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 93, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 148, in async_configure
    result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 196, in _async_handle_step
    result: Dict = await getattr(flow, method)(user_input)
  File "/config/custom_components/garbage_collection/config_flow.py", line 500, in async_step_init
    self._data.update(user_input)
AttributeError: 'mappingproxy' object has no attribute 'update'

To enable debug logging, add custom_components.garbage_collection: debug to your config under logger/logs.
Screenshots
If applicable, add screenshots to help explain your problem.
Version
Integration version, Home Assistant version and configuration

Tested, it works for me. What is your garbage_collection version? What is your configuration?

How do I tell the version?  I am using home Assistant 109.3.  I have 4 integrations for garbage, nothing fancy. I setup one for each type of trash.

I must have installed manually and did not see the update.  2.2 fixes my issue.  Thanks.  Changed to a HACS install so I should see any future changes.


[Config] Removed swiftPM files

Purpose

Removed xcworkspacedata file

Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[x] Other... Please describe:

Pull request checklist
This PR has considered:

[ ] Color Theming
[ ] iOS supported versions (all major versions greater than or equal current target deployment version)
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and Right to Left layouts
[ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
[ ] View Data Injection
[ ] Demo App UI/UX update

Should this be for main or develop or both?

I'm goint to merge it master first and after tat back merge to develop so changes will be in both branches


Rbootstrap

Starting to work towards a more standard build system.
Open questions:

How should I automate the copying of feather into this package? Ideally it'd be part of the configure/build process so that install_github() can work. I think that will require checking in of the generated flatbuffers header file so the user doesn't need a big dependency chain

How can we tweak file selection in Makevars so I don't need to manually update it each time I add a new cpp file, or when the files in feather change.

cc @jjallaire

Squash your commits – GitHub Blog

I turned off merge commits as an option.
I still think the ASF patch tool does a better job of producing nice patches (especially with multiple authors), so we can always bug github about reconciling the differences. Let's see how it goes


How to make LongAlbert?

Hi,
I'm trying to make a long version of Albert using the notebook you released, but It seems with Albert, it's a bit tricky. The "AlbertAttention" class in modeling_albert.py is quite different from BertAttention.
Can you kindly show us how to properly make a long version of Albert?
Thanks in advance!

The data look the same but the input format might be a bit different. Following the convert_model_to_long.ipynb notebook, your AlbertLongSelfAttention (instead of RobertaLongSelfAttention) will need more code in the forward function to convert the format used in AlbertSelfAttention into the format of LongformerSelfAttention. You also need to check that the position embedding is extended correctly.

@talkhaldi @ibeltagy
see my issue https://github.com/allenai/longformer/issues/117


admin: /certs should dump all certificates

Description:
From PR #4566, /certs only dump first X509 certificate information in CA certificates and certificate chain for every TLS context, it should dump everything.

I would like to move forward with this issue.

Is there any chance to get this implemented soon ?


How to make the alg and its inverse decomposition consistent?

Actually, the same thing happens for a single commutator, too.

I think only one output can not solve this problem. Turn to your example, the inverse of [U:[R',S' R E][S2,U' R']] is [U:[U' R',S2][S' R E,R']], which contains a cancel from the beginning. However, [U:[R',S' R E][S2,U' R']] doesn't contain a cancel from the beginning. This also leads to the loss of consistency to some extent.
The root of this problem is that an alg can be decomposed in many ways. Maybe only printing all decompositions can solve this problem. Let me think more about it.


Envoy does not respect DNS TTL when no max_connection_duration is configured

Title: Envoy does not respect DNS TTL when no max_connection_duration is configured
Description:
My envoy acts as a proxy to a certain DNS endpoint.

envoy ---(DNS)---> servers(dynamic IP change)

When the max_connection_duration is configured, it is working as expected but if no duration is configured, the envoy does not respect the DNS TTL. So even if I removed some IPs from the DNS records, removed servers keep receiving requests.
I am not sure if this is expected behavior. I expected DNS ttl is always respected with this change.
I am using this version: envoy  version: e546bf5fc89b063bb911dc717c9beb26efa27a9f/1.25.4-dev/Clean/RELEASE/BoringSSL
Please let me know if any further information is needed.
Config:
  name: outbound|80||MY_SERVER
  outlierDetection:
    baseEjectionTime: 1s
    consecutive5xx:<PHONE_NUMBER>
    enforcingConsecutive5xx: 100
    enforcingSuccessRate: 0
    interval: 1s
  respectDnsTtl: true
  type: STRICT_DNS
  typedExtensionProtocolOptions:
    envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
      '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
      commonHttpProtocolOptions:
        idleTimeout: 300s
        maxConnectionDuration: 300s  ###### this one is necessary
      explicitHttpConfig:
        httpProtocolOptions: {}

ok, I noticed this only happens when the active health check is configured and I've just found this page.
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/service_discovery#on-eventually-consistent-service-discovery

Host absent / health check OK:
Envoy will route to the target host. This is very important since the design assumes that the discovery service can fail at any time. If a host continues to pass health check even after becoming absent from the discovery data, Envoy will still route. Although it would be impossible to add new hosts in this scenario, existing hosts will continue to operate normally. When the discovery service is operating normally again the data will eventually re-converge.

So a DNS server initially responds with 4 IPs and if I removed one of the IPs from the DNS records, the envoy will keep sending requests to the removed IP as long as health checks succeed?

I confirmed that the removed host is not removed from the endpoint list with active health checks.
But I am still curious: when I update the max_connection_duration setting, the endpoint is suddenly removed.
Could anyone share what's going on under the hood?

@alyssawilk Could you take a look at this?

Please bear with me if you are not in charge of this module.

@alyssawilk
Thank you for the answer.
One strange thing is that if I don't configure active health checks, DNS resolution works as expected even without max_connection_duration.
This is my cluster configuration. There is only http_idle_timeout and I kept sending requests every 0.1s so I suppose the connection kept alive. So when active health checks are not set up, endpoints are drained based on the DNS TTL?
- circuitBreakers:
    thresholds:
    - maxConnections:<PHONE_NUMBER>
      maxPendingRequests:<PHONE_NUMBER>
      maxRequests:<PHONE_NUMBER>
      maxRetries:<PHONE_NUMBER>
      trackRemaining: true
  commonLbConfig:
    healthyPanicThreshold: {}
    localityWeightedLbConfig: {}
  connectTimeout: 11s
  dnsLookupFamily: V4_ONLY
  dnsRefreshRate: 60s
  filters:
  - name: istio.metadata_exchange
    typedConfig:
      '@type': type.googleapis.com/envoy.tcp.metadataexchange.config.MetadataExchange
      protocol: istio-peer-exchange
  lbPolicy: LEAST_REQUEST
  loadAssignment:
    clusterName: outbound|443||backend.my-backend
    endpoints:
    - lbEndpoints:
      - endpoint:
          address:
            socketAddress:
              address: backend.my-backend
              portValue: 443
        loadBalancingWeight: 1
        metadata:
          filterMetadata:
            istio:
              workload: ;;;;
      loadBalancingWeight: 1
      locality: {}
    - lbEndpoints:
      - endpoint:
          address:
            socketAddress:
              address: my-backend.com
              portValue: 80
          healthCheckConfig: {}
      locality: {}
      priority: 4
    policy:
      overprovisioningFactor: 200
  metadata:
    filterMetadata:
      istio:
        config: /apis/networking.istio.io/v1alpha3/namespaces/my-backend/destination-rule/my-backend-options
        default_original_port: 443
        services:
        - host: backend.my-backend
          name: backend.my-backend
          namespace: my-backend
  name: outbound|443||backend.my-backend
  outlierDetection:
    baseEjectionTime: 1s
    consecutive5xx:<PHONE_NUMBER>
    enforcingConsecutive5xx: 100
    enforcingSuccessRate: 0
    interval: 1s
  respectDnsTtl: true
  type: STRICT_DNS
  typedExtensionProtocolOptions:
    envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
      '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
      commonHttpProtocolOptions:
        idleTimeout: 300s
      explicitHttpConfig:
        httpProtocolOptions: {}
  upstreamConnectionOptions:
    tcpKeepalive:
      keepaliveInterval: 74
      keepaliveTime: 600

I am still facing this issue.. Does anyone has any suggestion about this?

I also met the problem, repeat steps as below

Create one http service and make this service have 6 A-record# dig +short ${myService}
${A-record-1}
${A-record-2}
...
${A-record-6}

Make envoy pod point to the service's dns and enable active healthcheck
Remove ${A-record-1} from DNS server
The envoy pod will also keep ${A-record-1} due to DNS cache.
After several minutes, the ${A-record-1}'s server also receive the requests in spite of  ${A-record-1} does not exist in envoy pod anymore

I login into envoy pod and use dig +short ${myService} to check, ${A-record-1} does not exist anymore

After modifiy pod's connection-related setting, the ${A-record-1}'s server does not receive the requests anymore

@style95
Below configuration can solve it
ignore_health_on_host_removal: true

Please refer to: https://cloudnative.to/envoy/api-v3/config/cluster/v3/cluster.proto.html


No reference to impl Trait { ... } (Inherent impl for traits)

I hope this is the right location to report this.
I am quite confused about the associated function of a trait in a impl block (without types)
trait Foo {}
impl Foo {
   pub fn something(&self) -> u32 { 42 }
}

(notice there is no for Xxx, and Foo is a trait)
What is this block impl Foo exactly?  What are the difference between normal trait functions. And also what would be the recommended usage. (as calling these function is not as obvious as it seems)
I would be expecting to read about it
in https://doc.rust-lang.org/reference/items/implementations.html or
https://doc.rust-lang.org/std/keyword.impl.html
but i haven't found any documentation about it anywhere. (And googling for "impl trait" always give results about the recent feature, but not what i'm looking for)

That is an inherent method of the trait object.  That means the method is only available on trait objects.  If you have a value that implements the trait, you cannot call the method on the value even if it implements the trait.  You can only call it when it is a trait object.
trait Foo {
    fn ffunc(&self) -> u32 { 1 }
}
impl dyn Foo {
   pub fn something(&self) -> u32 { 42 }
}

struct S;

impl Foo for S {}

let s = S;
// Can call trait methods.
s.ffunc();
// This is an error.
// s.something();
// But as a trait object.
let to = &s as &dyn Foo;
// This works.
to.something();

I cannot find the documentation for this.  I know I've read about it somewhere.  There is an extremely brief mention of it at the bottom of https://doc.rust-lang.org/stable/reference/expressions/method-call-expr.html.  🤔
The only time I've seen it used is in the failure crate.  It is useful if you want to only have these methods added when dealing with trait objects to avoid polluting the namespace for values that implement that trait.  I'm sure others can provide better reasoning and explanation.
It definitely should be documented!

It definitely should be documented!

I'm not at all sure about this. We already document trait object types dyn Foo and we document inherent implementations. Is there some specific language rule that we need to talk about in the intersection of these otherwise orthogonal features?

That's a good point.  However, I think this concept is surprising enough to warrant additional attention.  It has some subtle characteristics that are not obvious to someone who doesn't already have a strong understanding of how these things work.  I think it is also useful to highlight the use cases and reasons why one would do that.
Now, I'm not sure where it should be documented.  It doesn't necessarily need to be in the reference, but I think it would be nice to be somewhere.  Where that is, I don't know.

However, I think this concept is surprising enough to warrant additional attention.

This is partly why we have the dyn Foo syntax in the first place. When you write impl dyn Foo { ... } that does look less surprising than impl Foo { ... }.

It has some subtle characteristics that are not obvious to someone who doesn't already have a strong understanding of how these things work.

Well does it have semantic subtleties in terms of e.g. visibility and coherence that are not covered by what we've written about object types and implementations? If so we need to document those here. However, we should avoid redundancies.

I think it is also useful to highlight the use cases and reasons why one would do that.

That's user facing docs.

Now, I'm not sure where it should be documented. It doesn't necessarily need to be in the reference, but I think it would be nice to be somewhere. Where that is, I don't know.

I think it's probably not the reference with he caveat of what I said above.


chore: mini.sh and readme updates

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


Permission to create type stubs on typeshed

Hi,
I'll like to add a type annotation stub to the Python typeshed for visdom for the benefit of people using a static type checker. I already have a draft of one written, but I need the permission of one of the visdom maintainers here to officially submit it.

Hi @malmaud - we're happy to give permission for typeshed stubs, however they will have to be compatible with pyre typechecking as well as those required by typeshed's contributing guide (mypy, pytype, and flake8).
As an aside, we'd actually be happier to put the typechecking directly into the visdom codebase, this way we can maintain it in one location. If you're willing to help towards that effort rather than using typeshed (which typeshed actually prefers) I'd be happy to review a PR here.

Oh ya, that would be great to put them in the codebase. I can submit a PR for that.
Do you have a preference for the type annotations being inline with the rest of the codebase, or rather in separate stubs? I personally think the former is a bit neater since it gives code a self-documenting quality, but whatever works for you.

In-line is definitely preferred - I feel the same way
On Jun 19, 2018, at 12:44 PM, Jon Malmaud <notifications<EMAIL_ADDRESS>wrote:
Oh ya, that would be great to put them in the codebase. I can submit a PR for that.
Do you have a preference for the type annotations being inline with the rest of the codebase, or rather in separate stubs? I personally think the former is a bit neater since it gives code a self-documenting quality, but whatever works for you.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/facebookresearch/visdom/issues/388#issuecomment-398466324, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABN7w6Fxv84I7XcPN0rL6ym9Jc5TtVKqks5t-So6gaJpZM4Uts8S.

So as I delved into this, I realized a problem with in-line annotations occurs if you want to preserve Python 2.7 compatibility (which I assume you do). If so, you have to resort to the clunky syntax of giving all type information in the form of comments (https://mypy.readthedocs.io/en/latest/python2.html) and cannot use the nice Python 3 type annotation syntax. But if you use stubs, the stubs can use the nice annotation syntax while Python 2 users still get static type checking.
That pushes me in the direction of using stubs, but what do you think?

Agh so I guess inline is an impossibility for now (all the more reason I'd love it if people moved passed 2.7 😢). In that case if stubs end up having the better syntax overall then I'd feel it's a fair compromise between 2.7 support and optimal style.


Kafka performance metrics blog post.

TODO:

[x] paste screenshots
[x] articulate the testing loop
[x] new relic
[x] datadog
[x] prom-grafana setup
[ ] pod topologySpreadConstraints
[ ] consumer properties

Raising a new PR as this is more than a yr old.


Ultra is missing from the Service level description in Step 3

Hi Julie : )

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

ID: 6bd492ea-1210-be9b-35a5-515ff2a917f9
Version Independent ID: c6f027a3-f706-a871-cdc7-71b9dcf8fed1
Content: Set up a capacity pool for Azure NetApp Files
Content Source: articles/azure-netapp-files/azure-netapp-files-set-up-capacity-pool.md
Service: azure-netapp-files
GitHub Login: @b-juche
Microsoft Alias: b-juche

@netapp-bcammett -- Thanks much for catching this! :)
Fixing right now.  Change should go live this afternoon.

Fixed in PR#110029.  Merged for publishing by 3:30 PM 04-02-2020.
#please-close


Add esp32s2 to no CAS list

Without this entry, esp32s2 users with futures-* dependencies in their tree, indirectly or not must somehow enable the portable atomic feature. This change makes it seamless like it is on RISCV etc.

Thanks for the PR. I would prefer not to accept a way to manually manage such a list of platforms. I've said this many times in other repos like https://github.com/crossbeam-rs/crossbeam/pull/751#pullrequestreview-796739843, https://github.com/crossbeam-rs/crossbeam/pull/937#issuecomment-1338885510.
Instead, I would accept a patch to use target_has_atomic = "ptr", like done in crossbeam https://github.com/crossbeam-rs/crossbeam/issues/1033.


Combination of Option type and doc attribute causes parse error.

I'm get an issue when combining nullable types i.e. Option and doc comments. The code below will fail with
Err(Error { message: "not a union" })

However, if you remove the doc comment from the raw schema it will start working again.
Thanks.
use avro_rs::{Codec, Reader, Schema, Writer, from_value, types::Record};
use failure::Error;
use serde::{Serialize, Deserialize};

#[derive(Debug, Deserialize, Serialize)]
struct Test {
    a: Option<i64>,
    b: String,
}

fn main() -> Result<(), Error> {
    let raw_schema = r#"
        {
            "type": "record",
            "name": "test",
            "fields": [
                {
                    "name": "a",
                    "type": ["null", "long"],
                    "default": 42
                },
                {
                    "name": "b",
                    "type": "string",
                    "doc" : "Remove this line and it will work again."
                }
            ]
        }
    "#;

    let schema = Schema::parse_str(raw_schema)?;

    println!("{:?}", schema);

    let mut writer = Writer::with_codec(&schema, Vec::new(), Codec::Deflate);

    let mut record = Record::new(writer.schema()).unwrap();
    record.put("a", Some(27i64));
    record.put("b", "foo");

    writer.append(record)?;

    let test = Test {
        a: Some(26),
        b: "foo".to_owned(),
    };

    writer.append_ser(test)?;

    writer.flush()?;

    let input = writer.into_inner();
    let reader = Reader::with_schema(&schema, &input[..])?;

    for record in reader {
        println!("{:?}", from_value::<Test>(&record?));
    }
    Ok(())
}

The schema in the example is invalid, the default value must be of the type listed first in the union. To use 42 as the default value for "a" the type would need to be specified as ["long", "null"].
Reference: https://avro.apache.org/docs/current/spec.html#schema_complex

Thanks for answering, @cwitmer ! @ianpurton I am going to close the issue, but please let me know if there is anything that isn't yet clear.


branding - update does not update template

Description
Trying to update the login page using the CLI command:

end up not uploading the new template.
Reproduction

see image

Environment

CLI -v => auth0 version 0.11.3 9daa0c20e749790319a2d2a9eb1f349844b51252
MacOS everything  (xCode, macos etc) updated to use this cli - yesterday.
used VIM (default editor in iterm) to change the template "basic". added little JS

template i like to upload is basic with a little script tag:
<script>
var c = document.createElement('div');
const text = `By continuing you agree to our <a
              href="{DOMAIN}/EULA.pdf"
            >
              Terms of Service
            </a>

            and acknowledge the

            <a href="{DOMAIN}/privacy-notice.pdf">
              Privacy Policy
            </a>
`
c.innerHTML = text
c.style.paddingTop = '10px'
if(document.body.innerText.includes('Sign up')){
document.getElementsByTagName('form')[0].after(c)
}
</script>

Update: Also tried to add just a text so without the script tags and it also does not upload.

Hi @BartJanvanAssen, thanks for raising this.
I just tried editing a template, and was unable to reproduce the issue; the saved text showed up when running auth0 branding templates show:

With show it shows up correctly. Had to somehow activate it. In meanwhile i've clickd a few swit hes in the UI and then it was fixed ( could preroduce it in another tenant.)
Steps:

branding -> universal login
switch to classic - save - switch to new - save
got login
select custom template switch - notice custom page - select custom login page top of code box in login tab, select and deselect.
uncheck custom login page
(not essential) push a new version via cli of cli template.
now the cli template works.

Seen this for 2 tenants..
So somehow in the steps above ive set some boolean in auth0 backend i guess 😜

@BartJanvanAssen thanks for providing the reproduction steps. Unfortunately, that would be outside of the scope of the CLI (which is just a Management API client).
I'll close this issue for now, as it is not actionable by us. Please let me know if you'd prefer to reopen.