support download the resources existed in process definition which was old version

What is the purpose of the pull request
support download the resources existed in process definition which was old version
Brief change log
support download the resources existed in process definition which was old version

Codecov Report

Merging #2506 into dev will decrease coverage by 0.15%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##                dev    #2506      +/-   ##
============================================
- Coverage     36.04%   35.88%   -0.16%
+ Complexity     2409     2401       -8
============================================
  Files           424      424
  Lines         19561    19563       +2
  Branches       2386     2387       +1
============================================
- Hits           7051     7021      -30
- Misses        11887    11919      +32
  Partials        623      623

Impacted Files
Coverage Δ
Complexity Δ

...ver/master/consumer/TaskPriorityQueueConsumer.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

.../server/worker/processor/TaskExecuteProcessor.java
10.71% <0.00%> (-28.58%)
1.00% <0.00%> (-2.00%)

...he/dolphinscheduler/common/thread/ThreadUtils.java
68.25% <0.00%> (-6.35%)
13.00% <0.00%> (-1.00%)

...nscheduler/server/entity/TaskExecutionContext.java
73.26% <0.00%> (-5.95%)
53.00% <0.00%> (-3.00%)

...e/dolphinscheduler/remote/NettyRemotingClient.java
51.07% <0.00%> (-2.88%)
9.00% <0.00%> (-2.00%)

...inscheduler/common/task/sqoop/SqoopParameters.java
80.00% <0.00%> (ø)
15.00% <0.00%> (ø%)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fc2edad...ffb1478. Read the comment docs.


Fix tests

Hi @mikelodder7,
I am busy evaluating this repo for a potential use case, but the tests did not pass.

Fixed tests that did not compile
Fixed some small clippy errors
Use newline_style = "Native" to not mix up formatting in Windows

Thanks

I have fixed the same tests. Closing PR


wouldn't use_proc_to_symbol be more useful than use_symbol_to_proc?

I'm checking out synvert to see about adding codegen to my rails app.
Interesting project -- I'm curious why you have the use_symbol_to_proc snippet but not the reverse use_proc_to_symbol ...?
It seems like the reverse transformation would be more useful -- &:to_s is easy to write, hard to extend when you realize you need some additional logic, whereas the other form is easier to read and edit but annoying to type ...
It feels to me like the better path for a snippet like this would be the exact opposite of the transformation implemented ...  I'd like to allow typing the shorthand syntax but -- convert that on file save to the more easily editable form for subsequent development ...

@breathe yes, feel free to create a PR to add use_proc_to_symbol snippet


Async tests

Hi,
I have a project with very specific SQL code that I need to test. I'm using node-postgres. It can be tested on jasmine-node via the done() callback, but I can't find any similar thing on jest.
I know that unit test are not supposed to hit the database and all that stuff, but I really need to test some big(ish) selects and updates.
Since this driver is always asynchronous, is there a way to do this with Jest ?

@spicyj If you can show me the most basic example with runs and waitsFor that actually work on a $.ajax call I will sign my house over to you.

@gbbr Are you trying to mock $.ajax or have it actually perform the network request?

The actual network requests (for integration testing), although I've eventually figured it out, which is good because I'd live to keep my house :)

Hey @gbbr , what is your solution? I'm getting time outs as well all the time.
For some reason the setTimeout I put in the first run function is never executed?

:+1: Having the same problem with timeouts no matter how long they're set.

Please read JEST documentation more carefully. setTimeout is always
mocked
On 14 April 2015 at 06:09, Matt Norris<EMAIL_ADDRESS>wrote:

[image: :+1:] Having the same problem with timeouts no matter how long
they're set.
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/jest/issues/42#issuecomment-92514397.

@gbbr That's correct.
But what can we do if we want to use setTimeout in our jest tests, like waiting a certain amount of ms for an event to be handled?
e.g.
it 'edit routes', (done)->
    riot.route 'todos/edit/1'
    setTimeout ->
      calls = todo_presenter.edit.mock.calls
      expect(calls.length).toBe 1
      paras = calls[0][0]
      expect(paras).toBe '1'
      done()
    , 1000

Any suggestion for work around?

Technically you should never have to use setTimeout in tests. Ever. If you
want to wait for anything just use "runs" and "waitsFor".
On Friday, April 17, 2015, Andrew Feng<EMAIL_ADDRESS>wrote:

@gbbr https://github.com/gbbr That's correct.
But what can we do if we want to use setTimeout in our jest tests, like
waiting a certain amount of ms for an event to be handled?
e.g.
it 'edit routes', (done)->
riot.route 'todos/edit/1'
setTimeout ->
calls = todo_presenter.edit.mock.calls
expect(calls.length).toBe 1
paras = calls[0][0]
expect(paras).toBe '1'
done()
, 1000
Any suggestion for work around?
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/jest/issues/42#issuecomment-93879167.

waitsFor won't work for this case because I just want to wait a certain amount of time elapsed before execute the function, as normal setTimeout does; waitsFor will wait that amount of time maximally for the execution of the function, so it actually executes it immediately.
setTimeout is more like sleep, waitsFor is not.

Like this? (sorry I don't know CoffeeScript, but hopefully you get the idea)
it("edit routes", function() {
    runs(function() {
        riot.route("todos/edit/1");
    });

    waitsFor(function() {
        return todo_presenter.edit.mock.calls === 1;
    }, "presenter to be called", 1000);

    runs(function() {
        expect(todo_presenter.edit.mock.calls[0][0]).toBe(1)
    });
});

The above should do exactly as your example, without setTimeout. Again, you should never use setTimeout in tests, it's a bad practice. The above script does the same, and potentially saves your test runner a lot of time.

It works, great!
BTW, not sure why setTimeout is considered bad in tests. For me it looks normal if I want to assert event handler to be called, in which the event is dispatched asynchronously.

Andrew, imagine the following scenario:

Your test has a timeout that waits 5 seconds before checking that a
callback is complete
The callback completes after 500ms
The test will be IDLE for 4.5 seconds more which is a complete waste of
time.

Now, put the above scenario in a test suite with 300 tests and imagine how
long it would take for that suite to run. Or what if you are running your
tests as you write code? It can quickly get frustrating to wait extra
unneeded time for this. Feel free to Google this too if you need more
information.
On 20 April 2015 at 07:43, Andrew Feng<EMAIL_ADDRESS>wrote:

It works, great!
BTW, not sure why setTimeout is considered bad in tests. For me it looks
normal if I want to assert event handler to be called, in which the event
is dispatched asynchronously.
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/jest/issues/42#issuecomment-94324406.

It's kind of an edge-case but I'm working to fix a problem which comes from updating input components asynchronously. First thing I wanted to do is write some async tests, but there is no facility in react for this. Any chance that this will still be considered, it can be useful for edge cases.

waitsFor is not a thing in jasmine 2 so how do you it there?

See http://jasmine.github.io/2.0/introduction.html#section-Asynchronous_Support
jasmine 2, pit and runAllTimers should provide enough options for async testing.

Just so you know, jasmine-pid doesn't seem to work with Jasmine 2 at all.
The solution is to use jest.useRealTimers() and jasmine's own async mechanism.
   it("takes a long time", function(done) {
      // do something
      setTimeout(function() {
        // run your expectation
        done();
      }, 1000);
    });

We have extensive documentation on how to work with async/await and Promises: http://facebook.github.io/jest/docs/tutorial-async.html#content

@cpojer the above link is broken

http://facebook.github.io/jest/docs/en/tutorial-async.html#content


Content of WebView scales depending on width

What package does this bug report belong to?
webview_flutter
What target platforms are you seeing this bug on?
Android
Have you already upgraded your packages?
Yes
Dependency versions
pubspec.lock
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
  async:
    dependency: transitive
    description:
      name: async
      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
      url: "https://pub.dev"
    source: hosted
    version: "2.11.0"
  boolean_selector:
    dependency: transitive
    description:
      name: boolean_selector
      sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.1"
  characters:
    dependency: transitive
    description:
      name: characters
      sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.0"
  clock:
    dependency: transitive
    description:
      name: clock
      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
      url: "https://pub.dev"
    source: hosted
    version: "1.1.1"
  collection:
    dependency: transitive
    description:
      name: collection
      sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
      url: "https://pub.dev"
    source: hosted
    version: "1.18.0"
  cupertino_icons:
    dependency: "direct main"
    description:
      name: cupertino_icons
      sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
      url: "https://pub.dev"
    source: hosted
    version: "1.0.8"
  fake_async:
    dependency: transitive
    description:
      name: fake_async
      sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.1"
  flutter:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_lints:
    dependency: "direct dev"
    description:
      name: flutter_lints
      sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.2"
  flutter_test:
    dependency: "direct dev"
    description: flutter
    source: sdk
    version: "0.0.0"
  leak_tracker:
    dependency: transitive
    description:
      name: leak_tracker
      sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
      url: "https://pub.dev"
    source: hosted
    version: "10.0.4"
  leak_tracker_flutter_testing:
    dependency: transitive
    description:
      name: leak_tracker_flutter_testing
      sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.3"
  leak_tracker_testing:
    dependency: transitive
    description:
      name: leak_tracker_testing
      sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.1"
  lints:
    dependency: transitive
    description:
      name: lints
      sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
      url: "https://pub.dev"
    source: hosted
    version: "3.0.0"
  matcher:
    dependency: transitive
    description:
      name: matcher
      sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
      url: "https://pub.dev"
    source: hosted
    version: "0.12.16+1"
  material_color_utilities:
    dependency: transitive
    description:
      name: material_color_utilities
      sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
      url: "https://pub.dev"
    source: hosted
    version: "0.8.0"
  meta:
    dependency: transitive
    description:
      name: meta
      sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
      url: "https://pub.dev"
    source: hosted
    version: "1.12.0"
  path:
    dependency: transitive
    description:
      name: path
      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
      url: "https://pub.dev"
    source: hosted
    version: "1.9.0"
  plugin_platform_interface:
    dependency: transitive
    description:
      name: plugin_platform_interface
      sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.8"
  sky_engine:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.99"
  source_span:
    dependency: transitive
    description:
      name: source_span
      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
      url: "https://pub.dev"
    source: hosted
    version: "1.10.0"
  stack_trace:
    dependency: transitive
    description:
      name: stack_trace
      sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
      url: "https://pub.dev"
    source: hosted
    version: "1.11.1"
  stream_channel:
    dependency: transitive
    description:
      name: stream_channel
      sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
      url: "https://pub.dev"
    source: hosted
    version: "2.1.2"
  string_scanner:
    dependency: transitive
    description:
      name: string_scanner
      sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
      url: "https://pub.dev"
    source: hosted
    version: "1.2.0"
  term_glyph:
    dependency: transitive
    description:
      name: term_glyph
      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
      url: "https://pub.dev"
    source: hosted
    version: "1.2.1"
  test_api:
    dependency: transitive
    description:
      name: test_api
      sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
      url: "https://pub.dev"
    source: hosted
    version: "0.7.0"
  vector_math:
    dependency: transitive
    description:
      name: vector_math
      sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.4"
  vm_service:
    dependency: transitive
    description:
      name: vm_service
      sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
      url: "https://pub.dev"
    source: hosted
    version: "14.2.1"
  webview_flutter:
    dependency: "direct main"
    description:
      name: webview_flutter
      sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522"
      url: "https://pub.dev"
    source: hosted
    version: "4.8.0"
  webview_flutter_android:
    dependency: transitive
    description:
      name: webview_flutter_android
      sha256: f42447ca49523f11d8f70abea55ea211b3cafe172dd7a0e7ac007bb35dd356dc
      url: "https://pub.dev"
    source: hosted
    version: "3.16.4"
  webview_flutter_platform_interface:
    dependency: transitive
    description:
      name: webview_flutter_platform_interface
      sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d
      url: "https://pub.dev"
    source: hosted
    version: "2.10.0"
  webview_flutter_wkwebview:
    dependency: transitive
    description:
      name: webview_flutter_wkwebview
      sha256: "7affdf9d680c015b11587181171d3cad8093e449db1f7d9f0f08f4f33d24f9a0"
      url: "https://pub.dev"
    source: hosted
    version: "3.13.1"
sdks:
  dart: ">=3.4.3 <4.0.0"
  flutter: ">=3.22.0"

Steps to reproduce
Create a WebViewWidget and change its width
Check out the provided code sample and update the width of the WebViewWidget with the buttons in the app bar.
Expected results
The height of the content remains the same
Actual results
It seems like the content scales depending on the available width. However, on small widths, the height remains the same. In the code sample, the scaling is especially visible in landscape orientation but affects portrait orientation nonetheless.
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() async {
  runApp(
    MaterialApp(
      home: WebViewExample(),
    ),
  );
}

class WebViewExample extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _WebViewExampleState();
}

