Datatable has jank and extreme memory usage with overflow

Details
Using the code here: https://gist.github.com/BrayFlex/9ce8efda576d1d9ccce1427deb8517b8
The container gets cutoff by the bottom of the cell with the long text but it doesn't display overflow errors it just makes the application lose frames and use a lot of memory. To avoid the jank I tested using less text so that the container doesn't get cutoff and that fixed the problem. However I got to this point by removing things one by one from my own application and I found that if all you do is remove the color from container it will run without jankyness even though it is still overflowing(?)

Tested with Flutter Web in Chrome Browser on the newest patch of Windows using Android Studio
Flutter 1.20.0-7.2.pre • channel beta
Tools • Dart 2.9.0 (build 2.9.0-21.2.beta)

Logs

Analyzing jank...
No issues found! (ran in 2.1s)

[√] Flutter (Channel beta, 1.20.0-7.2.pre, on Microsoft Windows [Version 10.0.18363.959], locale en-US)
    • Flutter version 1.20.0-7.2.pre at C:\Users\Brayden\Documents\SDK\flutter
    • Framework revision a2bde82fbd (12 days ago), 2020-07-18 15:16:35 -0700
    • Engine revision 60b269d898
    • Dart version 2.9.0 (build 2.9.0-21.2.beta)

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

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

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

[√] VS Code, 64-bit edition (version 1.46.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 3.12.2

[√] Connected device (3 available)
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome 84.0.4147.105
    • Edge (web)       • edge       • web-javascript • Microsoft Edge 81.0.416.81

• No issues found!

Hi @BrayFlex
I can reproduce jank on latestbut it's better on latestdev`, higher frame rate when using performance overlay widget

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      showPerformanceOverlay: true,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

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

DataTable generateDataTable() {
  var numOfColz = 10;
  var numOfRowz = 100;
  List<DataColumn> colz = [];
  List<DataRow> rowz = [];
  List<DataCell> cellz = [];
  DataRow currRow;
  colz = List.generate(
      numOfColz, (index) => new DataColumn(label: Text('Index: $index')));
  for (int r = 0; r < numOfRowz; r++) {
    for (int c = 0; c < numOfColz; c++) {
      cellz.add(DataCell(Container(
          width: 50,
          height: 100,
          child: Wrap(
            children: [
              // toggle between texts to show jank vs no jank
              Text('a full sentence of text.'),
//              Text('1 word.'),
              Container(
                width: 10,
                height: 10,
                padding: EdgeInsets.all(1.0),
                decoration: new BoxDecoration(
                  shape: BoxShape.rectangle,
                  border: null,
                  color: Colors.lightBlueAccent,
                  borderRadius: null,
                ),
              ),
            ],
          ))));
    }
    currRow = DataRow(cells: cellz);
    rowz.add(currRow);
    cellz = [];
  }
  var dt = DataTable(rows: rowz, columns: colz);
  return dt;
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: SingleChildScrollView(child: generateDataTable()),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, 1.21.0-1.0.pre, on Mac OS X 10.15.6 19G73, locale
    en-GB)
    • Flutter version 1.21.0-1.0.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision f25bd9c55c (2 weeks ago), 2020-07-14 20:26:01 -0400
    • Engine revision 99c2b3a245
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 20bf2fcf56)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • 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.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] 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 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (5 available)
    • SM M305F (mobile)      • 32003c30dc19668f          • android-arm64  •
      Android 10 (API 29)
    • Taha’s iPhone (mobile) • 00008020-001059882212002E • ios            • iOS
      13.6
    • macOS (desktop)        • macos                     • darwin-x64     • Mac
      OS X 10.15.6 19G73
    • Web Server (web)       • web-server                • web-javascript •
      Flutter Tools
    • Chrome (web)           • chrome                    • web-javascript •
      Google Chrome 84.0.4147.105

• No issues found!

Can you upgrade to dev and try again
flutter channel dev
flutter upgrade --force
flutter doctor -v
Thank you

Testing on dev channel gives me the same result.
Some non technical observations:

Larger the window size uses much more ram.
Resizing causes more jank than scrolling

Flutter Doctor

