added property to set whether the outline is hull or rect

Closes https://github.com/patternfly/react-topology/issues/113
Description
A new property in the DefaultGroup was added to set whether the outline of the group is hulled or rect.
Type of change

[x] Feature
[ ] Bugfix
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Screen shots / Gifs for design review

@jenny-s51 @nicolethoen Could you PTAL?

Nit: I'm also wondering since the hulled outline was already the default and these changes introduce the rectangular outline, should we rename it to something like rectOutline instead? I think semantically this makes more sense and we could just set rectOutline instead of setting manually the prop value to false, however this isn't a blocker.

I'm in favor of the hulledOutline just sounds better to me even if it is the default but I could go either way.

Thank you for your contribution @leandroberetta ! Visually this is looking good - just a couple of comments:
It looks like when shift+clicking+dragging a node, the default behavior should move it out of a group. When this new prop is added, I can no longer seem to move the node out of the group. Is this to be expected?
Nit: I'm also wondering since the hulled outline was already the default and these changes introduce the rectangular outline, should we rename it to something like rectOutline instead? I think semantically this makes more sense and we could just set rectOutline instead of setting manually the prop value to false, however this isn't a blocker.
cc @jeff-phillips-18 what do you think?

@jenny-s51, thanks for the review, @jeff-phillips-18 helped me with the issue you reported.


Resolve undefined name 'image' in utils/render.py

flake8 testing of https://github.com/YadiraF/PRNet on Python 3.6.3
$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
./utils/render.py:362:17: F821 undefined name 'image'
    [h, w, _] = image.shape
                ^
1     F821 undefined name 'image'
1

I forgot to modify this func, thanks again!


Apply patch for handling InterruptTaskSet exception

The #2402 introduced change which wraps on_stop call around try/except block inside handling of InterruptTaskSet exception.
The initial implementation assumed that every exception shall be handled and logged, without any further consequences.
This appeared to be a little bit too greedy. It allowed the execution to carry on.
When running our unit tests we observed a situation where the execution falls into infinite loop. This was because our on_stop method implementation counted its invocation and was supposed to raise StopUser exception after reaching some arbitrarly chosen number.
We do believe that this behavior is inappropriate, as StopUser is supposed to always stop execution of current user.
We wanted to propose a solution for this issue presented in this Pull Request.
Attached unit test is a simple copy of our unit test. The purpose of this unit test is to verify whether interrupts in SequentialTaskSet truly reschedule the execution of whole taskset. If interrupt occurs before calling all tasks, tasks defined after the interrupt shall never be executed. This was verified by the counter in our test. In order to exit the loop, we deliberately raise StopUser in on_stop method.

Looks good! I still dont really like TaskSets :)

@cyberw -  we use it but some of the implementations are just old while we were still learning how to use Locust. Some are not perfect.
For example this fail showed us that our implementation of reschedule is actually wrong. We had an assumption that reschedule=False causes the task will not be executed anymore. This is not true - task will be rescheduled no matter what you will put there. It will be just done right away or 'a bit later' while our assumption was that it will be 'never' if set to False ;).  The naming of this param is just - not intuitive to say the least :)
Good news for us is that we had this bug since 2021 and it would only manifest in case of failures so we can live with it for now.
Probably there should be some work done to refactor naming a bit. Like instantly_reschedule=True/False or something along those lines - this could be breaking change for some so it's not that straightforward.
On the other side, reschedule=False should actually stop that task from running. So to keep old behavior it would have to have param like -  retry=True/False
Those two could work together retry=True + instantly_reschedule=True
I'm not sure how much code changes that would be.

All these things just emphasize why TaskSets are such a bad idea. In other tools where tests are not expressed as code a TaskSet concept might make sense, but not in Locust. These bugs/oddities/unexpected behavior is just another example of that :)
I'm sure things can be fixed, but imo it is just the wrong way to go. Explicit, regular "native" python programming concepts are much more powerful and come with no surprises.

Hmm. The build is failing due to a typing issue with python 3.8. (I merged it thinking the build was just flaky) Can you have a look?

We will take a look. I also thought it's just flaky test. Not sure if we have any ability to run pipeline on our own. We use python 3.11 so there is no way to catch it earlier.


[DevPortal][UI] Business owner is blocked in the devportal UI

Description:
The business owner of the API is blocked in the API overview

Steps to reproduce:

Create an API with a business owner
Publish to devportal
Open the overview of the API from the devportal

Affected Product Version:

Environment details (with versions):

OS:
Client:
Env (Docker/K8s):

Fixed with the new design
PR: https://github.com/wso2/carbon-apimgt/pull/10162


Make it possible to override areaBase in series options

@Martinomagnifico asked for this feature specifically to fulfill this usecase: http://jsbin.com/suquco/1/edit?html,js,console,output

This can be done in 0.9.0:
var chart = new Chartist.Line('.ct-chart', {
  labels: ['1', '2', '3', '4', '5', '6', '7', '8'],
  // Naming the series with the series object array notation
  series: [{
    name: 'series-1',
    data: [5, 2, 4, 2, 0, 2, 5, 3]
  }, {
    name: 'series-2',
    data: [5, 2, 4, 2, 0, 2, 5, 3]
  }]
}, {
  fullWidth: true,
  lineSmooth: Chartist.Interpolation.step(),
  showArea: true,
  high: 8,
  // Within the series options you can use the series names
  // to specify configuration that will only be used for the
  // specific series.
  series: {
    'series-2': {
      areaBase: 10
    }
  }
});


Adds flag to disable quotes in TextFormatter

Relates to https://github.com/sirupsen/logrus/issues/654 and https://github.com/sirupsen/logrus/issues/608
In some cases, we don't want the log values to be quoted or escaped, so this is adding a simple flag in TextFormatter to disable quotes (which also disables escaping) in the field values.

What is the expected behaviour between forcequote and disablequote are both set to true ?

DisableQuote has the least priority, so if ForceQuote is also set, quotes will be used. If QuoteEmptyFields is also set, quotes will be used with empty fields.
This way it impacts less the current logic, and by default works as before.

Can we have one more unit test to check this behaviour ?

Of course. I've added a few test cases.

thanks for your contribution @thlacroix


Reduce code duplication for better codeclimate score.

This was the only duplication found by codeclimate and it also makes a good example of how you can define methods in the ApplicationStylesheet and use it in multiple stylesheets.

Sorry man, I'm not merging this. This is a bad example of how to do this.

Raises CC score from 3.83 -> 4.0

Maybe just mix up the example with different code instead?

Damn, that's cold, @jamonholmgren :cry:

Heh, that is cold.

Shoot the messenger!

:laughing:


[GLUTEN-1632][CH]Daily Update Clickhouse Version (20230604)

Auto commit by gluten daily build, please check the build status and merge it if it's green.

Compatible with current gluten


logging

Right now we dump all kinds of debug logging to stderr, which is very useful during development. Eventually, we would want some more functional logging. For client-cli, stderr is fine. For FTXUI, logging to stderr destroys the interface/makes it blink, etc. For LVGL users, stderr is great -if- they have a console, but our eventual target environments (say, Toon1) won't have that.
So, we need to handle logging in a saner way. I'm thinking a vector or deque of log messages, that a frontend class can dip into. In FTXUI, we'd usually have room for a pane (not too narrow) to show a few messages in, perhaps even scrollable. For LVGL, maybe a separate screen for looking at logging, and some notification icon with a number on it for new messages above a certain severity?

We have fixed this with #55 and also have a logbox now with #72


Disposal of logger using MSSqlServer sink doesn't reliably flush unsent messages

Hi,
I'm attempting to use serilog to provide logging within a short-lived AppDomain but messages from the MSSqlServer sink are not being flushed even though the logger is disposed prior to unloading the AppDomain (which as far as I understand should ensure that all messages are sent).
The number of log messages I see come through into the SQL log table is variable, sometimes no log messages appear, sometimes I will get one or two messages but if I put a ten second Thread.Sleep in the finally block that unloads the AppDomain to delay it then I receive all messages in the SQL log table.
I've also got the File sink set up alongside this (which I believe does not use batching) and that is correctly receiving all log messages I would expect, given that I have seen the messages in the SQL table from the Thread.Sleep run I don't think there is anything wrong with the sink configuration or logger setup.
My file sink output is below (product specific stuff is redacted/changed):

2018-05-03 16:37:59.855 +01:00 [INF] Module logging instance created.
2018-05-03 16:38:00.169 +01:00 [INF] Module logging trace listener created.
2018-05-03 16:38:00.186 +01:00 [INF] Beginning GetModuleInfo action
2018-05-03 16:38:00.382 +01:00 [INF] Module info = '{"name":"BLAH","version":"<IP_ADDRESS>"}'
2018-05-03 16:38:00.384 +01:00 [INF] GetModuleInfo action complete, took '"00:00:00.1967069"'
2018-05-03 16:38:00.388 +01:00 [INF] DISPOSING SERILOG LOGGER
2018-05-03 16:38:00.692 +01:00 [INF] Serilog Self-Log: 2018-05-03T15:38:00.6856935Z Unable to write 1 log events to the database due to following error: Thread was being aborted.
2018-05-03 16:38:00.824 +01:00 [INF] Serilog Self-Log: 2018-05-03T15:38:00.7927042Z Exception while emitting periodic batch from Serilog.Sinks.MSSqlServer.MSSqlServerSink: System.Threading.ThreadAbortException: Thread was being aborted.
at Serilog.Sinks.MSSqlServer.MSSqlServerSink.d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Serilog.Sinks.PeriodicBatching.PeriodicBatchingSink.d__16.MoveNext()
2018-05-03 16:38:02.285 +01:00 [INF] Module logging instance created.
2018-05-03 16:38:02.557 +01:00 [INF] Module logging trace listener created.
2018-05-03 16:38:02.721 +01:00 [INF] Beginning module action
2018-05-03 16:38:02.723 +01:00 [INF] Module action complete, took '"00:00:00.0000006"'
2018-05-03 16:38:02.727 +01:00 [INF] DISPOSING SERILOG LOGGER
2018-05-03 16:38:02.889 +01:00 [INF] Serilog Self-Log: 2018-05-03T15:38:02.8879137Z Unable to write 1 log events to the database due to following error: Thread was being aborted.
2018-05-03 16:38:02.948 +01:00 [INF] Serilog Self-Log: 2018-05-03T15:38:02.9249174Z Exception while emitting periodic batch from Serilog.Sinks.MSSqlServer.MSSqlServerSink: System.Threading.ThreadAbortException: Thread was being aborted.
at Serilog.Sinks.MSSqlServer.MSSqlServerSink.d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Serilog.Sinks.PeriodicBatching.PeriodicBatchingSink.d__16.MoveNext()