class _WebViewExampleState extends State<WebViewExample> {
  double width = 0.5;
  WebViewController? controller;

  @override
  Widget build(BuildContext context) {
    if (controller == null) {
      controller = WebViewController();
      controller!.loadHtmlString(
        '

',
      );
    }

    return Scaffold(
      appBar: AppBar(actions: [
        IconButton(
          onPressed: () {
            setState(() {
              width -= 0.1;
            });
          },
          icon: Icon(Icons.remove),
        ),
        IconButton(
          onPressed: () {
            setState(() {
              width += 0.1;
            });
          },
          icon: Icon(Icons.add),
        ),
      ]),
      body: Container(
        width: MediaQuery.of(context).size.width * this.width,
        child: WebViewWidget(
          controller: controller!,
        ),
      ),
    );
  }
}

Screenshots or Videos

Screenshots / Video demonstration

Logs
Logs
https://pastebin.com/BCx8du3u

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.22.2, on Microsoft Windows [Version 10.0.19045.4412], locale de-DE)
    • Flutter version 3.22.2 on channel stable at C:\Users\Niels\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (2 days ago), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc4)
    • Android SDK at C:\Users\Niels\AppData\Local\Android\Sdk
    • Platform android-34, build-tools 34.0.0-rc4
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Users\Niels\AppData\Local\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.6)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.8.34525.116
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • 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.12+7-b1504.28-7817840)

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

[√] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 13 (API 33) (emulator)
    • Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.19045.4412]
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 125.0.6422.142
    • Edge (web)                   • edge          • web-javascript • Microsoft Edge 125.0.2535.85

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

• No issues found!```

I see this issue on both Android and iOS apps.
Debugging webview on iOS via Safari, I see the height of red HTML div is not changed (always is 480) when I increase WebViewWidget width.

On Android with chrome://inspect/#devices, I can't inspect it currently. If anyone can do that, please share in comments. Thanks.
Labeling the issue for other's input.

Demo issue
https://github.com/flutter/flutter/assets/104349824/a6d342c5-71db-4155-bee8-f5b372aca02c

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.22.2 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (31 hours ago), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.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 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 2023.3)
    • 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
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

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

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 125.0.6422.142

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

• No issues found!

[!] Flutter (Channel master, 3.23.0-13.0.pre.147, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.23.0-13.0.pre.147 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 dccc26a28a (18 minutes ago), 2024-06-06 23:04:28 -0400
    • Engine revision 5d5e0ee910
    • Dart version 3.5.0 (build 3.5.0-233.0.dev)
    • DevTools version 2.36.0
    • 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 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.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 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 2023.3)
    • 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
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

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

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 125.0.6422.142

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

! Doctor found issues in 1 category.

Webviews auto-zoom on Android as of https://github.com/flutter/plugins/pull/4417. Looking at the PR it's not clear if we have to set overview mode and wide viewport in order to enable zoom in the first place, or if that is something we should make conditional.
This is expected behavior based on what we are currently calling internally, but we can investigate whether making those calls optional is viable.

So, if I understand the responses correctly, disabling zoom (which is absolutely fine in my use case) should fix the issue? That would be nice, but it doesn't work in my case. Setting enableZoom to false on the controller changes nothing, see the updated code example in my initial post. Keep in mind, that I am not trying to zoom via gestures or anything, The zoom factor changes simply based on the available width of the element.


x64: Refactor and fill out some gpr-vs-xmm bits

This PR refactors some gpr-to-xmm-and-back pieces of the x64 backend along with some new AVX instructions, namely:

The movd and movq instructions now have dedicated helpers with AVX special cases like all other vector-related instructions.
The mov_rmi_to_xmm function is no longer an auto-conversion between RegMemImm and XmmMemImm since it performs conversions via register moves while all other register-to-register conversions were simply asserting that the register was of the right type.
AVX lowerings were added for movd, movq, vcvtsi2s{s,d}, and v{,p}movmsk{b,ps,pd}

@cfallin or @abrown, could one of you review this?


KL, PolicyEntropy, PolicyLoss go to NaN after 31,455 episodes

Hi there,
I have created a variant of the HumanStandup-v2 environment in gym which has a much simpler simulated robot that is represented as a mujoco formatted xml file.  I have tested this model both in mujoco and in gym and it seems to work fine.
I tested the HumanStandup-v2 training on my hw/sw configuration and it worked well to 50,000 episodes.  I then ran the identical setup with our robot model with the same reward function as the standard HumanStandup-v2.  The only substantive difference between these two is the mujoco model.
When I ran the training on our model I get:
***** Episode 31455, Mean R = 28911.0 *****
Beta: 6.91
ExplainedVarNew: 0.913
ExplainedVarOld: 0.812
KL: nan
PolicyEntropy: nan
PolicyLoss: nan
Steps: 672
ValFuncLoss: 114
Traceback (most recent call last):
File "./train.py", line 334, in
main(**vars(args))
File "./train.py", line 290, in main
trajectories = run_policy(env, policy, scaler, logger, episodes=batch_size)
File "./train.py", line 135, in run_policy
observes, actions, rewards, unscaled_obs = run_episode(env, policy, scaler)
File "./train.py", line 105, in run_episode
obs, reward, done, _ = env.step(np.squeeze(action, axis=0))
File "/home/david/source/gym/gym/wrappers/monitor.py", line 31, in step
observation, reward, done, info = self.env.step(action)
File "/home/david/source/gym/gym/wrappers/time_limit.py", line 31, in step
observation, reward, done, info = self.env.step(action)
File "/home/david/source/gym/gym/envs/Senbionic/ballbotEnv.py", line 28, in step
self.do_simulation(a, self.frame_skip)
File "/home/david/source/gym/gym/envs/mujoco/mujoco_env.py", line 100, in do_simulation
self.sim.step()
File "source/mujoco-py/mujoco_py/mjsim.pyx", line 119, in mujoco_py.cymj.MjSim.step
File "source/mujoco-py/mujoco_py/cymj.pyx", line 115, in mujoco_py.cymj.wrap_mujoco_warning.exit
File "source/mujoco-py/mujoco_py/cymj.pyx", line 75, in mujoco_py.cymj.c_warning_callback
File "/home/david/.conda/envs/gym35/lib/python3.5/site-packages/mujoco_py-<IP_ADDRESS>-py3.5.egg/mujoco_py/builder.py", line 319, in user_warning_raise_exception
raise MujocoException('Got MuJoCo Warning: {}'.format(warn))
mujoco_py.builder.MujocoException: Got MuJoCo Warning: Unknown warning type Time = 0.0000.
I ran it again and it did the same thing at Episode 1280.
Any suggestions on how to approach overcoming this?
Many thanks for any advice..

Were you able to get your humanoid to stand up? If so, would love to see a video.

On Apr 26, 2018, at 1:24 PM, David Clement<EMAIL_ADDRESS>wrote:
Closed #21 https://github.com/pat-coady/trpo/issues/21.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/pat-coady/trpo/issues/21#event-1597083627, or mute the thread https://github.com/notifications/unsubscribe-auth/AWdFxOnlwqmtBmw8A3HUL-yGQoVhOg0Mks5tsgLCgaJpZM4TbBCP.

Hi Patrick,
I only ran 50,000 episodes but it seemed to be working well.
https://youtu.be/KEHqKpSNuJ0
Cool stuff 😎
David
Sent from my iPhone

On Apr 27, 2018, at 4:18 AM, Patrick Coady<EMAIL_ADDRESS>wrote:
Were you able to get your humanoid to stand up? If so, would love to see a video.

On Apr 26, 2018, at 1:24 PM, David Clement<EMAIL_ADDRESS>wrote:
Closed #21 https://github.com/pat-coady/trpo/issues/21.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/pat-coady/trpo/issues/21#event-1597083627, or mute the thread https://github.com/notifications/unsubscribe-auth/AWdFxOnlwqmtBmw8A3HUL-yGQoVhOg0Mks5tsgLCgaJpZM4TbBCP.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

It seemed to go away by reconfiguring the mujoco model parameters. I believe it was just mujoco hitting an "exploding" result causing a cascade effect.

@David-Clement-Senbionic Hi David, I also have the same problem, I create a new Mujoco humanoid model with humanlike parameters but at some point my system is exploding like  yours. How did you manage to reconfigure your mujoco model parameters? Also if it is possible did you change the reward function for standing up?

@David-Clement-Senbionic  my mistake, the code is already shared :D but mujoco optimization is still an issue for me. Any help would be appreciated :)


[tdp] Add attached file titles to activity search index

For the TDP activity search, the title(s) of file attachments are added to the search index for each activity page.

Additions
An additional elastic search field is added to hold the file titles.
Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code follows the standards laid out in the CFPB development guidelines

@mrclay looks like more tests are needed in https://github.com/cfpb/consumerfinance.gov/blob/main/cfgov/teachers_digital_platform/tests/test_documents.py to meet coverage requirements.


tablemodelview 404 errors

I'm getting 404 errors on the tablemodelview edit and show pages (routes: /tablemodelview/show/xxx and /tablemodelview/edit/xxx). The list menu works fine. This the second time I've had this issue, the first time being several weeks ago and that time I only solved by wiping the config database and starting again.
The tables themselves continue to work in slices and I can still add and remove tables.
All tables are affected (regardless of datasource - I have two datasources set up, one MySQL and one Postgres), also regardless of whether they were created before or after the error started occuring.
In my deployment I run caravel inside a docker container and I'm on caravel 0.8.9. My production deployment shows this issue, however if I run locally I don't have the issue (they both point at the same configuration DB). I've run both the dev server and gunicorn locally and both are fine. Restarting the production server has no effect, likewise aws ecr get-login
Looking at the logs for our production version all I see is a worker timeout:
[2016-05-12 11:27:25 +0000] [129] [INFO] Worker exiting (pid: 129)```

