authelia: fix update script

Description of changes
Prepare for future release
Don't use a patch that is prone to needing updating
Visibly fail

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
23.11 Release Notes (or backporting 23.05 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

[ ] Fits CONTRIBUTING.md.

I tested this (manually tweaking NEW_VERSION to "4.38.0-beta3", as we discussed on Matrix), and it works great!
Kudos also on the change to substituteInPlace instead of a patch file, I wouldn't have thought of that.

Ah I didn't see v4.38.0-beta3 but I guess it was a branch rather than pre-release tag?
glad it works now

correct, it's a branch, hence easy to miss. of course nixpkgs shouldn't actually update authelia until there's a non-beta release, but it's good for the script to work :)

@06kellyjac just so you know, there's discussion over on https://github.com/wxWidgets/wxWidgets/pull/23309 of making sure to announce this kind of thing in advance going forward, so it can be tested. since you're the maintainer for the nix wxGTK package I thought you might want to be involved.


Remove multicast option from the test layer as it will no longer be available for next Crate versions

pls add a changes entry prefixed with "Testing:"


Relative links are not working when documentation is hosted on ReadtheDocs

It appears that the href element is being populated with a relative link which is causing the links to route to a 404 page when the documentation is hosted on readthedocs.

The home page is located at <rtd_url>/latest/
The glossary is located at <rtd_url>/latest/glossary
The relative links from the readme (home page) are routing to <rtd_url>/glossary#id, but that page doesn't exist
The relative links from other pages (not the home page) are working properly

@realtimeprojects, any idea if this would be able to be resolved any time soon?

thank you for your PR and for fixing this issue. Looks good to me. I just made a new release with your changes.


Navbar dropdown menulist fixed with parent width

Navbar dropdown Width is not responsive, in the sense that submenu content are wrap within it parent width, and if sub-item are longer than the parent, the menu does not strecht. is there a solution to this?

See the constrain width option

@Dogfalo thanks. Where is this documentation located.

In the dropdown documentation


Avoiding dependency on jsdelivr.com?

According to the doc huey "depends on resources served by jsdelivr.com" - can this be avoided? I have a feeling the security dep of my company will be uneasy with something communicating over Internet (even if it, I assume, only is intended to "read") while visualizing company data due to fear of data exfiltration etc. Would be nice to set up a 100% local installation by once and for all download those resources locally - is this possible?

Hi!
There is already an issue on this topic, see: https://github.com/rpbouman/huey/issues/138

Would be nice to set up a 100% local installation by once and for all download those resources locally - is this possible?

It depends on what you mean by "local". DuckDB is distributed as a ES Module, which is added to the page using the javascript import statement. That already precludes loading from the file system directly, it has to come from HTTP.
However, rather than using JSdeliver, you could set up your own webserver, either inside your company intranet, or even on your local workstation, and host the resources from there. You can find some information on that in the DuckDB WASM documentation here: https://duckdb.org/docs/api/wasm/instantiation#statically-served
Another thing to consider is that the external resources only have to be downloaded once - after that they are cached by the browser, and huey will still work even if you're not connected to the internet.

Thanks for the detailed and helpful answer.

Just a comment - I think data exfiltration is a risk even if file is served locally: POST is still possible afaik - though not the case if running/kept in Offline mode.
Specifying a content security policy either through the page head or by embedding it in an iframe sandbox might make this safer - Not a security expert though


Allow Time Multiplexed Multiple Writers to BRAM

I have a version of GEMM that loads the previous value of a tile and then accumulates on top of that.  Spatial or delite is seeing this as a memory with multiple writers and quitting.  The parent pipes of the two writers are different stages of the same outer pipe, so I would like to have this allowed and just the wdata stream based on the parent pipe's en.  This will work for sequential pipes.
Not yet sure if I will need more info exposed when there are multiple writers inside of a metapipe.
GEMM on spatial branch maxj commit 760a1948a651 will show this error.

Fully supported after commit dc668db


feat/returns-to-affect

Please review before merging.

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


Unable to connect to Confluent using Pulumi

Hello!

