[macos] Transparent FlutterViewController

I am trying to make a transparent app in macOS but the Flutter view has a black background I can't remove.
I set the window and the view within the view controller to have a red background but it still shows black
class MainFlutterWindow: NSWindow {

  override func awakeFromNib() {
    let flutterViewController = FlutterViewController.init()

    flutterViewController.view.layer?.backgroundColor =  CGColor(red: 1, green: 0, blue: 0, alpha: 1.0);
    self.backgroundColor = .red;
    let windowFrame = self.frame
    self.contentViewController = flutterViewController
    self.setFrame(windowFrame, display: true)

    super.awakeFromNib()
  }
}

Probably because FlutterView is set to be Opaque  here FlutterView.mm#L47

Hi @jamesblasco
should I interpret this issue as a feature request like expose 'opaque' for macos desktop apps?
thank you

I don't know if that is the only thing that would need to be done to implement a transparent background.
I would do something similar that is already implemented on Android and add a BackgroundMode param to the FlutterViewController
Android example code:
startActivity(
  FlutterActivity
    .withCachedEngine("my_engine_id")
    .backgroundMode(FlutterActivity.BackgroundMode.transparent)
    .build(context)
);

With the upcoming macOS 11, this feature becomes key to support translucent backgrounds like the new redesign

This type of design is used extensively in Windows too (and some Linux GUIs), so it would be very useful for building experience like it with Flutter, if it was supported out of the box for all desktop platforms at least. Not sure if it would potentially be useful on large tablets too, but I imagine that on Chrome OS and Fucshia it could be as well.

This type of design is used extensively in Windows too (and some Linux GUIs), so it would be very useful for building experience like it with Flutter, if it was supported out of the box for all desktop platforms at least.

Please file separate bugs for each platform; it'll be much easier to track which are done and which aren't that way.

Note that transparency alone won't let you achieve the affect in the screens above. You'll need to make changes to native code on each platform's runner to have the OS blur what's underneath the window, using the relevant OS APIs.

Yes, we can try to implement the native OS blur ourselves but we are blocked because the FlutterViewController is opaque.
That's why I think it should be the priority, then we can try to make a plugin that takes care of the blur  or even add it to flutter engine in the future

In case anyone is interested in a hack to get this to work. I haven't gotten window blurring to work (nsvisualeffectview is have some issues for me) but I suspect some private CGSSetWindowBackgroundBlurRadiusFunction APIs might be needed
public extension NSView {
  @objc func originalIsOpaque() -> Bool {
    return true;
  }

  @objc func isOpaqueMethodToCall() -> Bool {
    if self.className != "FlutterView" {
      return originalIsOpaque();
    }

    let openglView: NSOpenGLView = self as! NSOpenGLView
    var opacity: GLint = 0
    let opacityPointer: UnsafePointer<GLint> = UnsafePointer(&opacity)
    openglView.openGLContext?.setValues(opacityPointer, for: .surfaceOpacity)

    return false;
  }
}

@NSApplicationMain
class AppDelegate: FlutterAppDelegate {
  override init() {
    super.init()
    swizzleNSViewOpaqueImplementation();
  }

  @objc func swizzleNSViewOpaqueImplementation() {
    let aClass: AnyClass? = NSClassFromString("FlutterView")
    let originalMethod = class_getInstanceMethod(aClass, Selector("isOpaque"))
    let placeholderMethod = class_getInstanceMethod(aClass, #selector(NSView.originalIsOpaque))
    if let originalMethod = originalMethod, let placeholderMethod = placeholderMethod {
      // save the original implementation
      method_exchangeImplementations(originalMethod, placeholderMethod)
    }

    let isOpaqueMethod = class_getInstanceMethod(aClass, Selector("isOpaque"))
    let isOpaqueMethodToCall = class_getInstanceMethod(aClass, #selector(NSView.isOpaqueMethodToCall))
    if let isOpaqueMethod = isOpaqueMethod, let isOpaqueMethodToCall = isOpaqueMethodToCall {
      // switch to the implementation we actually want to call
      method_exchangeImplementations(isOpaqueMethod, isOpaqueMethodToCall)
    }
  }
}

Or someone could submit a PR to add the functionality to flutter/engine, which would be substantially simpler than the swizzling.

indeed, hoping to get everything completely and working for myself first locally (including blurring) before trying to clone the separate engine repo

From stackoverflow :
As of swift 3.0 changing the transparency is possible with
yourView.backgroundColor = UIColor.black.withAlphaComponent(0.5) which works in Xcode 8.2

It's not clear to me, can I enable transparency like mentioned before on Windows in Flutter win32?

No, it is not posible for now. I tried also implementing it natively with c++ but the win32 apis don’t support it.
Only managed to make transparent one full color.

So @jamesblasco the support for this feature is on the uwp API's then ?

This issue is specifically about macOS; please file a new issue to request support for and/or discuss implementation of a the equivalent functionality on Windows.

I might be misunderstanding the issue but I can get transparency through the Flutter macOS app by just setting
window.isOpaque = false
window.backgroundColor = .clear
// aesthetically, probably
window.hasShadow = false

You are right @xster. Thanks for sharing it 👍

Would it allow to have a "frosted" translucent background like in case of Apple's apps?

😏😏😏

@jamesblasco Mind sharing the code? 😄

Sure! Once Flutter macOS supports platforms views I will try to implement it as a plugin.
    let blurView = NSVisualEffectView()
    let view = contentViewController?.view.superview;
    blurView.frame = CGRect(x: 0, y: 0, width: 2000, height: 2000)
    view?.addSubview(blurView, positioned: NSWindow.OrderingMode.below, relativeTo: nil)

I added that code inside MainFlutterWindow.
I also tried with layout constraints but the app becomes unresponsive when resizing it.
You can play with NSVisualEffectView.materials to try different effects

oh nice work! Good job getting the title bar transparent look too to match.

I might be misunderstanding the issue but I can get transparency through the Flutter macOS app by just setting
window.isOpaque = false
window.backgroundColor = .clear
// aesthetically, probably
window.hasShadow = false

That probably has undefined rendering behavior, because we're currently returning YES for the view's isOpaque property.

@jamesblasco - thank you ❤ - it's working perfectly but the Tap event from Flutter will not work. Do you have the same issue?

@jamesblasco - thank you ❤ - it's working perfectly but the Tap event from Flutter will not work. Do you have the same issue?

When I added the code from @jamesblasco I can get a wonderful looking app when I make background colors have opacity, but It seems that the app doesn't work anymore? When I click on the plus button from the sample app it doesn't seem to register. If I remove the code from MainFlutterWindow again, clicking resolves and works again.
Any workaround? ...or am I the only one experiencing this behaviour?
I'm running MacOS Big Sur on an Intel Mac with flutter dev channel.

flutter doctor -v output
[✓] Flutter (Channel dev, 1.26.0-1.0.pre, on macOS 11.1 20C69 darwin-x64, locale
  en-SE)
  • Flutter version 1.26.0-1.0.pre at /Users/erik/development/flutter
  • Framework revision 63062a6443 (4 weeks ago), 2020-12-13 23:19:13 +0800
  • Engine revision 4797b06652
  • Dart version 2.12.0 (build 2.12.0-141.0.dev)

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

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

[✓] Android Studio (version 3.4)
  • 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_152-release-1343-b01)

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

[✓] Connected device (1 available)
  • macOS (desktop) • macos • darwin-x64 • macOS 11.1 20C69 darwin-x64

• No issues found!

When I added the code from @jamesblasco I can get a wonderful looking app when I make background colors have opacity, but It seems that the app doesn't work anymore? When I click on the plus button from the sample app it doesn't seem to register. If I remove the code from MainFlutterWindow again, clicking resolves and works again.
Any workaround? ...or am I the only one experiencing this behaviour?
I'm running MacOS Big Sur on an Intel Mac with flutter dev channel.

flutter doctor -v output
[✓] Flutter (Channel dev, 1.26.0-1.0.pre, on macOS 11.1 20C69 darwin-x64, locale
  en-SE)
  • Flutter version 1.26.0-1.0.pre at /Users/erik/development/flutter
  • Framework revision 63062a6443 (4 weeks ago), 2020-12-13 23:19:13 +0800
  • Engine revision 4797b06652
  • Dart version 2.12.0 (build 2.12.0-141.0.dev)

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

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

[✓] Android Studio (version 3.4)
  • 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_152-release-1343-b01)

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

[✓] Connected device (1 available)
  • macOS (desktop) • macos • darwin-x64 • macOS 11.1 20C69 darwin-x64

• No issues found!