If I switch to the debug server in production it still doesn't work and I get this message when loading the tablemodelview/list view:
```/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/compiler.py:575: SAWarning: Can't resolve label reference u'changed_on desc'; converting to text() (this warning may be suppressed after 10 occurrences)
  util.ellipses_string(element.element))
/usr/local/lib/python2.7/site-packages/flask_appbuilder/fields.py:98: UserWarning: allow_blank=True does not do anything for QuerySelectMultipleField.
  warnings.warn('allow_blank=True does not do anything for QuerySelectMultipleField.')```

I have a similar problem, not sure, but I guess it's the same problem.
Instead of TableView, my problem is on DruidDatasourceModelView: when I access /druiddatasourcemodelview/edit/5, it's always 404, when datasource with id 5 actually really exists.
After I traced the code, I figured out the cause: DruidMetricInlineView is one of the related views of  DruidDatasourceModelView, so the 404 error is not thrown when searching for the datasource, it's thrown when finding the DruidMetricInlineView. Flask AppBuilder wants to find a DruidMetricInlineView with id=93 according to one of the variable in the (probably cookie-based) session, but that record is actually deleted. So there is no chance to clean that variable in the session. I think it is a bad design of Flask AppBuilder to let the page to be dependent on the session, I would expect those information to be passed by the query string.
You can check whether your problem is the same as mine by checking whether there has been any deleted record in TableColumnInlineView or SqlMetricInlineView (both are related views of TableModelView). Or you can simply try cleaning the cookie in the browser.
But in the long term, there should be some way to fix this problem either by improving the design of caravel or Flask AppBuilder. It really harms the user experience for it's so confusing when the page is dependent on the session rather than the url.

Yes, it's a Flask App Builder bug that we should tackle in that code base. In the meantime the workaround is to clear your cookies for this domain.

Looks like it has been fixed already, closing.


Support multiple dotenvfiles (consider using dotenv-flow)

Is your feature request related to a problem?
Next.js has many .env files and a rich system of overrides: https://nextjs.org/docs/basic-features/environment-variables
I would like to be able to push in a way that repects this.
Describe the solution you'd like
Use dotenv-flow https://www.npmjs.com/package/dotenv-flow to read files for a given environment:
pnpm vercel-env-push staging preview production. # reads .env .env.local .env.staging .env.staging.local

Describe alternatives you've considered
The alternative would be to list all the .env files.  This is more flexible.  However, since there are already a variable number of vercel environments, the cli API would not be as straightforward.
Additional Context
I have this use case and would be happy to work on this.
Thanks fo your consideration @HiDeoo!

Thanks for you suggestion.
This is something I initially thought of when starting this project but decided to ditch the idea at the time as I didn't really need this feature and also lack of time to resolve some design decisions.

Use dotenv-flow npmjs.com/package/dotenv-flow to read files for a given environment:

It looks like dotenv-flow does not have the same loading order as the one used for example by Next.js. Even tho this tool is not limited to Next.js, I guess we should maybe follow the one used by Next.js. Any thoughts on this?

I don't think (not sure about this one) that we can use @next/env tho to read environment variables as it may automatically populates process.env which we don't really need, we only want the variables. If this is the case, I guess we could use dotenv-flow parse() function and specify the files we want in the proper order to mimic the one used by Next.js if we go with that order.

We should also make sure to preserve the dotenv-expand feature.

Regarding your command example:

pnpm vercel-env-push staging preview production. # reads .env .env.local .env.staging .env.staging.local

I assume staging is an arbitrary name to search for additional .env file(s) matching this name? I initially totally missed that and thought staging was a supported environment. To avoid this kind of confusion, I think that the behaviour of relying on automatic .env file(s) loading & merging should be gated behind an option expecting the name. The command should also list all the .env file(s) found and used before confirmation.

I also assume .env, .env.local, .env.staging & .env.staging.local are all the .env file(s) found and all of them are applied to both preview and production in your example?

Next.js default environment variable load order only supports production, development and test for NODE_ENV values. Should NODE_ENV even be considered in our case? Or should we only search for .env file(s) matching the name the user specified?

Should .env & .env.local always be included too? Should we provide an option to skip them?

What if the .env file(s) are not in the current directory? I assume this case would not be supported with this feature?

there are already a variable number of vercel environments

Aren't development, preview and production the only supported environments?

After thinking about all this, I'm still not sure about the design regarding this feature.
Supporting multiple filenames like you said makes the CLI less straightforward, e.g. pnpm vercel-env-push .env .env.local .env.staging .env.staging.local preview production but makes it more configurable as the user can exactly specify the files the explicitly want in the order they want, e.g. pnpm vercel-env-push .env .env.staging .env.staging.local preview production (.env.local is ignored in this example).
There is also the idea of supporting globs, e.g. pnpm vercel-env-push .env* preview production or pnpm vercel-env-push .env.{staging,production}* preview production


[User.Sql] publish password to Connection Secret

Description of your changes
To effectively use this MR within higher level abstractions like https://github.com/upbound/configuration-gcp-database and eventually https://github.com/upbound/platform-ref-gcp/ we need a reliable way to expose SQL User password through the connection secret
I have:

[x] Read and followed Crossplane's contribution process.
[x] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested
diff --git a/examples/sql/user.yaml b/examples/sql/user.yaml
index dbe3e7f9..987fb3a7 100644
--- a/examples/sql/user.yaml
+++ b/examples/sql/user.yaml
@@ -48,7 +48,7 @@ metadata:
   labels:
     testing.upbound.io/example-name: example_instance
   # ${Rand...} is not valid YAML and is used with automated testing
-  name: example-instance-${Rand.RFC1123Subdomain}
+  name: example-instance-yury-test
 spec:
   forProvider:
     region: "us-central1"

k apply -f examples/sql/user.yaml
...
 k get -f examples/sql/user.yaml
NAME                                   READY   SYNCED   EXTERNAL-NAME   AGE
user.sql.gcp.upbound.io/example-user   True    True     example-user    16m

NAME                      TYPE     DATA   AGE
secret/example-sql-user   Opaque   1      16m

NAME                                                             READY   SYNCED   EXTERNAL-NAME                AGE
databaseinstance.sql.gcp.upbound.io/example-instance-yury-test   True    True     example-instance-yury-test   16m

k view-secret -n upbound-system example-sql-db-user-secret
Multiple sub keys found. Specify another argument, one of:
-> attribute.password
-> password

 k view-secret -n upbound-system example-sql-db-user-secret password
changeme%