Is there anything you can suggest to help ensure that the log messages are being sent after Dispose() is called? Given that there is a ThreadAbortException coming through self-log my theory is that the disposal logic in the sink is kicking off the message flush but doesn't wait for it to finish before returning, so my application is unloading the AppDomain while that process is still going on.
I haven't been able to reproduce it in a simplified app unfortunately, I think the issue is timing sensitive which makes it somewhat tricky.
Any help would be greatly appreciated!

Thanks for the note! IIRC, there was some kind of dispose-related issue fixed in a recent build of this sink. Which version are you using?

Ah knew there was something important I left off! I'm on Serilog 2.6.0 paired with Serilog.Sinks.MSSqlServer 5.1.2 currently.

Thanks for the extra info. Will mark this as a bug, though I'm not sure where the cause might lie. Any additional details you can add (e.g. what your configuration looks like) might give someone who can dig into this some clues to go on 👍

This surprises me, I'm using Serilog with very short-lived high-volume Azure functions and as long as I wrap everything up in the AppDomain's ProcessExit event, I see all events logged.

No worries, I'll try to provide what I can as well as a bit more info on how my application is structured and what it does, hopefully it will help.
The application itself is a deployment tool to execute methods on a shared interface from dynamically loaded assemblies (Autofac modules), the workflow is as follows:

User visits site and selects package and environment for server to deploy product to
Module package is downloaded from a remote location and unzipped locally on server
Server builds logging configuration and context info
For each action we want to run on the package:
a. New AppDomain is created
b. Configuration and context info is passed into AppDomain using SetData
c. Within a try block, object which actually loads and runs module action is created within AppDomain
d. Within a lifetime scope in Autofac, Logger instance is registered with container (retrieving config from AppDomain using GetData), as is the Autofac module which implements the shared interface
e. Module action is executed and returns (pushing logs to file and the SQL database of the server application as it runs)
f. Autofac scope disposes of objects used within it (I did verify that this is calling dispose on the logger)
g. Within finally block, AppDomain.Unload() is called and module execution is complete

My KeyValuePair-based configuration is shown below:
new Dictionary<string, string>
{
{ "using:File", "Serilog.Sinks.File" },
{ "write-to:File.path", $".\logs\{moduleAction}-{DateTime.UtcNow.ToString("yyyy''MM''dd'T'HH''mm''ss''K")}.txt" },
{ "using:MSSqlServer", "Serilog.Sinks.MSSqlServer" },
{ "write-to:MSSqlServer.connectionString", "Data Source=(localdb)\ProjectsV12;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True" },
{ "write-to:MSSqlServer.tableName", "ApplicationLogs" },
{ "write-to:MSSqlServer.autoCreateSqlTable", "false" },
}
The 'moduleAction' variable in the file path is just the name of the method called from the loaded module (e.g. Deploy).
In addition to this, we specify column options via an app.config file (as I couldn't find a way to pass this into the KVP configuration mechanism):

We create our loggers with the 'JobId' (which is effectively just a correlation ID for our job runner, this lets us grab the logs for a particular job easily to show in the UI) set using the ForContext mechanism.
@MV10 - yeah I'm hoping it is something I'm doing wrong (entirely likely, I don't play with AppDomains much), it certainly looks like it should work in theory.

This is my DI extension that makes Serilog available for injection and registers the AppDomain handler. Pretty simple. Works fine for Functions, ASP.NET Core web apps, console utility functions... all using DI/logging-dependent libraries.
public static IServiceCollection AddSerilogService(this IServiceCollection services, LoggerConfiguration loggerConfig)
{
    Log.Logger = loggerConfig.CreateLogger();
    AppDomain.CurrentDomain.ProcessExit += (s, e) => Log.CloseAndFlush();
    return services.AddSingleton(Log.Logger);
}

Does this relate to issue 93?

Is this happening stand-alone, or only in the debugger?
I noticed this the other day debugging the SQL sink under ASP.NET Core. I posted an issue about it in one of the .NET Core repos, and eventually they explained that Visual Studio does a process-kill compared to the more graceful exit you'll get outside of debug. In my case a finally block in main() was never called and wouldn't even hit a breakpoint, let alone call Log.CloseAndFlush.
Just a wild guess.

I think you were close to the answer:

Given that there is a ThreadAbortException coming through self-log my theory is that the disposal logic in the sink is kicking off the message flush but doesn't wait for it to finish before returning, so my application is unloading the AppDomain while that process is still going on.

ThreadAbortException is pretty nasty (I just spent a week helping someone at work figure out how to cope with them). The problem is that it's a special case that is always re-thrown after a method catches it, so it basically ripples up through every non-specific catch block in the entire call stack.
The SQL sink is designed to fail silently, which means it has one of these non-specific catch(Exception ex) blocks. As a result, I think nothing runs when that final EmitBatchAsync call is made. It immediately jumps into the catch block because of the thread abort. In other words, the problem isn't that something isn't waiting for the events to be written, it's that the exception prevents the sink from even trying to write the events.
Worse, I recently read somewhere that a thread abort also kills open SQL connections. Unfortunately I haven't been able to find the source of that claim again.
Do you have control over termination of the AppDomain? Is the thread abort intentional and under your control? (Generally speaking, that's like the thread-programming version of aggravated assault.)
I'm thinking it might be possible to address this by specifically handling ThreadAbortException in the emit method so it can try to continue writing the batch. The  problem is that the Periodic Batching Sink would have to also do this. The second logged exception is due to the same problem in that package:

2018-05-03 16:38:02.889 +01:00 [INF] Serilog Self-Log: 2018-05-03T15:38:02.8879137Z Unable to write 1 log events to the database due to following error: Thread was being aborted.
2018-05-03 16:38:02.948 +01:00 [INF] Serilog Self-Log: 2018-05-03T15:38:02.9249174Z Exception while emitting periodic batch from Serilog.Sinks.MSSqlServer.MSSqlServerSink

@theskyishard  I know a bit of time has passed but did you managed what is were went on?
@MV10  I couldn't reproduce this when all is under control (like in aforementioned scenario):
static void Main(string[] args)
{
    var ad = AppDomain.CreateDomain("Serilog");
    ad.DoCallBack(SmokeTest);
    AppDomain.Unload(ad);

    void SmokeTest()
    {
        var logger =
            new LoggerConfiguration()
                .WriteTo.MSSqlServer(
                connectionString: @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True",
                tableName: "LogTable",
                schemaName: "log",
                autoCreateSqlTable: true).CreateLogger();

        Parallel.For(0, 1000, x => logger.Information("received messsage {message_id}", x));

        // comment Dispose() to see ThreadAbortException on domain unload
        logger.Dispose();
    }
}

The Dispose() logic is fully synchronous so if you unload domain after the Dispose was called then there should be no problem.

f. Autofac scope disposes of objects used within it (I did verify that this is calling dispose on the logger)
g.  Is that because Dispose was called asynchronously in relation to domain unload or something?

@MV10 @skomis-mm - sorry guys, I haven't been able to come back to the issue and do any further investigation and it isn't looking like I will be able to for the forseeable future... usual problem of implementing a workaround, after that point it is difficult to get any further time on fixing it 'properly' given it provides little external value to the product :disappointed:
We do have control over the termination of the AppDomain, I think that is what causes the ThreadAbortException from my understanding of the unload mechanism.
From the information here my best guess is that either my logic or Autofac is doing something to cause the dispose to run on a different thread and not waiting for it so I'm then diving ahead and unloading the AppDomain prematurely, causing the TheadAbortException... I can't see anything obvious to that effect, but it would fit.

@theskyishard I've been down that road many times! No big deal, it's still an interesting scenario and something to keep in mind for the future.
@skomis-mm Based on your observations in the PBS thread, I think it's safe to tag thread-abort handling as a "won't fix" edge-case at this time.


Unable to use clipboard menu such as copy or paste from within webview in Android

Unable to use clipboard menu such as copy or paste from within webview in Android, but in iOS device it's work properly.

Hi @vuthasothea
can you please provide your flutter doctor -v ,
your pubspec.yaml
and a reproducible minimal code sample.
Thank you

Hi @vuthasothea
Tested this code sample

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

/// [  webview_flutter: ^0.3.22+1 ]

void main() => runApp(MyApp());

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

  @override
  Widget build(BuildContext context) => MaterialApp(
    home: MyHomePage()
  );
}

class MyHomePage extends StatelessWidget {

  static const String _url = 'https://pub.dev';

  @override
  Widget build(BuildContext context) =>
  Material(
    child: Center(
      child: WebView(
        initialUrl: _url,
        javascriptMode: JavascriptMode.unrestricted,
      ),
    ),
  );
}

logs
[   +1 ms] Flutter run key commands.
[   +2 ms] r Hot reload. 🔥🔥🔥
[   +2 ms] R Hot restart.
[        ] h Repeat this help message.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] An Observatory debugger and profiler on Pixel 3a is available at: http://<IP_ADDRESS>:51481/0Ok9oR3-NZA=/
[ +943 ms] I/WebViewFactory( 5172): Loading com.google.android.webview version 81.0.4044.138 (code 404413833)
[  +14 ms] W/Gralloc3( 5172): allocator 3.x is not supported
[ +369 ms] I/cr_LibraryLoader( 5172): Loaded native library version number "81.0.4044.138"
[ +303 ms] W/chromium( 5172): [WARNING:dns_config_service_posix.cc(341)] Failed to read DnsConfig.
[ +121 ms] W/.example.maste( 5172): Accessing hidden method Landroid/media/AudioManager;->getOutputLatency(I)I (greylist, reflection, allowed)
[   +3 ms] W/cr_media( 5172): Requires BLUETOOTH permission
[ +370 ms] D/NetworkSecurityConfig( 5172): No Network Security Config specified, using platform default
[+1100 ms] E/InputMethodManager( 5172): b/117267690: Failed to get fallback IMM with expected displayId=2 actual IMM#displayId=0
view=io.flutter.plugins.webviewflutter.InputAwareWebView{5c75200 VFEDHVC.. ........ 0,0-1080,2088}
[+2322 ms] I/chromium( 5172): [INFO:CONSOLE(1268)] "No active user", source: https://pub.dev/static/js/script.dart.js?hash=rvha40h6kmqqa67lalbbku4pvkr6230o (1268)
[+7228 ms] W/cr_AwAutofillManager( 5172): Autofill is disabled: AutofillManager isn't available in given Context.
[   +3 ms] E/InputMethodManager( 5172): b/117267690: Failed to get fallback IMM with expected displayId=2 actual IMM#displayId=0
view=io.flutter.plugins.webviewflutter.InputAwareWebView{5c75200 VFEDHVC.. .F...... 0,0-1080,2088}
[  +13 ms] W/IInputConnectionWrapper( 5172): getExtractedText on inactive InputConnection
[        ] W/IInputConnectionWrapper( 5172): getTextBeforeCursor on inactive InputConnection
[+2029 ms] E/InputMethodManager( 5172): b/117267690: Failed to get fallback IMM with expected displayId=2 actual IMM#displayId=0
view=io.flutter.plugins.webviewflutter.InputAwareWebView{5c75200 VFEDHVC.. .F...... 0,0-1080,2088}
[   +3 ms] E/InputMethodManager( 5172): b/117267690: Failed to get fallback IMM with expected displayId=2 actual IMM#displayId=0
view=io.flutter.plugins.webviewflutter.InputAwareWebView{5c75200 VFEDHVC.. .F...... 0,0-1080,2088}
[ +810 ms] E/InputMethodManager( 5172): b/117267690: Failed to get fallback IMM with expected displayId=2 actual IMM#displayId=0
view=io.flutter.plugins.webviewflutter.InputAwareWebView{5c75200 VFEDHVC.. .F...... 0,0-1080,2088}
[+1193 ms] I/chatty  ( 5172): uid=10092(com.example.master) InputConnection identical 14 lines
[   +1 ms] E/InputMethodManager( 5172): b/117267690: Failed to get fallback IMM with expected displayId=2 actual IMM#displayId=0
view=io.flutter.plugins.webviewflutter.InputAwareWebView{5c75200 VFEDHVC.. .F...... 0,0-1080,2088}
[+4962 ms] Service protocol connection closed.
[   +1 ms] Lost connection to device.
[   +5 ms] executing: /Users/nevercode/Library/Android/sdk/platform-tools/adb -s 965AY0WP5C forward --list
[  +15 ms] Exit code 0 from: /Users/nevercode/Library/Android/sdk/platform-tools/adb -s 965AY0WP5C forward --list
[        ] 965AY0WP5C tcp:51481 tcp:39913
[   +1 ms] executing: /Users/nevercode/Library/Android/sdk/platform-tools/adb -s 965AY0WP5C forward --remove tcp:51481
[  +14 ms] DevFS: Deleting filesystem on the device (file:///data/user/0/com.example.master/code_cache/masterHVSMHT/master/)
[ +260 ms] Ignored error while cleaning up DevFS: TimeoutException after 0:00:00.250000: Future not completed
[   +3 ms] executing: /Users/nevercode/Library/Android/sdk/platform-tools/adb -s 965AY0WP5C forward --list
[   +9 ms] Exit code 0 from: /Users/nevercode/Library/Android/sdk/platform-tools/adb -s 965AY0WP5C forward --list
[   +3 ms] "flutter run" took 68,513ms.
[ +262 ms] Running shutdown hooks
[        ] Shutdown hook priority 4
[   +3 ms] Shutdown hooks complete

doctor
[✓] Flutter (Channel master, 1.19.0-2.0.pre.192, on Mac OS X 10.15.4 19E287, locale en-GB)
    • Flutter version 1.19.0-2.0.pre.192 at /Users/nevercode/development/flutter_master
    • Framework revision 9b3634f422 (8 hours ago), 2020-05-29 00:58:01 -0400
    • Engine revision c5d012900f
    • Dart version 2.9.0 (build 2.9.0-11.0.dev 6489a0c68d)

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

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

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

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

[✓] VS Code
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.10.2

[✓] Connected device (3 available)
    • Pixel 3a   • 965AY0WP5C • android-arm64  • Android 10 (API 29)
    • Web Server • web-server • web-javascript • Flutter Tools
    • Chrome     • chrome     • web-javascript • Google Chrome 83.0.4103.61

• No issues found!

I can reproduce the described behaviour
Thank you

I tried many time, but it still not work.
Here is my flutter doctor:
[✓] Flutter (Channel dev, 1.20.0-0.0.pre, on Mac OS X 10.15.3 19D76, locale
    en-KH)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Android Studio (version 3.6)
[✓] VS Code (version 1.46.0)

[✓] Connected device (1 available)

• No issues found!

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  static const String _url = 'https://pub.dev';

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

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
    // Enable hybrid composition.
    if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
  }

  @override
  Widget build(BuildContext context) => Material(
        child: Center(
          child: WebView(
            initialUrl: MyHomePage._url,
            javascriptMode: JavascriptMode.unrestricted,
          ),
        ),
      );
}