I faced the same issue as @EriKWDev, when adding the code @jamesblasco posted the window looked great, but the app became unresponsive (for some reason the cursor still changed on button hovers, but onPressed wasn't executed when clicking)
To solve this I replaced the content view with the new background view, by changing the hierarchy I was able to use the app again.

Here's the code:
override func awakeFromNib() {
  let flutterViewController = FlutterViewController.init()
  let windowFrame = self.frame
  self.contentViewController = flutterViewController
  self.setFrame(windowFrame, display: true)
  RegisterGeneratedPlugins(registry: flutterViewController)

  /* Hiding the window titlebar */
  self.titleVisibility = NSWindow.TitleVisibility.hidden;
  self.titlebarAppearsTransparent = true;
  self.isMovableByWindowBackground = true;
  self.standardWindowButton(NSWindow.ButtonType.miniaturizeButton)?.isEnabled = false;

  /* Making the window transparent */
  self.isOpaque = false
  self.backgroundColor = .clear

  /* Adding a NSVisualEffectView to act as a translucent background */
  let contentView = contentViewController!.view;
  let superView = contentView.superview!;

  let blurView = NSVisualEffectView()
  blurView.frame = superView.bounds
  blurView.autoresizingMask = [.width, .height]
  blurView.blendingMode = NSVisualEffectView.BlendingMode.behindWindow

  /* Pick the correct material for the task */
  blurView.material = NSVisualEffectView.Material.underWindowBackground

  /* Replace the contentView and the background view */
  superView.replaceSubview(contentView, with: blurView)
  blurView.addSubview(contentView)

  super.awakeFromNib()
}

I faced the same issue as @EriKWDev, when adding the code @jamesblasco posted the window looked great, but the app became unresponsive (for some reason the cursor still changed on button hovers, but onPressed wasn't executed when clicking)
To solve this I replaced the content view with the new background view, by changing the hierarchy I was able to use the app again.

Here's the code:
override func awakeFromNib() {
  let flutterViewController = FlutterViewController.init()
  let windowFrame = self.frame
  self.contentViewController = flutterViewController
  self.setFrame(windowFrame, display: true)
  RegisterGeneratedPlugins(registry: flutterViewController)

  /* Hiding the window titlebar */
  self.titleVisibility = NSWindow.TitleVisibility.hidden;
  self.titlebarAppearsTransparent = true;
  self.isMovableByWindowBackground = true;
  self.standardWindowButton(NSWindow.ButtonType.miniaturizeButton)?.isEnabled = false;

  /* Making the window transparent */
  self.isOpaque = false
  self.backgroundColor = .clear

  /* Adding a NSVisualEffectView to act as a translucent background */
  let contentView = contentViewController!.view;
  let superView = contentView.superview!;

  let blurView = NSVisualEffectView()
  blurView.frame = superView.bounds
  blurView.autoresizingMask = [.width, .height]
  blurView.blendingMode = NSVisualEffectView.BlendingMode.behindWindow

  /* Pick the correct material for the task */
  blurView.material = NSVisualEffectView.Material.underWindowBackground

  /* Replace the contentView and the background view */
  superView.replaceSubview(contentView, with: blurView)
  blurView.addSubview(contentView)

  super.awakeFromNib()
}

Any news about the implementation of this on Linux or should I just buy a mac too?

Any news about the implementation of this on Linux or should I just buy a mac too?

I'd like to see this on Linux as well.

So, I've worked it out for Windows. Use flutter_acrylic in your app.
😏😏😏

Well I don't know how blur can be done on GTK3.0, but here is what I've got.

I faced the same issue as @EriKWDev, when adding the code @jamesblasco posted the window looked great, but the app became unresponsive (for some reason the cursor still changed on button hovers, but onPressed wasn't executed when clicking)
To solve this I replaced the content view with the new background view, by changing the hierarchy I was able to use the app again.
PS: It also supports window resizing and full screen

Here's the code:
override func awakeFromNib() {
  let flutterViewController = FlutterViewController.init()
  let windowFrame = self.frame
  self.contentViewController = flutterViewController
  self.setFrame(windowFrame, display: true)
  RegisterGeneratedPlugins(registry: flutterViewController)

  /* Hiding the window titlebar */
  self.titleVisibility = NSWindow.TitleVisibility.hidden;
  self.titlebarAppearsTransparent = true;
  self.isMovableByWindowBackground = true;
  self.standardWindowButton(NSWindow.ButtonType.miniaturizeButton)?.isEnabled = false;

  /* Making the window transparent */
  self.isOpaque = false
  self.backgroundColor = .clear

  /* Adding a NSVisualEffectView to act as a translucent background */
  let contentView = contentViewController!.view;
  let superView = contentView.superview!;

  let blurView = NSVisualEffectView()
  blurView.frame = superView.bounds
  blurView.autoresizingMask = [.width, .height]
  blurView.blendingMode = NSVisualEffectView.BlendingMode.behindWindow

  /* Pick the correct material for the task */
  blurView.material = NSVisualEffectView.Material.underWindowBackground

  /* Replace the contentView and the background view */
  superView.replaceSubview(contentView, with: blurView)
  blurView.addSubview(contentView)

  super.awakeFromNib()
}

Worth noting that in order to do this you need to target macOS 10.14 or newer

I tried this package called bitsdojo_window; it has a bunch of functions to customize your window and you can easily accomplish this on any Desktop platform.

The posts above were super helpful in getting me headed in the right direction. However, we really shouldn't be mucking around with NSWindow.contentView... AppKit doesn't like when you do that. Running the code above will yield errors that look like:
2021-09-10 16:48:24.206458+1000 xxxx[70071:1327206] NSWindow warning: adding an unknown subview: <NSVisualEffectView: 0x7facee4501c0>. Break on NSLog to debug.
2021-09-10 16:48:24.207487+1000 xxxx[70071:1327206] Call stack:

	0   AppKit                    0x00007fff22d397b5 -[NSThemeFrame addSubview:] + 112
	1   AppKit                    0x00007fff22d7dc4c -[NSView replaceSubview:with:] + 154
	2   xxxx                      0x000000010ca48aac $s14xxxx17MainFlutterWindowC12awakeFromNibyyF + 2988
	3   xxxx                      0x000000010ca48ceb $s14xxxx17MainFlutterWindowC12awakeFromNibyyFTo + 43
	4   CoreFoundation            0x00007fff204ff5c6 -[NSSet makeObjectsPerformSelector:] + 231

In addition to this warning, the approach above does something weird to the resize handle cursors and it means it is really painful to grab the corners to resize.
We really should be using the standard AppKit behaviour of adding a child view controller (which does the blurring) and then add the FlutterViewController to that VC. For example, here's what I'm currently using:
class BlurryContainerViewController: NSViewController {
  let flutterViewController = FlutterViewController()

  init() {
    super.init(nibName: nil, bundle: nil)
  }

  required init?(coder: NSCoder) {
    fatalError()
  }

  override func loadView() {
    let blurView = NSVisualEffectView()
    blurView.autoresizingMask = [.width, .height]
    blurView.blendingMode = .behindWindow
    blurView.state = .active
    if #available(macOS 10.14, *) {
        blurView.material = .sidebar
    }
    self.view = blurView
  }

  override func viewDidLoad() {
    super.viewDidLoad()

    self.addChild(flutterViewController)

    flutterViewController.view.frame = self.view.bounds
    flutterViewController.view.autoresizingMask = [.width, .height]
    self.view.addSubview(flutterViewController.view)
  }
}

class MainFlutterWindow: NSWindow, NSWindowDelegate {
  override func awakeFromNib() {
    delegate = self

    let blurryContainerViewController = BlurryContainerViewController()
    let windowFrame = self.frame
    self.contentViewController = blurryContainerViewController
    self.setFrame(windowFrame, display: true)
    self.minSize = NSSize(width: 600, height: 400)

    // Doing this gives us a toolbar (that we're going to make transparent) but it gives
    // a bit more real estate to grab and drag with.
    if #available(macOS 10.13, *) {
      let customToolbar = NSToolbar()
      customToolbar.showsBaselineSeparator = false
      self.toolbar = customToolbar
    }

    // Don't show the title bar
    self.titleVisibility = .hidden

    // Weirdly, you'd think we wouldn't need this because we're hiding the titlebar
    // on the previous line, but if we don't, then the toolbar is shown opaquely.
    self.titlebarAppearsTransparent = true

    // Allows the user to grab by the title/tool bar and move around
    self.isMovableByWindowBackground = true

    // Combines both titlebar and toolbar
    if #available(macOS 11.0, *) {
        self.toolbarStyle = .unified
    }

    // Without this, the content view on the right sits underneath the toolbar
    self.styleMask.insert(.fullSizeContentView)

    // Making the window itself transparent
    self.isOpaque = false
    self.backgroundColor = .clear

    RegisterGeneratedPlugins(registry: blurryContainerViewController.flutterViewController)

    super.awakeFromNib()
  }

  func window(_ window: NSWindow, willUseFullScreenPresentationOptions proposedOptions: NSApplication.PresentationOptions = []) -> NSApplication.PresentationOptions {
    // Hides the toolbar when in fullscreen mode
    return [.autoHideToolbar, .autoHideMenuBar, .fullScreen]
  }
}

A couple of notes:

The key here is that we're creating a new BlurryContainerViewController that contains the FlutterViewController and then we set that blurry container as the contentViewController for the window.
As a result, we can remove all those hacks that muck around with the manual manipulation of the view hierarchy and contentView
Aside from creating the BlurryContainerViewController, you'll notice that I'm doing quite a bit of customisation of the toolbar and titlebar. All of this is to achieve my desired look and feel... it is unlikely that you will want the same configuration so you'll probably need to tweak a bunch of those settings.
The toolbar/titlebar configuration has a /lot/ of settings that all interact with each other and there has been a /lot/ of change in recent years that mean some settings are only available on some version of macOS.
All of my testing has been on Big Sur... there may be some subtleties on other versions that I haven't had a chance to test yet.
The above code also brings back the sensible resizing behaviour.

Anyway, I've been using this for a few weeks now and it seems pretty robust.

linux #flutter

Well I don't know how blur can be done on GTK3.0, but here is what I've got for Linux.

Hey!
Would you mind explaining how you achieved that result? Everything i tried with GTK3 and Cairo in the my_application.cc file hasn't worked yet

You guys are so cool.

@edwardaux I like your approach of simply inserting an extra view controller & view into the hierarchy, it seems clean and straightforward. Thanks!

Another reminder about scope since there's been a lot of tangential discussion:

This is tracking making the Flutter view transparent. Making the window itself transparent is not in scope for Flutter (since Flutter currently doesn't operate at the window level, it only controls the view). Discussion about how to change the window would belong on StackOverflow or a similar resource.
This issue is about macOS. There are separate issues for Windows (#71735) and Linux (#66751).

No longer work in flutter 3.7+

@som3on3 Not working with flutter 3.7.3, I get the following error :
FlutterWindow.swift:32:1: error: binary operator '+' cannot be applied to operands of type 'NSRect' (aka 'CGRect') and 'NSColor?'
+   flutterViewController.backgroundColor = .clear // **Required post-Flutter 3.7.0**

FlutterWindow.swift:32:43: error: cannot assign value of type '()' to type 'NSRect' (aka 'CGRect')
+   flutterViewController.backgroundColor = .clear // **Required post-Flutter 3.7.0**

@PierreBresson edit MainFlutterWindow.swift
let flutterViewController = FlutterViewController.init()
flutterViewController.backgroundColor = .clear
let windowFrame = self.frame
self.contentViewController = flutterViewController
self.setFrame(windowFrame, display: true)
RegisterGeneratedPlugins(registry: flutterViewController)
works just fine in 3.7.3

@PierreBresson
also remove the "+" in front of the line

@som3on3 thanks! 🤦♂😅


Like Condition

I added these lines into the
HelpersTrait->verifyWhereConditions
else if ( $condition === "like" ) {
if ( strpos($fieldValue,$value) === false ) return false;
}
it looks fine.

I think using regular expression instead of strpos would be a better idea to mimic the behaviour of the LIKE clause.

#40 new Like-Condition, implemented with regular expressions and preg_match

The like condition now supports all wildcards shown in https://www.w3schools.com/sql/sql_wildcards.asp at Wildcard Characters in SQL Server


Re-assign point outside framer

In the annotation tool: be able to re-assign points.
Click a point and "re-assign" it. This means that the point is removed and a new one is generated using the source random point annotation scheme.

Just happened to see this issue. Since this post, the removepointoutliers management command was created.
@beijbom Do you remember the latest result from that management command?

I don’t, no.
On Sun, May 10, 2020 at 13:03 StephenChan<EMAIL_ADDRESS>wrote:

Just happened to see this issue. Since this post, the removepointoutliers
https://github.com/beijbom/coralnet/blob/e3ddd9b3acea8ea82df1866845fb261f892145f1/project/images/management/commands/removepointoutliers.py
management command was created.
@beijbom https://github.com/beijbom Do you remember the latest result
from that management command?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/beijbom/coralnet/issues/30#issuecomment-626381670,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAITTF2S6BNCGVFXMXYZWNDRQ4CB5ANCNFSM4CIVUBOA
.

But it seems like a different thing. The management command is for points
outside the image. This issue is for points outside the chosen annotation
area.
On Sun, May 10, 2020 at 14:18 Oscar Beijbom<EMAIL_ADDRESS>wrote:

I don’t, no.
On Sun, May 10, 2020 at 13:03 StephenChan<EMAIL_ADDRESS>wrote:

Just happened to see this issue. Since this post, the removepointoutliers
https://github.com/beijbom/coralnet/blob/e3ddd9b3acea8ea82df1866845fb261f892145f1/project/images/management/commands/removepointoutliers.py
management command was created.
@beijbom https://github.com/beijbom Do you remember the latest result
from that management command?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/beijbom/coralnet/issues/30#issuecomment-626381670,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAITTF2S6BNCGVFXMXYZWNDRQ4CB5ANCNFSM4CIVUBOA
.

Ah, true. I missed that detail. I guess this management command can be expanded to check annotation areas as well, but maybe not a high priority.


Bump sigs.k8s.io/kueue from 0.8.0 to 0.8.1 in /cmd/experimental/kjobctl.

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
Bump sigs.k8s.io/kueue from 0.8.0 to 0.8.1 in /cmd/experimental/kjobctl.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Manual fix for https://github.com/kubernetes-sigs/kueue/pull/3019. Unfortunately dependabot update only kjobctl go.mod, but we also need to update hack/tools/go.mod too. That's why we have an issue.
Does this PR introduce a user-facing change?

NONE

/kind cleanup

/cc @mimowo

/lgtm
/approve
Thanks!


Fix & refactor script build-skia-ios-fatlibs

fixing this script to be able to build the library

Hi @schiller-manuel !
Thanks so much for helping out :) Just wanted to discuss what error this PR is targeting - I see your point using the configuration instead of hard coded values - but did this result in a failure in the build system?
Just asking to make sure I understand the problem :) :)
Christian

Hi @chrfalch,
I wanted to build the library myself but the scripts failed since it checked for Android libs being present during iOS build.
This is was fixed in https://github.com/Shopify/react-native-skia/pull/53/commits/53c3c6ccab9664c609bd27eaafec6dd476654b12
The other commit is rather cosmetic but I thought it makes sense to reuse the configuration.


2/2 Test #2: lxml_tester ......................***Not Run   0.00 sec

I faced with the error when run make test. And below is the log(MacBook Pro (Retina, Mid 2012), MacOS: 10.12.4 (16E195)):
mxml git:(master) make test
Running tests...
Test project /Users/apple/Documents/MyProject/mxml
    Start 1: mxml_tester
Could not find executable /Users/apple/Documents/MyProject/mxml/build/mxml_tester
Looked in the following places:
/Users/apple/Documents/MyProject/mxml/build/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Release/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Release/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Debug/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Debug/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/MinSizeRel/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/MinSizeRel/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Deployment/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Deployment/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Development/mxml_tester
/Users/apple/Documents/MyProject/mxml/build/Development/mxml_tester
Users/apple/Documents/MyProject/mxml/build/mxml_tester
Users/apple/Documents/MyProject/mxml/build/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Release/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Release/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Debug/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Debug/mxml_tester
Users/apple/Documents/MyProject/mxml/build/MinSizeRel/mxml_tester
Users/apple/Documents/MyProject/mxml/build/MinSizeRel/mxml_tester
Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/mxml_tester
Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Deployment/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Deployment/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Development/mxml_tester
Users/apple/Documents/MyProject/mxml/build/Development/mxml_tester
Unable to find executable: /Users/apple/Documents/MyProject/mxml/build/mxml_tester
1/2 Test #1: mxml_tester ......................***Not Run   0.00 sec
    Start 2: lxml_tester
Could not find executable /Users/apple/Documents/MyProject/mxml/build/lxml_tester
Looked in the following places:
/Users/apple/Documents/MyProject/mxml/build/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Release/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Release/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Debug/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Debug/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/MinSizeRel/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/MinSizeRel/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Deployment/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Deployment/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Development/lxml_tester
/Users/apple/Documents/MyProject/mxml/build/Development/lxml_tester
Users/apple/Documents/MyProject/mxml/build/lxml_tester
Users/apple/Documents/MyProject/mxml/build/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Release/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Release/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Debug/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Debug/lxml_tester
Users/apple/Documents/MyProject/mxml/build/MinSizeRel/lxml_tester
Users/apple/Documents/MyProject/mxml/build/MinSizeRel/lxml_tester
Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/lxml_tester
Users/apple/Documents/MyProject/mxml/build/RelWithDebInfo/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Deployment/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Deployment/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Development/lxml_tester
Users/apple/Documents/MyProject/mxml/build/Development/lxml_tester
Unable to find executable: /Users/apple/Documents/MyProject/mxml/build/lxml_tester
2/2 Test #2: lxml_tester ......................***Not Run   0.00 sec

0% tests passed, 2 tests failed out of 2

Total Test time (real) =   0.00 sec

The following tests FAILED:
	  1 - mxml_tester (Not Run)
	  2 - lxml_tester (Not Run)
Errors while running CTest
make: *** [test] Error 8

Looking forwards to hearing from you.

Did you run git submodule update --init

Yes, I did.

Ok, I missed a step in the instructions. You need to run make then make test

Thanks for your support, added make is worked.


Download button on left hand side causes app to crash

On further inspection, it causes the app to crash iff there is no node selected, because active node does not have a value so some function must be quitting because of it.
It works if a node is clicked

Fixed!


Setting Force Install After Date Displays in Local but Saves in GMT

I live in Mountain time zone here in the states, I noticed that when setting the Force Install After date, while it did display it in local time (09/19/2017 04:52 PM), it saved it in a time converted to GMT 6 hours ahead (09/19/2017 11:00 PM) Reloading this also showed that it was still in local time. MSC runs based on Local Time, not GMT so this should probably be fixed.
Again thank you for making such an amazing software. I will try and see if I can find the code that is causing this. To help narrow it down.

This line: NSTimeZone *timeZoneUTC = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
Maybe the cause, could be changed to:
NSTimeZone *timeZoneUTC = [NSTimeZone localTimeZone]; ?
Here:
https://github.com/hjuutilainen/munkiadmin/blob/32637de3226ad0c9400e4c05e8134bd243ef465f/MunkiAdmin/UI Controllers/MAAdvancedPackageEditor.m#L51

Confirming that I'm observing the same issue in Eastern time (Zack and I discussed this in Slack).  I set a pkg to force install by 6 PM in MunkiAdmin, and the pkginfo indicated that the installation time would be set to 22:00 (10 PM).

Thanks for reporting this.
The date picker UI component needs to specifically use UTC (since the date in pkginfo is UTC) to avoid displaying the date in some other time zone. It was previously enough to only set the date picker time zone but evidently the whole app default time zone needs to be UTC.
Could you try this test build to see if it displays and saves the date correctly:
https://www.dropbox.com/s/q87ml5nj3a0mw9j/MunkiAdmin-1.5.1-2-g8818d34.dmg?dl=0

That fixes it. Thanks!


Forwards the isUndoing/isRedoing flags to the extension host.

This PR addresses #120617.
No time pressure, this can wait.

This should maybe done like TextEditorSelectionChangeKind, e.g have a kind-property on the event which classifies how the event was triggered

I thought of TextEditorSelectionChangeKind too, but that might give the wrong impression that the enum is exhaustive.
enum TextEditorSelectionChangeKind {
    undo,
    redo,
    other
}

Then users can check for if (kind === TextEditorSelectionChangeKind.other).
If there ever will be the variant typeInput, that would break extensions.
Another boolean flag would not break extensions though.

Alternatively, the enum has no Other variant but is stored in a field that can be undefined.

That's how TextEditorSelectionChangeEvent.kind works - it can be undefined or set to a known state. The advantage of the enum is that it prohibits invalid states, e.g it doesn't allow for { isUndoing: true, isRedoing: true }


 SocialCount’s main purpose is to improve load times by on-demand asynchronously loading the social widgets.
Will allow us to close a few issues with this piece around API rate limits and Twitter API deprecation and stick to the core purpose.

Could also encourage plugins to use something like https://github.com/filamentgroup/SocialCount/issues/54

Sounds like it’s time to remove the counts piece altogether: http://www.inc.com/james-parsons/the-era-of-the-share-count-is-coming-to-an-end.html via @scottjehl

agreed on all counts

On the README you wrote:

Both Twitter and Facebook have or will remove their public share count APIs.

Twitter I know about. What's your source for the statement about Facebook? Is it just that Inc.com piece? On Google I can't find conclusive to say that this endpoint is going away:

https://graph.facebook.com/?id=https://www.filamentgroup.com/

@peterhartree That’s a good question. Contrary to the inc article, the share_count seems to still be supported in v2.8: https://developers.facebook.com/docs/graph-api/reference/v2.8/url (click the “share” collapsible).
Even if Facebook continues to support this API, I don’t think this piece is part of what we want to support. It has serious production limitations (especially around rate limiting, given that all requests made from the server are aggregated under the same rate limited umbrella) and as such has limited utility for even moderate usage. You can see some of the issues we had to deal with on this issue search: https://github.com/filamentgroup/socialcount/issues?q=is%3Aissue+count+is%3Aclosed
So, unfortunately, I think we’ll continue down this path.


Update Contributing guidelines