Plus uptest below

I do not have access rights to this repo. @turkenf  please feel free to merge it in. Alternatively, @jeanduplessis , feel free to give me merge access rights :D


Remove package-lock.json and update npm commands to yarn

Fixes #828

Actually, let's stick to npm right now. We have too much guides & instructions using npm and it make things more complicated for newcomers. You can revert everything to npm and remove the yarn lock file.
Maybe we can also add it to the .gitignore file to avoid other people committing it by accident.

Account number: 8ff37590e4dda7710e1201e8a5d2da8482eae257590871f5b0e6b41ee02aa2e4


Importing 3rd party package ruamel.yaml anywhere causes failure to validate workflow

To reproduce:

Checkout https://github.com/temporalio/samples-python
poetry add ruamel.yaml
Add import ruamel.yaml to the top of hello/hello_activity.py
poetry run hello/hello_activity.py

This produces the error here: https://gist.github.com/adamh-oai/dfdb9b07b89bf3cee10da34ba2582805
Important parts:
  File "/Users/adamh/.virtualenvs/temporalio-samples-G-Ux_4V2-py3.11/lib/python3.11/site-packages/ruamel/yaml/representer.py", line 1132, in <module>
    RoundTripRepresenter.add_representer(TimeStamp, RoundTripRepresenter.represent_datetime)
  File "/Users/adamh/.virtualenvs/temporalio-samples-G-Ux_4V2-py3.11/lib/python3.11/site-packages/ruamel/yaml/representer.py", line 135, in add_representer
    cls.yaml_representers[data_type] = representer
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
TypeError: unhashable type: '_RestrictedProxy'

The above exception was the direct cause of the following exception:
...
  File "/Users/adamh/.virtualenvs/temporalio-samples-G-Ux_4V2-py3.11/lib/python3.11/site-packages/temporalio/worker/_workflow.py", line 118, in __init__
    raise RuntimeError(f"Failed validating workflow {defn.name}") from err
RuntimeError: Failed validating workflow GreetingWorkflow

This behavior is surprising to me because the workflow/activity is not actually using the ruamel package.  The error persists if I move the workflow/activity to a separate module and wrap in a imports_passed_through block.  Wrapping the ruamel import in this same block does resolve the error.  It seems like the ruamel import may have side effects on other modules.  So, I have a workaround, but (short of disabling sandboxing entirely) I'm concerned that in a large codebase with unpredictable 3rd party libraries this will be a recurring issue.

This is a sandbox issue. Despite those short "hello" samples being in the same file, we actually recommend workflows be in their own file. Can you replicate if the workflows are in a separate file and import the activities via "passthrough" similar to what's shown in the quickstart of the README: https://github.com/temporalio/sdk-python?tab=readme-ov-file#implementing-a-workflow?

Yes, it happens if the workflows are in their own module and imported via an unsafe block:

The error persists if I move the workflow/activity to a separate module and wrap in a imports_passed_through block. Wrapping the ruamel import in this same block does resolve the error. It seems like the ruamel import may have side effects on other modules. So, I have a workaround, but (short of disabling sandboxing entirely) I'm concerned that in a large codebase with unpredictable 3rd party libraries this will be a recurring issue.

A related issue: https://github.com/temporalio/sdk-python/issues/301

Yes, it happens if the workflows are in their own module and imported via an unsafe block:

Ah, I see the bug already opened for making the proxy item hashable. I wonder then if this is a duplicate of that. In this case our wrapping of datetime causes this issue.

Wrapping the ruamel import in this same block does resolve the error. It seems like the ruamel import may have side effects on other modules.

To confirm, are you using this library inside the workflow and want the import reloaded every time the workflow is run? We recommend passing through all imports you know you'll use deterministically and/or you don't want completely reloaded every time.

I'm concerned that in a large codebase with unpredictable 3rd party libraries this will be a recurring issue.

Yes, most do not use many third party libraries inside their workflows, mostly only in activities and other code. But yes, our goal is to try our best to make third party libraries usable inside workflows but these hiccups happen here and there and we need to fix the linked bug.

To confirm, are you using this library inside the workflow and want the import reloaded every time the workflow is run?

This import is not used inside the workflow; in the real case where I hit this I was using it to load a yaml file for configuring the temporal client, but the workflows themselves don't import it or use it.

but the workflows themselves don't import it or use it.

This error only occurs in workflow code when loading it in a sandbox, so somehow this yaml code is getting executed in a workflow. Maybe the activity imports weren't being passed through when you split the workflow file off onto its own?

Same issue. I ended up removing ruamel entirely but I found that adding the following to the very first __init__.py file seems to help:
from temporalio import workflow

with workflow.unsafe.imports_passed_through():
    import ruamel.yaml

    # also- msgpack if installed
    import msgpack