flutter doctor -v

  ╔════════════════════════════════════════════════════════════════════════════╗
  ║                 Welcome to Flutter! - https://flutter.dev                  ║
  ║                                                                            ║
  ║ The Flutter tool uses Google Analytics to anonymously report feature usage ║
  ║ statistics and basic crash reports. This data is used to help improve      ║
  ║ Flutter tools over time.                                                   ║
  ║                                                                            ║
  ║ Flutter tool analytics are not sent on the very first run. To disable      ║
  ║ reporting, type 'flutter config --no-analytics'. To display the current    ║
  ║ setting, type 'flutter config'. If you opt out of analytics, an opt-out    ║
  ║ event will be sent, and then no further information will be sent by the    ║
  ║ Flutter tool.                                                              ║
  ║                                                                            ║
  ║ By downloading the Flutter SDK, you agree to the Google Terms of Service.  ║
  ║ Note: The Google Privacy Policy describes how data is handled in this      ║
  ║ service.                                                                   ║
  ║                                                                            ║
  ║ Moreover, Flutter includes the Dart SDK, which may send usage metrics and  ║
  ║ crash reports to Google.                                                   ║
  ║                                                                            ║
  ║ Read about data we send with crash reports:                                ║
  ║ https://flutter.dev/docs/reference/crash-reporting                         ║
  ║                                                                            ║
  ║ See Google's privacy policy:                                               ║
  ║ https://policies.google.com/privacy                                        ║
  ╚════════════════════════════════════════════════════════════════════════════╝

[✓] Flutter (Channel stable, 1.22.5, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 1.22.5 at /Users/tahatesser/Code/flutter_stable
    • Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (2 available)
    • Taha’s iPad (mobile)       • 00008020-000255113EE8402E            • ios • iOS 14.3
    • iPhone 12 Pro Max (mobile) • DC25925E-876C-4CFE-A2F7-0640782D22A5 • ios • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 1.26.0-13.0.pre.120, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 1.26.0-13.0.pre.120 at /Users/tahatesser/Code/flutter_master
    • Framework revision 46b0797b58 (3 hours ago), 2021-01-22 14:48:49 +0500
    • Engine revision 90641fa923
    • Dart version 2.12.0 (build 2.12.0-248.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (4 available)
    • Taha’s iPad (mobile)       • 00008020-000255113EE8402E            • ios            • iOS 14.3
    • iPhone 12 Pro Max (mobile) • DC25925E-876C-4CFE-A2F7-0640782D22A5 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 11.1 20C69 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 88.0.4324.96

• No issues found!

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  static const String _url = 'https://pub.dev';

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

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
    // Enable hybrid composition.
    if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
  }

  @override
  Widget build(BuildContext context) => Material(
        child: Center(
          child: WebView(
            initialUrl: MyHomePage._url,
            javascriptMode: JavascriptMode.unrestricted,
          ),
        ),
      );
}

