Not all possible permissions shown in the tree under Console user (sponge problem)

Description

I have a bunch of plugins with their permissions, but LuckPerms doesn't seeing its permissions list in tree before i will not execute its command.
Examples:
https://luckperms.net/treeview/0B18M470sc
https://luckperms.net/treeview/ZkSmDJmOEm
Reproduction steps

Install all the needed plugins
Start the server
Run /lp tree and use the link provided by LP
Run some not seeing in tree plugin commands
Run /lp[ tree again and use provided link.

Expected behaviour

On first /lp tree command i wantiong to see all the possible permissions form all intslled polugins that support the permssions.
Environment details

Server type/version: Forge running version 1.12.2 builds 2838 and 2854 with SpongeForge build 1.12.2-2838-7.3.0
LuckPerms version: v5.2.15

Any other relevant details

none

that is not the function of /lp tree, lp tree can only: Generates a tree view of permissions registered to the server. The tree is built using data exposed to the server by plugins, and expanded over time as plugins check for permissions. If the plugin has not registered the permission node or Lp has not checked on the given node, it impossible for lp tree to show it. /lp tree is only really useful when your server is active for a while and most relevant perms are checked, even so, it cant will probably never be able to show the absolute all permissions available on your server as permission nodes are definite by each plugin not LuckPerms.
If you want to see relevant permission node for a given command:

read the plugin's documentation
use verbose: https://github.com/lucko/LuckPerms/wiki/Command-Usage:-General#lp-verbose-onrecordoffupload-filter

see: https://github.com/lucko/LuckPerms/wiki/Command-Usage:-General#lp-tree-scope-player


Add filter (whitelist/blacklist)

Adding a filter - whitelist would allow anyone to see only the assets they want to see.  It would also help provide a foundation for a white label wallet.
Adding a filter - blacklist - would hide specific assets that the user doesn't want to see.
These filters are just for the display of assets and would not affect whether the token is received and/or transferrable.

This is still a great idea but will be implemented in a light-client version of a RVN and asset wallet.


Add transceive and require status

This PR adds a transcieve method that takes:

APDU command in byte[]
The IsoCard to transfer to
The responseApdu as a String (optional, default is default if null)

Also adds a requireStatus method that takes two parameters:

byte[] or String APDU with the received message
byte[] or String APDU with the expected message
The method automatically removes whatever comes before the last few signs of the received message to match the length of the expected message

@petter-fidesmo ready for review.

@adriaan-telcred @sten-erik-t you guys are using the library. Do you think these are good changes

@Franzaine I think that these methods would belong in the Apdu class. That is where we have put other utility methods.

Well.. That would have been logical.. yes. Doing it now :)

@petter-fidesmo there, I fixed your comments and commented some :)

@Franzaine I kind of like your stuff about getting the response and verifying the response code. Did you see my comment regarding transceiveAndRequireStatus? I think such a set up would perfect sense.

@petter-fidesmo what would transceiveAndRequireStatus return?

@Franzaine byte[], it should work just liek transceiveAndGetResponse just that it only sends one APDU, checks its response (if doesn't match throws an exception) and return the response APDU.

Looks good! We have similar functionality in our own APDU utilities library :)

@petter-fidesmo how about this? :) Anything else missing?

@Franzaine Only comment would be that I do not think it makes sense to use transceiveAndGetResponse function from the transceiveAndRequireStatus. The get response stuff is a seldom used method that is very specific to certain use cases.

@petter-fidesmo understood. Fixed that

@Franzaine :+1: left a comment regarding the naming used in the hasStatus methods.


[Bug] Word Candidate Window is not in the right position when typing Chinese, in iPadOS with a physic keyboard

[Bug] Word Candidate Window is not in the right position when typing Chinese, in iPadOS with a physic keyboard.
I use the basic TextField setting, without modify anything.
I have tested in iPad Pro (12.9-inch)(4th generation) with software verstion 13.4.1 and
iPad (4th generation) with 12.1. The problem is still showing.
The candidate window should be at the bottom of the word that is typing. (Pic below)

However, actually, it is

[✓] Flutter (Channel stable, v1.17.1, on Mac OS X 10.15.3 19D76, locale en-AU)
    • Flutter version 1.17.1 at /Users/***/***/development/flutter
    • Framework revision f7a6a7906b (12 days ago), 2020-05-12 18:39:00 -0700
    • Engine revision 6bc433c6b6
    • Dart version 2.8.2

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/***/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    ✗ Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 11.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.4, Build version 11E146
    • CocoaPods version 1.9.1

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

Hi @duomoteng
Can you please provide your  a minimal complete reproducible code sample.
Thank you

Reproduced with current dev 1.20.0-0.0.pre on iPad Pro (12.9-inch) (4th generation) iOS-13-5 (simulator). Choose Chinese, hide keyboard, Candidate window is shown on typing.

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

void main() => runApp(
  MaterialApp(
    home: MyApp(),
  ),
);

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        appBar: AppBar(
          title: Text('title'),
        ),
        body: Center(
            child: TextField(),
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, 1.20.0-0.0.pre, on Mac OS X 10.15.5 19F101, locale en-GB)
    • Flutter version 1.20.0-0.0.pre at /Users/nevercode/dev/flutter_dev
    • Framework revision d9653445f4 (8 days ago), 2020-06-09 18:43:03 -0400
    • Engine revision e8c13aa012
    • Dart version 2.9.0 (build 2.9.0-14.0.dev 5c1376615e)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/nevercode/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.1

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (6 available)
    • Nevercode’s iPhone                    • b668e524315069f3db3661ac11ff1f66afafebdb • ios            • iOS 13.5
    • iPhone 11 Pro Max                     • 9F9AFD9B-7F22-468E-8096-B47E993E0619     • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-5 (simulator)
    • iPad Pro (12.9-inch) (4th generation) • B34F14C5-50BE-4DD4-982C-C099C4B13F24     • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-5 (simulator)
    • macOS                                 • macOS                                    • darwin-x64     • Mac OS X 10.15.5 19F101
    • Web Server                            • web-server                               • web-javascript • Flutter Tools
    • Chrome                                • chrome                                   • web-javascript • Google Chrome 83.0.4103.97

• No issues found!

Similar issues #102647 #9344

@cbracken I seem to remember that you did some work to position this tooltip properly. Is this fixed?

I thought that maybe @justinmc landed a fix for this at one point?
My recollection is that the positioning relies on code here:
https://github.com/flutter/engine/blob/b197788d963c183ac0477271c2153afb58c68b01/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.mm#L1514-L1608

Looks like the fix I was thinking of was landed by @LongCatIsLooong in https://github.com/flutter/flutter/issues/9344. My guess is this issue should be closed by that patch.
There was an issue reported that suggests we're not returning a rect of the correct height during composing, but that's a separate (fine-tuning) issue: https://github.com/flutter/flutter/issues/102647
I left a comment at the bottom of that bug suggesting where I think the problem is. I think we can likely close this issue as fixed then resolve the positioning issue separately.
If anyone is still seeing this issue on either master or stable branch, please let us know and we can re-open.

Looks like the fix I was thinking of was landed by @LongCatIsLooong in #9344. My guess is this issue should be closed by that patch.
There was an issue reported that suggests we're not returning a rect of the correct height during composing, but that's a separate (fine-tuning) issue: #102647
I left a comment at the bottom of that bug suggesting where I think the problem is. I think we can likely close this issue as fixed then resolve the positioning issue separately.
If anyone is still seeing this issue on either master or stable branch, please let us know and we can re-open.

Simulator Screen Recording - iPad Pro (12.9-inch) (5th generation)
https://user-images.githubusercontent.com/12608693/188790603-a373f004-50b1-4197-b450-89763bd164e5.mp4

@cbracken I can't use the arrow keys on the keyboard to select words.

@feimenggo just to verify; you've updated to the latest stable branch via flutter upgrade and are still unable to select from the candidates list via the arrow keys?

@LongCatIsLooong seems there's still an issue (which may be specific to Chinese input). Perhaps we only fixed this on macOS?

macOS and iOS both implemented firstRect the same way. @feimenggo could you provide a minimal repro?

macOS and iOS both implemented firstRect the same way. @feimenggo could you provide a minimal repro?