@cretz it would be really helpful to add this suggestion / explanation to the error though. It took up hours to track this down and fix :(

or maybe a whitelist of common libraries in the temporal python sdk itself? that's probably not super wise but would save so much confusion

We don't really control the error here unfortunately. We do have docs at https://github.com/temporalio/sdk-python?tab=readme-ov-file#workflow-sandbox that say in bold:

For performance and behavior reasons, users are encouraged to pass through all third party modules whose calls will be deterministic

This error only occurs in workflow code when loading it in a sandbox, so somehow this yaml code is getting executed/loaded in a workflow.

The way I interpreted it is that because ruamel patches datetime, it's implicitly used in the the workflow even though it's not imported.  FWIW, I can't repro this right now but it was weirdly inconsistent earlier as well so not sure what's going on; since someone else ran into it I assume this is a real issue.  Ideally ruamel would just Not Do That, but I'm also not sure why it does or what other options there are.
The main issue is that an innocuous change in another part of the codebase that doesn't touch anything temporal related can cause temporal sandbox failures.

because ruamel patches datetime

Ah, I was not aware of this (unfamiliar with the library). So we proxy datetime to avoid people doing things like calling now(). But that proxying can be disabled. We have to do this for Pydantic because of an issue in Python subclass checking. So you can create a new sandbox runner without datetime proxied like https://github.com/temporalio/samples-python/blob/171b5e5b205167fdff4231978857c4efe1cd6225/pydantic_converter/worker.py#L45-L65.

The main issue is that an innocuous change in another part of the codebase that doesn't touch anything temporal related can cause temporal sandbox failures.

I am not sure any Python library can help this if patching is occurring. If you patch Python stdlib and some unrelated code expects it to work the stdlib way, it may fail.


populateAny

typespec: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/apicenter/ApiCenter.Management
It used to be populateAny, but now it's populate

This is the same issue as https://github.com/Azure/autorest.go/issues/1221.


Include md output: teams message until teams user commands

Related to #3754

Update the documentation to include the md output for the commands under the service:

teams documentation location

This in place for the following command groups:

teams message
teams messagesettings
teams report
teams tab
teams team
teams user

You can reference the commands planner plan and planner bucket. They are already contain the Markdown reponse in their documentation.
For more information what guidelines to follow, be sure to check out the epic issue #3754

Can I work on this?

U sure can!


Martini Maze tests

Martini only has one version (and is unmaintained), so this is minimal risk re: other versions of the framework.

The Errno::ECONNRESET failure in CI should be fixed now in the master branch of Maze runner, but there's still failures around the wrong number of requests being received in multiple runs.


Fix "make test common-tests" errors

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: hklai
If they are not already assigned, you can assign the PR to them by writing /assign @hklai in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS
security/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/lgtm

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: sebastienvas
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: hklai
If they are not already assigned, you can assign the PR to them by writing /assign @hklai in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS
security/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/approve

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: sebastienvas
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: hklai
If they are not already assigned, you can assign the PR to them by writing /assign @hklai in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS
security/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/lgtm
/approve

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ozevren, sebastienvas
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: hklai
If they are not already assigned, you can assign the PR to them by writing /assign @hklai in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [ozevren]
security/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

New changes are detected. LGTM label has been removed.

@ozevren @sebastienvas for some reason circleci test did not start.  Please LGTM again.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: JimmyCYJ, ozevren, sebastienvas
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: hklai
If they are not already assigned, you can assign the PR to them by writing /assign @hklai in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [ozevren]
security/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: hklai, JimmyCYJ, ozevren, sebastienvas
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [hklai,ozevren]
security/OWNERS [hklai]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Fix README

Description
Changes
Impact range
Operational Requirements
Related Issue

Supplement

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 83.21%. Comparing base (fd20dbd) to head (3d541a7).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #53   +/-   ##
=======================================
  Coverage   83.21%   83.21%
=======================================
  Files           6        6
  Lines         137      137
=======================================
  Hits          114      114
  Misses         22       22
  Partials        1        1

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


Move copyDependencies logic from "deploy" to "create" goal

As a follow-up to https://github.com/OpenLiberty/ci.maven/issues/705, I think it would be better to move the exact logic we're doing now, in the 3.3-M4 "stream", from the 'deploy' goal to the 'create' goal.
This would allow the build of a Docker image (or even a layer within another image), with a Liberty server, with dependencies copied into place, without having to dummy up an app deployment, only to then get rid of it.
E.g. I might have a layer with command:
 RUN mvn liberty:create package

with the intention of compiling/packaging a WAR, installing Liberty and creating a server, generating/copying Liberty config into place (from Maven properties), and copying dependencies.
The create mojo would need to be expanded to use the dependency resolution scopes that the deploy mojo is using.   I'd imagine this shouldn't have any negative side effects, since I can't think of why "create" is currently using the dependency scope much.

Fixed in #1004


Navigation mesh always recalculating

The navigation mesh seems to always update when entities are moved in a scene even if the entities arent relevant to the navigation mesh
To Reproduce
Steps to reproduce the behavior:

Setup navigation for a scene (navigationmesh, navigation bounding box)
Move an entity that has no influence on navigation (different collision layer, entity without collision at all)
Watch the navigationmesh reclaculate and update

Expected behavior
Navigation should only be updated if navigation related objects update in the scene.
If objects that are not relevant to the navigation mesh update their values the navigation mesh should not be updated.
Additional context
It seems that any value changes trigger a recalculate. even if e.g. a property of some component is changed the nav mesh is recalculated

How were you checking to see if this was recalculating? I have a dynamic mesh and delegate to NavigationMeshUpdated and I’m not seeing this behavior but I am experiencing some performance hits so I’m curious if it is this issue.

This was related to editor behavior. Im pretty sure i had a look at the source code of this problem too and i think i talked to Xen2 on the discord about this briefly. but its all to long ago for me to remember and i have no idea what the current state of this is.

Ok thanks. I ran some profiling and watched the performance of my box and found my issue to be unrelated. In don’t believe I’m seeing this occurring, I will be adding some rigid body Colliders to the scene today and will continue to monitor.

@GideonUng is this fixed ?

@Eideren dunno. its a 5 year old issue. i havent used stride in just as long. just deleted all old issues i had open anywhere.
let someone who uses stride open an issue if it still exists.

no one has looked at this in 5 years. why is it being reopened

As long as no one validated whether the issue still exist, which it most likely does given how little that area changed over the years, there is no reason to close it. Why are you being this contentious about such a trivial subject ? It is still useful for us, just leave it open, it's not like anyone would bother you given how little traction it is getting.


[BUG] Cannot connect to KeyVault on Mac OS X

Describe the bug
I'm running a .NET Framework project on Mac under mono and trying to use KeyVault but cannot get get access token due to Windows CLI command is used instead of Bash command. According to the output, "cmd.exe" is used, although the source for tag "1.2.0" indicates the Bash command should be used is OS is not Windows.
Exception or Stack Trace
[ERROR] FATAL UNHANDLED EXCEPTION: Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException: Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/05392f7e-58e6-4648-9ee2-95041f83c964. Exception Message: Tried the following 4 methods to get an access token, but none of them worked.
Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/05392f7e-58e6-4648-9ee2-95041f83c964. Exception Message: Tried to get token using Managed Service Identity. Unable to connect to the Managed Service Identity (MSI) endpoint. Please check that you are running on an Azure resource that has MSI setup.
Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/05392f7e-58e6-4648-9ee2-95041f83c964. Exception Message: Tried to get token using Visual Studio. Access token could not be acquired. Environment variable LOCALAPPDATA not set.
Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/05392f7e-58e6-4648-9ee2-95041f83c964. Exception Message: Tried to get token using Azure CLI. Access token could not be acquired. ApplicationName='cmd.exe', CommandLine='/c az account get-access-token -o json --resource https://vault.azure.net', CurrentDirectory='', Native error= Cannot find the specified file
Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/05392f7e-58e6-4648-9ee2-95041f83c964. Exception Message: Tried to get token using Active Directory Integrated Authentication. Access token could not be acquired. secur32.dll

To Reproduce
Run a .NET Framework 4.6.1 project and try to connect to KeyVault on Mac OS X
Code Snippet
Add the code snippet that causes the issue.
Expected behavior
The expected behaviour would be that the AzureCliAccessTokenProvider would use the Bash command.
Setup (please complete the following information):

OS: Mac OS X (Output from Runtime OSDescription: Unix <IP_ADDRESS>)
IDE : Jetbrains Rider
Microsoft.Azure.Services.AppAuthentication 1.2.0
Mono <IP_ADDRESS>

Thank you for the issue. I think there may be two things here. One is the root issue that may have caused the fallback logic to kick in and the other is that in one fallback path the logic was trying to run cmd.exe on a MacOS device.
Management team, can you take a look?

I'm looking into it.

I have the same problem trying to login in to Azure with managed identity in Visual Studio Code.
Error message:
Parameters: Connection String: [No connection string specified], Resource: https://management.azure.com, Authority: . Exception Message: Tried the following 3 methods to get an access token, but none of them worked.
Parameters: Connection String: [No connection string specified], Resource: https://management.azure.com, Authority: . Exception Message: Tried to get token using Managed Service Identity. Unable to connect to the Managed Service Identity (MSI) endpoint. Please check that you are running on an Azure resource that has MSI setup.
Parameters: Connection String: [No connection string specified], Resource: https://management.azure.com, Authority: . Exception Message: Tried to get token using Visual Studio. Access token could not be acquired. Environment variable LOCALAPPDATA not set.
Parameters: Connection String: [No connection string specified], Resource: https://management.azure.com, Authority: . Exception Message: Tried to get token using Azure CLI. Access token could not be acquired.

Same here. Trying to run Selenium UI tests on hosted Azure DevOps MacOs agents. First we run an "az login" for service principal & set the subscription with the KeyVault, then we run UI tests which are reading from the KeyVault and are depending on the AZ CLI authentication.
On Windows, it works fine, but on MacOs, we are running into that issue.
What is the ETA for this issue?
Thanks.

@erich-wang Have you had a chance to look into the issue any deeper?

I'm asking AppAuthentication team to look deeper

Hi all, thank you for reporting this issue. I was able to repro the issue on both OSX and Ubuntu using Mono. This issue should be fixed in the latest AppAuth 1.3.1 release, please try it out and let us know if you have any issues!

@aheintz, please close the issue after verification, thanks.

Closing issue since fix was released in Aug.

Please reopen this issue because in the latest AppAuth is no more working, but in the AppAuth 1.3.1 yes.

Please reopen this issue because in the latest AppAuth is no more working, but in the AppAuth 1.3.1 yes.

This issue only occurs in MacOS, the latest version in Windows is working well

I am having the same issue as @soydachi does (MacOS). Please help us!

@soydachi, @Rorschachly, two asks:

Can you please check and see if it also happens on AppAuth 1.6.0, just released?
What .NET targets are you using?

@soydachi, @Rorschachly, two asks:

Can you please check and see if it also happens on AppAuth 1.6.0, just released?
What .NET targets are you using?

Reply to @anaismiller

I started to use AppAuth 1.6.0. The problem still happens every time I first start the program. But after maybe several minutes, it could work, still non-deternimistic.
ASP .Net Core 3.1 (Same problem when using ASP .Net Core 2.2)

Thanks.

@anaismiller
My latest solution to this issue is to run dotnet run in my native terminal, then shut down the process. Then click run debug on Visual Studio. And it works. But I don't think this is a long time solution, either.
Thanks.

@soydachi, @Rorschachly, two asks:

Can you please check and see if it also happens on AppAuth 1.6.0, just released?
What .NET targets are you using?

@anaismiller Is there a solution to this problem? I am facing the same issue with MacOS. I'm currently using the latest version of AppAuth i.e. 1.6.1.

I had the same problem on my mac and after some digging in source I found that AzureCLIPath was not set on my machine.
I installed Azure CLI through homebrew so my path to it was '/opt/homebrew/bin/az'
I put this line into ˜/.zshrc (I use zsh, if you use bash then it should go into ˜/.bash_profile )
export AzureCLIPath=/opt/homebrew/bin
restarted related apps and now it works :-)

Hi, I am really struggling here, how did you guys fix this problem?
I still can't connect to key vault, failing to get the access token from visual studio for Mac 2022(preview)..

Hi, I am really struggling here, how did you guys fix this problem? I still can't connect to key vault, failing to get the access token from visual studio for Mac 2022(preview)..

I would recommend trying VS Code, and using Terminal command line to run it.

Hi, thanks for your reply its working on viscose although I had to change the target framework from 3.1 to 6.0.1
now how can I make it work on Visual studio ?


remove path

[Enter feedback here]

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

ID: a3700ae6-6561-51cc-607b-eca5d00c1266
Version Independent ID: 1a907e55-5f7a-adb0-6fb0-9b534309049d
Content: Azure Storage File Shares client library for .NET - Azure for .NET Developers
Content Source: api/overview/azure/storage.files.shares-readme.md
Service: storage
Product: azure
Technology: azure
GitHub Login: @maggiepint
Microsoft Alias: magpint

Hi @jonathanLincoqueo.   Can you offer a bit more context on your feedback?   I'm not sure of what difficulty you're running into or suggestion that you're making here.


Add server-side flow run timeouts

The API should have a mechanism for detecting flow runs that are "stuck" and have not done work over some period of time. These flow runs should be marked as CRASHED. In contrast to https://github.com/PrefectHQ/prefect-intel/issues/7, these timeouts cannot rely on client-side cancellation methods as they aim to address cases where those methods fail.

However, this timeout is actually for detecting "stuck" runs and is the "time since the flow run communicated with the API successfully" rather than the full runtime of the flow. This suggests configuration should be separate unless we just want to have the server mark a flow as crashed some fixed number of seconds after the flow run exceeds its timeout without reporting a failed state.

Additionally, this type of crash detection is generally expected to be enabled for all flow runs — further suggesting it may be better configured separately.

#7 was implemented for this work item instead.


Some sort of middleware support

Description
The request interception, response interception, etc is quite useful and I wouldn't think would add much to the library. Is there a way to simulate this on top of the library? (I don't see an obvious one)
Proposal
Add a single pre-flight and post-flight hook argument to the methods.
Checklist

[X] I’m willing to open a PR for this (see CONTRIBUTING.md)

I like the idea in general. But one difficulty to adding this is the type inference.
Or should the middleware not be transform-based (and if not, what would be a good example)?