Swim lanes allow the board to be split into categories of work that
represent the different work streams the team needs to manage. This
commit updates the contributing guidelines to define the available swim
lanes and how to use them to manage WIP.
This change updates the contributing guidelines to further clarify what
constitutes a single item of WIP.
The wording around blocking WIP has been adjusted to highlight the
importance of removing the blockage quickly.
The details regarding where to find the current WIP limits have been
emended and the use of a minimum WIP limit has been explained.
The role of support in identifying new WIP has been made explicit.
Document the use of the label status-dont-merge. Currently the
documentation only provides use of the label status-blocked which is not
appropriate when the pull request is simply being revised.
In general an upstream fix is not immediately consumable by RPCO, OSA
has processes to periodically update its SHAs to pull in newer code from
associated projects. This lag between a fix appearing in a code base and
being available to RPCO has the potential to block new work. This commit
adds documentation for a new column, Pending-SHA-update, that can be
used as a buffer so that this work is appropriately tracked but does not
block new WIP.
Connected https://github.com/rcbops/u-suk-dev/issues/268

@b3rnard0 @mancdaz @claco this is to document some process updates that we have either already implemented or have been identified as being necessary. I would like to get this merged today.

Reviewed this earlier so :+1: from me.

My only question is around where the pending-sha-update column sits in the workflow. With the way it is proposed, you have the potential to have a lot of work completed in a single shot every two weeks, skewing the CFD. A task could be technically completed in a day, but not actually moved to done for 2 weeks, meaning it appears to spend 2 weeks in the system.
Technically if we're doing this for osa patches we should do the same for all rpco patches, placing them into a pending status until they are released in a tag. But then you have the same problem, in that you get a ton of work 'completed' every 2 weeks.

@mancdaz yes it will create steps in the CFD and may end up giving the appearance of flow debt in our data. When we discussed this yesterday there was the alternative approach of breaking the work out into stages but there seemed to be a desire to use in issue to track a fix all the way through. That column is not tracking an item till it appears in a tag but instead tracking an item till it appears in a branch. I believe tracking tags would need to be a separate step and the benefit of that if for communicating with support so is not necessarily something we need.

@mancdaz
I would think it sits in-between needs review and done. It's a buffer queue that does not have a WIP.
So the other option that @git-harry alluded to was to move these into a separate swimlane.
How else would we be able to reduce the batch size for these types of items without fundamentally changing how we complete them? In order for us to be as transparent about how long these will take to complete, we cannot hide the 2+ week delay that happen. Support would want an SLA that's based on the actual completion time, which includes the external dependency of how long things complete in upstream. Perhaps a future improvement is for us to think about how we reduce our long cycle time? Excluding the the idle time here is not helpful to Support and customers.

Picking-up/corrupting @b3rnard0's point about fundamental change. We could choose to change our process, for example as in the days of Chef we could put something in place to update the IRR and service project SHA's more regularly or allow that to be as part of these upstream issues, however I think before we start considering how to improve things we should put more emphasis on gathering metrics. I think we still need more work to get to the point where we are properly tracking our work. Once things are on a firmer footing we can look to use the data we've generated to identify areas to improve.

Really, my only concerns here is 'add it to another swimlane'.  I worry that it's going to become difficult to just look at a topic and see what is happening if I have to know when to switch between swimlanes, or sources, especially when a bug evolves to span multiple lanes, or splits into two cards, the original, and a blocker that are in two different sources or two different swimlanes.

@claco the current patch does not propose adding another swim lane. I think there are merits to that approach but it all depends on how we want to track the work and what information we are trying to communicate with the different completion statuses. The current suggestion closely matches current working practices without unnecessarily affecting throughput and so gives us a defined based from which to evolve.

Yeah, I was more refering to @b3rnard0  last comment "So the other option that @git-harry alluded to was to move these into a separate swimlane."

@git-harry @b3rnard0 @claco so what's the real benefit of tracking only to the point the code lands in the rpco branch (as we do now for rpco bugs, and as we would for osa bugs with this proposed process change)? None of it is of real benefit until it is consumable in a release/tag. As in, it's not real throughput until it's saleable, to use the workplant analogy.
I'd say either we go the whole hog and track it all to tag, or we accept that what we have now tracks the actual work that we are doing to land the patches in branch (in the respective project, not into rpco) and consider that done. Then separately, accepting that there is 'work' in doing a release that you might not be tracking per se (doing the tag, sending an email, new sha bump), the releases happen.
I still think the extra column helps you keep tabs on what will come in as a result of the sha bump, that is important to you, but that it should not form part of the end-to-end time in the system...unless we go the whole hog as I described above.

@mancdaz I think this is missing the point. The purpose when starting Kanban is to model the process as is and then look to evolve it over time. Now admittedly what has been defined does not completely map to how things were done, partly because of WIP limits and partly because it's difficult to describe a process when that process was so loose. We have never waited to close an issue until the next release has been made. Upstream work has always been handled inconsistently, although the majority of upstream issues are not closed until the SHA update is done, this change is designed to make sure we are all pulling in the same direction, to prevent upstream work blocking other work, and to allow us to begin gathering useful data.
We can define throughput to be whatever we want in the sense that there is not requirement for the departure point to be one thing or another. I believe that we should agree with our customer as to the appropriate definition of done. While I agree that is worthwhile, that also creates problems with the tooling and I believe is feature creep when we are still trying to properly define what we are currently doing.
We can look to break this work up so that an upstream issue is simply an upstream issue but then there are a number of ways we could look to change things. There is no perfect answer at this point and I think it would be better to resist evolving things prematurely.

@mancdaz @claco I agree with @git-harry in that this issue resolves specifically our upstream tracking challenges. Tracking all of our work in this fashion is outside the scope of this change but it is a needed improvement that we are tracking here: https://github.com/rcbops/u-suk-dev/issues/240
I completely agree that we need to start thinking about our dev-done to release work stream for general rpc-o bugs, as that is a much more complete picture of our cycle time/SLA. However, we need to solve things incrementally so I would say let's fix this one issue (upstream tracking) and then add the larger release picture as separate issue.

@git-harry @b3rnard0 you've melded into a single b3rnardarry entity and I can't distinguish either of you now. You are one.
Fair enough, let's try this and see how it goes.

@mancdaz What did you call me?!

So based on the 👍 from b3nardarry and myself, this merges


Rule: detect 'also' library function misuse instead of 'apply'

Lurking codebases came across this kind of pattern (example is obfuscated to not to mess with details):
inline fun foo(block: Buzz.() -> Unit): Buzz =
    Buzz().also {
      it.init()
      it.block()
    }

Which is misused also pattern and surely can be simplified to:
inline fun foo(block: Buzz.() -> Unit): Buzz =
    Buzz().apply {
      init()
      block()
    }

The suggested rule is "when an also block contains only it-started expressions, simplify it to the apply block"
Probably, this pattern also applies to the let - run pair, although I could not get with the real-world example, so this is the mirrored one:
inline fun foo(block: Buzz.() -> T): T =
    Buzz().let {
      it.init()
      it.block()
    }

Correct usage:
inline fun foo(block: Buzz.() -> T): T =
    Buzz().run {
      init()
      block()
    }

the reason also exists is this
you can have outer this@outer and inner this
this becomes very messy very quickly
with also & let you can name your stuff. So this is not about simplicity or aesthetics

@adelnizamutdinov This rule is about simplification of non-nested structures, like in the example. no problemo with this@whatever in this case


go cli build is not hitting docker cache

Environment details:

mac + docker-machine

Steps to reproduce the issue:

cd openwhisk
./gradlew tools:go-cli:distDocker
./gradlew tools:go-cli:distDocker

Provide the expected results and outputs:
expecting the second gradle build to be fast ant to skip the go-cli build entirely since there are no intervening changes.
Provide the actual results and outputs:
long docker build for both steps 2 and 3 above, each taking several minutes.

@mdeuser @dubeejw

We are building for a lot of operating system/CPU architecture combinations. We could reduce the number of binaries that are generated to speed up the build.

That's fine if the hit is once but where there are no changes, building the go cli back to back should not take 2 minutes each time. If we can't resolve this, I suggest we pull the go cli distDocker target out of the main gradle file and make it a separate, explicit build step.

@mdeuser, completely remove the logic to setup the timestamp from Gradle. Modify the Dockerfile file to build the Go CLI like so:       go build -ldflags "-X main.CLI_BUILD_TIME=date -u '+%Y-%m-%dT%I:%M:%SZ'" -v -o build/$GOOS/$GOARCH/$EXEC main.go && .

@rabbah - I've played around with the Dockerfile a bit and have the following proposal.

As PhiIippe suggest, I moved the ARG BUILDTIME down in the file so that the common tool download/installation is always pulled from the cache.
The go-cli build checks for a WHISK_BUILD_TIMESTAMP environment variable.  If it exists, it uses that value as the timestamp.  Subsequent builds will use this same timestamp value, and if it is not changed and there are no Go CLI code changes, the build pulls from the cache (10-20 second Go CLI builds).  If that env variable is not set, a timestamp is dynamically generated, causing the Go build to occur (i.e. cache is ignored).

The commit above doesn't noticeably improve the build I'm observing that two successive builds with no changes take a total time of Total time: 2 mins 28.43 secs (excluding go CLI, two successive builds with no changes take Total time: 6.582 secs otherwise).

Are these results from your local builds with the WHISK_BUILD_TIMESTAMP environment variable set?

I ran ant build twice in a row - I didn't grok from the comment above that I'm suppose to set the env var myself explicitly. Eh.
Existential question - what if we dropped this build time from the CLI? This was not really the best way to version the CLI anyway.

Perhaps the information needed about should be included in the README?

I had missed it too. Combining your ideas: what if the build only adds the version timestamp if the variable is defined, defaulting to SNAPSHOT otherwise? Fast builds for devs, properly timestamped for releases?

Even if documented - The default way of building should be the pessimal route.

We can go that route.  Is there a good gradle property already set by the production systems that identifies the build as a production build?

These two are defined in the property playbook:
whisk.version.name={{ whisk_version_name }}
whisk.version.date={{ whisk.version.date }}

Are those values available at gradle time?  I was under the impression those were set during the ansible deployment phase.

The build does generate this file at some point - can't run tests without it. @markusthoemmes @lehoanganh without ant, when will this file be generated and will the values above be available to gradle?