flutter doctor -v

  ╔════════════════════════════════════════════════════════════════════════════╗
  ║                 Welcome to Flutter! - https://flutter.dev                  ║
  ║                                                                            ║
  ║ The Flutter tool uses Google Analytics to anonymously report feature usage ║
  ║ statistics and basic crash reports. This data is used to help improve      ║
  ║ Flutter tools over time.                                                   ║
  ║                                                                            ║
  ║ Flutter tool analytics are not sent on the very first run. To disable      ║
  ║ reporting, type 'flutter config --no-analytics'. To display the current    ║
  ║ setting, type 'flutter config'. If you opt out of analytics, an opt-out    ║
  ║ event will be sent, and then no further information will be sent by the    ║
  ║ Flutter tool.                                                              ║
  ║                                                                            ║
  ║ By downloading the Flutter SDK, you agree to the Google Terms of Service.  ║
  ║ Note: The Google Privacy Policy describes how data is handled in this      ║
  ║ service.                                                                   ║
  ║                                                                            ║
  ║ Moreover, Flutter includes the Dart SDK, which may send usage metrics and  ║
  ║ crash reports to Google.                                                   ║
  ║                                                                            ║
  ║ Read about data we send with crash reports:                                ║
  ║ https://flutter.dev/docs/reference/crash-reporting                         ║
  ║                                                                            ║
  ║ See Google's privacy policy:                                               ║
  ║ https://policies.google.com/privacy                                        ║
  ╚════════════════════════════════════════════════════════════════════════════╝