Yeah, it's an interesting question. I'd think some well placed generic type args probably do what's needed, but it's often more about "fetch like things." i.e. we currently do request timing and telemetry, header manipulation, generic retry handling, and oauth retry handling (got a 401 saying token expire? go run this async function and then try again. got a 403? return the error). It very well may be that this can all be done different ways (for example being able to pass in a fetch function), but if that's the case then the feature is examples/docs.

Just here to say that we use middleware in the same way: for metrics etc., which don't "care" about the types.
Of course it would always be nice to have types available in the middleware, but not imo a hard requirement.

I still want to track this! But since I’m merging this repo in with openapi-typescript I’ve moved the discussion here.


Update README.md

Updated readme for the new merged convert_for_testing.py file.

There is a merge conflict. I made these changes on the README file. No need to merge this again.


Is that possible to get a "NetStandard 2.0" package

https://github.com/betalgo/openai/tree/feature/DotNetStandardSupport we are working on it but it will take a bit of time. much appreciate it if you want to contribute.


Add CUDA to build system

Adds cuda and nvrtc to the build system in preparation for @corybarr's point cloud PRs.
A couple things to note:

We're now installing nvidia drivers on Linux CI so that we can link against libcuda.so. The reason we don't need to do this on Windows is because we can link against the import library nvcuda.lib which is provided in packman. As far as I can tell there's no equivalent workflow in Linux.
nvrtc doesn't ship with kit so we need to install it manually in exts/cesium.omniverse/bin and include it in our release zip. Unfortunately this adds an extra 40MB to the zip. It would be better if we did kernel compilation at build time instead of runtime, then we could drop nvrtc. @corybarr is this possible?

If we end up doing something like shader variants where we compile on-the-fly based on something like styling choices, then we'd need nvrtc or would have to compile the variants.

Yeah I was thinking the same. It could be really powerful for on-the-fly styling. Though anything that can be built up-front should be built up-front.

Let's hold off on merging this until after the release. No point in adding 40MB into the release zip until we're actually using nvrtc. I'll mark as draft until then.

https://github.com/CesiumGS/cesium-omniverse/pull/456/commits/671489ad19f9bb8055fd52eec41dfc83e89652c7 fixed CentOS builds. This should be ready to go now.

@lilleyse I noticed a runtime error if nvrtc-builtins64_118.dll wasn't also added. Might make sense to add it to another PR.

@corybarr follow up PR for nvrtc-builtins: https://github.com/CesiumGS/cesium-omniverse/pull/465


Negative binomial in the Methods section

Thank you for your work!
Just noticing that the notations o^* and of the subindex k were not really explained in the methods section when you defined the Negative binomial
https://epiforecasts.io/covid/methods.html

Hello,
There is a more detailed explanation of the methods in the paper, we are trying to move the methods section off the website and point to the paper instead :)


Numpy memory error

Hi,
First of all, many thanks for sharing your work, this is exactly what I was looking for !
I wanted to use your program to mute laughs from a TV show (TBBT) just for curiosity ;)
So I followed your instructions:

extract the audio track from a single 20 minutes episode using ffmpeg -i input.mp4 output.wav
mute laughs using your pre-trained model python laughr.py --model ../assets/trained-model.h5 --mute-laughs output.wav temp-output.wav

First, it silently failed with only a "Process stopped" with no output.
I did some investigation and it appears that I have a Memory Error at the end of the _split_features_into_windows method. Line 59 : return np.array(windows)
After further investigation on the size of windows array, here are some figures:

my windows is composed of 3419280 elements
each element is itself a numpy ndarray of about 300 float64 elements for a total size of 2368 bytes
so the total size of the windows seems to be 8GB

I have only 8GB of RAM on my machine. Do you have any hint to overcome this problem (I heard about the sparse matrices) ? Did you ever encountered this limitation during your own tests ?

I think sparse array/matrix will not help, because the 3419280x30x296 or so (windows x steps x features) is mostly filled with values, sparse helps when most of the values are 0.
The "easiest" solution would be to split your output.wav into smaller parts, for example:
ffmpeg -ss 0 -t 10:00 -i input.mp4 -o output1.wav
ffmpeg -ss 10:00 -t 10:00 -i input.mp4 -o output2.wav

A "better" solution would be adding a chunking mechanism that takes the input file in parts, runs it through the model for classification, saves the classifications but discards the computed feature array.
The chunking could probably be added after RawClip uses soundfile to get the raw sound file data, and before extract features.
In my env, 32GB RAM so didn't run into this.  The librosa feature functions did take considerable memory, hence why there is code to chunk that part into smaller pieces for long input.

Yeah, in the meantime, I checked the sparsity of the matrix and came to the same conclusion.
Indeed, splitting the input audio track solves the problem.
Also, I can see that the numpy array type is float64. I was wondering if using float16 instead would have some downsides (this allowed me to store the array in memory without having to split the input file).


Option allowEmptyValues set to true is not working

node version: v10.20.1
dotenv-safe version: 8.2.0
I set the allowEmptyValues to true but I'm still getting the MissingEnvVarsError.
Here is my code:
require('dotenv-safe').config({
  allowEmptyValues: true,
  path: path.join(__dirname, '../../.env'),
  example: path.join(__dirname, '../../.env.example'),
});

I couldn't figure out what I'm missing here. Thank you for your help!

same issue here, the allowEmptyValues set to true does nothing.

@Yosr-Ch @antonedvard
If you have an .env.example file and .env file as mentioned below it will even throw an error with the allowEmptyValues as true if that is your case this will help.
# .env.example, committed to repo
SECRET=
TOKEN=
KEY=

# .env, private
SECRET=topsecret
TOKEN=

The allowEmptyValues just allows to have an empty value in the .env file but does not allow to skip a key in the .env file.
So the .env file should look like this to work with allowEmptyValues: true
# .env, private
SECRET=topsecret
TOKEN=
KEY=

(almost 4 years later... 💀)
@jehincastic's description is correct. Note that the option is named allowEmptyValues, meaning that it only cares about the values and not the presence of keys.


prettier rule to reorder style rules in specificity order

similar to tailwind, style={{ '--padding-left': 2, '--padding': 1 }} would become style={{ '--padding': 1, '--padding-left': 2 }} on save because longhand properties win specificity war in tokenami stylesheet.
the css utility should be used to enforce last-style-wins if preferred.

Hey @jjenzz, I'm not sure what do you mean by "prettier rule". Shouldn't we create a plugin?

@ubmit yep, a prettier plugin similar to tailwind 👍

i originally created this ticket bcos tokenami allowed styling directly in the style attribute, but now the css utility is required. so, i actually think the css utility could handle this without a prettier plugin.

i'm going to explore solving this with the css utility https://github.com/tokenami/tokenami/issues/214


Editable Table Example

Hi,
Thank you for providing such a useful Ruby gem and for adding Glimmer DSL for LibUI to the list of supported LibUI DSLs.
I wanted to note that I just released initial support for the table control, supporting only text_columns for the time being.
Your implementation of examples/basic_table.rb was a very helpful reference for my DSL reimplementation.
Glimmer DSL for LibUI examples/basic_table.rb
require 'glimmer-dsl-libui'

include Glimmer

data = [
  %w[cat meow],
  %w[dog woof],
  %w[chicken cock-a-doodle-doo],
  %w[hourse neigh],
  %w[cow moo]
]

window('Animal sounds', 300, 200) {
  horizontal_box {
    table {
      text_column('Animal')
      text_column('Description')

      cell_rows data
    }
  }

  on_closing do
    puts 'Bye Bye'
  end
}.show

I aim to support different types of table columns eventually like image_column, and I am able to pursue this effort on my own.
That said, I also plan to support editable tables, and this is where I need help. I was wondering if you could provide examples/editable_table.rb example similar to examples/basic_table.rb that simply enables table editing.
What I understand so far on my own is that these two lines of code need to have their last argument changed from -1 to -2 to enable editing (I tried it successfully):
UI.table_append_text_column(table, 'Animal', 0, -1)
UI.table_append_text_column(table, 'Description', 1, -1)

becomes
UI.table_append_text_column(table, 'Animal', 0, -2)
UI.table_append_text_column(table, 'Description', 1, -2)

Next, to persist changes of edited values, this block of code needs to do extra work:
model_handler.SetCellValue = rbcallback(0, [0]) {}

That is exactly where I need your insight. I do not know Fiddle at all (a big reason why I highly appreciate your Ruby gem) so I do not understand how to hook into libui correctly to receive updated cell values and save them into the data array (e.g. via some code like data[row][column] = value)
If you could help me by producing the suggested examples/editable_table.rb example, I would be very grateful!
Best regards,
Andy

Hi @AndyObtiva
As you said, it looks like you need to write SetCellValue.
I think the following example will work.
model_handler.SetCellValue = rbcallback(0, [1, 1, 4, 4, 1]) do |_, _, row, column, val|
  data[row][column] = UI.table_value_string(val).to_s
end

Thank you for creating glimmer-dsl-libui!

rbcallback(0, [1, 1, 4, 4, 1])
require 'fiddle'
Fiddle.constants.each do |c|
  if c.to_s.start_with? "TYPE_"
    puts "#{c}\t#{Fiddle.const_get(c)}"
  end
end

TYPE_VOID       0
TYPE_CHAR       2
TYPE_SHORT      3
TYPE_LONG_LONG  6
TYPE_INT8_T     2
TYPE_INT16_T    3
TYPE_INT32_T    4
TYPE_INT64_T    6
TYPE_FLOAT      7
TYPE_DOUBLE     8
TYPE_VARIADIC   9
TYPE_CONST_STRING       10
TYPE_SIZE_T     -6
TYPE_SSIZE_T    6
TYPE_PTRDIFF_T  6
TYPE_INTPTR_T   6
TYPE_UINTPTR_T  -6
TYPE_LONG       5
TYPE_INT        4
TYPE_VOIDP      1