In the meantime, I'll change the timestamp generation to no longer use the docker ARG as the build timestamp so that build times are improved.  I'll open an issue for discussion of whisk-wide build timestamps to see if and how build timestamps should be generated and used.

The PR above improved the experience for the second build.
Is there any way to speed up the first build? It takes me roughly Total time: 3 mins 53.77 secs to build the go CLI on a 2.8 GHz Intel Core i7 with 16GB RAM (docker machine has 4GB RAM).

@rabbah: no, gradle should not rely on whisk.properties being written. Tests are the only exemption.

Right now, the Go CLI is building binaries for all of the Go supported platforms and architectures.  If some of these binaries are not needed we can removed them from the build.

windows: 386, amd64
mac: 386 amd64 arm arm64
linux: 386 amd64 arm arm64 ppc64 ppc64le mips64 mips64le

@nauerz-ibm - Do you have a suggestion for the recommended Go wsk CLI binaries?  From the Bluemix CLI download page: Linux amd64 only, Windows amd64 only, Mac: ?? (I only have Windows)
Here's the Bluemix CLI download page: https://clis.ng.bluemix.net/ui/home.html

@rabbah @mdeuser please close if the problem on docker is fix now.

Go CLI is now fully using the docker cache.  Closing this issue.


[Lua] Unexpected compile result

Weird complier behavior when executing lua code inside rpc scope.
print(("%s"):format(value))

Is this intentional?
server-nakama-node1-1  | {"level":"warn","ts":"2023-03-17T16:07:48.029Z","caller":"server/runtime_lua_nakama.go:2207","msg":"data/modules/api/watch.lua:28: attempt to index a non-table object(string) with key 'len'","runtime":"lua","rpc_id":"internal/consul/watch"}

#PR1012

PR fixing this has been merged. 🙇


The editor toolbar insertion of table issues.

Hi Daniele rolli,
Happy to update to 3.0.0
I insert a table and I can't find a button to add a row or column.
But when I reopened it and clicked on the form again to prepare for input, a new line of tools for adding a row or a column appeared. And it cannot disappear, it always follows the mouse pointer. I think it's a little bit fluid.
When I click the delete button on the new toolbar, the entire table is gone, oh my god.
I think it would be more convenient to add a small button to the border of the last row or column.

Thank you for your feedback. The floating toolbar should disappear while typing to avoid interference. I'll explore options for adding a button to delete the table rather than having it in the floating toolbar. Additionally, we could consider removing the button altogether, as the table can be deleted using the backspace key.

I'm sorry for forgetting to provide my platform for yesterday's question, formatting is a good practice.
System: ubuntu23.04.
Version: 3.0.0.
It should be updated to 24.04 as soon as possible next month.


IndexOutOfRangeException after importing XRTK.Oculus module via UPM