Vote on this issue by adding a 👍 reaction
If you want to implement this feature, comment to let us know (we'll work with you on design, scheduling, etc.)

Issue details
Currently, logged in to Confluent using SSO and hence our username/password are not working to login to confluent through Pulumi.  Tried creating an API key too (pair of key and secret) and used them as username and password and still getting :
error: 1 error occurred:
* login: Invalid username or password.

Using an organization access token.

Affected area/feature
Pulumi-Service

My understanding of things here.
This provider is a bridged Terraform provider based on github.com/Mongey/terraform-provider-confluentcloud.
That Terraform provider does not support username/password or API Key.  See for example https://github.com/Mongey/terraform-provider-confluentcloud/issues/59.  This is the most requested ask in that provider.
Unfortunately - it appears fixing that issue itself is blocked on a limitation in the underlying Go SDK that that provider uses - tracked in https://github.com/cgroschupp/go-client-confluent-cloud/issues/13.  And that issue appears to require a transition to a fundamentally new version of the underlying Confluent v2 API.
There is a newer more official Confluent Terraform provider at https://github.com/confluentinc/terraform-provider-confluent.  That provider does support API Keys (https://registry.terraform.io/providers/confluentinc/confluent/latest/docs#example-usage).  We will be looking to enable that provider to be available in Pulumi as well - which may be the only available path to addressing this need given the blocking issues in upstream dependencies of the existing provider noted above.

Hi all
I am going to close this issue out - we have made the "official" Confluent Cloud provider now available in the Pulumi - ecosystem
https://github.com/pulumi/pulumi-confluentcloud
You can find the packages available at:
https://www.npmjs.com/package/@pulumi/confluentcloud
https://pypi.org/project/pulumi-confluentcloud/
https://www.nuget.org/packages/Pulumi.ConfluentCloud
Unfortunately, there's no direct migration story between providers but I suggest you can use import
https://www.pulumi.com/docs/guides/adopting/import/


[DON'T MERGE] Correctly send locale and update_type in publishing-api publish call

These keys were being ignored because they were nested in an additional
update_type key.
Don't merge until the gds-api-adapters dependency has been pointed at a released version.
/cc @elliotcm @benilovj

Sad times, my bad. How did this not show up during testing?

@benilovj we didn't test anything with translations or look at different update types.

LGTM :+1:. Merge post gem bump dance.


Incorrect I18n.locale inside route

Hi, I have some problems when the message is route to the specific method.
My handler:
class Deployment < Handler
  route(/^deploy (?<branch>.+)/, :deploy, command: true, help: {
    t("help.key") => t("help.value"), # Got `:'zh-TW`
  })

  def deploy(response)
    response.reply(I18n.locale) # => Got `:en`
  end
end

The correct one is :zh-TW because the environment variable LANG="zh-TW" but it reset to :en when it inside the response method.
I have no idea why it changed, I add some monkey patch to detect I18n.locale= but it didn't changed after Lita is booted.

Can you share the code for your monkey patch? New threads are created to dispatch messages to handlers, so it's possible the i18n library uses some thread local data that isn't being accounted for.

I create a bin/lita as an executable script to verify the I18n.locale= is be called.
#!/usr/bin/env ruby

require 'i18n'

I18n.module_eval do
  class << self
    alias_method :origin_locale=, :locale=

    def locale=(new_locale)
      puts "Locale is set to #{new_locale}"
      pp caller
      self.origin_locale = new_locale
    end
  end
end

Bundler.require

Lita.run(Bunder.root.join("lita_config.rb"))

But I can see the Locale is set to zh-TW twice when the config ls loaded and ENV['LANG'] is detected.
Therefore I have no idea why the I18n.locale is different when the method is called. 🤔

From reading https://guides.rubyonrails.org/i18n.html it seems that I18n.locale is local to the current thread, but I18n.default_locale is not. Can you try adding I18n.default_locale = "zh-TW" at the very end of your lita_config.rb file (after the Lita.configure call)? If that works, I think it will be necessary to add a new default_locale method to the configuration, as the regular "locale" doesn't work how I expected, and changing it would technically be a breaking change.

After append I18n.default_locale to the lita_config.rb the locale is correct set the :zh-TW in the chatbot response.

I just released v4.8.0, which fixes this: Setting the LANG environment variable will now set I18n.default_locale in addition to I18n.locale. Alternatively, you can set the default locale manually in your config file with the new config.robot.default_locale configuration attribute.


☂ Lightweight Flutter Engines

Description
This meta issue proposes an array of improvements to Flutter for supporting customers who want to use multiple Flutter instances in an app, focused on the Add-to-app use case.  It includes improvements for performance and ease-of-use.
Design doc
http://flutter.dev/go/multiple-engines
Phase 1
Share Engine Components
iOS

[x] API - iOS - https://github.com/flutter/flutter/issues/72010
[x] Threads - iOS - https://github.com/flutter/flutter/issues/72019
[x] Skia Contexts - iOS - https://github.com/flutter/flutter/issues/72021
[x] GPU Contexts - iOS - https://github.com/flutter/flutter/issues/72022

Android

[x] API - Android - https://github.com/flutter/flutter/issues/72018
[x] Threads - Android - https://github.com/flutter/flutter/issues/72528
[x] Skia Contexts - Android - https://github.com/flutter/flutter/issues/73597
[x] GPU Contexts - Android - https://github.com/flutter/flutter/issues/73599

Shared

[x] Fonts - https://github.com/flutter/flutter/issues/72024
[x] Spawn -> Kill Spawner Integration test  - https://github.com/flutter/flutter/issues/72319
[x] Documentation - https://github.com/flutter/flutter/issues/37644
[x] Sample Code - https://github.com/flutter/flutter/issues/74530 (written, not landed, waiting for API to hit stable)
[x] Handle thread merging (Crashing) - https://github.com/flutter/flutter/issues/73620

Phase 2
Share Engine Components

[x] IsolateGroups - https://github.com/flutter/flutter/issues/72025

More performance tightening

[ ] Squeeze an extraneous 0.1MB per engine from Android embedding - https://github.com/flutter/flutter/issues/74941
[x] Squeeze an extraneous 0.32MB per engine from Dart VM - https://github.com/flutter/flutter/issues/74942

FlutterView / FlutterEngine integration

[x] Android FlutterView ergonomics- https://github.com/flutter/website/issues/7785

Tests

[x] Shared engine memory benchmark - https://github.com/flutter/flutter/issues/72026
[ ] Spawn->Kill Integration test for Android - https://github.com/flutter/flutter/issues/72527

Cleanup

[ ] Refactor Spawn-> Kill integration test - https://github.com/flutter/flutter/issues/72525
[x] Handle thread merging (platform views) - https://github.com/flutter/flutter/issues/73620
[x] InitialRoute missing in the API - https://github.com/flutter/flutter/issues/78931

Phase 3

[ ] Async VM and Shell creation - https://github.com/flutter/flutter/issues/72028
[ ] Easier engine↔engine interop - https://github.com/flutter/flutter/issues/33288
[ ] Signal garbage collection only when all isolates are idle - https://github.com/flutter/flutter/issues/72031
[ ] Cleanup non-visible view surfaces
[ ] Shared image cache - https://github.com/flutter/flutter/issues/72033
[ ] Consider separate UI threads per engine
[ ] Create lightweight engines from existing FlutterEngineGroup in FlutterActivity/FlutterViewController - https://github.com/flutter/flutter/issues/72742

Good!

As a preliminary check on the current state on the engine repo head, on a Pixel 3 with 5 runs with a mixture of force gc before each step and not, using the default create counter app as a test sample, creating 10 engines vs 1 engine costs 0.83mb extra per engine.

As a preliminary check on the current state on the engine repo head, on a Pixel 3 with 5 runs with a mixture of force gc before each step and not, using the default create counter app as a test sample, creating 10 engines vs 1 engine costs 0.83mb extra per engine.

Looking like iOS will be 1.13MB per additional engine on engine repo master head

Looking like iOS will be 1.13MB per additional engine on engine repo master head

On the latest master head, the per engine overhead is just 180kB now for both Android and iOS. This matches our prototype more correctly.

The memory is still increased by 32M（not ～180K ），when new FlutterViewController in ios
each additional Flutter instance in new FlutterViewController beyond the first instance ，
The memory is still increased by 32m, not ～180K，Did you really test it? Do you provide any supporting data

Running again on stable 2.0.1:
1 engine:

2 engines:

The 2 engine case happens to be smaller than the 1 engine case since it's within the margin of error. We took the 180kB measurement by taking many runs and taking the median number.
Also on the VM tracker:
1 engine:

2 engines:

It takes a bit of work to get the right number (and then de-noise it again by taking multiple runs). We have to remove the "Performance tool data" memory from both the before and after's dirty size to get the real application memory consumption. But you can see the ballpark at least.
Also note, the measured memory is the cost of the Flutter Engine supporting a second engine (which includes the Java/Obj-C bootstrapping classes, a second instance of the core C++ engine, a second Dart isolate etc) and the cost of a second Flutter Framework instance (all the Flutter Dart layers from Foundation to Material) in a minimal app. If you have a full Flutter application which consumes memory itself (such as reading files, downloading network resources etc) and then create a second instance of your application, it'll likely consume 2x the memory. It would be upon you, the user, to modularize your code to run separate code (such as via different entrypoints) to show separate UI on multiple Flutter instances as needed.
Also follow https://github.com/dart-lang/sdk/issues/36097 for future plans on sharing Dart data between isolates and https://github.com/flutter/flutter/issues/72033 for potentially sharing image caches between Flutter instances.

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.0, on macOS 11.2.2 20D80 darwin-x64, locale
zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for
more details.
[!] Xcode - develop for iOS and macOS
! CocoaPods 1.9.0 out of date (1.10.0 is recommended).
CocoaPods is used to retrieve the iOS and macOS platform side's plugin
code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To upgrade see
https://guides.cocoapods.org/using/getting-started.html#installation for
instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] Connected device (3 available)
! Doctor found issues in 2 categories.
code：
`
class HostViewController: UIViewController, DataModelObserver {
@IBOutlet weak var countView: UILabel!
let appdelegate = UIApplication.shared.delegate as? AppDelegate
deinit {
UIApplication.shared.keyWindow?.backgroundColor = UIColor.white;
}
func onCountUpdate(newCount: Int64) {
self.countView.text = String(format: "111111%d", newCount)
}
@IBAction func onAddCount() {
DataModel.shared.count = DataModel.shared.count + 1
}
@IBAction func onNext() {
let navController = self.navigationController!
let vc = SingleFlutterViewController(withEntrypoint: nil)
navController.pushViewController(vc, animated: true)
}
}
class SingleFlutterViewController: FlutterViewController, DataModelObserver {
private var channel: FlutterMethodChannel?
init(withEntrypoint entryPoint: String?) {
let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
let newEngine = appDelegate.engines.makeEngine(withEntrypoint: entryPoint, libraryURI: nil)
super.init(engine: newEngine, nibName: nil, bundle: nil)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func onCountUpdate(newCount: Int64) {
if let channel = channel {
channel.invokeMethod("setCount", arguments: newCount)
}
}
override func viewDidLoad() {
super.viewDidLoad()
channel = FlutterMethodChannel(
name: "multiple-flutters", binaryMessenger: self.engine!.binaryMessenger)
channel!.invokeMethod("setCount", arguments: DataModel.shared.count)
let navController = self.navigationController!
channel!.setMethodCallHandler { (call: FlutterMethodCall, result: @escaping FlutterResult) in
if call.method == "incrementCount" {
DataModel.shared.count = DataModel.shared.count + 1
result(nil)
} else if call.method == "next" {
let vc = SingleFlutterViewController(withEntrypoint: nil)
navController.pushViewController(vc, animated: true)
} else {
result(FlutterMethodNotImplemented)
}
}
}
}
`
Xcode run profile :

click the next button：

Persistent Memory ：2.36MB

Persistent Memory ：45.35MB
click the next button of the flutter page：

Persistent Memory ：88.51MB

@iLees I pulled out your report in an issue so it can be investigated.  ( https://github.com/flutter/flutter/issues/77621 )

very very good !

@iLees I pulled out your report in an issue so it can be investigated. ( #77621 )

Fine, I get it.

hi folks, according to the https://flutter.dev/docs/development/add-to-app/multiple-flutters

Warning: In 2.0.0, the use of platform views is not supported in conjunction with multiple Flutters. When a second Flutter instance is created, platform views will be globally disabled.

is it planned to remove the limitation above?

engines can't set initialRoute
engines render need splash view if engine render slower while from one FlutterViewController push to another FlutterViewController, current release may delay 30ms and then push will looks like ok

I found this thrio

now I have found few problems by used multi engine with android/ios:

engines can't set initialRoute

Couldn't you set the initial route in your entrypoint?

engines render need splash view if engine render slower while from one FlutterViewController push to another FlutterViewController, current release may delay 30ms and then push will ios looks like ok, android need transparent looks like ok but a little delay

You are talking about the first FlutterEngine in a FlutterEngineGroup, right?  We've talked about having a call that can prewarm a FlutterEngineGroup, and potentially keep it warmed at a cost to memory.  That seems like it would help you.

now ios releame every FlutterViewController with engines increase 11-13MB not 180k, android is about 3MB each FlutterViewActivity

If you look above in this conversation there is an outstanding issue on iOS where resources are cached then released when under memory pressure, we are trying to make that behavior more deterministic (https://github.com/flutter/flutter/issues/77621).  The actual cost of an engine will depend on what is happening in the code, each engine still has its own heap for example.  The numbers we used were with a minimal sample project.  The ongoing memory benchmark for Android can be found here and here.

thanks to the reply .

now I have found few problems by used multi engine with android/ios:

engines can't set initialRoute

Couldn't you set the initial route in your entrypoint?

only first FlutterEngine in a FlutterEngineGroup can set initialRoute.
set the initial route in entrypoint  you mean set dartEntrypointFunctionName ? this could be work by set multi @pragma('vm:entry-point').
of course it's already great !
if the spawn engine could set initialroute, may the code looks good and all engines can use the same entry-point with different definition in MaterialApp.routes
void initAndRunApp(RoutesBuilder routesBuilder) {
  appRun(routesBuilder);
}

//region dartEntrypointFunctionName 仅比 initialRoute 多一个 main 前缀, 方便以后灵活的切换 '多引擎单路由' / '单引擎多路由'
@pragma('vm:entry-point')
void mainFlutterBridge() =>
    initAndRunApp((String uniqueId, String argumentsJsonString) => {
          '/': (BuildContext context) => BasePageDefault(
              state: BridgeWidgetState(
                  uniqueId: uniqueId, argumentsJsonString: argumentsJsonString))
        });

@pragma('vm:entry-point')
void mainFlutterSettings() =>
    initAndRunApp((String uniqueId, String argumentsJsonString) => {
          '/': (BuildContext context) => BasePageDefault(
              state: SettingsState({},
                  uniqueId: uniqueId, argumentsJsonString: argumentsJsonString))
        });

FlutterEngineGroup.java

The engine needs to receive the Flutter app's initial route before executing any Dart code to ensure that the initial route arrives in time to be applied.

  public FlutterEngine createAndRunEngine(
      @NonNull Context context, @Nullable DartEntrypoint dartEntrypoint) {
    FlutterEngine engine = null;

    if (dartEntrypoint == null) {
      dartEntrypoint = DartEntrypoint.createDefault();
    }

    if (activeEngines.size() == 0) {
      engine = createEngine(context);
      engine.getDartExecutor().executeDartEntrypoint(dartEntrypoint);
    } else {
      engine = activeEngines.get(0).spawn(context, dartEntrypoint);

            // The engine needs to receive the Flutter app's initial route before executing any
            // Dart code to ensure that the initial route arrives in time to be applied.
            // engine.getNavigationChannel().setInitialRoute(initialRoute);
    }

    activeEngines.add(engine);

engines render need splash view if engine render slower while from one FlutterViewController push to another FlutterViewController, current release may delay 30ms and then push will ios looks like ok, android need transparent looks like ok but a little delay

You are talking about the first FlutterEngine in a FlutterEngineGroup, right? We've talked about having a call that can prewarm a FlutterEngineGroup, and potentially keep it warmed at a cost to memory. That seems like it would help you.

no, I mean the spawn engine, the second or more engine with new FlutterViewController.
now my delay code
+(void) openNewFlutterViewControllerByName:(UIViewController* _Nullable)fromViewController pageName:(NSString* _Nullable) pageName pageParams:(NSDictionary* _Nullable) pageParams{
    NSLog(@"openNewFlutterViewControllerByName pageName=%@, pageParams=%@", pageName, pageParams);
    UINavigationController *navigationController = [fromViewController isKindOfClass:[UINavigationController class]] ? (UINavigationController*)fromViewController : fromViewController.navigationController;

    NSString* initialRoute = pageName;
    NSString* finalDartEntrypointFunctionName = (![STFlutterInitializer sharedInstance].enableMultiEnginesWithSingleRoute || [initialRoute isEqualToString: @"/"]) ? @"main" : [NSString stringWithFormat:@"main%@",initialRoute];
    // NSString* finalInitialRoute = (![STFlutterInitializer sharedInstance].enableMultiEnginesWithSingleRoute)? initialRoute : @"/";

    STFlutterMultipleViewController *flutterViewController = [[STFlutterMultipleViewController alloc] initWithDartEntrypointFunctionName:finalDartEntrypointFunctionName];

    [flutterViewController setRequestData:0 requestData: @{@"argumentsJsonString":pageParams[@"argumentsJsonString"]}];

    int delta = 20 * NSEC_PER_MSEC;
    #if defined(DEBUG)
        NSLog(@"BUILD-TYPE -> DEBUG");
        delta = 300 * NSEC_PER_MSEC; // DEBUG >= 300
    #else
        NSLog(@"BUILD-TYPE -> RELEASE");
        delta = 20 * NSEC_PER_MSEC; // RELEASE >= 20
    #endif
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delta), dispatch_get_main_queue(), ^{
        [navigationController pushViewController:flutterViewController animated:YES];
    });
}

Running again on stable 2.0.1:
1 engine:

2 engines:

The 2 engine case happens to be smaller than the 1 engine case since it's within the margin of error. We took the 180kB measurement by taking many runs and taking the median number.
Also on the VM tracker:
1 engine:

2 engines:

It takes a bit of work to get the right number (and then de-noise it again by taking multiple runs). We have to remove the "Performance tool data" memory from both the before and after's dirty size to get the real application memory consumption. But you can see the ballpark at least.
Also note, the measured memory is the cost of the Flutter Engine supporting a second engine (which includes the Java/Obj-C bootstrapping classes, a second instance of the core C++ engine, a second Dart isolate etc) and the cost of a second Flutter Framework instance (all the Flutter Dart layers from Foundation to Material) in a minimal app. If you have a full Flutter application which consumes memory itself (such as reading files, downloading network resources etc) and then create a second instance of your application, it'll likely consume 2x the memory. It would be upon you, the user, to modularize your code to run separate code (such as via different entrypoints) to show separate UI on multiple Flutter instances as needed.
Also follow dart-lang/sdk#36097 for future plans on sharing Dart data between isolates and #72033 for potentially sharing image caches between Flutter instances.
If you share a simple reproduction project for your case, we can take a look to debug as well. It's very possible we have a bug as well.

What is tool?

What is tool?

Xcode / Instruments

@zsunkun It's not being actively developed, you can track it / upvote here: https://github.com/flutter/flutter/issues/73620

Any update on Software Transactional Memory? Badly in need of a shared memory to share images without sending as message and decoding on the main isolate.

@xster Any update on DataSync? This is essential for using multiple Engines in complex scenarios.

@zsunkun DataSync is still planned but is lower priority.  Please see this Flutter sample on how to create your own solution for synchronizing data across multiple engines: https://github.com/flutter/samples/tree/master/add_to_app/multiple_flutters

@gaaclarke I tested with the latest stable (2.5.3) on android and see that we can use FlutterEngineGroup along with PlatformViews such as google_maps_flutter and webview_flutter. Switching to hybrid composition mode, however, causes the app to crash. I cannot reproduce it on master. Is this related to #73620?

@Danopie I'm surprised that platform views work for you at all on 2.5.3.  The feature hasn't hit stable yet: https://github.com/flutter/flutter/commit/1c6d2633ef5df46ea45c5aeb3683afe4930a15bb
Try out the 2.8.0-3.2.pre branch that looks like the most recent branch that will probably lead to the next stable release in Q1 2022.

Hello @gaaclarke can you please help us or am I wrong in this thread?
We have the following scenario:

From one Android/Flutter app, we need to draw UIs on 2 screens with different content
We are starting 2 Flutter Engines and want them to communicate with each other to share data, navigation state as they together make up one "logical bigger app".

Could be use the multiple Flutters feature for this?
Currently we are having 2 completely isloated FlutterEngines and same code loaded in both enignes.
We are than doing some kinda a IPC communication by native platform channels (message service) to make those 2 FlutterEngines know each other.
Your help would be much appreciated.
Thanks!
Mehmet

@zsunkun DataSync is still planned but is lower priority. Please see this Flutter sample on how to create your own solution for synchronizing data across multiple engines: https://github.com/flutter/samples/tree/master/add_to_app/multiple_flutters

I downloaded your demo and compiled it in the release mode of IOS real machine, and the result reported an error: nosuchmethoderror: no top-level getter 'bottommain' declared
Receiver: top-level，Tried calling: bottomMain, stack trace: #0 NoSuchMethodError._ Thrownew (dart:core-patch/errors_patch.dart:222) multiplefluttersios[4219:2013305] [verbose-2:dart_isolate.cc (681)] could not resolve main entry point function Could not run the run main Dart entrypoint. Could not create root isolate. Could not launch engine with configuration.
It is normal in debug mode.
My fluent -- version:
Flutter 2.10.6-0.0.pre.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision db1bda399e (83 minutes ago) • 2022-04-24 19:24:50 +0800
Engine • revision 57d3bac3dd
Tools • Dart 2.16.2 • DevTools 2.9.2
My iphone info: iPhone 7 , systom: iOS14.0

android FlutterEngineGroup destroyEngine false
SystemChrome.setSystemUIOverlayStyle only first time open work

Hello @gaaclarke, I found an interesting issue with the EngineGroups that is actually easy to reproduce and would like to understand if it's a known behavior or not.
On the MultipleFlutters example project, when adding any platform view (WebView, GoogleMaps) to the Flutter screen, everything works normally. But there's a bug happening when the first engine of the group was never loaded into a ViewController, when moving from one screen with PlatformView to another screen with/without platform view, the next engine crashes with EmptyScreen, and no logs on Native neither on Flutter.
To give a bit more context, in our project, we have a UI Less Engine that is always alive like an API to get some information from Flutter. We usually load it in the app startup to check if the deep link is available or not on the Flutter side before opening an engine, that's why this engine has no view controller attached to it.
I'm working to provide the minimum reproducible code soon.

About FlutterEngineGroup + PlatfromView Crash, may be same issue https://github.com/flutter/flutter/issues/127168

About FlutterEngineGroup + PlatfromView Crash, may be same issue https://github.com/flutter/flutter/issues/127168

https://github.com/flutter/flutter/issues/127168 has been fixed now.

About FlutterEngineGroup + PlatfromView Crash, may be same issue https://github.com/flutter/flutter/issues/127168

#127168 has been fixed now.

Which version invlude this fixing?
I tried flutter 3.13.7 still can reporduce this issue.

Given that most work has been complete here I think the meta issue has outlived its usefullness and I'm closing it. remaining work can be tracked in the individual bugs.


Vectorizable matrix class

Adds a new matrix class VectorMatrix that organizes the matrix data for vectorization.
Includes common matrix policy tests that are applied to Matrix and VectorMatrix
Specializes the ProcessSet::AddForcingTerms() function for VectorMatrix using a Vectorizable concept with custom loops over the matrix data. I think this is an acceptable way to do this, but maybe there is a better solution.

Codecov Report
Patch coverage: 96.10% and project coverage change: +0.74 :tada:

Comparison is base (d0cba32) 92.24% compared to head (6eb3475) 92.98%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #87      +/-   ##
==========================================
+ Coverage   92.24%   92.98%   +0.74%
==========================================
  Files          17       18       +1
  Lines         967     1098     +131
==========================================
+ Hits          892     1021     +129
- Misses         75       77       +2

Impacted Files
Coverage Δ

include/micm/solver/rosenbrock.hpp
86.32% <82.60%> (ø)

include/micm/util/vector_matrix.hpp
97.84% <97.84%> (ø)

include/micm/process/process.hpp
94.44% <100.00%> (ø)

include/micm/process/process_set.hpp
99.13% <100.00%> (+0.29%)
:arrow_up:

include/micm/solver/chapman_ode_solver.hpp
93.00% <100.00%> (ø)

include/micm/solver/state.hpp
100.00% <100.00%> (ø)

include/micm/util/matrix.hpp
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@mattldawson I checked out your branch on Gust but I could not build it with the NVHPC compiler. It failed with an error I reported to @K20shores before and I thought it should be resolved by his recent PR #84.

@mattldawson I checked out your branch on Gust but I could not build it with the NVHPC compiler. It failed with an error I reported to @K20shores before and I thought it should be resolved by his recent PR #84.

Are you able to build the main branch after PR #84 was merged?

@mattldawson I checked out your branch on Gust but I could not build it with the NVHPC compiler. It failed with an error I reported to @K20shores before and I thought it should be resolved by his recent PR #84.

Are you able to build the main branch after PR #84 was merged?

@mattldawson , yes, I just checked out the latest main branch and could build it on Gust with NVHPC/23.1. All the tests pass within 0.01 second.

Hi @sjsprecious - I think this branch should compile and pass the tests on Gust with nvc++ now. Could you give it a try at some point and let me know?
I bypassed the function that is optimized for VectorMatrix when C++20 is not supported. We can decide after your testing if we want to make this available for the GPU code or not. If we do, we could ask CISL about getting the issue with the older g++ compilers fixed on Gust/Derecho

@mattldawson I checked out your branch on Gust but I could not build it with the NVHPC compiler. It failed with an error I reported to @K20shores before and I thought it should be resolved by his recent PR #84.

Are you able to build the main branch after PR #84 was merged?

@mattldawson , yes, I just checked out the latest main branch and could build it on Gust with NVHPC/23.1. All the tests pass within 0.01 second.

Hi @sjsprecious - I think this branch should compile and pass the tests on Gust with nvc++ now. Could you give it a try at some point and let me know?
I bypassed the function that is optimized for VectorMatrix when C++20 is not supported. We can decide after your testing if we want to make this available for the GPU code or not. If we do, we could ask CISL about getting the issue with the older g++ compilers fixed on Gust/Derecho

Hi @mattldawson , thanks for your update and efforts. I could confirm that I am able to build MICM on Gust with your develop-vector-matrix branch and nvhpc/23.1 module now.
Which version of GCC do you need for C++20 support? Gust has gcc/12.2.0 installed.


Experimental code cache for built-in js/ts modules

Builds on #201 which would need to land first
Implements a per-process cache for compiled built-in js/ts modules aimed at reducing the peformance impact of loading those repeatedly across many isolates. This is purely experimental right now so this PR will remain as a draft for the time being.

Won't this use unbounded memory as more and more different workers are loaded over time? It seems like we would need some sort of eviction mechanism for these?

Never mind, I didn't get that this is for built-in modules only. This makes tons of sense for built-ins.

Yeah, I have no intention of using this for worker bundles for the time being.


confused by duplicated public/assets

First off, thanks for sharing this starter project. I'm trying to understand the use of the vite plugin before integrating it into my project.
I'm currently confused by the fact that the assets are currently copied over twice into the webserver:

that is: public/assets/ gets copied as _site/assets/ and as well as _site/public/assets/.
by reading other comments, there seems to be a restriction in using assets as a directory name for vite to pick up images, but not sure about the rest... any help would be greatly appreciated :pray:

This is a bit confusing indeed. I had the same reaction. I also saw only happening when you are in development mode where vite is used as a middleware. I assume vite passes public static assets to assets this way as the public folder is not passed through addPassthroughCopy.


Add the ability to set a users Tip amount in Mac

See iOS implementation on updating the value on Profile. It’s calling “updateTipAmount” on UserContact+CoreDataClass which uses the updateUser endpoint (PUT /contacts/(id)) to update the tip amount on our backend (Relay).
https://github.com/stakwork/sphinx-ios/blob/08dd341bfcf6793b31350d38b0f24f498de6d0c0/sphinx/Core Data/UserContact/UserContact%2BCoreDataClass.swift#L437
Task

Add same functionality to Mac
Reuse same design as iOS (Above the meeting server)

UI on iOS as per this image:

We can add it to the same place above Meeting Server for Mac:

Acceptance Criteria

Add ability to set default tip amount on Mac

Hey, this is a follow up comment after messaging on Sphinx about working on this issue.

Assigned @patgarner !

@patgarner how's this issue coming along?

@ecurrencyhodler with any luck I'll have something for this today or tomorrow at the latest.

I've created a pull request for my changes implementing this feature, however, combined with other existing changes it's a heavy request. Should I submit my changes differently?

@patgarner thanks. It was a heavy request because you set the base branch on master, but I just changed it to test-flight and now it's ok. I will review during the day and give you some feedback

@tomastiminskas Ah, I see! My bad, thanks for fixing it! Good deal.


BitPay API v2 support

Hello, is your module supporting the newly announced API v2 that removes the legacy keys and replaces it with API tokens that is coming out at the start of May?

The change on May 1st affects BTC specific fields (e.g. btcPaid).
The legacy API will still be supported after May 1st, and thus the current BitPay WHMCS will keep working.


Implementation factory support in ServiceCollection

Description

Added ImplementationFactory property to ServiceDescriptor with delegate type: ImplementationFactoryDelegate.
Added new constructor in ServiceDescriptor with support for the new property.
Added new extension methods for IServiceCollection (AddTransient, AddSingleton, AddScoped) with factory method support.
Added support for factory method in ServiceProviderEngine.
Added new unit tests in DependencyInjectionTests.

Motivation and Context

Resolves nanoFramework/Home#1417

How Has This Been Tested?

unit tests

Screenshots
Types of changes

[ ] Improvement (non-breaking change that improves a feature, code or algorithm)
[ ] Bug fix (non-breaking change which fixes an issue with code or algorithm)
[x] New feature (non-breaking change which adds functionality to code)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Config and build (change in the configuration and build system, has no impact on code or features)
[ ] Dependencies (update dependencies and changes associated, has no impact on code or features)
[ ] Unit Tests (add new Unit Test(s) or improved existing one(s), has no impact on code or features)
[ ] Documentation (changes or updates in the documentation, has no impact on code or features)

Checklist:

[x] My code follows the code style of this project (only if there are changes in source code).
[ ] My changes require an update to the documentation (there are changes that require the docs website to be updated).
[ ] I have updated the documentation accordingly (the changes require an update on the docs in this repo).
[x] I have read the CONTRIBUTING document.
[x] I have tested everything locally and all new and existing tests passed (only if there are changes in source code).
[x] I have added new tests to cover my changes.

@bytewizer , any thoughts?

@Ellerbach @bytewizer
It's waiting for 2 weeks, can you speed up with merge?

It's waiting for 2 weeks, can you speed up with merge?

We can but still have an issue with nuget. So if I merge now, it won't be available. So I4ll wait for the nuget issue to be resolved and then I'll merge.


cannot start pulse audio in Fedora23

I: [pulseaudio] main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
I: [pulseaudio] main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
D: [pulseaudio] core-rtclock.c: Timer slack is set to 50 us.
I: [pulseaudio] core-util.c: Failed to acquire high-priority scheduling: Input/output error
I: [pulseaudio] main.c: This is PulseAudio 7.1
D: [pulseaudio] main.c: Compilation host: x86_64-pc-linux-gnu
D: [pulseaudio] main.c: Compilation CFLAGS: -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto
D: [pulseaudio] main.c: Running on host: Linux x86_64 4.4.5-300.fc23.x86_64 #1 SMP Thu Mar 10 17:54:44 UTC 2016
D: [pulseaudio] main.c: Found 8 CPUs.
I: [pulseaudio] main.c: Page size is 4096 bytes
D: [pulseaudio] main.c: Compiled with Valgrind support: no
D: [pulseaudio] main.c: Running in valgrind mode: no
D: [pulseaudio] main.c: Running in VM: no
D: [pulseaudio] main.c: Optimized build: yes
D: [pulseaudio] main.c: FASTPATH defined, only fast path asserts disabled.
I: [pulseaudio] main.c: Machine ID is 9c59c044ae9e4c16b7495d383801cbf0.
I: [pulseaudio] main.c: Using runtime directory /home/pulseaudio/.config/pulse/9c59c044ae9e4c16b7495d383801cbf0-runtime.
I: [pulseaudio] main.c: Using state directory /home/pulseaudio/.config/pulse.
I: [pulseaudio] main.c: Using modules directory /usr/lib/pulse-7.1/modules.
I: [pulseaudio] main.c: Running in system mode: no
I: [pulseaudio] main.c: Fresh high-resolution timers available! Bon appetit.
D: [pulseaudio] memblock.c: Using shared memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472
D: [pulseaudio] memblock.c: Using shared memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472
I: [pulseaudio] cpu-x86.c: CPU flags: CMOV MMX SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2
I: [pulseaudio] svolume_mmx.c: Initialising MMX optimized volume functions.
I: [pulseaudio] remap_mmx.c: Initialising MMX optimized remappers.
I: [pulseaudio] svolume_sse.c: Initialising SSE2 optimized volume functions.
I: [pulseaudio] remap_sse.c: Initialising SSE2 optimized remappers.
I: [pulseaudio] sconv_sse.c: Initialising SSE2 optimized conversions.
I: [pulseaudio] svolume_orc.c: Initialising ORC optimized volume functions.
D: [pulseaudio] alsa-util.c: Trying default with SND_PCM_NO_AUTO_FORMAT ...
I: [pulseaudio] (alsa-lib)confmisc.c: cannot find card '0'
I: [pulseaudio] (alsa-lib)conf.c: function snd_func_card_driver returned error: No such file or directory
I: [pulseaudio] (alsa-lib)confmisc.c: error evaluating strings
I: [pulseaudio] (alsa-lib)conf.c: function snd_func_concat returned error: No such file or directory
I: [pulseaudio] (alsa-lib)confmisc.c: error evaluating name
I: [pulseaudio] (alsa-lib)conf.c: function snd_func_refer returned error: No such file or directory
I: [pulseaudio] (alsa-lib)conf.c: Evaluate error: No such file or directory
I: [pulseaudio] (alsa-lib)pcm.c: Unknown PCM default
I: [pulseaudio] alsa-util.c: Error opening PCM device default: No such file or directory
E: [pulseaudio] module.c: Failed to load module "module-alsa-source" (argument: "device="default" tsched=1"): initialization failed.
E: [pulseaudio] main.c: Module load failed.
E: [pulseaudio] main.c: Failed to initialize daemon.
I: [pulseaudio] main.c: Daemon terminated.
miqui@localhost ~/Documents>

Can you show your startup command?

same problem with FC24
@roytruelove here is the command:
docker run -d -v /etc/localtime:/etc/localtime -p 4713:4713 --device /dev/snd --name pulseaudio jess/pulseaudio

Same, problem with pulseaudio on alpine linux. Following here.

@miqui
dbus shouldn't be the problem.
Check audio group id. I think host and container audio group is different.  Try --group-add <audio gid> or test it with -v /etc/group:/etc/group:ro. You could check it by overwrite --entrypoint bash to get a console and check /dev/snd owner / group and /etc/group.
It works fine for me with --group-add <HOST_AUDIO_GRP_ID>
docker run --rm -ti --name pulseaudio --devic
e /dev/snd -p 4713:4713 --group-add 18 jess/pulseaudio


Textarea support

Is it possible to replace 's native scrollbar with  Scrollbars ?

@raphaelhovsepyan I think it would be easier to just try it out ?

@EduardJS Of course I tried!
Just want to confirm that it's not working..

@raphaelhovsepyan Well, the answer in that case is no. This component wraps up your element in order to do it's job. And with textarea, though it can be tweaked, it is not desirable.
Though, why not using contentEditable, listen to onChange, and trigger scrollToBottom() ?

@EduardJS it's impossible to listen onChange on contentEditable div, I need controlled component in my case. There are tons of issues with contentEditable (https://github.com/facebook/react/issues/2047).
Thanks for answer!

@raphaelhovsepyan I edited my answer ( onChange -> onInput ) right after replying. You probably read the email.
I have used contentEditable in production with no issues for more than half a year. There is a repo here to ease up the issues you linked.

@EduardJS thanks, will try it out!

@raphaelhovsepyan I've recently accomplished this in a VERY hack-y, cringe-worthy way.

I define a "textarea_height" property to the component
I set the inline style of the height of the textarea equal to the property textarea_height
I use the onFocus method to set the initial value of textarea_height textarea by passing in the scrollHeight

Alternatively, you can use the parameter "e" ("e", "event", or whatever you use) without passing in any parameters, then use e.target.scrollHeight

I use the onChange method to update the textarea_height value

The best part? This method also works if you practice functional programming
You can see how I achieved this here: https://github.com/twaffl3s/daily-todo/blob/master/src/containers/list-item.js

Hi,
I took @Sacret solution and improved it - the scrollbar should disappear then deleting line or text.
https://jsbin.com/kogasalomi/1/edit?html,css,js,output

https://codepen.io/devstreak/pen/dMYgeO


When I use mbed tools for my experiment, there is some errors as follows.

C:\Users\dav\Desktop\ML-KWS-for-MCU\Deployment>mbed new kws_simple_test --mbedli
b
[mbed] Creating new program "kws_simple_test" (git)
[mbed] Adding library "mbed" from "https://mbed.org/users/mbed_official/code/mbe
d/builds" at latest revision in the current branch
[mbed] Updating reference "mbed" -> "https://mbed.org/users/mbed_official/code/m
bed/builds/tip"
warning: LF will be replaced by CRLF in mbed.bld.
The file will have its original line endings in your working directory.
[mbed] Couldn't find build tools in your program. Downloading the mbed 2.0 SDK t
ools...
[mbed] ERROR: Unknown Error: 'module' object has no attribute 'get_installed_dis
tributions'

Hello. This is caused by breaking changes in pip10. Please update mbed CLI to latest (1.5.1) or pip to version 9 or below.

OK, I will try it .

Hello , the pip version has been down to 9.0.0, and the mbed-cli is 1.1.1, but the error information donot change . How to do it in the next step?
Try pip version 10 and mbed cli 1.5.1 later?

reopen it

Try pip version 10 and mbed cli 1.5.1 later?

Yup, please go ahead and update both packages. You seem to be on a pretty old version of mbed-cli any way, so updating both to the latest is probably a good path forward. Let us know if you run into any other issues!

C:\Users\Administrator\Desktop\ML-KWS-for-MCU\Deployment>mbed new kws_simple_tes
t --mbedlib
[mbed] Creating new program "kws_simple_test" (git)
[mbed] Adding library "mbed" from "https://mbed.org/users/mbed_official/code/mbe
d/builds" at latest revision in the current branch
[mbed] Updating reference "mbed" -> "https://mbed.org/users/mbed_official/code/m
bed/builds/tip"
warning: LF will be replaced by CRLF in mbed.bld.
The file will have its original line endings in your working directory.
[mbed] Couldn't find build tools in your program. Downloading the mbed 2.0 SDK t
ools...
C:\Users\Administrator\Desktop\ML-KWS-for-MCU\Deployment>cd kws_simple_test
C:\Users\Administrator\Desktop\ML-KWS-for-MCU\Deployment\kws_simple_test>mbed de
ploy
[mbed] Updating library "mbed" to branch/tag "tip"
[mbed] Downloading library build "5aab5a7997ee" (might take a minute)

"xxx might take a minute " actually cost about one hour, I donot know why?

That step will depend greatly on your internet connection speed. I don't know the exact size of that library but I think its quite large.
But it sounds like mbed-cli is now functioning correctly for you? If that's the case, would you mind closing this issue? If you encounter other problems, feel free to raise a different issue!

If the exact size of that library is quite large , can I download it manually?

Maybe the information is resulted from the "mbed deploy".

@bridadan @screamerbg

@oneway3124 Here's how you could download it manually.
Step 1. Go to Mbed OS 2 releases and choose a revision - https://os.mbed.com/users/mbed_official/code/mbed/graph/
Step 2. Click on revision of your choice, e.g. https://os.mbed.com/users/mbed_official/code/mbed/rev/4f6c30876dfa/
Step 3. In the URL, change rev to archive and append zip, e.g. From https://os.mbed.com/users/mbed_official/code/mbed/rev/4f6c30876dfa/ change to https://os.mbed.com/users/mbed_official/code/mbed/archive/4f6c30876dfa/zip
Hope this helps. Please close the issue if this solved your problem

ARM Internal Ref: MBOTRIAGE-444

@screamerbg Should we add that information in a troubleshooting section somewhere? @oneway3124 Where would you expect to find the above method for downloading the mbed library manually, if we put it in the handbook?


Hyprland-git AUR install missing dependency hyprcursor

As the title says.
When running makepkg in hyprland-git on arch, it could not resolve all dependencies, namely hyprcursor.
There were a few other dependencies it could not find earlier, but I could install all of them with Yay, but this package eludes me. Can't find it anywhere.

For the time being ignore this, I just realized I am supposed to try to build from source before I bother you guys :P


Require full test coverage on editor/mvc/ed_update.rs::handle_new_char

Editor is no longer being worked on, and has been removed from the repo. Closing.


Add animation types

Hi, I want to add animation type support, and add other animation type.
Add animation type support is to make easy for someone create other type of animations.
Add a animation other than draw the line. The animation animates the line from where it is until where it was updated, each point.
I create a animation type enum, with "none", "line" and "point" animation.
Animation type "line" is the default one. "none" is for no animation and "point" is the new animation type.
sparkAnime.zip

I really love this new animation!
I think what we'd like to do is come up with something a bit more extensible around animations.  Maybe some kind of SparkAnimator that you can set on the SparkView and do whatever animations you want. Then nobody is limited to just the line or point animation, they can write anything they come up with.

Good, I will make a new push request with this feature.

Looking at the video, it seems like you already have implemented this?
So, this new animation would trigger when we setup the data points initially and when dataset changes?

Yes, I implemented it, but not with a parent Animator class, like you commented. Now, I have a good new implementation. Look the new pull request.

I think the logic is the same, but when setup data points initially, it does not animate, only animates when dataset changes.

Was closed in #27
Thanks again for all the work here!


Upon hovering on linkedIn and Instagram in the footer no color is displayed.

Upon hovering on linkedIn and Instagram in the footer no color is displayed
Want to work and resolve this issue please assign me the issue to resolve.

I want to contribute to this issue and I have checked the issue that on the last two social icons it's not showing any color.
please assign this to me under
#gssoc'23 tag


Draft : Make AnnotatedService public

Motivation:

https://github.com/line/armeria/issues/5382
User can access specific information which provided by AnnotationService via public API.  in previous, user cannot access that kind of methods.  (you can refer to image below)

Modifications:

Create new AnnotatedService interface and declare methods for specific value provided by AnnotatedService
Rename AnnotatedService class to DefaultAnnotatedService.
Make DefaultAnnotatedService implement AnnotateService interface.
Modify the reference from AnnotatedService class to DefaultAnnotatedService class.

Result:

Closes https://github.com/line/armeria/issues/5382
As-Is

        ServiceRequestContext serviceRequestContext = ServiceRequestContext.current();
        AnnotatedService service = serviceRequestContext.config().service().as(AnnotatedService.class);

        // Compile error occurs, because AnnotatedService is internal API
        // service.method();
        // service.defaultStatus();

To-Be

        ServiceRequestContext serviceRequestContext = ServiceRequestContext.current();
        AnnotatedService service = serviceRequestContext.config().service().as(AnnotatedService.class);

        // No compile Error.
        service.method();
        service.defaultStatus();

This is a draft PR, thus i didn't make java docs for new AnnotatedService interface.
If this direction is right, i'll make java docs.

I'd recommend reverting the commit and do the following, to avoid the unintended changes from AnnotatedService to DefaultAnnotatedService:

Copy AnnotatedService to DefaultAnnotatedService
Modify AnnotatedService so it becomes an interface.
Make DefaultAnnotatedService implement AnnotatedService.
Fix the remaining compilation errors such as replacing new AnnotatedService(...) with new DefaultAnnotatedService(...).

@trustin nim, thanks for your comment 🙇♂
I reverted all and follow your guidelines.
In this sequence, i create two interfaces.

AnnotatedServiceFacade is intended for public access. it is located on com.lincorp.armeria.server.
AnnotatedService is intended to provide a common interface internally on com.lincorp.armeria.internal....

With two interfaces, we can separate both public usage and internal usage.
When you have free time, please take a look 🙇♂
CC. @ikhoon nim.

@ikhoon nim, because of huge conflict caused by https://github.com/line/armeria/commit/a8dea21cfcf4343f719fcd6863b34b6031e2011a,
I created new PR instead of this.  (I have no permission to resolve conflict).
Could you take a look this PR?

Let me close this in favor of #5628


Log Size

Sorry if ive missed something, but is there a quick way to get the length of the evtx file ie the number of log records. I looked at looping over chunks/events to count, but didn't know if there was a simple/quick way.

i think you have to loop through the chunks and use the fields log_first_record_number and log_last_record_number to compute the total number of records in the log.
the header does contains metadata about the current/next log record numbers; however, this is different from total record count, because old events may have expired.

Hey thanks for the quick response , will do that :)


update ybc to yew 0.19

I'm working on updating the whole codebase to support yew 0.19, while also making the majority of components function components (because simple wrappers like ybc does are a really good usecase for function components). I know that this is close to a complete rewrite, but in my opinion, it's for the best of this crate. I'm open to suggestions for changes.
Currently this is a draft because

I'm not using yew 0.19 in my projects yet, so I can't test it yet (I will be able to soon enough though)
Yew 0.19 has not been released yet, and I don't want to commit a git dependency to the ybc repo. This is also why I didn't tag a release yet. However, if someone has way too much time on their hands, they could already attempt to review it.
There are still open questions:

[ ] Yew's input event helpers were deprecated with this release, and there's now multiple ways of handling these; I went for the raw wasm-bindgen variant in the initial draft, which meant adding just one dependency, but we might want to consider other alternatives. Affected components: Everything that uses InputData or ChangeData, which means File, Input, Radio, Select and TextArea.
[ ] As the router API changed completely, I've barely touched the router components for now; I didn't make them function components and I also didn't change their behavior, they only wrap the newer yew_router::components::Link component now. The RouterButton component doesn't exist in yew_router anymore, so we might want to a) deprecate the ybc RouterButton or b) implement it differently by taking inspiration from Link; however we could also consider removing the direct yew-router support completely. Affected is everything gated by the router feature, but most importantly RouterButton.
[x] ~I've replaced almost all places where a Classes instance was created with a classes! macro invocation. I don't know why it wasn't done like that before and would be happy to change it back if there's a good reason. (I've only avoided it where the logic was complex and I was too tired to think about it reasonably.)~ Looks like this is not gonna be an issue! I might still look into making some macro invocations even shorter though.
[x] ~Aggressively converting most components to function components might also not be wanted by the maintainer(s) here, so I'm open to changing some of them back. I've only avoided it for components that store state or connect to agents for now; we could go all the way and make those fn components as well, or we could roll back, I don't really care. However I do think that the vast majority of components in ybc benefits hugely from being turned into a function component because most of them really are just simple wrappers.~ I don't think there's any objections to this.

Nice! I'm stoked to see this. Just let me know when you want me to give it an eye, and then I'll give it a review.

So far I've verified that the simpler components definitely work with the new code (the simple wrapper components which I have managed to replace with function components for the most part).
Input also seems to work pretty well, so that's good; as does the navbar dropdown, and the checkbox (the most complicated one I've actually attempted to turn into an fn component, apart from the various input ones which only get complicated because of the new event handling issue).
Now the problem is that this is the extent of the advanced ybc components I actually use in my app at the moment - I'm considering adapting some of the more complex ones such as File as well, however my project-internal wrappers around file input and similar things all do some special magic, for example accepting drag-drop events in addition to normal use, so I'm not entirely sure how to proceed (if I should move these features into ybc as well or if I can find a way to wrap ybc while also providing additional features on top - I'll see).
I'm considering adding a demo page as a big example to ybc - basically a page mirroring parts of the docs on bulma.io, just implemented with yew and ybc, so we'd have both a nice demo page to show off the framework, as well as a sort of "testing ground" to look out for obvious breakages. Still thinking about whether I can afford the time to actually do that though.

@thedodd so while my code probably is not ready for review yet, I have some higher-level questions that you could maybe answer or give your thoughts about right now (or just tell me that I'm now the maintainer and get to decide myself lol):
On the first unchecked item on my list: I think I've mostly figured this out and it's fairly simple to do by making use of wasm-bindgen, but this does add one more direct dependency in wasm-bindgen. I could switch to the yew-provided version of it, TargetCast, which would reduce the amount of code required, but then the question of how to handle errors is open again (currently I use UnwrapThrowExt from wasm-bindgen to throw a JS error when an invariant is violated). Thoughts on that?
On the router side, I'm wondering about two things: Whether we want to continue to directly support router at all (I think it would still be nice), and if so, how to name our components lol.
The Router* components were completely removed from yew-router in favor of just Link<Route, Query>, but a "Link" suffix would kinda conflict with some components in Bulma, so maybe we could still keep the Router prefix.
Another question is if we want to keep RouterButton when there's no yew_router RouterButton to wrap; this would likely mean implementing it ourself, which probably wouldn't be too bad.
I'd also adjust our APIs to the yew_router ones - they're using to for the route prop now, so I'd adapt the same as it's shorter and very clear.

Hi @thedodd, could you merge this?
I have not looked at the code of this change too much but I am using ybc with this change with yew 0.19.3 and it seems to be working quite nice from a library user perspective.
I also can see that there haven't been any update to this repo for 6 months now, is this still an active project?

I'm very sorry for my lack of progress on this.
I opened this PR with the intention of writing a full demo page for all YBC components, at a moment where I had a bit of time on my hands to work on it.
However soon after I had to get back to my job, where I do use YBC, but as long as everything compiles, the priorities are a bit different. I might get some time this or next month, but nothing is for sure.
Without this demo page, I don't really have an option for testing whether all components work - specifically the more complex ones, like the Router integration stuff and the File component.
I'll mark the PR as ready for review. Though it might need some cleanup and testing still, it's working for my purposes at least.

My 2c: Very interested in seeing this merged. As a first time user of yew it seems that half of the eco system is not on 0.19 and 0.18 seems to be vastly different. As far as I can tell, this library used to be the de-facto standard for components library for yew, but it not being on 0.19 putting it at danger of obsolescence.

As I said in my last comment, I think this is ready to get merged, but I guess @thedodd or someone else would want to review the code first. The last change I pushed raises the MSRV to 1.62 btw.

half of the eco system is not on 0.19 and 0.18 seems to be vastly different

Yeah - I think the catch here is that 0.19 reduced the boilerplate for defining components a lot.
Just looking at the numbers for this PR; it removes about 2.5k loc while replacing them with less than 1k equivalent lines.
As an example, look at the diff for the Columns and Column components: https://github.com/thedodd/ybc/pull/25/files#diff-63f3ac37f73736def1c2a6e6355eee325ab4d71c95216a7cacc6cadc5ffd3d73
At the same time, Yew 0.19 didn't add a way to "pass down the rest of the props to a child node". This is being tracked here https://github.com/yewstack/yew/issues/1533 but nothing is really happening there.
In reality the combination of these circumstances means that component libraries are now much less useful than they could be - if the upstream library forgot to expose an event handler you need, you have to either add a wrapper and hope that it bubbles up, or open an issue/PR on the upstream. With how easy it is to define your own component, I suspect this effort is often just not worth it, and people end up just defining their own component which exposes the functionality they need. I know I do.

As to #27 - this is something that's not guaranteed for this branch either. Once this PR is merged, it would likely be a good idea to make this repo's master branch target the yew master branch.

During development of my demo page I noticed that using Option<Classes> on the one hand doesn't improve memory usage or performance in any way (since an empty Classes still doesn't need allocations), and on the other hand makes the API of the components a lot worse (&'static str implements IntoPropValue<Classes>, but not IntoPropValue<Option<Classes>>, which means you'd have to do an explicit classes={classes!("is-primary")} everywhere even for simple cases like that; using Classes makes that as simple as classes="is-primary").
The only downside of this change is that internally we now have to do explicit clones, but from an API and performance perspective it is superior in every way.

Yew v0.20 is out.
Seams like the logic for modals will need an update to use the new Context API.
@Follpvosten do you plan to work on this? If not I might.

@Follpvosten I don't have time right now to do a full review, but what I think we could do is cut a beta release! That will give us a chance to merge, and folks can use and experiment if they are so inclined.
@SionoiS yea, for the 0.20 ... I could merge this PR, and then you could open a new PR with the 0.20 updates. What do you think? We could just make that the next alpha.

@SionoiS right - they deprecated non-worker agents, so you will have to build an API on top of ContextProvider and channels instead.
I'm afraid I once again don't really have time to work on this right now, and sadly it's also unlikely that our internal codebase is gonna use 0.20 anytime soon, so go ahead, I won't have time to do this.
@thedodd merging and cutting a beta release does sound reasonable. After that I could open a separate PR where I add my demo page, so other people (or me when I can find the time) can complete it at some point.

Merge this as beta then v0.20 in separate PR, sounds good to me!


FAQ.html a bit wrong

Isn't owo hosted now at Hetzner in Germany?

I've been meaning to get around to fixing the FAQ page, I'll fix it up tomorrow.

:thumbsup:

Oh, forgot to close this. This has been fixed.


Added emscripten Toolchain

Привет Ruslan!
I've added the C++ to JavaScript compiler emscripten
emscripten provides internal implementations for glfw and glew. I wonder if I could somehow stub out the hunter_add_package(glfw) and hunter_add_package(glew) to make them not download/compile.
Right now in my application I have:
if(NOT EMSCRIPTEN)
    hunter_add_package(glfw)
endif()

But that doesn't scale to other packages. I saw that in hunter you determine the existence of an installed package with a DONE file.
I wonder if I could mark these two as installed somehow.

But that doesn't scale to other packages. I saw that in hunter you determine the existence of an installed package with a DONE file.

I guess
if(EMSCRIPTEN)
  return()
endif()

in glfw/hunter.cmake will do the trick.

Thanks Ruslan, I was hoping to do the less modifications of the original as possible so I could diff it easily. Or is there a way to recommend me controlling the patches I do in the original file. I don't mind doing the changes you suggested, I'm just thinking how to best control the evolution of  https://github.com/kripken/emscripten/blob/master/cmake/Modules/Platform/Emscripten.cmake compared to the one I am to add at polly.
The only thing that breaks the build in the original file is the CMakeForceCompiler, I tried stubbing it out my adding a CMakeForceCompiler.cmake with empty CMAKE_FORCE_C_COMPILER and CMAKE_FORCE_CXX_COMPILER, but no matter if I list(APPEND CMAKE_MODULE_PATH ...) or list(INSERT CMAKE_FORCE_C_COMPILER 0 ...)` I cannot override these macros.
If I could just get around this, there wouldn't be a need for this file to be in the polly repository and I could load it from $ENV{EMSCRIPTEN}/cmake/.../Emscripten.cmake.
I also tried undoing what is done by CMAKE_FORCE_{C,CXX}_COMPILER with:
include("$ENV{EMSCRIPTEN}/cmake/Modules/Platforms/Emscripten.cmake")
set(CMAKE_C_COMPILER_ID_RUN)
set(CMAKE_C_COMPILER_FORCED)
set(CMAKE_C_COMPILER_ID)
set(CMAKE_CXX_COMPILER_ID_RUN)
set(CMAKE_CXX_COMPILER_FORCED)
set(CMAKE_CXX_COMPILER_ID)

But it still makes hunter fail the ABI test (can't understand why yet)

Thanks Ruslan, I was hoping to do the less modifications of the original as possible so I could diff it easily

Okay, I see. It's reasonable, let's keep it as is then.

The only thing that breaks the build in the original file is the CMakeForceCompiler

You can add an option EMSCRIPTEN_FORCE_COMPILERS, set it to ON by default and to OFF while loading through Polly. Sending it upstream will make everybody happy.

You can add an option EMSCRIPTEN_FORCE_COMPILERS, set it to ON by default and to OFF while loading through Polly. Sending it upstream will make everybody happy.

Ok, I'll send the emscripten project the Find scripts for glew and glfw and propose this change, thanks!

Oh, it is a real shame that emscripten doesn't play nice with CMake:

The CMake imported targets cannot have INTERFACE compile options [ Cannot specify compile options for imported target "glfw3" ]
When the compile options that should be in the targets are put directly into the final app "binary" then this happens: https://cmake.org/Bug/view.php?id=15826
For some COMPLETELY unexplainable reason, if I rm -rf _* to remove polly's generated directories in the app's directory, and run ~/Development/polly/bin/polly --verbose --toolchain emscripten-cxx11 again, then hunter fails ABI test. When I make changes to the toolchain file, it gets back to normal (?)

Sometimes I just hate CMake, I will close this pull request and script my way through this one

The CMake imported targets cannot have INTERFACE compile options [ Cannot specify compile options for imported target "glfw3" ]

What do you mean?

When the compile options that should be in the targets are put directly into the final app "binary" then this happens: https://cmake.org/Bug/view.php?id=15826

Just for your info it's here now: https://gitlab.kitware.com/cmake/cmake/issues/15826. Well it's bug definitely, someone need to fix it.

When I make changes to the toolchain file, it gets back to normal and pass the ABI test (wtf?)

Issues with cache, need to investigate. Also I don't know details of how emscripten compiler works, since it's not regular compiler I guess there might be unpredictable peculiarities.

Sometimes I just hate CMake

The more I spent time in development in general the more I got feeling that every piece of sofware designed to torture my brain :) E.g. now I got 100+ broken Travis configs because installing of python.requests if screwed up.

What do you mean?

Sorry, for not being explicit. Conventional CMake scripts use target glfw3 to get information about the glfw3 library, but in emscripten, from what I understood from the tests, to enable glfw3 one has to pass the compilation flag -s USE_GLFW=3, so I wrongly thought about creating an imported target glfw3 with target_compile_options(glfw3 INTERFACE "-s;USE_GLFW=3") but it gave me the error Cannot specify compile options for imported target "glfw3". This was fixed by not using IMPORTED but using INTERFACE target, Findglfw3.cmake in emscripten toolchain:
if(NOT TARGET glfw3)
  add_library(glfw3 INTERFACE)
  target_compile_options(glfw3 INTERFACE "-s;USE_GLFW=3")
endif()

Now in the CMakeLists.txt for my app I just keep
target_link_libraries(MyApp PUBLIC glfw3 ...)

And it works for Linux/Win/OSX/emscripten.

Just for your info it's here now: https://gitlab.kitware.com/cmake/cmake/issues/15826. Well it's bug definitely, someone need to fix it.

Thanks, I've made a 1 minute very dirty patch for it here: https://github.com/pretyman/CMake/commit/c6ee8bfa03baf997f6e94c6a9a42de823ae6ee10. Needs to be reworked to go upstream.
Thanks for the insights, after sleeping over this problem the solutions came the next day. When I get everything nice and dandy, I'll open a pull request to polly again. Then we'll have emscripten in polly \o/


Gradle Proxy Enablement ignores no_proxy rules

Describe the bug
The changes introduced in #359 while important disable the ability to specify a proxy for resolving external dependencies while publishing to an internal repository. For example you might be pulling from an external repository such as external jcenter() or in my case a non-ivy non-maven source that needs manipulation before it can be added to artifactory
To Reproduce

Configure jfrog/gradle to use http/https_proxy with no_proxy for internal sites (ive tried both IP's and DNS names)
Configure a dependency resolution repository that requires a proxy to access
Perform gradle tasks including dependency resolution via proxy
Publish Artifacts to internal Artifactory

Expected behavior
Gradle/Artifactory plugin to respect no_proxy rules
Versions

JFrog CLI version: Latest
JFrog CLI operating system: debian/docker
Artifactory Version: 6.17.0

Additional context
Gradle: 4.10.2

@Enquier,
Thanks for reporting this. We should probability add a "bypass http proxy" option when configuring an Artifactory server through the jfrog rt c command.  What do you think?

That would be a great way to manage internal vs external rt servers/repositories

I have added a PR with a fix for this. CLA is not available via link anymore

Hi, do you have any update about this issue?
I have similar problem with gradle deployment, it ignores NO_PROXY env (there is no such issue for mvn or npm). Only one workaround which works is to unset HTTP_PROXY env before running  jf gradle artifactoryPublish...
jfrog cli version: 2.59.1

@joanna-polec
JFrog CLI version 2.65.0 has been released, and it includes a fix for the no-proxy issue during deployment. Please give it a try and let us know your feedback.


What's the difference between ARROW_SIMD_LEVEL and ARROW_RUNTIME_SIMD_LEVEL

Describe the usage question you have. Please include as many useful details as  possible.
In Arrow, we have two SIMD flag in CMake listed below:
  define_option_string(ARROW_SIMD_LEVEL
                       "Compile-time SIMD optimization level"
                       "DEFAULT" # default to SSE4_2 on x86, NEON on Arm, NONE otherwise
                       "NONE"
                       "SSE4_2"
                       "AVX2"
                       "AVX512"
                       "NEON"
                       "SVE" # size agnostic SVE
                       "SVE128" # fixed size SVE
                       "SVE256" # "
                       "SVE512" # "
                       "DEFAULT")

  define_option_string(ARROW_RUNTIME_SIMD_LEVEL
                       "Max runtime SIMD optimization level"
                       "MAX" # default to max supported by compiler
                       "NONE"
                       "SSE4_2"
                       "AVX2"
                       "AVX512"
                       "MAX")

They're added in the two patches:

https://github.com/apache/arrow/commit/c15637d594daa17c91071476f38787f3c60bc5ca
https://github.com/apache/arrow/commit/f8c9c8bd47b9e32885b4d3829a418ce7a567f2e1

However, ARROW_RUNTIME_SIMD_LEVEL would also be checked in compile time. So, what's the difference between these two flags? Or do I misunderstand the meaning of "runtime" here(I mean dynamicly checking it when runing the program)?
Component(s)
C++

Hi @mapleFU , maybe you can see if this section [1] in arrow doc answers your question.
[1] https://arrow.apache.org/docs/cpp/env_vars.html#envvar-ARROW_USER_SIMD_LEVEL

I guess it doesn't 🤔?
ARROW_USER_SIMD_LEVEL env controls the dynamically dispatch the instr, and controls the CpuInfo struct. However, some code are under ARROW_HAVE_RUNTIME_{} flag, and some are under ARROW_HAVE_{} flag...

I guess it doesn't 🤔?
ARROW_USER_SIMD_LEVEL env controls the dynamically dispatch the instr, and controls the CpuInfo struct. However, some code are under ARROW_HAVE_RUNTIME_{} flag[1], and some are under ARROW_HAVE_{} flag[2]...

https://github.com/apache/arrow/blob/640667664abbdb9ddf38d32781715cc783a69885/cpp/src/parquet/level_comparison.cc#L30
https://github.com/apache/arrow/blob/640667664abbdb9ddf38d32781715cc783a69885/cpp/src/arrow/csv/lexing_internal.h#L122

Oh I got your point.

After some research on the code history, it appears to me that:

The naming similarity between ARROW_SIMD_LEVEL/ARROW_RUNTIME_SIMD_LEVEL and ARROW_HAVE_* /ARROW_HAVE_RUNTIME_* seems to be a (unfortunate?) coincidence. They don't really relate to each other.
The cmake option ARROW_RUNTIME_SIMD_LEVEL seems to be introduced in https://github.com/apache/arrow/pull/8049 to solely tailor the SIMD level specified by ARROW_SIMD_LEVEL at compile time.
The ARROW_HAVE_RUNTIME_* (introduced in https://github.com/apache/arrow/pull/7607) macros seem to be duplicated with ARROW_HAVE_* (introduced in https://github.com/apache/arrow/pull/6794) and need some cleanup.

@pitrou I'm not familiar with the full story so please correct me if I get anything wrong.

The wording could probably be improved, but there are two categories of SIMD optimizations in Arrow:

some optimizations are enabled statically at compile-time; these are governed by ARROW_SIMD_LEVEL. If you compile with ARROW_SIMD_LEVEL=AVX2 and execute on non-AVX2 CPU, the code will crash.

some optimizations are selected dynamically at runtime; these are governed by ARROW_RUNTIME_SIMD_LEVEL. If you compile with ARROW_RUNTIME_SIMD_LEVEL=AVX2 and execute on non-AVX2 CPU, a non-AVX2 code path (perhaps SSE2) will be executed. If you compile with ARROW_RUNTIME_SIMD_LEVEL=AVX2 and execute on AVX2 CPU, a AVX2 code path will be executed (but not AVX512, because for that you would have needed ARROW_RUNTIME_SIMD_LEVEL=AVX512)

Also, ARROW_USER_SIMD_LEVEL is tied to ARROW_RUNTIME_SIMD_LEVEL. The concrete SIMD level selected is MIN(ARROW_RUNTIME_SIMD_LEVEL, ARROW_USER_SIMD_LEVEL, CPU support).
For example, if you compiled with ARROW_RUNTIME_SIMD_LEVEL=AVX512 and execute on a AVX2 CPU, you will get a AVX2 code path by default. But you can force Arrow to use a SSE2 code path by setting ARROW_USER_SIMD_LEVEL=SSE4_2.
(why it's called "user" I don't remember...)

Aha I got to understand this, so for some user like pyarrow, x86 lib might compile with avx2 avx512 but only uses avx2, and arm compiles with neon? And other user compile C++ directly might define them themselves?

No, it's as I explained in https://github.com/apache/arrow/issues/40333#issuecomment-1976751134

Thanks! Close this first.

Perhaps we can find a way to better explain / document these variables? @amoeba @wjones127 Would you have an idea?

The wording could probably be improved, but there are two categories of SIMD optimizations in Arrow:

some optimizations are enabled statically at compile-time; these are governed by ARROW_SIMD_LEVEL. If you compile with ARROW_SIMD_LEVEL=AVX2 and execute on non-AVX2 CPU, the code will crash.
some optimizations are selected dynamically at runtime; these are governed by ARROW_RUNTIME_SIMD_LEVEL. If you compile with ARROW_RUNTIME_SIMD_LEVEL=AVX2 and execute on non-AVX2 CPU, a non-AVX2 code path (perhaps SSE2) will be executed. If you compile with ARROW_RUNTIME_SIMD_LEVEL=AVX2 and execute on AVX2 CPU, a AVX2 code path will be executed (but not AVX512, because for that you would have needed ARROW_RUNTIME_SIMD_LEVEL=AVX512)

This is very clear. Thank you.
IIUC, macro family ARROW_HAVE_* is defined by ARROW_SIMD_LEVEL and macro family ARROW_HAVE_RUNTIME_* is defined by ARROW_SIMD_RUNTIME_LEVEL. But I'm still a little confused about the relationship between these two families, specifically: is one of them superior than the other?
For example, function
https://github.com/apache/arrow/blob/2b194ad222f4dc8ecf2eb73539ab8cab5b1fc5e7/cpp/src/arrow/compute/kernels/aggregate_basic_internal.h#L55
and its call site
https://github.com/apache/arrow/blob/2b194ad222f4dc8ecf2eb73539ab8cab5b1fc5e7/cpp/src/arrow/compute/kernels/aggregate_basic.cc#L1063-L1067
seem to be completely controlled by the "runtime" family. Does it mean that, theoretically, all the simd code in arrow can be fully managed by ARROW_RUNTIME_SIMD_LEVEL?

Does it mean that, theoretically, all the simd code in arrow can be fully managed by ARROW_RUNTIME_SIMD_LEVEL?

I'm not sure what you mean by "theoretically"? It would require implementing runtime selection for the optimizations that are currently enabled statically.

I think "theoretically" in this context means "there is no technical reason, outside of implementing the runtime selection, for this not to be managed by ARROW_RUNTIME_SIMD_LEVEL".
Which I guess you answered with your previous comment :D

Ideally, all CPU-specific optimizations should be selected at runtime. It's just more work.

I think "theoretically" in this context means "there is no technical reason, outside of implementing the runtime selection, for this not to be managed by ARROW_RUNTIME_SIMD_LEVEL".

Precisely!

Which I guess you answered with your previous comment :D

Ideally, all CPU-specific optimizations should be selected at runtime. It's just more work.

Also precisely!
Thank you!

Perhaps we can find a way to better explain / document these variables?

It seems like the only thing that is missing from the docs at https://arrow.apache.org/docs/cpp/env_vars.html#envvar-ARROW_USER_SIMD_LEVEL is an explanation of what ARROW_RUNTIME_SIMD_LEVEL does and why one would use it.
Perhaps something like:

In addition to ARROW_SIMD_LEVEL there is another CMake flag ARROW_RUNTIME_SIMD_LEVEL. This controls the maximum runtime-selectable SIMD path that is compiled. For example, if set to AVX2 on x86, then all AVX512 code paths with be omitted from the compiled code.

What's the real use case for ARROW_USER_SIMD_LEVEL? I think putting the example use case right at the top of the env var's text would be an improvement. It looks like we guard all runtime selection with compile-time guards anyway and someone who wants to use Arrow on, say, a <SSE4.2 machine would still need a custom build of Arrow so I'm still a bit confused.

who wants to use Arrow on, say, a <SSE4.2 machine would still need a custom build of Arrow so I'm still a bit confused.

Yes, but SSE4 goes back to 2008. AVX2 was available in 2013 on Haswell. I'm not sure it would be that surprising you need a custom build to run on a machine built in 2005.

Thanks @pitrou, I'll put up a PR with this and @wjones127's idea for us to look at.

Yes, but SSE4 goes back to 2008. AVX2 was available in 2013 on Haswell. I'm not sure it would be that surprising you need a custom build to run on a machine built in 2005.

Fair point :)

In some (very?) rare cases it might also help to work around issues with bad CPU support.

I agree this is useful. Previous days I meet a problem that pdep is slow on amd zen2.

I agree this is useful. Previous days I meet a problem that pdep is slow on amd zen2.

The code is there to help you. See https://github.com/apache/arrow/blob/3ba6d286caad328b8572a3b9228045da8c8d2043/cpp/src/arrow/util/cpu_info.h#L101-L104

Hi all, I put up a PR to improve the docs around these variables at https://github.com/apache/arrow/pull/40374. Please have a look and leave any and all feedback.

Issue resolved by pull request 40374
https://github.com/apache/arrow/pull/40374


[cherry-pick-v7.1]compaction: disable periodic-compaction and ttl as default. (#15359)

close tikv/tikv#15355
Disable periodic-compaction and ttl features as default.

What is changed and how it works?

Issue Number: Close #xxx
What's Changed:

Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note
Please add a release note.

Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with None.
If this PR will be picked to release branch, then a release note is probably required.

/test

/test

/merge


A few pci devlink fixes

Codecov Report

Merging #1563 into master will increase coverage by <.01%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master    #1563      +/-   ##
==========================================
+ Coverage   56.46%   56.47%   +<.01%
==========================================
  Files         143      143
  Lines       26809    26815       +6
==========================================
+ Hits        15139    15143       +4
- Misses      10940    10942       +2
  Partials      730      730

Impacted Files
Coverage Δ

pkg/repro/repro.go
25.08% <66.66%> (+0.43%)
:arrow_up:

Continue to review full report at Codecov.

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


SvelteKit crashes (500) when using slot props on an iterated slot in a component with multiple slots

Describe the bug
Given a <Component> with a default <slot /> and a named <slot name="name" />:

if the default <slot /> is inside an iterator {#each items as item}<slot {item} />{/each} and has a slot prop
and the consumer of the <Component> uses both default and named slots, as well as the slot prop
the server will crash

Reproduction
See: https://stackblitz.com/github/tarngerine/slot-prop-undefined?file=src/routes/Feed.svelte

load page
expect: no 500
actual: 500s: item is not defined

Logs
item is not defined
ReferenceError: item is not defined
    at eval (/src/routes/Feed.svelte:19:33)
    at Object.$$render (/node_modules/svelte/internal/index.mjs:1770:22)
    at eval (/src/routes/index.svelte:13:92)
    at Object.$$render (/node_modules/svelte/internal/index.mjs:1770:22)
    at Object.default (root.svelte:43:39)
    at eval (/.svelte-kit/runtime/components/layout.svelte:8:41)
    at Object.$$render (/node_modules/svelte/internal/index.mjs:1770:22)
    at root.svelte:37:37
    at $$render (/node_modules/svelte/internal/index.mjs:1770:22)
    at Object.render (/node_modules/svelte/internal/index.mjs:1778:26)

System Info
System:
    OS: macOS 12.4
    CPU: (10) arm64 Apple M1 Pro
    Memory: 597.69 MB / 32.00 GB
    Shell: 3.2.2 - /usr/local/bin/fish
  Binaries:
    Node: 16.14.2 - /usr/local/bin/node
    Yarn: 1.22.18 - /usr/local/bin/yarn
    npm: 8.5.0 - /usr/local/bin/npm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Firefox: 94.0.2
    Safari: 15.5
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.64
    @sveltejs/kit: next => 1.0.0-next.396
    svelte: ^3.44.0 => 3.49.0
    vite: ^3.0.0 => 3.0.3

Severity
serious, but I can work around it
Additional Information
I've included in the demo repo some workarounds that "fix" the bug:

do not used default slot, make all slots named
only use a single default slot

The sourcemaps seem screwed up in dev mode here
If you run it in preview mode you see the error is at:
${slots.footer ? slots.footer({ item }) : ``}`

But there's nowhere that item is defined. This looks like a bug in the Svelte compiler, so I'm going to transfer it to that repo


Suggested improvement

Re: Section
Platform Differences with OnPlatform
I really gained a lot from reading this page, and it prompted me to experiment and try to understand what is going on under the hood.
You start with some example code in C# at the start.  This has a conditional statement which (presumably) does not map directly into XAML, hence the OnPlatform generic class.
Then you begin to build XAML to perform the same logical operation. However, this does not align with the C code leaving the reader to wonder how they relate.
So here is my suggestion: When you get to the most expanded example (copied in below), it would be good to show the equivalent C# code that maps directly to this. Key to this seems to be implicit type conversion of the generic class OnPlatform to type Thickness?
The code I wrote to try and mirror what is specified in XAML is shown below. I also use a padding of 40 (20 still seems to obscure the content on the iOS Simulator)
            On iOSPlatform = new On
            {
                Value = "0, 40, 0, 0",
                Platform = new List<string>
                {
                    "iOS"
                }
            };

            On otherPlatforms = new On
            {
                Value = "0, 0, 0, 0",
                Platform = new List<string>
                {
                    "Android","UWP"
                }
            };

            OnPlatform<Thickness> pd = new OnPlatform<Thickness>();
            pd.Platforms.Add(iOSPlatform);
            pd.Platforms.Add(otherPlatforms);

            //Set the Padding property of this ContentPage to the Thickness for the running platform
            //The conditional run-time test is encapsulated inside the OnPlatform class
            //Note the C# implicit type conversion from OnPlatform<Thickness> to Thickness
            this.Padding = pd;

The (closest) corresponding XAML is here:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="...">

    <ContentPage.Padding>
        <OnPlatform x:TypeArguments="Thickness">
            <OnPlatform.Platforms>
                <On Platform="iOS" Value="0, 20, 0, 0" />
                <On Platform="Android" Value="0, 0, 0, 0" />
                <On Platform="UWP" Value="0, 0, 0, 0" />
            </OnPlatform.Platforms>
        </OnPlatform>
    </ContentPage.Padding>
  ...
</ContentPage>

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

ID: e80791df-0605-587f-74cd-ebc4c9fd0f74
Version Independent ID: 76736d2a-f450-4607-55b9-e7f547c0c775
Content: Part 2. Essential XAML Syntax - Xamarin
Content Source: docs/xamarin-forms/xaml/xaml-basics/essential-xaml-syntax.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @noutram
Thanks for the feedback. While you can use the OnPlatform and On classes from C#, it's not recommended from a code readability perspective. Our recommendation is that the OnPlatform and On classes should be used for the XAML equivalent of code such as:
double top;
switch (Device.RuntimePlatform)
{
  case Device.iOS:
    top = 20;
    break;
  case Device.Android:
  case Device.UWP:
  default:
    top = 0;
    break;
}
layout.Margin = new Thickness(5, top, 5, 0);

With that said, I'll add a note to the doc along those lines.
Also, in XAML I'd recommend using the OnPlatform markup extension, instead of the OnPlatform class. It results in less verbose XAML. More info at https://docs.microsoft.com/xamarin/xamarin-forms/xaml/markup-extensions/consuming#onplatform-markup-extension
Paddings of 20 used to be fine, until the iPhone X came along.

Hi
I think this is just me trying to look at the XAML and “map it to code” (more my comfort zone) – which I seemed to manage, but you’ve kindly clarified.
As a general point coming at this from another platform, sometimes it’s hard to see consistent patterns in XAML, probably as I’m wondering “what does that do under the hood?”. What objects are being instantiated and when etc… Some people might just read and accept, so it’s possibly just me being new to this.
Good to know about the padding – that had me wondering.
Nick
From: David Britch<EMAIL_ADDRESS>Reply-To: MicrosoftDocs/xamarin-docs<EMAIL_ADDRESS>Date: Friday, 21 June 2019 at 12:26
To: MicrosoftDocs/xamarin-docs<EMAIL_ADDRESS>Cc: Nicholas Outram<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/xamarin-docs] Suggested improvement (#1792)
Hi @noutramhttps://github.com/noutram
Thanks for the feedback. While you can use the OnPlatform and On classes from C#, it's not recommended from a code readability perspective. Our recommendation is that the OnPlatform and On classes should be used for the XAML equivalent of code such as:
double top;
switch (Device.RuntimePlatform)
{
case Device.iOS:
top = 20;

break;

case Device.Android:
case Device.UWP:
default:
top = 0;

break;

}
layout.Margin = new Thickness(5, top, 5, 0);
With that said, I'll add a note to the doc along those lines.
Also, in XAML I'd recommend using the OnPlatform markup extension, instead of the OnPlatform class. It results in less verbose XAML. More info at https://docs.microsoft.com/xamarin/xamarin-forms/xaml/markup-extensions/consuming#onplatform-markup-extension
Paddings of 20 used to be fine, until the iPhone X came along.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/xamarin-docs/issues/1792?email_source=notifications&email_token=AA6TRGDDHJJIHL6XRANV5ULP3S3HXA5CNFSM4HXGY7K2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYIGULA#issuecomment-504392236, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AA6TRGHPYW4YXNHJFQI7HRDP3S3HXANCNFSM4HXGY7KQ.

[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass
This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, University of Plymouth accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. University of Plymouth does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

Fixed in a PR that will go live later.


[R]fix(x-auth-bundle,http-bundle): fixauth bundle and make http works with apollobundle express app

I added option for http-bundle works with apollo-bundle on same port so social auth would be on same express app , and fixed some small issues in x-auth due to passport v6

btw do we need to worry about serverless with this new Apollo bundle  ?


ProviderFailed fix

Description
This commit fixes a problem in the virtual kubelet provider. Now, the ProviderFailed status should not be never set by the LiqoProvider.

/merge