Can't build for IOS after installing plugin

Hello guys!
Environment
Device information:  Iphone Xr Emulator ( IOS 12.2 )
Flutter version:  1.12.16-pre.35
Dart version Dart 2.7.0
Xcode version: Xcode 10.2.1 (Build version 10E1001)
Description
On android all works fine, but when i trying to run app on IOS emulator, everything crashes.
Steps to reproduce

flutter create -i swift my_app
cd my_app
Add flutter_inappwebview:  ^2.0.0 in pubspec.yaml
Try runing flutter on IOS emulator.

How i can fix that? Maybe, i specified incorrect version of any sdk somewhere?
Stacktrace/Logcat
Launching lib/main.dart on iPhone Xʀ in debug mode...
Xcode build done.                                           22,0s
Failed to build iOS app
Error output from Xcode build:
↳
** BUILD FAILED **
Xcode's output:
↳
=== BUILD TARGET flutter_inappwebview OF PROJECT Pods WITH CONFIGURATION Debug ===
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/FlutterWebViewController.swift:31:17: warning: result of call to 'parse(options:)' is unused
options.parse(options: initialOptions)
^    ~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/FlutterWebViewController.swift:87:46: warning: conditional downcast from 'String?' to 'String' does nothing
let data = (initialData!["data"] as? String)!
~^~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/FlutterWebViewController.swift:88:54: warning: conditional downcast from 'String?' to 'String' does nothing
let mimeType = (initialData!["mimeType"] as? String)!
~^~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/FlutterWebViewController.swift:89:54: warning: conditional downcast from 'String?' to 'String' does nothing
let encoding = (initialData!["encoding"] as? String)!
~^~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/FlutterWebViewController.swift:90:52: warning: conditional downcast from 'String?' to 'String' does nothing
let baseUrl = (initialData!["baseUrl"] as? String)!
^~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/FlutterWebViewController.swift:252:41: warning: result of call to 'parse(options:)' is unused
inAppWebViewOptions.parse(options: inAppWebViewOptionsMap)
^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:206:80: warning: expression implicitly coerced from 'UIView?' to 'Any'
containerWebView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:206:85: note: provide a default value to avoid this warning
containerWebView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
~^~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:206:85: note: force-unwrap the value to avoid this warning
containerWebView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
~^~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:206:85: note: explicitly cast to 'Any' with 'as Any' to silence this warning
containerWebView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
~^~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:207:77: warning: expression implicitly coerced from 'UIView?' to 'Any'
containerWebView_TopFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
^~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:207:82: note: provide a default value to avoid this warning
containerWebView_TopFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
~^~~~~~~~~~~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:207:82: note: force-unwrap the value to avoid this warning
containerWebView_TopFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
~^~~~~~~~~~~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:207:82: note: explicitly cast to 'Any' with 'as Any' to silence this warning
containerWebView_TopFullScreenConstraint = NSLayoutConstraint(item: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.view, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
~^~~~~~~~~~~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:210:47: warning: expression implicitly coerced from 'InAppWebView?' to 'Any'
let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: containerWebView, attribute: .height, multiplier: 1, constant: 0)
^~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:210:47: note: provide a default value to avoid this warning
let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: containerWebView, attribute: .height, multiplier: 1, constant: 0)
^~~~~~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:210:47: note: force-unwrap the value to avoid this warning
let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: containerWebView, attribute: .height, multiplier: 1, constant: 0)
^~~~~~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:210:47: note: explicitly cast to 'Any' with 'as Any' to silence this warning
let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: containerWebView, attribute: .height, multiplier: 1, constant: 0)
^~~~~~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:211:46: warning: expression implicitly coerced from 'InAppWebView?' to 'Any'
let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: containerWebView, attribute: .width, multiplier: 1, constant: 0)
^~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:211:46: note: provide a default value to avoid this warning
let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: containerWebView, attribute: .width, multiplier: 1, constant: 0)
^~~~~~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:211:46: note: force-unwrap the value to avoid this warning
let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: containerWebView, attribute: .width, multiplier: 1, constant: 0)
^~~~~~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:211:46: note: explicitly cast to 'Any' with 'as Any' to silence this warning
let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: containerWebView, attribute: .width, multiplier: 1, constant: 0)
^~~~~~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:212:55: warning: expression implicitly coerced from 'InAppWebView?' to 'Any'
let leftConstraint = NSLayoutConstraint(item: webView, attribute: .leftMargin, relatedBy: .equal, toItem: containerWebView, attribute: .leftMargin, multiplier: 1, constant: 0)
^~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:212:55: note: provide a default value to avoid this warning
let leftConstraint = NSLayoutConstraint(item: webView, attribute: .leftMargin, relatedBy: .equal, toItem: containerWebView, attribute: .leftMargin, multiplier: 1, constant: 0)
^~~~~~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:212:55: note: force-unwrap the value to avoid this warning
let leftConstraint = NSLayoutConstraint(item: webView, attribute: .leftMargin, relatedBy: .equal, toItem: containerWebView, attribute: .leftMargin, multiplier: 1, constant: 0)
^~~~~~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:212:55: note: explicitly cast to 'Any' with 'as Any' to silence this warning
let leftConstraint = NSLayoutConstraint(item: webView, attribute: .leftMargin, relatedBy: .equal, toItem: containerWebView, attribute: .leftMargin, multiplier: 1, constant: 0)
^~~~~~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:213:56: warning: expression implicitly coerced from 'InAppWebView?' to 'Any'
let rightConstraint = NSLayoutConstraint(item: webView, attribute: .rightMargin, relatedBy: .equal, toItem: containerWebView, attribute: .rightMargin, multiplier: 1, constant: 0)
^~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:213:56: note: provide a default value to avoid this warning
let rightConstraint = NSLayoutConstraint(item: webView, attribute: .rightMargin, relatedBy: .equal, toItem: containerWebView, attribute: .rightMargin, multiplier: 1, constant: 0)
^~~~~~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:213:56: note: force-unwrap the value to avoid this warning
let rightConstraint = NSLayoutConstraint(item: webView, attribute: .rightMargin, relatedBy: .equal, toItem: containerWebView, attribute: .rightMargin, multiplier: 1, constant: 0)
^~~~~~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:213:56: note: explicitly cast to 'Any' with 'as Any' to silence this warning
let rightConstraint = NSLayoutConstraint(item: webView, attribute: .rightMargin, relatedBy: .equal, toItem: containerWebView, attribute: .rightMargin, multiplier: 1, constant: 0)
^~~~~~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:214:56: warning: expression implicitly coerced from 'InAppWebView?' to 'Any'
let bottomContraint = NSLayoutConstraint(item: webView, attribute: .bottomMargin, relatedBy: .equal, toItem: containerWebView, attribute: .bottomMargin, multiplier: 1, constant: 0)
^~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:214:56: note: provide a default value to avoid this warning
let bottomContraint = NSLayoutConstraint(item: webView, attribute: .bottomMargin, relatedBy: .equal, toItem: containerWebView, attribute: .bottomMargin, multiplier: 1, constant: 0)
^~~~~~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:214:56: note: force-unwrap the value to avoid this warning
let bottomContraint = NSLayoutConstraint(item: webView, attribute: .bottomMargin, relatedBy: .equal, toItem: containerWebView, attribute: .bottomMargin, multiplier: 1, constant: 0)
^~~~~~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:214:56: note: explicitly cast to 'Any' with 'as Any' to silence this warning
let bottomContraint = NSLayoutConstraint(item: webView, attribute: .bottomMargin, relatedBy: .equal, toItem: containerWebView, attribute: .bottomMargin, multiplier: 1, constant: 0)
^~~~~~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:217:71: warning: expression implicitly coerced from 'InAppWebView?' to 'Any'
webView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
^~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:217:76: note: provide a default value to avoid this warning
webView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
~^~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:217:76: note: force-unwrap the value to avoid this warning
webView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
~^~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:217:76: note: explicitly cast to 'Any' with 'as Any' to silence this warning
webView_BottomFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
~^~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:218:68: warning: expression implicitly coerced from 'InAppWebView?' to 'Any'
webView_TopFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
^~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:218:73: note: provide a default value to avoid this warning
webView_TopFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
~^~~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:218:73: note: force-unwrap the value to avoid this warning
webView_TopFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
~^~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:218:73: note: explicitly cast to 'Any' with 'as Any' to silence this warning
webView_TopFullScreenConstraint = NSLayoutConstraint(item: self.webView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.containerWebView, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 0)
~^~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppBrowserWebViewController.swift:402:32: warning: result of call to 'parse(options:)' is unused
newInAppWebViewOptions.parse(options: newOptionsMap)
^    ~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:838:27: error: value of type 'WKPreferences' has no member 'isFraudulentWebsiteWarningEnabled'
configuration.preferences.isFraudulentWebsiteWarningEnabled = (options?.isFraudulentWebsiteWarningEnabled)!
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:840:80: error: use of unresolved identifier 'WKWebpagePreferences'
configuration.defaultWebpagePreferences.preferredContentMode = WKWebpagePreferences.ContentMode(rawValue: (options?.preferredContentMode)!)!
^~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1133:27: error: value of type 'WKPreferences' has no member 'isFraudulentWebsiteWarningEnabled'
configuration.preferences.isFraudulentWebsiteWarningEnabled = (options?.isFraudulentWebsiteWarningEnabled)!
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1134:76: error: use of unresolved identifier 'WKWebpagePreferences'
configuration.defaultWebpagePreferences.preferredContentMode = WKWebpagePreferences.ContentMode(rawValue: (options?.preferredContentMode)!)!
^~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1421:27: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1421:53: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1421:53: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1421:53: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1490:27: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1490:53: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1490:53: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1490:53: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1525:27: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1525:53: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1525:53: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1525:53: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1611:23: warning: expression implicitly coerced from 'CFString?' to 'Any'
print(SecCopyErrorMessageString(securityError,nil))
^~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1611:23: note: provide a default value to avoid this warning
print(SecCopyErrorMessageString(securityError,nil))
^~
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1611:23: note: force-unwrap the value to avoid this warning
print(SecCopyErrorMessageString(securityError,nil))
^~~~~~~~~~~~
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1611:23: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print(SecCopyErrorMessageString(securityError,nil))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1637:23: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1637:49: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~~~~~~~~~~~~~^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1637:49: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1637:49: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1695:23: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1695:49: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~~~~~~~~~~~~~^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1695:49: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1695:49: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1767:23: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1767:49: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~~~~~~~~~~~~~^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1767:49: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:1767:49: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:2068:27: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:2068:53: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~~~^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:2068:53: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/InAppWebView.swift:2068:53: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:61:13: warning: result of 'MyCookieManager' initializer is unused
MyCookieManager(registrar: registrar)
^              ~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:66:9: warning: result of 'CredentialDatabase' initializer is unused
CredentialDatabase(registrar: registrar)
^                 ~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:229:45: warning: result of call to 'parse(options:)' is unused
inAppBrowserOptions.parse(options: inAppBrowserOptionsMap)
^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:379:31: warning: result of call to 'parse(options:)' is unused
safariOptions.parse(options: options)
^    ~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:417:32: warning: result of call to 'parse(options:)' is unused
browserOptions.parse(options: optionsFallback!)
^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:420:32: warning: result of call to 'parse(options:)' is unused
webViewOptions.parse(options: optionsFallback!)
^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:425:28: warning: result of call to 'parse(options:)' is unused
browserOptions.parse(options: options)
^    ~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:428:28: warning: result of call to 'parse(options:)' is unused
webViewOptions.parse(options: options)
^    ~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:434:94: warning: forced cast from 'InAppBrowserWebViewController??' to 'InAppBrowserWebViewController' only unwraps optionals; did you mean to use '!!'?
let webViewController: InAppBrowserWebViewController = self.webViewControllers[uuid] as! InAppBrowserWebViewController
^
!!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:493:24: warning: result of call to 'parse(options:)' is unused
browserOptions.parse(options: options)
^    ~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:496:24: warning: result of call to 'parse(options:)' is unused
webViewOptions.parse(options: options)
^    ~~~~~~~~~~~~~~~~~~
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:501:94: warning: forced cast from 'InAppBrowserWebViewController??' to 'InAppBrowserWebViewController' only unwraps optionals; did you mean to use '!!'?
let webViewController: InAppBrowserWebViewController = self.webViewControllers[uuid] as! InAppBrowserWebViewController
^
!!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:468:13: warning: variable 'uuid' was never mutated; consider changing to 'let' constant
var uuid = uuid
~~~ ^
let
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/SwiftFlutterPlugin.swift:696:16: warning: value 'webViewController' was defined but never used; consider replacing with boolean test
if let webViewController = self.webViewControllers[uuid] {
^~
!= nil
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:22:27: warning: expression implicitly coerced from 'String?' to 'Any'
print((result as! FlutterError).message)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:22:53: note: provide a default value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~~~~~~~~~~~~~^
?? <#default value#>
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:22:53: note: force-unwrap the value to avoid this warning
print((result as! FlutterError).message)
~~~~~~~~~~~~~~~~~~~~^
!
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:22:53: note: explicitly cast to 'Any' with 'as Any' to silence this warning
print((result as! FlutterError).message)
~~~~~~~~~~~~~~~~~~~~^
as Any
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:29:96: warning: treating a forced downcast to 'String' as optional will never produce 'nil'
let urlResponse = URLResponse(url: url, mimeType: json["content-type"] as! String, expectedContentLength: -1, textEncodingName: json["content-encoding"] as! String)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:29:98: note: use 'as?' to perform a conditional downcast to 'String'
let urlResponse = URLResponse(url: url, mimeType: json["content-type"] as! String, expectedContentLength: -1, textEncodingName: json["content-encoding"] as! String)
^
?
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:29:75: note: add parentheses around the cast to silence this warning
let urlResponse = URLResponse(url: url, mimeType: json["content-type"] as! String, expectedContentLength: -1, textEncodingName: json["content-encoding"] as! String)
^
(                              )
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:29:178: warning: treating a forced downcast to 'String' as optional will never produce 'nil'
let urlResponse = URLResponse(url: url, mimeType: json["content-type"] as! String, expectedContentLength: -1, textEncodingName: json["content-encoding"] as! String)
^
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:29:180: note: use 'as?' to perform a conditional downcast to 'String'
let urlResponse = URLResponse(url: url, mimeType: json["content-type"] as! String, expectedContentLength: -1, textEncodingName: json["content-encoding"] as! String)
^
?
/Users/rrcf/development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-2.0.1/ios/Classes/CustomeSchemeHandler.swift:29:153: note: add parentheses around the cast to silence this warning
let urlResponse = URLResponse(url: url, mimeType: json["content-type"] as! String, expectedContentLength: -1, textEncodingName: json["content-encoding"] as! String)
^
(                                  )
Could not build the application for the simulator.
Error launching application on iPhone Xʀ.
Exited (sigterm)

That's because your Xcode version is too old (Xcode 10.2.1).
WebView options such as isFraudulentWebsiteWarningEnabled requires a higher Xcode version.
Install the latest version of Xcode and it should work!

That's because your Xcode version is too old (Xcode 10.2.1).
WebView options such as isFraudulentWebsiteWarningEnabled requires a higher Xcode version.
Install the latest version (at least 11) of Xcode and it should work!

Yep, after update Xcode, everything work fine! Thank you so much!

@pichillilorenzo if I were to create a forked version that would work on Xcode 10.2, which pieces of code would I have to disable to get it working?
I can't use Xcode 11 due to Catalina and Mojave not supporting my graphics cards.
It seems like almost the whole repo is usable on Xcode 10 besides a few specific options such as isFraudulentWebsiteWarningEnabled


Aider BUG (Trying to use Openai API all the time)

Issue
I user VertexAI api and when using Aider, I get all the time this problem that makes the software unusable:
"These steps will set up Git for your project and create an initial commit with all your files, excluding those specified in the .gitignore file.
Is there anything specific you'd like to do next with your Git setup or project?
Tokens: 44,461 sent, 315 received. Cost: $0.14 request, $2.25 session.
Committing .gitignore before applying edits.
Exception while updating files:
litellm.AuthenticationError: AuthenticationError: OpenAIException - Traceback (most recent call last):
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 1032, in completion
raise e
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 927, in completion
openai_client = self._get_openai_client(
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 743, in _get_openai_client
_new_client = openai(
File "/home/soporte/.local/lib/python3.10/site-packages/openai/_client.py", line 105, in init
raise openaiError(
openai.openaiError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
Traceback (most recent call last):
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 1032, in completion
raise e
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 927, in completion
openai_client = self._get_openai_client(
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 743, in _get_openai_client
_new_client = OpenAI(
File "/home/soporte/.local/lib/python3.10/site-packages/openai/_client.py", line 105, in init
raise OpenAIError(
openai.OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/main.py", line 1371, in completion
raise e
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/main.py", line 1344, in completion
response = openai_chat_completions.completion(
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 1040, in completion
raise OpenAIError(status_code=500, message=traceback.format_exc())
litellm.llms.openai.OpenAIError: Traceback (most recent call last):
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 1032, in completion
raise e
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 927, in completion
openai_client = self._get_openai_client(
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 743, in _get_openai_client
_new_client = OpenAI(
File "/home/soporte/.local/lib/python3.10/site-packages/openai/_client.py", line 105, in init
raise OpenAIError(
openai.OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/soporte/.local/lib/python3.10/site-packages/aider/coders/base_coder.py", line 1496, in apply_updates
edited = self.update_files()
File "/home/soporte/.local/lib/python3.10/site-packages/aider/coders/base_coder.py", line 1490, in update_files
edits = self.prepare_to_edit(edits)
File "/home/soporte/.local/lib/python3.10/site-packages/aider/coders/base_coder.py", line 1483, in prepare_to_edit
self.dirty_commit()
File "/home/soporte/.local/lib/python3.10/site-packages/aider/coders/base_coder.py", line 1599, in dirty_commit
self.repo.commit(fnames=self.need_commit_before_edits)
File "/home/soporte/.local/lib/python3.10/site-packages/aider/repo.py", line 99, in commit
commit_message = self.get_commit_message(diffs, context)
File "/home/soporte/.local/lib/python3.10/site-packages/aider/repo.py", line 177, in get_commit_message
commit_message = simple_send_with_retries(model.name, messages)
File "/home/soporte/.local/lib/python3.10/site-packages/aider/sendchat.py", line 113, in simple_send_with_retries
_hash, response = send_with_retries(
File "/home/soporte/.local/lib/python3.10/site-packages/aider/sendchat.py", line 69, in wrapper
return decorated_func(*args, **kwargs)
File "/home/soporte/.local/lib/python3.10/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
File "/home/soporte/.local/lib/python3.10/site-packages/aider/sendchat.py", line 103, in send_with_retries
res = litellm.completion(**kwargs)
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/utils.py", line 1028, in wrapper
raise e
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/utils.py", line 908, in wrapper
result = original_function(*args, **kwargs)
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/main.py", line 2760, in completion
raise exception_type(
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/utils.py", line 8139, in exception_type
raise e
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/utils.py", line 6459, in exception_type
raise AuthenticationError(
litellm.exceptions.AuthenticationError: litellm.AuthenticationError: AuthenticationError: OpenAIException - Traceback (most recent call last):
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 1032, in completion
raise e
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 927, in completion
openai_client = self._get_openai_client(
File "/home/soporte/.local/lib/python3.10/site-packages/litellm/llms/openai.py", line 743, in _get_openai_client
_new_client = openai(
File "/home/soporte/.local/lib/python3.10/site-packages/openai/_client.py", line 105, in init
raise openaiError(
openai.openaiError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable"
Can someone help? I try to use Aider, but when working with it, it all the times throw me these errors.
Version and model info
Aider v0.48.1
Models: vertex_ai/claude-3-5-sonnet@20240620 with diff edit format, weak model vertex_ai/claude-3-haiku@20240307
Git repo: .git with 10 files
Repo-map: using 1024 tokens

Thanks for trying aider and filing this issue.
Have you placed a valid key in the OPENAI_API_KEY environment variable?

Why should I do that if I am not using OpenAI? I use VertexAI Claude3.5 sonnet, and I already set up the project id and location. I can run Aider with VertexAI, but when it tries to edit a file or create a file, I get those kind of errors.

El 9 ago 2024, a las 14:59, paul-gauthier @.***> escribió:
Thanks for trying aider and filing this issue.
Have you placed a valid key in the OPENAI_API_KEY environment variable?
—
Reply to this email directly, view it on GitHub https://github.com/paul-gauthier/aider/issues/1044#issuecomment-2277891679, or unsubscribe https://github.com/notifications/unsubscribe-auth/BKM6R5QYZCKNYKJZ3POVNCLZQS4M7AVCNFSM6AAAAABMIMNLUSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZXHA4TCNRXHE.
You are receiving this because you authored the thread.

Can you share all the announce lines that aider prints when you launch it?

@xavitg
Do you have your .aider.conf.yml file created wtih
model: vertex_ai/claude-3-5-sonnet@20240620

After that, you have to run Aider using
aider --config .aider.conf.yml
It works for me no problem

Hello,
So I have to edit manually that file and then run that command in order to get it working properly?
Thank you

El 9 ago 2024, a las 18:20, sholub89 @.***> escribió:
@xavitg https://github.com/xavitg
Do you have your .aider.conf.yml file created wtih
model: @.***
After that, you have to run Aider using
aider --config .aider.conf.yml
It works for me no problem
—
Reply to this email directly, view it on GitHub https://github.com/paul-gauthier/aider/issues/1044#issuecomment-2278307467, or unsubscribe https://github.com/notifications/unsubscribe-auth/BKM6R5SJ3LOE2HMMKLXCZRTZQTT6RAVCNFSM6AAAAABMIMNLUSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYGMYDONBWG4.
You are receiving this because you were mentioned.

@xavitg , maybe there is a better way, but this is how I have it setup and it works perfectly.
Please give it a try

@xavitg Can you share all the announce lines that aider prints when you launch it? And the command line with args that you use to run it?

Like this:
$ aider
Aider v0.48.2-dev
Models: claude-3-5-sonnet-20240620 with diff edit format, weak model
claude-3-haiku-20240307
Git repo: .git with 303 files
Repo-map: using 1024 tokens
Use /help <question> for help, run "aider --help" to see cmd line args
─────────────────────────────────────────────────────────────────────────────
>

Like this:
$ aider
Aider v0.48.2-dev
Models: claude-3-5-sonnet-20240620 with diff edit format, weak model
claude-3-haiku-20240307
Git repo: .git with 303 files
Repo-map: using 1024 tokens
Use /help <question> for help, run "aider --help" to see cmd line args
─────────────────────────────────────────────────────────────────────────────
>

soporte@cloudshell:~/BI-Improved (mindful-p)$ aider
Model gpt-4o: Missing these environment variables:

OPENAI_API_KEY
For more info, see: https://aider.chat/docs/llms/warnings.html

Model gpt-4o-mini: Missing these environment variables:

OPENAI_API_KEY
For more info, see: https://aider.chat/docs/llms/warnings.html

Aider v0.48.1
Models: gpt-4o with diff edit format, weak model gpt-4o-mini
Git repo: .git with 11 files
Repo-map: using 1024 tokens
VSCode terminal detected, pretty output has been disabled.
Use /help  for help, run "aider --help" to see cmd line args
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

But then, I use: /model vertex_ai/claude-3-5-sonnet@20240620  then I see this:

/model vertex_ai/claude-3-5-sonnet@20240620

Aider v0.48.1
Models: vertex_ai/claude-3-5-sonnet@20240620 with diff edit format, weak model vertex_ai/claude-3-haiku@20240307
Git repo: .git with 11 files
Repo-map: using 1024 tokens
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

aider --config .aider.conf.yml

I am not able to find this.
I installed aider with pip install aider in my root directory without any env.
Its installed here: ~/.local/lib/python3.10/site-packages
But I am not able to find that file, even using the command: find ~ -name ".aider.conf.yml"

@xavitg , this is the file you need to create yourself in the root of the project.
Additionally for Vertex AI to work we had to create .env file with
VERTEXAI_PROJECT="your-project-name"
VERTEXAI_LOCATION="your-region"

This is how you can configure Aider, and we chose to do it that way. let's see what @paul-gauthier  suggests

Ok, so can you try this:
aider --model vertex_ai/claude-3-5-sonnet@20240620

You need to have VERTEXAI_PROJECT, VERTEXAI_LOCATION and GOOGLE_APPLICATION_CREDENTIALS set in your environment or in a .env file to work with vertex. It's one of the most cumbersome providers to use.
I think that should work for you. If not, can you paste the entire output from where you run that command all the way to the error messages?

@xavitg here is a summary of my setup:

create .aider.conf.yml file in the root of your project with that content

model: vertex_ai/claude-3-5-sonnet@20240620

create .env file in the root of your project with that content

VERTEXAI_PROJECT="your-project-name"
VERTEXAI_LOCATION="your-region"

You have to be logged in via gcloud to the project that has Vertex AI
Do:
gcloud auth login

Then to validate you have the right project set do:
gcloud config get-value project

And if you need to change it:
gcloud config set project your-project-name

This is all what should be needed

Ok, so can you try this:
aider --model vertex_ai/claude-3-5-sonnet@20240620

You need to have VERTEXAI_PROJECT, VERTEXAI_LOCATION and GOOGLE_APPLICATION_CREDENTIALS set in your environment or in a .env file to work with vertex. It's one of the most cumbersome providers to use.
I think that should work for you. If not, can you paste the entire output from where you run that command all the way to the error messages?

I already did this, but the same problem.. I am using the google cloud "cloud shell" so I just need to set up a .env file with the project id and location. I did it and then: https://prnt.sc/ji70HceR26WM you can see that by default it tries to use the openai api..

create .aider.conf.yml file in the root of your project with that content

model: vertex_ai/claude-3-5-sonnet@20240620

This is working well! Aleluya.
It’s a bit of a hassle having to use that command instead of just ‘aider’ all the time, but at least it works.
Thank you so much for ur time! @paul-gauthier take a look at this :)

@paul-gauthier  please consider updating the documentation with that, as I see this is quite a popular request.
credit goes to @zxkxyz, I got to know about that from him

I'm going to close this issue for now, but feel free to add a comment here and I will re-open or file a new issue any time.


reward/chosen

Hi!
I am fine-tuning LLaMA3 on the hh-rlhf dataset using SimPo and noticed that the reward/chosen reward is decreasing. Is this reasonable?

I expected the reward/chosen to increase, but since the goal of SimPo is to maximize the difference between reward/chosen and reward/rejected, it is acceptable for reward/chosen to decrease to a certain extent. However, the extent of the decrease in reward/chosen seems a bit large compared to reward/chosen - reward/rejected.

@danqi

Hi,
Yes, this is reasonable. The reward margin should increase but the reward on chosen responses may slightly decrease (and the reward on rejected decreases more rapidly). In general, we don't want the reward on chosen to decrease too much (as that implies the likelihood of chosen responses is decreasing), and you may use a larger beta or a lower learning rate to mitigate the decrease of reward on chosen responses.
Best,
Yu

get it!
Thanks for the quick reply.

Hi,
I used Simpo in my task with qwen2_7B, but the model generated repeated sentences and pre-trained data. The parameters are as follows:
pref_beta: 2.5
simpo_gamma: 1.0
learning_rate: 1.0e-6
num_train_epochs: 3.0

@zhangguoxin1
I think you should be using Qwen2-7B-Instruct rather than Qwen2-7B if you only running PO? Also I'd suggest that you use online data rather offline data that is generated by other models.

Hi @zhangguoxin1
In addition to the suggestions by Mengzhou, you may try the following as well:

decrease the learning rate (we usually start learning rate search around 5e-7)
reduce the number of training epochs (we generally train the model for only one epoch)

Best,
Yu


Output cells not updating in jupyter lab

So I just discovered Jupyterlab cell output issue, and was relieved to see I'm not going insane. I am very reluctantly switching my entire project to a notebook, but hopefully someone who understands what's going on can fix it for jupyter lab. Meanwhile, it would be really great if someone who's responsible for things like this would put a notice in big cheerful letters on the front cover saying "DO NOT TRY THIS IN JUPYTER LAB!" :)
I copied the streamz example from @mrocklin's slides at streamz-walkthrough-to-dataframes.ipynb. When I get to cell 11:
`from tornado import gen
from tornado.ioloop import IOLoop
async def f():
while True:
await gen.sleep(0.100)
record = create_record()
await source.emit(record, asynchronous=True)
IOLoop.current().add_callback(f)`
the output cells update once and are then silent. If I set the log level to "Info," i can see that the function is running continuously in the background and generating data, but this is not reflected in the notebook cells. I have tried this using tornado and threading on Windows 10 and in Ubuntu under WSL, using streamz_dev.yml in each case. Under Windows 10, the cells will occasionally start updating if I run a simple command like threading.enumerate() multiple times, but if I then run a new cell to access the data, visible updating stops again. I have not been able to duplicate this behavior in WSL; there is simply no visible updating, even though it's evident from the log that the function really is running in the background. I also tried putting a progress bar widget in the same function, and it displays and updates perfectly even though there's still no visible data from the stream.
Has anybody gotten this to work on windows or WSL? Has anybody recently run it successfully on a linux machine? What am I doing wrong here?

Have you run
jupyter labextension install @jupyter-widgets/jupyterlab-manager ?
I found that this made the display work, and that without it you get "odd" behaviour; but I am not on Windows.
Sorry for the slow reply here...

OK, I saw your problem too. I find the following code does the right thing (but is not general, it assumes the type being passed). Note I have changed tornado->asyncio for my convenience.
import asyncio
loop = asyncio.get_event_loop()

async def f():
    x = 0
    while True:
        await asyncio.sleep(0.100)
        x += 1
        s.output_ref().outputs = ({'output_type': 'display_data',
  'data': {'text/plain': str(x)},
  'metadata': {}},)

asyncio.run_coroutine_threadsafe(f(), loop)

Thanks very much for tracking this down. I've since moved on to another project, but I'll be revisiting this again in a month or so and I do appreciate the help!


Show datePicker in best position in screen

Resolve issue  #193 , #176

@Kiarash-Z would you consider merging this PR? it's so annoying!

@Kiarash-Z would you consider merging this PR? it's so annoying!

@Kiarash-Z please merge this dude


Add benchmarking/evaluation scripts

As previously discussed I am opening a PR to merge some utilities for evaluating new ES when aiming to add them to algo. There is now a new sub-directory scripts/benchmarks which ports evojax-benchmarks (with reduced dependencies).

Thank you! This benchmark script is very helpful.


How to get the figure in paraview such as Tutorial 1 of 3

I was learning the example following the Tutorial ，
(https://github.com/PMEAL/OpenPNM-Examples/blob/master/Tutorials/getting_started.ipynb)
but I can not get the figure in paraview such as Tutorial 1 of 3,
My figure only can show the network of pores and throats, but the  The connection in the web has been displayed incorrectly;
I want show the diameter of the pores and throats, and the pressure in the pore by color of the pore like the Tutorial 1 of 3;

https://openpnm.readthedocs.io/en/master/getting_started/visualize_in_paraview.html


Skip fetching old etcd machine config when using stacked etcd

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

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

Needs approval from an approver in each of these files:

OWNERS [jiayiwang7]

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

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

Needs approval from an approver in each of these files:

OWNERS [abhinavmpandey08,jiayiwang7]

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

/lgtm


dont edit or crop permalink if valid uri

Just a thought, wouldn't it be better if we'd add a Hook for overriding default permalink/slug generation. I know demands can differ widely in different parts of the world, so it might be a good option to give the possibility to override the default behavior in an implementation.
Regards

Yes, that'd be the best solution, I guess.On 28 Oct 2017 23:07, Håkan Edling<EMAIL_ADDRESS>wrote:Just a thought, wouldn't it be better if we'd add a Hook for overriding default permalink/slug generation. I know demands can differ widely in different parts of the world, so it might be a good option to give the possibility to override the default behavior in an implementation.
Regards
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.

@tidyui Added a Hooks section for the Entities as well


Open Lamprey to configuration

This makes Lamprey configurable, beginning with a simple repository type configuration option. Adds command line arguments with OptionParser.

Partially closes #21. Remaining configuration needed to pass initialization options to custom repositories.

cc: @mjsuhonos I wonder if you have time for design feedback on this?

Will have time this Friday or sometime after next Monday. Desperate to pick this work back up, but in the middle of some big changes at the moment.

On Jan 30, 2017, at 8:23 PM, Thomas Johnson<EMAIL_ADDRESS>wrote:
cc: @mjsuhonos I wonder if you have time for design feedback on this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@mjsuhonos wondering whether you're still figuring on finding time to review this. If not, I'm fairly happy with the result and will just merge it. :)

Sorry for the delay; :+1: looks great.


Renegotiating an Schannel Connection

Replace: "and pass the contents of SECBUFFER_EXTRA returned from DecryptMessage in the SECBUFFER_TOKEN."

@Technical-Writer44 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@lastnameholiu : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Debian/Ubuntu Support [New Feature]

Hey all,
Any interest in building a .deb package for Debian/Ubuntu Linux OSes?
It would convenient for us, but before anyone puts in the effort any other interest?

Yes I plan to attempt an Ubuntu CI build as soon as the next stable release is out.

Hey that's great news, thanks!


Win MSI | Support both per-machine and per-user installs

POSSIBLE SCENARIOS:

No UI, per-machine MSI.
No UI, per-user MSI.
No UI, per-machine if current user has such privileges, per-user otherwise.
Custom UI, with the default being one of the above.

A few links that might help investigating a possible implementation:

https://stackoverflow.com/questions/5411585/setting-allusers-in-wix-for-per-user-or-per-machine-installation-context
https://sourceforge.net/p/wix/mailman/message/28378224/
https://helgeklein.com/blog/2014/09/real-world-example-wix-msi-application-installer/
https://www.firegiant.com/wix/tutorial/user-interface/
https://subscription.packtpub.com/book/application_development/9781849513722/1/ch01lvl1sec09/adding-a-user-interface

Linking to Beeware's briefcase issue I explored a while back:

https://github.com/beeware/briefcase/issues/382

In short:

A user-installable MSI (much like the one produced by pup?)  can be machine installed with:

C:\...> msiexec /i the-msi-file.msi MSIINSTALLPERUSER=""

PROGRESS NOTE:

Packaged puppy.
Logged in as admin-user and brought up an administrative CLI.
Installed with msiexec /i "PuPPY 1.4.0.msi" MSIINSTALLPERUSER="".
Resulting installation is availabable to all users.

NIT-PICK:

puppy was installed onto C:\Program Files (x86)\PuPPY which, IIUC, is where 32-bit applications should be installed on 64-bit systems -- AFAICT, PBS is 64-bit so, for the installation to be correct, it should have gone into C:\Program Files\PuPPY.

NEXT:

Update docs letting users know how to go about machine-level installs in the current version.
Log two LATER issues:

Have machine-level installs go into C:\Program Files instead of C:\Program Files (x86) (bug).
Add pup options to produce default-to-machine-level install MSI files (enhancement).

CLOSING after having merged PR #171 updating docs on how to complete per-machine installs with the current pup-produced user-installable MSI files.

Thanks Tiago!
Is there no way to select the option from the installer GUI? Or is that treated as a separate issue?

Thanks Tiago!
Is there no way to select the option from the installer GUI? Or is that treated as a separate issue?

Not as of now. Adding a GUI for that option is tracked under #85.


fix: opt in to import.meta.* properties

This is a very early PR to make this module compatible with changes we expect to release in Nuxt v5.
In Nuxt v3.7.0 we added support for import.meta.* (see original PR) and we've been gradually updating docs and moving across from the old process.* patterned variables.
As I'm sure you're aware, these variables are replaced at build-time and enable tree-shaking in bundled code.
This change affects runtime code (that is, that is processed by the Nuxt bundler, like vite or webpack) rather than code running in Node. So it really doesn't matter what the string is, but it makes more sense in an ESM-world to use import.meta rather than process.
(It might be worth updating the module compatibility as well to indicate it needs to have Nuxt v3.7.0+, but I'll leave that with you if you think this is a good approach.)

Hello, thank you very much for your contribution. Yes, I saw those changes. I was planning to add the changes later, merged them, and released a new version.


Pages instead of dialogs

Use browser pages (and urls) instead of dialog for project view, add and update.
Also split container and components to have a cleaner split between react and redux.
Also make a proper use of redux form.

bugged PR


Add flush methods to MmapRaw

MmapRaw allows writes via the as_mut_ptr() method. This adds flush
methods to flush those changes to disk

Thanks!


[core] New Proguard technique causing type confusion and failures to decompile

Issue details
Seems as though ProGuard has implemented a new technique by changing the constructor instructions for zero-args constructors.
See the commented sample and the screenshot of the decompiler being confused by it and failing type inference.
Normal (expected opcodes for instantiating an object with a zero-args constructor):
new-instance v0, Lkik/android/util/PartitionedRecycledViewPool$a;
invoke-direct {v0}, Lkik/android/util/PartitionedRecycledViewPool$a;-><init>()V

Proguarded:
new-instance v0, Lkik/android/util/PartitionedRecycledViewPool$a;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V

example.smali
Relevant log output or stacktrace
No response
Provide sample and class/method full name
.method public final a(III)V
    .registers 6

    new-instance v0, Lkik/android/util/PartitionedRecycledViewPool$a;

    # This should normally read as follows:
    # invoke-direct {v0}, Lkik/android/util/PartitionedRecycledViewPool$a;-><init>()V
    #
    # but, ProGuard is initializing with java/lang/Object
    #
    # The decompiler then assumes that it is an object being instantiated and loses the actual object type, which is kik.android.util.PartitionedRecycledViewPool.a

    invoke-direct {v0}, Ljava/lang/Object;-><init>()V

    if-gt p2, p3, :cond_1c

    new-instance p2, Ljava/util/ArrayDeque;

    iget v1, v0, Lkik/android/util/PartitionedRecycledViewPool$a;->a:I

    invoke-direct {p2, v1}, Ljava/util/ArrayDeque;-><init>(I)V

    iput-object p2, v0, Lkik/android/util/PartitionedRecycledViewPool$a;->b:Ljava/util/ArrayDeque;

    iput p3, v0, Lkik/android/util/PartitionedRecycledViewPool$a;->a:I

    iget-object p2, p0, Lkik/android/util/PartitionedRecycledViewPool;->a:Ljava/util/HashMap;

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object p1

    invoke-virtual {p2, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 28
    return-void

    :cond_1c
    new-instance p1, Ljava/lang/IllegalArgumentException;

    const-string/jumbo p2, "preload size exceeds cache size"

    invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

Jadx version
1.5.0

What makes this potentially acceptable is the fact that the fields of PartitionedRecycledViewPool$a are not initialized to specific values.

a is an int, and will be init to 0
b is an object type, and will be init to null

So, calling Object.<init> on the allocated memory instance would be sufficient here. I've never seen this in the wild. Could you share a full APK? Are you sure ProGuard is doing this?
I've just verified it with JEB Pro, the result is quite explicit, the alloc and init parts are broken down to warn the user that something is off:

Fixed.
@bluemods thank you for reporting this issue :+1:


mkl-platform-redist isn't showing up as a dependency

steps
sbt version: 1.3.4
problem
The original bug report is https://github.com/bytedeco/javacpp-presets/issues/823 .
I cannot use mkl-platform-redist on Sbt.
@saudet says sbt does not add it to the classpath and this looks like an issue with sbt.
My test code is https://github.com/yukoba/MklTest .

I found that the problem comes from Coursier.
Either of these solves the problem.

Use sbt 1.2. Not 1.3.
Add ThisBuild / useCoursier := false and use sbt 1.3.

@yukoba Thanks for the report.


Bug in shape.position for cosmetic shapes

The lines that set the x and y position for cosmetic shapes are currently:
            self._x = value.x
            self._y = value.y

They should be:
            self._x = value[0]
            self._y = value[1]

To be fixed in 1.4.4


Revert "add http cookie test case (#46989)"

This reverts commit 4e873ff46c2975e2c4d3190a9813087dbbb46825.
Causing flakes: https://prow.istio.io/view/gs/istio-prow/logs/integ-pilot-istiodremote_istio_postsubmit/1702695243045933056

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-pilot-multicluster_istio
c235f158d0661410e2beed4ec30b44b02696f755
link
true
/test integ-pilot-multicluster

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-multicluster


Add quiet flag for NAG

This adds the -quiet flag for NAG:
        -quiet    Suppress the compiler banner and the summary line, so that only diagnostic messages will appear.

So this:
❯ mpifort -o helloWorld.mpi3.exe helloWorld.mpi3.F90
NAG Fortran Compiler Release 7.1(Hanzomon) Build 7143
[NAG Fortran Compiler normal termination]

becomes:
❯ mpifort -quiet -o helloWorld.mpi3.exe helloWorld.mpi3.F90

which is nice.

It seems to work. merging!


Phosphorus, N2, POM, and PX

Still a few wrinkles to iron out. The following are test that are failing since they have negative values as test answers, and I added code so none of the constituents can have negative concentrations.
Carbon
test_change_kbod_20
test_change_kah_20_user
test_change_kaw_20_user
DOX
test_change_krb_20
CBOD
test_change_kbod_20
test_changed_ksbod_20
a75305c

Looks like the following tests failed:

FAILED tests/test_10_nsm_carbon_calculations.py::test_changed_kbod_20 - assert 0.8048187759642682 ± 8.0e-03 == -45.77
FAILED tests/test_10_nsm_carbon_calculations.py::test_changed_kah_20_user - assert 0.0 ± 1.0e-12 == -0.16
FAILED tests/test_10_nsm_carbon_calculations.py::test_changed_kaw_20_user - assert 0.0 ± 1.0e-12 == -0.0063
FAILED tests/test_11_nsm_DOX_calculations.py::test_changed_krb_20 - assert 0.0 ± 1.0e-12 == -5.96
FAILED tests/test_13_nsm_CBOD_calculations.py::test_changed_kbod_20 - assert 0.0 ± 1.0e-12 == -0.18
FAILED tests/test_13_nsm_CBOD_calculations.py::test_changed_ksbod_20 - assert 0.0 ± 1.0e-12 == -0.4

Do you have ideas as to why this is or should we help dig into these tests?

Negative concentrations are of course physically impossible, but they can be the result of computational issues such as too long of a time step. "Allowing" them at least permits the modeler to see that something is not right; setting them to zero just hides the problem temporarily. That may be enough in some cases but in others the simulation can either crash or (far worse IMO) proceed to completion with erroneous but plausible-looking results.

Thanks for your input @PeterKlaver -- we discussed on a check-in today and we think it makes sense to allow the negative numbers so the modeler can see the issue. @kewalak, are you able to update those processes accordingly (and hopefully then get the tests to pass)?

@kewalak, are you able to update the processes and tests as described by by @sjordan29 in https://github.com/EcohydrologyTeam/ClearWater-modules/pull/88#issuecomment-2303121615?
I would like to issue a release this week for the NSM work that we've accomplished to date and recently demoed to @TSteissberg .

@aufdenkampe I will get it done by end of day tomorrow!

@sjordan29 @aufdenkampe adjusted to allow for negative values. All tests are passing besides one in carbon and one in CBOD marked to fail with reason "known issue with kbod 20 test TBA".

Thanks @kewalak. It looks like codecov is failing because the kelvin_to_celsius process is not covered by tests. This process hasn't been flagged in past reports, which I don't totally understand, but maybe it's only doing a check of lines that were changed, so the minor change to this process resulted in a flag? I see a few paths forward:

Delete this process: my sense is that this process is not being tested, that means it is not being used in any of the other tests and we could probably delete it. Does that sound accurate? As I recall, TSM calculates change in temp in Kelvin [per this thread]. It doesn't look like the process is used anywhere in NSM either.
Write a simple test for this process and put it somewhere in the testing suite, if we want to keep the conversion.
Ignore the failure. I'd prefer not to do that, as then the main branch will show that certain tests are failing.

Any thoughts @aufdenkampe @kewalak?

@sjordan29 @aufdenkampe I went ahead and removed it. It is not used anywhere and would be easy enough to just add back in at a later time.

@kewalak, thanks!! As soon as all tests pass, go ahead and merge.
I'll then issue a release. I have one drafted if any of you want to add any additional release notes.


'database is locked' error when using CachingGraphAdapter on Azure Linux ML Compute

Current behavior
When trying to use hamilton.experimental.h_cache.CachingGraphAdapter on an Azure Linux ML Compute, a 'database is locked' error occurs after running for about a minute.
Stack Traces
---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
Cell In[9], line 4
      1 from hamilton.plugins import h_diskcache
      2 from hamilton.driver import Builder
----> 4 cache_adapter = h_diskcache.DiskCacheAdapter()
      6 builder = (Builder()
      7            .with_adapters(cache_adapter)
      8            )

File /anaconda/envs/pdf-env/lib/python3.10/site-packages/hamilton/plugins/h_diskcache.py:84, in DiskCacheAdapter.__init__(self, cache_vars, cache_path, **cache_settings)
     82 self.cache_vars = cache_vars if cache_vars else []
     83 self.cache_path = cache_path
---> 84 self.cache = diskcache.Cache(directory=cache_path, **cache_settings)
     85 self.nodes_history: Dict[str, List[str]] = self.cache.get(
     86     key=DiskCacheAdapter.nodes_history_key, default=dict()
     87 )  # type: ignore
     88 self.used_nodes_hash: Dict[str, str] = dict()

File /anaconda/envs/pdf-env/lib/python3.10/site-packages/diskcache/core.py:478, in Cache.__init__(self, directory, timeout, disk, **settings)
    476 for key, value in sorted(sets.items()):
    477     if key.startswith('sqlite_'):
--> 478         self.reset(key, value, update=False)
    480 sql(
    481     'CREATE TABLE IF NOT EXISTS Settings ('
    482     ' key TEXT NOT NULL UNIQUE,'
    483     ' value)'
    484 )
    486 # Setup Disk object (must happen after settings initialized).

File /anaconda/envs/pdf-env/lib/python3.10/site-packages/diskcache/core.py:2438, in Cache.reset(self, key, value, update)
   2436         update = True
   2437     if update:
-> 2438         sql('PRAGMA %s = %s' % (pragma, value)).fetchall()
   2439     break
   2440 except sqlite3.OperationalError as exc:

OperationalError: database is locked

Steps to replicate behavior

Set up an Azure Linux ML Compute environment
Open a VSCode notebook
Run the following code:from hamilton.plugins import h_diskcache
from hamilton.driver import Builder

cache_adapter = h_diskcache.DiskCacheAdapter()

builder = (Builder()
           .with_adapters(cache_adapter)
          )

Wait for about a minute
Observe the 'database is locked' error

Library & System Information

Environment: Azure Linux ML Compute
Python version: 3.10 (based on the error stack trace)

Expected behavior
The CachingGraphAdapter should initialize without a 'database is locked' error.
Additional context
After the error occurs, the cache.db file cannot be deleted until the kernel is restarted. This suggests that the file remains locked even after the error occurs.

@giladrubin1 I think this might be an azure issue - https://github.com/microsoft/autogen/issues/79
Can you try specifying a different location for the cache?  or trying https://github.com/microsoft/autogen/issues/79#issuecomment-1744086814 if that makes sense?

Yes, - it seems like it's an sqlite issue on AzureML Compute.
I'll change the directory of the cache to be outside of the compute filesystem, hopefully it'll work.
Thanks!


I have add two nouns

ok

please increase a sample.

please increase a sample.

.....

please increase a sample.

ok


[vscode-extension] fix vscode terminal PATH

Summary
Fixes the issue where terminal's $PATH env variable wouldn't get updated in integrated terminal.
How was it tested?
buckle up, the steps are long:

cd vscode-extension
vsce package (install vsce via npm i -g vsce)
code --install-extension devbox-0.0.7.vsix
setup a devbox.json in a sample directory with a couple of packages (e.g., hello<EMAIL_ADDRESS>open the sample directory in vscode
cmd+shift+p and run Devbox: Reopen in Devbox shell environment
after vscode reopens, echo $PATH in terminal

It looks like it's working!!! I've been messing with my settings a bit so it would be good to get others on the team to test this, but it's worked on Go, Elixir, and Python projects so far.


your angular-materialize/src/angular-materialize.js have a explain error!

In angular-materialize/src/angular-materialize.js line 5 to 7 :
 /*     example usage:

</scroll-fire>
     */

I think you should update this block,such as:
 /*     example usage:

     */

Right you are, a while back the start tag was also scroll-fire, but apparently the end tag wasn't fixed when the start tag was updated.


Remove dead code

Description
This PR removes a function and the associated tests since it is no longer used.
Fixes #(issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[X] Existing

/test

/merge


Documentation update

Closes #69, #94, and #153.
Summary of changes

Added instructions to list files in new_instrument.rst (#69)
Added description of sat_ids to new_instrument.rst (#94)
Scrubbed code in demo files (pep8, python2 -> 3)
Updated code in tutorial.rst and examples.rst (#153), making examples consistent with demos
Updated images for examples.rst, using Perceptually Uniform Sequential colormaps
Updated discussion of commands in documentation taking into account the utils reorganization in #164

Coverage remained the same at 75.459% when pulling 444c92d7769281901ced1eb75db4e42135c23de1 on documentation into 4384ce0fef302f6bb6915d1f15e5bec5aaed7390 on develop.

Direct links to changed documents:
https://github.com/rstoneback/pysat/blob/documentation/docs/examples.rst
https://github.com/rstoneback/pysat/blob/documentation/docs/new_instrument.rst
https://github.com/rstoneback/pysat/blob/documentation/docs/tutorial.rst

Other comments relate to content of new_instrument.rst:
* Supported Data Templates should include Madrigal

Added.  Madrigal currently does not use functools.partial.  Is this something we should update?
Writing up documentation for current methods.

Updates completed.  We should have a larger conversation about how the acknowledgements are implemented.

Updates to madrigal are out of scope here.  Adding a note to #106.


pub update returning Uncaught Error: Bad state: Future already completed

Installed latest Editor/SDK release
http://gsdview.appspot.com/dart-editor-archive-trunk/20139/
when I try to do a pub install I'm getting errors from pub.  I tried deleting packages, .pub-cache and pubspec.lock and I'm still getting the failure:
terry@terry-linux:~/dart-wc/web_ui$ rm -rf packages/
terry@terry-linux:~/dart-wc/web_ui$ rm -rf ~/.pub-cache/
terry@terry-linux:~/dart-wc/web_ui$ rm pubspec.lock
terry@terry-linux:~/dart-wc/web_ui$ pub install
Resolving dependencies...
Downloading source_maps 0.4.1...
Downloading pathos 0.4.2...
Downloading html5lib 0.4.1...
Downloading browser 0.4.2...
Downloading args 0.4.2...
Downloading logging 0.4.2+1...
Downloading benchmark_harness 1.0.2...
Downloading js 0.0.17...
Downloading unittest 0.4.2...
Downloading csslib 0.4.2...
Downloading analyzer_experimental 0.4.2+1...
Downloading meta 0.4.2...
Uncaught Error: Bad state: Future already completed
Stack Trace:
#0      _CompleterImpl.complete (dart:async:187:22)
#1      listDir.doList.<anonymous closure> (file:///home/terry/dart_editor/dart/dart-sdk/util/pub/io.dart:189:29)
#2      _StreamSubscriptionImpl._sendDone (dart:async:1718:12)
#3      _StreamImpl._sendDone.<anonymous closure> (dart:async:1512:29)
#4      _SingleStreamImpl._forEachSubscriber (dart:async:1571:11)
#5      _StreamImpl._sendDone (dart:async:1509:23)
#6      _StreamImpl._close (dart:async:1306:16)
#7      StreamController.close (dart:async:1181:18)
#8      _Directory.list.<anonymous closure> (dart:io:617:25)
#9      _ReceivePortImpl._handleMessage (dart:isolate-patch:40:92)
Unhandled exception:
Bad state: Future already completed
#0      AsyncError.throwDelayed.<anonymous closure> (dart:async:46:9)
#1      Timer.run.<anonymous closure> (dart:async:2362:21)
#2      Timer.run.<anonymous closure> (dart:async:2370:13)
#3      Timer.Timer.<anonymous closure> (dart:async-patch:15:15)
#4      _Timer._createTimerHandler._handleTimeout (dart:io:6297:28)
#5      _Timer._createTimerHandler._handleTimeout (dart:io:6305:7)
#6      _Timer._createTimerHandler.<anonymous closure> (dart:io:6313:23)
#7      _ReceivePortImpl._handleMessage (dart:isolate-patch:40:92)
Put in a print of content in util/pub/io.dart @line 189 and was able to see that every example directory that had an out directory (from previous SDK) was causing this problem.  So I deleted all out directories everywhere and the problem went away (not sure if the the packages directories that I deleted in every example was necessary but that was done as well).

This issue has been moved to dart-lang/pub#482.


Fix Guice Injection error with transferSignalEnabled flag

We're seeing a guice error when trying to start a worker, this looks like its happening because the JobProcessor is looking for an @Named object while the WorkerModule provides it as an @Flag object (and also isnt marked as @Provides). Im not sure what the original usecase of the @Flag argument is for but it also doesnt look like we use it outside of the extension contexts
To unblock our build for now im making these match the right names
2024-09-11 14:30:28.888676-05001   INFO 2024-09-11T19:30:28.889469 Using InMemoryDataCopier: org.datatransferproject.transfer.copier.PortabilityInMemoryDataCopier
 2024-09-11 14:30:29.045224-05001   Sep 11, 2024 7:30:29 PM com.google.common.util.concurrent.UncaughtExceptionHandlers$Exiter uncaughtException
 2024-09-11 14:30:29.045244-05001   SEVERE: Caught an exception in Thread[#1,main,5,main].  Shutting down.
 2024-09-11 14:30:29.045247-05001   com.google.inject.ConfigurationException: Guice configuration errors:
 2024-09-11 14:30:29.045272-05001
 2024-09-11 14:30:29.045274-05001   1) [Guice/MissingImplementation]: No implementation for Boolean annotated with @Named("transferSignalEnabled") was bound.
 2024-09-11 14:30:29.045276-05001
 2024-09-11 14:30:29.045277-05001   Requested by:
 2024-09-11 14:30:29.045278-05001   1  : JobProcessor.<init>(JobProcessor.java:85)
 2024-09-11 14:30:29.045279-05001         \_ for 8th parameter transferSignalEnabled
 2024-09-11 14:30:29.045281-05001        at Worker.<init>(Worker.java:30)
 2024-09-11 14:30:29.045282-05001         \_ for 3rd parameter jobProcessor
 2024-09-11 14:30:29.045283-05001        while locating Worker
 2024-09-11 14:30:29.045285-05001
 2024-09-11 14:30:29.045286-05001   Learn more:
 2024-09-11 14:30:29.045287-05001     http://go/guice/error/MISSING_IMPLEMENTATION
 2024-09-11 14:30:29.045289-05001
 2024-09-11 14:30:29.045290-05001   1 error
 2024-09-11 14:30:29.045291-05001
 2024-09-11 14:30:29.045292-05001   ======================
 2024-09-11 14:30:29.045293-05001   Full classname legend:
 2024-09-11 14:30:29.045294-05001   ======================
 2024-09-11 14:30:29.045295-05001   JobProcessor: "org.datatransferproject.transfer.JobProcessor"
 2024-09-11 14:30:29.045296-05001   Named:        "com.google.inject.name.Named"
 2024-09-11 14:30:29.045297-05001   Worker:       "org.datatransferproject.transfer.Worker"
 2024-09-11 14:30:29.045299-05001   ========================
 2024-09-11 14:30:29.045300-05001   End of classname legend:
 2024-09-11 14:30:29.045301-05001   ========================
 2024-09-11 14:30:29.045303-05001
 2024-09-11 14:30:29.045304-05001   	at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1174)
 2024-09-11 14:30:29.045306-05001   	at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1134)
 2024-09-11 14:30:29.045307-05001   	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
 2024-09-11 14:30:29.045309-05001   	at org.datatransferproject.transfer.WorkerMain.initialize(WorkerMain.java:137)
 2024-09-11 14:30:29.045310-05001   	at org.datatransferproject.transfer.WorkerMain.main(WorkerMain.java:64)

It looks like @Flag is used in this module: https://github.com/dtinit/data-transfer-project/blob/master/libraries/config/src/main/java/org/datatransferproject/config/FlagBindingModule.java which only works for flags in the extension context so it wouldnt have marked this as an @Named object because it lived in the WorkerModule not the WorkerExtension


Simplify GitHub release workflow triggers

Description:
Removed branch-specific triggers to focus solely on tag-based releases. Unused permissions were also cleaned up for better maintainability and clarity.

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

Project coverage is 80.68%. Comparing base (6e69b6a) to head (081df53).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #55   +/-   ##
=======================================
  Coverage   80.68%   80.68%
=======================================
  Files          19       19
  Lines        1538     1538
=======================================
  Hits         1241     1241
  Misses        258      258
  Partials       39       39

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


Use Manopt as the optimization package

This PR will switch out OptimKit for Manopt to enable more advanced optimization features and better control over optimization settings and outputs.
Since we haven't yet defined a PEPS manifold using the ManifoldsBase.jl interface, we will resort to vectorizing the PEPS using to_vec which we optimize - this should not incur significant overhead cost.

This hopefully shouldn't be too much work. I will try to finish this up beginning of next week.

I got fixedpoint to optimize with Manopt now. However, the linesearching (or something else) still seems to be weird and the optimization is slow to converge and it actually doesn't really converge at all. I'm not yet sure where the problem lies. Also, we can't directly compare against OptimKit since Manopt doesn't have the Hager-Zhang linesearch algorithm.
One annoying thing was that Manopt doesn't support supplying a function which provides both the cost and the gradient for quasi_Newton such that we have to resort to a workaround.
While Manopt seems more powerful and versatile for sure, it does take a bit of love to make it work, it seems...

I glanced over everything, I have to admit that I can't immediately see what's going wrong. Did you by any chance try the simplest option without caching? That should be slow, but still work.

One annoying thing was that Manopt doesn't support supplying a function which provides both the cost and the gradient for quasi_Newton such that we have to resort to a workaround.

 Simply specifying both should be possible, and we can then avoid the recalculation with some kind of cache afterwards (I would first focus on getting it to work though)

Also, we can't directly compare against OptimKit since Manopt doesn't have the Hager-Zhang linesearch algorithm.
I think it does? From what I gather, you can use any linesearch in LineSearches.jl, which does contain Hager-Zhang: https://julianlsolvers.github.io/LineSearches.jl/latest/reference/linesearch.html#LineSearches.HagerZhang

Simply specifying both should be possible, and we can then avoid the recalculation with some kind of cache afterwards

That's what I do at the moment and that works in principle. The thing that is a bit ugly about it is that in order to record things from the cache during optimization, the cost function needs the functor struct such that one can access it using get_objective and the gradient function is a separate function defined on the cache.

From what I gather, you can use any linesearch in LineSearches.jl

Oh I wasn't aware, that is really neat. Then I'll try Hager-Zhang and see if that solves the problems I currently have with optimization.

Somehow this is a tough nut to crack. I was trying around today but with no luck, even the simplest option without caching won't optimize. I think the next thing I'll try is to go back to OptimKit but with the current cost/gradient/cache setup, just to rule out that there are problems with that and not with the optimization/linesearching parameters.
There's also a really weird Zygote error (independent of Manopt I believe) which only comes up the first time I execute fixedpoint after precompilation but it runs properly the second time and after that. Somehow Zygote can't handle that we now return the truncation error and condition number in the NamedTuple that is returned by ctmrg_iteration and leading_boundary.
ERROR: type NamedTuple has no field truncation_error
Stacktrace:
  [1] getproperty
    @ ./Base.jl:49 [inlined]
  [2] macro expansion
    @ ~/.julia/packages/Zygote/nyzjS/src/lib/lib.jl:326 [inlined]
  [3] (::Zygote.Jnew{…})(Δ::@NamedTuple{…})
    @ Zygote ~/.julia/packages/Zygote/nyzjS/src/lib/lib.jl:320
  [4] (::Zygote.var"#2220#back#318"{…})(Δ::@NamedTuple{…})

    @ Zygote ~/.julia/packages/Zygote/nyzjS/src/compiler/interface2.jl:0
 [13] (::Zygote.var"#ad_pullback#61"{Tuple{…}, Zygote.Pullback{…}})(Δ::CTMRGEnv{TrivialTensorMap{…}, TrivialTensorMap{…}})
    @ Zygote ~/.julia/packages/Zygote/nyzjS/src/compiler/chainrules.jl:264
 [14] (::PEPSKit.var"#∂f∂x#405"{…})(x::CTMRGEnv{…})
    @ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:474
 [15] apply(f::PEPSKit.var"#∂f∂x#405"{…}, x::CTMRGEnv{…})
    @ KrylovKit ~/.julia/packages/KrylovKit/xccMN/src/apply.jl:2
 [16] apply(operator::Function, x::CTMRGEnv{TrivialTensorMap{…}, TrivialTensorMap{…}}, α₀::ComplexF64, α₁::ComplexF64)
    @ KrylovKit ~/.julia/packages/KrylovKit/xccMN/src/apply.jl:5
 [17] linsolve(operator::Function, b::CTMRGEnv{…}, x₀::CTMRGEnv{…}, alg::KrylovKit.BiCGStab{…}, a₀::Int64, a₁::Int64; alg_rrule::KrylovKit.BiCGStab{…})
    @ KrylovKit ~/.julia/packages/KrylovKit/xccMN/src/linsolve/bicgstab.jl:165
 [18] linsolve(operator::Function, b::CTMRGEnv{…}, x₀::CTMRGEnv{…}, alg::KrylovKit.BiCGStab{…}, a₀::Int64, a₁::Int64)
    @ KrylovKit ~/.julia/packages/KrylovKit/xccMN/src/linsolve/bicgstab.jl:1
 [19] fpgrad(∂F∂x::CTMRGEnv{…}, ∂f∂x::Function, ∂f∂A::PEPSKit.var"#∂f∂A#404"{…}, y₀::CTMRGEnv{…}, alg::LinSolver{…})

    @ Manopt ~/.julia/packages/Manopt/07ePo/src/solvers/quasi_Newton.jl:328
 [33] #quasi_Newton#987
    @ ~/.julia/packages/Manopt/07ePo/src/solvers/quasi_Newton.jl:252 [inlined]
 [34] quasi_Newton
    @ ~/.julia/packages/Manopt/07ePo/src/solvers/quasi_Newton.jl:248 [inlined]
 [35] quasi_Newton(M::Euclidean{…}, f::PEPSKit.PEPSCostFunctionCache{…}, grad_f::PEPSKit.var"#gradient_function#397"{…}, p::Vector{…}; evaluation::AllocatingEvaluation, kwargs::@Kwargs{…})
    @ Manopt ~/.julia/packages/Manopt/07ePo/src/solvers/quasi_Newton.jl:245
 [36] fixedpoint(peps₀::InfinitePEPS{…}, operator::LocalOperator{…}, alg::PEPSOptimize{…}, env₀::CTMRGEnv{…})
    @ PEPSKit ~/repos/PEPSKit.jl/src/algorithms/peps_opt.jl:400
 [37] top-level scope
    @ ~/repos/PEPSKit.jl/test/manopt.jl:45
Some type information was truncated. Use `show(err)` to see complete types.

Any ideas on this @lkdvos ?

Update: it was a typo in the withgradient block which lead to a wrong gradient.

Do you know if Manopt might be doing some in place copying which is overwriting some tensors? This is somehow the only thing I can think of, because otherwise it should really be doing the same thing. It might be worth it to check gradient descend first, since that should be slow but very simple

Do you know if Manopt might be doing some in place copying which is overwriting some tensors? This is somehow the only thing I can think of, because otherwise it should really be doing the same thing.

As far as I can tell, it doesn't do that by default. But by fixing that typo the optimization now works and seems to be consistent with OptimKit!
When comparing Manopt and OptimKit, I was taking a closer look at the available linesearching algorithms and found that the Hager-Zhang from LineSearches behaves slightly differently from the one in OptimKit: The reason is that the OptimKit implementation has a kwarg acceptfirst which is set true for LBFGS such that the initial guess for the step size is directly accepted if all necessary conditions are met - that means no real linesearching is performed. In practice, the step size is initialized to 1.0 and it seems that in most optimization iterations this is immediately accepted. The LineSearches implementation on the other hand actually performs linesearching which results in larger stepsizes that somehow lead to less efficient optimizations in the simple examples/tests I checked.
Long story short: I will need to look for a good default linesearching algorithm and from the first tests it seems that AdaptiveWNGradient works pretty well.

Okay, the PR is mostly finished I would say but there are a few things that still need to be resolved:

[ ] Fix the truncation_error error
[ ] Fix the SpaceMismatch error in the gradients.jl test
[ ] Accelerate the pwave.jl test

I'm not sure if I get that in before Christmas but otherwise I'll finish it up next year :-)


Linkis0.9.6 community communication(Linkis0.9.6版本社区交流)

Linkis0.9.6 community communication
Linkis0.9.6 version is an important version led by ctyun with the help of webank.
This release provides the following features to optimize engine startup speed:

Support Spark dynamic resource allocation policy
Introduce application manager (AM) to complete the transformation of engine preheating and recycling mechanism
Archive engine archive information record
Fix multiple known bugs to improve some error feedback experience

First development communication (2020-04-30)
This communication mainly discussed the general plan and idea to optimize slow engine startup, related issues were discussed as follows:

Process startup time of engine can be optimized. For example, spark can use Driver resident, dynamic resource allocation strategy to shorten the time for users to obtain a usable engine.
Warm up the engine for users in advance. When a user submits a query, if no free engine is available, a new engine is requested to be started, then:
a) if a user can control the number of a certain engine at a certain time, he can avoid starting the engine until he needs to submit tasks.
b) more complicated condition, if we can automatically analyze the possible query submission time and the expected number of engines, then we can automatically start a sufficient number of engines for the user in advance.
Decide the conditions of engine recovery flexibly. The user's engine will be automatically recycled in the case of idle state for a long time, if we can predict that in a certain time, user may submit query again, we can choose to extend waiting time.
After the discussion, we decided that both teams can refine the slow engine optimization scheme respectively, and then meet again to determine the specific implementation scheme.

Second development communication (2020-05-09)
In this communication, the ctyun team and the webank team fully exchanged opinions on the slow optimization of engine startup, and finally determined the specific implementation plan, adjusted the structure discussed last time and determined some details. The discussion conclusions of relevant issues are as follows:

Use Spark to dynamically allocate resource:
a. Firstly, Spark dynamic resource allocation needs to be introduced into yarn;
b. Add relevant configuration in the configuration module;
c. Add relevant parameters when submitting the Spark job in the Spark-EnginManger module;
d. In order to control resources more accurately, it is necessary to interact with ResourceManager at all stages of the engine life cycle to make resource-related requests and make corresponding modifications;
Engine preheating and recycling strategy optimization
a. Add an Application Manager module, which is particulaly responsible for the scheduling management of the engine;
b. The JobScanner periodically scans the preheating information configured by the user, screens out the jobs that need preheating, and starts a corresponding Task to preheat the engine;
c. JobHistory monitors the state change of Job through JobScheduleListener and records the execution record history of Job;
d. Use distributed locks in the process to ensure the consistency of the execution of specific tasks;
e. Optimize the recycling strategy of the engine, let AM determines whether to recycle the engine or not;
f. Reserve interfaces for further engine startup and recycling strategies based on complex algorithms;
Engine archive information record
a. When the engine state changes, it will be reported through the interface of the RM;
b. Write state flip information to HDFS file and archive;
c. Record the execution of each task through JobHistory and add unique identification to provide a basis for further optimization;
Some other bug discussions and release methods

Thanks to all the geniuses from webank for your help.

Linkis0.9.6版本社区交流
Linkis0.9.6版本是在微众银行的倾力帮助下，由天翼云主导完成的一个重要版本。
该版本主要提供以下特性以优化引擎启动速度：

支持 Spark动态资源分配策略
引入应用管理器(AM)，完成引擎预热、回收机制的改造
引擎归档信息记录存档
修复多个已知bug，改善部分错误反馈体验

第一次开发交流（2020-04-30）
此次交流主要讨论了引擎启动慢优化的大致方案与思路，相关问题讨论如下：

引擎进程启动时间本身具有优化空间。比如spark，可以采用Driver常驻、资源动态分配策略来缩短用户获取一个可用引擎的时间。
提前为用户预热引擎。当用户提交查询时，如果没有可用的空闲引擎，就会请求启动一个新的引擎，那么：
a) 如果用户可以自主控制某种引擎在某个时间的数量，就能够避免提交任务时才去启动引擎。
b) 更复杂的是，如果可以自动分析用户可能提交查询的时间和预期引擎个数，就能够自动提前为用户启动足够数量的引擎。
灵活判断引擎回收的条件。在长时间处于空闲状态的情况下，用户的引擎会被自动回收，如果可以预判在一定时间范围内，用户可能再次提交查询，则可以选择延长等待时间。

讨论后希望双方各自细化引擎慢优化方案，节后再碰一下确定具体实现方案。
第二次开发交流（2020-05-09）
这次交流天翼云团队与微众团队充分交换了关于引擎启动慢优化的意见，最终确定了具体实现方案，调整了上次讨论的架构和一些细节的确定。相关问题讨论结论如下：

使用Spark动态资源分配：
a. 首先需要在yarn中引入Spark动态资源分配；
b. 在configuration模块中新增相关的配置；
c. 在Spark-EnginManger模块中在提交spark作业时新增相关参数；
d. 为更精确控制资源，需要在引擎生命周期各个阶段与ResourceManager交互，进行资源相关的请求，作相应的修改；
引擎预热、回收策略改造
a. 新增一个Application Manager模块，专门负责引擎的调度管理；
b. 由JobScanner定时扫描用户配置的预热信息，筛选出需要预热的Job，启动一个对应的Task去预热引擎；
c. JobHistory 通过 JobScheduleListener 监听Job的状态变化，记录Job的历史执行记录；
d. 过程中做好分布式锁以保证具体Task执行的一致性；
e. 优化引擎回收策略，由AM决定引擎是否回收；
f. 为后续基于复杂算法的引擎启动与回收策略预留接口；
引擎归档信息记录
a. 引擎状态在进行变化时，通过RM将通过接口进行上报；
b. 向HDFS文件写入状态翻转信息，并进行归档；
c. 通过JobHistory记录每个任务每次执行的情况并加上唯一标识，为后续更加深入的优化提供基础；
一些其它的bug讨论以及发布版本的方法

感谢微众大神们的倾力协助

Thanks to the participation and contributions of several great gods of the Ctyun team, they have contributed engine startup optimization and complex engine recycle mechanisms to the community, which has greatly improved the response speed of Linkis' user computation jobs. At the same time, the ApplicationManager was first brought in this release. It is a deeply important release of Linkis, we look forward to the release of Linkis Release-0.9.6 as soon as possible!

感谢天翼云团队几位大神的倾情参与和贡献，为社区贡献了引擎启动慢优化和复杂的引擎回收机制，使Linkis的用户作业响应速度得到了极大的提升，同时首次引入了应用管理器(AM)，是Linkis非常重要的一个版本，非常期待Linkis Release-0.9.6能尽快发布！


why args doesn't output a symbol selector for [abs $0-x]?

and how come [realizedolar] deals with it anyway?

how about that [pd args] abstraction?


Describe how to create a TSV and a json file in python

@chrisfilo offered to do this

Just added instructions for this to the wiki:
https://github.com/INCF/bids-starter-kit/wiki/Metadata-file-formats

Awesome! Thanks!


Box + ribbon width

When laying out a doc containing a box, the layout engine currently assumes the first line of the box is all text. This can cause inefficient layouts

Actually, I think assuming it's all text is correct and consistent with the behaviour of Document


unique strict behaviour

the PHP implementation and the test for functional\unique were missing in the current master branch
functional\unique has now another parameter for setting strict mode, default to false

Thanks!