XRTK - Mixed Reality Toolkit Bug Report
Describe the bug
The following exception occurs at step 3 of the Testplan provided below when importing the Oculus module via UPM:
IndexOutOfRangeException: Index was outside the bounds of the array.
XRTK.Editor.PackageInstaller.AddConfigurations (System.Collections.Generic.List`1[T] profiles) (at Library/PackageCache/com.xrtk.core@0.2.0-preview.113/Editor/PackageInstaller.cs:142)
XRTK.Editor.PackageInstaller+<>c__DisplayClass1_0.<TryInstallAssets>b__0 () (at Library/PackageCache/com.xrtk.core@0.2.0-preview.113/Editor/PackageInstaller.cs:125)
UnityEditor.EditorApplication.Internal_CallDelayFunctions () (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:209)

How to reproduce
Follow Testplan https://github.com/XRTK/XRTK-Core/blob/development/articles/testplans/TP-01_Import-XRTK.Oculus-Without-XRTK.SDK.md
the error will happen at step 3.

I wasn't able to repro this with the latest preview packages using 2019.4.15 LTS.

@FejZa can you confirm this?

I can confirm this seems resolved with 2019.4.15 LTS. I wasn't able to reproduce anymore.

As we are close to updating to the LTS version I think we don't need to look into this further.


Is this project still maintained?

This tool is incredibly useful, but based on the age of some issues and pull requests it seems it may no longer be maintained?

I’m one of the original authors of stern but left Wercker about 6 months ago so can’t speak to this in more detail. It’s possible the oracle acquisition (or other reasons) changed priorities..

@markxnelson that's good news! Do you know the normal ETA to add someone to the OCA? My boss emailed sign off for our company over a month ago and we're not on the list yet.
We'd love to get https://github.com/wercker/stern/pull/67, if not soon we'll likely fork and publish this ourselves.

HI @c-knowles sorry to hear that, OCA is usually updated within 24 hours.  Can you forward me your email and I will check on it for you<EMAIL_ADDRESS>

@markxnelson no problem, our concern was mainly keeping the project going. Thanks for the feedback, will get onto that shortly.

Sure, we're still maintaining it. We are still working through about 300 repos and working out which ones are still important. And we are putting a lot of our resource into the core code base. Thanks for bumping.

@c-knowles your OCA was processed now.  So we can merge any PRs from you.

@markxnelson Is team still maintaining this project?


[WIP] Even smaller field names!

perf looks good, just need to get https://github.com/komora-io/inline-array/pull/4 merged


Split stream using a delimiter?

Is it possible to split an incoming stream by using a delimiter?
I have a stream of bytes I want to read that are exactly 154 bytes long, but due to BLE limitations are transmitted in 7 chunks of 20 and 1 chunk of 14.
Sometimes when I connect to the data stream, the buffered information doesn't start reading the information from the start of the packet, and will instead split the packet and overflow.
Eg. (Instead of 7 * 20 + 1 * 14, I'll get 3 * 20 + 1 * 14 + 4 * 20)
Example code:
StreamSubscription<List<int>> data;
ChunkedStreamIterator<int> dataChunked;
 ...
if (c.uuid == new Guid("0000ffe1-0000-1000-8000-00805f9b34fb")) {
          await c.setNotifyValue(true);
          dataChunked = ChunkedStreamIterator(c.value);
          //Also works, dataChunked = ChunkedStreamIterator(bufferChunkedStream(c.value, bufferSize: 154));
      while (true) {
            var data = await dataChunked.read(154); // read whole packet
            if (data.length < 0) {
              print('End of file reached');
              break;
            }
            parseData(data); //Splits data into sublists
            setState(() {
              buffer = data;
              count++;
            });
      }
} else {print("Nope"); }

@Mirageofmage: If you want to slice the stream into chunks with pre-determined sizes, you could also use package:buffer's sliceStream: https://pub.dev/documentation/buffer/latest/buffer/sliceStream.html

I was able to solve my issue by doing array rotations after the the stream was chunked together.


Allow users to specify train/val split using patient_id and date

Currently the train/val split specification requires a training end date and a validation end date, and the validation end date is required to be later than the training end date. This restricts the OOD model selection to being time-based. It would be great to allow train/val split specification using a similar method as how the excluded patient list is specified, e.g., using patient_id and a date in the patient timeline as end date for that patient. This would allow more flexible train/val split for, e.g., time-based IID model selection.

This is now resolved with a lot more options added to model setup.


Replace oak trees in the Ice Plains/Ice Mountains with spruce trees

Self-explanatory title.  Not sure what version that was changed in vanilla, but they shouldn't have oak trees.

Made any straggler vanilla biomes that are cold default to spruce.  Ice plains are classified as WASTELAND so they have no trees at all.  You may be seeing trees from bordering biomes for that one.


UTI in applescript appears not to be working.

The wiki suggests that narrowing a set of results by UTI should be as simple as swapping in "public.folder" for "NSFilenamesPboardType", but this doesn't appear to narrow the matches at all. Others in the forum here  have confirmed that this may be a bug.
If this is not a bug, could someone provide a minimal working example illustrating how to use UTIs in an applescript action?

I’m pretty sure that discussion is what inspired #2039, so a fix is already in the works.


Increment numbers (Ctrl-A + Ctrl-X)

Using Ctrl-A to increment numbers and Ctrl-X to decrease numbers doesn't seem to be implemented.

Yes! I'd definitely merge a PR adding this.


Move liquidity Function

Allow users to deposit liquidity or place limit orders behind enemy lines by performing a synchronous swap on the existing liquidity.

Notes:
Is this necessary now that we're not building it in solidity?

Conclusion:
Saving for later.


Added solution for Apple and oranges

Added solution for Apple and Oranges

@swapnanildutta Can this PR be labelled with Hacktoberfest-accepted tag as it got accepted and merged

Since it got merged, it is accepted.


fill the title in  from name of the preset or from description

Hi,
no problem involved, but could You consider putting the name of the preset in the html-header?
Example: I have a preset like "index.html?preset=echarts.0.PV-Stromverteilung", but the tab shows "Echarts [iobroker]". This is correct, but not helpful. Putting something usefull in the  make saving and viewing/selecting a chart much easier.
Strip the "echarts.0." from the header. Or alternativly take the description from the fifth tab in german "Beschriftung".
Something perfect could be a different icon for different groups (or only different colours) for easy grouping of charts, eg. some for power, some for environment, some for temperature.
By the way, the placement of this item could be enhanced with a little distance from the boder :-) just my opinion.
ciao
Harvey

Hi,
I still think this feature is important and very helpfull. Just think of 10 open charts for 10 different infos on a solarheatpump, all named "Echarts [iobroker]". I promise to you, that you will need to click into at least three tabs to get the intended one. I do :-)
thx for all the other work, like using echarts inside admin-objects-diagram. Please consider using different icons oder stronger colors to distinguish between activated and not_activated objects like gearbox/ok in gray and green, as this gray/gray_:and_slightly_blue ist cool, but not easy to see :-)
cu
Harvey

Thank you - works great !!!!!


Publish 3.16.4-web

Hey. Could you run the pipeline for 3.16.4-web? I would be very grateful

@KenBroken done


Expose mutable reference to real part of a dual number

It is useful when normalizing periodic variables (i.e. angles).

Not sure I like that. You're use case is one of the special cases where that would be interesting but you already have SubAssign<f64> which would serve the same purpose. On the other hand just mutating the real part without making sure that the derivatives are still correct can lead to unexpected errors.

Oh, I didn't think about using SubAssign at all! I think it should be closed then.


feat(lexer): preserve whitespace control modifiers into tokens

I added some tests before implementing the solution
TODO:

[x] Lexer

[x] Support for {%- and -%}
[x] Support for {{- and -}}
[x] Support for {#- and -#}

[ ] ~Parser~

[ ] ~Support for {%- foo -%} (block, do, set, include, embed, ...)~
[ ] ~Support for {{- foo -}}~
[ ] ~Support for {#- and -#}~

Would it be enough for your need to have that information at the token level? I like that idea and your proposal shows that it's quite easy to implement. Plus it's not creating any regression so a minor version bump would be enough.

Yes I think that will be enough. 👍
Also, sorry for asking this here, but how can run a specific tests with tape?
test.only does not seem to work (it's not a function 😔). At the moment I'm able to only run tests/unit/lib/lexer/test.js but that's really not ideal when searching for console.log outputs 😅

Hum, I was working on {#- and -#} but the logic is not the same than {% and {{ and I don't see token types for comments..
Comments are ignored/skipped? :confused:

Yes they are ignored. Let's change that. The AST should reflect the code structure and comments should be included.
About the testing suite, I don't think tape supports test.only. Maybe you could use node-tap for your tests. Should work perfectly.

I'm working on it, it should not be so hard if I mimic {% and {{ behaviors. :+1:
Well that's weird, twing use tape package and on the package's homepage there is a section about test.only() :thinking:

Hum, in fact it's harder than I thought. I'm slowly but surely breaking the lexer 😭
Tonight I can push my code and create a new PR if you are interested in :)

I can take care of the lexer. Push your PR and I'll take care of the remaining. I'll create an issue about comments that should be part of the AST.

Thanks you rocks! :)

By the way for the parser, is there a generic and clean way to handle whitespaces trim for {%?
I've just released that it should handle do, set, include, embed, ..., block and endblock nodes... 🤐 It's just not about {%- and -%}, but every blocks that use those tokens.
For example for the TwingBlockType, should we add 4 properties? (2 for {%- block abc -%} and 2 for {%- endblock -%})
Thanks

(miss click)

I've started an implementation for parsing {%- block ... -%} and putting good attributes, see c733fb24d46808e5e68817d7642d567fbb1015ea.
But as you can see:

I had to hack the stream to get the previous previous token ({% in {% block ...) and the next %} without breaking stream's behavior (no nextIf()), it's really dirty and not safe IMO
I didn't try to access {% and %} from {% endblock %} because I'm sure that I will have some issue if we use {% inside block's content (e.g.: {% set ... %})
For the block type, I had to add 4 new parameters in the constructor, can we do something better? It will be the same issue for autoescape, for, if, with, macro, sandbox, spaceless ...

Or maybe instead adding new parameters in the constructor, we can mutate attributes prop outside the class, but I don't think it's something you want. :thinking:

I'm wondering if it wouldn't be simpler to add a property to the token like "raw value" that would contain the non trimmed content of a token. This plus a property that says if whitespace control was used on open or end tag may be enough. What do you think?

Hum, I'm not sure to understand. You are speaking about tokens (so the lexer) but I've already handled the case.
The hard thing here is to handle all the different node types that use {% ... %} (and sometimes {% end... %}.
Maybe an example with some code would help me 🤔

Hi @ericmorand, finally I've reverted 78fa7a6 (6c9c2ba).
This PR is now only about preserving whitespace control modifier in tokens.
I have in mind to write a totally new parser because it's hard to update the actual parser (https://github.com/Kocal/prettier-plugin-twig/issues/15). It will be based on Twing (thanks twing.setParser() :heart_eyes:) and will use Twing tokens.
Also, I tried to commit a blank commit to trigger a Travis build but nothing happens. :confused:

Coverage remained the same at 100.0% when pulling a5d165f58c38198f79b5ab9b2e52a6637638f5a0 on Kocal:fix/proposal-for-issue-321 into 33cb4afb48a4f798f3771ad32a5f05b4a62eb18e on ericmorand:master.

@ericmorand should we close this PR?


Optimist interprets "01" argument as 1.

Hi, thanks for optimist! One issue I just found is that if I pass "01" as an argument (with or without quotes), optimist gives me simply the number 1 as the argument value:

node test-args "01"

Then I log require("optimist").argv and get:
{ _: [ 1 ], '$0': 'C:\\Program Files\\nodejs\\node.exe D:\\...\\test-args.js' }

Instead of:
{ _: [ "01" ], '$0': 'C:\\Program Files\\nodejs\\node.exe D:\\...\\test-args.js' }

Is there any way to ask optimist to not convert this string to a number?

I had the same issue, here is a quick workaround for later warriors to add leading zeros:

for fixed length string:
function pad(num, size) {  return ('0000000000' + num).substr(-size); }

for variable length string:
function pad(num, size) {  var s = num+"";  while (s.length < size) { s = "0" + s; }  return s; }


Input Validation on Add Server form

Since we now accept both hostnames and IP addresses this isn't really needed as much anymore.


Update transaction submission HTTP return

Some options:

Keep the request open and return 200 after the transaction is included in irreversible block
Return 202
Allow client to specify behavior?

Current behavior: 200 OK returned when the transaction was applied (but it does not guarantee that the block hasn't been forked out).


Only list rooter as an available proof type in dev mode

This approach passes flow. I tested it w/ a prod build.
:eyeglasses: @keybase/react-hackers

👍


[CLI]: Run time blows to infinity after 1 sweep--potentially callback, hanging or memory issues?

Describe the bug

Hi there. I'm attempting to run a sweep on a fairly simple hybrid neural network. What's happened several times, is that after running training to completion for a given configuration of the model, the second configuration is failing, usually after quite a few epochs have run. I'm running locally/no cluster, and I've tried running wandb through a jupyter notebook as well as in the command line. I've also tried running wandb in offline mode thinking that maybe something was getting hung up on the server. I'm using amphetamine on mac to prevent it from sleeping while the sweep runs (overnight, ideally). I had some issues before when trying to save weights locally, and had to disable this for wandb to run, and I'm not sure if maybe there are some weird issues with M1 macs, or the versions of tensorflow/keras/wandb I'm using.

# compile model model
auroc = tf.keras.metrics.AUC(curve='ROC', name='auroc')
aupr = tf.keras.metrics.AUC(curve='PR', name='aupr')

# early stopping callback
es_callback = tf.keras.callbacks.EarlyStopping(monitor='val_auroc',
                                            patience=10,
                                            verbose=1,
                                            mode='max',
                                            restore_best_weights=True)
# reduce learning rate callback
reduce_lr = tf.keras.callbacks.ReduceLROnPlateau(monitor='val_auroc',
                                                factor=0.2,
                                                patience=4,
                                                min_lr=1e-7,
                                                mode='max',
                                                verbose=1)

def train():
    config_defaults={
        "dense_number":16,
        "num_filters":50,
        "filter_width":5,
        "batch_size":100,
        "epochs":50,
        "regularization":1e-3,
        "keylen":12,
        "num_heads":8,
        "learning_rate":0.001,
    }
    pool_size="no"
    # tf.keras.backend.clear_session()
    # Initialize a new wandb run
    wandb.init(config=config_defaults)

    # Config is a variable that holds and saves hyperparameters and inputs
    config = wandb.config
    model=get_model_attention_pk_pool_masked_globrelpos_enet(input_length=bigtrain_x.shape[1],
                             dense_number=config.dense_number,
                             num_filters=config.num_filters,
                             filter_width=config.filter_width,
                             pool_size=pool_size,
                             key_len=config.keylen,
                             num_heads=config.num_heads,
                             l2_regularization=config.regularization,
                             learning_rate=config.learning_rate)
    model_name="wandb_example"
    model_name+=str(config.dense_number)+"_"+str(config.num_filters)+"_"
    model_name+=str(config.filter_width)+"_"+str(config.batch_size)
    model_name+="_"+str(config.epochs)
    model_name+="_"+str(config.regularization) + "pool_" + str(pool_size)
    model_name+="_" + str(config.keylen) + "_es_" + str(10)
    model_name+= "numheads"+str(config.num_heads)
    model_name+="_lr_"+str(config.learning_rate)
    results_path="/Users/mthompson/nnk_amyloid/saved_models/"
    print(model_name)
    model_dir = os.path.join(results_path, model_name+'_weights.h5')
    model_checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(
    filepath=model_dir,
    save_weights_only=True,
    monitor='val_auroc',
    mode='max',
    save_best_only=True)
    # early stopping callback
    es_callback = tf.keras.callbacks.EarlyStopping(monitor='val_auroc',
                                            patience=10,
                                            verbose=1,
                                            mode='max',
                                            restore_best_weights=True)
    # reduce learning rate callback
    reduce_lr = tf.keras.callbacks.ReduceLROnPlateau(monitor='val_auroc',
                                                factor=0.2,
                                                patience=4,
                                                min_lr=1e-7,
                                                mode='max',
                                                verbose=1)
    # wandb_callbacks=[]
    history=model.fit(x=bigtrain_x,y=bigtrain_y,
                  batch_size=config.batch_size,epochs=config.epochs,verbose=1,
        validation_split=0.10,
                            callbacks=[es_callback, reduce_lr,
                                      wandb.keras.WandbMetricsLogger(),
                                      wandb.keras.WandbCallback(save_model=(False)),
                                      model_checkpoint_callback]
    )
    # model.save_weights(model_dir)

import wandb
wandb.login()
# 2: Define the search space
sweep_config = {
    'method': 'random', #grid, random
    'metric': {
      'name': 'val_loss',
      'goal': 'minimize'
    },
    'parameters': {
        'epochs': {
            'values': [30, 50, 100]
        },
        'dense_number': {
            'values': [12, 16, 20, 24,28,32,36]
        },
        'regularization': {
            'values': [0.00001,0.0001, 0.001, 0.01]
        },
        'num_filters': {
            'values': [20, 25, 30,35,40,45,50]
        },
        'learning_rate': {
            'values': [0.001, 0.005,0.01]
        },
        'keylen': {
            'values': [8, 12, 16,24]
        },
        'num_heads': {
            'values': [2,4,8,12]
        },
        'filter_width': {
            'values': [5,7,9]
        }
    }
}
sweep_id = wandb.sweep(sweep_config, entity="myuserid", project="example-init")
wandb.agent(sweep_id, train)

Additional Files
debug_hung.log
debug-internal_hung.log
debug_successful.log
debug-internal_successful.log

Environment
WandB version: 0.15.2
OS: Mac Monterrey 12.6
Python version:
Python 3.10.6
Versions of relevant libraries:

wandb==0.15.2
tensorflow-deps=2.10.0=0
tensorboard==2.10.0
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
tensorflow-addons==0.20.0
tensorflow-datasets==4.9.2
tensorflow-estimator==2.10.0
tensorflow-hub==0.13.0
tensorflow-macos==2.10.0
tensorflow-metadata==1.
tensorflow-metal==0.6.0
wheel=0.37.1=pyhd8ed1ab_0
keras==2.10.0
keras-nlp==0.4.
keras-preprocessing==1.1.2

Additional Context
I'm not sure if there's maybe an issue with the callbacks since this was causing issues in the past. Can I use the keras early-stopping callback, or do I need to switch to that of wandb?

Hi @mj-thompson thanks so much for reporting this issue and providing all these detailed information.
I tried to run the code on my end too, but the get_model_attention_pk_pool_masked_globrelpos_enet is missing. Do you have access to another compute infra, and would it be possible to run it for instance on Google Colab to rule out your issue being related to tensorflow not being officially supported on M1?
I've also checked you debug logs but they seem to come from offline runs, and won't have any errors in there. Is it possible to run this again in online mode, and share new debug logs, and a link to your Workspace to investigate further?

Hi @mj-thompson I wanted to follow up with you on this issue and see if you could provide us with the information requested previously to help us root cause this issue. Thank you!

Hi thanks for following up.
I think this is an issue unrelated to wandb after some debugging and doing training of multiple models in environments without wandb installed. I'm on an M1 mac using tensorflow, which does not seem to be officially supported! It seems to be memory leaks from this M1/tensorflow-macos end rather than wandb.
Thanks again

Thanks for the update @mj-thompson this is very useful for future reference. Feel free to reopen this if it turns out to be wandb related, and we would be happy to keep investigating.


Rapid teleportation causes desyncs

Major instances:

Pulled by ghost
On rotating ball floor
Bowser's vacuum
Moved by knockback
Moved by bashed scare

Side effects, in order:

Unable to stop taking damage without letting go/unable to capture chauncey/bogmire decently
Unable to reliably catch the floating whirlindas
Unable to evade the attack
Not moved away from damage source
No ccontrolled movement

Fix?: Teleport, then wait 1 tick before the next teleport

https://bugs.mojang.com/browse/MC-197855
This literally CANNOT be fixed, if your connection communication takes longer than the time between teleports, you cannot move, no matter what I do.
Let's hope Mojang tackles this issue.


Terms and Condition Page

Fixed issue : #236

@ROKUMATE  please review this and merge it

@Luson045  @ROKUMATE  please assign it to me and add labels like gssoc-ext and level


forwarded Label

Is it possible to get the new label that says 'forwarded' in the messages?

The forward label  is already on the wapi object, when you set a listener to new messages, it come with the name "isForwarded : true/false"


feat: Migrate get_estimate_fee

Pull Request type
Please check the type of change your PR introduces:

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

What is the current behavior?
Issue Number: #226
What is the new behavior?
Migrate the starknet_get_estimate_fee method from beerus_rest_api to beerus_rpc, which given a block_id and a broadcasted_transaction returns the estimate_fee
Does this introduce a breaking change?

[ ] Yes
[x] No

https://github.com/all-contributors
please add @dubzn for feature contribution

Code seems correct to me @dubzn please resolve conflict so we can go towards a merge

sure! lemme fix this


WIP Bump RHCOS version to 47.334

Update RHCOS image to latest Beta 2 drop
TODO:

[ ] Masters won't come up

Build FAILURE, see build http://<IP_ADDRESS>:8080/job/dev-tools/144/

Is this working for other folks? For me the masters don't even boot, failing in the initrd-switch-root service, so pretty early in the boot process?

That's odd, it works fine here, but also times out on CI - it could be due to a lack of cached image though

Is this working for other folks? For me the masters don't even boot, failing in the initrd-switch-root service, so pretty early in the boot process?

Ya, same problem here, lots of this this
[    6.866057] ostree-prepare-root[1688]: ostree-prepare-root: Couldn't find specified OSTree root '/sysroot//ostree/boot.0/redhat-coreos-maipo/829c5e7d39799a36aeb0c4faea76de33b7138dff9ce6d62a69bf8d5df1961d1c/0': No such file or directory^M

Build FAILURE, see build http://<IP_ADDRESS>:8080/job/dev-tools/238/

Build FAILURE, see build http://<IP_ADDRESS>:8080/job/dev-tools/313/

Superseded by #192


Roll Flutter Engine from d9c084560e1e to d8c49e185e88 (1 revision)

https://github.com/flutter/engine/compare/d9c084560e1e...d8c49e185e88
2022-07-25<EMAIL_ADDRESS>Roll Dart SDK from cd908e14acc8 to be3fb944e6a0 (1 revision) (flutter/engine#34874)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


belcard: 5.1.12 -> 5.2.12

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/belcard/versions.
meta.description for belcard is: C++ library to manipulate VCard standard format. Part of the Linphone project.
meta.homepage for belcard is: https://gitlab.linphone.org/BC/public/belcard
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.2.12 with grep in /nix/store/jzx5fmvk7anv9kgagpiy3yzcrrfvzsns-belcard-5.2.12
found 5.2.12 in filename of file in /nix/store/jzx5fmvk7anv9kgagpiy3yzcrrfvzsns-belcard-5.2.12

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
belcard
liblinphone
linphone

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/jzx5fmvk7anv9kgagpiy3yzcrrfvzsns-belcard-5.2.12 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A belcard https://github.com/r-ryantm/nixpkgs/archive/1e0b7ce9f4c7d700681ef67adba5313b3dac3bfc.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/jzx5fmvk7anv9kgagpiy3yzcrrfvzsns-belcard-5.2.12
ls -la /nix/store/jzx5fmvk7anv9kgagpiy3yzcrrfvzsns-belcard-5.2.12/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

belcard
liblinphone
linphone

Maintainer pings
cc @jluttine for testing.

@ofborg build belcard liblinphone linphone


MEDICAL OVERVIEW

From a brief playtest of SS14:
System lacks the following:

Surgery
Virology
Limbs/Limb damage

System has the following:

Basic medical treatment (packs etc.)
Chemistry/Chemicals
The three damage types

The three damage types

brute, burn and tox?
what happened to o2, clone and holo damage?

The three damage types

brute, burn and tox? what happened to o2, clone and holo damage?

Having actually delved into the code there's a lot more damage types in 14, viewable in Resources\Prototypes\Damage\types,yml
Damage due to being unable to breathe.
Represents not enough oxygen (or equivalent) getting to the blood.
Usually healed automatically if entity can breathe

type: damageType
id: Asphyxiation
name: damage-type-asphyxiation
armorCoefficientPrice: 5
armorFlatPrice: 50

Damage representing not having enough blood.
Represents there not enough blood to supply oxygen (or equivalent).

type: damageType
id: Bloodloss
name: damage-type-bloodloss
armorCoefficientPrice: 5
armorFlatPrice: 50

type: damageType
id: Blunt
name: damage-type-blunt
armorCoefficientPrice: 2
armorFlatPrice: 10

type: damageType
id: Cellular
name: damage-type-cellular
armorCoefficientPrice: 5
armorFlatPrice: 30

type: damageType
id: Caustic
name: damage-type-caustic
armorCoefficientPrice: 5
armorFlatPrice: 30

type: damageType
id: Cold
name: damage-type-cold
armorCoefficientPrice: 2.5
armorFlatPrice: 20

type: damageType
id: Heat
name: damage-type-heat
armorCoefficientPrice: 2.5
armorFlatPrice: 20

type: damageType
id: Piercing
name: damage-type-piercing
armorCoefficientPrice: 2
armorFlatPrice: 10

Poison damage. Generally caused by various reagents being metabolised.

type: damageType
id: Poison
name: damage-type-poison
armorCoefficientPrice: 10
armorFlatPrice: 60

type: damageType
id: Radiation
name: damage-type-radiation
armorCoefficientPrice: 2.5
armorFlatPrice: 16

type: damageType
id: Shock
name: damage-type-shock
armorCoefficientPrice: 2.5
armorFlatPrice: 20

type: damageType
id: Slash
name: damage-type-slash
armorCoefficientPrice: 2
armorFlatPrice: 10

Damage represent structures internal integrity.
Exclusive for structures such as walls, airlocks and others.

type: damageType
id: Structural
name: damage-type-structural
armorCoefficientPrice: 1
armorFlatPrice: 1

Metaphysical damage. Damage represents supernatural injuries that emphasize the fantasy elements in the game

type: damageType
id: Holy
name: damage-type-holy
armorCoefficientPrice: 1
armorFlatPrice: 1


*: update rust-toolchain

What is changed and how it works?

Issue Number: Close #15581
What's Changed:
This PR update the rust-toolchain to nightly-2023-08-15 and fix most clippy error and warnings. There are still some clippy warnings that are not fixed either because it is false positive or hard to fix.

Update rust-toolchain to nightly-2023-08-15 and fix build&clippy errors

Related changes

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

Check List
Tests

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

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note
None

/merge

/test

/test

/merge


Feat usersys

This PR give a sample user system implementation.
It provide a new env config to enabled the user system, default to disabled
It provide a basic structure of login and logout.
Data is segregated by username
It provide a sample implementation of the login and logout logic.
It is not a production level code, It's just a sample for developer

will, I'm sorry that I cannot submit this PR based on master, since it's tooooo far in my branch.
Actually it's only one commit based on feat-resubmit #55 :
feat: add sample multi-user support
Once the feat-resubmit is merged, I will rebase this brance and clean the commit

@wtlyu I've been looking at implementing users for a while but never got around to it... would love to give this a try.

will back to this once #55  finished

@danny-avila Code cleaned based on the latest master

Well I have to say I didn't get what's your concern. Maybe everything goes ok on my mac hhhh


Use relative url when showing forked from

Addresses #2588
Will show something like forked from joshfng/gogs instead of forked from subpath/joshfng/gogs

@Unknwon updated :)

@Unknwon you're right I changed the wrong link. Updated.

Thanks! One last thing... PR should go to develop branch... :sweat:

Doh! I'll close and reopen to develop


Updated to include MFA statement

Addition looks accurate.  Please proceed.

Copy review @nenonix @JohanFreelancer9 is required  for this one! Thanks.


Debugger improvements for 1.4 release

[ ] Support for showing bytecode while stepping (or at least show current position in bytecode dialog).
[ ] Minimal regression testing through JSON proxy?
[ ] Halt on throw #286

Have to postpone this to 1.4 to make 1.3 release.

For the regression testing, I'm not convinced using the JSON proxy for it is a good solution as it adds an additional layer of abstraction between the testcasees and Duktape.  It might be better to use the raw binary protocol for testing.

I agree it'd be better to use the binary protocol directly.
The advantage of using JSON would be that it'd be much easier to write test cases because expect strings and such would be more human readable. The test driver could also in some cases just be an expect script. So while JSON might be technically a bit less direct, it might provide more test coverage for a given effort.
But for the longer term, a debug client test driver will be needed and it should talk binary directly, I agree.

I would actually really enjoy the ability to step through bytecode, it would be useful for lower-level debugging or cases where the client can't locate the original source.

I agree, it'd be nice to do that. Also the web UI should show bytecode and ordinary code side by side (it doesn't need to align perfectly but roughly at least).
Opcode stepping shouldn't be too hard to implement, but there are some small details to iron out there. For example, should there be both PC and line oriented breakpoints? Should the stepping mode (PC vs. line) be an actual stateful mode, or should there be separate commands to StepIntoOpcode, StepOverOpcode, etc?

I like separate commands a bit more, I think it would allow the client side to more easily switch modes, for example you could start out stepping by line, and then "drill down" and step right into the bytecode without breaking stride.
Plus the current protocol is mostly stateless right now, so adding different states to it might be confusing.
Not sure what to do about breakpoints though.

Closing this as the identified issues have been implemented along with additional features in pulls not referenced here. Moving the debugger regression test into a separate issue.


add getter to access OpenSearchServer\Document\Document fields

It would be great to have fields accessor in OpenSearchServer\Document\Document.
We need this to inspect document content while processing exceptions (and to save document unique field for future processing, for example)
No way to access the "fields" protected property for now.
Regards

Something like this :
	public function getField($fieldName) {
		if(empty($fieldName)) {
			throw new \InvalidArgumentException('Please provide a fieldname');
		}
		$values = array();
		array_map( function ($f) use (&$values, $fieldName) {
			if ( $f['name']===$fieldName) {
				array_push($values, $f["value"]);
			}
		}, $this->fields);
		return $values;
	}

Hi,
Thank you, I added some code in class Document (I used a foreach instead of array_map).
Alexandre


✨ validated() method

✨ validated() method
Fixes #307
Description
This PR adds two methods to Validator's prototype; validated() and _onlyInputWithRules(). Inspired from Laravel's validation concepts.
validated() method will retrieve the input data without the attributes not defined in rules provided. This helps to extract only valid dataset from input and filter out unnecessary or additional attributes from input.
While validated() throws an error if the validation fails, _onlyInputWithRules() does the pure job to filter out non-listed-in-rules attributes. validated() method relies on _onyInputWithRules() method under the hood.
Type of change
[x] Documentation update
[x] New feature

Improving to handle nested rules...

@mikeerickson Just pushed the fix for _onlyInputWithRules function to handle nested rules. Please review.


XML report merging doesn't work without renaming reports to detekt.xml

Expected Behavior
XML Report merging should work out of the box when following the examples in the documentation.
Observed Behavior
Report merging fails silently for android modules ( and maybe kotlin libraries? )  because it expects all xml reports to be named detekt.xml, while by default they are named   debug.xml, main.xml, etc.
The name seems to be hardcoded in:  io.gitlab.arturbosch.detekt.Detekt#getTargetFileProvider
Steps to Reproduce

Unzip the attached Repro Project
run ./repro.sh
Notice that there is nothing under $rootProject/build/reports/detekt

Your Environment

Version of detekt used: 1.18.1
Version of Gradle used (if applicable): 7.2
Operating System and version: MacOS 11.5.1

1. Unzip the attached [Repro Project](https://github.com/detekt/detekt/files/7365640/detekt-report-merge-repro-project.zip)

The link is broken so I can't really say what's going on.
How are you configuring the reports? Can I ask you to try the latest -SNAPSHOT and follow the documentation suggested in this PR? https://github.com/detekt/detekt/pull/4064
In the upcoming version of Detekt we fixed how reports are configured therefore this issue might be already solved.

This was closed in error... It's not yet fixed, only a test related to it was fixed.

I wanted to see if this is fixable without switching to cross-project publication and here's what I found:
Unless it is intentional, there is a problem with implementation of getTargetFileProvider. It returns RegularFileProperty that has fixed value, so it is not updated when report's outputLocation changes. This explains why the order of the calls mentioned before matters.
Correct implementation would return property that tracks report's outputLocation, but that is not easy. If (for simplicity) we replace method body with just return report.outputLocation we would get the following error when running gradle:
* What went wrong:
Could not determine the dependencies of task ':detektReportMergeSarif'.
> Property 'outputLocation' is declared as an output property of DetektReport(type='SARIF', required=property 'required', outputLocation=property 'outputLocation') (type DetektReport) but does not have a task associated with it.

This is a known problem in gradle and it is partially fixed, but I still could not get the code to work. However I found a workaround:
private fun getTargetFileProvider(
        report: DetektReport
    ): RegularFileProperty {
        val provider = objects.fileProperty()
        val temp = objects.fileProperty()
	temp.set(File("")) // set value, so `map` will be executed
	provider.fileProvider(temp.map {
            val isEnabled = report.required.getOrElse(DetektExtension.DEFAULT_REPORT_ENABLED_VALUE)
            if (isEnabled) {
	        report.outputLocation.asFile.orNull ?: reportsDir.getOrElse(defaultReportsDir.asFile)
                    .resolve("${DetektReport.DEFAULT_FILENAME}.${report.type.extension}")
            } else {
                null
	    }
	})
        return provider
    }

Tested it with my Android project and it works fine.
Of course after I did all of that I found an even simpler workaround: add def reportMerge =  to the start of the line that registers merge task. It changes reportMerge.configure to be a call on task provider instead of task, thus delaying configuration enough for the correct directory to be set.

I haven't had time to make changes to docs or plugin but the real issue here is that there's a way to reliably share artifacts between Gradle projects, similar to how we do it within the detekt project for JaCoCo, and it's not being recommended in the detekt docs for XML report merging.
See here for more: https://docs.gradle.org/7.2/userguide/cross_project_publications.html

I tried to set up cross project artifact sharing and almost got it to work in this project: https://gist.github.com/RSBat/5c14485aec4fdf8a03173aeffd0f978a
However I can't get it to merge reports when any of detekt tasks fail. I know it is possible because jacoco plugin does this even when tests fail. I've tried to check jacoco's implementation, but I couldn't find anything that would explain the difference in behaviour.
@3flex since you mentioned it first, maybe you have some ideas?

I know this is an issue however I haven't looked at it yet, but may do so at some point when time and motivation allows.
We're of course open to PRs.

Figured it out! The reason jacoco plugin works is that test tasks throw VerificationException on failure. This allows aggregation task to still run even though test tasks failed (but only if --continue is used). Changing detekt plugin to throw the same exception combined with the config I posted before makes everything work. Unfortunately VerificationException is an incubating feature added in 7.4 and is not documented anywhere. The only info I could find was the PR that added it https://github.com/gradle/gradle/pull/18837.
To sum up:

The issue is caused by #4856 - report location properties are not actually lazy and this creates dependencies on configuration order.
The only workaround that worked for me was to rename reports to detekt.sarif
For report aggregation via artifact sharing to work properly detekt tasks have to throw VerificationException on failure. This would require bumping minimum gradle version to 7.4

I tried to set up cross project artifact sharing and almost got it to work in this project: ?> https://gist.github.com/RSBat/5c14485aec4fdf8a03173aeffd0f978a

I converted to groovy version but it did not work on my multiple modules android project. Even the command ./gradlew detekt reportMerge --continue was run successfully, but no output file merge.sarif found.
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.22.0"
    }
}

import io.gitlab.arturbosch.detekt.Detekt
import io.gitlab.arturbosch.detekt.report.ReportMergeTask

configurations {
    create("reportMergeInputs") {
        setCanBeResolved(true)
        setCanBeConsumed(false)
        setVisible(false)

        attributes.attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.VERIFICATION))
        attributes.attribute(VerificationType.VERIFICATION_TYPE_ATTRIBUTE, objects.named(VerificationType, "detekt-report"))
    }
}

tasks.register("reportMerge", ReportMergeTask) {
    input.from(configurations.getByName("reportMergeInputs").incoming.artifacts.artifactFiles)
    output = rootProject.layout.buildDirectory.file("reports/detekt/merge.sarif")
}

allprojects {
    apply plugin: "io.gitlab.arturbosch.detekt"
    detekt {
        config = files("$rootDir/config/detekt/detekt.yml")
    }
    def subproject = this
    def configurationName = subproject.name + "DetektOutput"
    subproject.configurations {
        create(configurationName) {
            println(subproject.name)
            println(configurationName)
            setCanBeResolved(false)
            setCanBeConsumed(true)
            setVisible(false)

            attributes.attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.VERIFICATION))
            attributes.attribute(VerificationType.VERIFICATION_TYPE_ATTRIBUTE, objects.named(VerificationType, "detekt-report"))
        }
    }
    tasks.withType(Detekt) { a ->
        jvmTarget = "1.8"
        reports {
            xml.required.set(true)
            html.required.set(true)
            txt.required.set(true)
            sarif.required.set(true)
            md.required.set(true)
        }
        basePath = rootProject.projectDir.absolutePath
        subproject.afterEvaluate {
            subproject.configurations.getByName(configurationName).outgoing {
                artifact(task.sarifReportFile) {
                    setType(ArtifactTypeDefinition.BINARY_DATA_TYPE)
                    builtBy(task) // task will be executed if we need its report
                }
            }
        }
    }
}

This issue is stale because it has been open 90 days with no activity. Please comment or this will be closed in 7 days.

Please review #6964 which should fix this.
@tabasavr thank you for your investigation, the proposed PR is taking advantage of much of the work you did.


replace local adjustment script with external

What does this PR do?
let's keep these updates at one place: https://github.com/Lightning-AI/utilities/pull/132

Before submitting

[ ] Was this discussed/agreed via a Github issue? (no need for typos and docs improvements)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure to update the docs?
[x] Did you write any new necessary tests?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.

Did you have fun?
Make sure you had fun coding 🙃

The failing docs seem strange and unrelated...