[✓] Flutter (Channel stable, 1.22.5, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 1.22.5 at /Users/tahatesser/Code/flutter_stable
    • Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (2 available)
    • Taha’s iPad (mobile)       • 00008020-000255113EE8402E            • ios • iOS 14.3
    • iPhone 12 Pro Max (mobile) • DC25925E-876C-4CFE-A2F7-0640782D22A5 • ios • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 1.26.0-13.0.pre.120, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 1.26.0-13.0.pre.120 at /Users/tahatesser/Code/flutter_master
    • Framework revision 46b0797b58 (3 hours ago), 2021-01-22 14:48:49 +0500
    • Engine revision 90641fa923
    • Dart version 2.12.0 (build 2.12.0-248.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (4 available)
    • Taha’s iPad (mobile)       • 00008020-000255113EE8402E            • ios            • iOS 14.3
    • iPhone 12 Pro Max (mobile) • DC25925E-876C-4CFE-A2F7-0640782D22A5 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 11.1 20C69 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 88.0.4324.96

• No issues found!

It's work fine. many thank


Provided binaries for Windows are built with EoL OpenSSL 1.1.1

Describe the bug
Provided binaries for Windows are built with OpenSSL 1.1.1 which is EoL.
To reproduce
Steps to reproduce the behavior:

Check versions of library files within libunbound

Expected behavior
Binaries built with the next LTS version of OpenSSL, 3.0
System:

Unbound version: 1.19 - binaries for Windows
OS: Windows x64
unbound -V output:

C:\Program Files\Unbound>unbound.exe -V
Version 1.19.0

Configure line: --host=x86_64-w64-mingw32 --build=x86_64-redhat-linux-gnu --target=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32/sys-root/mingw --exec-prefix=/usr/x86_64-w64-mingw32/sys-root/mingw --bindir=/usr/x86_64-w64-mingw32/sys-root/mingw/bin --sbindir=/usr/x86_64-w64-mingw32/sys-root/mingw/sbin --sysconfdir=/usr/x86_64-w64-mingw32/sys-root/mingw/etc --datadir=/usr/x86_64-w64-mingw32/sys-root/mingw/share --includedir=/usr/x86_64-w64-mingw32/sys-root/mingw/include --libdir=/usr/x86_64-w64-mingw32/sys-root/mingw/lib --libexecdir=/usr/x86_64-w64-mingw32/sys-root/mingw/libexec --localstatedir=/usr/x86_64-w64-mingw32/sys-root/mingw/var --sharedstatedir=/usr/x86_64-w64-mingw32/sys-root/mingw/com --mandir=/usr/x86_64-w64-mingw32/sys-root/mingw/share/man --infodir=/usr/x86_64-w64-mingw32/sys-root/mingw/share/info --enable-debug --enable-static-exe --disable-flto --disable-gost --with-ssl=/home/wouter/src/unbound/unbound-dist-mhn73E/sslinstall --with-libexpat=/home/wouter/src/unbound/unbound-dist-mhn73E/wxpinstall
Linked libs: event winsock (it uses WSAWaitForMultipleEvents), OpenSSL 1.1.1l  24 Aug 2021
Linked modules: dns64 respip validator iterator

BSD licensed, see LICENSE in source package for details.
Report bugs to<EMAIL_ADDRESS>or https://github.com/NLnetLabs/unbound/issues

Additional information
https://www.openssl.org/blog/blog/2023/09/11/eol-111/

The commit https://github.com/NLnetLabs/unbound/commit/c8554ff48c6fea3ec3922e73985d89bb62ce438b is there to help with compiling the latest version. It links crypt32 when needed by OpenSSL 3.2.0.

The issue has had a number of commits to the code repository. That should make a compile with OpenSSL 3.2.0 possible.
For the code repository version 585d73bf7c6ebac04afdc99be378c6e60cd61378 there is a compile of the snapshot with OpenSSL 3.2.0. It can be found here, https://www.nlnetlabs.nl/~wouter/unbound-1.19.1_20240119.zip and https://www.nlnetlabs.nl/~wouter/unbound_setup_1.19.1_20240119.exe . The 32bit version is https://www.nlnetlabs.nl/~wouter/unbound-1.19.1_20240119-w32.zip and https://www.nlnetlabs.nl/~wouter/unbound_setup_1.19.1_20240119-w32.exe .


Update metaurl config by killing mount pod while keeping workloads running

Steps:

Workload have set mountPropagation: HostToContainer
Change the metaurl in JuiceFS secret
Kill mount pod
JuiceFS CSI recreate the mount pod
Check the mount options of the mount pod:

kubectl get pod/juicefs-my-node-pvc-be2a6272-2e0e-4753-85b7-cdb36e6abd79-dpgqua -n kube-system -oyaml
kubectl get secret/juicefs-my-node-pvc-be2a6272-2e0e-4753-85b7-cdb36e6abd79-dpgqua-secret -nkube-system -oyaml

The result is that the metaurl in the secret is not changed. As your document said that whether the mount pod will be recreate is determined by the GenHashOfSetting():
https://github.com/juicedata/juicefs-csi-driver/blob/674ac83c3324f2ec4950d65f5e8d9102cef031b9/pkg/juicefs/mount/pod_mount.go#L648-L662
It seems that we cannot change metaurl (or something else) in this way. So I will:

Change the secret juicefs-my-node-pvc-be2a6272-2e0e-4753-85b7-cdb36e6abd79-dpgqua-secret by hand
Kill the mount pod juicefs-my-node-pvc-be2a6272-2e0e-4753-85b7-cdb36e6abd79-dpgqua

And this way works fine. The problem is that it is really inconvenience and not straightforward. Any suggestions?

When application pod does not restart and only mount pod restarted, the secret won't be updated. So, update metaurl in secret and kill mount pod, the metaurl used in mount pod will not be updated.
The only way is restarting application pod.


Can not using border-color style which is customized by tailwind

I am using border-color which is customized by tailwind. But this style can not approve because the default style of Fuse React is overriding. see this image
how can I resolve this. Please help me :(

You could use the important feature to increase specificity. Here's a link to the docs where the default behavior is explained, but keep in mind you can also use it in a different way as shown in this PR.


bpf: dsr: merge Ingress tail-calls into nodeport_lb*()

The DSR Ingress path was initially implemented through a tail-call for program size reasons. But with the recent improvements to the CT handling, we have sufficient program space to run the DSR ingress handling straight from nodeport_lb*().
This reduces duplicated code (eg. extracting the CT tuple and DSR info twice), avoids additional error handling, and simplifies the overall code flow.

/test

/test

/test

/test


Non-uniform scaled basis returns wrong euler angles

Tested versions
Reproducible in 4.3.dev5 and earlier
System information
Godot v4.3.dev5 - macOS 14.1.2 - Vulkan (Mobile) - integrated Apple M1 Max - Apple M1 Max (10 Threads)
Issue description
When a basis has a non uniform scale applied to it, the rotations returned by get_euler() are wrong. The issue is seen below:
var basis := Basis.from_euler(Vector3(deg_to_rad(-45), 0, 0)).scaled(Vector3(4, 4, 2))
print(rad_to_deg(basis.get_euler().x)) # Prints -90
print(rad_to_deg(basis.orthonormalized().get_euler().x)) # Prints -26

Steps to reproduce
Run MRP or the code snippet above.
Minimal reproduction project (MRP)
basis-euler.zip

Even the value returned by get_scale() is wrong. It returns (4, 3.162277, 3.162277).

I managed to get it to return the correct euler values, but the workaround is a bit ridiculous. Here's how I got it:
var basis := Basis.from_euler(Vector3(-45, 238, -10) * (PI / 180)).scaled(Vector3(4, 7, 2))
var scale := basis.transposed().get_scale() # Returns the actual scale of (4, 7, 2)
basis = basis.scaled(Vector3.ONE / scale) # Revert the non-uniform scale of the basis
print(basis.get_euler() * (180 / PI)) # Prints (-45, -122, -10) as expected

Not entirely sure if this is the expected behavior for the Basis but it's certainly very confusing that the methods named get_euler() and get_scale() don't necessarily return the values that are being set.

I believe this is a natural limitation, there's no way AFAIK to extract the rotation from a non-uniformly scaled transform, it assumes it's a certain form, and even if there is such a formula I suspect it's an expensive one that we shouldn't rely on
So I'd say this is something to document clearly

Also: how does it work if you use Basis.from_euler(...) * Basis.from_scale(...) instead?

Also: how does it work if you use Basis.from_euler(...) * Basis.from_scale(...) instead?

It gets the scale right without having to transpose but the angles are still wrong.
var basis := Basis.from_euler(Vector3(-45, 238, -10) * (PI / 180)) * Basis.from_scale(Vector3(4, 7, 2))
print(basis.get_scale()) # Prints (4, 7, 2)
print(basis.get_euler() * (180 / PI)) # Prints (-90, -125.6608, 0)

Then that side is because of the way scaled works, but the Euler angles still apply in the same sense I'd say, because of the limitations on decomposing, what do you get with Basis.from_scale(Vector3(4, 7, 2)) * Basis.from_euler(Vector3(-45, 238, -10) * (PI / 180))?

It's possible that it's a limitation from performance, what do you get if you unscale it? I.e. do (basis * Basis.from_scale(basis.get_scale().invert())).get_euler(), with the first form

This works correctly:
var basis := Basis.from_euler(Vector3(-45, 238, -10) * (PI / 180)) * Basis.from_scale(Vector3(4, 7, 2))
basis = basis * Basis.from_scale(basis.get_scale().inverse())
print(basis.get_euler() * (180 / PI)) # Prints (-45, -122, -10)

But it's still wrong when using scaled:
var basis := Basis.from_euler(Vector3(-45, 238, -10) * (PI / 180)).scaled(Vector3(4, 7, 2))
basis = basis * Basis.from_scale(basis.get_scale().inverse())
print(basis.get_euler() * (180 / PI)) # Prints (-63.08308, -107.3506, -17.16976)

Could we first check if the basis has a uniform scale in order to determine which method to use to return the euler angles?

It's worth noting that this issue reveals itself in the global_rotation and global_rotation_degrees properties of a Node3D. They are often wrong when the node has a non-uniform scale.


Security Issue in node-sass

Hello everyone,
A security issue was reported in node-sass yesterday:
https://www.npmjs.com/advisories/961

Hey @rogeraraujo90,
You can find the details here - https://github.com/sass/node-sass/issues/2816

Thank you @davidc6!
Closing this Issue.


GitLab: add create mr action for issues

Description
This change adds an Create MR action in the issue list that creates a new branch first, then, a merge request to the default branch of the project. If there's already a branch with same name exists, it will show a toast. In order to make the newly created merge request visible in the My Merge Requests list, the user is added as an assignee.
Works just like the create merge request button on GitLab.

Type of change

Bug fix / improvement for somebody else's extension

Screencast

Checklist

[x] I read the documentation about publishing
[x] I read the extension guidelines
[ ] I checked that extension's icon has size of 512x512

Hi @khasbilegt ,
thanks for the PR. The action works great, like the idea 👏 . There are some thing which are different to the GitLab website feature which would be more familiar for GitLab users which already use the website version.

In my case, the MR title will be Draft: Resolve: <title>.  I would add Draft:  as a prefix, because it is an empty branch.
The description text should be Closes #1234, so that the MR is connected to the issue (same as in the website version)
This point is optional and maybe something for another PR later
GitLab have this nice dialog where you can adjust the branch name and the source branch, which should be doable in Raycast via PushAction and a form. I've already impl. that when you display the branches of a project where you can create a merge request via an action. What do you think about that?

GitLab website version

Your action

Just now I realized that I could add a code that creates a separate form component that lets the user modify the branch name (also will have a default branch name) and create the branch, MR at the submission. Is this how you wanna achieve the flow like GitLab website dialog?

Yes, exactly this flow would be nice. I personally often don't use the default branch name. So I would be nice when it would fill-out the form with defaults and the user can adjust it.
Can you also rename the action to Create Merge Request, just to be consistent with the other actions.

Thanks in advance

@tonka3000, now it should be good.

@khasbilegt looks great.
@PitNikola ready to merge from my side


use consistent style guide in this project

I think it would be really usefull if this project uses a common style guide.
I don't really care which tool we use. So i would propose using prettier for now. Why Prettier?
I have not made any changes except styling. The steps to verify this are: Install Prettier

npm install --save-dev --save-exact prettier
Add the content of .prettierrc.json and .prettierignore
npx prettier --write .

Setting tabWidth to 4 is what I think is most consistent with the code styling that has been used so far.
I am completely open to using alternatives to prettier, changing the settings (e.g. tabWidth) or adding something to prettierignore.

I think tab width of 2 is fine, too.
What do you mean with "add commands to [..] package.json"?
Should I make a new pull request? If not every single file in the project would be changed twice

In package.json we have scripts:
 "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
       "start": "npm run build && node dist/server.js",
       "build": "tsc && npm run docs:build",
       "docs:dev": "vuepress dev docs",
       "docs:build": "vuepress build docs"
 },

I would like to add two more:
"lint": "prettier --check .",
"lint:fix": "prettier --write .",

Should I make a new pull request? If not every single file in the project would be changed twice
You can commit it here, that's no problem.

I have now done that. are there any comments or suggestions for improvement on this?

Installation of prettier fails with error: "Process completed with exit code 243".
Should the command simply be npm install?
prettier is already included in package.json

Should the command simply be npm install?

I think so, globaly installation needs root rights!

Let's use npm install and after that npm run lint.

I am sorry a saw you comment too late
I think npm install doesnt install devDependencies

I cannot access the log. Does anyone know what's the problem now?


sw-lib: unclear that staleWhileRevalidate() is the new fastest()

Library Affected:
sw-lib
Couldn't find a reference to this in the docs during migration. It would be nice to be able to hint that the old name for this has been changed :)

Yeah - this is a migration doc IMO.

They're not actually the same, right? You're just recommending replacing fastest with stale. I ask because it would seem that fastest would stop looking as soon as one returned, regardless of which, while stale may start out using the cached version, but will certainly replace it when the network call returns.

It's more that staleWhileRevalidate will ALWAYS return from the cache, even if the network returned a response very quickly (May through a h2 push or http cache result). Where as fastest is a bit simpler, it'll race them, then return what ever is fastest.
Both will cache afterwards.

So, in what sense is staleWhileRevalidate() the new fastest()?

Both serve from cache and continuously update the cached response.


Upstream packaging now packs rustc docs into a subdirectory

See https://github.com/rust-lang/rust/pull/75593

I'm wondering... to ease the transition and possibly allow rolling back the rustc PR, could we detect if the rustc subdirectory exists and opt into the old or new behavior because of that? Do you think it's worth the code change?


Make class private members accesible to member-class expressions.

Very simply put, doing this right now emits an error;
class A {
	private pm;
	static B = class C {
		m ( a: A ) {
			return a.pm;  // error: private member access not allowed at present.
		}
	}
}

I think it would be very useful and perhaps a simple modification to allow class C to access private members in class A.

This has always been the behavior I've expected, but I don't remember if there was a specific reason we didn't choose to do this.

It would essentially mirror the semantics in Java, C# and C++, which allow it for a good reason. It's a good way to expose functionality.
A Collection object could create an Iterator object with access to its private members for example. We already lack friend or internal access modifiers in typescript, with no plans to add it.
I think this would be a good compromise that gives some of the benefits.

this is already working as described. private members are accessible within the body of the class. this includes class expressions, functions, methods, etc..
c:\ts>tsc --v
Version 2.1.0-dev.20160901

c:\ts>type a.ts
class A {
    private pm;
    static B = class C {
        m(a: A) {
            return a.pm;  // error: private member access not allowed at present.
        }
    }
}
c:\ts>tsc a.ts

c:\ts>echo %ERRORLEVEL%
0

Ahh that's great. I only checked in the current version 1.8.10.


Updated deliverable submission model to include required, sensitive, position

#2484  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tommylau523 and the rest of your teammates on  Graphite

Merge activity

Oct 8, 3:05 PM EDT: @tommylau523 merged this pull request with Graphite.


docs: Kubernetes Quickstart script only works as root user

When run as a regular user, the script found at https://docs.hatchet.run/self-hosting/kubernetes#generate-encryption-keys fails because the key files are created by root and are marked as read-only.

Hi @abelanger5,
I created a Loom explaining this issue in more Detail:
https://www.loom.com/share/672064da33824413891c52342a618928?sid=5bd098f8-1d38-468d-a81f-ce99e744f8fe

Hey @pmig or @kosmoz, could you check if the updated script in #595 works for you?
#!/bin/bash

# Define an alias for generating random strings. This needs to be a function in a script.
randstring() {
    openssl rand -base64 69 | tr -d "\n=+/" | cut -c1-$1
}

# Create keys directory
mkdir -p ./keys

# Function to clean up the keys directory
cleanup() {
    rm -rf ./keys
}

# Register the cleanup function to be called on the EXIT signal
trap cleanup EXIT

# Check if Docker is installed
if ! command -v docker &> /dev/null
then
    echo "Docker could not be found. Please install Docker."
    exit 1
fi

# Generate keysets using Docker
docker run --user $(id -u):$(id -g) -v $(pwd)/keys:/hatchet/keys ghcr.io/hatchet-dev/hatchet/hatchet-admin:latest /hatchet/hatchet-admin keyset create-local-keys --key-dir /hatchet/keys

# Read keysets from files
SERVER_ENCRYPTION_MASTER_KEYSET=$(<./keys/master.key)
SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET=$(<./keys/private_ec256.key)
SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET=$(<./keys/public_ec256.key)

# Generate the random strings for SERVER_AUTH_COOKIE_SECRETS
SERVER_AUTH_COOKIE_SECRET1=$(randstring 16)
SERVER_AUTH_COOKIE_SECRET2=$(randstring 16)

# Create the YAML file
cat > hatchet-values.yaml <<EOF
api:
  enabled: true
  env:
    SERVER_AUTH_COOKIE_SECRETS: "$SERVER_AUTH_COOKIE_SECRET1 $SERVER_AUTH_COOKIE_SECRET2"
    SERVER_ENCRYPTION_MASTER_KEYSET: "$SERVER_ENCRYPTION_MASTER_KEYSET"
    SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET: "$SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET"
    SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET: "$SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET"

engine:
  enabled: true
  env:
    SERVER_AUTH_COOKIE_SECRETS: "$SERVER_AUTH_COOKIE_SECRET1 $SERVER_AUTH_COOKIE_SECRET2"
    SERVER_ENCRYPTION_MASTER_KEYSET: "$SERVER_ENCRYPTION_MASTER_KEYSET"
    SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET: "$SERVER_ENCRYPTION_JWT_PRIVATE_KEYSET"
    SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET: "$SERVER_ENCRYPTION_JWT_PUBLIC_KEYSET"
EOF

Yup, works


[BUG] Opening a V4 database without upgrade parameter corrupt the database

Version
Creating the database in v4.1.4
Opening the database in v5.0.18
Describe the bug
If a database created in liteDB v4.1.4 is opened with liteDB v5.0.18 without the param upgrade=true there is a "File is not a valid LiteDB database format or contains a invalid password." exception.
Then the database is corrupt and it's not possible to open it with LiteDB v4.1.4 nor to open it with LiteDB v5.0.18 (even with the upgrading param)
Code to Reproduce

Creating a database in v4.1.1
open it with new LiteDatabase() method but without the upgrade=true parameter
The code throw an exception
Now the size of the database is changed and the database is corrupted

Here the code I use to create the v4 database:
void CreateV4Database()
{
    string dbFolder = @"Data\";
    Directory.CreateDirectory(dbFolder);

    string dbPath = $"{dbFolder}dbTest{liteDBVersion}.db";

    using (var db = new LiteDatabase(dbPath))
    {
        // Create collection
        var col = db.GetCollection<MyObject>("MyCollection");

        var id = ObjectId.NewObjectId();

        var newObject = new MyObject()
        {
            Id = id,
            Name = "test",
        };

        var actualId = col.Insert(newObject);
    }
}

public class MyObject
{
    public object Id { get; set; }
    public string Name { get; set; }
}

And here the code used to try to open the database with LiteDB v5.0.18
void OpenDatabaseNoUpgrade()
{
    string dbFolder = @"Data\";
    Directory.CreateDirectory(dbFolder);

    string dbPath = $"{dbFolder}dbTest<IP_ADDRESS> - Copy.db";
    using (var db = new LiteDatabase($"Filename={dbPath}"))
    {
        Console.WriteLine("Open database");
    }
}

Expected behavior
The exception is a good thing but the database should not be edited. The v4 database should stay the same or at least it should be possible to migrate to v5 with the upgrade=true parameter after it failed wihout the parameter
Screenshots/Stacktrace

Additional context
I add the database before and after trying to open with LiteDBV5
databases.zip

I am seeing the same with 5.0.20 (just FYI)


Redo bad example at last line

I know that the last example is a bit odd, so please drop a PR if you got something better in mind

The most obvious reason why it is a bad example is because of the expression typeof obj === undefined which can never be true.
And even in case you meant
var wrapper = obj || safeValue;

if(typeof obj === "undefined" && typeof safeValue === "undefined") {
 wrapper == undefined;
}

I cannot see why that if statement would be necessary at all.

Feel free to set up a PR regarding this! The example was to try show that we preserve context for wrapper instead of having to check the underlying values, though this was not required. I'll most likely change this later once I've got the time, but if you want to redo this, go ahead!

… preserve context for wrapper …

What?
No, I'm not going to make a pull request until I understand what this line is all about - afaics it should be completely omitted.

Ah, I just saw that you've already replaced it by an !isValidObject call in 24b0bb571e9c779af2df02ba92664109998c8f1d. Now, does that function do?

It checks if it is an valid object, from lodash. Was supposed to be isPlainObject , but I think that it shows more with valid than plain in order for people to get the use case.

from lodash

Ah. You really should've stated that. It's not obvious. Btw, in native terms, you could use Object(wrapper) === wrapper.

I think that it shows more with valid than plain in order for people to get the use case.

No. "Valid" could mean anything.
In this case, the proposed safeValue = "Hi! This is the fallback value" would be invalid for example, which doesn't make sense to me, further obscuring the use case.
Btw, instead of wrapper == undefined you probably meant an assignment.

I did, changed it up now. If safeValue is false, then wrapper == obj would return true.


Fixes 50428, added missing checks for image lock

Fixed #50428
Added check in following functions to return if image is locked.

shrink_x2
fix_alpha_edges
crop_from_point
generate_mipmaps

Unit tested using debugger,  Debugger screenshot is attached. However, not couldn't get to reproduce the AddressSanitizer errors, will appreciate if someone can help me with that.

Thanks for opening a pull request :slightly_smiling_face:
Pull requests (especially ones that break backwards compatibility) should be opened against the master branch instead of 3.2. This is because feature development occurs in the master branch. We can then cherry-pick specific PRs to the 3.2 branch if they don't break backwards compatibility.

I seem to remember seeing something about Images not using lock in 4?

I seem to remember seeing something about Image not using lock in 4?

You're correct. In this case, it makes sense to open a PR against 3.x.

I seem to remember seeing something about Image not using lock in 4?

You're correct 🙂 In this case, it makes sense to open this PR against 3.x.

Thanks for the clarification !

Thanks!

Cherry-picked for 3.3.3.


Duplicate writes? unsure

This is something I am unsure about but am suspecting a bug.
On the server side I have something like
stream.write(JSON.stringify({"command":"confirmSample","args":{"sample":116}}))
where I am sending commands to the client counterpart in form of JSONs.
Figured out that, somehow in the stream and between the pipes, something gets blocked and multiple JSONs arrive on the client. And they all are duplicates.
On the client I parse in that command like this:
        stream.on('data', function (data) {
          command = JSON.parse(data.toString())
        })

and parsing sometimes fails and throws errors. Data like this
{"command":"confirmSample","args":{"sample":116}}
{"command":"confirmSample","args":{"sample":116}}

Why does this happen? On the server I have only one stream.write() call but on the client it arrives twice.
PS: as a temporary workaround I am forced to use split2(JSON.parse) to make it more robust on client side but still, there must be another bug ...

@binarykitchen as of version 4, you should be setting objectMode if you expect the stream to respect the boundaries of the chunk when doing its own fragmenting: https://github.com/maxogden/websocket-stream#optionsobjectmode.
However, messages should not get duplicated, you might get exceptions. Are you able to reproduce, so I can have a look?

@mcollina grazie ... but i do not understand this re objectMode:
"Send each chunk on its own, and do not try to pack them in a single websocket frame."
shouldn't each chunk be sent on their own anyway? like in my case, i have the problem that sometimes same chunks exist and are breaking my app. that's why i had to use split2(JSON.parse) to dedupe duplicate chunks.
do you think you can tell use cases why disabling or enabling objectMode makes sense?
i am afraid, i cannot reproduce it. it seems to happen by random for my www.videomail.io app - its npm package is the videomail-client which is undergoing lots of rewrites ...

Since v4.0.0, websocket-stream behaves as a true binary stream, so it will chunk things based on its internal buffering. If you enable objectMode, each write() will be in its own frame.

can you expand a bit more on that or at least document in the readme, especially the difference between those two modes? when to pick binary stream, when to pick object mode?
and for my videomail.io app which sends 95% of all times compressed images and 5% commands in form of json objects, all through the same websocket connection, which one mode do you recommend?

can you add a snippet on how you use websocket-stream?
It seems to me you need some sort of protocol on top of it to distinguish between images and commands. What is that?

umm, to be precise videomail.io has this:
-> client sends commands in form of jsons and image frames to server
<- server only sends commands in form of jsons to client
the crucial code on the server side to distinguish between a json and an image frame is this
  function isCommand (buffer) {
    // first byte of json's in a buffer is always 123 and commands are never longer than 1000 bytes
    return buffer[0] === 123 && buffer.length < 1000
  }

  function isNoop (buffer) {
    return buffer.toString().length < 1
  }

  this.process = function (buffer) {
    if (isNoop(buffer)) {
      // do nothing, it is just a ping to keep connection alive
      // todo: maybe change this into a command?
      log.debug('Got pinged to keep connection alive')
    } else if (isCommand(buffer)) {
      executeCommand(buffer)
    } else {
      const res = fileType(buffer)
      const ext = res && res.ext ? res.ext : null

      switch (ext) {
        case 'webp':
        case 'jpg':
          client.writeFrame(buffer, ext)
          break
        default: // pcm files
          client.writeSample(buffer)
          break
      }
    }
  }

and just in case if you want to know, this is how i create the websocket server:
  const wss = websocket.createServer({
    perMessageDeflate: false,
    server: server
  })

then i listen to new connections like this
wss.on('connection', function (ws) {
   const stream  = websocket(ws)
   ...
})

For that you will need to be using objectMode: true, because there are no boundaries between one or the other.

ah, thanks. i didn't understand its meaning before.
so, should i set objectMode on server only, or also on the client?

in both, yes.

hmm, ok. but didn't we say in another issue that the server should be dominating when it comes to options?

that's not an option on the protocol, that's an option on the stream.

hmmm, good to know. i think the readme is a bit confusing on this matter. would be good to outline which option is for the server, which is for the client or for both.

All the option are valid everywhere. But the deflate one is subject to the server enabling it.

add that to readme?


Making a Call to Koa App Route for Unit Tests

I want to be able to take the Koa app instance in my server.js and after binding my routes to it using koa-router, I want to be able to call a route and get a response but I don't want to use something like supertest because this is a unit test.
How can I call a route off the app object without actually starting the application http server?

Maybe this is what I'm truly looking for: https://github.com/zillow-oc/Koanect ??


Update long-running operation APIs to use LRO subclient pattern - separating polling and streaming LRO types

Currently prototype work-in-progress.
Uses SCM LRO types introduced in https://github.com/Azure/azure-sdk-for-net/pull/44728

Closing in favor of https://github.com/openai/openai-dotnet/pull/118


Consider an approach to specify exported interface with less duplication

Currently, all exported classes are stored in a separate api folder. Each class actually a wrapper around the corresponding "private" class with some methods/arguments removed.
Pros of this approach:

not possible to accidentally expose something to the public API

Cons:

documentation duplicated, boilerplate code

In some cases there is the same interface of "private" class and exposed one, for example, AciContractCallEncoder can be exported as
module.exports = require('../AciContractCallEncoder')

without exposing anything extra.
Additionally, traditional approaches to specify visibility of a class method may be used, like prefixing with _ (to be able to access in other library classes), or prefixing with # to make it a proper private method. Then wrapping classes won't be necessary.

Yes, # is the way to go. However, https://github.com/aeternity/aepp-calldata-js/pull/114
We should probably try again, as it is 2023 already :)
I definitely don't want any lib/user/app to be able to use private methods/data.

#114 still may be the case. But I have no problems with # in sdk, maybe because it gets transpiled to something compatible.


Provider memory usage increases linearly with the number of Workspaces

What happened?
The memory usage of the Provider increases linearly with the number of Workspaces that are in use.
Since the Provider uses the /tf directory to create Terraform workspaces, and installs the terraform providers for each workspace, as the number of active workspaces increases the memory usage also increases.
How can we reproduce it?
Define a Workspace that uses the AWS provider and deploy 12 or 16 instances of the Workspace.   Observe that there is a directory under /tf for each Workspace and that each directory uses approximately 250MB, due to the AWS Terraform provider.   Also observe that the pod memory usage is approximately 4GB.
What environment did it happen in?
Crossplane version: 1.7
There are several possible solutions, including:

Use a Volume to store the terraform directories, which will also help with pod restarts losing the workspaces
Use a common storage directory for all of the terraform providers so that there is only one copy of each provider downloaded, instead of a copy for each workspace

One downside to storing the providers is that they probably will not be upgraded to later versions until the pod is restarted and they get re-downloaded.  Even with terraform init running on every reconciliation, without -upgrade=true set the existing providers will be used.

This issue is mostly resolved by the TF_PLUIGN_CACHE_DIR changes in #123 and #141 - there is still an increase in memory usage with every additional Workspace but it is minimal compared to what it was without the provider caching.
It is theoretically possible to reduce memory usage further by deleting the local copy of the workspace directory after each reconcile, assuming state is stored in a backend like kubernetes, but that may also require a call to terraform init every time the workspace is recreated which means more CPU usage, so it's a tradeoff.  The provider cache will be the primary memory usage.
Closing this for now, we can revisit if it becomes an problem in the future.


Fix broken public dashboard Grafana

https://github.com/grafana/grafana/discussions/49253#discussioncomment-3611213
Wait for 9.2 release. Related to #396

They're still on 9.1.something. Be patient

Update: version 9.2 is out but.. my account can't edit public dashboards anymore 😀 . Trying to reach out to the infra team for helping me with this.

Minor blocker: https://github.com/grafana/grafana/discussions/49253#discussioncomment-4217102


Rewrite tutorials and templates

Remove templates folder (in fact it is renamed and hidden, because we need it for CI). We will point to the separate templates repos
Remove Desktop. Getting Started. It is described in the template itself
Remove a separate Android doc, it only repeats information from other places
Rename Compose for Web to Compose HTML Library
Keep Getting started with Compose HTML library
Remove Wizard from Getting Started with Compose HTML Library

Will rework examples README in a separate PR

@igordmn can you have a look at https://github.com/JetBrains/compose-multiplatform/pull/2933? Changes may be related to this PR.

@igordmn can you have a look at https://github.com/JetBrains/compose-multiplatform/pull/2933? Changes may be related to this PR.

Thanks! I will look at it later.
This tutorial isn't touched by this PR.

https://github.com/JetBrains/compose-multiplatform/pull/3037 - this should fix the templates checker according to changes in the current PR.


Random seed split

Proposed changes:

Enable the user to set a seed to split the NLU data into test and training.
Close https://github.com/RasaHQ/rasa/issues/4647

Expected behavior:

When a user is splitting the NLU data, a new argument specifying a random seed (in sklearn, known  as random_state) could be passed, as shown below:
rasa data split nlu --random-seed=42

Status (please check what you already did):

[x] made PR ready for code review
[x] added some tests for the functionality
[x] updated the documentation
[x] updated the changelog
[x] reformat files using black (please check Readme for instructions)

@joaorobson is this still a draft PR or is it ready for review?

@joaorobson is this still a draft PR or is it ready for review?

It is ready now. I just needed to update the docs and the changelog.

Ok, please mark it as ready for review, then.

Looks great  Just a few comments. Thanks for adding a test!
Please, update your branch and update the changelog entry (https://github.com/RasaHQ/rasa/tree/master/changelog).

Thanks. I guess that I've fixed everything that you requested.


dingding-notification message error

Description of your changes
dingding-notification message error
I have:

[ ] Read and followed KubeVela's contribution process.
[ ] Update sidebar.js if adding a new page.
[ ] Run yarn start to ensure the changes has taken effect.

Special notes for your reviewer
@wonderflow

@wonderflow DCO checked

@yueyongyue  Hi, this doc is generated by the code in https://github.com/kubevela/kubevela/blob/master/references/docgen/def-doc/workflowstep/notification.eg.md ,
please also help to fix the example, thanks for the contribution!

@FogDong https://github.com/kubevela/kubevela/pull/5424


Panic when error is expected

Hi,
I'm using plonky2 for some very straightforward stuff and this snippet below panics - I'd like circuit_data.prove to throw an error instead. Am I using builder.and incorrectly? Is there a correct way to do this? Thanks.
use plonky2::{
    field::goldilocks_field::GoldilocksField,
    iop::witness::{PartialWitness, WitnessWrite},
    plonk::{
        circuit_builder::CircuitBuilder,
        circuit_data::{CircuitConfig, CircuitData},
        config::PoseidonGoldilocksConfig,
    },
};

fn main() {
    let config = CircuitConfig::standard_recursion_config();

    let mut builder = CircuitBuilder::<GoldilocksField, 2>::new(config);

    let bools = vec![true, false, true, false, true];
    let constraints = vec![
        builder.add_virtual_bool_target_safe(),
        builder.add_virtual_bool_target_safe(),
        builder.add_virtual_bool_target_safe(),
        builder.add_virtual_bool_target_safe(),
        builder.add_virtual_bool_target_safe(),
    ];

    let mut pw = PartialWitness::new();
    pw.set_bool_target(constraints[0], bools[0]);
    pw.set_bool_target(constraints[1], bools[1]);
    pw.set_bool_target(constraints[2], bools[2]);
    pw.set_bool_target(constraints[3], bools[3]);
    pw.set_bool_target(constraints[4], bools[4]);

    let mut fold_and_result = builder.constant_bool(true);

    for bool_tgt in constraints {
        fold_and_result = builder.and(fold_and_result, bool_tgt);
    }

    let expected_result = builder.one();
    builder.connect(expected_result, fold_and_result.target);

    let circuit_data: CircuitData<GoldilocksField, PoseidonGoldilocksConfig, 2> = builder.build();

    // shouldn't be able to prove - but this panics
    assert!(circuit_data.prove(pw).is_err());
}

When run:
➜  plonky-panic-test git:(master) cargo run --release
   Compiling plonky-panic-test v0.1.0 (/Users/shriphanipalakodety/onai/plonky-panic-test)
    Finished `release` profile [optimized] target(s) in 1.95s
     Running `target/release/plonky-panic-test`
thread 'main' panicked at /Users/shriphanipalakodety/.cargo/registry/src/index.crates.io-6f17d22bba15001f/plonky2-0.2.2/src/iop/witness.rs:324:13:
assertion `left == right` failed: Partition containing Wire(Wire { row: 1, column: 15 }) was set twice with different values: 1 != 0
  left: 0
 right: 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
➜  plonky-panic-test git:(master) ✗

Hi!
I believe you're using one of the existing releases of plonky2. What you're describing has been addressed already in #1611, but hasn't been released yet.


Use ProxyBuilder for OnStartTetheringCallback

Cool demo. There's a convenient class called ProxyBuilder that can help you instantiate an OnStartTetheringCallback. For example see here.
An unrelated question: is location permission needed?

Sweet - glad was useful. Will give ProxyBuilder a go.
Thought you need coarse location permission for wifi? Maybe only for turning on and off wifi or checking state. Dunno. Will take it out of manifest see if it spits the dummy.

I think you only need it for scanning. Your demo works fine on my side
without location permissions.


Error uploading files in October v3

Hi there,
I am seeing an error when uploading files via the 'upload form'. Error looks to be related to the Drivers plugin - the AWS S3 adaptor.
Error: Class "League\Flysystem\Adapter\AbstractAdapter" not found in /Users/responsive/Documents/Valet-
Sites/responsiveweb/plugins/october/drivers/vendor/league/flysystem-aws-s3-v3[/src/AwsS3Adapter.php:17](javascript:)

OctoberCMS: 3.1.29
Magic Forms: 1.6.4
Drivers: 1.1.3
If I disable the Drivers plugin the error goes away but files are not uploaded.
Any ideas on how I can fix this? Do I need to remove the Drivers plugin and install the AWS adapter? Problem with removing the Drives plugin is I have another plugin installed that requires it.
Hope you can help.
Stack Stace:
#0
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/composer/ClassLoader.php(571):](javascript:)
include()
#1
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/composer/ClassLoader.php(428):](javascript:)
Composer\Autoload\includeFile('/Users/responsi...')
#2
[internal function]:
Composer\Autoload\ClassLoader->loadClass('League\\Flysyste...')
#3
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/backend/controllers/Files.php(75):](javascript:)
class_exists('\\League\\Flysyst...')
#4
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/backend/controllers/Files.php(107):](javascript:)
Backend\Controllers\Files::getTemporaryUrl(Object(System\Models\File))
#5
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/system/models/File.php(46):](javascript:)
Backend\Controllers\Files::getDownloadUrl(Object(System\Models\File))
#6
[/Users/responsive/Documents/Valet-Sites/responsiveweb/plugins/blakejones/magicforms/traits/FileUploader.php(128):](javascript:)
System\Models\File->getPath()
#7
[/Users/responsive/Documents/Valet-Sites/responsiveweb/plugins/blakejones/magicforms/traits/ComponentUtils.php(140):](javascript:)
BlakeJones\MagicForms\Components\UploadForm->decorateFileAttributes(Object(System\Models\File))
#8
[/Users/responsive/Documents/Valet-Sites/responsiveweb/plugins/blakejones/magicforms/components/UploadForm.php(37):](javascript:)
BlakeJones\MagicForms\Components\UploadForm->checkUploadAction()
#9
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/cms/classes/CmsCompoundObject.php(180):](javascript:)
BlakeJones\MagicForms\Components\UploadForm->onRun()
#10
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/cms/classes/Controller.php(477):](javascript:)
Cms\Classes\CmsCompoundObject->runComponents()
#11
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/cms/classes/Controller.php(375):](javascript:)
Cms\Classes\Controller->execPageCycle()
#12
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/cms/classes/Controller.php(218):](javascript:)
Cms\Classes\Controller->runPage(Object(Cms\Classes\Page))
#13
[/Users/responsive/Documents/Valet-Sites/responsiveweb/modules/cms/classes/CmsController.php(65):](javascript:)
Cms\Classes\Controller->run('project-brief')
#14
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54):](javascript:)
Cms\Classes\CmsController->run('project-brief')
#15
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43):](javascript:)
Illuminate\Routing\Controller->callAction('run', Array)
#16
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260):](javascript:)
Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Cms\Classes\CmsController), 'run')
#17
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205):](javascript:)
Illuminate\Routing\Route->runController()
#18
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798):](javascript:)
Illuminate\Routing\Route->run()
#19
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141):](javascript:)
Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#20
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180):](javascript:)
Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#22
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180):](javascript:)
Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#24
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64):](javascript:)
Illuminate\Session\Middleware\StartSession->handleStatefulRequest(Object(Illuminate\Http\Request), Object(Illuminate\Session\Store), Object(Closure))
#26
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180):](javascript:)
Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#27
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180):](javascript:)
Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#29
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#30
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180):](javascript:)
Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#31
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#32
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Router.php(799):](javascript:)
Illuminate\Pipeline\Pipeline->then(Object(Closure))
#33
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776):](javascript:)
Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#34
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740):](javascript:)
Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#35
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/october/rain/src/Router/CoreRouter.php(32):](javascript:)
Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#36
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190):](javascript:)
October\Rain\Router\CoreRouter->dispatch(Object(Illuminate\Http\Request))
#37
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141):](javascript:)
Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#38
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#39
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/october/rain/src/Foundation/Http/Middleware/CheckForMaintenanceMode.php(23):](javascript:)
Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#40
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180):](javascript:)
October\Rain\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#41
[/Users/responsive/Documents/Valet-Sites/responsiveweb/plugins/vdlp/redirect/classes/RedirectMiddleware.php(41):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180):](javascript:)
Vdlp\Redirect\Classes\RedirectMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#43
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116):](javascript:)
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165):](javascript:)
Illuminate\Pipeline\Pipeline->then(Object(Closure))
#45
[/Users/responsive/Documents/Valet-Sites/responsiveweb/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134):](javascript:)
Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#46
[/Users/responsive/Documents/Valet-Sites/responsiveweb/index.php(43):](javascript:)
Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#47
[/Users/responsive/.composer/vendor/laravel/valet/server.php(234):](javascript:)
require('/Users/responsi...')
#48
{main}

