AnnotatedRegion not working on iOS (to set status bar icon color)

Internal: b/153083915 [Videos in attached bug]
I am currently trying to use the suggested AnnotatedRegion widget in order to control the status bar icon color.
Basically, after going to a new page which sets the status bar icon color, then going back to the original page, the original page status bar icon color is not reverted to the original one set by the AnnotatedRegion widget.
To reproduce:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(MaterialApp(
    title: 'Named Routes Demo',
    // Start the app with the "/" named route. In this case, the app starts
    // on the FirstScreen widget.
    initialRoute: '/',
    routes: {
      // When navigating to the "/" route, build the FirstScreen widget.
      '/': (context) => FirstScreen(),
      // When navigating to the "/second" route, build the SecondScreen widget.
      '/second': (context) => SecondScreen(),
    },
  ));
}

class FirstScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final systemUiOverlayStyle = const SystemUiOverlayStyle(
      statusBarColor: Colors.transparent,
      statusBarIconBrightness: Brightness.dark,
    );

    return AnnotatedRegion<SystemUiOverlayStyle>(
      value: systemUiOverlayStyle,
      child: Container(
        color: Colors.white,
        child: Center(
          child: RaisedButton(
            child: Text('Launch screen'),
            onPressed: () {
              // Navigate to the second screen using a named route.
              Navigator.pushNamed(context, '/second');
            },
          ),
        ),
      ),
    );
  }
}

class SecondScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        brightness: Brightness.dark,
        backgroundColor: Colors.black,
        title: Text("Second Screen"),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            // Navigate back to the first screen by popping the current route
            // off the stack.
            Navigator.pop(context);
          },
          child: Text('Go back!'),
        ),
      ),
    );
  }
}

It only occurs on iOS, on Android it works as expected (the status bar icon color reverts to original color when returning to the original page).

Similar problem to me. I need to change status bar color and i use this code in build method of a sample app to test it.
return Scaffold(
      body: Container(
        color: Colors.blue,
        child: AnnotatedRegion(
          value: SystemUiOverlayStyle.light.copyWith(
              statusBarColor: Colors.green,
              systemNavigationBarColor: Colors.orange,
              systemNavigationBarIconBrightness: Brightness.dark,
          ),
          child: SafeArea(
            child: LayoutBuilder(
              builder: (ctx, constr) => Container(
                color: Colors.pink,
              ),
            ),
          ),
        ),
      ),
    );

As you can see this is the result. Status bar is not green as i forced in AnnotationRegion but it's blue as parent container. Also i've tried to change icon brightness with no result.

I found different solutions but nothing work. I tried to move on all channels and problem still existing.
As you, this occours only on iOS, simulator and real device. Android works well instead.

I have a similar issue, on latest stable (1.12.13+hotfix.9) no matter what I do, I can't get the status bar to change on iOS, I've it set with the correct Brightness accordingly to dark or light theme on my app's theme, however, even though it should work "out-of-the-box", I've tried changing explicitly with SystemChrome.setSystemUIOverlayStyle or AnnonatedRegion, neither seem to make any difference.
A quick way to test it out is by navigating to a new route that only returns a AnnonatedRegion with a Container as child, the status bar color always keeps the same (based on system's theme color).
This has a slight buggy impact, specially when the user toggles between light/dark theme on app settings and see that the status bar is "gone", because for this app, light theme has a plain white background.

@mehmetf you need to set statusBarBrightness: Brightness.light in your first screen for it to work on iOS.
if you look at the doc it clearly says,
  /// The brightness of top status bar.
  ///
  /// Only honored in iOS.
  final Brightness statusBarBrightness;

  /// The brightness of the top status bar icons.
  ///
  /// Only honored in Android version M and greater.
  final Brightness statusBarIconBrightness;

@miguelpruivo I was having the same problem where nothing worked and finally this is how i got it to work, wrap the Scaffold by a Theme widget and pass in appBarTheme
Theme(
  data: ThemeData(
  appBarTheme: AppBarTheme(brightness: Brightness.light),
  // or you could use Theme.of(context).copywith() ...
  // the below would also get the job done
  // primaryColorBrightness: Brightness.light,
),
  child: Scaffold(
    appBar: AppBar(),
    // body:
    // ....

@ali-thowfeek thank you, anyway, that doesn't seem a very reliable way to do so. It should work only by setting it on the apps's MaterialApp theme itself as Scaffold picks exactly that brightness property from there.

any one found a solution ?
i should announcing my app this week , and this issue stop me

Reproduced with https://github.com/flutter/flutter/issues/54029#issuecomment-612623766 - AnnotatedRegion is working with android, but not with iOS

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-6.0.pre.90, on Mac OS X 10.15.6 19G73, locale en-GB)
    • Flutter version 1.21.0-6.0.pre.90 at /Users/nevercode/dev/flutter
    • Framework revision 531ee9452a (85 minutes ago), 2020-07-29 02:26:03 -0400
    • Engine revision 1ba310017c
    • Dart version 2.10.0 (build 2.10.0-1.0.dev 24c7666def)
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

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

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

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

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

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

[✓] Connected device (6 available)
    • Redmi Note 7 (mobile)       • 6345c469                                 • android-arm64  • Android 9 (API 28)
    • Nevercode’s iPhone (mobile) • b668e524315069f3db3661ac11ff1f66afafebdb • ios            • iOS 13.6
    • iPhone 11 Pro Max (mobile)  • 55C8466B-5367-492B-8EFE-EC45D980571F     • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-6 (simulator)
    • macOS (desktop)             • macos                                    • darwin-x64     • Mac OS X 10.15.6 19G73
    • Web Server (web)            • web-server                               • web-javascript • Flutter Tools
    • Chrome (web)                • chrome                                   • web-javascript • Google Chrome 84.0.4147.105

• No issues found!

Is there any update on this?

Is there any update on this?

FYI, if you use a sort of AppBar(in my case, SliverAppBar), it never changes the status bar.

Is there any solution?

Is there any solution?

Any update?

Simple and useful solution:
wrap your screen with SafeArea
Wrap SafeArea with Container
Give it the color your need.
return Container(
color: Colors.red,
child: SafeArea(
child: ....

I can still reproduce this issue on Master (3.7.0-24.0.pre.87), and I can confirm that it works as expected on Android.

Code Sample (Migrated to Flutter 3)
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(MaterialApp(
    title: 'Named Routes Demo',
    // Start the app with the "/" named route. In this case, the app starts
    // on the FirstScreen widget.
    initialRoute: '/',
    routes: {
      // When navigating to the "/" route, build the FirstScreen widget.
      '/': (context) => const FirstScreen(),
      // When navigating to the "/second" route, build the SecondScreen widget.
      '/second': (context) => const SecondScreen(),
    },
  ));
}

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

  @override
  Widget build(BuildContext context) {
    const systemUiOverlayStyle = SystemUiOverlayStyle(
      statusBarColor: Colors.transparent,
      statusBarIconBrightness: Brightness.dark,
    );

    return AnnotatedRegion<SystemUiOverlayStyle>(
      value: systemUiOverlayStyle,
      child: Container(
        color: Colors.white,
        child: Center(
          child: ElevatedButton(
            child: const Text('Launch screen'),
            onPressed: () {
              // Navigate to the second screen using a named route.
              Navigator.pushNamed(context, '/second');
            },
          ),
        ),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.black,
        title: const Text("Second Screen"),
        systemOverlayStyle: SystemUiOverlayStyle.light,
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // Navigate back to the first screen by popping the current route
            // off the stack.
            Navigator.pop(context);
          },
          child: const Text('Go back!'),
        ),
      ),
    );
  }
}

flutter doctor -v (Master)
[!] Flutter (Channel master, 3.7.0-24.0.pre.87, on macOS 13.1 22C65 darwin-arm64, locale en-US)
    • Flutter version 3.7.0-24.0.pre.87 on channel master at /Users/nabeelparkar/fvm/versions/master
    ! Warning: `dart` on your path resolves to /opt/homebrew/Cellar/dart/2.18.6/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nabeelparkar/fvm/versions/master. Consider adding /Users/nabeelparkar/fvm/versions/master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c35efdaa68 (6 hours ago), 2023-01-24 02:57:00 +0100
    • Engine revision 7d3233d26d
    • Dart version 3.0.0 (build 3.0.0-154.0.dev)
    • DevTools version 2.20.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nabeelparkar/Library/Android/sdk/
    • Platform android-33, build-tools 33.0.0
    • ANDROID_SDK_ROOT = /Users/nabeelparkar/Library/Android/sdk/
    • Java binary at: /Users/nabeelparkar/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/213.7172.25.2113.9123335/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

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

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /Applications/Brave Browser.app/Contents/MacOS/Brave Browser

[✓] Android Studio (version 2021.3)
    • Android Studio at /Users/nabeelparkar/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/213.7172.25.2113.9123335/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.1)
    • IntelliJ at /Users/nabeelparkar/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 71.3.6
    • Dart plugin version 223.8214.16

[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.1)
    • IntelliJ at /Users/nabeelparkar/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/223.8214.52/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.1 22C65 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Brave Browser <IP_ADDRESS>

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

! Doctor found issues in 1 category.

2023, still no one able to resolve it??

android no problem, iOS so dark....

2024, is there any answer for that or at least someone can let me know how to change the status bar colour in flutter app for a particular page?

Important thing the AnnotatedRegion should be the first widget in screen's widgets three, not nested
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

  @override
  Widget build(BuildContext context) {
    // AnnotatedRegion must be root of the screen widgets tree
    return const AnnotatedRegion<SystemUiOverlayStyle>(
      value: SystemUiOverlayStyle.light,
      child: Scaffold(
        backgroundColor: Colors.cyan, // background doesn't matter, just for status bar visibility
        body: Center(
          child: Text('Test screen with light status bar'),
        ),
      ),
    );
  }
}

@lukas-pierce  Am afraid your code doesn't work, am always did on the topest of widget treee, the setting nerver worked.

@lukas-pierce Am afraid your code doesn't work, am always did on the topest of widget treee, the setting nerver worked.

I know this task is often difficult to reproduce, just try copying my code into a separate page without any modifications and restarting your application a few times. After you catch the desired rendering, just gradually build up your code.
Why is it difficult to reproduce - you just need to know how the methods interacting with native code through channels work. I think that's the problem
https://docs.flutter.dev/platform-integration/platform-channels