Thank you. The code worked. I'll look into amending it for the different column types in the future.
I just released Glimmer DSL for LibUI 0.0.19 with examples/editable_table.rb:
require 'glimmer-dsl-libui'

include Glimmer

data = [
  %w[cat meow],
  %w[dog woof],
  %w[chicken cock-a-doodle-doo],
  %w[hourse neigh],
  %w[cow moo]
]

window('Editable animal sounds', 300, 200) {
  horizontal_box {
    table {
      text_column('Animal')
      text_column('Description')

      cell_rows data
      editable true
    }
  }

  on_closing do
    puts 'Bye Bye'
  end
}.show

I will be providing another version that enables setting the editable property on specific column(s) only instead of the entire table
Cheers.


Mismatch in name between defaults package

Just wanted to note a mismatch in names between this package, backports.shutil_get_terminal_size-feedstock and the same package in the defaults channel which is named get_terminal_size.  If we could find a way to agree upon a preferred name that would be helpful to everyone involved.

What is the policy for namespaced package on defaults?

The policy for namespace packages in defaults is a bit... confusing.  Let me check with the team tomorrow and see if I can summarize the situation before proposing any changes.

I checked with the team and there was not an official policy for naming namespaced packages in defaults.  Rather the names up to this point were chosen for convenience to keep the filenames short.  This is not ideal and we will be changing the names for our  packages to match the more logical ones used by conda-forge.
I'll think it makes sense to keep this issue open until the new packages are available in defaults to let users know about this name mismatch.


[v2.8] Bump webhook to the v0.4.4

Bump to version from here: https://github.com/rancher/charts/pull/3868

Webhook updated to v0.4.5-rc2 here https://github.com/rancher/rancher/pull/45415

We had to bump to a newer version of webhook to pull in a fix.


Integrate automated accessibility-testing

Sounds good: https://github.com/nature/pa11y
Want.

The Hacken.in Way :tm:

Yip! But the polite variant. :smile_cat:
Full blown Hacken.in in would be:
$ echo "i-need-dis-gem" >> Gemfile && bundle
$ git commit -a -m "Let's try this some time\!"; git push

push -f :wink:


Make input base structure

Currently, there are only views.
So make the input base structure to App.
https://pub.dev/packages/acceptable
https://webbibouroku.com/Blog/Article/flutter-bottomsheet

Done.


Complete absence of conditions typing in em::find and similar methods

Describe the bug
You can put to em::find anything as $where condition that completely breaks any compile time checking of queries. It would be nice to keep typing at least for simple cases as for example TypeORM provides.

Well the problem here is that where also allows to pass smart query conditions, e.g. for entity with age property the where can be also { 'age:gte': 18 } .
Not sure how to approach this, can you think of a way to accept smart query conditions as well as preserve the original entity type?

Not sure how to approach this, can you think of a way to accept smart query conditions as well as preserve the original entity type?

I suggest the following define types:
Query<T> and SmartQuery and allow the following type as query condition (isn't correct typescrypt, but illustrates the idea):
query: DeepPartial<T> | {$where: Query<T>} | {$smartWhere: SmartQuery}

the main idea that by default is just set of entity fields, but you can also use field $where that allow to write typed queries or field $smartWhere that allow to write untyped smart queries.

Yeah that would be a possible way, although breaking change and with worse API (but type safe where possible).
What would be Query<T> and SmartQuery types defined like? I guess SmartQuery would be still just Record<string, any>? And Query<T> would have those operators added to T properties?
I will try to look into possibilities of using generated types as that would allow to keep current API, but strongly typed (generated types would have all possible query operators included for each property). It would be still breaking change most probably, and I am still not sure if its even possible :]

Yeah that would be a possible way, although breaking change and with worse API (but type safe where possible).

From my point of view safe em queries are much more important and welcome than beautiful API ), but it just IMHO.

I am still not sure if its even possible :]

There was proposal about strongly typed QueryBuilder for TypeORM based on typescripts types only. Also there is https://github.com/Ff00ff/mammoth

I want to spend some time for PoC, but now i am really overloaded.

I am still not sure if its even possible :]

There was proposal about strongly typed QueryBuilder for TypeORM based on typescripts types only. Also there is https://github.com/Ff00ff/mammoth

What I meant is to have strict types including those smart query operators... That would be possible only with generated types I guess.
Or maybe we could let users whitelist additionally allowed properties, something like:
type FilterQuery<T, K> = Partial<T> & { [TK in K]: any };
const where: FilterQuery<Author, 'age:gte'> = { age: '123', 'age:gte': 18 };

And having it by default (without the K parameter) require only valid entity props. In the end one can always do const where: FilterQuery<Author> = { name: { $gte: 18 }; which would be even shorter that the previous version with K parameter.
I think I could just remove that age:gte syntax and allow only the object one (which should be easily type-able). I agree that type-safety is more important that syntax sugar, especially this one that is easily rewritten to type-checkable form.
After few hours of prototyping, here is a proof of concept:
    type Author = { name: string; age: number; born: Date };
    type GroupOperator = keyof typeof QueryBuilderHelper.GROUP_OPERATORS;
    type Operator = keyof typeof QueryBuilderHelper.OPERATORS | GroupOperator;
    type OperatorMap<T> = { [OP in Operator]?: T | T[] };
    type GroupOperatorMap<T> = { [OP in GroupOperator]?: T | T[] };
    type Query<T> = { [K in keyof T]? : OperatorMap<T[K]> | T[K] };
    type FilterQuery<T> = GroupOperatorMap<Query<T>> & Query<T>;
    const where: FilterQuery<Author> = { age: { $gte: 18 }, born: { $lt: new Date() }, $and: [{ name: { $ne: 'John' } }, { name: { $in: ['Ben', 'Paul'] } }] };

There will be definitely still some cases not covered, but a good start I would say :] I will change this into feature issue and include this in v3 as its gonna be breaking change.
http://www.typescriptlang.org/play/#code/KYDwDg9gTgLgBAYwDYEMDOa4EUCuwoCeAQjgJZIAm+AEsEmPnAN4BQccaMKMpCcUwFBQgA7JATgBxAEoB5AKoAFAPqzFAUWkBBACqzpAZTgBeZm3ZwAJChEUAXHADkNio4A059pegPH0d+YAvgDc5pzcvPyCwmISapq6+kamrBZWwACOvsYBaZakIr4FuRaWIgW+IhDwxR55AOYwvgB8JV6NwC05daVITU4APG1WfZ2D3Z5WImOOAIQT7CEsgSwsMAQMcFo4MAAW0CbMcCIoALZjnFAF9cFwKPVjIjinAEb4ty-QhXAAItzAcCW602kigEBwYFkDCg3AOpgA1sACBAAGZwYHAVHYPCEEjkKhQWj0fAAOhkChU8W0ekMoQxcCh+FhUEOiORaIxWNw+GIZEoNDo0JJVMShjgAB8pGCIYyYTBoHSNgDZcyALIoMADHTNQ5MOAAbTUcAKDOhzIAugB+Bw6CVwHT682AxUg6WQs3yqDqzXa3UGo0m0Hg91Mz1Wm12h1OoFK7E8rU6lIGgDSxpEcDZWJ0VrgDhVnu9Wv1yfNOslDpLzrWsYAYuQYPhuYQE4cgzKPdBC02CAmdQAyOPN7WhFgAelHcAAbigkKQKCwEKJOHAAO67fDAAAMDjroyg3YG2z20ETR3uYz1lg6DgAjAAOQFVxciZdrjc3nf1xs4ntH-ZQU89XPBxL2vOB70BNw4E+KBvkvPoHGmFdfn+AAKABKSCrBcBx9T1E5zhAqYZgAKQgXYREcR9Aig-CzgvKwKgNRwiGASioMcRQUBwJBHGjQFoxHcc02nWd52fV91wEAAmT89wPP8Tz9c8b2kgBmW8HyWCT4DfAQNLgXcG33H9Dx2f9ALuB4iKvBtfHvKjAifJddKk4AABY5OMhTzKUpMYLgqwwMcVS1Mc5yX1cjcAFYvO-eNFIA5TrKOWyZgcrCAt8Cg0BQdxsNsXC6MI1LplvdTqNo456Jspj9TUjiuJ4vjqMElggA

It would be nice to get some workaround for reference fields. It is common to use
   organization: Organization
}

find(User, { organization: 123 }}

It can be solution based on DeepPartial like
   organization: Organization
}

find(User, { organization: { id: 123} }}

Agreed, this will need to be supported. I will try to come up with a way to preserve current way with directly passing the PK first.

I think I finally cracked this one. Need to clean it up but this is working already:
class Organization {
  id: number;
  name: string;
}
interface Organization extends IdentifiedEntity<Organization> { }

class Author {
  id: number;
  name: string;
  age: number;
  born: Date;
  organization: Organization;
}
interface Author extends IdentifiedEntity<Author> { }

// valid
const where1: FilterQuery<Author> = { age: { $gte: 18 } };
const where2: FilterQuery<Author> = { age: { $gte: 18 }, born: { $lt: new Date() }, $and: [{ name: { $ne: 'John' } }, { name: { $in: ['Ben', 'Paul'] } }] };
const where3: FilterQuery<Author> = { organization: new Organization() };
const where4: FilterQuery<Author> = { $and: [{ organization: new Organization() }, { name: 'Bob' }] };
const where5: FilterQuery<Author> = new Author();
const where6: FilterQuery<Author> = 1;
const where7: FilterQuery<Author> = { organization: 1 };