```
[√] Flutter (Channel dev, 1.21.0-1.0.pre, on Microsoft Windows [Version 10.0.18363.959], locale en-US)
    • Flutter version 1.21.0-1.0.pre at C:\Users\Brayden\Documents\SDK\flutter
    • Framework revision f25bd9c55c (3 weeks ago), 2020-07-14 20:26:01 -0400
    • Engine revision 99c2b3a245
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 20bf2fcf56)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at C:\Users\Brayden\AppData\Local\Android\sdk
• Platform android-29, build-tools 29.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 3.6)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 47.1.1
• Dart plugin version 192.8052
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
[√] VS Code, 64-bit edition (version 1.46.1)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension version 3.12.2
[√] Connected device (4 available)
• Mi 9T (mobile)   • b9c2725d   • android-arm64  • Android 10 (API 29)
• Web Server (web) • web-server • web-javascript • Flutter Tools
• Chrome (web)     • chrome     • web-javascript • Google Chrome 84.0.4147.105
• Edge (web)       • edge       • web-javascript • Microsoft Edge 81.0.416.81
• No issues found!
</details>

i can reproduce this on chrome

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      showPerformanceOverlay: true,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

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

DataTable generateDataTable() {
  var numOfColz = 10;
  var numOfRowz = 100;
  List<DataColumn> colz = [];
  List<DataRow> rowz = [];
  List<DataCell> cellz = [];
  DataRow currRow;
  colz = List.generate(
      numOfColz, (index) => new DataColumn(label: Text('Index: $index')));
  for (int r = 0; r < numOfRowz; r++) {
    for (int c = 0; c < numOfColz; c++) {
      cellz.add(DataCell(Container(
          width: 50,
          height: 100,
          child: Wrap(
            children: [
              // toggle between texts to show jank vs no jank
              Text('a full sentence of text.'),
//              Text('1 word.'),
              Container(
                width: 10,
                height: 10,
                padding: EdgeInsets.all(1.0),
                decoration: new BoxDecoration(
                  shape: BoxShape.rectangle,
                  border: null,
                  color: Colors.lightBlueAccent,
                  borderRadius: null,
                ),
              ),
            ],
          ))));
    }
    currRow = DataRow(cells: cellz);
    rowz.add(currRow);
    cellz = [];
  }
  var dt = DataTable(rows: rowz, columns: colz);
  return dt;
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: SingleChildScrollView(child: generateDataTable()),
    );
  }
}

flutter doctor -v
[√] Flutter (Channel master, 1.21.0-6.0.pre.160, on Microsoft Windows [Version 10.0.19041.388], locale en-US)
    • Flutter version 1.21.0-6.0.pre.160 at C:\Code\flutter
    • Framework revision 31ee51a302 (32 hours ago), 2020-08-03 17:27:21 -0700
    • Engine revision fa16c3d0ba
    • Dart version 2.10.0 (build 2.10.0-2.0.dev 0f0e04ec3a)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at C:\Code\sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = C:\Code\sdk
    • Java binary at: C:\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.6.5)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.6.30320.27
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.0)
    • Android Studio at C:\Code\android-studio
    • Flutter plugin version 48.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.47.3)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.13.1

[√] Connected device (3 available)
    • Windows (desktop) • windows    • windows-x64    • Microsoft Windows [Version 10.0.19041.388]
    • Web Server (web)  • web-server • web-javascript • Flutter Tools
    • Chrome (web)      • chrome     • web-javascript • Google Chrome 84.0.4147.105

• No issues found!

Does this happen both with --dart-define=FLUTTER_WEB_USE_SKIA=true and without it, or in just one of the modes?

no args
RAM caps out on my PC (8+gb) when scrolling and crashes browser when resizing
--profile --trace-skia
Same as no args
--dart-define=FLUTTER_WEB_USE_SKIA=true
Losing a few frames, slightly sluggish but RAM is kept below 1gb!

This will need profiling and tracing to see where the time is going.
In general I would recommend not overflowing since that means we're doing work the user doesn't see, but I understand from the comments above that overflowing isn't really the cause despite the current title, since it seems the problem goes away when the color is removed.

Datatable has poor performance because it doesn't build rows like a listview.builder, Datatable flattens all the rows, thus it doesn't performance well on large number of rows. You can create a custom DataTable using the linked scroll controller and a listview.builder that will perform wayy better

Based on @K-Rafiki's comment I'm relabeling this as a framework issue. On the web-engine side we can make a constant factor improvement at best by improving rendering performance in general, but that applies to all rendering, not data tables specifically. For the data table performance the fix is on the framework side.

This issue is reproducible on the latest stable and master channels. Verified on Samsung Galaxy Tab A7 Lite, Android 13 in profile mode.

Demo video
https://user-images.githubusercontent.com/104349824/234558196-5893ef76-050d-411d-9f91-4d187c0e979e.mov

Attaching JSON timeline trace: dart_devtools_2023-04-26_18_03_32.472.json.zip

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.7.12, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.7.12 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (2 days ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

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

[✓] Android Studio (version 2022.1)
    • 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.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/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.77.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.62.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 13 (API 33)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 112.0.5615.137

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[!] Flutter (Channel master, 3.10.0-12.0.pre.67, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.10.0-12.0.pre.67 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 53cba8fd49 (39 minutes ago), 2023-04-25 19:11:12 -0700
    • Engine revision b3cbf06784
    • Dart version 3.1.0 (build 3.1.0-42.0.dev)
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio Flamingo.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

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

[✓] Android Studio (version 2022.1)
    • 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.15+0-b2043.56-8887301)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio Flamingo.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/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.77.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.62.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 112.0.5615.137

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

! Doctor found issues in 1 category.

Looking at the original code sample reported for this, the DataTable is placed inside of a SingleChildScrollView. SingleChildScrollView does not lazily load children, and so the whole entire table is being built, including everything the user cannot see outside the bounds of the scrolling viewport.
The DataTable is not meant to be a scrolling widget.
If the desired effect is a table that scrolls in one dimension, I recommend a GridView.
If the desired effect is a table that scrolls in 2 dimensions, 2he TableView widget is now available as part of the two_dimensional_scrollables package.
Both the GridView and the TableView will lazily load the visible children for optimized performance.


Add TypeScript Guideline

Built upon the guideline PR by @fabioh8010 and @blazejkustra. Further iteration on https://github.com/Expensify/App/pull/21050
$ https://github.com/Expensify/App/issues/20623
I'm still doing proofreading and working on the details.
TODO List

Provide an example or more comments on the usage of Record<string, unknown>
Including the fact that this type doesn't restrict object keys to strings.
Provide another item on the cheatsheet of typing HOC
Copy the section on file organization from the original PR

usage of tsx

add an item on const assertion to the cheatsheet
add an item on conditional types to the cheatsheet

You can check how these markdown files look like in this test repo..

We lack couple of sections from the original guidelines:

File structure (reusable type definitions)
File Extensions (d.ts files are mentioned, how about tsx?)
Platform-Specific Variants (we definitely need that, right?)
Const assertions (NAB but, quite useful to type global-level constants)

What do you think, should we include them here? @hayata-suenaga @fabioh8010

I'm marked this as a draft since @hayata-suenaga's latest comment on Slack says he still needs to add some pieces.

@fabioh8010 @blazejkustra thank you for your quick review 👍
I still have mission sections. I added a TODO list in the initial message of this PR, and I'll update them as I go

I went through the previous PR and compared it to @hayata-suenaga version. Added couple of suggestions on what we are missing and would be awesome to include it. I want to make our TS conventions are clear to contributors. cc @hayata-suenaga @fabioh8010

Thank you @blazejkustra for the detailed review 🙇
I'm still in the middle of finalizing the guideline and still copying from the original guideline. I also need to proofread
Please hold further review until this PR is marked as "ready for review" 🙇

@fabioh8010 @blazejkustra
I have a question about the following section of the guideline

Please note that you may encounter some PropTypes marked as isRequired, but when migrating to type you shall first consider all PropTypes as required ones and then inspect the component's source code and usage to identify which ones are really required or optional.

// Before
const propTypes = {
    isVisible: PropTypes.bool.isRequired,
    // `confirmText` prop is not marked as required here, theoretically it is optional.
    confirmText: PropTypes.string,
};

// After
type Props = {
    isVisible: boolean;
    // Consider it as required unless you have proof that it is indeed an optional prop.
    confirmText: string;
};

Does this mean that the use of isRequired in the codebase in the current state is unpredictable?

@fabioh8010 @blazejkustra
I have a question about the following section of the guideline

Please note that you may encounter some PropTypes marked as isRequired, but when migrating to type you shall first consider all PropTypes as required ones and then inspect the component's source code and usage to identify which ones are really required or optional.

// Before
const propTypes = {
    isVisible: PropTypes.bool.isRequired,
    // `confirmText` prop is not marked as required here, theoretically it is optional.
    confirmText: PropTypes.string,
};

// After
type Props = {
    isVisible: boolean;
    // Consider it as required unless you have proof that it is indeed an optional prop.
    confirmText: string;
};

Does this mean that the use of isRequired in the codebase in the current state is unpredictable?

Does this mean that the use of isRequired in the codebase in the current state is unpredictable?

@hayata-suenaga @blazejkustra What I mean is that as we were working with a JS codebase this whole time it's likely that we are going to find some props that were wrongly marked as required/optional.
My suggestion here is to when migrating your component and typing your props, the developer should consider every prop initially as a required one. While you are migrating that component you are going to quick realize which props are really required/optional (either because you saw them declared on defaultProps or the way they are being used in that component) and you will make the adjustments.
If after migrating you are still unsure if a specific prop is optional or not, it's safer to mark it as required then.

Still finalizing details (ex. order of rules) but PR is almost ready

@hayata-suenaga Any updates on the guidelines? I believe we are close to merging, couple of comments from Fabio and maybe let's encourage internal engs to give final reviews?

sorry I have been busy this week. I gonna finalize this over the weekend and request reviews from internal engineers

I'll be OOO the rest of the week so don't let me be a blocker 👋

thank you everyone for detailed reviews 🙇 if this PR looks good, could someone do a PR reviewer checklist please 🙇

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos
No videos, this is a markdown change only.

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@hayata-suenaga you can include an author checklist to make the checks pass or we can just merge with failing checks and explain why.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.45-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Allow Caffeinate::Action to be usable beyond Caffeinate

Okay so I finally got some time to play with the Action stuff locally and got a pretty good sense of how to fix what I'd thought might've been a problem — essentially the presumption that "if you inherit from Caffeinate::Action, all of your actions must only be kicked off by Caffeinate drips." But I don't think that's a fair assumption.
If we look at the ActionMailer side of things, it'd be normal to have a UserMailer which has an action for welcome_email (non-Caffeinate) and thirty_day_followup (Caffeinate):
class UserMailer < ApplicationMailer
  layout "standard_email"

  def welcome(user)
    mail(
      from: Rails.config.generic_from_email,
      to: user.full_email,

      subject: "Welcome to XYZ Service!"
    )
  end
  # Fired off somewhere in your app by running:
  # UserMailer.welcome(@user).deliver

  def thirty_day_follow(mailing)
    user = mailing.subscriber

    mail(
      from: Rails.config.generic_from_email,
      to: user.full_email,

      subject: "How are you liking things?"
    )
  end
  # Fired off by Caffeinate Dripper
end

And both of those ought to work fine in their respective use-cases.
The trouble is that if we setup something similar for a Caffeinate::Action-inheritable, we run into trouble. Here's an example (and I'm going to use a two-layered approach here because I think that's the normal / encouraged setup, following ActionMailer encouraging having an ApplicationMailer then UserMailer, AgentMailer, etc):
class ApplicationTexter < Caffeinate::Action
  class Envelope
    def initialize(sms)
      @sms = sms
    end

    def deliver(texter)
      # do other stuff to prep / save @sms here
      @sms.send!
    end
    alias_method :deliver!, :deliver
  end

  def message(kwargs)
    Envelope.new(Sms.new(kwargs))
  end
end

class UserTexter < ApplicationTexter
  def welcome(user)
    message(
      from: Rails.config.generic_from_phone_number,
      to: user.phone_number,
      body: "Welcome to XYZ Service! We're so excited to have you..."
    )
  end
  # Fired off somewhere in your app by running:
  # UserTexter.welcome(@user).deliver

  def thirty_day_followup(mailing)
    user = mailing.subscriber

    message(
      from: Rails.config.generic_from_phone_number,
      to: user.phone_number,
      body: "Long time no see... everything okay?"
    )
  end
end

If you try this setup, using the welcome method somewhere else in the app will fail. Any Texter that inherits from Caffeinate::Action (directly or in a second layer etc.) cannot behave normally outside of the Caffeinate context (where there's only one arg passed in and it's a Caffeinate::Mailing). That's no good! I think Caffeinate::Action-inheritables ought to behave like ActionMailer — do the normal flow of things and run the normal callbacks and let everything run fine, only adding extra functionality if it detects that this particular flow is from a Drip; not preventing non-Drip-based flows from running normally.
This PR, which doesn't yet fix any specs, aims to fix that by passing through the action args plainly and only setting the magic self.caffeinate_mailing if the argument is indeed a single Caffeinate::Mailing. I probably also didn't do this correctly considering that args could actually be *args, **kwargs, so I need to fix that — a Mailer action should be able to accept any / all forms of parameters! Anyway, as long as the self.caffeinate_mailing doesn't get set, all of the other machinery operates totally normally and doesn't assume Caffeinate-level features (which is great!) so I think this is all we have to do! :thumbsup:
Random Thoughts:

Are you open to thinking about the name of Caffeinate::Action more? I think anything that inherits from this class should end in an "'er" like ActionMailer and my "Texter" and a hypothetical "WebPusher" — for that reason, what would you think about Caffeinate::Deliverer? Or honestly maybe even something a little more on-the-nose like Caffeinate::ActionMailerSpoofer?
Not a 'now' thing, but we should probably allow folks to opt in to registering other interceptors and observers for Caffeinate::Actions at some point — I think at the moment it's hard-coded to just be ::Caffeinate::ActionMailer::Interceptor and ::Caffeinate::ActionMailer::Observer. They can obviously override the inform_interceptors and inform_observers methods but it'd be nice if we had a class method for registering like ActionMailer itself: ActionMailer::Base.register_interceptor() / ActionMailer::Base.register_observer()

Still To-do:

[ ] Fix the args pass-through to support *args, **kwargs, possibly even &block in case someone needs that
[ ] Fix the specs!

This PR, which doesn't yet fix any specs, aims to fix that by passing through the action args plainly and only setting the magic self.caffeinate_mailing if the argument is indeed a single Caffeinate::Mailing. I probably also didn't do this correctly considering that args could actually be *args, **kwargs, so I need to fix that — a Mailer action should be able to accept any / all forms of parameters! Anyway, as long as the self.caffeinate_mailing doesn't get set, all of the other machinery operates totally normally and doesn't assume Caffeinate-level features (which is great!) so I think this is all we have to do! 👍

This kind of breaks the convention between what Caffeinate interfaces with and what it doesn't interface with. For example, I can expect that all mailer actions that are specific to Caffeinate accept a mailing object. I think that everything that's setup for Caffeinate should have that expectation, don't you?
I think it's fine to assume that arguments are going to be a mailing to an Action (no, not married to the name). I don't think Caffeinate::Action should be used outside of the context of Caffeinate (thus the namespace). Because ActionMailer handles things that aren't Caffeinate-related, in addition to mail (messages) that are Caffeinate-related, we do need to check in the observer. But in a normal context — for example, if Caffeinate was a custom mailer method — we wouldn't, because we'd assume that everything that flows through it (mailing#process!) is a mailing.
Making Caffeinate::Action difficult to use outside of Caffeinate is a design choice. It's meant to be in isolation which is why its design is so strict: returning an object that responds to deliver! allows for the setup of another layer if it needs to handle something from a mailer.
If you can provide an example app where this flow makes sense perhaps that would help me wrap my head around what you're trying to do.

I think it's totally fair to want to have a strict API at the action level — if a given Mailer or Texter action is going to be used by Caffeinate, it shouldn't be used directly / outside of Caffeinate. But by offering the Action class as a general purpose "we'll handle some of the ActionMailer spoofing for you" class, it needs to be able to support both (1) methods that are for Caffeinate and (2) methods that are meant to be used somewhere else (directly, for example).
I see where you're coming from, I think we may just believe different things from the API front here.

I think in that sense Caffeinate::Action is trying to do too much.

There's probably some validity to that — the implementation I originally wrote up that inspired you to write Caffeinate::Action is indeed pretty generic. I wrote that to allow a Texter object to quack like, and behave like, an ActionMailer object. Not strictly for Caffeinate's sake (although it does leverage that spoofing), but for usage outside of Caffeinate too.
If the goal of Caffeinate::Action is to take on some of the responsibility of spoofing, I think it should do it in the general context, not the specific context of just Caffeinate actions. If it were the latter, I'd have to write my own spoofing logic again anyway, since I use my Texters in both Caffeinate-driven and non-Caffeinate-driven ways.

I'm a firm believer in each mailer action should reasonably expect the same set of arguments, and if they don't, you're bordering on feature envy

🤔 I'm not sure I agree with that one myself; I tend to take the approach that each Mailer class should be separated based on the target of who's being messaged. To me it makes sense to group that way, even if some actions in that class receive slightly different inputs. And, in practice, even those different inputs generally have to get down to the specific person anyway — so the input difference is more-so just a matter of unwrapping?
To that end, here's three actions within a single class that would all be sent to a User. Personally I don't think I'd want three different classes as a result of this. They're all doing the same thing and resolving down to a user variable, it's just a matter of how it's passed in. That being grounds for splitting to a whole separate class just feels like having a lot of extra files :stuck_out_tongue::
class UserMailer
  # For non-param usage:
  # UserMailer.welcome(@user).deliver
  def welcome(user)
    mail(to: user.email)
  end

  # For param-usage:
  # UserMailer.with(user: @user).welcome.deliver
  def welcome
    user = params[:user]

    mail(to: user.email)
  end

  # For Caffeinate-usage:
  # drip :welcome, mailer: :UserMailer, etc.
  def welcome(mailing)
    user = mailing.subscriber

    mail(to: user.email)
  end
end

But if you feel strongly that Caffeinate::Action should only be used in Mailer/[ETC]'er classes that implement only Caffeinate actions, that's okay. I'll just not use Caffeinate::Action and have my own spoofing logic in my Texter class, and that's cool! My Texter classes are used both inside and outside of the Caffeinate context and I need them to quack like an ActionMailer in both.

I napped on it and I think that a better description for Action would be some sort of proxy layer. At least that better accurately describes its intention of existing.
Would you be able to do something likeeeeee:
def welcome_for_caffeinate(mailing)
  welcome(mailing.user)
end

I do feel strongly that Caffeinate::Action (or ActionProxy, or whatever), should be considered siloed. I think that its design is reasonable enough to accommodate what you're trying to do. I think I'm just not seeing it completely. If a light example app with some sort of "here's the problem we have internally, and here's how I'm trying to make Caffeinate work with it" where I can fire off some commands, I can probably figure out the missing link.

If a light example app with some sort of "here's the problem we have internally, and here's how I'm trying to make Caffeinate work with it" where I can fire off some commands, I can probably figure out the missing link.

That's totally fair. I'll see if I can spin something up for you later today 👍 the crux of it is that I'm using Noticed for notifications and Caffeinate for drips and I'm wanting both frameworks to call the same Texters/Mailers/etc'er's

see https://github.com/joshmn/caffeinate-noticed-example
bin/setup to get you all setup. am i still missing something? I feel like something just isn't clicking for me out of understanding your case here, which happens a lot because I am notoriously dense. 😂

Haha you're on it! Here's the missing link for your repo — the plugin for Noticed to add a delivery method: deliver by Texter.
# NOTE: Custom delivery method LARGELY modeled after the Email delivery method,
# since the Texter construct is largely modeled after ActionMailer!
# See: https://github.com/excid3/noticed/blob/master/lib/noticed/delivery_methods/email.rb
# NOTE: Doesn't support :enqueue option / 'deliver later' functionality. May add later.
class DeliveryMethods::Sms < Noticed::DeliveryMethods::Base
  def deliver
    texter.send(method.to_sym, format).deliver
  end

  private

  # texter: "UserTexter"
  # texter: UserTexter
  def texter
    option = options.fetch(:texter)
    case option
    when String
      option.constantize
    else
      option
    end
  end

  # Method should be a symbol
  #
  # If notification responds to symbol, call that method and use return value
  # If notification does not respond to symbol, use the symbol for the texter method
  # Otherwise, use the underscored notification class name as the texter method
  def method
    method_name = options[:method]&.to_sym
    if method_name.present?
      notification.respond_to?(method_name) ? notification.send(method_name) : method_name
    else
      notification.class.name.underscore
    end
  end

  def format
    params = if (method = options[:format])
      notification.send(method)
    else
      notification.params
    end
    params.merge(recipient: recipient, record: record)
  end
end

That allows your Notification to do:
deliver_by :text, class: "DeliveryMethods::Sms", texter: "UserTexter"

And thus your UserTexter class can have an action called user_notification (since that's the name of your notification)


Update my planning in README

Ok Ingrid,  I tried to approve it but I am not assigned as Reviewer.


Fix territory spent calculation

Removes the filter for ItemAct.act = 'TIP' so that we can sum all non-tip ItemActs for the sub.

Ah that explains it. Nice turnaround!


feat: Performing service downtime check

Performing service downtime check.

Codecov Report
Attention: 14 lines in your changes are missing coverage. Please review.

Comparison is base (f68ab3c) 99.73% compared to head (06f87a1) 98.82%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #139      +/-   ##
==========================================
- Coverage   99.73%   98.82%   -0.92%
==========================================
  Files          19       19
  Lines        1508     1527      +19
  Branches      283      289       +6
==========================================
+ Hits         1504     1509       +5
- Misses          4       18      +14

Flag
Coverage Δ

unittests
98.82% <46.15%> (-0.92%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

contracts/staking/ServiceStakingBase.sol
92.26% <46.15%> (-7.17%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I was starting some monitoring, the checkpoint event is very low informative: it does not provide the serviceIds with rewards allocation and the corresponding amount. It is necessary to update the checkpoint event with the previous info


Byepass saml security for some url?

security.ignored=/validate/** does the trick .. hope this is ok to use..


BundleID

Hi,
In the documentation the BundleId a string but when i tested the bundleId is a Promise !

You may have old version installed?
https://github.com/react-native-community/react-native-device-info/blob/0808195a3b905ead1350fadb50fbf1b67a26f69f/src/index.ts#L282-L292
https://github.com/react-native-community/react-native-device-info/blob/0808195a3b905ead1350fadb50fbf1b67a26f69f/example/App.js#L76
It is a string

Hello,
I had the same problem and i upgraded to the latest version, and when i did that the value becomes undefined.
let bundleId = DeviceInfo.getBundleId(); ==> bundleId undefined !

Reproduce it with the example please


feat: issuesCard - update time elapsed since issue creation regularly

🐛 Fixed Issue #49
Issue Link
🛠 Proposed Changes
In the issues card component we are introducing regular updating of time elapsed since issue creation. It's updated at an interval of 30 seconds.

📝 Notes for Reviewers
The interval of 30 seconds should be good enough for this use case. We can increase it to 60 seconds if we notice a hit on performance and need to reduce the amount of re-renders by half. But on local testing there was hardly any change in rendering performance.

Hi @lokesh-veerappan-47, actually there's a bug arised in updation of issue creation time. The issue time is showing an hour ago while it was created 45 minutes ago. I'm attaching a video kindly have a look
https://github.com/anand346/findissues/assets/64061582/e9f8146b-f42b-4772-90dc-a331e6094d34

I'm reverting this PR feel free to raise a PR when you are done.

@anand346 I have reproduced the issue. This bug has nothing to do with the previous PR. This is an issue with the package that we are using to calculate the time elapsed. Sop this issue would have been present even before we implemented this enhancement.
The getTimeFromNow() function that was already present in the codebase is using moment library to do this. The fromNow() function from that library is creating this inconsistency. Github is probably calculating this in a fine grained manner and momentjs doesn't. We need to either write our own code for this or find another package that is consistent with github's implementation.
You can apply the previous PR back again, and raise a separate bug for this issue. I can take that up.

@anand346 check out PR https://github.com/anand346/findissues/pull/53


Missing word

This proposal introduces an opt-out mechanism that web content can use to indicate to the browser that it relies on a browsing context group not happening.

swap?

Fixed.


fix scripts to point to correct path

Pull Request Checklist
Before submitting, make sure you've checked the following:

[x] Target branch: Please verify that the pull request targets the dev branch.
[x] Description: Provide a concise description of the changes made in this pull request.
[x] Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
[x] Documentation: Have you updated relevant documentation Open WebUI Docs, or other documentation sources?
[x] Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
[x] Testing: Have you written and run sufficient tests for validating the changes?
[x] Code review: Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards?
[x] Prefix: To cleary categorize this pull request, prefix the pull request title.

Changelog Entry
Description

Fix scripts to use the good entrypoint path

Fixed

Fix scripts to use the good entrypoint path

LGTM, Thanks!


Add update method to instance endpoint.

Add method and cli option to update an existing endpoint on an instance. All args can be changed except the endpoint name. This adds another arg --tcp to allow the choice of tcp, udp or None when updating. If neither option is chosen the current value is maintained.

code looks great 👍


Update README.md

Description
When #5 was merged, I forgot to update the README file to replace the old CommonMarkConverter with the new MarkdownConverter.
This PR fixes this small oversight.
Changes

Replace CommonMarkConverter with MarkdownConverter in Usage section
Rename variable to be more in line with the class name

I apologize for the inconvenience.

Thanks!


[Bug]Renaming fields in Collections

Changing the field name on an existing collection with data already stored does not rename the column but rather it stops indexing it and creates a new empty one.
The problems this proposes are the following:

When retrieving data via API, you get both the "old" field (Before rename) with its data and the new field (after rename) without any data (unless you input new data)
It does not show the "old" field on the UI so you can not delete them

There is no elegant way to solve this behavior for now. Someone has to write it...
I opened the same issue before: https://github.com/agentejo/cockpit/issues/775
Don't change the name and use the label instead. Or you could export your data, manipulate it and import it afterwards as a workaround.
Here are some thoughts about cleaning the database: https://github.com/agentejo/cockpit/issues/821

I faced the same issue and ended with a workaround on https://github.com/pauloamgomes/CockpitCMS-Helpers#better-handling-of-collection-and-singletons-structure-changes
the workaround works well and also provides a CLI command for updating all existing collection entries, however, is still an workaournd and think would be interesting to have that fixed in Cockpit himself. The challenging part is more on the collections (singletons are updated in a different way), the collection update() method performs an array merge between the new update data and the existing collection entry data and therefore the old values are not removed/updated. @aheinze could we have a force update method that is called from the collection entry edit and validates the collection data with the collection fields structure!?


Extension issue

Issue Type: Bug
Extension Name: python
Extension Version: 2020.4.74986
OS Version: Windows_NT x64 10.0.18363
VSCode version: 1.44.2

:warning: We have written the needed data into your clipboard. Please paste! :warning:
The Python Tools server crashed 5 times in the last 3 minutes. The server will not be restarted.

@coresir Uninstall the extension, exit VSCode. Go to %USERPROFILE%\.vscode\extensions in "File Explorer" and delete any instance of ms-python.python*. Start VS Code, and install the extension. If you run into this issue, please open a bug with additional details. It is not possible to diagnose this issue without logs.


[CT-2703] [Bug] DBT when using Programmatic invocations with callbacks overrides stdout to file log level

Is this a new bug in dbt-core?

[X] I believe this is a new bug in dbt-core
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
When using the dbtRunner with a callback function overrides the level of the current stdout to the level at which the file logging is set if logging.basicConfig was used.
The stdout is being given debug log, even when the log level is set to info
Expected Behavior
Only the log level info or the level set by --log-level are printed to stout
Steps To Reproduce
The below code should work on a simple DBT project
import logging
logger = logging.getLogger(__name__)
logger.info("This should not be seen")
logging.basicConfig(level=logging.INFO)
logger.warning("This should be seen")
logger.debug("This is a debug message")

from dbt.events.base_types import EventMsg
from dbt.contracts.graph.manifest import Manifest
from dbt.cli.main import dbtRunner, dbtRunnerResult
def dbt_callback(event: EventMsg) -> None:
    return
res: dbtRunnerResult = dbtRunner(callbacks=[dbt_callback]).invoke(["--log-level","info","--log-level-file","debug","parse"])

Relevant log output
this is the first few lines from STDOUT, not the log file. I have removed the log path and profiles_dir.

:25:40.506397 [info ] [MainThread]: Running with dbt=1.5.1
DEBUG:file_log:16:25:40.508398 [debug] [MainThread]: running dbt with arguments {'printer_width': '80', 'indirect_selection': 'eager', 'write_json': 'True', 'log_cache_events': 'False', 'partial_parse': 'True', 'cache_selected_only': 'False', 'warn_error': 'None', 'version_check': 'True', 'debug': 'False', 'log_path': 'MANUALLY_REMOVED', 'fail_fast': 'False', 'profiles_dir': 'MANUALLY_REMOVED', 'use_colors': 'True', 'use_experimental_parser': 'False', 'no_print': 'None', 'quiet': 'False', 'log_format': 'default', 'introspect': 'True', 'warn_error_options': 'WarnErrorOptions(include=[], exclude=[])', 'static_parser': 'True', 'target_path': 'None', 'send_anonymous_usage_stats': 'True'}

Environment
- OS: Windows 10
- Python: 3.10.11
- dbt: 1.5.1 (Redshift 1.5.4)

Which database adapter are you using with dbt?
redshift
Additional Context
No response

@stevensnicholas Thank you for opening this issue. I've opened a PR which would fix this issue in dbt 1.6. In the meantime, the only way to sidestep this behavior might be to configure your logger directly, rather than calling basicConfig(), which adds a stdout logger to the root logger.

Thanks, PR was fast.


Issue setting up Slack integration - 500 error after successful OAuth with Slack

How are you running Flagsmith

[X] Self Hosted with Docker
[ ] Self Hosted with Kubernetes
[ ] SaaS at flagsmith.com
[ ] Some other way (add details in description below)

Describe the bug
Received 500 error after authenticating with Slack bot integration
Steps To Reproduce

Navigate to the integrations page in the Flagsmith UI
Click to setup/add the Slack integration
Confirm OAuth's requested permissions
Receive 500 error (as shown in the screenshot in the 'Screenshots' section)

Expected behavior
Should not throw a 500 but instead allow me to pick the channel to send messages to.
Screenshots

Nvm false alarm - I had something misconfigured


send focus to correct control based on location

This changes increases parity with the youtube player as it relates to focus management. Previously, if focused on an element later in the dom, the player would send focus to the play button instead of the last focusable control.

@astephenb Thanks for the work on this PR. Can you explain in what scenarios this is necessary?

In our case, there is an input field after the media element. When focused on the input and the user tabs back to the media element, we would like focus sent to the right most control (fullscreen in our case). This is consistent behavior with YouTube.
At the moment, focus goes to the play button no matter what. This is mostly a UX improvement that was discovered during an a11y audit conducted on our app. Let me know if you want any other info.

@astephenb Has this been tested across different browsers, including IE8? I just wanna make sure we are covered in most of the browsers if we merge this

This has only been tested back to the last two versions of every major broswer. So IE11 is the oldest version tested.

@astephenb In order to merge this you need to ensure that old IE browsers (starting from 8) won't have any errors, given that we are supporting them

https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition
MDN suggests that IE9 and later support this.

@astephenb If you can implement the support for IE8 posted in http://stackoverflow.com/questions/8334286/cross-browser-compare-document-position, I can merge this

@ron666 would you be fine with just falling back to focus on the play button if Node.compareDocumentPosition is undefined? It seems a little overkill to add this polyfill for just IE8 IMO.

@astephenb Yes I'm OK with that. Just integrate that and fix conflicts and I'll merge this PR

Awesome. I'll get to that this afternoon.

@astephenb Any updates on this?

Apologies @ron666. It just slipped my mind. Hope this helps!

@astephenb I think it is good; just fix the conflicts and it could be merged for this next release. Did you tested this on IE8 with the last fix you submitted?

I did not. Just threw that in as a catch all if the api doesn't exist on the client.

OK I'll try to check it tonight on IE8 to close the loop on this and merge it. Thanks

@astephenb I tested this and works fine; the last comment I have is that this method should be part of the Utilities instead of being at the top of the player file. If you change that I'll merge this PR definitely

@astephenb Thanks merged now


Some minor changes to tests and readme

Refactored out the texts from the unit tests. Changed the assertions to convert to lower case first. Added tests to use their language specifications instead of only our own.
Removed extra credits from readme and added instead enhancement ideas (if you disagree with this, just merge without the last commit)

+1


GEODE-6765: Gfsh list* commands do not return error when no results found

This also includes not returning an error when no members are found to
execute against.

Authored-by: Jens Deppe<EMAIL_ADDRESS>Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

@jackw26 @Petahhh @jmelchio


Fix range to include full Search code (Issue #681)

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Lowestcategoryscore
Spellingissues
Scorecard
Processed

articles/quickstarts/search.md
81
72
2
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Docs Build status updates of commit 3947e43:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/quickstarts/search.md
:white_check_mark:Succeeded
View (qsharp-preview)

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

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Lowestcategoryscore
Spellingissues
Scorecard
Processed

articles/quickstarts/search.md
81
72
2
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Docs Build status updates of commit 2fc6a39:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/quickstarts/search.md
:white_check_mark:Succeeded
View (qsharp-preview)

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


DeveloperExceptionPage should include routing details

If applicable, the exception page should have a tab with current route name, controller, action and routing values.

@rynowak is this feasible? Is the routing feature available on the outgoing or do we remove it from the request on the way out?

There's also the minor problem of the Diagnostics page having access to the IRouteFeature (or whatever it's called). But if we move routing lower down the stack, that would just solve itself.
Regarding whether the routing feature is available on the outgoing, I wonder in general if it makes sense for middlesware to remove features on the way out? We've seen that sometimes cause issues in this type of error case.

Yes, this is feasible.


Add FileDirectoryWatcher

RecordReader which watches a directory for new files, and sends the new files to a sub RecordReader. With property to specify minimum age for new files. A file with a "creation time" of a few seconds old would avoid reading files being written to.

This means when I run a job with such a reader, the job is never finished, since the reader is there watching the directory for changes. Do you agree?
For such use cases, I would schedule the job to run at the required frequency giving it as input the new files only.

I'm closing this issue for the reason explained previously.


Fix an issue where concurrent deletions do not cause STM to restart

Fix #7184

Looks like the right thing to do. Can this include a simple test case in integration/v3_stm_test.go too?

@derekchiang  We cherry-picked your patch to get this in our release today.
Thanks for contribution!

@gyuho thanks!  Glad to help.


Add support for repeats=0 in da.repeat

Currently when repeats == 0 we end up passing an empty list to concatenate which raises an error. This PR updates da.repeat to return an appropriate slice of the array (when repeats == 0) to match NumPy's repeat behavior. cc @TomAugspurger
Fixes https://github.com/dask/dask/issues/6076

[ ] Tests added / passed
[ ] Passes black dask / flake8 dask

Thanks!


[WIP] testing workflow setup

Experimenting with the workflow syntax to avoid running unnecessary jobs - failing the pipeline fast.

While this might save some jobs to be executed, the overall time is slower (mostly due to pylint taking 3 minutes to run):

vs

Maybe we could keep pylint non-blocking?


Top-level landing page summaries

Context
Some of the top-level landing pages don't have an intro (Concepts, Components..) - suggest adding at least a sentence.

Added a task to the DevAdv task board to brainstorm a plan for this


Improve Makefile

Check fmt using golangci
Proerly install golangci
Fix error when doing make build

@gssbzn - thank you for the submission!  I will have the devs take a look.


token-cli: Support updating metadata pointer extension

Problem
#4636 added support to initialize the metadata pointer extension in a new mint, but it still isn't possible to update the metadata pointer address.
Solution
Add a new top-level command, called UpdateMetadataPointerAddress, which calls update_metadata_pointer_address: https://github.com/solana-labs/solana-program-library/blob/fccc0919513d7939ff624d3a80db2b1b883ca8b3/token/client/src/token.rs#L1576
Currently, the most similar instruction is update_default_account_state https://github.com/solana-labs/solana-program-library/blob/fccc0919513d7939ff624d3a80db2b1b883ca8b3/token/cli/src/main.rs#L2305

Hello @joncinque , I am interested in this issue
Can you assign this issue to me.

@Rhythm-08 Go for it! I typically only assign issues to team members, but if you send a PR for this, I'll gladly take a look!

If this issue is open to fix then I can give it a try. React to this comment if it's available.

If this issue is open to fix then I can give it a try. React to this comment if it's available.

Might just want to check with @Rhythm-08 , possibly collab ?!

If this issue is open to fix then I can give it a try. React to this comment if it's available.

Might just want to check with @Rhythm-08 , possibly collab ?!

Sure


Does the DocumentUri and CreationInformation need to be updated when upgrading document?

Currently, deprecated properties are "upgraded" to relationships when deserializing RDF documents.  This is technically changing the model which should require a new, unique URI.
We may also want to update the creation information.
This issue came up in a discussion on the SPDX tech email list.

One possible solution is to add a couple optional parameters to the deserialize method:

upgrade (default false)
newDocumentUri (default null) New URI to use on upgrade

If upgrade is false and any deprecated properties are found, the deserialization will fail as unimplemented.


VSCode crashes when launching from --verbose mode in WSL

Version: 1.50.0-insider (system setup)
Commit: cca20eba8974b1d6b6a9b71bf4e60a29c8f26648
Date: 2020-09-12T01:04:21.398Z
Electron: 9.3.0
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041
Steps to Reproduce:
Crashing

in WSL launch code-insiders --verbose (also happens with --no-extensions)
once code has launched, try clicking outside the window then back in
crash

Working

in WSL launch code-insiders
once code has launched, try clicking outside the window then back in
doesn't crash

I have https://github.com/boa-dev/boa open in the gif, sometimes it doesn't crash if i open no project so it could be an extension.
non verbose

Here VSCode is fine until i click out and back in again.
verbose

Logs
➜  workspace code-insiders --verbose
Invoking: /mnt/c/Program Files/Microsoft VS Code Insiders/Code - Insiders.exe resources/app/out/cli.js --verbose --remote=wsl+Ubuntu-20.04 in /mnt/c/Program Files/Microsoft VS Code Insiders

I can't reproduce. Can you try to get more information about the crash? https://github.com/microsoft/vscode/wiki/Native-Crash-Issues#windows
Does this also happens when you run from the Windows prompt:
code-insiders --verbose --remote=wsl+Ubuntu-20.04

Does this also happens when you run from the Windows prompt:
code-insiders --verbose --remote=wsl+Ubuntu-20.04

Yes i can reproduce it with and without the remote argument

I can't reproduce. Can you try to get more information about the crash? https://github.com/microsoft/vscode/wiki/Native-Crash-Issues#windows

I've got it running but it doesn't generate a .dmp file, code just hangs forever and i need to close the task in Task manager.

@aeschli  I've managed to get a dump of that none responding process but its a large file, so i can't attach it here

@jasonwilliams Can you send me the dump file by mail or share it in the cloud?

Sent

@jasonwilliams can you also launch with code-insiders --verbose --crash-reporter-directory <some-absolute-path> and attach the generated minidump files from <some-absolute-path>

@deepak1556 doesn't look like that's supported
code-insiders --verbose --crash-reporter-directory /home/jasew
Ignoring option crash-reporter-directory: not supported for code-insiders.

~ code --verbose --crash-reporter-directory /home/jasew
Migrating .vscode-remote to .vscode-server...
Updating VS Code Server to version 58bb7b2331731bf72587010e943852e13e6fd3cf
Removing previous installation...
Installing VS Code Server for x64 (58bb7b2331731bf72587010e943852e13e6fd3cf)
Downloading: 100%
Unpacking: 100%
Unpacked 2341 files and folders to /home/jasew/.vscode-server/bin/58bb7b2331731bf72587010e943852e13e6fd3cf.
Ignoring option crash-reporter-directory: not supported for code.

@aeschli was the dump useful?

I didn't get anything useful out of it. Sending the dump to @deepak1556, he's more experienced.

@jasonwilliams You mentione dyou can reproduce it when starting on the Windows side as well.
Can you start from a  Windows command prompt:
code-insiders --verbose --remote=wsl+Ubuntu-20.04 --crash-reporter-directory=c:\vscode-crashes

@aeschli sorry i mis-read your earlier comment, i thought you meant does this also happen when you pass in the --remote argument. It only happens when launching from WSL, from windows it's fine

Further investigation:
VSCode v1.58.0-insider (system setup)
Rust Analyzer v0.2.637
I started to narrow this down to only-happening-on-rust-projects, then I looked at some extensions.
On further investigation it looks like the issue could be Rust Analyzer? I notice the crash happens once that kicks in. Not sure how its able to crash the whole of VSCode, ive not seen an extension do that but if you install that it should be reproducible.
https://user-images.githubusercontent.com/936006/122100929-a7328480-ce0b-11eb-8c2d-c8bf47ebb48c.mp4
Heads up to @matklad

Please file this against the Rust Analyzer analyzer then. Very plausible that the freeze and core dump are caused by a native call in the extension.
 VSCode will log more to the console, maybe the Rust Analyzer also does a lot of logging?

rust-analyzer vscode extension doesn't do any native calls. It more-or-less only calls into https://github.com/MIcrosoft/language-server-protocol/ to interact with a native binary via stdio-based IPC.


Godot .NET  SourceGenerator Nuget and Godot Mono SourceGenerator Nuget name conflict

Godot version
Godot v4.3.dev5.mono
Godot .NET packages version
4.3.0-nightly.24260.1
System information
Windows 10.0.22000 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Laptop GPU (NVIDIA; <IP_ADDRESS>23) - 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (16 Threads)
.NET information
8.0.204
Issue description
Godot .NET  SourceGenerator Nuget Package and Godot Mono SourceGenerator Nuget Package name conflict should we have a better name to differentiate?
And should Godot.Bindings be differentiated as well?
for example Godot.GDExtension.Bindings namespace?
To avoid confusion between GDExtension C# and Mono C#?
Steps to reproduce
N/A
Minimal reproduction project
N/A

As I see it, the fact that the new bindings use the GDExtension API is an implementation detail. And I'd rather keep the good names for the new packages. The Godot.SourceGenerators package name conflict is unfortunate, we could consider renaming the old package instead (e.g.: GodotSharp.SourceGenerators).
Keep in mind that most users will use these packages through the Godot.NET.Sdk and will never have to manage these packages themselves, so I don't think we have to worry about confusion.

在我看来，新绑定使用 GDExtension API 的事实是一个实现细节。我宁愿保留新软件包的_好_名字。不幸的是，包Godot.SourceGenerators名称冲突，我们可以考虑重命名旧包（例如GodotSharp.SourceGenerators：）。
请记住，大多数用户将通过使用这些包，Godot.NET.Sdk并且永远不需要自己管理这些包，因此我认为我们不必担心混淆。

Mainly I build Godot engine source code and Godot Dotnet will conflict with each other, causing the source code generator to fail. General users may not be affected.

@ZerxZ
U need to translate to English first to be community friendly.

As I see it, the fact that the new bindings use the GDExtension API is an implementation detail. And I'd rather keep the good names for the new packages. The Godot.SourceGenerators package name conflict is unfortunate, we could consider renaming the old package instead (e.g.: GodotSharp.SourceGenerators).
Keep in mind that most users will use these packages through the Godot.NET.Sdk and will never have to manage these packages themselves, so I don't think we have to worry about confusion.

Mainly I build Godot engine source code and Godot Dotnet will conflict with each other, causing the source code generator to fail. General users may not be affected.


Release Flatcar Container Linux Alpha 3850.0.0, Beta 3815.1.0, Stable 3760.2.0

The release of the following Flatcar Container Linux version is planning Jan 18th, 2024.

Alpha 3850.0.0
Beta 3815.1.0
Stable 3760.2.0

1. Preparation
Owner: @dongsupark

[x] A. Go/No-Go hackmd doc created from HackMD template for test tracking and release notes: (https://hackmd.io/stjMbwGHQqyH8_PNPoCafQ?view)
[x] B. All planned changes are merged & blocker bugs are fixed, last nightly reviewed for problems.
[x] C. Check that the kernel PR are merged for the channel(s) to be released.

2. Build
Owner: @dongsupark

[x] A. Branched off the main branch (only for new major).
[x] B. Tagged all the build branches.
[x] C. Started the Jenkins builds, post the links into this issue as comment.

3. Release
i. The Go/No-Go Meeting
Owner: @sayanchowdhury

[x] A. Test status captured in the HackMD document.
[x] B. All tests are Green.
[x] C. Release notes / announcements added to Go/No Go doc from container/image_changes job by selecting Timestamps: None.
[x] D. QA: Checked the diff for image file list, packages, and image size in the container/image_changes job output.
[x] E. Conduct Matrix Go/No Go meeting (inc. release notes review).

ii. Artifacts goes public
Owner:

[x] A. Created the Release Notes on the scripts repo for the respective tags on GitHub as GitHub Releases.
[x] B. Ran the container/release Release job.
[x] C. Images uploaded with copy-to-origin.sh.
[x] D. Symlink to "current" updated with set-symlink.sh.
[x] E. Website updated with ./update-flatcar-versions.sh and PR merged.

iii. Payload
Owner: @tormath1

[x] A. Update payload signed/uploaded.
[x] B. Release package published in Nebraska (Prerequisite: 3.ii.E should marked done).

iv. Cloud Marketplace & Cluster API
Owner:

A. Azure

[ ] Offers updated and started publishing.
[ ] Sent the offers to publish to Live.

B. GCP

[x] Offer deployment package uploaded to Google Bucket & submit for verification.
[x] Offer Publish

C. Cluster API for new Stable

[ ] Azure: Manually run ./azure-sig.sh to create New Shared Community Gallery Images
[ ] OpenStack: documentation

4. Announcements
Owner:

[x] A. Sent announcement to Mailing Lists
[ ] B. Sent Tweet out to Twitter, and Toot out to Mastodon
[x] C. Brief version announcement in slack (k8s slack #flatcar) and the Flatcar Matrix channel

Alpha 3850.0.0: http://jenkins.infra.kinvolk.io:8080/job/container/job/sdk/1269/cldsv/
Beta 3815.1.0: http://jenkins.infra.kinvolk.io:8080/job/container/job/packages_all_arches/3291/cldsv/
Stable 3760.2.0: http://jenkins.infra.kinvolk.io:8080/job/container/job/packages_all_arches/3290/cldsv/

Offer is live on GCP.


adjust missed pic dates

Adjusting some of the picture dates that were wrong so they were broken in article.
Solves https://github.com/iterative/dvc.org/pull/2567#pullrequestreview-687762528

Thanks @jendefig !


Cert expired

Hi there. Looks like the cert for the swap.dev domain expired:

Any idea if this will be fixed soon? I'm doing a code challenge for a potential employer, got 75% of my demo done, and got nailed with this. I can try to host it myself if necessary.

Looks like this has been resolved.


Add resource consumption guardrails

Need to implement a mechanism that will limit the CPU and RAM usage of the library.

Disk usage should also be taken into account, since a few large models can push the size of the indexedDB into the GBs without notice.


Better Error Reporting of Invalid Content Type

Problem statement
Currently if the response header for content-type is not inside  runtime.ClientOperation.ConsumesMediaTypes we get a really nasty error like
&{  0 } (*models.User) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface

As a new user of Go-Swagger this was quite intimidating and and hard to understand
Example of my runtime.ClientOperation
result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "User-Create",
		Method:             "POST",
		PathPattern:        "/api/v1/{customerID}/users",
		ProducesMediaTypes: []string{""},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"http"},
		Params:             params,
		Reader:             &UserCreateReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})

Since my API was not setting the content type header the default plain/text was sent, it was quite troublesome to understand what was actually going wrong here.
I propose adding the following block of code to  to the submit function (go-openapi/runtime/client/runtime.go:310)
	var found bool
	for _, cmt := range operation.ConsumesMediaTypes {
		if cmt == mt {
			found = true
			break
		}
	}
	if !found {
		return nil, fmt.Errorf("no consumer: response content-type %s is not inside our operation.ConsumesMediaTypes", mt)
	}

This would give a much cleaner error message like so
no consumer: response content-type text/plain is not inside our operation.ConsumesMediaTypes

Happy to make a pull request if this is something that you think would be accepted

Improving error messages is good. I assume you addon would be here.
But this would break the default, wouldn't it?

Since we need the response from the API as we don't yet have the information from the server.
I would suggest just tacking it onto the end of the function
here


hw_disk_bus: scsi for kubernetes images

I have found through some digging that the use of virtio as hw_disk_bus is not needed anymore.
(see https://github.com/osism/openstack-image-manager/issues/482)
so these parameters can be set to scsi (as scsi appears to be slightly more perfomant, allowing for DISCARD [fstrim].)
https://github.com/osism/openstack-image-manager/blob/main/etc/images/kubernetes.yml#L15
https://github.com/osism/openstack-image-manager/blob/main/etc/images/gardenlinux.yml#L14

I'd be really hesitant to switch the default here and would like to see actual current numbers that scsi is more performant.
as said elsewhere already: virtio-blk does support discard.

So, i quickly re-researched the performance topic and so far I mostly found sources in favor of virtio-blk when it comes to performance:

https://www.qemu.org/2021/01/19/virtio-blk-scsi-configuration/ says virtio-blk is faster than scsi (the test cited is random read 4k)
the above source also notes, that scsi passthrough was disabled in the 5.6 kernel and replaced by virtio-scsi
https://stackoverflow.com/a/45487683 mentions also, like the above source, that virtio-scsi is more complex code and thus slower; but it also contains the old information that virtio-scsi does support TRIM, which virtio-blk also supports.
finally there is this blog from 2017 which has the most datapoints and tests running fio. most datapoints here are in favor of virtio-blk speed as well.

Please take to an SCS meeting an discuss there.

@linwalth can you check if virtio-blk works for you in terms of discard? do you see any performance difference - positive or negative - for your workload?
I don't know your platform/usecase, as I'm still a little new here around :smile:
If you have a problem with the current value or if you can show data that scsi works better for your usecase, we could discuss switching this again.
Thanks!

@berendt I added the topic to the agenda, I hope it's okay this way:
https://input.scs.community/#2023-05-17

https://input.scs.community/#2023-05-17

that link is kaput ;)
Where did you add it?

yeah, the markdownlinks are somehow defect, it's here (deeplinks seem to be broken somehow):
https://input.scs.community/2023-scs-team-iaas

@linwalth can you check if virtio-blk works for you in terms of discard? do you see any performance difference - positive or negative - for your workload?

I was just passing this issue down, I have no immediate contact with the usecase itself.


Add fips check command

Adding a tool to check that analyses the Go crypto packages and reports out FIPS compliance data, such as the openssl calls done in each exported API.
GOROOT should point to a Go root directory which is checked to a boring-enabled branch, else no boring calls will be identified.
The current output is not machine-friendly, it will be improved if we decide to integrate this tool into CI.
Still missing to analyze dynamic and CGO calls, they will be added in another PR if we decide so.
Example of execution output:
go run ./cmd/fips crypto/...
...
fips: {crypto/sha1 New true [NewSHA1]}
fips: {crypto/sha1 Sum true [NewSHA1]}
fips: {crypto/sha256 New true [NewSHA256]}
fips: {crypto/sha256 New224 true [NewSHA224]}
fips: {crypto/sha256 Sum256 true [NewSHA256]}
fips: {crypto/sha256 Sum224 true [NewSHA224]}
fips: {crypto/rsa EncryptOAEP true [PublicKeyRSA NewPublicKeyRSA EncryptRSANoPadding]}
fips: {crypto/rsa DecryptOAEP true [NewPrivateKeyRSA DecryptRSAOAEP]}
...

I'm closing this PR as I found that using [https://pkg.go.dev/golang.org/x/tools/go/ssa]https://pkg.go.dev/golang.org/x/tools/go/ssa) instead of go/ssa resolved most of the problems I'm having with unresolved symbols.
I'll open a new PR when I have the command ready. Thanks for the reviews anyway, most of them will be useful for the new version as the structure is mostly the same.


Image versions in YAMLs in 0.26.3 release zip set to 0.26, not 0.26.3

In the YAML files in the install directory of the 0.26.3 release zip, the image versions don't contain the full version string anymore, ie. the image version is set to 0.26 instead of 0.26.3.
$ cd install/components/address-space-controller/ && grep -R 'docker.io/enmasseproject/agent'
020-ConfigMap-address-space-definitions.yaml:              image: docker.io/enmasseproject/agent:0.26
020-ConfigMap-address-space-definitions.yaml:              image: docker.io/enmasseproject/agent:0.26
020-ConfigMap-address-space-definitions.yaml:              image: docker.io/enmasseproject/agent:0.26

The 0.26 image version exists on Dockerhub and seems to have been updated for 0.26.3.
But, as the imagepullpolicy is set to always, this could lead to EnMasse components in one cluster using different versions. This would happen when a new EnMasse version is released along with an update of the 0.26 image on Dockerhub and when only one pod in the cluster gets restarted, thereby already pulling the new image while the other pods still use the older version.

@calohmn This was intentional, and the idea is that micro releases of EnMasse only contain critical bug and security fixes that:

Require no changes to templates
Each component may be updated individually

To upgrade micro releases, the thought is that a simple component restart should be enough.
However, if you think this is confusing and bad policy, we can probably change it back to use full version.

Ok. Yes, upside would be easier updates, downside would be not seeing the actual image version.
I guess, the easier updates are more important here.
Another potential disadvantage could be that in the case of a Dockerhub downtime, EnMasse components wouldn't restart during that time because of the imagePullPolicy: Always setting (would cause an ErrImagePull status).

@calohmn Thinking more about this, I wonder if we should change it back to the previous behavior. I would imagine that having multiple ways to do updates is not very common. I think the downsides warrant us to consider changing it.
CC @EnMasseProject/dev

This has been moved back to the previous model


tfsec:ignore on resource does not ignore AWS001 warnings

Describe the bug
I have a S3 buckets with the following configuration:
# tfsec:ignore:AWS001 tfsec:ignore:AWS002 tfsec:ignore:AWS017
resource "aws_s3_bucket" "example" {
  bucket = "example-bucket"
  acl    = "public-read"

  website {
    redirect_all_requests_to = "example.com"
  }
}

Running tfsec still returns [AWS001][WARNING] Resource 'aws_s3_bucket.example' has an ACL which allows public access. I would expect that the warning is ignored.
The following configuration behaves as expected:
# tfsec:ignore:AWS002 tfsec:ignore:AWS017
resource "aws_s3_bucket" "example" {
  bucket = "example-bucket"
  acl    = "public-read" # tfsec:ignore:AWS001

  website {
    redirect_all_requests_to = "example.com"
  }
}

Expected behavior
I would expect that the tfsec result is empty if I have a publicly accessible bucket with a tfsec:ignore:AWS001 comment outside of the resource block.
Desktop (please complete the following information):

OS: macOS
tfsec version: 0.39.19

Hey @Steffen911  - #681 should resolved this when its released


After rbi gems run suggest-typed (#1146)

Motivation
Per Jake's suggestion
(https://github.com/sorbet/sorbet/issues/1146#issuecomment-507883405)
Fixes problem where rbi gems produces incorrect sigils
[Fix #1146]
Test plan
I couldn't figure out how to test this. I read the "Writing tests" section of the readme, and I tried to write a test in test/cli but maybe that was a bad choice because main/sorbet in the .sh doesn't seem to work the way srb does? For example, if I do main/sorbet rbi gems, I get: "gems: File Not Found". I'm obviously missing something fundamental, sorry.

This should also probably be done for sorbet typed

@jez could you take this one? You know how this works much better than I do

It's not possible to test this right now.

Thanks Jake, That makes me feel better. I really tried to do a test, and I couldn't figure it out!


Fix UrlBuilder hash

Based on this commit, We need to add hash for UrlBuilder

Thanks but i want select algorithm from user i added in config file.


Unable to start the Python language server.

when I use the package, I get this error, please, how to solve the problem?
I try the way of the issue:https://github.com/atom-community/ide-python/issues/34,   but it doesn't work

I have the same issue. It seems that this package tries to use the module "pyls" instead of "pylsp" despite being configured to use "pylsp" and not "pyls".

removing the code that decides whether to use "pyls" or "pylsp" fixes this issue for me. I created a pull request with this change (#5)

I am getting this error as well, but its due to using Ubuntu 23.10 since it uses Externally Managed Environments.
How can use this package and install it on a venv, is there a setting for that?
(This would also happen in 23.04 and every other externally -managed-environment distro.)

How can use this package and install it on a venv, is there a setting for that?

Activate the virtualenv in your shell, then install the pip package with its pip. By default activating the venv should override the pip (and python) command for as long as the venv is active.
When the pip package is installed in the venv, you need to adjust the python binary used to that of the venv. You can find out its path by activating the venv in your shell and using the command "which python".

Super helpful, thanks!


Negative Hazard Pay in campaign missions

Unsure if this applies in career or not, but noticed it in both a story and a regular mission, hazard pay was -1000 for CO and 2 warriors in Majesty Metals and -500 in a solo retrieval drop. I'd adjusted salary but it should still have been impossible for that to go negative. Speculate a rounding error to nearest 500 is ignoring rounding to zero.

Possibly related, was unable to hire most but not all units that required an MRB rating of zero. At 10 I could hire no one, at 15 I got some med techs and vehicle crews but no one else.


Add withoutPrimaryKey method for increment columns

Fixes #22 implementing the withoutPrimaryKey method:
$table->bigIncrements('id')->withoutPrimaryKey();

Oops, left comment on #22 rather than here. Copying here for completeness:
I'm not a big fan of negating implicit behavior. What do you think about making bigIncrements not automatically make the auto_increment the primary key, and instead always requiring that the user declares the primary key on the table?
I.e. just making
protected function modifyIncrement(Blueprint $blueprint, Fluent $column)
    {
        if (in_array($column->type, $this->serials) && $column->autoIncrement) {
            return 'auto_increment';
        }
    }
}

@carlsverre I also do not like the negating implicit behavior, but I think that changing the Laravel default behavior is not a good decision.
It would introduce a breaking change to everyone who is already using the library (forcing you to release 2.0.0 because of the semantic versioning) and would make the newcomers confused without a really big warning in the README.
Maybe a better name would be notPrimary if the withoutPrimaryKey doesn't sounds well:
$table->id()->notPrimary();

Good points. Ok, I think this is good to go as is. I like withoutPrimaryKey better than notPrimary.
Separately, it seems that the tests are failing due to an issue with either the docker image or github service container healthchecks. Will investigate.

Ah, the issue is related to github not sharing the singlestore license secret with pull requests. I'll have to find another way to run actions on PR's. Very tricky.

Can you rebase on 6f0e84cb834dae2dac0824b4d21b0370107a5cbe. That will allow us to run tests on PRs.


Add functions for pmsim

Codecov Report

Merging #67 (305a053) into main (a0f11ab) will decrease coverage by 0.03%.
Report is 6 commits behind head on main.
The diff coverage is 97.66%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##             main      #67      +/-   ##
==========================================
- Coverage   98.39%   98.37%   -0.03%
==========================================
  Files         102      101       -1
  Lines       20433    20461      +28
==========================================
+ Hits        20106    20129      +23
- Misses        327      332       +5

Files
Coverage Δ

russell_sparse/src/enums.rs
96.29% <100.00%> (+1.55%)
:arrow_up:

russell_sparse/src/sparse_matrix.rs
98.36% <100.00%> (+0.49%)
:arrow_up:

russell_sparse/src/csc_matrix.rs
98.96% <94.82%> (-0.39%)
:arrow_down:

russell_sparse/src/csr_matrix.rs
99.19% <94.82%> (-0.38%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Nested objects in args

Thanks so much for this awesome project! I have been able to use it to quickly create a CLI for my web API.
However, my more complex search queries require nested objects and lists.
For example, my POST body would look like this-
'{"queries":[{"type":"queryText","value":"climate"}],"filters":[{"type":"geometry","geometry":{"type":"Polygon","coordinates":[[[-176.64917,0.197754],[-124.790955,0.197754],[-124.790955,34.85889],[-176.64917,34.85889],[-176.64917,0.197754]]]}}],"facets":true,"page":{"max":20,"offset":0}}'
How would I write this on the command line?  No matter what I try, I get an error like this-

FATAL openapi.go:1101 Unable to get body
stdin:1:73 (72): no match found, expected: [^,:}], [^:] or EOF

Am I doing it wrong or is this a limitation of the json parsing?

Never mind, figured it out thanks to the docs here- https://github.com/danielgtaylor/openapi-cli-generator/tree/master/shorthand
Thanks again!


Update the game over message.

Update the game over message so people know how to play again !

...


Movie Search App #304

Movie Search App

Created and Added Movie Search App

Closes: #304
Describe what you have made
I have used OMDB API to fetch data and displaying the data on my site .
Functionalities:
We can search for any movie with their names.
We can get the entire information about the movie.
We can go to the IMDb of the particular movie by clicking on the link.
Describe if there is any unusual behavior of your code(Write NA if there isn't)
NA
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented on my code, particularly in hard-to-understand areas.

Screenshots

@991rajat do I need to fork the file again . Will deleting the files from the local machine affect the already merged PRs??

@SatyaPrakash26 No deleteing files of already merged PR's will not affect our code.
I think what you did is you created a branch from another feature branch in this case i believe from food -> moviesearch
Always create branch from main and keep the main branch synced so that you get latest changes.
Easiest way to fix this is create a new branch from main (Sync the main before creating a branch)
Add the code of movieserach in new branch you created and Push and make new PR.
Otherway around will requires you to not push whatever files which aren't required in this project
In this case food project all files and fruitslicer flies.
Let me know if need any help. Creating a new PR will be fast and easy.

If you go with creating a new PR. Close this one.

thank you so much for helping . I will create a new PR .


Image Extraction Fails When Project's Timecode starts from 01:00:00:00

@orchetect Our CLI fails to extract the images when Final Cut Pro's Project Timecode starts at 01:00:00:00.

2023-11-13 19:02:26 info: 5%
2023-11-13 19:02:26 info: 10%
2023-11-13 19:02:26 info: 15%
2023-11-13 19:02:26 info: 20%
2023-11-13 19:02:26 info: 24%
2023-11-13 19:02:26 info: 28%
ld/Info.fcpxml"...
2023-11-13 19:02:26 info: Project start timecode: 01:00:00:00 @ 24 fps.
2023-11-13 19:02:26 info: Found project media file: "/Users/XXX/Desktop/Marker_Data/App/Render/Test.mov".
2023-11-13 19:02:26 info: Generating metadata file(s) with PNG thumbnail images into "/Users/XXX/Desktop/Marker_Data/App/0.2.3/Output/Test 2023-11-13 07-02-26".
2023-11-13 19:02:26 info: Exporting marker icons...
2023-11-13 19:02:26 info: Generating PNG images for markers...
2023-11-13 19:02:26 info: Creating "done.json" done file at "/Users/XXX/Desktop/Marker_Data/App/0.2.3/Output/Test 2023-11-13 07-02-26".
2023-11-13 19:02:26 info: Done

This gives literally no information. Do you have a fcpxml file to repro this?

This gives literally no information. Do you have a fcpxml file to repro this?

I have emailed you. Since it is a large file.

Ah gotcha - I thought that was just a summary of recent issues.

Again, like the other issue, I think this was just a byproduct of the old XML parser.
With the new DAWFileKit refactors, this parses fine.

I'll close this issue as resolved. The next major release will have the fix.

Awesome! Thank you.


Add Ts and Cs to sign up screen

This task is dependent on @ZachCook23  task to write the terms and conditions


Updating architecture diagram

i lost track of where the new diagram came from once we handed it over to Big Jake to make prettier than any of us could do. he has it in an editable format somewhere if no one else does.