Hi, for simple app, it might being bias mostly, if I paste it into any of complicated app's children page, it won't work. Dont konw why

Hi, for simple app, it might being bias mostly, if I paste it into any of complicated app's children page, it won't work. Dont konw why

Does your certain page has app bar? it may matter
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

  @override
  Widget build(BuildContext context) {
    return AnnotatedRegion<SystemUiOverlayStyle>(

      // If your screen has AppBar this not working because nested
      // AppBar has own style for status bar which overrides styles provides by AnnotatedRegion
      value: SystemUiOverlayStyle.light,

      child: Scaffold(
        appBar: AppBar(
          title: const Text('Test Status Bar Screen'),

          // So we need define this style here or globally using Theme
          systemOverlayStyle: SystemUiOverlayStyle.light,
        ),

        body: const Center(
          child: Text('Test Status Bar Screen'),
        ),
      ),
    );
  }
}

I am not mention about appBar top statusbar, I mean the bottom status bar, the bottomest on some full screen phones. Include iPhone

I am not mention about appBar top statusbar, I mean the bottom status bar, the bottomest on some full screen phones. Include iPhone, I just can not control it's color in each page easily

You are in wrong thread

For people who are still looking for a solution for this we have two options:

Using Appbar (if we have Scaffold)
Using AnnotatedRegion Widget (in case we don't need appbar especially while showing google map)

Both solutions are tested on android and ios
Tested on IOS 17.5 and Flutter 3.22.1

if you have Scaffold and wants to chanage The System Ui Overlays use this solution:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        systemOverlayStyle: const SystemUiOverlayStyle(
          statusBarColor: Colors.transparent,
          systemNavigationBarColor: Colors.black,
          statusBarIconBrightness: Brightness.light,
          statusBarBrightness: Brightness.dark,
          systemNavigationBarIconBrightness: Brightness.light,
        ),
        title: const Text('With App bar'),
        centerTitle: true,
      ),
      body: const Center(
        child: Text(Change Overly Styles with AppBar systemOverlayStyle property'),
      ),
    );
  }
}

Change Status Bar color in case you don't have appbar or you don't want even scaffold

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

  @override
  Widget build(BuildContext context) {
    return const AnnotatedRegion(
      value: SystemUiOverlayStyle(
          statusBarBrightness: Brightness.light,
          statusBarIconBrightness: Brightness.dark,
          systemNavigationBarColor: Colors.white,
          systemNavigationBarIconBrightness: Brightness.dark),
      child: Material(
        child: Center(
          child: Text('Change Overly Styles with Annotated Region Widget'),
        ),
      ),
    );
  }
}

For people who are still looking for a solution for this we have two options:

Using Appbar (if we have Scaffold)
Using AnnotatedRegion Widget (in case we don't need appbar especially while showing google map)

Both solutions are tested on android and ios
Tested on IOS 17.5 and Flutter 3.22.1

if you have Scaffold and wants to chanage The System Ui Overlays use this solution:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        systemOverlayStyle: const SystemUiOverlayStyle(
          statusBarColor: Colors.transparent,
          systemNavigationBarColor: Colors.black,
          statusBarIconBrightness: Brightness.light,
          statusBarBrightness: Brightness.dark,
          systemNavigationBarIconBrightness: Brightness.light,
        ),
        title: const Text('With App bar'),
        centerTitle: true,
      ),
      body: const Center(
        child: Text(Change Overly Styles with AppBar systemOverlayStyle property'),
      ),
    );
  }
}

Change Status Bar color in case you don't have appbar or you don't want even scaffold

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

  @override
  Widget build(BuildContext context) {
    return const AnnotatedRegion(
      value: SystemUiOverlayStyle(
          statusBarBrightness: Brightness.light,
          statusBarIconBrightness: Brightness.dark,
          systemNavigationBarColor: Colors.white,
          systemNavigationBarIconBrightness: Brightness.dark),
      child: Material(
        child: Center(
          child: Text('Change Overly Styles with Annotated Region Widget'),
        ),
      ),
    );
  }
}

First option works for me. Thank you.

What do we have to do to get stuff like this addressed in less than 4 years' time?
Heck, I'd be satisfied with reasonable documentation with working examples.

@michael-joseph-payne, can you provide specific use case you are dealing with? i may be able to help you as i have tested on both android and iOS, and for my case, it worked

@Firooz-Smart  I tried both of your examples above on iOS 17.5.1 and Flutter 3.22.3 and I can't get the color of the status bar to change.  I can get it to switch it's text from white to black by changing the statusBarBrightness, but to actually change the color of the status bar to blue (or whatever) doesn't work.  I wonder if there is something else that you have set up that makes it work for you?

@michael-joseph-payne, can you provide specific use case you are dealing with? i may be able to help you as i have tested on both android and iOS, and for my case, it worked

At the end of the day, I had to figure it out by playing with it.  There is a lot of subtlety to the way this works, and a lot of confusing deprecation messages.
Generally, it works well with a Scaffold but again - there is subtlety.  If using an app bar, use the first example.  If using a body only, use the second.  You may additionally need to use SafeArea to wrap the body on Android (to avoid the navigation bar).
Example when using body:
Scaffold(       appBar: AppBar(         systemUiOverlayStyle: SystemUiOverlayStyle.light.copyWith(           statusBarColor: Colors.black,           systemNavigationBarColor: Colors.black,           systemNavigationBarDividerColor: Colors.black,           systemNavigationBarContrastEnforced: true,         ),       ),       body: Widget(),     )
Example when using body:
Scaffold(       body: AnnotatedRegion<SystemUiOverlayStyle>(         value: SystemUiOverlayStyle.dark.copyWith(           statusBarColor: Colors.white,           statusBarIconBrightness: Brightness.dark,           systemNavigationBarDividerColor: Colors.white,           systemNavigationBarIconBrightness: Brightness.dark,           systemNavigationBarColor: Colors.white,         ),         child: ChildWIdget(),       ),     )


Update openai.py: Fix the bug where openai_proxy is not effective.

Fix the bug where ChatOpenAI().openai_proxy = HTTP_PROXY is not effective.
Reproduce&Test:
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI()
llm.openai_proxy = "http://<IP_ADDRESS>:8001"
llm.predict("Hello")

Closing because this won't work (httpx isn't imported where it's needed)! Also, could you try using ChatOpenAI(openai_proxy="...") instead, or using an environment variable like it's used in the docs?


nodeadm(bug): scope merge transformer with internal types

Issue #, if available:
Fixes: https://github.com/awslabs/amazon-eks-ami/issues/1928
Description of changes:
The current merge transformer acts when it detects the struct of the KubeletConfig and ContainerdConfig. instead, we can implement a transform for a specific field by using a new internal type.
also updated some of the crd ref docs to a newer version while reviewing build
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Testing Done

See this guide for recommended testing for PRs. Some tests may not apply. Completing tests and providing additional validation steps are not required, but it is recommended and may reduce review time and time to merge.

/ci


Implement EDUI-like pages for Datasources, Events & Utilities

More info can be found on the WG wiki.

Just as an update to this.
I've created a PageManager class that encapsulates all the logic to do with pages, including their children and page types. This cleans up the Blueprints Pages class a fair bit, and allows Page related logic to be reusable by extensions etc.
I hate the PageManager name, and as a manager it differs to the other managers because it doesn't return an object that it's managing (DatasourceManager returns Datasource) instead it just returns an array. This is partly due to we already have Page base class in the toolkit. The cleanest solution IMO is to actually make it a ViewManager which returns View objects and update the terminology accordingly, but tbh it's probably out of scope for this release and it's not totally essential (yet).
I haven't yet touched the ResourceManager concept just yet and I won't until tomorrow so I can think about it with a clear head :)

Thanks Brendan :)

The cleanest solution IMO is to actually make it a ViewManager which returns View objects and update the terminology accordingly, but tbh it's probably out of scope for this release and it's not totally essential (yet).

I remember a discussion some years ago where we decided to rename "Pages" to "Views". Symphony 2.4? :)

I've created a PageManager class that encapsulates all the logic to do with pages, including their children and page types. This cleans up the Blueprints Pages class a fair bit, and allows Page related logic to be reusable by extensions etc.

Cool! So I only need to add all the methods that I use for EDUI (like listing the page hierarchy, attaching/detaching resources, etc...).

I haven't yet touched the ResourceManager concept just yet and I won't until tomorrow so I can think about it with a clear head :)

Yeah, I still can't find a viable solution for it.