Hi there,
Any chance you can take a look at this issue please?
Cheers

@kombimedia It looks like v2.0.1 of the Drivers plugin adds support for October CMS v3. If updating the Drivers plugin to the latest version does not fix this, please open another issue.
Thanks!


Added PSP 14 Opole

@meefjuu Please provide us with:

the school official website URL
the school street address, including city and country
an URL of a page on the official website where the school offers an IT-related long-term (>1 year) course
a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.

Please provide us with a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.
You can provide us with any of the following:

A copy of instruction (a hard-copy or electronic one) given to you by the school that tells you to use an email address in this email domain
An URL of a page at the official school website that says that students use this email domain
A reference to a recognized journal where an article was published by someone from the school, with explicit affiliation to the school, and e-mail address from the email domain
A WHOIS data that link the email domain to the school somehow
A copy of official letter from the school representative saying that the school provides e-mail addresses in this domain to the students
Anything else that can prove this fact in similar way, i.e. can be verified independently.

@meefjuu You might miss my previous comment. Please react.

@meefjuu I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for your understanding!


optimistic connect attempts?

is it possible to attempt to connect to a peripheral by UUID without first scanning to see if it's in range?  the app only needs to connect to a specific peripheral, which has already been identified by UUID (and mac address, service uuids, etc) -- i would like to be able to attempt connection on an interval without having to initiate a scan process each time to test its availability.  When i try i get file:///app/tns_modules/nativescript-bluetooth/bluetooth.js:463:18: Error in Bluetooth.connect: TypeError: null is not an object (evaluating 'Bluetooth._state.peripheralArray.count'), presumably because there are no scan results to check against.  I'm using the nativescript + angular (typescript) with the current release, 1.3.1
not even sure this is possible, but it was suggested to me as a way to auto-reconnect to a known device and avoid the overhead of 1-2 second device scans on an endless 5-10 second interval, and figured i'd check with the experts ;).