On Windows, using the Sougou pinyin IME to input Chinese has the same issue.
Download link: https://shurufa.sogou.com/

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

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

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

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Invoke "debug painting" (press "p" in the console, choose the
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
          // to see the wireframe for each widget.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const TextField(maxLines: null),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

On Windows, using the Sougou pinyin IME to input Chinese has the same issue.

That's a known issue on Windows 7, but is completely unrelated in terms of implementation. It's tracked in this bug: https://github.com/flutter/flutter/issues/92050. If you have any additional detail, please feel free to add it there.

On Windows, using the Sougou pinyin IME to input Chinese has the same issue.

That's a known issue on Windows 7 (but should be fine on Windows 10-11), but is completely unrelated in terms of implementation. It's tracked in this bug: #92050. Please thumbs-up if it's affecting you, which helps us prioritise issues. If you have any additional detail, please feel free to add it on that bug.

There are also issues with Windows 10-11.
https://user-images.githubusercontent.com/12608693/189250361-dfcfe4d1-7f0d-4e7f-9f23-42f4da2711ee.mp4
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.4.0-19.0.pre.153, on Microsoft Windows [版本 10.0.22000.856], locale zh-CN)
[✗] Windows Version (Unable to confirm if installed Windows version is 10 or greater)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Chrome - develop for the web
[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.3.3)
[✓] Android Studio (version 2021.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

Code sample
```
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or simply save your changes to "hot reload" in a Flutter IDE).
// Notice that the counter didn't reset back to zero; the application
// is not restarted.
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
State createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
int _counter = 0;
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: SingleChildScrollView(
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Invoke "debug painting" (press "p" in the console, choose the
// "Toggle Debug Paint" action from the Flutter Inspector in Android
// Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
// to see the wireframe for each widget.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
mainAxisAlignment: MainAxisAlignment.center,
children: [
const TextField(maxLines: null),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}

</details>

On Windows, using the Sougou pinyin IME to input Chinese has the same issue.

That's a known issue on Windows 7 (but should be fine on Windows 10-11), but is completely unrelated in terms of implementation. It's tracked in this bug: #92050. Please thumbs-up if it's affecting you, which helps us prioritise issues. If you have any additional detail, please feel free to add it on that bug.

There are also issues with Windows 10-11.
20220909-085304-HD.mp4
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.4.0-19.0.pre.153, on Microsoft Windows [版本 10.0.22000.856], locale zh-CN)
[✗] Windows Version (Unable to confirm if installed Windows version is 10 or greater)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Chrome - develop for the web
[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.3.3)
[✓] Android Studio (version 2021.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

Code sample

I occasionally encountered a throbbing problem using the Microsoft Pinyin IME.
https://user-images.githubusercontent.com/12608693/189253493-db898f66-18d8-4e7b-a1e7-5e4d5208e082.mp4
At 00:11 of the video:

Using the QQ Pinyin IME, the throbbing problem is more frequent.
https://user-images.githubusercontent.com/12608693/189254395-4a3da8f7-331a-486e-8ea7-b8cfc1e12c5f.mp4

@feimenggo please file a separate issues for Sogou on Windows or reply on the issue I pointed you to. This is off-topic for this bug.

Any updates for iPadOs or Windows?

Please follow the relevant Windows or iPad issues for any updates.

Thank you, I updated to the latest version of the emulator, the issue still exists.
Flutter 3.4.0-28.0.pre.122 • channel master • https://github.com/flutter/flutter.git
Framework • revision 97e09c8a78 (2 hours ago) • 2022-09-23 09:43:20 +0800
Engine • revision a5489ce4f9
Tools • Dart 2.19.0 (build 2.19.0-229.0.dev) • DevTools 2.17.0

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.4.0-28.0.pre.122, on macOS 12.6 21G115 darwin-arm64, locale
    zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] IntelliJ IDEA Community Edition (version 2022.2)
[✓] VS Code (version 1.71.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

https://user-images.githubusercontent.com/12608693/191890241-64c08ac0-ea10-4ad7-a123-b51da3d8e64d.mp4

/cc @LongCatIsLooong @justinmc for thoughts on why this might be an issue specifically with Chinese input (but not Japanese last I checked) on iOS.

This bug does happen for me with a Japanese keyboard too!
https://user-images.githubusercontent.com/389558/192903905-d1504a6d-9662-453f-a6bc-5792841909f4.mov

I improvised the problem
code：
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardDidChangeFrame:)
                                                 name:UIKeyboardDidChangeFrameNotification
                                               object:nil];

- (void)keyboardDidChangeFrame:(NSNotification *)notification
{
    NSDictionary *userInfo = [notification userInfo];
    NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [value CGRectValue];
    CGFloat height = keyboardRect.size.height;
    if (height < 150) {
        UIView *textField = [self findTextFieldInView:self.view];

        if (textField) {
            [self.timer invalidate];
            self.timer = nil;

            self.timer = [NSTimer scheduledTimerWithTimeInterval:0.2 repeats:YES block:^(NSTimer * _Nonnull timer) {
                textField.frame = CGRectMake(textField.frame.origin.x, 0, textField.frame.size.width, textField.frame.size.height);
            }];
        } else {
            [self.timer invalidate];
            self.timer = nil;
        }
    }
}

- (UIView *)findTextFieldInView:(UIView *)view
{
    for (UIView *subView in view.subviews) {
        if (strstr(object_getClassName(subView), "FlutterTextInputViewAccessibilityHider")) {
            return subView;
        } else {
            UIView *tempView = [self findTextFieldInView:subView];
            if (tempView) {
                return tempView;
            }
        }
    }
    return nil;
}

@LongCatIsLooong Do you think there's any better solution than using timers like that? ^

Are we sure this isn't a regression; I swear this was working at some point.

Any progress for the issuse?

I'm adding this code that works for me. code：
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardDidChangeFrame:)
                                                 name:UIKeyboardDidChangeFrameNotification
                                               object:nil];

- (void)keyboardDidChangeFrame:(NSNotification *)notification
{
    NSDictionary *userInfo = [notification userInfo];
    NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [value CGRectValue];
    CGFloat height = keyboardRect.size.height;
    if (height < 150) {
        UIView *textField = [self findTextFieldInView:self.view];

        if (textField) {
            [self.timer invalidate];
            self.timer = nil;

            self.timer = [NSTimer scheduledTimerWithTimeInterval:0.2 repeats:YES block:^(NSTimer * _Nonnull timer) {
                textField.frame = CGRectMake(textField.frame.origin.x, 0, textField.frame.size.width, textField.frame.size.height);
            }];
        } else {
            [self.timer invalidate];
            self.timer = nil;
        }
    }
}

- (UIView *)findTextFieldInView:(UIView *)view
{
    for (UIView *subView in view.subviews) {
        if (strstr(object_getClassName(subView), "FlutterTextInputViewAccessibilityHider")) {
            return subView;
        } else {
            UIView *tempView = [self findTextFieldInView:subView];
            if (tempView) {
                return tempView;
            }
        }
    }
    return nil;
}

@WithToken Hello, Where to add this code

FlutterViewController, XXFlutterViewController Subclass of FlutterViewController

FlutterViewController, XXFlutterViewController Subclass of FlutterViewController

@LongCatIsLooong    Hi, The previous problem has been fixed, but there is still a small issues. The coordinates entered the first time were wrong.
Screenshot:

Video:
https://user-images.githubusercontent.com/12608693/195221765-ed4827bc-cc82-4d56-89e1-2845f43df8f1.mp4


Issue with monorepo?

I added waku into a pnpm monorepo and a standalone repo via pnpm create waku@latest. The standalone repo is building currently and showing the app but the one installed into a monorepo errors with Error: Missing Root component.
Any ideas on how the create-waku app in a monorepo is different from standalone?

This error usually means you're missing a Router in one way or another. Could you share the output of git ls-tree -r --name-only HEAD | tree --fromfile from the broken project so we could see what files you have there?
A thing to look for is if you have a src/main.tsx and what the contents of that are. This would conflict with our default Router being included.
It seems unlikely that this is specific to use in a monorepo though in the examples dir.

@tylersayshi do you mean from the monorepo project or the waku project within the monorepo?
from within the waku project it's:
git ls-tree -r --name-only HEAD | tree --fromfile
.
├── .gitignore
├── package.json
├── postcss.config.js
├── public
│   └── images
│       └── favicon.png
├── src
│   ├── components
│   │   ├── counter.tsx
│   │   ├── footer.tsx
│   │   └── header.tsx
│   ├── pages
│   │   ├── _layout.tsx
│   │   ├── about.tsx
│   │   └── index.tsx
│   ├── pages.gen.ts
│   └── styles.css
├── tailwind.config.js
└── tsconfig.json

6 directories, 14 files

@Emsu I misspoke in my initial message. the issue @dai-shi shared above is something I need to look into now. I'll update when I make progress on this, sorry

@tylersayshi gotcha I'll close this out in favor of the referenced issues then.

... actually @Emsu I am looking more closely now and I think your issue is unique. Can you re-open? sorry for my confusion.
Is this project open source or are you able to give any details for how to reproduce?

@Emsu are you able to retry with<EMAIL_ADDRESS>@rmarscher saw the same error in their monorepo and were able to resolve after upgrading.
if no luck with that, I’m happy to take a deeper look if we can reproduce it somehow. Thanks!

I found that https://github.com/dai-shi/waku/issues/1056 was caused by running in a monorepo. It makes the import paths include the absolute system file path instead of the relative project path because the import is outside the root of the project.

Thanks @rmarscher for looking into it.
If #1056 was the same issue as this one, which makes sense because it can cause Error: Missing Root component, it should be already solved in the main branch.
Would anyone like to give a try and see if it's really solved?
Maybe it's easier to use a codesandbox build from #1065.
https://ci.codesandbox.io/status/dai-shi/waku/pr/1065/builds/570340
npm i https://pkg.csb.dev/dai-shi/waku/commit/09431e6c/waku

Please try v0.21.9. If any problem exists with a monorepo setup, please open a new issue.

Let's keep this open while #1079 is in progress.


MIgrations

After running php artisan migrate:refresh --seed during development I then have to run php artisan panel:install to install the panel tables and then php artisan db:seed --class=PanelSeeder which sets up my links. If the migrations were copied to the migrations folder they would then be included with the migrate:refresh command and I could then add PanelSeeder to DatabaseSeeder and refresh my database in a single command. Would you be interested in a pull request that updated the ServiceProvider and docs to do it this way instead?
Now I have written this I see I can just copy them myself manually but think the above is the more 'standard' way of doing it. Actually you can't copy them as the autoloader doesn't like 2 classes of the same name.

Anyone?

I would appreciate a PR

@serverfire would this be likely to get merged?

@warksit sorry for late replay , Sure please send the pull request , thank you

+1 for this improvement

Close issue if solved please.


Update ray version in env_omnisci.yml

That seems like outdated https://github.com/modin-project/modin/blob/b68c89bfb242f3709b4a8cc552b7b3b04b4f2ff8/requirements/env_omnisci.yml#L18

I was hoping we will not need this anymore due to #3326


fixed issue in Pegasus K_4 embeddings

Reported by an internal user.  Thanks, user!

intentional dupe served its purpose :( what's up, CircleCI?


nnn: 4.2 → 4.3

Motivation for this change
Changelog
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 139921 run on x86_64-darwin 1

1 package built:

nnn

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

1 package built:

nnn


Add basic CSS and javascript

Objectives

make the static webpage  more likeable

Styling

[ ] Change font
[ ] Align elements (put in the center)
[ ] dark mode / light mode
[ ] Footer that link to TEM telegram group / medium ... etc

Interaction

[ ] Link to github for creating new issue (with an issue template to request translation for new terms)
[ ] filtering based on tags

Exposing the Telegram group link might be risky and adds much moderation effort. We should avoid adding the telegram link.
I like all the rest of the proposed features. Those sound so great!

updated it to link to twitter instead!


merge with fb upstream cra 4.0

@aruniverse I'll merge upstream master into our master branch now. Plus open the PR for updating the docs to match what I outlined in #8.

Updated the master branch to match upstream.

Abandoning in favor of #24


Investigate two generated extensions without compile error

Currently we have two ParametersLowLevelClientBuilderExtensions.cs at feature/v3 https://github.com/Azure/autorest.csharp/tree/feature/v3/test/TestProjects/Parameters-LowLevel/src/Generated

How could this happen and why compile succeed?

A new ParametersLowLevelClientBuilderExtension.cs was added in https://github.com/Azure/autorest.csharp/pull/3676. Maybe the windows/linux different behavior to handle the name, windows case-insensitive

Only one left now.


Deeper integration with talisman

@JamesPrestonZA is looking into Talisman / Subwallet so we can pick the preferred one.


Navigate to profile page from anywhere but home fails

navigation need to be more direct right now it just stacks urls.

Changed code to as={Link} with path reference
<NavDropdown.Item as={Link} to={/profile/${user}}>
Profile Page
</NavDropdown.Item>


How to run AtaGAN on a GPU

Orion version: 0.3.1
Python version: 3.7.12
Operating System: windows
tensorflow: 1.15.5

Description
Module Not Found Error: No module named ‘tensorflow.contrib
What I Did
This error is located to cudnn_recurrent.py this file
before：from tensorflow  .contrib.cudnn_rnn.python.ops import cudnn_rnn_ops
self._cudnn_lstm= cudnn_rnn_ops.CuDNNLSTM
after:
import tensorflow as tf
self._cudnn_lstm=tf.compat.v1.keras.layers.CuDNNLSTM
File "D:/xcy/anomaly-detection/try.py", line 58, in <module>
    anomalies = orion.fit_detect(df)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\orion\core.py", line 184, in fit_detect
    result = self._detect(self._mlpipeline.fit, data, visualization, **kwargs)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\orion\core.py", line 113, in _detect
    outputs = method(data, output_=outputs_spec, **kwargs)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\mlblocks\mlpipeline.py", line 649, in fit
    self._fit_block(block, block_name, context)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\mlblocks\mlpipeline.py", line 549, in _fit_block
    block.fit(**fit_args)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\mlblocks\mlblock.py", line 302, in fit
    getattr(self.instance, self.fit_method)(**fit_kwargs)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\orion\primitives\tadgan.py", line 292, in fit
    self._build_tadgan(**kwargs)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\orion\primitives\tadgan.py", line 177, in _build_tadgan
    self.encoder_input_shape)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\orion\primitives\tadgan.py", line 110, in _build_model
    return Model(x, model(x))
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\keras\engine\base_layer.py", line 463, in __call__
    self.build(unpack_singleton(input_shapes))
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\keras\engine\sequential.py", line 222, in build
    x = layer(x)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\keras\layers\wrappers.py", line 437, in __call__
    return super(Bidirectional, self).__call__(inputs, **kwargs)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\keras\engine\base_layer.py", line 463, in __call__
    self.build(unpack_singleton(input_shapes))
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\keras\layers\wrappers.py", line 581, in build
    self.forward_layer.build(input_shape)
  File "E:\anaconda\envs\xcy_torchcuda\lib\site-packages\keras\layers\cudnn_recurrent.py", line 435, in build
    input_mode='linear_input')
TypeError: __init__() missing 1 required positional argument: 'units'

I would be very grateful if you could help me

Hi @xuchunyu123, I have never personally encountered this error but I would generally assert that you have the proper TF, CUDA, and CuDNN versions.
The exact configuration of CUDA depends on your system. Here are some resources to guide you through the setup https://www.tensorflow.org/install/gpu and https://www.tensorflow.org/install/source#gpu. Also keep in mind that Orion is currently using tensorflow 1. My personal setup is to have tensorflow==1.14 and tensorflow-gpu==1.14 with CUDA 10.0.
If you still have errors, please share the code snippet you used such that I can try to reproduce this!
Hope this helps!


nginxModules.http_proxy_connect_module: 2020.07.24 -> 2021-11-19

Motivation for this change
The http_proxy_connect_module in nginxModules checks the version of nginx before installing. nginx in NixOS/nixpkgs 21.05, 21.11, and unstable is at 1.20, which the currently available http_proxy_connect_module configs don't support.
Added an http_proxy_connect_module_v20, which uses the same patch file as previous versions, according to the docs here. This allows the module to be installed with the current version of nginx.
Updated the revision of http_proxy_connect module to the most recent, as well.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
note: no binaries in this change, but built nginx v1.20 with this module and verified that it runs with an example config that enables proxying, and verified that proxying works via curl
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Already on master.


About evaluate of Depth anything

Hi, thank you for your great work.
I want to know the evaluations of depth anything, like AbsRel is based on relative depth or metric depth?

Hi, when evaluating our relative depth model, the metrics like AbsRel are computed based on relative depth. When evaluating the metric depth model, the metrics are computed based on metric depth.

@LiheYoung Thank you for your reply! I have another question, when evaluating on relative depth dataset, should I normalize the relative depth dataset to 0-1?? And then metrics like AbsRel are computed?


Test data

Coverage decreased (-0.02%) to 95.677% when pulling 2dfc68fad36166fa4fcee7461043ad464245bf4a on test-data into 623db0487e064d8631e028d78db103c98b19f058 on master.


cb7210 ISRx behavior

Hi, more of a question than an issue, but :
in src/frontends/frontend_cb7210p2.vhd : lines 495+
when 1 => -- interrupt status 1
		host_data_bus_out_buffer(0) <= DI_interrupt and DI_interrupt_enable;
		host_data_bus_out_buffer(1) <= DO_interrupt and DO_interrupt_enable;
		...
		DI_interrupt <= DI_interrupt and not DI_interrupt_enable;

Shouldn't the ISR bits reflect the condition of the interrupt regardless of the enable bit ? I'm assuming the cb7210 would behave the same as the NAT7210 / NEC 7210 but I don't have any data on that.
NAT7210 docs describe it as "Bits in ISR1 are set and cleared regardless of the status of the Interrupt bits in IMR1."

[...] cb7210.2 user's guide is wrong

I found those comments amusing -- I'm sure they were the result of much head-scratching !
I noticed in some cases the NAT7210 ref manual was correct; but I understand you called this a "cb7210 frontend", not "generic 7210-compatible frontend". Did you notice serious discrepancies between cb7210 behavior and the original NEC part ?

The interrupt status behavior isn't based on the behavior of the cb7210.2, it's just something that seemed like the right thing to do at the time.  It was probably a mistake though, better to keep it simple and compatible.  Fixed in commit 8cc5b8a3d687c3663fd4ba5466afdd3c02ad052f


Loops: foreach

Example:
for x in iterable {
}

For iterable to be used in foreach it must implement __iter__.
iterable.__iter__ will return an iterator, which must implement __next__.
Iterators:
Probably will be a part of built-in types (e.g. IteratorType, Iterator)
Will not be copied in foreach, it will conform to standard copying rules though.


Fix #1339 (Win64 np.int64 slices)

This PR should fix #1339 and #1568.

:+1: - we should really backport this to v1.7.x. @rhattersley - thoughts?

Nice and simple - thanks. :+1:
I've sent you a quick test: https://github.com/ocefpaf/iris/pull/2

@pelson - tests? This isn't cartopy ... :stuck_out_tongue_winking_eye:

@pelson was way to quick for me to add @rhattersley tests PR :smile_cat:

we should really backport this to v1.7.x

Or just release 1.8?

we should really backport this to v1.7.x

Or just release 1.8?

On second thoughts, yes ... backport to 1.7.


Fix Connection.connection to return _ConnectionFairy as documented

Description
Fix Connection.connection to return _ConnectionFairy as documented.
https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.connection
Note that the tests won't pass until https://github.com/sqlalchemy/sqlalchemy2-stubs/pull/215/commits/620014f8ca49019395b6ff956dace70bd186763f is merged.
Checklist

This pull request is:

[x] A documentation / typographical error fix

Good to go, no issue or tests are needed

[ ] A short code fix

please include the issue number, and create an issue if none exists, which
must include a complete example of the issue.  one line code fixes without an
issue and demonstration will not be accepted.
Please include: Fixes: #<issue number> in the commit message
please include tests.   one line code fixes without tests will not be accepted.

[ ] A new feature implementation

please include the issue number, and create an issue if none exists, which must
include a complete example of how the feature would look.
Please include: Fixes: #<issue number> in the commit message
please include tests.

Have a nice day!

thanks

v0.0.2a23


ConsumerGroupStream Offset is not reliable for commit when topic is gzip

Questions?
Bug Report
I am using ConsumerGroupStream to consume a kafka topic with 10 partitions that is gzipped (compression.type=gzip). When looking at the stream of messages coming in I notice that after a certain point, the offset for the partition is reset to zero (0). The offset reaches a high level value between 50 and 9x and then goes back to zero. The data seems to be consumed properly (I have sequence numbers in my messages that never decrease) but the offset always resets. The result of this is that it I only commit messages in the lower range of 0-9x. Offsets greater than 9x are not presented to me so when my service restarts it reconsumes messages that have already been processed. If you set the topic to compression.type=uncompressed the offsets are ever-ascending as you'd expect.
Environment

Node version: 9.4.0
Kafka-node version: 2.6.1
Kafka version: kafka_2.11-<IP_ADDRESS>

For specific cases also provide

Number of Brokers: 1
Number partitions for topic: 10

Include Sample Code to reproduce behavior
   k.cgs.on('data', async (data) => {
      if (isClosed()) { // emits error after close, want to prevent it
        return
      }
      // const startTs = Date.now()
      console.log(data.partition,data.offset,data)
      await this.retryMesgHandling(data)
      // console.log(Date.now() - startTs) //3-13 ms, local cassandra, unique users, assets, yyyymmdd
    })

Output change of Offset
{ topic: 'Learner-Audits',
  value: '{"schema":"root~v2.0","time":"2018-05-14T03:22:14.000","source":"xxx:backend~v1.0:Events","id":"idhere94852","corrId":"corhere94852"}',
  offset: 90,
  partition: 0,
  highWaterOffset: 10000,
  key: null,
  timestamp: 2018-06-18T12:39:24.152Z }
{ topic: 'Learner-Audits',
  value: '{"schema":"root~v2.0","time":"2018-05-14T03:22:14.000","source":"xxx:backend~v1.0:Events","id":"idhere94862","corrId":"corhere94862"}',
  offset: 91,
  partition: 0,
  highWaterOffset: 10000,
  key: null,
  timestamp: 2018-06-18T12:39:24.152Z }
{ topic: 'Learner-Audits',
  value: '{"schema":"root~v2.0","time":"2018-05-14T03:22:14.000","source":xxx:backend~v1.0:Events""id":"idhere94872","corrId":"corhere94872"}',
  offset: 0,
  partition: 0,
  highWaterOffset: 10000,
  key: null,
  timestamp: 2018-06-18T12:39:24.153Z }
{ topic: 'Learner-Audits',
  value: '{"schema":"root~v2.0","time":"2018-05-14T03:22:14.000","source":"xxx:backend~v1.0:Events","id":"idhere94882","corrId":"corhere94882"}',
  offset: 1,
  partition: 0,
  highWaterOffset: 10000,
  key: null,
  timestamp: 2018-06-18T12:39:24.153Z }
{ topic: 'Learner-Audits',
  value: '{"schema":"root~v2.0","time":"2018-05-14T03:22:14.000","source":xxx:backend~v1.0:Events","id":"idhere94892","corrId":"corhere94892"}',
  offset: 2,
  partition: 0,
  highWaterOffset: 10000,
  key: null,
  timestamp: 2018-06-18T12:39:24.153Z }

Thanks for your contribution!

Any thoughts on this?

Hello, @tiermark have you tried using the latest version?


Extra/Less slices when UIcollectionView is scrolled

I am using this library to draw chart for datas available in UIcollectionView. When I scroll or refresh list old slices are changed to new (They contain more or less slices) and old slices are added in another cell chart

I am having the same issue


Performance tests added to address-index-api server

This change adds performance tests meant to test an instance of
address-index-api server.
These tests are ported over from registers-performance-tests repo.
The associated documentation shall be updated in subsequent changes.

Branch name does not confirm to convention. Closing.


separated dweight tests

Pre-review checklist
I have ensured that:

[ ] Code runs successfully in the development environment.
[ ] New code is tested to prove that it works. If not, justify reasoning.
[ ] New code is documented using type hinting and following the numpydoc docstring format.
[ ] New code follows the project naming standards.

Overview of changes

Post-review checklist
As I merge these changes, I have:

[ ] Updated the related Jira ticket, including approximate time spent (including review).
[ ] Moved the related Jira ticket to Done.

Pre-commit is sorted now, but tests are failing


Unable to create a docker-machine with devicemapper on VirtualBox (1.11.0)

I've recently upgraded our bare-metal machine to Linux fujitsu 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux and VirtualBox to 5.0.18r106667.
I can no longer create machines with storage driver devicemapper, docker.log says:
devmapper: Udev sync is not supported. This will lead to data loss and unexpected behavior

See gist for full debug log output (IPs in both logs are different, since I tried this multiple times).
root@fujitsu:~# docker-machine version
docker-machine version 0.7.0, build a650a40

Related: https://github.com/docker/docker/issues/14224
AFAIR I was able to use devicemapper with 1.10.x and VirtualBox 4.x - I needed that, because I had issues with aufs on large git clones.

It's not supported anymore, sorry.  Try overlay, it's pretty good.


Create docker container

Create docker container which has
egeria base image (set to same level as dependencies)
Both of the connectors here (resource & integration)
Add support to actions:
merge
release
Following the same approach as used for HMS, Strimzi, and event schema repositories.
The intent is to make it easier to deploy a specific container for a dedicated egeria platform and server.
This request was brought up in the cloud native workgroup for those other repositories as offering value short term.
It's still possible to use the jar directly, and there is still a request for an uber-container with all connectors.

Docker build now available

Base image used is the level of egeria the connector is built against. This is done by checking the version of open-connector-framework dependency in the integration connector
Version of container published (tag) is taken from the overal project version (latest is added for builds from main, ie snapshots)


Differentiable Shallow Water PDE Solver Example

Dear S4TF team,
To follow up on my post on the mailing list I've turned my differentiable shallow water PDE solver gist into an example. I did some polishing of the source code, added a CLI interface and adapted the readme file.
As usual, naming is difficult ;) I did my best to look around and try to pick a name that's consistent with the other folders, files and code in the repo. Nevertheless, if anyone has a better location or name I'll be happy to amend the commit.
All of the dependencies that were not already needed by something else here (and therefore already listed in Package.swift) are gone. I figured it's not worth the hassle to introduce new ones required just by this example.
Besides the above, I have a few points I'd like to discuss:

The example contains a simple benchmark of the 3 solver implementations in forward mode. The results are not very informative yet because I had to navigate around a few bugs. So I'm not sure whether you are interested in incorporating them into BenchmarksCore target or if it's better to wait.

I'm having trouble with CMake builds. I've tried my best to have the example built with this monster, but no luck so far. I'd really appreciate any help with taming the beast. The problematic part is the dependency on Benchmark. When I comment out the benchmarking functionality in `main.swift, everything works well.
I've noticed that Benchmark is also used by parts of the codebase. Interestingly enough none of them can be currently built with CMake. So one idea is that if someone adds CMake support to, for instance, BenchmarksCore, I could then cowardly piggyback on this work and copy-paste the relevant parts of CMakeLists.txt file.

Cheers,
Vojta

I did a quick pass where I added copyright headers and ran the files through swift-format just to get the formatting right. The --benchmark command was triggering problems due to the nested argument parsing with the benchmarks and the surrounding application argument parsing, so I changed this to manually use a BenchmarkRunner. I also formatted the benchmark results using milliseconds, which makes them easier to read.
I'm currently waiting on an upstream fix to swift-benchmark and then I can add the proper CMake files to get this to build with swift-benchmark. That'll also enable it for other use in the project.
Interestingly, a recent workaround for the materialization of extra zeroes during our backwards passes appears to hugely impact your benchmarks. Here are your benchmarks on my GTX 1080-equipped Ubuntu 18.04 machine using the 0.11 release toolchain:
name                                        time         std        iterations warmup
-------------------------------------------------------------------------------------------
Shallow Water PDE Solver.Array Loop         19338.070 ms ±   1.41 %         10 39143.724 ms
Shallow Water PDE Solver.Tensor Slice         452.951 ms ±   1.47 %         10  4386.044 ms
Shallow Water PDE Solver.Tensor Slice (XLA)  1092.033 ms ±   2.31 %         10  2586.686 ms

and those  same benchmarks using the latest nightly toolchain:
name                                        time        std        iterations warmup
-----------------------------------------------------------------------------------------
Shallow Water PDE Solver.Array Loop          795.390 ms ±   0.16 %         10 1598.568 ms
Shallow Water PDE Solver.Tensor Slice        453.472 ms ±   1.35 %         10 2139.348 ms
Shallow Water PDE Solver.Tensor Slice (XLA) 1099.160 ms ±   0.91 %         10 2576.604 ms

The Array Loop is ~24X faster after that workaround got into the toolchain.
I also was experimenting with simplifying your discrete Laplacian operator as a 3x3 convolution, rather than a series of slices. You can replace the Delta function in TensorSliceSolution.swift with the following:
    @differentiable
    private func Δ(_ u: Tensor<Float>) -> Tensor<Float> {
        assert(u.shape.allSatisfy{ $0 > 2 })
        assert(u.rank == 2)
        let finiteDifference = depthwiseConv2D(
            u.expandingShape(at: [0, 3]), filter: laplaceKernel, strides: (1, 1, 1, 1), padding: .valid)
        let Δu = finiteDifference / Δx / Δx
        return Δu.squeezingShape(at: [0, 3])
    }

where laplaceKernel has been defined in your inits as
        self.laplaceKernel = Tensor<Float>(
            shape: [3, 3, 1, 1], scalars: [0.0, 1.0, 0.0, 1.0, -4.0, 1.0, 0.0, 1.0, 0.0], on: u0.device)

That produces the same results as your slicing, and is ~10% faster in eager mode. However, it's 60% slower than the slicing for X10, and I don't know why. It should be a simpler operation. I hesitated on replacing your implementation with that for this reason.
If I can get the CMake build working, I'd be glad to pull this in after that. We can update the image writing with direct animated GIFs once my other PR is in, and see what we can learn from trying to optimize this.

Thinking about it, the performance difference between the 3x3 convolution and your separate slices does make sense. The discrete Laplacian calculation only requires sampling from and performing math involving the center pixel and four surrounding pixels (up, down, left, right). You do this explicitly in your slicing. In my 3x3 convolution, I'm also sampling from the four corner pixels and just multiplying them by 0. This is 9 pixels per convolution, vs. the 5 pixels needed, an 80% increase.
Thus, if XLA was optimizing your calculation well, a 60% increase in calculation time when switching to a 3x3 convolution would make sense. Our current eager mode implementation is very sensitive to the number of operations dispatched, so it also makes sense that the benefit of compressing this into a single operation could outweigh the increase in calculations performed.
Ideally, a custom kernel that only operated on the center pixels and the four cardinal directions in a single dispatch would be the fastest path here. That might be worth exploring in the future.

Thanks for the code review and the benchmarks, Brad.
With the nightly build I reproduced your results on macOS, so everything is good. I thought it would be nice to have a convolution based solution. The readme mentions it anyway so unless you have any objections, I just pushed your convolution based solver to the PR. It's located in TensorConvSolution.swift.
Besides that I also noticed that some of the implementation used a different α damping constant. This lead to slightly different results so I fixed that too.
Just out of curiosity I also wrote a C Loop solver. Basically a rewrite of the Array Loop solver into C. It can serve as a performance baseline. Source code is in this gist because I don't think it belongs in this repo.
Here are the results I got on macOS (MacBook Pro 16", 2019, 2.6Ghz Intel i7 CPU) with DEVELOPMENT-2020-09-16-a toolchain:
name                                        time         std        iterations warmup
-------------------------------------------------------------------------------------------
Shallow Water PDE Solver.C Loop              355.480 ms ±   4.35 %         10       nan ms
Shallow Water PDE Solver.Array Loop          665.574 ms ±   1.52 %         10  1298.180 ms
Shallow Water PDE Solver.Tensor Slice        536.672 ms ±   4.60 %         10  1201.721 ms
Shallow Water PDE Solver.Tensor Slice (XLA)  640.667 ms ±   1.91 %         10  1470.422 ms
Shallow Water PDE Solver.Tensor Conv        7502.167 ms ±   0.21 %         10 14969.662 ms
Shallow Water PDE Solver.Tensor Conv (XLA)   562.674 ms ±   0.25 %         10  1333.303 ms

I think the numbers are very encouraging. S4TF toolchain is about 2x slower than C. Not shabby at all!


fix: could not decode ABIs when missing leading zeroes

What I did
boa gives us log data  that is not always padded with leading zeroes.
i dont see why i cant just pad it myself and move on...
NOTE: We won't need this if this merges instead: https://github.com/ethereum/eth-abi/pull/240
How I did it
make a custom decoder for uint25
question: is this supposed to happen even when strict=False? ill ask the snake charmers...
How to verify it
see my test
Checklist

[ ] All changes are completed
[ ] New test cases have been added
[ ] Documentation has been updated

Have you seen it with any other data types?

not with strict=False, that is why im hopin my eth-abi PR goes through


Switch to Hardhat's "SignerWithAddress"

Hardhat introduced the SignerWithAddress, which is like the classical Ethers Signer but with an "address" field. The advantage is not having to call the getAddress() Promise anymore.
https://github.com/nomiclabs/hardhat/blob/hardhat-core-v2.0.7/packages/hardhat-ethers/src/signers.ts

Implemented in c61c929.

Implemented in c61c929.


Message Event cleanup

Just making message events line up with the rest of the library.

This is tied to #62 and #60


manifest: some setting are only available on Windows

Some gfxreconstruct settings are only available on Windows. The layer manifest schema support this as a result the Windows only settings won't be visible on other OS.

CI gfxreconstruct build queued with queue ID 9211.

CI gfxreconstruct build # 55 running.

CI gfxreconstruct build # 55 passed.

Looks good, thanks!


(b1.8-pre1 - b1.9-pre6) Title screen panorama overlay

From the first Beta 1.8 pre-release up to the last beta 1.9 prerelease, the game had a darker panorama overlay than what would follow (#32) - I'm not sure exactly why, but this is ultimately a distinct texture nonetheless.

Code is as follows:
drawGradientRect(0, 0, this.width, this.height, -1426063361, 0xFFFFFF);
drawGradientRect(0, 0, this.width, this.height, 0, -1442840576);


Regex working in Python but not in organize, how to debug?

TL;DR: So, to summarize, in Windows(10) Poppler needs to be installed for PDFs to work.
A verbose switch would be nice. And especially for the file_content filter the option to output the extracted text would be nice.
Update: I tracked down one problem.
The exception handling in FileContent.matches swallows the textract error. If I change the code to output the exception I get:
>>> Before textract call
The command `pdftotext C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\2020-09-07 Rechnung.pdf -` failed with exit code 127
------------- stdout -------------
------------- stderr -------------

These issues describe the problem:
https://github.com/deanmalmgren/textract/issues/229
https://github.com/deanmalmgren/textract/issues/26
And here especially: https://github.com/deanmalmgren/textract/issues/26#issuecomment-516997469
It seems, the fallback to pdfminer.six never happens and therefore textract throws an exception which organize just swallows and the pdfs get ignored.
So a simple
scoop install poppler

fixed that issue for me. Now I'll try to figure out why the damn regexes don't work :/
Update2: The text file was stored in UTF-16 LE. It was simply the output of pdfminer.six piped to a file. Saving it as UTF-8 caused the filecontent filter to work correctly.
Update3: It turns out that pdfminer extracts a different text than poppler (different layout/order) therefore a different regex does the trick.
--------------------------- Original Issue ------------------------------------
Thank you for this great tool :)
I'm trying to set up some filtering rules with file contents of PDFS and I'm having some trouble.
Is there any way to debug/get some more information why a regex is not matching anything?
I ran pdfminer.six on a sample pdf to get the contents and created this regex: https://regex101.com/r/hHloIT/1/
and it does what I expect, but when I use it in the config.yaml, nothing happens..
rules:
  - folders: 'C:\Users\me\OneDrive\Archive\#in\Rechnung'
    filters:
      - extension: pdf
      - filecontent: '(?s).*Company.*Datum\s*(?P<day>\d{2})-(?P<month>\d{2})-(?P<year>\d{4}).*Rechnungsbetrag:\s*(?P<net>\d+,\d{2})\s*(?P<tax>\d+,\d{2})\s*(?P<sum>\d+,\d{2}).*'
    actions:
      - move:
          dest: 'C:\Users\me\OneDrive\Archive\#processed\{filecontent.year}-{filecontent.month}-{filecontent.day} Rechnung Company {filecontent.sum}.pdf'
          overwrite: false
          counter_separator: '-'

Any advice woud be appreciated.
Edit: This one works as well
I don't think the problem is the regex. Maybe organize looks at different text..?
Edit 2: I changed the source to output some info while running 'organize sim'
I have 3 files now:
2020-09-02 Rechnung.pdf
2020-09-07 Rechnung.pdf
rechnung.txt

rechnung.txt contains the extracted text from the pdfs (using pdfminer.six)
Then I have this config:
rules:
  - folders: 'C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung'
    filters:
      - extension: txt
      - filecontent: 'Rechnung'
    actions:
      - move:
          dest: 'C:\Users\me\OneDrive\Archiv\#Eingang-verarbeitet\'
          overwrite: false
          counter_separator: '-'

  # test dummy
  - folders: 'C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung'
    filters:
      - extension: txt
      - filecontent: 'Company.*Datum\s*(?P<day>\d{2})-(?P<month>\d{2})-(?P<year>\d{4}).*Rechnungsbetrag:\s*(?P<net>\d+,\d{2})\s*(?P<tax>\d+,\d{2})\s*(?P<sum>\d+,\d{2})'
    actions:
      - move:
          dest: 'C:\Users\me\OneDrive\Archiv\#Eingang-verarbeitet\{filecontent.year}-{filecontent.month}-{filecontent.day} Rechnung Company {filecontent.sum}.txt'
          overwrite: false
          counter_separator: '-'

  # verschiebe Company Rechnungen
  - folders: 'C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung'
    filters:
      - extension: pdf
      - filecontent: 'Company.*Datum\s*(?P<day>\d{2})-(?P<month>\d{2})-(?P<year>\d{4}).*Rechnungsbetrag:\s*(?P<net>\d+,\d{2})\s*(?P<tax>\d+,\d{2})\s*(?P<sum>\d+,\d{2})'
    actions:
      - move:
          dest: 'C:\Users\me\OneDrive\Archiv\#Eingang-verarbeitet\{filecontent.year}-{filecontent.month}-{filecontent.day} Rechnung Company {filecontent.sum}.pdf'
          overwrite: false
          counter_separator: '-'

and this is the rechnung.txt
>Company

Company

Rechnung

Datum

02-09-2020

Produktbeschreibung

Thingy

Anzahl

1

Preis

43,10

Rabatt  MwSt.

Nettosumme

(1)  Ç

43,10

Zahlung bitte innerhalb von 30 Tagen ohne Abzug.

Nettosumme:
MwSt. (1) /16,00%

Rechnungsbetrag:

43,10

06,90

50,00

and here is the output of 'organize sim' (with my additions:
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\2020-09-02 Rechnung.pdf
Result: False
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\2020-09-02 Rechnung.pdf
Result: False
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\2020-09-02 Rechnung.pdf
Result: True
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\2020-09-07 Rechnung.pdf
Result: False
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\2020-09-07 Rechnung.pdf
Result: False
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\2020-09-07 Rechnung.pdf
Result: True
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\rechnung.txt
Result: True
FileContent of: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\rechnung.txt
Pattern: Rechnung
Search result: None
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\rechnung.txt
Result: True
FileContent of: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\rechnung.txt
Pattern: Company.*Datum\s*(?P<day>\d{2})-(?P<month>\d{2})-(?P<year>\d{4}).*Rechnungsbetrag:\s*(?P<net>\d+,\d{2})\s*(?P<tax>\d+,\d{2})\s*(?P<sum>\d+,\d{2})
Search result: None
Extension check: C:\Users\me\OneDrive\Archiv\#Eingang\Rechnung\rechnung.txt
Result: False
Nothing to do.

I have to admit I am confused. I don't see any filecontent checks being done on the pdfs even though they each passed the extension filter once. Also, the pattern in the.txt file is not found.. This is unexpected.

So, to summarize, in Windows(10) Poppler needs to be installed for PDFs to work.

I stumbled upon this as well. It would be nice to include this in the documentation, akin to https://pdf2image.readthedocs.io/en/latest/installation.html#windows


Attach leaks a goroutine

What happened?
We print the active goroutines after each integration test. It looks like that the util.CopyDetachable still leaves a running goroutine open:
2022-07-20T14:16:05.7893221Z 2 @ 0x44c076 0x45d112 0x4b882e 0x4b92e5 0x654416 0x6dc739 0x47dfc1
2022-07-20T14:16:05.7893648Z #	0x4b882d	io.(*pipe).read+0x14d										/opt/hostedtoolcache/go/1.18.4/x64/src/io/pipe.go:57
2022-07-20T14:16:05.7894140Z #	0x4b92e4	io.(*PipeReader).Read+0x64									/opt/hostedtoolcache/go/1.18.4/x64/src/io/pipe.go:136
2022-07-20T14:16:05.7895004Z #	0x654415	github.com/containers/common/pkg/util.CopyDetachable+0xb5					/home/runner/go/pkg/mod/github.com/containers/common@v0.48.1-0.20220705175712-dd1c331887b9/pkg/util/copy.go:16
2022-07-20T14:16:05.7895944Z #	0x6dc738	github.com/containers/conmon-rs/pkg/client.(*ConmonClient).setupStdioChannels.func2+0xb8	/home/runner/work/conmon-rs/conmon-rs/pkg/client/attach.go:201

https://github.com/containers/conmon-rs/blob/13d4828464b72d0c734643c5ce405dbb60fbb6fe/pkg/client/attach.go#L198-L204
We should find a way to cleanup the goroutine on server shutdown as well.
What did you expect to happen?
No running goroutines for attach after the integration tests.
How can we reproduce it (as minimally and precisely as possible)?
Running the integration tests reveals the issue by printing the goroutines at the end.
Anything else we need to know?
No
conmon-rs version

$ conmonrs --version
version: 0.1.0-dev
tag: none
commit: 68252d0373b8e262bdf7ff8780fb2b5ab6f66c29
build: 2022-07-20 14:13:13 +00:00
rustc 1.62.1 (e092d0b6b 2022-07-16)

OS version
Not relevant
Additional environment details (AWS, VirtualBox, physical, etc.)
No

Is conn closed?
Looks like it blocks on read() and I would expect read to return once the connection is closed.

On a second look not conn must be closed but rather cfg.Streams.Stdin since we read from there.

@Luap99 yeah we also block on read in the tests, but I see that as not critical:
https://github.com/containers/conmon-rs/blob/cc1ea2314381a57b7fcc705121c772a90eed5e19/pkg/client/suite_test.go#L379-L396
Do you consider working on a fix for that?

I assume cfg.Streams.Stdin is supposed to be closed by the caller, i.e. the test here?
Also the goroutines in the ginkgo tests need a defer GinkgoRecover() at the top in order to work properly, https://onsi.github.io/ginkgo/#mental-model-how-ginkgo-handles-failure

I know next to nothing about the conmon-rs internal but the test is not working.
change the testAttach function to in order to actually make sure it is executed:
func testAttach(stdinWrite io.Writer, stdoutRead, stderrRead io.Reader) {
	wg := &sync.WaitGroup{}
	wg.Add(3)
	// Stdin
	stdoutBuf := bufio.NewReader(stdoutRead)
	stderrBuf := bufio.NewReader(stderrRead)
	go func() {
		defer GinkgoRecover()
		defer wg.Done()
		_, err := fmt.Fprintf(stdinWrite, "/busybox echo Hello world\r")
		Expect(err).To(BeNil())

		_, err = fmt.Fprintf(stdinWrite, "/busybox echo Hello world >&2\r\n")
		Expect(err).To(BeNil())
		fmt.Println("stdin done")
	}()

	go func() {
		defer GinkgoRecover()
		defer wg.Done()

		// Stdout test
		line, err := stdoutBuf.ReadString('\n')
		Expect(err).To(BeNil())
		fmt.Println(line)
		Expect(line).To(ContainSubstring("Hello world"))

		fmt.Println("stdout done")
	}()

	go func() {
		defer GinkgoRecover()
		defer wg.Done()
		line, err := stderrBuf.ReadString('\n')
		Expect(err).To(BeNil())
		fmt.Println(line)
		Expect(line).To(ContainSubstring("Hello world"))

		fmt.Println("stderr done")
	}()
	wg.Wait()
}

There seems to be at least two problems that I can see:

the terminal test cannot work with both stdour/err since a terminal only uses one stream.
It is failing with and just hangs.

2022-07-21T14:47:14.725434Z ERROR backend:create_container{container_id="7b5d1daad76b330d663e0cb73524170cff34f98a5a4c417ac4455126f5be6927" uuid="17e3bede-4368-4a3e-a2cf-a63e9d39d137"}:listen:read_loop: conmon::terminal: 210: Stdout read loop failure: write to attach endpoints: write to attach endpoint: Broken pipe (os error 32)

The test without terminal read the input but never sends any output back and therefore also hangs

@Luap99 thank you for the investigations here. I think we can split-up the tests to test the terminal / non terminal cases in a more separated fashion.

I think the tests are still broken, even with https://github.com/containers/conmon-rs/pull/579. I have to dig more into that.


BUG: pyproject.toml causes conflict in 32-bit Windows and pip install to fail

Describe your issue.
I'm getting ERROR: ResolutionImpossible while trying to install an older version of scipy (1.9.1)
It gives the following report on conflicting dependencies:
The conflict is caused by:
    The user requested numpy==1.22.3
    The user requested numpy==1.21.6

Looking at the pyproject.toml file in the repo (since version 1.9.1)
35  "numpy==1.22.3; python_version=='3.10' and platform_system=='Windows' and platform_python_implementation != 'PyPy'",
.
37  # default numpy requirements
.
.
42 "numpy==1.21.6; python_version=='3.10' and (platform_system!='Windows' and platform_machine!='loongarch64') and platform_python_implementation != 'PyPy'",

It seems to me it asks for version 1.22.3 of numpy if you're using Windows (line 35) but on line 42 if you're not running 64-bit and Windows (loongarch64) it asks for version 1.21.6 as well. This would cause the conflict that I'm getting during the installation. It should make any Windows 32-bit Windows installation conflict and fail. Version 1.9.1 of Scipy does have the relevant wheel published it should be making use of it instead. This code is still current. It seems to have a bug with 32-bit installations on Windows systems.

      The conflict is caused by:
          The user requested numpy==1.22.3
          The user requested numpy==1.21.6

      To fix this you could try to:
      1. loosen the range of package versions you've specified
      2. remove package versions to allow pip attempt to solve the dependency conflict

      ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

SciPy/NumPy/Python version and system information
SciPy 1.9.1/NumPy 1.23.5/Python 3.10.10+/Windows 10 (32-bit operating system, x64-based processor)

Unfortunately dealing with those kinds of configuration in pyproject.toml is error prone. I think you're correct. However, this will probably be a won't fix as our current build chain is not set up to handle win32 (hence lack of win32 wheels for >= 1.9.2).
You might have luck with 1.9.0 or earlier.
If you can please consider moving to 64 bit wheels, 32 bit wheels have a low probability of appearing in the near future, due to difficulties with the build chain.


Add an e2etest for running distributed training TFJob

Fixes #842

This change is

Coverage decreased (-27.0001%) to 30.075% when pulling b84c6c1570b703004ac7f3419835fb6d1c4d4ed5 on richardsliu:dist_e2etest into abb3134bdc563c8da43866b8af13f490c2e4668b on kubeflow:master.


"Migrating from GitLab CI/CD to GitHub Actions" article uses Gitlab CI_COMMIT_REF_SLUG without equivalent Github variable

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/actions/migrating-to-github-actions/migrating-from-gitlab-cicd-to-github-actions#caching
What part(s) of the article would you like to see updated?
The article uses the following example for how to translate caching of workflow files:
image: node:latest

cache:
  key: $CI_COMMIT_REF_SLUG
  paths:
    - .npm/

There is no equivalent variable being shown for Github, instead the cache key is set to key: v1-npm-deps-${{ hashFiles('**/package-lock.json') }}.
I think it would be better to use an example, where there is actually an equivalent variable in Github.
Additional information
No response

@jeverling Thanks so much for opening an issue! I'll triage this for the team to take a look :eyes:

👋 @jeverling I'm not super familiar with GitLab CI/CD caching, but I think the GitLab example is shown that way because it's the recommended way of specifying the scope of a GitLab cache (i.e. to limit the cache access to the branch).
It doesn't have an equivalent GitHub variable because GitHub Actions caches are by default scoped to the branches they were created on (more info here).
So from a migration POV, the GitLab example shown is similar to the GitHub one in terms of the behavior for both systems.


Remove apply example from spread operator challenge.

The spread challenge uses .apply(), which hasn't (and I think isn't) been taught to campers yet.
Do we want to replace this with an example that doesn't throw a random new concept at campers?

Yes. I'm sure we can come up with a simple example of using spread for arguments.
Here is the MDN example
function sum(x, y, z) {
  return x + y + z;
}

const numbers = [1, 2, 3];

console.log(sum(...numbers)); // 6

They do also show apply but they can (and do) also link to the documentation for it.

I'd be fine with an example similar to MDN's.
We do specifically avoid external links in the curriculum content, so I'd prefer removing apply over keeping it and linking to the docs.

This has been sitting here for a bit. I'd like to open it up for contribution.
I think we could remove the apply example entirely, and rewrite the challenge to teach spread directly with the existing examples.

This is part of the legacy certification


depreciating authors.rst in favour of contributors.json

In order to track and acknowledge contributions to em.geosci.xyz, we have set up the contributors page (http://em.geosci.xyz/contributors.html). This is auto-built from the contributors.json file in the root of the em directory. This will allow us to acknowledge contributions throughout the site and have it properly linked back to information on you!
The structure is
{
    "lheagy":{
        "name":"Lindsey J. Heagy",
        "affiliation":"University of British Columbia",
        "location":"Vancouver, BC",
<EMAIL_ADDRESS>        "url":"http://lindseyjh.ca",
        "avatar":"https://avatars.githubusercontent.com/u/6361812?v=3",
        "ORCID":"0000-0002-1551-5926"
    }
}

A couple things to note:

the url and ORCID (http://orcid.org/) are optional.
the avatar can be a weblink to a photo or you can include a photo locally and put the file path there. The photo needs to be square, so please crop it. Please start an "images" directory in the root em if you would like to do this. Using a file path has not been rigorously tested, so let me know if you run into issues.

I would like to depreciate the AUTHORS.rst by the end of next week (Sept 23), so please add yourself to the contributors.json! If you run into any issues, or are unclear on how to do this, feel free to send me your info and I am happy to help out.

[x] @dougoldenburg
[x] @micmitch
[ ] @mikemcm
[x] @sgkang
[x] @fourndo
[ ] @dccowan
[ ] @lacmajedrez
[ ] @prhjiajie
[ ] @krisdavis
[ ] @DanielBild-Enkin
[ ] @dccowan
[x] @Pbellive
[ ] @sannatti
[ ] @grosenkj
[ ] @rowanc1

also @thast : you should add a picture :) (could use: http://simpeg.xyz/s/img/people/thibaut.jpg)

@ubcgif/developers : I will be removing the "AUTHORS.rst" at the end of the week - please add yourselves to "contributors.json"


board: arm64: mimx8mp/n/m: fix memory address bits length

Removed duplicated configuration items for CONFIG_ARM64_VA_BITS and CONFIG_ARM64_PA_BITS, and modify them to  be 36bit as SoC supports up to 34-bit address.
Signed-off-by: Jiafei Pan<EMAIL_ADDRESS>

Removed duplicated configuration items for CONFIG_ARM64_VA_BITS and CONFIG_ARM64_PA_BITS, and modify them to be 36bit as SoC supports up to 34-bit address.

Just out of curiosity, do you mean PA (34-bit address) here?

Removed duplicated configuration items for CONFIG_ARM64_VA_BITS and CONFIG_ARM64_PA_BITS, and modify them to be 36bit as SoC supports up to 34-bit address.

Just out of curiosity, do you mean PA (34-bit address) here?

Yes.


Media Concatenation Pipeline Naming Inconsistency

The concat bucket directory/file names do not match neither the MeetingId (this is convention for the capture bucket) nor the initial MediaPipelineId returned from invoking the Media Pipeline. Is this an issue with the way that the CreateMediaCapturePipelineCommand works?

Can you clarify a bit more? Are you trying to use CreateMediaCapturePipeline or CreateMediaConcatenationPipeline API?

Can you clarify a bit more? Are you trying to use CreateMediaCapturePipeline or CreateMediaConcatenationPipeline API?

I am using both, but my problem seems to be with the CreateMediaConcatenationPipeline API.
In eventBridge.ts the startConcat function triggered by Amazon EventBridge (when the media capture pipeline ends) invokes the CreateMediaConcatenationPipeline. From my understanding, this should be storing the files in the concat bucket with the directory/file names in the same convention of the capture bucket, however it seems to be creating and storing these files under a new UID.
The clarification I need is where does the UID/Name come from for the items in the concat bucket?
Hopefully this illustrates my issue and the expected behavior a little better:

https://docs.aws.amazon.com/chime-sdk/latest/dg/concat-folder-structure.html
It's based on the media pipeline id.

https://docs.aws.amazon.com/chime-sdk/latest/dg/concat-folder-structure.html
It's based on the media pipeline id.

This is what I had originally understood, but following the trail of original media pipeline creation through the creation of the media concat pipeline, the concatenated files do not exist under the given media pipeline id.
Log showing the media pipeline id after creating a meeting / media pipeline:

createConcatPipelineParams log from the startConcat function (eventBridge.ts/post-call lambda):

No match in the concat bucket. The concatenated data does exist, but under a different unique id.

https://docs.aws.amazon.com/chime-sdk/latest/dg/concat-folder-structure.html
It's based on the media pipeline id.

This is what I had originally understood, but following the trail of original media pipeline creation through the creation of the media concat pipeline, the concatenated files do not exist under the given media pipeline id.
Log showing the media pipeline id after creating a meeting / media pipeline:

createConcatPipelineParams log from the startConcat function (eventBridge.ts/post-call lambda):

No match in the concat bucket. The concatenated data does exist, but under a different unique id.

Can you check it against the concat pipeline id?  That looks like the capture pipeline id.


Run CI on MacOS latest

The macOS-12 environment is deprecated, consider switching to
macOS-13, macOS-14 (macos-latest) or macOS-15. For more details, see
https://github.com/actions/runner-images/issues/10721

The export path command has been copied from the output of the installer. I replaced the ENV section in the version check with an extra command, this makes it consistent with running the actual checks, and this way we can use the old $PATH instead of having to repeat its value.


Class lookup caching

Implement the class lookup in a way that it is actually working. Currently, the view helper drops the cache on each lookup.


Feat/biometrics

From discord:
With the delay there I started look at getting biometrics into the app.  I discovered that if we want to use the authentication that is baked into the secure storage on the devices, it will require that the seeds are saved with that flag on when we push them into the store.  This means that if we wait until later to introduce bio metrics, we will need to write code in order to migrate all of the seeds that a users has that aren't secured with biometrics.
That pushed me to think about if we could get this in prior to to our release, since it theoretically would be less work and less risk to do it now.  I had a POC working for it, but it unearthed a slight complication due to the fact that we are storing the seed meta data (wallet name,etc) in the secure store.  So when a user wants to see all the possible wallets, it would prompt them N times to authenticate.  This means that we needed to seperate the storage of the meta data from the mnemonic, so the meta data can live in non secure storage so the user doesn't have to authenticate to see a list of all wallets.
I have that working in the emulator now, but it was a relatively large change to all of the base wallet logic that we have been testing this whole time.
Risks:

Indexing between secure and normal storage gets out of sink
We are somehow storing a seed in the normal storage

Other info
This should work on devices with no-pin,pin or biometrics.  It has a fallback for devices that don't support or don't have these features set up.
Testing
Mainly around CRUD operations for the wallets

I have tested this in the emulator fos iOS (note the emulator doesn't simulate the auth correctly, so it uses the fallback)
I have tested on my device

I have not tested on android or android emulator.

closing in pref for #72


Production build added for the disable individual item feature

Hi can anyone merge this request as @jigneshchudasama  missed to add the production build

@CuppaLabs Can you please merge this PR? I forgot to add production build for the disable individual item feature which you have merged yesterday.

@CuppaLabs any update?

@CuppaLabs any update?

any update? @CuppaLabs

any update? @CuppaLabs

any update? @CuppaLabs

@CuppaLabs can you please merge this PR?


FAIL:  Service snap.microk8s.daemon-containerd is not running

Hi, I'm in China, so I have to set a proxy in microk8s because of the firewall.
I followed the guide to set the proxy.
When I run:
microk8s.kubectl get all --all-namespaces

The following was what I got:
NAMESPACE     NAME                                                  READY   STATUS    RESTARTS   AGE
kube-system   pod/heapster-v1.5.2-5c5498f57c-tn58j                  0/4     Pending   0          25m
kube-system   pod/kube-dns-6bfbdd666c-r4zgw                         0/3     Pending   0          25m
kube-system   pod/kubernetes-dashboard-6fd7f9c494-p6zrq             0/1     Pending   0          25m
kube-system   pod/monitoring-influxdb-grafana-v4-78777c64c8-rjrcl   0/2     Pending   0          25m

NAMESPACE     NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
default       service/kubernetes             ClusterIP   <IP_ADDRESS>    <none>        443/TCP             31m
kube-system   service/heapster               ClusterIP   <IP_ADDRESS>   <none>        80/TCP              25m
kube-system   service/kube-dns               ClusterIP   <IP_ADDRESS>   <none>        53/UDP,53/TCP       25m
kube-system   service/kubernetes-dashboard   ClusterIP   <IP_ADDRESS>   <none>        443/TCP             25m
kube-system   service/monitoring-grafana     ClusterIP   <IP_ADDRESS>   <none>        80/TCP              25m
kube-system   service/monitoring-influxdb    ClusterIP   <IP_ADDRESS>   <none>        8083/TCP,8086/TCP   25m

NAMESPACE     NAME                                             READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   deployment.apps/heapster-v1.5.2                  0/1     1            0           25m
kube-system   deployment.apps/kube-dns                         0/1     1            0           25m
kube-system   deployment.apps/kubernetes-dashboard             0/1     1            0           25m
kube-system   deployment.apps/monitoring-influxdb-grafana-v4   0/1     1            0           25m

NAMESPACE     NAME                                                        DESIRED   CURRENT   READY   AGE
kube-system   replicaset.apps/heapster-v1.5.2-5c5498f57c                  1         1         0       25m
kube-system   replicaset.apps/kube-dns-6bfbdd666c                         1         1         0       25m
kube-system   replicaset.apps/kubernetes-dashboard-6fd7f9c494             1         1         0       25m
kube-system   replicaset.apps/monitoring-influxdb-grafana-v4-78777c64c8   1         1         0       25m

So I run microk8s.inspect to see what was happening:
 FAIL:  Service snap.microk8s.daemon-containerd is not running
For more details look at: sudo journalctl -u snap.microk8s.daemon-containerd
  Service snap.microk8s.daemon-apiserver is running
  Service snap.microk8s.daemon-proxy is running
  Service snap.microk8s.daemon-kubelet is running
  Service snap.microk8s.daemon-scheduler is running
  Service snap.microk8s.daemon-controller-manager is running
  Service snap.microk8s.daemon-etcd is running
  Copy service arguments to the final report tarball
Inspecting AppArmor configuration
Gathering system info
  Copy network configuration to the final report tarball
  Copy processes list to the final report tarball
  Copy snap list to the final report tarball
  Inspect kubernetes cluster

I have no idea what's wrong with it, and here is the report inspection-report-20190330_215859.tar.gz.

I was wondering whether my proxy does not work, so I set the proxy on the terminal, just like:
export http_proxy=http://username:password@${ip-adress:port}
export https_proxy=http://username:password@${ip-adress:port}

Then I curl google.com and I got a response, so I think the proxy server is ok.

Hi @linxuyalun
Your containerd-env file should be only those two lines:
HTTP_PROXY="YOUR_HTTP_PROXY"
HTTPS_PROXY="YOUR_HTTPS_PROXY"

Remember to restart MicroK8s after you update that file.

It works now! Everything works well so far!
Thank you for your prompt reply!

For me Ubuntu 20.04.4 LTS (Focal Fossa), this two commands save my day:
sudo microk8s.refresh-certs --cert ca.crt
and
sudo microk8s.refresh-certs --cert server.crt


Move raw string management in string function

It should be more efficient as the check for 'r' is done only once '"' is found
Also added some code cleaning

These look good, thanks! (merged)