Ok, initial PageManager work has been committed. This pulls together all the random Page related logic that existed in the core into a single Manager class.
As I said before, I'm still not 100% on the name and the fact the Manager just returns arrays instead of Page objects. I would prefer to switch to ViewManager and return View objects. While we could do this switch in 2.4, we'd then have to worry about backwards compatibility for those functions that expect arrays instead of View objects. Undecided right now, but I think it might be worth doing the change now and migrating the language/concept in 2.4 (or 2.3, what's really to stop us?) /cc @nickdunn @creativedutchmen
I've removed the Manager class, it was a bit of a gimmick anyway, and the most important functions have been migrated to the FileResource interface. All file based managers now implement this interface.
@eKoeS, I've created a stub Sortable class inside /content/ that I think should hold an implementation of your Sorting class. I don't think it should sit in /toolkit as this functionality is only applicable on the backend. IMO the same holds true about your Filtering class (when/if you implement this). If you need to override the classes, (like you've done with DatasourceFiltering etc), I'd probably do this on the actual content.*.php file.
Hope that helps/makes sense!

Thanks a lot @brendo, very much appreciated, this is pure awesomeness! Can't wait to start working on that :)

Undecided right now, but I think it might be worth doing the change now and migrating the language/concept in 2.4

We discussed "pages" vs. "views" at the Symposium. While developers seemed to prefer "views", I made the point that three years of documentation, blogs and forum posts would then be out of date. I don't think this should be changed, or at least, not in the course of this issue anyway.

In that case, what if the 'pages' terminology remained but the implementation/api referred to it as 'views'

In that case, what if the 'pages' terminology remained but the implementation/api referred to it as 'views'

I like that.

In that case, what if the 'pages' terminology remained but the implementation/api referred to it as 'views'

If it doesn't cause confusion among developers, why not. Am I right saying that some docs will require editing anyway if we stick to "Views"?

The core documentation, definitely (although I'm not sure how much reference there actually is to Pages at the moment considering the PageManager class is new in 2.3). The documentation on the Symphony website? Not sure, I don't think we actually have any developer specific (like from an extension developer point of view) information about Pages at the moment do we?

Not sure, I don't think we actually have any developer specific (like from an extension developer point of view) information about Pages at the moment do we?

There is only the API documentation but that's generated from the core directly.

There are almost definitely extensions that reference tbl_pages (Members for example), we have a blueprintsPages class, years of forum pages talking about "pages", online docs referencing "pages", a workspace folder named pages, so could we please not consider changing the visible label to Views? Not in 2.3 anyway.
I don't think it would make sense to have a "views" class under the hood but a "pages" database table and a "pages" folder in the workspace. Feels like change for change's sake, and a change that might lead to confusion.

Feels like change for change's sake, and a change that might lead to confusion.

I disagree. The problem is this Manager is out of line with others and returns a simple array. All other managers return an object, whether it be a Datasource, Event or Entry. Being a PageManager, you'd assume the object returned is Page. This can't happen as Page is a base class Symphony uses for Frontend/Administration areas, so we're left looking for another name if we want to implementing a consistent behaviour.
I don't think we should create some 'temporary' class just to suit this, and while PageManager is new and doesn't have any concerns of backwards compatibility, we are open to change/rename it to whatever works best.
The idea of View is because it has been discussed and agreed on once before, so it seems logical.
A couple of things:

Changing it now is potentially confusing
How far do we go? Do we just rename the new class to use View and maintain all other page references (whether it be database names, delegates etc)
If we don't implement an object return now, when we do we will have to support the current behaviour and the new behaviour. Something that will suck and we'll wish we don't have to do and hope everyone just 'updates their extensions' so we don't have to deal with it.

So while that's how I feel about it, the Symphony 2.3 scope is blowing out and at this rate, we'll be lucky to have a release for 2011, so I'm happy to compromise and left the implementation as is.

What about renaming the actual Page object to BackendPage? That would allow us to solve all our problems at once, right here right now.

Except that's not true at all, PageManager is for Frontend pages.

PageManager is for Frontend pages.

Exactly, if we rename the current Page object to BackendPage we would have "Page" available for the PageManager class.

Except the base Page class is used by both Frontend and Backend pages at the moment, via XSLTPage and HTMLPage. It's alright, we'll just leave it, bigger fish to fry

Except the base Page class is used by both Frontend and Backend pages at the moment

Oh, cool! I didn't know :) Okay then.

One last thing: what if we refer to View as FrontendPage for now? I'll be silent from now on, I promise :-)

Uhm, I still have some doubts on how to integrate the SortBy* method into the core libraries.
In almost every *Manager class there's a fetch method that supports sorting. While it's usually tied to Database objects, it shouldn't be that difficult to emulate this behaviour for datasources and events.

Interesting idea! Any manager that implements FileResource doesn't actually have a fetch function, so perhaps that's an elegant way to implement the sorting? I imagine the fetch function will take $filters/$sort and then parse the listAll() results to return the desired results (whether that be sorted or ones that match a filter).
I suppose this is still expensive in the sense that listAll gets 'all', but we are dealing with the filesystem, so I don't imagine this will be a showstopper anytime soon.
Nice idea!

I suppose this is still expensive in the sense that listAll gets 'all', but we are dealing with the filesystem, so I don't imagine this will be a showstopper anytime soon.

Unless listAll uses the new fetch function (without any $filters or $sort variable) to get the whole list of datasources/events.

@everyone: you can follow the work in my edui branch.

One step at time I think, I feel sorting is more important for the initial 2.3 release. Filtering can be added in point releases. I don't see it as a particularly core requirement to be honest as it's really only useful when you have a lot of datasources/events/utilities (something the average Symphony user will not)
Keep things simple. Use listAll and manipulate the existing array, we can refine as needed/required (which it's not at the moment)

One step at time I think, I feel sorting is more important for the initial 2.3 release. Filtering can be added in point releases. I don't see it as a particularly core requirement to be honest as it's really only useful when you have a lot of datasources/events/utilities (something the average Symphony user will not)
Keep things simple. Use listAll and manipulate the existing array, we can refine as needed/required (which it's not at the moment)
Keep up the good work :)

Okay, thanks for pointing me to the right direction ;)

Correctly selects all the name fields and returns an array sorted by the field release-date descending.
			print_r(DatasourceManager::fetch(
				array('name'), array(), 'release-date DESC'
			));

https://github.com/eKoeS/symphony-2/commit/36e2891ece0067b78c1d9594b7eac968122d6689

https://github.com/symphonycms/symphony-2/pull/831


[WIP]Add archlinux

I'm currently setting up a new Arch Linux environment and would like to add support for it to this module.  Only tested against Zabbix 3.0

hey @dj-wasabi, would you mind taking a look? I tested the following setup which now works:
  $zabbix_server_ip = hiera('zabbix_server_ip')
  $zabbix_agent_ip = hiera('zabbix_agent_ip', $ipaddr)
  class { '::zabbix::agent':
    manage_repo           => $zabbix_manage_repo,
    server                => $zabbix_server_ip,
    zabbix_package_state  => 'latest',
    zabbix_version        => '2.4',
    manage_resources      => false,
    serveractive          => $zabbix_server_ip,
    hostmetadata          => $::thing_type,
    listenip              => $zabbix_agent_ip,
  }
  # basic check for puppet agent
  zabbix::userparameters{'get_file_time.sh':
    script  => 'puppet:///modules/profiles/zabbix_userparams/get_file_time.sh',
  }

hey, I did a few other adjustments here:

bump ruby 2.1.0 to 2.1.9
add a test without strict_variables to .travis.yml
pin rspec-puppet at 2.3.3 (2.4.0 is broken)

The pinning is needed to make the tests pass. All of theses changes are in seperate commits. If you want I can remove them again.

You are amazing!


Also removes Dates

omitEmpty({foo: new Date()});

returns an empty object, is this intended?

resolved by https://github.com/jonschlinkert/omit-empty/pull/2


Support Kotlin language

@shuzijun Kotlin is getting its steam in the mobile dev community. Got any plan to update your lovely plugin for it? Cheers

有计划支持Kotiln吗？

https://github.com/shuzijun/plantuml-parser/tree/feat/kt


publish 7.1 to npm

I also need ._matchedRoute, but v7.1.0 isn't in npm:
npm ERR! No compatible version found<EMAIL_ADDRESS>npm ERR! Valid install targets:
npm ERR! 7.0.1, 7.0.0, 6.2.0, 6.1.0, 6.0.1, 6.0.0, 5.4.0, 5.3.0, 5.2.3, 5.2.2, 5.2.1, 5.2.0, 5.1.2, 5.1.1, 5.1.0, 5.0.1, 5.0.0, 4.3.2, 4.3.1, 4.3.0, 4.2.0, 4.1.0, 4.0.1, 4.0.0, 3.8.0, 3.7.0, 3.6.0, 3.5.0, 3.4.0, 3.3.1, 3.3.0, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.4, 3.1.3, 3.1.2, 3.1.1, 3.1.0, 3.0.2, 3.0.1, 3.0.0, 2.4.4, 2.4.3, 2.4.1, 2.4.0, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.0, 2.1.0, 2.0.1, 2.0.0, 1.6.1, 1.6.0, 1.5.5, 1.5.4, 1.5.3, 1.4.3, 1.3.3, 1.2.3, 1.2.2, 1.1.2, 1.1.1, 1.0.1, 1.0.0

+1

Is there an ETA for when this will happen? I don't really understand the hold-up?

@jsfr permissions to contribute on GitHub do not equate to permissions to publish the package ok npm. Code had been merged to the repo on GitHub for 7.0, but none of the contributors have permissions to publish that version to NPM.
Feel free to install the package from the github repo directly. This is a pretty common thing.

@alexmingoia can you please give @jbielick npm push permissions for this repo? I'm not comfortable relying on GitHub for npm installs.

@alexmingoia Any chance this could be worked out any time soon?

Any word on this @alexmingoia? I'm also looking to use _matchedRoute with Koa 2. Thanks!

isn't it just npm install koa-router@next?

@chovy to get v7.0.1, yes, that'll work. v7.1.0 isn't published to npm tho

Ping @alexmingoia

Ping @alexmingoia

It's published now. I'll add publishing permissions for some of the contributors.

Thanks dude!

Looks like 7.1.0 isn't tagged with next, so koa@next -> 7.0.1


[TEST/fc] Add layer golden test

[TEST/fc] Add layer golden test

This patch adds layer golden test format

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

[Test] Prepare layer golden test data

This patch prepares code to generate binary and package two tests for
example

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1559. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.


[WIP] LibGDX renderer, take 2

TODO

[x] Multi-window
[x] Render text/background
[x] Palette changing
[x] Blinking cursor
[x] Termination/shutdown/reboot
[x] Key events
[x] Mouse events
[x] Window titles
[x] Window icon
[x] Drag/drop target
[ ] Proper disposal
[ ] Renderer optimisations

Crashes shortly after opening for me
X Error of failed request:  RenderBadPicture (invalid Picture parameter)
  Major opcode of failed request:  139 (RENDER)
  Minor opcode of failed request:  7 (RenderFreePicture)
  Picture id in failed request: 0x320002b
  Serial number of failed request:  1733
  Current serial number in output stream:  1738
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f0a4712fbba, pid=26539, tid=26603
#
# JRE version: Java(TM) SE Runtime Environment (9.0+11) (build 9.0.1+11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (9.0.1+11, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [radeonsi_dri.so+0x459bba]
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %e" (or dumping to /home/dominic/workspace/CCEmuX/core.26539)
#
# An error report file with more information is saved as:
# /home/dominic/workspace/CCEmuX/hs_err_pid26539.log
AL lib: (EE) alc_cleanup: 1 device not closed```


fill the section on who the course is for

to review:

any other prerequisites?
should the text be more "welcoming" somehow by not only pointing out what is needed but also what will be learned?

forgot, this PR hopefully fixes #3

no further review needed i think, self-merging


Added a link to visualgo.net

Added a link for animation of popular algorithms and data structure. This is my first contribution. Thank you  very much

Thanks for contributing to AlgoWiki! :+1: :balloon:


add .sha256 checksums to binary distribution tarballs

Hiya. This adds a *.tar.gz.sha256 file alongside each tarball pushed to GitHub Releases. Having a hash available does not magically add much in terms of supply chain security, it just enables tools like Bazel and Buck to pull binaries and ensure they're the same one as last time. The concrete need is to generate a JSON manifest of a GitHub release including sha256 hashes, without actually downloading the tarballs and hashing them at generation time. I have not tested the pipeline, but note that:

GitHub's ubuntu-latest builder includes coreutils, so the sha256sum command should be available.
I checked that the * at the end of the glob will match those .sha256 suffixes as well as the tarballs, against the glob package in use. npm i -g glob; sha256sum CHANGELOG.md > CHANGELOG.md.sha256; glob '*.md*'

So I think that will work. This is not a blocker because scripts for generating manifests can always fall back on downloading the tarballs to /tmp and hashing them there. So no need to push a release just for this.

Here you go:

https://buck2.build/docs/api/rules/#http_archive
https://bazel.build/rules/lib/repo/http
A generated release manifest
An example of doing it the slow way in the python script that generated the above file

I don't these contain what I was looking for.
Specifically I was trying to find some standard how to deploy these hashes in the first place. Your PR suggests to deploy them as part of the release artifacts. Is that documented somewhere? Does a tool actually make use of this path, e.g. just adding .sha256 at the end of the downloaded artifact's path to get its hash?


Diseases without a DOID are becoming new and separate entries despite being identical

I think this is similar to what happened previously with drugs. Lynch Syndrome and von Hipple Lindau being obvious examples. I could merge these but this could probably be handled more easily programmatically.
Also, is this contributing to our disease count?

I also noticed an "empty" disease. Not sure how that happened/was allowed. It doesn't appear to have any EIDs associated with it though. https://civic.genome.wustl.edu/admin/diseases/2151

This issue is fixed in master, and once we deploy I will merge these all programatically! I've also added a merge tool to the admin interface in case it comes up again somehow (it shouldn't hopefully).


time enabled input - seconds not working

When with $('.flatpickr').flatpickr({
altInputClass: 'form-control',
altInput: true,
altFormat: 'F j, Y H:i:S',
dateFormat: 'Y-m-d H:i:S',
enableTime: true,
enableSeconds:true
});
Flatpickr instaces are created with time enabled and human friendly input enabled seconds are not updated in value field when changing them in calendar modal window. Seconds are updated only in case second are set to new value and then hour value is changed.

Hello,
Thanks for reporting the issue.
I replicated it successfully and a fix is coming today


Reorganizes the Meetups section

Take a look at the orgnaization on the Meetups,
Also I would remove the Booth Duty section, as it does not provide content for the viewers (I still think they are relevant in the context of Resume), but this is your blog :smile:

I like the idea, however I would like suggest that Red Hat Summit presentation should be in the AMM section, in the end it is a representation the first AMM project done in Iberia. Could you adapt your proposal before merge it? Thanks

@antonionc Do you think this PR is still needed? Could you check it to update or close? Thanks mate!


[FE] stream load failed with "no 100-continue header" under HTTP/1.0 protocol

Steps to reproduce the behavior (Required)
$ curl -0 -i -kv  -H "label:auto_test_stream_load_table_basic2" -u root: -T heap-after.bin -X PUT http://<IP_ADDRESS>:8030/api/auto_test_stream_load/auto_test_stream_load_table_basic/_stream_load
> PUT /api/auto_test_stream_load/auto_test_stream_load_table_basic/_stream_load HTTP/1.0
> Host: <IP_ADDRESS>:8030
> Authorization: Basic cm9vdDo=
> User-Agent: curl/7.81.0
> Accept: */*
> label:auto_test_stream_load_table_basic2
> Content-Length:<PHONE_NUMBER>
>
< HTTP/1.1 200 OK
< content-length: 113
< content-type: application/json; charset=UTF-8
< connection: close
<
{
  "Status": "FAILED",
  "Message": "class com.starrocks.common.DdlException: There is no 100-continue header"
}

Expected behavior (Required)
Real behavior (Required)
StarRocks version (Required)
3.3.6

You can get the StarRocks version by executing SQL select current_version()

related to #52516


The documentation feature only works for HTML files

Greetings, and thank kindly you for the amazing extension.
I noticed that the documentation feature, which I consider to be the best out of the extension's, doesn't work for any other file types, even when defined using the extension setting.
Is there any easy solution to make that documentation popup shows up for Blade files, after setting it using the following code?
"alpine-intellisense.settings.languageScopes": "blade",

@Random72IsTaken I would love for this to be a feature, but I don't think it's currently possible. I am using something called customData which is built into VS Code's HTML language server. Most languages that add syntax to HTML (i.e. PHP) define in their syntax what is HTML and what isn't, which allows this extension to work for them. I'm guessing based on your issue that blade doesn't do this.
I'm going to close this for now since this would require more changes than I would know how to implement. That said, if you have a fix, I'm open to PR's and would love to add more support for other langauges!


speedup file-logging by buffer log-writes

Q
A

Bug fix?
No

New feature?
Yes

BC breaks?
No

Deprecations?
No

Fixed tickets
N/A

log-writting was the second most consumer of time before this change when using the --log option.
after this change file_put_contents is no longer visible in perf profiles, which in my case reduces deployment time by ~30seconds.

Awesome! Can you show performance profile? Or how do you test it?


Some patches being used in Cerbero for OpenWebRTC

Continued from https://github.com/EricssonResearch/openwebrtc/pull/181

Merged


systemd: traffic_router.service is marked executable

What does this PR do?
Fixes #3011
Which TC components are affected by this PR?

[ ] Documentation
[ ] Grove
[ ] Traffic Analytics
[ ] Traffic Monitor
[ ] Traffic Ops
[ ] Traffic Ops ORT
[ ] Traffic Portal
[X] Traffic Router
[ ] Traffic Stats
[ ] Traffic Vault
[ ] Other _________

What is the best way to verify this PR?
After installing Traffic Router, verify /var/log/messages to make sure this message doesn't appear:
systemd: Configuration file /etc/systemd/system/tomcat.service is marked executable. Please remove executable permission bits. Proceeding anyway.

Also, verify that traffic_server.service has proper permission (644)
]# ls -l /usr/lib/systemd/system/traffic_router.service
-rw-r--r-- 1 root root 1224 Nov 12 13:58 /usr/lib/systemd/system/traffic_router.service

Check all that apply

[ ] This PR includes tests
[ ] This PR includes documentation updates
[ ] This PR includes an update to CHANGELOG.md
[ ] This PR includes all required license headers
[ ] This PR includes a database migration (ensure that migration sequence is correct)
[ ] This PR fixes a serious security flaw. Read more: www.apache.org/security

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2764/
Test PASSed.

There was 2 problems. Although not sure why we have both tomcat and traffic_router services.
systemd: Configuration file /usr/lib/systemd/system/traffic_router.service is marked executable. Please remove executable permission bits. Proceeding anyway.
systemd: Configuration file /etc/systemd/system/tomcat.service is marked executable. Please remove executable permission bits. Proceeding anyway.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2766/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2769/
Test PASSed.

Closing. Will be part of bigger PR.


ocamlPackages.rebez: init unstable-2019-06-20

ocamlPackages.rebez: init unstable-2019-06-20
Cubic bezier implementation in Reason / OCaml
Question:

Since last Dune version change. Which dune version to use? None = Default?

Dune 2 is the default now, unless you need dune 1 specifically you should probably not put anything in 👌


AlignMultilineCommentFixer - handle uni code

closes https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/2967
target 2.4 as fixer does not exist on lower branches

not sure about if the other regex'es need the flag as well, cannot create a failing case for those

Thank you @SpacePossum.


Closed by https://github.com/azavea/raster-foundry-deployment/pull/33


Added HC-SR04 and TCS34725

Pull request to go with this pull request

Thanks!
Next time please  create separate pull requests for separate features.
This was 3 features together.
I will set back servo and stepper to zero in sample_cfg.h .

I disabled ultrasonic and color sensor by default and I added them to cfg_defaults.h

... and I fixed the includes. It did not compiled with new features off.


Difference between normal and 16 variant

Why are there two versions of similar colorschemes?

@afq984, do you not check your Github issues?

Sorry, I somehow missed the notification mail.
The two versions use two different mappings. The .16 variant uses all 16 colors for all color tags, while the default variant uses only a subset of it.
This is done because programs and theme designers do not agree on what some color codes should refer to.
See the example below, xfce4-terminal expects two kinds of "Green" to be provided, but "Default Light" only has one:

In this case, the .16 variant tries to use up all color provided by the theme

The default variant tries to match the color names described by xfce4-terminal, while not using all 16 colors provided by the theme

For that reason, some themes may look better on one of the variants, so the mapping choice is left to the user.

Feel free to correct me if I got anything wrong, or if there's something I've done differently from common practices / base16 recommendations.

Thanks for taking the time and explaining.


macOS dynamic shared module extension probably shouldn't default to .dylib or allow both .dylib and .so

In the README, you specify that the file extension dylib looks for to load macOS shared modules is .dylib.
Unfortunately, there seems to be a mixture of uses of both .dylib and .so for these kinds of shared objects in macOS.
Interestingly, CMake uses .dylib for shared libraries, and .so for shared modules (the kind that are only intended for loading at runtime, and cannot be linked to).
Sample output from building one of my projects with CMake where I have two duplicate libraries, one SHARED and one MODULE:
[ 76%] Linking CXX shared library libgbfp.dylib
[ 82%] Linking CXX shared module libgbfpm.so

See also this CMake issue: https://gitlab.kitware.com/cmake/cmake/-/issues/21189
I feel like the best solution may be to check for both extensions on macOS. What do you think?

Hello @saxbophone
If i'm not wrong, CMake is holding .so as default extension for modules on MacOS for compatibility issues:

Changing the MODULE library suffix to .dylib (instead of .so) on macOS will require a policy for compatibility.

from https://gitlab.kitware.com/cmake/cmake/-/issues/21189

I feel like the best solution may be to check for both extensions on macOS. What do you think?

I think It could lead to security issues, A strict behavior must be defined, on witch precise shared objects will be looked for by dylib

I think It could lead to security issues

Such as my program loading a maliciously-placed alternative plugin rather than the one I intended? Fair enough, what about providing an override instead? .dylib is indeed the most common extension for loadable bundles that I've seen in the lib directories on my mac, but I have seen a few that use .so

Such as my program loading a maliciously-placed alternative plugin rather than the one I intended? Fair enough, what about providing an override instead?

Yes, currently the constructor of the class is not permissive enough for this type of customization. There is the same issue for a shared library build using mingw on windows, that will have the lib prefix, unlike if it was build with msvc where no prefix will be added.
If you have any suggestions on how the dylib class constructor API should be redesigned to allow this type of customization, you are welcome

@martin-olivier What if we could have an #ifdef with some option to choose either dylib or so? This can also be wrapped in a cmake option

@martin-olivier What if we could have an #ifdef with some option to choose either dylib or so? This can also be wrapped in a cmake option

IMO making it a compile-time option is an inflexible option, I think this should be an option that can be selected independently of the build-system. Probably as a constructor argument.


Range 0 - 1

How might I keep the ranges at 0 - 1, trying to utilize this with Marching Cubes. I didnt want to clamp the value 0 - 1 .

if x is within -1 to 1, (x + 1.0) / 2.0 = 0 to 1.

oh awesome love you can i upvote that


chore: bdd-nh-1588587191 to 0.0.1

chore: Promote bdd-nh-1588587191 to version 0.0.1

[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 approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  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:

OWNERS

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


Add accessories/metadata properties to game data

(suggested on Discord)
The idea is to add a property on game data in order to specify some details about that particular game, such as "lightguns, mouse, keyboard, rumble, 3 or 6 button, analog etc.".
This presents a challenge though: leaving it a plain "string" array for users to specify makes this non standardized for themes to take advantage of, but defining these properties in the app's code is also a significant task requiring plenty of research.
This idea has potential though as it can be help in organizing the user's library more easily, but the implementation of it needs to be better discussed and experimented on before being tackled.

Hello, it was me who suggested it. I don't know if it is possible, but maybe it could have a set of predefined/generic accessories that could be expanded with user-defined ones. This way, the themes would have a standard to comply with, and the users could customize their build with a more specific set if they desire.

Yes, I think that's a good solution for now. It will require some significant research and user input though, so this will be in the backlog for a while until the app is released and this receives more user feedback.


Can't run deepface api on ubuntu

I'm trying to deploy this on AWS ubuntu instance, i cloned the repository, installed deepface through pip install deepface and flask but it can't run api.py,
i tried this localy on macos M1 it works fine.
Error:
Could not find cuda drivers on your machine, GPU will not be used.
File "/home/ubuntu/deepface/deepface/api/src/api.py", line 2, in
import app
File "/home/ubuntu/deepface/deepface/api/src/app.py", line 3, in
from deepface.api.src.modules.core.routes import blueprint
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

Would you please try to disable gpu by adding the following command in dockerfile?
ENV CUDA_VISIBLE_DEVICES=""

or
ENV CUDA_VISIBLE_DEVICES="-1"

you can add it this level: https://github.com/serengil/deepface/blob/master/Dockerfile#L45

Would you please try to disable gpu by adding the following command in dockerfile?
ENV CUDA_VISIBLE_DEVICES=""

or
ENV CUDA_VISIBLE_DEVICES="-1"

you can add it this level: https://github.com/serengil/deepface/blob/master/Dockerfile#L45

okay i added this line but what should i do next?? it's still doesn't work,
sorry i'm not so familiar with docker.

how did you run the service on aws before?

how did you run the service on aws before?

i installed python3 on the instance
install pip using python,
git clone https://github.com/serengil/deepface.git
pip install requirements.txt
then went to the api directory
pip install flask
pip install deepface
finally python3 api.py
and this is where i get the error

update dockerfile on that instance manually after clone
then run python3 api.py again

oh you are not using docker. in deepface folder run this:
docker build -t deepface . && docker run -p 5000:5000 deepface

oh you are not using docker. in deepface folder run this:
docker build -t deepface . && docker run -p 5000:5000 deepface

okay what should be the size of the server?? because now it says no space left on disk to run this, i'm on meduim, 2cpu 4gb memory and the only thing on it is the cloned repository and the installed deepface package.

try just this please:
apt-get update && apt-get install ffmpeg libsm6 libxext6 -y


[SPARK-22600][SQL][FOLLOW-UP] Fix a compilation error in TPCDS q75

What changes were proposed in this pull request?
This pr fixed a compilation error of TPCDS q75  caused by #19813;
  java.util.concurrent.ExecutionException: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 371, Column 16: failed to compile: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 371, Column 16: Expression "bhj_matched" is not an rvalue
  at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:306)
  at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:293)
  at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
  at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:135)

How was this patch tested?
Manually checked q75 can be properly compiled

cc: @viirya @cloud-fan @kiszk

Test build #84870 has started for PR 19969 at commit 777d585.

Also, I feel we'd be better to check if all the tpcds queries can be properly compiled in tests like;
https://github.com/apache/spark/compare/master...maropu:SPARK-22140-FOLLOWUP
WDYT, guys?

hmm, didn't we already check it in tests? WholeStageExec will report compile error in test environment.

TPCDSQuerySuite actually doesn't compile and run these queries, so it does not report that.

If no problem, I'll include the changes for additional tests in this pr.

Test build #84870 has finished for PR 19969 at commit 777d585.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84870/
Test PASSed.

How about q77?

See the result of https://github.com/apache/spark/pull/19971

ya, this pr also fixes q77.

@maropu Thanks for finding and fixing this. I'll look into the possible places later (just gets up).

I am still worrying about the original PR https://github.com/apache/spark/pull/19813. We also need a conf to turn that off.

LGTM merged to master.


Improve logic

Loop operation here isn't making use of the only value being iterated ($i):
				for($i=1;$i<=$count_rows;$i++){
						$data[$keys] = $value;
					}

if() {..} code block and else {..} code block here do same thing:
				if($increment == $count_rows) {
						$columns [] = "{$keys} = '{$values}'";
				} else {
						$columns [] = "{$keys} = '{$values}'";
				}

Don't need else {..} after return (if the code block containing the return executes, the else {..} will never execute anyway; code immediately following a code block containing a return statement is effectively implied as else {..}):
		if(isset($name) && !empty($name)){
			$sql = "CREATE DATABASE IF NOT EXISTS `{$name}`";
			$this->db->exec($sql);
			return true;

		}else{
			return false;
		}

Hello @Maikuolan
If lets say user not provide name so its return false try to run this how you say thats?

@Maikuolan send poll request for further its for issue not for improvement

Not at all "invalid", and very wrong IMO, but your project and codebase, so your choice. Closing.

I provide you proof detail, so you also have to? How you say when if statement have return else not work?

@Maikuolan i am not say you not allow contribute once i provide code that else statement work even if has return because of condition false you cant reply of this?

You ignore my suggestions, label the issue "invalid", and when I accept this and close the issue, you delete my reply, and then lock the issue? I am not interested in participating anymore. If you care, read the PHP docs. Otherwise, do what you want. I will not reply anymore, because I know you will delete my replies, and I don't want to waste my time. I am also unsubscribing from this issue. Good day.

I will change the label once you reply how you say that i ask above?


Add a Ruby 1.8.7 entry to Travis

Basically copied straight from main Homebrew's Travis file.
For now, I've done it as a separate entry, since I didn't have an install script up until now. I'm going to experiment a bit to see what gives the best results.

This is ready for merge whenever you're happy with it.

Thanks!
Do we still need the Ruby 2 version of Mavericks?

(Rather embarrassed that I had to look up on what version number corresponded to 'Mavericks")
I ended up taking it out. I'll put it back in if you want it - it's entirely up to you. That said, I'm not entirely sure how much value additional variants are, and I don't want to use up Travis' resources unnecessarily.

Fine with me!


Upgrade to the new Keycloak

Title of ticket:
Description
Timing: Fall 2022
Dependencies
Are there any dependencies?
DOD

[ ] use the IDIR guid as a best practice
[ ]
[ ]
[ ]
[ ]


feat: reference Secrets in envs and volumes sections in config

Signed-off-by: Zbynek Roubalik<EMAIL_ADDRESS>Users can reference Kubernetes Secrets in the func.yaml, in envs and volumes sections, see the example:
name: test
namespace: ""
runtime: go
...
volumes:
- secret: mysecret3
  path: /workspace/secret
envs:
- name: EXAMPLE1
  value: myvalue
- name: EXAMPLE2
  value: '{{ env.LOCAL_ENV_VALUE }}'
- name: EXAMPLE3
  value: '{{ secret.mysecret2.EXAMPLE3 }}'
- value: '{{ secret.mysecret }}'

If some Secret is not present in the cluster, function is not deployed:
$ ./func deploy -p test
🕒 Pushing function image to the registry
🕖 Deploying function to the cluster
Error: knative deployer failed to update the Knative Service:
  referenced Secret "mysecret" is not present in namespace "default"
  referenced Secret "mysecret2" is not present in namespace "default"
  referenced Secret "mysecret3" is not present in namespace "default"

A specific func command and interactive wizard will be done in follow up PR.
Relates: #362

PR https://github.com/boson-project/func/pull/368 needs to be merged first in order to rebuild & merge this one.


nixos tests atop: don't allow unfree packages

We are not supposed to enable the use of unfree packages in Nixpkgs. Added in https://github.com/NixOS/nixpkgs/pull/123053.
cc @pschyska
Description of changes

Things done

Built on platform(s)

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

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

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

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

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

[ ] Fits CONTRIBUTING.md.

Works for me, I wasn't aware of that, sorry. It's just the Nvidia (GPU usage) extension that is affected, which I'm unable to test as I don't have a card by that company.

@FRidh I just re-read the PR and saw that you didn't disable the atopgpu-specific tests.
These pull in pynvml which depends on cudatoolkit.
I'd just remove the test helper altogether (https://github.com/FRidh/nixpkgs/blob/9879ee9c88000a2a3de34c512b0f0ed85a51f997/nixos/tests/atop.nix#L98) and remove https://github.com/FRidh/nixpkgs/blob/9879ee9c88000a2a3de34c512b0f0ed85a51f997/nixos/tests/atop.nix#L182.
Alternatively, the test could stay in-tree but shouldn't by default.


TabularLime errors

I'm getting the following errors when using TabularLime:
"Output column features already exists."
Based off the tests  for TabularLime, I should be calling a "fit" on TabularLime and then a "transform".
I'm on Spark 2.3.0 (Cloudera).  The following  shows my code to replicate this error:
from pyspark.sql import SparkSession
from pyspark.ml.feature import VectorAssembler
from pyspark.ml import Pipeline
from pyspark.ml.classification import RandomForestClassifier

spark = SparkSession\
    .builder\
    .appName("pyspark")\
    .getOrCreate()

from mmlspark import *
from mmlspark import FluentAPI

def generateDataFrame(spark):
  data=[
    {'x1':3, 'x2':4, 'y':1},
    {'x1':2, 'x2':1, 'y':0},
    {'x1':2, 'x2':2, 'y':0},
    {'x1':3, 'x2':5, 'y':1}
  ]
  return spark.createDataFrame(data)

vectorAssembler = VectorAssembler()\
  .setInputCols(["x1", "x2"])\
  .setOutputCol("features")

model=RandomForestClassifier(featuresCol="features", labelCol="y")

pipeline = Pipeline(stages=[
  vectorAssembler, model
])

data=generateDataFrame(spark)

fitmodel=pipeline.fit(data)

lime = TabularLIME()\
  .setModel(fitmodel)\
  .setPredictionCol("prediction")\
  .setOutputCol("weights")\
  .setInputCol("features")

result = lime.fit(fitmodel.transform(data))

#This is where the error occurs
result.transform(fitmodel.transform(data))

spark.stop()

Thanks for reaching out! Try using the fitModel as the model for LIME as opposed to the model. The error is basically pointing out that the model you are trying to interpret hasn’t been fit yet. If you paste the full stack trace i can turn it into a more user friendly error message for future use :)
Get Outlook for iOShttps://aka.ms/o0ukef

From: Daniel Stahl<EMAIL_ADDRESS>Sent: Wednesday, May 22, 2019 8:54 AM
To: Azure/mmlspark
Cc: Subscribed
Subject: [Azure/mmlspark] TabularLime errors (#570)
I'm getting the following errors when using TabularLime:
"java.lang.ClassCastException: org.apache.spark.ml.classification.RandomForestClassifier cannot be cast to org.apache.spark.ml.Transformer"
Based off the tests https://github.com/Azure/mmlspark/blob/99d267a407c07301dcada42f788ef7b92ef15aa5/src/image-featurizer/src/test/scala/LIMESuite.scala for TabularLime, I should be calling a "fit" on TabularLime and then a "transform". The following shows my code to replicate this error:
from pyspark.sql import SparkSession
from pyspark.ml.feature import VectorAssembler
from pyspark.ml import Pipeline
from pyspark.ml.classification import RandomForestClassifier
spark = SparkSession
.builder
.appName("pyspark")
.getOrCreate()
from mmlspark import *
from mmlspark import FluentAPI
def generateDataFrame(spark):
data=[
{'x1':3, 'x2':4, 'y':1},
{'x1':2, 'x2':1, 'y':0},
{'x1':2, 'x2':2, 'y':0},
{'x1':3, 'x2':5, 'y':1}
]
return spark.createDataFrame(data)
vectorAssembler = VectorAssembler()
.setInputCols(["x1", "x2"])
.setOutputCol("features")
model=RandomForestClassifier(featuresCol="features", labelCol="y")
pipeline = Pipeline(stages=[
vectorAssembler, model
])
data=generateDataFrame(spark)
fitmodel=pipeline.fit(data)
lime = TabularLIME()
.setModel(model)
.setPredictionCol("prediction")
.setOutputCol("weights")
.setInputCol("features")
result = lime.fit(fitmodel.transform(data))
#This is where the error occurs
result.transform(fitmodel.transform(data))
spark.stop()
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/Azure/mmlspark/issues/570?email_source=notifications&email_token=ABRIKPIPHCRUHUPNC55DFQTPWU7APA5CNFSM4HOT76G2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GVGQFJQ, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABRIKPMASKQEDIRWMRKUMM3PWU7APANCNFSM4HOT76GQ.

Yes, I found that error :).  It still gives me a different error now that I've fixed that.  See my edited code above.

@phillyfan1138 can you paste the full stacktrace? THanks for your help

@mhamilton723
IllegalArgumentException: 'Output column features already exists.'
Py4JJavaError                             Traceback (most recent call last)
/opt/cloudera/parcels/SPARK2/lib/spark2/python/pyspark/sql/utils.py in deco(*a, **kw)
62         try:
---> 63             return f(*a, **kw)
64         except py4j.protocol.Py4JJavaError as e:
/usr/local/lib/python3.6/site-packages/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
327                     "An error occurred while calling {0}{1}{2}.\n".
--> 328                     format(target_id, ".", name), value)
329             else:
Py4JJavaError: An error occurred while calling o313.transform.
: java.lang.IllegalArgumentException: Output column features already exists.
at org.apache.spark.ml.feature.VectorAssembler.transformSchema(VectorAssembler.scala:127)
at org.apache.spark.ml.PipelineModel$$anonfun$transformSchema$5.apply(Pipeline.scala:311)
at org.apache.spark.ml.PipelineModel$$anonfun$transformSchema$5.apply(Pipeline.scala:311)
at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:57)
at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:66)
at scala.collection.mutable.ArrayOps$ofRef.foldLeft(ArrayOps.scala:186)
at org.apache.spark.ml.PipelineModel.transformSchema(Pipeline.scala:311)
at org.apache.spark.ml.PipelineStage.transformSchema(Pipeline.scala:74)
at org.apache.spark.ml.PipelineModel.transform(Pipeline.scala:305)
at com.microsoft.ml.spark.DataFrameSugars.mlTransform(FluentAPI.scala:15)
at com.microsoft.ml.spark.TabularLIMEModel.transform(LIME.scala:232)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
at py4j.Gateway.invoke(Gateway.java:282)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)
During handling of the above exception, another exception occurred:
IllegalArgumentException                  Traceback (most recent call last)
in engine
----> 1 result.transform(fitmodel.transform(data))
/opt/cloudera/parcels/SPARK2/lib/spark2/python/pyspark/ml/base.py in transform(self, dataset, params)
171                 return self.copy(params)._transform(dataset)
172             else:
--> 173                 return self._transform(dataset)
174         else:
175             raise ValueError("Params must be a param map but got %s." % type(params))
/opt/cloudera/parcels/SPARK2/lib/spark2/python/pyspark/ml/wrapper.py in _transform(self, dataset)
303     def _transform(self, dataset):
304         self._transfer_params_to_java()
--> 305         return DataFrame(self._java_obj.transform(dataset._jdf), dataset.sql_ctx)
306
307
/usr/local/lib/python3.6/site-packages/py4j/java_gateway.py in call(self, *args)
1255         answer = self.gateway_client.send_command(command)
1256         return_value = get_return_value(
-> 1257             answer, self.gateway_client, self.target_id, self.name)
1258
1259         for temp_arg in temp_args:
/opt/cloudera/parcels/SPARK2/lib/spark2/python/pyspark/sql/utils.py in deco(*a, **kw)
77                 raise QueryExecutionException(s.split(': ', 1)[1], stackTrace)
78             if s.startswith('java.lang.IllegalArgumentException: '):
---> 79                 raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
80             raise
81     return deco
IllegalArgumentException: 'Output column features already exists.'

@phillyfan1138 This is Yuchen Li, I reached out to me today via LinkedIn, it seems to me that I have found the solution. Please execute the following code and see if it helps :D
df_train = spark.sparkContext.parallelize(
[Row(x1=3, x2=4, x3=1),
Row(x1=2, x2=1, x3=0),
Row(x1=2, x2=2, x3=0),
Row(x1=3, x2=5, x3=1)
]).toDF()
df_scoring = spark.sparkContext.parallelize(
[Row(x1=3, x2=4, x3=1),
Row(x1=2, x2=1, x3=0),
Row(x1=1, x2=2, x3=0),
Row(x1=1, x2=5, x3=1)
]).toDF()
vectorAssembler = VectorAssembler()
.setInputCols(["x1", "x2"])
.setOutputCol("features")
prepared_df_train = vectorAssembler.transform(df_train)
prepared_df_scoring = vectorAssembler.transform(df_scoring)
model = RandomForestClassifier(featuresCol="features", labelCol="x3")
fitted_model = model.fit(prepared_df_train)
lime = mmlspark.TabularLIME()
.setModel(fitted_model)
.setPredictionCol("prediction")
.setOutputCol("weights")
.setInputCol("features")
lime_model = lime.fit(prepared_df_scoring)
result = lime_model.transform(prepared_df_scoring)

Interesting.  It seems like the fact that my "fitted model" is a PipelineModel may be the issue here.

For comparison:
from pyspark.sql import SparkSession
from pyspark.ml.feature import VectorAssembler
from pyspark.ml import Pipeline
from pyspark.ml.classification import RandomForestClassifier

spark = SparkSession\
    .builder\
    .appName("pyspark")\
    .getOrCreate()

from mmlspark import *
from mmlspark import FluentAPI

def generateDataFrame(spark):
  data=[
    {'x1':3, 'x2':4, 'y':1},
    {'x1':2, 'x2':1, 'y':0},
    {'x1':2, 'x2':2, 'y':0},
    {'x1':3, 'x2':5, 'y':1}
  ]
  return spark.createDataFrame(data)

vectorAssembler = VectorAssembler()\
  .setInputCols(["x1", "x2"])\
  .setOutputCol("features")

model=RandomForestClassifier(featuresCol="features", labelCol="y")

## TEST 1: Pipeline.  This doesn't work
pipeline = Pipeline(stages=[
  vectorAssembler, model
])

data=generateDataFrame(spark)

fitmodel=pipeline.fit(data)

lime = TabularLIME()\
  .setModel(fitmodel)\
  .setPredictionCol("prediction")\
  .setOutputCol("weights")\
  .setInputCol("features")

fdta=fitmodel.transform(data).drop('prediction', 'probability', 'rawPrediction')
result = lime.fit(fdta)

#This is where the error occurs
r=result.transform(fdta)

## TEST 2: Model.  This works
data1=vectorAssembler.transform(data)
fitmodel2=model.fit(data1)
lime = TabularLIME()\
  .setModel(fitmodel2)\
  .setPredictionCol("prediction")\
  .setOutputCol("weights")\
  .setInputCol("features")
result = lime.fit(data1)
r=result.transform(data1)

spark.stop()

@phillyfan1138 thanks for the detailed repro, will try to make the pipelineModel work in the future!

@phillyfan1138 This is Yuchen Li, I reached out to me today via LinkedIn, it seems to me that I have found the solution. Please execute the following code and see if it helps :D
df_train = spark.sparkContext.parallelize(
[Row(x1=3, x2=4, x3=1),
Row(x1=2, x2=1, x3=0),
Row(x1=2, x2=2, x3=0),
Row(x1=3, x2=5, x3=1)
]).toDF()
df_scoring = spark.sparkContext.parallelize(
[Row(x1=3, x2=4, x3=1),
Row(x1=2, x2=1, x3=0),
Row(x1=1, x2=2, x3=0),
Row(x1=1, x2=5, x3=1)
]).toDF()
vectorAssembler = VectorAssembler()
.setInputCols(["x1", "x2"])
.setOutputCol("features")
prepared_df_train = vectorAssembler.transform(df_train)
prepared_df_scoring = vectorAssembler.transform(df_scoring)
model = RandomForestClassifier(featuresCol="features", labelCol="x3")
fitted_model = model.fit(prepared_df_train)
lime = mmlspark.TabularLIME()
.setModel(fitted_model)
.setPredictionCol("prediction")
.setOutputCol("weights")
.setInputCol("features")
lime_model = lime.fit(prepared_df_scoring)
result = lime_model.transform(prepared_df_scoring)

I there a way to use explainer after the above code?

I am getting a similar error with my pipeline model. I separated the pipeline and did the vector assembling separately from the lgbm model. Any idea what could be causing this issue?
SparkException: Job aborted due to stage failure: Task 0 in stage 49.0 failed 4 times, most recent failure: Lost task 0.3 in stage 49.0 (TID 1321, <IP_ADDRESS>, executor 26): org.apache.spark.SparkException: Failed to execute user defined function($anonfun$12: (struct<type:tinyint,size:int,indices:array,values:array>) => array<struct<type:tinyint,size:int,indices:array,values:array>>)
at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.generate_doConsume_0$(Unknown Source)
at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.processNext(Unknown Source)
at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$13$$anon$1.hasNext(WholeStageCodegenExec.scala:640)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
at scala.collection.Iterator$class.isEmpty(Iterator.scala:331)
at scala.collection.AbstractIterator.isEmpty(Iterator.scala:1334)
at com.microsoft.ml.spark.lime.LIMEUtils$$anonfun$localAggregateBy$1.apply(LIME.scala:51)
at com.microsoft.ml.spark.lime.LIMEUtils$$anonfun$localAggregateBy$1.apply(LIME.scala:50)
at org.apache.spark.sql.execution.MapPartitionsExec$$anonfun$5.apply(objects.scala:200)
at org.apache.spark.sql.execution.MapPartitionsExec$$anonfun$5.apply(objects.scala:197)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:865)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:865)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:60)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:353)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:317)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:60)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:353)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:317)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
at org.apache.spark.scheduler.Task.doRunTask(Task.scala:140)
at org.apache.spark.scheduler.Task.run(Task.scala:113)
at org.apache.spark.executor.Executor$TaskRunner$$anonfun$13.apply(Executor.scala:533)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1541)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:539)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassCastException: org.apache.spark.ml.linalg.SparseVector cannot be cast to org.apache.spark.ml.linalg.DenseVector
at com.microsoft.ml.spark.lime.TabularLIMEModel$$anonfun$12.apply(LIME.scala:222)
... 29 more
Driver stacktrace:

@r12king: I am having the same error message.
This part works like a charm:

lime_model = lime.fit(prepared_df_scoring)
result = lime_model.transform(prepared_df_scoring)

But when I am trying to view the results, by doing display(result) or result.show(5), it gives me the exact same error message.
I tried manually creating a DenseVector from the SparseVector (the 'weights' column) using an udf, as that seems to be causing the error, but that also gives me the same error message.
Any suggestion what I can try next?

@r12king: I am having the same error message.
This part works like a charm:

lime_model = lime.fit(prepared_df_scoring)
result = lime_model.transform(prepared_df_scoring)

But when I am trying to view the results, by doing display(result) or result.show(5), it gives me the exact same error message.
I tried manually creating a DenseVector from the SparseVector (the 'weights' column) using an udf, as that seems to be causing the error, but that also gives me the same error message.
Any suggestion what I can try next?

i had the same problem. can you display or show your result now?

@r12king: I am having the same error message.
This part works like a charm:

lime_model = lime.fit(prepared_df_scoring)
result = lime_model.transform(prepared_df_scoring)

But when I am trying to view the results, by doing display(result) or result.show(5), it gives me the exact same error message.
I tried manually creating a DenseVector from the SparseVector (the 'weights' column) using an udf, as that seems to be causing the error, but that also gives me the same error message.
Any suggestion what I can try next?

i had the same problem. can you display or show your result now?

No it is not possible, I keep receiving the same error message. In the end I switched to the regular LIME package in combination with sklearn, which is slow, but it works.
I don't know if it makes a difference, but I use databricks (Databricks Runtime Version 6.5, Apache Spark 2.4.5, Scala 2.11 and mmlspark 2.11:1.0.0-rc1).


⚠ SceneTime has degraded performance

In 73352b3, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 26280 ms

Resolved: SceneTime performance has improved in e3c15b9 after 5 minutes.


fix irohad_test

Description of the Change
irohad was given 1 second to initialize, if irohad failed to initialized in 1 second, test framework started to send some transactions to not oppened port. Now test wait's for irohad to send "iroha initilized"
Benefits
test passed
Possible Drawbacks
--

Imo it's better solve with a spinlock, e.g:
auto timeout = now() + 20s; // should be really big
while (not iroha_process_->running() && now() < timeout);
ASSERT_TRUE(iroha_process_->running());

@l4l you have to insure that iroha have been initialized and started to listen the port, not that process have been started, for this we need to track irohad output

Indeed. I guess this task should be solved with the healthcheck issue in future


fix(tracing): reject trace ID/parent span ID with all bytes zero

This is to be considered invalid as per

https://www.w3.org/TR/2020/REC-trace-context-1-20200206/#trace-id and
https://www.w3.org/TR/2020/REC-trace-context-1-20200206/#parent-id

This also adds three new test cases to the spec compliance test suite:

malformed traceparent header
all zeroes trace ID/parent ID
sampled flag=0

LGTM 👍🏽 Maybe it was already covered before, but do we also need to add tests for sampled flag?

Oh, good catch. I've added those. I have also put this back to WIP for now since there will be another change around limiting the tracestate length, which can go into this PR.


Bug Fix: [Expired Account] Tchap is stuck on the splash screen whereas the account is renewed

Force a restart if the currentSyncToken is null whereas the store is ready.
#639

SGTM


TPCH - Separate out environment from normal benchmarks

Right now we're putting everything in one environment.yml file.  Maybe this isn't wise?  I'm thinking of creating separate environment files for TPC-H vs normal benchmarks.
More broadly, I think that we put TPC-H in this repository for convenience (all the CI infrastructure is here).  Do we also want these queries for normal benchmarks, or should they stay separate?
Putting my marketing hat on, I like the idea of them being separate.  I hope to point people at some tpch directory with its own very simple instructions and have them understand it easily.  Seeing a bunch of other stuff in there might confuse things.
I think I want feedback from @fjetter and @crusaderky here, who I think have the most context.

We're already doing this for snowflake.

make sure test_tpch.py files starts with pytest.importorskip to avoid crashing the test suite when your dependency isn't installed
add a delta environment file to the ci directory. See for example ci/environment-snowflake.yml
add a block to the include section of .github/workflows/tests.yml:
https://github.com/coiled/benchmarks/blob/ebffe0fabe50a9ed6aa514705a01ec482a72934e/.github/workflows/tests.yml#L59-L62

This said - what are the dependencies of tpch? I'm only seeing dask-expr which is a small dependency-free package, isn't it? What's the benefit of splitting it out?

Using a monolithic environment.yml is chiefly very convenient for A/B tests. Otherwise you'd have to prepare and run a separate suite of A/B tests for each set of base environments.


build_pygments_data: Build langs without incorrect mutation

The previous loop generated broken entries for duplicated language aliases:
"juttle": {"priority": {"priority": 0, "pretty_name": "Juttle"}, "pretty_name": "Juttle"}

Looks good! :+1:


Problem with UPDATE, LOCK RECORD and LIMIT Together in query

According to this site you should be allowed to use both UPDATE, LOCK RECORD and LIMIT in one command
update Address set primary = true WHERE  street = "some street" LOCK RECORD LIMIT 1

But I get the following error:

com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #0: Error parsing query:
select from Address WHERE  street = "some street" LOCK RECORD LIMIT 1
Encountered "  "LIMIT "" at line 1, column 114.
Was expecting one of:
...

This works however:
update (select from Address WHERE  street = "some street" LIMIT 1) set primary = true LOCK RECORD

Hi @n0lf
I reproduced the problem, I'm working to fix it
Thanks
Luigi

HI @n0lf
I pushed a fix on branches 2.1.x and develop. The fix will be released next week in 2.1.13
Thanks
Luigi


New installation Django 1.8 - Models not loaded

I apologize if this is a duplicate. I looked around the blogs to see if this has been addressed already. I have tried multiple installations of Zinnia and all fail with the same error. When running syncdb I recieve the error:
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 131, in check_models_ready
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_comments',
'django.contrib.sitemaps',
'django.contrib.sites',
'markdown_deux',
'mptt',
'tagging',
'zinnia',
)
I have attempted to use pip install -U django-blog-zinnia and this completes successfully; but errors when running syncdb. I have made the tweaks mentioned in previous posts to the authors.py and init.py files but still receive the same error.
Am I missing a work around somewhere?

The issue was resolved by downloading the latest copy of django-mptt and replacing the one installed by pip. Unsure why they were different but Zinnia now executes flawlessly. Well done. Thanks.

Cheers for posting, this also helped me when I tried to add Zinnia to a django site that was already using a version of django-mptt. Upgrading to latest django-mptt with
pip install -U django-mptt

... fixed this for me.


No longer working

No longer working for dmax.de

Can you give a show where it's not working? I've just tried it with an ID from this list: https://gist.github.com/Akamaru/3646c47b68cccead419716f3c4a7e86e and it works for me. DMAX seems to have a new design though so no idea how to find the showId now (haven't looked into it yet)

Ok. I use
https://github.com/Brawl345/Get-DMAX-Links/blob/master/README.md
and there the lookup for showid does no longer work. I assumed this this is also based to this project.
Where do you get the showid ???

Is there a possibility to write plain txt (csv) files instead of the xls ?

Ok. It works if we have the showid list. How is the list created ?

Is there a possibility to write plain txt (csv) files instead of the xls ?

No, because I need an Excel sheet. You have to modify the program yourself.

Ok. It works if we have the showid list. How is the list created ?

Good question, the list was created by @Akamaru. I think he just bruteforced the IDs. I don't know if it's still updated though, keeping up with DMAX is annoying.

You can also use youtube-dl or yt-dlp to directly download the episodes via an episode link so no need to use this tool anymore. For example: https://dmax.de/sendungen/112-feuerwehr-im-einsatz/videos -> https://dmax.de/sendungen/112-feuerwehr-im-einsatz/rettung-vom-kirchendach


Updating version 100.1.0 cause app name change to Android API

Hi Guys,
I've just realized that after updating v100.1.0, app name change to Android API. I think that It could be related with my project and I opened a new project and try to add Esri Android SDK 100.1.0. So app name changed to Android API too at new project.
It is bug or I am missing something
Here I added a screenshot from my tryings.

When I change app_name id to app_name_label in my strings.xml app name return to correct type. But in default SDK change the app name.

you can try add  tools:replace="android:label" in Manifest file

@salihyalcin Need more information to assist.  Can you provide the full steps to reproduce this?  Are you saying that you had an existing app based on 100.0.0 and all you did was update the dependency to 100.1.0?  I have yet to reproduce that.

@doneill - This is reproducible when using a different language localization and using the default string resource app_name.

Hi @salihyalcin - we've addressed this issue in the 100.2 release of the ArcGIS Runtime SDK for Android - more info on the release is at https://blogs.esri.com/esri/arcgis/2017/12/18/whats-new-in-arcgis-runtime-sdk-100-2-0/. Please let us know if you have any continuing problems once you've upgraded to version 100.2 - you could reopen this issue, or let us know on the GeoNet community.


Redundant use of string contants

Within the transport codecs there are quite a few string constants with some redundant use. Should these be put into string constants? And if so, should any of them be made part of the public API?
Two quick examples:
$ grep -r '"ce-specversion"' .
./pkg/cloudevents/client/client_test.go:					"ce-specversion": {"0.2"},
./pkg/cloudevents/client/client_test.go:					"ce-specversion": {"0.3"},
./pkg/cloudevents/transport/http/codec_v02.go:	h.Set("ce-specversion", ec.SpecVersion)
./pkg/cloudevents/transport/http/codec_v02.go:	ec.SpecVersion = h.Get("ce-specversion")
./pkg/cloudevents/transport/http/codec_v02.go:	h.Del("ce-specversion")
./pkg/cloudevents/transport/http/codec_v02_test.go:					"ce-specversion": {"0.2"},
./pkg/cloudevents/transport/http/codec_v02_test.go:					"ce-specversion": {"0.2"},
./pkg/cloudevents/transport/http/codec_v02_test.go:					"ce-specversion": {"0.2"},
./pkg/cloudevents/transport/http/codec_v03.go:	h.Set("ce-specversion", ec.SpecVersion)
./pkg/cloudevents/transport/http/codec_v03.go:	ec.SpecVersion = h.Get("ce-specversion")
./pkg/cloudevents/transport/http/codec_v03.go:	h.Del("ce-specversion")
./pkg/cloudevents/transport/http/codec_v03_test.go:					"ce-specversion": {"0.3"},
./pkg/cloudevents/transport/http/codec_v03_test.go:					"ce-specversion": {"0.3"},
./pkg/cloudevents/transport/http/codec_v03_test.go:					"ce-specversion": {"0.3"},
./pkg/cloudevents/transport/http/message.go:		if v := m.Header["ce-specversion"]; len(v) == 1 {
./pkg/cloudevents/transport/http/message.go:		if ver := m.Header.Get("ce-specversion"); ver != "" {

$ grep -r '"ce-"' .
./pkg/cloudevents/transport/http/codec_v02.go:				h.Set("ce-"+k+"-"+subkey, string(encoded))
./pkg/cloudevents/transport/http/codec_v02.go:		h.Set("ce-"+k, string(encoded))
./pkg/cloudevents/transport/http/codec_v02.go:		if len(k) > len("ce-") && strings.EqualFold(k[:len("ce-")], "ce-") {
./pkg/cloudevents/transport/http/codec_v02.go:			ak := strings.ToLower(k[len("ce-"):])
./pkg/cloudevents/transport/http/codec_v03.go:				h.Set("ce-"+k+"-"+subkey, string(encoded))
./pkg/cloudevents/transport/http/codec_v03.go:		h.Set("ce-"+k, string(encoded))
./pkg/cloudevents/transport/http/codec_v03.go:		if len(k) > len("ce-") && strings.EqualFold(k[:len("ce-")], "ce-") {
./pkg/cloudevents/transport/http/codec_v03.go:			ak := strings.ToLower(k[len("ce-"):])

Go code tends to have these custom magic strings inside the code, they are never intended to be exported. And to validate that the magic string inside the sdk is used correctly, the tests do not use it, double-checking that the test confirms to the spec and the sdk as well.
So, in my opinion, no. This is working as intended.

In v2 of the sdk we are going to do this differently, it is not worth the churn to fix this issue at the moment.


Separate out DeleteSession & DeleteMemory into separate functions

deleteSession now does what deleteMemory used to do (i.e., soft delete the entire session and allow purging on schedule)
deleteMemory now immediately deletes all memory+ corresponding metadata associated with a session. Note, after running a deleteMemory, you can continue to use session metadata, add additional memory etc., deleteMemory acts like a clear() on the session.

Looks great. Would you please add a unit test for deleteMemory?


Stuck Downloading Blocks...

-assumedvalid= default should be 0 "this is a Node!"
im downloading a BCD Node wallet, but i have the same problem i had with Bitcoin-core,
it gets stuck downloading #### block,
-reindex-chainstate does Not solve the problem, it should be renamed to: -reindex-chainstate-only
i have deleted chainstate & index folder, only leaving .blk folder, "but also deleting the last 10.blk files" and -reindex all, Not only chainstate. "should be renamed -reindex-all
im using different -dbcache= values to see if there is a problem,
right now im using =0
i have tried 12000
but my gaming board does Not have Buffered ECC memory, also shutdown takes more time... "bad with a small ups/power loss"
but the 7700K has Fast Cores required for Reindexing.
im using 4-threads, 50% cpu, more could be worse because the limited L2/L3 cache.
with Bitcoin-core the problem was solved by using Ethernet. the usb Wi-Fi makes errors, ive tryed different adapters, timing or data errors i don´t know... i just erased all and downloaded all again from 0.
also i had another problem, i was using an usb to ethernet adapter with a 1.8 meter usb extension, and the power loss was too much. "Apple USB Ethernet adapter with Bootcamp Drivers 6."
that problem was solved by using a powered USB2.0 hub, at the end of the usb extension cable / near the usb to ethernet adapter.
but...
this time, the problem is maybe someone has a faulty Node, that gives "fake" blocks, i´ve seen that happen with .torrents, a faulty server gives data, but all data is invalid, and i end up downloading the same file 500x times, and still gives an error, .torrent enters in an endless loop trap runaway, downloads all, gives error, downloads again, gives error, downloads again all, gives error, etc... endless loop.
but Bitcoin security methods "gets stuck" &/or cannot connect to nodes. acts like a fuse/jumper.
also im locking pages to memory, to avoid VirtualRAM. "to reindex faster"
run in administrator
https://msdn.microsoft.com/en-us/library/ms190730(v=sql.120).aspx
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows?view=sql-server-2017

stuck at 522524,
i reindexed All from 0 to 522503, the error in the Blockchain must be Before 522503.

there should be a similar website to track BCD Nodes:
https://bitnodes.earn.com

Banned:
<IP_ADDRESS>/32
<IP_ADDRESS>/32
added to bitcoin.conf :
>  addnode=<IP_ADDRESS>
>  addnode=<IP_ADDRESS>
>  addnode=<IP_ADDRESS>
>  addnode=<IP_ADDRESS>
>  addnode=<IP_ADDRESS>
>  addnode=<IP_ADDRESS>
>  addnode=<IP_ADDRESS>
>  addnode=<IP_ADDRESS>

3rd attempt to sync;
will -reindex again from 0 to 999.blk

stuck again 522523 ~ 522524
will try other HDD, other PC, etc...

4th attempt fail, stuck at 522524


chore(ci): Update to latest version of Build-Container-Installer and include building Aurora ISOs

Summary
This PR includes a number of things in it.

Using the latest pinned version of Build Container Installer
Using a folder upload rather than individual file uploads
Creates split workflows to build ISOs

Blockers

[ ] Secrets needed for Aurora Buckets
[x] Test ISOs that are being built with main
[x] Pinned version of Build-Container Installer needs to be released
[x] Pin to versioned release
[x] Test ISOs built with pinned release version

We have our flatpak lists duplicated

Yeah and shouldn't we use the silverblue and kinoite instead of kde_flatpaks, gnome_flatpaks, and aurora_flatpaks so we match how we organize the rest of the repo?

We have our flatpak lists duplicated

I think those got reintroduced on a merge from my branch. Removed them.

Yeah and shouldn't we use the silverblue and kinoite instead of kde_flatpaks, gnome_flatpaks, and aurora_flatpaks so we match how we organize the rest of the repo?

I guess I would want a second opinion on this @m2Giles. I personally think it's clearer to have them delineated between as bluefin_flatpaks and aurora_flatpaks personally.

I'm going to say this is ready for review. The main blocker for building aurora ISOs shouldn't affect this going in. We can always fix it if the bucket name for aurora needs to be adjusted.

I'm impartial to the names for the flatpak dirs.
One reason to stay with the brand names is that we invoke the workflow with this names. But we already use the kinoite/silverblue names inside as variables.