@bniehuser should already be possible in the 2.0 beta. just use connect and your UUID in the params

absolutely works, at least for iOS.  just throw a connect attempt on app load at whatever device you want connected, and another in the disconnect handler.  boom; auto-reconnect.

@bniehuser  so it works? could you send a log for the thrown error?


issue in installation commands

while installing it is showing  ./install.sh: bad interpreter: /bin/bash^M: no such file or directory.
please update installation steps

run dos2linux install.sh SubDomz.sh before running the install.sh


Adds --plays option to add play count

Why? Because sometimes when you want to archive a very long play list (eg https://soundcloud.com/muloka/sets/burning-man-2016) it could be handy to be able to sort files by "popularity". To achieve that, --plays option adds play count at the moment of the download as the first thing in the file name.
If you want to resync the playlist, files that were downloaded already won't be redownloaded with new play count. At the same time, existing file's play count won't be updated either.
I don't know if the feature would be interesting to merge, but I thought I would share it anyways.

Good idea but Travis isn't happy..

I cleaned fixed the tests that my PR broke. Other failures currently happen on master now :(

@alexgorbatchev new long playlist https://soundcloud.com/muloka/sets/burning-man-2017


Mac 下安装 php 提示 No available formula with the name "php55"

安装命令：

brew install php55 --with-cgi

回显：
Updating Homebrew...
Error: No available formula with the name "php55"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
==> Searching for similarly named formulae...
==> Searching local taps...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

homebrew 的问题也发来，搞笑吧
不过问题应该是没有
brew tap homebrew/homebrew-php

笑不起来

我也碰到同样的问题，刚去brew 官网package里面搜了一下  发现没有php55.。。。

装一个 php 版本即可，不一定是 5.5
Lynn7777777<EMAIL_ADDRESS>于2018年7月25日周三 下午5:17写道：

我也碰到同样的问题，刚去brew 官网package里面搜了一下 发现没有php55.。。。
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/fex-team/fis3-smarty/issues/44#issuecomment-407690020,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAmhmwMXiOsKkPqRlMziQWc0ECLR4ERUks5uKDengaJpZM4SX8Gn
.


Write MySQL & Postgres Enum Columns

PR Info

Required by SeaQL/sea-orm#348
Depends on SeaQL/sea-query#193

I don't actually understand why this is necessary. But certainly does not seem right.
Because in the general case, there are database > schema.
Which means we either add DatabaseSchemaTable or simply use SchemaTable as is.

I don't actually understand why this is necessary.

It's needed because the "schema prefix" will be and should be ignored by MySQL & SQLite

Behaviour changed on sea-query since https://github.com/SeaQL/sea-query/commit/27d0150d49b8c64055bfaec9535393b5ff9685b5
Mainly supporting this line in sea-orm

But certainly does not seem right. Because in the general case, there are database > schema. Which means we either add DatabaseSchemaTable or simply use SchemaTable as is.

I will go with DatabaseSchemaTable and dropping the DatabaseTable that I proposed in this PR

For Postgres, it will construct SQL statement with "database"."schema"."table"
For MySQL & SQLite, it will construct SQL statement with "database"."table" (ignoring the supplied schema)

How is that sounds? @tyt2y3

Hey @tyt2y3, DatabaseSchemaTable was added on https://github.com/SeaQL/sea-query/pull/193/commits/1ff761dc83bb2c6ce07f7d93df9aca264101b549