// invalid
const invalid1: FilterQuery<Author> = { age123: 18 }; // prop not exist
const invalid2: FilterQuery<Author> = { age: { $gte: '18' } }; // wrong type, age is number
const invalid3: FilterQuery<Author> = { born: { $gte: '123' } }; // wrong type, born is Date
const invalid4: FilterQuery<Author> = { age: { $gte: 18 }, $and: [{ name: { $ne: '123' } }, { name: { $in: [3, 'Paul'] } }] }; // name should be string, checks also values in the array
const invalid5: FilterQuery<Author> = { age: { $gte: '18' }, $and: [{ name: { $ne: '123' } }, { name: { $in: ['3', 'Paul'] } }] }; // age should be number
const invalid6: FilterQuery<Author> = '1'; // wrong type of PK, id is number
const invalid7: FilterQuery<Author> = new Organization(); // wrong class, should be Author
const invalid8: FilterQuery<Author> = { organization: new Author() }; // wrong property class, should be Organization
const invalid9: FilterQuery<Author> = { organization: '1' }; // wrong property PK type, Organization.id is number

What is the definition of FilterQuery?

export type DeepPartial<T> = {
  [P in keyof T]?: T[P] extends (infer U)[]
    ? DeepPartial<U>[]
    : T[P] extends ReadonlyArray<infer U>
      ? ReadonlyArray<DeepPartial<U>>
      : DeepPartial<T[P]>
};

export type Primary<T> = T extends { __primaryKey: infer PK } ? PK : never;

type GroupOperator = keyof typeof QueryBuilderHelper.GROUP_OPERATORS;
type Operator = keyof typeof QueryBuilderHelper.OPERATORS | GroupOperator;
type OperatorMap<T> = { [OP in Operator]?: DeepPartial<T> | DeepPartial<T>[] };
type GroupOperatorMap<T> = { [OP in GroupOperator]?: DeepPartial<T> | DeepPartial<T>[] };
type StringProp<T> = T extends string ? string | RegExp : never;
type EntityOrPrimary<T> = Partial<T> | DeepPartial<T> | Primary<T>;
type CollectionItem<T> = T extends Collection<infer K> ? EntityOrPrimary<K> : never;
type FilterValue<T> = OperatorMap<T> | DeepPartial<T> | StringProp<T> | EntityOrPrimary<T> | EntityOrPrimary<T>[] | CollectionItem<T> | CollectionItem<T>[];
type Query<T> = { [K in keyof T]?: (T[K] extends IEntity ? Query<T[K]> : FilterValue<T[K]>) | null } | FilterValue<T>;

export type FilterQuery<T> = GroupOperatorMap<Query<T>> & Query<T>;

But still there are some edge cases not covered.

What do you think if we force explicit usage of Ref type for entities definition like
class Bar {
}

class Foo {
  bar1: Ref<Bar>;
  bar2: Ref<Bar>;
}

It can be possible to derive type with resolved references
type DeRef<T> = T extends Ref<infer U> ? U : T;

type DeRefObject<T> = {[k in keyof T]: DeRef<T[k]>}

type DeRefPartial<T, K extends keyof T> = {
  [k in keyof T]: k extends K ? DeRef<T[k]> : T[k]
}

This type can be used as basis of FilterQuery. Population can be done by de-referencing some path. Unfortunately there is no generic solution for this, but if we limit how deep population is the solution exists.
It will allow typed queries as well as typed population.

How would then look the actual query/find call and the population?

How would then look the actual query/find call and the population?

Let's consider reference definition and de-referenced type like this
class Ref<T> {
  async unwrap<T>(): Promise<T> {
    return {} as any;
  }
}

type DeRef<T> = T extends Ref<infer U> ? U : T;

We can defined type Populated like this (for now just one level of population):
type Populated<T, K extends keyof T> = {
  [k in keyof T]: k extends K ? DeRef<T[k]> : T[k]
}

If we have model
class Credentials {
}

class Address {
}

class User {
  credentials: Ref<Credentials>;
  address: Ref<Address>;
}

Type Populated<User, 'credentials'> will be resolved as
class User {
  credentials: Credentials;
 address: Ref<Address>;
}

Type Populated<User, 'credentials' | 'address'> will be resolved as
class User {
  credentials: Credentials;
  address: Address;
}

em.find(User, $were) will return List<User> but we can have an API like:
await em.find(User, $were)
   .populate('credentials')
   .populate('address')
   .from($from)
   .limit($limit)
   .exec()

this request will return List<Populated<User, 'credentials' | 'address'>>

The real problem is definition of DeepPopulate type based on nested path, but it can be solved by limiting nesting and definition of types Populate2, Populate3 and etc... populate function can have multiple signatures based on different about of parameters.

I think I got it working pretty well, but its so complex that the mysql EM test is failing in the CI :D But that can be fixed by simply splitting the test, its really huge and lot of FilterQuery assertions are made there...

Closing this now, available in 3.0.0-alpha.23. Please open new issues for bugs.


Intermittent TypeError: Cannot read property 'url' of undefined

https://github.com/GoogleChrome/puppeteer/blob/0467c346b1a23608001dd66d9fe49f147600baa6/lib/NetworkManager.js#L441
You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection:
 TypeError: Cannot read property 'url' of undefined
     at new Response (/var/www/node_modules/puppeteer/lib/NetworkManager.js:441:24)
     at NetworkManager._handleRequestRedirect (/var/www/node_modules/puppeteer/lib/NetworkManager.js:174:22)
     at NetworkManager._onRequestWillBeSent (/var/www/node_modules/puppeteer/lib/NetworkManager.js:221:12)
     at emitOne (events.js:116:13)
     at Session.emit (events.js:211:7)
     at Session._onMessage (/var/www/node_modules/puppeteer/lib/Connection.js:210:12)
     at Connection._onMessage (/var/www/node_modules/puppeteer/lib/Connection.js:105:19)
     at <anonymous>

Not sure where this is even coming from -- everything that I see has a catch, and my code is even working fine even when this error comes up.
Some malformed response being mishandled?

@avimar it looks like we miss the relevant requestWillBeSent event from protocol. Do you use browser targets to connect to the page? This would explain this.

I do have browser.on('targetcreated',interceptHandler) always triggering, to filter out css/images from loading.
Forgot to mention: this issue appears when running headless, but I hadn't seen it when running visible. But may not be exactly the same version.
Is that enough, or do you need more information? Can for sure test a tip-of-tree deploy.

Thanks, I no longer see that error.
However, after updating to master, some code stopped working:
await page.click('#selector');
await page.waitForNavigation({timeout:180000,waitUntil:'domcontentloaded'});

... I switched to a waitForSelector and now it works. Could this be related?

@avimar this particular patch should not regress the waitForNavigation functionality. However, others might :) I'd appreciate if you file your repro case for us to investigate!

Looks like #1412, disregard here.


MySQL/linux case sensitive compatibility

Hi all,
I use "LittleBear_ODM_1.1.1_MySQL.sql" example database with linux 64bit based platform. After executing this sql code, database was created and I could explore it (through phphmyadmin). Launching ODMTools, I give database coordinates and application tries to connect, unsuccessfully. Issue was about table names which were all lower case whereas ODMTools expected upper case like "DataValues" instead of "datavalues". So I changed all table names (except for "seriescatalog" which was still expected lower case).
Then ODMTools opened successfully and I could explore all the data series. I then tried to make some edits (see also "Lasso widget disabled " issue).
After saving edits, ODM could retrieve new variable (with Quality control level set to 1) in table "seriescatalog" but no data were shown on graph. In fact, these data had been written in a new table called "datavalues". This table has been created by ODMTools at the time I saved my edits.
I could fix this issue by changing line 525 in file in odmtools/odmservices/series_service.py to :
values.to_sql(name="DataValues", if_exists='append', con=self._session_factory.engine, index=False)  ## FAP 160127

instead of :
values.to_sql(name="datavalues", if_exists='append', con=self._session_factory.engine, index=False)

Please find attached the file I modified in Pull request "MySQL/linux case sensitive compatibility"
Best regards,
Florent

@fl0f I got this issue before, loading LBR data into MySQL DB.
I did disable MySQL case sensitive with table names in ubuntu linux as follows:
$ sudo emacs /etc/mysql/my.cnf
in this file, add this line "lower_case_table_names=1",

[mysqld]
#
# * Basic Settings
#
lower_case_table_names = 1
user            = mysql

and then restart mysql server,
$ sudo service mysql restart

Ok, thanks for the trick. However, there is not a long way to get your soft fully case sensitive compatible

sudo sed -i '/[mysqld]/a lower_case_table_names = 1 ' /etc/mysql/my.cnf
This is the way to make MySQL behave in an SQL compliant manner across all the Operating Systems that MySQL supports.

reference issue #161


Blobstore v<IP_ADDRESS>

What this PR does / why we need it:
Which issue this PR fixes:

fixes #1924
Special notes for your reviewer:
Release note:

fixes https://github.com/cubefs/cubefs/issues/1924


cloud-environment, response-normalization, database-management

[x] 06 Leveraging a Cloud Environment for Development
[x] 07 Response Normalization Strategies
[x] 08 Database Management and Modeling

google cloud environment reviewed but local dev environment will be used

response normalization strategies reviewed

sign up process finished


notmuch-mutt: init at 0.22

Motivation for this change
Has been my daily driver for ages but outside the nixpkgs repo. Might as well upstream it in case others need it.
Things done

[X] Tested using sandboxing
(nix.useChroot on NixOS,
or option build-use-chroot in nix.conf
on non-NixOS)
Built on platform(s)

[X] NixOS

[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Travis fails due to an issue compiling gnupg which I haven't touched.

Merged in https://github.com/NixOS/nixpkgs/commit/8c04c3c899cfa08e8a5e8a0e7b6d0b323f756ef6.

fetchurl can be dropped too, but you merged just before I pushed to the branch.