There is also a save path, which should be optionally passed in by the developer.

There is also a save path, which should be optionally passed in by the developer.

Providing a custom path is not supported, because the user cannot write anywhere he wants which may lead to instability of the plugin
thus, you can choose where you would like to save the file, app temporary directory or public downloads

Providing a custom path is not supported, because the user cannot write anywhere he wants (this requires different app permissions or some paths are not available for you to write in) which may lead to instability of the plugin thus, you can choose where you would like to save the file, app temporary directory or public downloads

OK

Providing a custom path is not supported, because the user cannot write anywhere he wants (this requires different app permissions or some paths are not available for you to write in) which may lead to instability of the plugin thus, you can choose where you would like to save the file, app temporary directory or public downloads

In Android 13, do I need to apply for permission for the publicDownloads download path?

If your targetSdkVersion is set to 33+ (android 13+) then no, you don't need to add any permissions
otherwise you do need:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Note that in both cases the plugin needs the permission:
<uses-permission android:name="android.permission.INTERNET"/> but it's already added in the plugin itself and works fine because it's not considered as sensitive permission

If your targetSdkVersion is set to 33+ (android 13+) then no, you don't need to add any permissions
otherwise you do need: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Note that in both cases the plugin needs the permission: <uses-permission android:name="android.permission.INTERNET"/> but it's already added in the plugin itself and works fine because it's not considered as sensitive permission

I tested targetSdkVersion 33 (android 13) here, and it stopped moving when downloading. Everything below 33 is normal.

If your targetSdkVersion is set to 33+ (android 13+) then no, you don't need to add any permissions
otherwise you do need: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Note that in both cases the plugin needs the permission: <uses-permission android:name="android.permission.INTERNET"/> but it's already added in the plugin itself and works fine because it's not considered as sensitive permission

I tested targetSdkVersion 33 (android 13) here, and it stopped moving when downloading. Everything below 33 is normal. To be precise, I set targetSdkVersion to 33, compiled the APK and installed it on an android 13 device, but the download failed. All the permissions mentioned above have been added

Have you tried the example project in the plugin? I tested it out and works perfectly
what is the exception returned in onDownloadFailed?
It would be great if you can provide me with a sample project to reproduce the issue because I tried it on same configurations you mentioned and works as expected

`import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_file_downloader/flutter_file_downloader.dart';
import 'package:progress_dialog_null_safe/progress_dialog_null_safe.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// TRY THIS: Try running your application with "flutter run". You'll see
// the application has a purple toolbar. Then, without quitting the app,
// try changing the seedColor in the colorScheme below to Colors.green
// and then invoke "hot reload" (save your changes or press the "hot
// reload" button in a Flutter-supported IDE, or press "r" if you used
// the command line to start the app).
//
// Notice that the counter didn't reset back to zero; the application
// state is not lost during the reload. To reset the state, use hot
// restart instead.
//
// This works for code too, not just values: Most code changes can be
// tested with just a hot reload.
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
State createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
int _counter = 0;
//定义apk的名称，与下载进度dialog
String apkName = 'new_app.apk';
String apkUrl = "https://static.yjzf.com/app_version/2024-01-18/com.yjyz.uc_2.30.1_ujuz_app.apk";
late ProgressDialog pr;
@override
void initState() {
super.initState();
pr = ProgressDialog(context,
type: ProgressDialogType.download,
isDismissible: false,
showLogs: true);
pr.style(
message: '下载中请稍后...',
borderRadius: 10.0,
backgroundColor: Colors.white,
progressWidget: Container(
padding: const EdgeInsets.all(8.0),
child: const CircularProgressIndicator()),
elevation: 10.0,
insetAnimCurve: Curves.easeInOut,
progress: 0.0,
//textDirection: TextDirection.rtl,
maxProgress: 100.0,
progressTextStyle: const TextStyle(
color: Colors.black, fontSize: 12.0, fontWeight: FontWeight.w400),
messageTextStyle: const TextStyle(
color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w600));
}
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// TRY THIS: Try changing the color here to a specific color (to
// Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
// change color while the other colors stay the same.
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
//
// TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
// action in the IDE, or press "p" in the console), to see the
// wireframe for each widget.
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
//
CupertinoButton(
pressedOpacity: 0.3,
padding:
const EdgeInsetsDirectional.only(end: 16, top: 0),
child: const Text(
'downloader',
style: TextStyle(
color: Color(0xff474df0), fontSize: 16),
),
onPressed: () async {
await pr.show();
print("is downloader");
//   //You can download a single file
FileDownloader.downloadFile(
url: apkUrl,
name: apkName, //(optional)
downloadDestination: DownloadDestinations.appFiles,
onProgress: (String? fileName, double progress) {
print('${fileName} FILE fileName HAS PROGRESS $progress');
pr.update(progress: progress);
},
onDownloadCompleted: (String path) async {
if (pr.isShowing()) {
pr.hide();
}
print('FILE DOWNLOADED TO PATH: $path');
},
onDownloadError: (String error) {
if (pr.isShowing()) {
pr.hide();
}
print('DOWNLOAD ERROR: $error');
});
},
)
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
`
`name: apk_install
description: "A new Flutter project."
The following line prevents the package from being accidentally published to
pub.dev using flutter pub publish. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
The following defines the version and build number for your application.
A version number is three numbers separated by dots, like 1.2.43
followed by an optional build number separated by a +.
Both the version and the builder number may be overridden in flutter
build by specifying --build-name and --build-number, respectively.
In Android, build-name is used as versionName while build-number used as versionCode.
Read more about Android versioning at https://developer.android.com/studio/publish/versioning
In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
Read more about iOS versioning at
https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
In Windows, build-name is used as the major, minor, and patch parts
of the product and file versions while build-number is used as the build suffix.
version: 1.0.0+1
environment:
sdk: '>=3.2.5 <4.0.0'
Dependencies specify other packages that your package needs in order to work.
To automatically upgrade your package dependencies to the latest versions
consider running flutter pub upgrade --major-versions. Alternatively,
dependencies can be manually updated by changing the version numbers below to
the latest version available on pub.dev. To see which dependencies have newer
versions available, run flutter pub outdated.
dependencies:
flutter:
sdk: flutter
The following adds the Cupertino Icons font to your application.
Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
flutter_file_downloader: ^1.2.1
progress_dialog_null_safe: ^1.0.7
dev_dependencies:
flutter_test:
sdk: flutter
The "flutter_lints" package below contains a set of recommended lints to
encourage good coding practices. The lint set provided by the package is
activated in the analysis_options.yaml file located at the root of your
package. See that file for information about deactivating specific lint
rules and activating additional ones.
flutter_lints: ^2.0.0
For information on the generic Dart part of this file, see the
following page: https://dart.dev/tools/pub/pubspec
The following section is specific to Flutter packages.
flutter:
The following line ensures that the Material Icons font is
included with your application, so that you can use the icons in
the material Icons class.
uses-material-design: true
To add assets to your application, add an assets section, like this:
assets:
- images/a_dot_burr.jpeg
- images/a_dot_ham.jpeg
An image asset can refer to one or more resolution-specific "variants", see
https://flutter.dev/assets-and-images/#resolution-aware
For details regarding adding assets from package dependencies, see
https://flutter.dev/assets-and-images/#from-packages
To add custom fonts to your application, add a fonts section here,
in this "flutter" section. Each entry in this list should have a
"family" key with the font family name, and a "fonts" key with a
list giving the asset and other descriptors for the font. For
example:
fonts:
- family: Schyler
fonts:
- asset: fonts/Schyler-Regular.ttf
- asset: fonts/Schyler-Italic.ttf
style: italic
- family: Trajan Pro
fonts:
- asset: fonts/TrajanPro.ttf
- asset: fonts/TrajanPro_Bold.ttf
weight: 700

For details regarding fonts from package dependencies,
see https://flutter.dev/custom-fonts/#from-packages
`
Flutter 3.16.8 • channel stable • https://github.com/flutter/flutter.git Framework • revision 67457e669f (10 days ago) • 2024-01-16 16:22:29 -0800 Engine • revision 6e2ea58a5c Tools • Dart 3.2.5 • DevTools 2.28.5

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_file_downloader/flutter_file_downloader.dart';
import 'package:progress_dialog_null_safe/progress_dialog_null_safe.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// TRY THIS: Try running your application with "flutter run". You'll see
// the application has a purple toolbar. Then, without quitting the app,
// try changing the seedColor in the colorScheme below to Colors.green
// and then invoke "hot reload" (save your changes or press the "hot
// reload" button in a Flutter-supported IDE, or press "r" if you used
// the command line to start the app).
//
// Notice that the counter didn't reset back to zero; the application
// state is not lost during the reload. To reset the state, use hot
// restart instead.
//
// This works for code too, not just values: Most code changes can be
// tested with just a hot reload.
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
State createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
int _counter = 0;
//定义apk的名称，与下载进度dialog
String apkName = 'new_app.apk';
String apkUrl = "https://static.yjzf.com/app_version/2024-01-18/com.yjyz.uc_2.30.1_ujuz_app.apk";
late ProgressDialog pr;
@override
void initState() {
super.initState();
pr = ProgressDialog(context,
type: ProgressDialogType.download,
isDismissible: false,
showLogs: true);
pr.style(
message: '下载中请稍后...',
borderRadius: 10.0,
backgroundColor: Colors.white,
progressWidget: Container(
padding: const EdgeInsets.all(8.0),
child: const CircularProgressIndicator()),
elevation: 10.0,
insetAnimCurve: Curves.easeInOut,
progress: 0.0,
//textDirection: TextDirection.rtl,
maxProgress: 100.0,
progressTextStyle: const TextStyle(
color: Colors.black, fontSize: 12.0, fontWeight: FontWeight.w400),
messageTextStyle: const TextStyle(
color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w600));
}
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// TRY THIS: Try changing the color here to a specific color (to
// Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
// change color while the other colors stay the same.
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
//
// TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
// action in the IDE, or press "p" in the console), to see the
// wireframe for each widget.
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
//
CupertinoButton(
pressedOpacity: 0.3,
padding:
const EdgeInsetsDirectional.only(end: 16, top: 0),
child: const Text(
'downloader',
style: TextStyle(
color: Color(0xff474df0), fontSize: 16),
),
onPressed: () async {
await pr.show();
print("is downloader");
//   //You can download a single file
FileDownloader.downloadFile(
url: apkUrl,
name: apkName, //(optional)
downloadDestination: DownloadDestinations.appFiles,
onProgress: (String? fileName, double progress) {
print('${fileName} FILE fileName HAS PROGRESS $progress');
pr.update(progress: progress);
},
onDownloadCompleted: (String path) async {
if (pr.isShowing()) {
pr.hide();
}
print('FILE DOWNLOADED TO PATH: $path');
},
onDownloadError: (String error) {
if (pr.isShowing()) {
pr.hide();
}
print('DOWNLOAD ERROR: $error');
});
},
)
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}

name: apk_install
description: "A new Flutter project."
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: '>=3.2.5 <4.0.0'
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
flutter_file_downloader: ^1.2.1
progress_dialog_null_safe: ^1.0.7
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^2.0.0
flutter:
uses-material-design: true

Or the complete project, https://mp-e47607e8-56f5-4e29-91d2-f4c2f4cf8ec9.cdn.bspapp.com/apk_install.zip

I tried your code & source code! they both worked and I got the apk downloaded on the emulator
what is the exception returned in onDownloadFailed?

I run the code and this output is NULL

Hello @xiongzhaoxu
I fixed the redundant call for onProgress callback,
please if you have any other issue feel free to file a new issue or reopen this one
thank you for helping in improving this plugin


pyo3-build-config: make InterpreterConfig public

PyOxidizer will want to create interpreter config files. Rather
than reinvent the logic for reading/writing these files, I think
it makes sense to consume the pyo3-build-config crate so we can
use the InterpreterConfig type directly. But the symbol needs
to be public to allow us to do that.
(Strictly speaking I could probably hack my way into getting an
instance of InterpreterConfig via get() and use that. But that
is exceptionally hacky.)

👍 I think this needs to happen.
Shall we go a little further and remove the #[doc(hidden)]?
I think to make this useful in practice you may also want PythonVersion, PythonImplementation , BuildFlags and BuildFlag made public too?

Yeah, we need to make all referenced fields public as well. I would have realized that if I actually tried to use this branch :) Good catch.
I rebased and force pushed a change to expose the additional types.


Allow an empty user configuration

This is a minor change that allows for a nil default user configuration, eg:
require("autoclose").setup()

...which is a convention a number of other vim plugins use:

https://github.com/m-demare/hlargs.nvim#usage
https://github.com/numToStr/Comment.nvim#-installation
https://github.com/gen740/SmoothCursor.nvim#install

This is great. Thanks for the PR.


subscribeToCharacteristic error

I run example to get the following log,:
[✓] Flutter (Channel stable, 2.10.0, on Microsoft Windows [Version 10.0.22000.675], locale zh-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.3)
[✓] Android Studio (version 2021.1)

flutter: {_type: response, _id: null, result: null}
flutter: {_type: response, _id: 53, result: BluetoothLE#BluetoothLEbc:9a:78:56:34:12-11:f8:54:09:41:44}
flutter: {_type: response, _id: 54, result: [{0000180a-0000-1000-8000-00805f9b34fb}, {00001000-0000-1000-8000-00805f9b34fb}, {f000ffd0-0451-4000-b000-000000000000}]}
flutter: {_type: response, _id: 55, result: [{uuid: {00001001-0000-1000-8000-00805f9b34fb}, properties: {broadcast: false, read: true, writeWithoutResponse: true, write: true, notify: false, indicate: false, authenticatedSignedWrites: false, reliableWrite: false, writableAuxiliaries: false}}, {uuid: {00001002-0000-1000-8000-00805f9b34fb}, properties: {broadcast: false, read: true, writeWithoutResponse: false, write: false, notify: true, indicate: false, authenticatedSignedWrites: false, reliableWrite: false, writableAuxiliaries: false}}, {uuid: {00001003-0000-1000-8000-00805f9b34fb}, properties: {broadcast: false, read: false, writeWithoutResponse: false, write: true, notify: false, indicate: false, authenticatedSignedWrites: false, reliableWrite: false, writableAuxiliaries: false}}, {uuid: {00001004-0000-1000-8000-00805f9b34fb}, properties: {broadcast: false, read: true, writeWithoutResponse: false, write: false, notify: false, indicate: false, authenticatedSignedWrites: false, reliableWrite: false, writableAuxiliaries: false}}, {uuid: {00001005-0000-1000-8000-00805f9b34fb}, properties: {broadcast: false, read: true, writeWithoutResponse: false, write: true, notify: false, indicate: false, authenticatedSignedWrites: false, reliableWrite: false, writableAuxiliaries: false}}]}
flutter: {_type: response, _id: 56, error: æ æ³åå¥å±æ§ã

æ æ³åå¥å±æ§ã

}

PS:read/write is normal

Can you confirm is Subscribing to that notification is possible
Can you share the characteristic uuid which is causing this issue

@wpo778822 Can you confirm is Subscribing to that notification is possible
Can you share the characteristic uuid which is causing this issue

sure,This bluetooth module I notify is 00001002-0000-1000-8000-00805F9B34FB.I found that the wrong UUID, such as passing in uppercase, would give me the correct feedback.

@wpo778822 so you mean if you Subscribe to the same characteristic,but uuid in Upper case , then notification is working fine ?

Sorry for the ambiguity, I mean deliberately passing in an error UUID will have the correct and readable error feedback.

Seems like some issue in Decoding error message ,
you can try to download this Repo , and modify the example like you want
also , in root folder , lib/src/win_ble.dart line : 53 , There you can print the Reponse without Parsing , and let me know what you get

flutter: [93, 0, 0, 0, 123, 34, 95, 116, 121, 112, 101, 34, 58, 34, 114, 101, 115, 112, 111, 110, 115, 101, 34, 44, 34, 95, 105, 100, 34, 58, 52, 44, 34, 101, 114, 114, 111, 114, 34, 58, 34, 230, 151, 160, 230, 179, 149, 229, 134, 153, 229, 133, 165, 229, 177, 158, 230, 128, 167, 227, 128, 130, 92, 114, 92, 110, 92, 114, 92, 110, 230, 151, 160, 230, 179, 149, 229, 134, 153, 229, 133, 165, 229, 177, 158, 230, 128, 167, 227, 128, 130, 92, 114, 92, 110, 34, 125]
flutter: {_type: response, _id: 4, error: æ æ³åå¥å±æ§ã

æ æ³åå¥å±æ§ã

}

This is the original event that was thrown,I'm sorry I don't have the ability to run Windows program debugging, so that's all I can provide.

@wpo778822 can you confirm with other Apps , like Nrf Connect
try if subscribing to this notification is working in App

Android and iOS/macOS are normal,In my side has three different bluetooth devices, are stuck in subscribeToCharacteristic this step, my intention is to use Windows PC colleague convenient debugging, I have developed other platform.

@wpo778822 can you try this pluin in another pc , or different ble Device with your PC , am not getting such error
and hard to tell without debugging with the ble hardware
another option is to create a local gatt server by using nrfConnect app , and see if you are getting same error ,
and you can share those configs, i can try those for debugging


Does LambdaAttack do anything else more than just creating fake player and login?

Hi, I am just using LambdaAttack as a fake player creator for continuous chunckloading in order to make some farms or red-stone machines keep running on my server.
However I have found that it causes a strong tps drop to even 5-10 tps when I create just 3 players using LambdaAttack.
Does this program do anything else more than just creating players and login? Like lag datapack sending or something else. If the answer is no, I may find some hardware reasons because I run LambdaAttack and my server on the same PC.
LambdaAttack really helps me a lot but I just cannot suffer such a low tps. I wish you can reply me as soon as possible.
Thanks in advance.

Does this program do anything else more than just creating players and login? Like lag datapack sending or something else. If the answer is no,

No actually it doesn't. It's planned, but was never implemented.

LambdaAttack really helps me a lot but I just cannot suffer such a low tps. I wish you can reply me as soon as possible.

You could create a timings report. This will check for too-long running operations on the main thread. However asynchronous threads (in abstract simple terms - parallel program flow) will be ignored by timings reports. Such tasks could run on different CPU cores. This could also cause main thread to not get enough CPU time if they are too heavy.
This includes the testing tool. So remember running the benchmark tool on the same computer also can reduce the performance.


Specify the reload signal in the upstart script

See #107 for details.

I don't know upstart but I trust you on this one - thanks!


Error in react native CLI

Bug
I installed the library (I use react native CLI), and created the custom hook from the example, but when using it, it showed me the following error:

1| import { requireNativeModule } from 'expo-modules-core';
|                                                                           ^
2 | // It loads the native module object from the JSI or falls back to
3 | // the bridge module (from NativeModulesProxy) if the remote debugger is on.
4 | export default requireNativeModule('ImageColors');

I don't understand why expo imports a native react native CLI library, and if it is required, they should specify it when implementing the example.
Environment info
im using typescript and react native CLI, this is the content of package.json
{
"name": "AppPeliculas",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"lint": "eslint .",
"start": "react-native start",
"test": "jest"
},
"dependencies": {
"@react-navigation/native": "^6.1.7",
"@react-navigation/stack": "^6.3.17",
"@types/react-native-snap-carousel": "^3.8.5",
"axios": "^1.5.0",
"currency-formatter": "^1.5.9",
"fbjs": "^3.0.5",
"react": "18.2.0",
"react-native": "0.72.4",
"react-native-gesture-handler": "^2.13.1",
"react-native-image-colors": "^2.3.0",
"react-native-linear-gradient": "^2.8.3",
"react-native-safe-area-context": "^4.7.2",
"react-native-screens": "^3.25.0",
"react-native-snap-carousel": "^3.9.1",
"react-native-vector-icons": "^10.0.0"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/preset-env": "^7.20.0",
"@babel/runtime": "^7.20.0",
"@react-native/eslint-config": "^0.72.2",
"@react-native/metro-config": "^0.72.11",
"@tsconfig/react-native": "^3.0.0",
"@types/currency-formatter": "^1.5.2",
"@types/react": "^18.0.24",
"@types/react-native-vector-icons": "^6.4.15",
"@types/react-test-renderer": "^18.0.0",
"babel-jest": "^29.2.1",
"eslint": "^8.19.0",
"jest": "^29.2.1",
"metro-react-native-babel-preset": "0.76.8",
"prettier": "^2.4.1",
"react-test-renderer": "18.2.0",
"typescript": "4.8.4"
},
"engines": {
"node": ">=16"
}
Steps To Reproduce

my project works correctly
I install the library with yarn (yarn add react-native-image-colors)
I created a custom hook using the example code, as seen in the following code:

import { useEffect, useState } from 'react'
import { getColors } from 'react-native-image-colors'
export default function useColors(){
const [colors, setColors] = useState(null)
const get =  async()=>{
const url = 'https://i.imgur.com/68jyjZT.jpg'
await getColors(url, {
fallback: '#228B22',
cache: true,
key: url,
}).then(res=>console.log(res))
}
useEffect(() => {
get()
}, [])
return {colors}

send me the error

Describe what you expected to happen:

my project works correctly
I install the library with yarn (yarn add react-native-image-colors)
I create a custom hook using the example code
It compiles correctly with the library

Reproducible sample code
could see the code and run the code in the next repository:
https://github.com/victor291201/pelisApp-ReactNative

Please configure expo modules in your project which this library depends on
https://docs.expo.dev/bare/installing-expo-modules/

Let me know if the above doesn't work for you. If you have reasons not to install expo modules, I'd love to know them.

I understand, I will try to do that, but one question, is this library made for ReactNative CLI or made for Expo?, because in the documentation it says that I can use it with ReactNative CLI, but it asks me to install expo plugins, so it is confusing, could you explain a little to me?

however I try solve the error, importing the expo complement, and I will be telling you my progress

It's made for both, but it relies on APIs used in development of Expo packages which make it easier for me to maintain the library.
After doing those Expo configuration steps, you will also be able to install any Expo package in your React Native CLI app without repeating those steps.
Expo packages are very well maintained which makes them a very good choice even for React Native CLI apps.

I already installed the libraries, but now it gives me the following error

I found same issue to install this library.

@osamaqarem it is a bad idea for include expo modules

Feel free to install v1 of the library without expo modules or long term support. Otherwise, you're welcome to fork.


Update docs to suggest Python 3.11

This page suggests installing Python 3.10. Can we move to Python 3.11 or do we have outstanding issues (e.g. TensorFlow).
cc @brainglobe/active-devs

I know that at least cellfinder (and core, napari), and workflows do not have python 3.11 in their test suite (although whether they fail when run on python 3.11 is another question).
The tensorflow issue is tied to our failing tests in the more recent versions: https://github.com/brainglobe/cellfinder-core/issues/103. Not sure if this means python 3.11 is incompatible. There's also the separate conda install issue with TensorFlow that may cause problems.

I know that at least cellfinder (and core, napari), and workflows do not have python 3.11 in their test suite (although whether they fail when run on python 3.11 is another question).

One way to find out

From the link, looks like the answer is no. More reason to prioritise moving away from TensorFlow?


Add missing 'importName' for private field helpers

Adds importName properties for the class private field get/set helpers so that they work correctly with --importHelpers.
Fixes #36841

Suggestions aren't working again.
/CC @weswigham, @sandersn for review
@DanielRosenwasser this might be worth taking for 4.0.

@typescript-bot cherry-pick this to release-4.0


How to keep suggestions inside the editor?

monaco-editor npm version: 0.7.0
Browser: Chrome
OS: OSX
How Can I keep suggestions inside editor? Suggestions should respect boundaries of the layout - not entire browser.

In this context I would like to see suggestions right corner to be aligned to the editor right corner.
Is it possible in current version as a flag or is there any way to manually fix suggestions window position?

I have tried:
fixedOverflowWidgets: true but it's not working or it's intended to do something different - not sure.
I have tried:
 for (const prop in this.editor.contentWidgets) {
      const contentWidget = this.editor.contentWidgets[prop];
      contentWidget.widget.allowEditorOverflow = false;
}

but it is used in addWidget so it's already to late:
if (widgetData.allowEditorOverflow) {
	this.overflowingContentWidgetsDomNode.appendChild(domNode);
} else {
	this.domNode.appendChild(domNode);
}

Additionally it seems inconsistent.
widgets default to true:
	// Editor.IContentWidget.allowEditorOverflow
	allowEditorOverflow = true;

while addWidget defaults to false:
allowEditorOverflow: widget.allowEditorOverflow || false,

Each content widget can set allowEditorOverflow as it desires. The suggest widgets sets it to true.
We do not currently have an editor option to override/ignore that.

So let's treat it as feature request then.

Any updates?

Having the same problem...
Is there any workaround?

I used internals to move them to the dom root - but didn't update Monaco for some time already because of it

Each content widget can set allowEditorOverflow as it desires. The suggest widgets sets it to true.
We do not currently have an editor option to override/ignore that.

I can try to add a PR for this in vscode. Can you confirm that this is how you want it to work?
Have a flag on the editor called keepWidgetsWithEditor with 2 values:
* true - all widgets will be forced to be drawn with the editor viewport. We do this by updating only vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts
* false - the default value, representing the current behavior

In my case problem was mostly because of z-index - suggestions were partly hidden under other UI elements.

Keeping them within UI of the editor would help but I feel it would impact UX (try it with an editor that has only 2 lines of text or even one)
What would work better in my case is what I did - move modals to the end of <body> to avoid all z-index issues by being last thing in DOM.

For (2) it could be optional field like:
idOfElementToPlaceModals: "domElementId"

Any Update ?


Add styles to the compiled document head

Switched from foundation to the latest version of mjml because of the mobile-first approach this framework takes (already solved our outlook & gmail android problems!)
I think the approach for applying styles directly to the component in that context works for email, but we also use ESP customer.io to send the emails. To make this work for me, some styles need to be retained in the head to be applied to the content in the wysiwyg editor (customer.io inlines styles for this content: h1..h6, p, a, hr, etc).
I'm already doing this, but the styles are inlined and not added to the compiled head.
<mj-style>
  * {
    box-sizing: border-box;
  }
</mj-style>

Is there a way to create/import styles and add them to the compiled document head through mjml or do I have to add this manually after it's built?

I see the styles defined here mjml-core/src/configs/defaultStyle.js. Should this be where I manually put the styles that I need to be added the head? Doesn't support imports, so this doesn't really feel like a clean way of doing it. Thoughts?

Adding styles to mjml-core/src/configs/defaultStyle.js doesn't seem to do anything. Is this intended?

Hi @mklemme
So, few things. MjStyle does only support inline yet, but we're thinking about 3 mode for it : inline/in head/ inline+in head, so it will fit your needs perfectly.
About src folder it only contains source files. If you want to edit this you can edit the same file inside lib folder but I strongly advise you to not do this

Ohh. 👍  That would be awesome. When can we expect this to be released?
I'm not seeing any lib folders only src. So I need to npm install inside each package. I guess a better question is: is there a better way to extend components to add styles and such?

Just use the install.sh, it will linkg everything to use it in dev mode :)
And gulp build to build to whole repo ( everytime you have a modification you have to gulp build )

Hi @mklemme, sorry we didn't update you earlier but this is in beta and available right now (including on the try it live, example)

MJML v3.3.0 is out, fixing this issue! Thanks again for submitting, definitely a great feature :-).
To install: npm install mjml


fix bugs in class my_new_accelerator

data_address should be increased as data goes while read or write data using mmio
fix self.mmio.write(RAW_DATA_OFFSET, raw_data[i]) to self.mmio.write(RAW_DATA_OFFSET+4*i, raw_data[i]

Thanks for pointing out this issue. I agree on what you have changed.
For this notebook, can you restart the kernel and rerun all the cells? In that case, the cell count will start from 1, instead of 24.

I have restarted the kernel and reruned the cells.
Any more comments?

That is fine. Please give us more time to merge your request.

Hi Rock,
Thanks for your polishing. I've also learned a lot from that.
Sonny


Error when trying to add interlock/door to platform

Describe the bug
When trying to use the firmware from https://github.com/membermatters/mainboard-firmware, the platform errors with the following in the MemberMatters log:
membership    | <IP_ADDRESS>:32848 - - [04/Sep/2023:19:08:33] "WSCONNECTING /ws/access/door/<MAC_ADDR>" - -
membership    | 2023-09-04 19:08:33,173 app INFO     Door connected!
membership    | 2023-09-04 19:08:33,437 daphne.server ERROR    Exception inside application: Doors matching query does not exist.
membership    | Traceback (most recent call last):
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/routing.py", line 71, in __call__
membership    |     return await application(scope, receive, send)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/sessions.py", line 47, in __call__
membership    |     return await self.inner(dict(scope, cookies=cookies), receive, send)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/sessions.py", line 263, in __call__
membership    |     return await self.inner(wrapper.scope, receive, wrapper.send)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/auth.py", line 185, in __call__
membership    |     return await super().__call__(scope, receive, send)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/middleware.py", line 26, in __call__
membership    |     return await self.inner(scope, receive, send)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/routing.py", line 150, in __call__
membership    |     return await application(
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/routing.py", line 150, in __call__
membership    |     return await application(
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/routing.py", line 150, in __call__
membership    |     return await application(
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/consumer.py", line 94, in app
membership    |     return await consumer(scope, receive, send)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/consumer.py", line 58, in __call__
membership    |     await await_many_dispatch(
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/utils.py", line 51, in await_many_dispatch
membership    |     await dispatch(result)
membership    |   File "/usr/local/lib/python3.10/site-packages/asgiref/sync.py", line 479, in __call__
membership    |     ret: _R = await loop.run_in_executor(
membership    |   File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
membership    |     result = self.fn(*self.args, **self.kwargs)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/db.py", line 13, in thread_handler
membership    |     return super().thread_handler(loop, *args, **kwargs)
membership    |   File "/usr/local/lib/python3.10/site-packages/asgiref/sync.py", line 538, in thread_handler
membership    |     return func(*args, **kwargs)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/consumer.py", line 125, in dispatch
membership    |     handler(message)
membership    |   File "/usr/local/lib/python3.10/site-packages/channels/generic/websocket.py", line 38, in websocket_connect
membership    |     self.connect()
membership    |   File "/usr/src/app/memberportal/api_access/consumers.py", line 60, in connect
membership    |     self.door = Doors.objects.get(serial_number=self.door_id)
membership    |   File "/usr/local/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
membership    |     return getattr(self.get_queryset(), name)(*args, **kwargs)
membership    |   File "/usr/local/lib/python3.10/site-packages/django/db/models/query.py", line 435, in get
membership    |     raise self.model.DoesNotExist(
membership    | access.models.Doors.DoesNotExist: Doors matching query does not exist.

I get the same error when I try to create the door/interlock via the admin UI as well, so this seems to be an issue with MemberMatters rather than with the mainboard firmware.
To Reproduce
Steps to reproduce the behavior:

Install the Firmware
Power up the device
View the logs
See error

Expected behavior
The Door object is created if it does not already exist, and the mainboard is registered with the platform.
Additional context
I suspect this is due to Doors inheriting from AccessControlDevice   but for some reason it's trying to look up its own ID which doesn't exist and then fails.

I’m just heading to bed, and can take a proper look tomorrow, but from memory it was a specific decision that doors had to be added before they could connect. In the interest of security and not having random doors connecting etc. to your instance, the web socket API will only allow the connection if the door exists and the serial number (ie MAC address, but could be any fixed identifier) matches. Ideally we’d have some sort of discovery / approval queue but that was more work I didn’t have time for. ;)
you can see the logic here: https://github.com/membermatters/MemberMatters/blob/b1c363e00e39dc338c74a77df704c643904f2bfd/memberportal/api_access/consumers.py#L49
tl;dr If you add the door first, and make sure the serial number matches, it should allow the door to connect. If you think this behaviour should be changed, happy to have a discussion. :)

Ohh I see. Sorry thought it was just on websocket connect. I’ll take a look tomorrow some time. :)

Sure, same error:
Environment:

Request Method: POST
Request URL: https://members.makemonmouth.co.uk/admin/access/doors/add/

Django Version: 3.2.20
Python Version: 3.10.13
Installed Applications:
['constance',
 'constance.backends.database',
 'django_prometheus',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'oidc_provider',
 'channels',
 'profile',
 'access',
 'group',
 'memberbucks',
 'api_spacedirectory',
 'api_general',
 'api_access',
 'api_meeting',
 'api_admin_tools',
 'api_billing',
 'corsheaders',
 'rest_framework',
 'django_celery_results',
 'django_celery_beat']
Installed Middleware:
['django_prometheus.middleware.PrometheusBeforeMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'corsheaders.middleware.CorsMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'membermatters.middleware.Sentry',
 'membermatters.middleware.ForceCsrfCookieMiddleware',
 'django_prometheus.middleware.PrometheusAfterMiddleware']

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py", line 38, in inner
    response = await get_response(request)
  File "/usr/local/lib/python3.10/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
    response = await wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/contrib/admin/options.py", line 616, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 232, in inner
    return view(request, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/contrib/admin/options.py", line 1657, in add_view
    return self.changeform_view(request, None, form_url, extra_context)
  File "/usr/local/lib/python3.10/site-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/contrib/admin/options.py", line 1540, in changeform_view
    return self._changeform_view(request, object_id, form_url, extra_context)
  File "/usr/local/lib/python3.10/site-packages/django/contrib/admin/options.py", line 1586, in _changeform_view
    self.save_model(request, new_object, form, not add)
  File "/usr/local/lib/python3.10/site-packages/django/contrib/admin/options.py", line 1099, in save_model
    obj.save()
  File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 739, in save
    self.save_base(using=using, force_insert=force_insert,
  File "/usr/local/lib/python3.10/site-packages/django/db/models/base.py", line 763, in save_base
    pre_save.send(
  File "/usr/local/lib/python3.10/site-packages/django/dispatch/dispatcher.py", line 180, in send
    return [
  File "/usr/local/lib/python3.10/site-packages/django/dispatch/dispatcher.py", line 181, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "/usr/src/app/memberportal/api_access/signals.py", line 24, in save_or_create_door
    door = Doors.objects.get(pk=instance.id)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/db/models/query.py", line 435, in get
    raise self.model.DoesNotExist(

Exception Type: DoesNotExist at /admin/access/doors/add/
Exception Value: Doors matching query does not exist.

Thanks in advance!

#213 should provide a fix for this - whether it provides a "good quality" fix is another question... :rofl:

Forgot to mention this should be fixed now. I went to review your PR (thanks for that!) and realised my original code was using the wrong signal so made some other changes to hopefully fix it "properly".


[3.x] Fixed issue where bones become detached if multiple SkeletonIK nodes are used

I tested locally and in my setups multiple SkeletonIK nodes can now be used without the bones becoming detached. I also tested to make sure BoneAttachment nodes still work, so everything should be good there as well.
Once merged, I'll make a PR for Godot 4.0 with the same changes.
Closes #48772

Thanks for the review @akien-mga. One day I'll remember to add those pesky p_ automatically ahead of time.

Thanks!

Cherry-picked for 3.3.3.


feat(Topology/Order): continuity of Finset.sup, partialSups etc

Also rename Filter.Tendsto.sup_right_nhds to Filter.Tendsto.sup_nhds etc.

[ ] Should it be Filter.Tendsto.nhds_sup?
[ ] Should I put lemmas about Finset.sup etc in a new file too?

bors r+
Thanks!


bug: cursor is not shown in inline code

Hi,
first of all thanks for your awesome work on this plugin! It looks really great and adds a lot of fun working on documentation!
I experience one small issue. When in normal mode, the cursor jumps through inline codeblocks, such that single characters cannot be selected. Hopefully it's visible in the screen recording.
https://github.com/OXY2DEV/markview.nvim/assets/4348959/071b891e-058c-4cbe-9905-097206fb05d1
It's occurring on the dev and main branch. Here are the versions used:
neovim:
NVIM v0.10.0
Build type: Release
LuaJIT 2.1.1713773202

markview: 7dd8bdbac48a5e314d682e4dd81f7e7251e5d0b4 (dev branch)
colorscheme: catppuccin
Please message me in case you need any further details.
Keep up the great work!

That's because they use inline virtual text. It's one of the drawbacks.

Let me tell you the actual issue

The plugin uses conceallevel and neovim hides the backticks for inline codes so if I try to add padding to the text I may unintentionally remove other text.
This becomes a bigger issue when they are inside of tables(since I have no actual way to check how much text is concealed).
Which is a bit of a drawback.
I will have to rework on this eventually(to use add_hl() and inline_virt_text() together instead of this mess).

Thanks a lot for your fast reply and the details!

Thanks a lot for your fast reply and the details!

I actually did push a change to how links & inline code blocks. It is available in the dev branch.

Thanks a lot for the quick fix! It works like a charm


feat: add integration docs

Non relevant anymore.

Integration doc is being updated into the WooFi gitbook.


the react code cant run

the code fornt react，in folder ‘client’ ，  have a lot of errors
just like import getWeb3 from "./utils/getWeb3";

Hi, sorry to hear that. I've fixed some errors and pushed it. Please pull the latest commit and work on it. Thank you for pointing out errors :)


Possible bug in decision when to get new color image

I'm trying to setup an F200 and while I still have driver problems, I had a look at the code and found :
l. 713 in base_nodelet.cpp
getStreamData(RS_STREAM_COLOR) fills image_[RS_STREAM_COLOR] which is read in publishPCTopic to create a colored pointcloud. I especially don't understand the '<= 0' part. Shouldn't an image get pulled if we have at least on subscriber (for the color image OR the colored pointcloud)?

Hi @NikolasE
Nodelet publishes topics/streams only if there is a subscriber. So if there is no subscriber to the color stream, getStreamData(RS_STREAM_COLOR) will not be called. In this case if user subscribes to pointcloud topic, image_[RS_STREAM_COLOR] needs to be filled by calling getStreamData if no color data is already available. So '<=0' check in l.713 covers the case when there is no subscriber to color stream but a subscriber to pointcloud.

Closing due to no response.


Vim doesn't immediately apply wincolor to terminal window, only after pressing CTRL-L

Describe the bug
The wincolor of a terminal window is not applied immediately in Gvim. The color is set correctly only after pressing CTRL-L. The same can be observed in terminal Vim when termguicolors is enabled. It works as expected with notermguicolors.
Note: When the terminal buffer is opened in a popup window, a single CTRL-L press is enough, while when it's opened in a normal window one needs to press CTRL-L twice.
To Reproduce

Run gvim --clean -c "source tmp_1.vim" with

" tmp_1.vim
call term_start(&shell, #{hidden: 1, term_finish: 'close'})
    \ ->popup_create(#{minwidth: 70, minheight: 10, border: []})
set wincolor=Pmenu

Press CTRL-L. Now the color of the terminal is set correctly to wincolor.
The same can be observed in terminal Vim when termguicolors is enabled. Run vim --clean -c "source tmp_2.vim":

" tmp_2.vim
set termguicolors
call term_start(&shell, #{hidden: 1, term_finish: 'close'})
    \ ->popup_create(#{minwidth: 70, minheight: 10, border: []})
set wincolor=Pmenu

With notermguicolors the color of the terminal window is set correctly.
Expected behavior
Vim should set wincolor immediately without having to press CTRL-L, just like with notermguicolors in terminal Vim.
Screenshots
Gvim: before (left) and after (right) pressing CTRL-L:

Environment
Vim version 8.2.416

and maybe something else...

Maybe some terminal setting as displayed by :pu=execute('set termcap').

However, when I do the same experiment in st instead of xterm, then Pmenu is not used, even after a manual redraw.

That's because t_8f and t_8b were not set then:
let &t_8f = "\e[38;2;%lu;%lu;%lum"
let &t_8b = "\e[48;2;%lu;%lu;%lum"

Strange.  I can make it work with a timer:
func Redraw(id)
  call feedkeys("\<C-L>", 't')
endfunc

call timer_start(500, function('Redraw'))

But using ":redraw!" instead of feedkeys() doesn't work.

I was pressing CTRL-L while in terminal insert-mode. So it's not even Vim's :redraw. Running clear in the shell works, too.

But using ":redraw!" instead of feedkeys() doesn't work.

I have also noticed that popup windows are not consistently updated when the cursor stays in command-line mode. For example, a popup-filter can be called from command-mode but the popup window is never redrawn. I can open a separate issue about that.
I'm not sure if this is relevant but this is the output of set termcap? in Gvim:
--- Terminal codes ---
  t_AB=               t_fs=               t_RT=               t_u7=
  t_AF=               t_GP=               t_RV=               t_ue=^[|8H
  t_AL=^[|%p1%dI      t_IE=               t_Sb=               t_us=^[|8h
  t_al=^[|i           t_IS=               t_SC=               t_ut=y
  t_bc=               t_ke=               t_se=^[|16H         t_vb=^[|f
  t_BE=               t_ks=               t_Sf=               t_ve=
  t_BD=               t_le=^H             t_SH=               t_vi=
  t_cd=               t_mb=               t_SI=               t_VS=
  t_ce=^[|$           t_md=^[|2h          t_Si=               t_vs=
  t_cl=^[|C           t_me=^[|31H         t_so=^[|16h         t_WP=
  t_Ce=^[|8C          t_mr=^[|1h          t_SR=               t_WS=
  t_Co=               t_ms=y              t_sr=               t_xn=y
  t_CS=               t_nd=^L             t_ST=               t_xs=
  t_Cs=^[|8c          t_op=               t_Te=^[|4C          t_ZH=^[|4h
  t_da=               t_RF=               t_te=               t_ZR=^[|4H
  t_db=               t_RB=               t_TE=               t_8f=
  t_DL=^[|%p1%dD      t_RC=               t_ti=               t_8b=
  t_dl=^[|d           t_RI=               t_TI=
  t_EC=               t_Ri=               t_Ts=^[|4c
  t_EI=               t_RS=               t_ts=
  t_cm=^[|%p1%d;%p2%dM
  t_cs=^[|%p1%d;%p2%dR
  t_CV=^[|%p1%d;%p2%dV

Not sure it's relevant, but how do you configure the binary?

This is the output of version:
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Mar 20 2020 20:17:41)
Included patches: 1-420
Compiled by bfrg@laptop
Huge version with GTK2 GUI.    I can definitely see the white background, but only for a fraction of a second:

It appears the trick is to make the shell trigger the redraw.  From the Vim side, and specifically libvterm, the colors need to be set before the program in the terminal draws anything.  Once the terminal is open, changing the colors won't have an immediate effect, since Vim and libvterm can't tell where the default color was used.
To avoid the problem, set the Terminal highlighting before creating the terminal:
hi link Terminal Pmenu
call term_start(&shell, #{hidden: 1, term_finish: 'close'})
\ ->popup_create(#{minwidth: 70, minheight: 10, border: []})
I don't see a way to redraw the terminal without destroying what the program running in the terminal has already displayed.

Would it be possible to add a new highlight entry to term_start() that specifies the Terminal color for that specific terminal buffer? So something like:
call term_start(&shell, #{hidden: 1, highlight: 'Pmenu'})

If not specified it falls back to Terminal which itself falls back to Normal when not set by a colorscheme.
term_start() already has the entry ansi_colors for specifying 16 color names. Adding a new highlight entry that sets the foreground/background color makes it complete.


Step back feature for executing hexagony programs

Save some amount of recent execution state to allow stepping back.

Implemented in 6e49376.


Tooltips and hint texts in service creation modal (healthchecks and networking)

ℹ Change coming from this PR: https://github.com/dcos/dcos-ui/pull/1791

This pull request adds tooltip texts in the create service form for healthchecks, and brings networking hint texts into line with our current design documents.
Checklist

[ ] Did you add a JIRA issue in a commit message or as part of the branch name?
[ ] Did you add new unit tests?
[ ] Did you add new integration tests?
[ ] If this is a regression, did you write a test to catch this in the future?

Yep, looks good!


erasing running container volumes centos6 + docker 1.4.1

Hello!
I've noticed this script removing running container volumes on centos + docker 1.4.1 (in boot2docker)... using the docker container way to run the script.
What more information can I provide?
Topper

Same here. CoreOS 557.2.0 with docker 1.4.1

OK, of course. The problem is that the docker container contained 1.5.0 version of docker client. While docker daemon installed on the host is 1.4.1. As a consequence, docker ps failed, so allvolumes array was empty, hence the script removed all volumes.

A simple solution is to make sure that docker client can communicate with the docker daemon. If it cannot, the script should fail. Something similar to:
#!/bin/bash

set -eo pipefail

...

# Fail if server is not reachable
docker info >/dev/null

for $(docker ps -qa ...


fix(general-roman): the Passion of Saint John the Baptist in red, without using a Martyr title

well, that's confusing. commitlint passed fine on your PR, but not on the build :-/

I just fixed it on dev. Indeed, when merging, GitHub appended the PR reference " (#584)" at the end, which made the title longer.
I'm not sure if there's a way to add validations at this level, but I don't think so... 🤔

i'll do some tests

@emagnier fix for that https://github.com/romcal/romcal/pull/585


Implement a Thunk type

Currently the Parser requires a closure around potentially recursive code to act as a termination point to prevent infinite recursion. In most cases, a closure would be more than sufficient to accomplish this, however to cut down on redundant empty closures and to provide additional types for further building, it would be nice to add an explicit Thunk type to wrap this functionality.

Potentially could replace this with https://docs.rs/futures/0.3.5/futures/future/fn.lazy.html


Fix Rails/Presence cop when #present? or #blank? is used in if or unless modifier

This PR should fix Rails/Presence cop when #present? on #blank? is used in if or unless modifier.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run rake default or rake parallel. It executes all tests and RuboCop for itself, and generates the documentation.

Thank you for fixing. I think this is a serious bug :bowing_man:

👍


Commit properly for all the topics subscribed

cc @wikimedia/services

Coverage increased (+0.2%) to 89.744% when pulling b4decc4fc35240a3bc5d1b537f99e66bc69fb28e on Pchelolo:correct_commits2 into 589391feb31fec39d08d646465bcb75821a33b2f on wikimedia:master.

Coverage increased (+0.2%) to 89.744% when pulling b4decc4fc35240a3bc5d1b537f99e66bc69fb28e on Pchelolo:correct_commits2 into 589391feb31fec39d08d646465bcb75821a33b2f on wikimedia:master.


Upgraded go version in the Dockerfile for bosun build

The Bosun compilation by running bosun/cmd/bosun/docker/docker.sh currently fails:
> ./docker.sh
> ...
> Step 14/14 : RUN go run build/build.go     && bosun -version     && scollector -version     && tsdbrelay -version
> building bosun
> go install -ldflags -X bosun.org/_version.VersionSHA=03ad93d1efaf9a14d95f9a8da7e9cf08974ae67c -X bosun.org/_version.VersionDate=20181215204533 bosun.org/cmd/bosun
# bosun.org/cmd/bosun/database
cmd/bosun/database/migrate.go:109: undefined: sort.Slice
2018/12/15 20:46:33 exit status 2
exit status 1

This happens because the build is using go1.7, while sort.Slice was introduced in 1.8, see https://golang.org/pkg/sort/#Slice
This commit contains the golang version upgrade 1.7 → 1.8 needed for compilation to proceed.
@kylebrandt @captncraig please have a look.
Perhaps, it makes sense to upgrade to an even higher version, not just to 1.8.

According to #2319 will upgrade to v1.11. Thanks, @pradeepbbl for pointing this out.


[DevOps] Github Action - Automatize test runner at merge

Solves
closes #68
Description
As Carbonable, we want to use Github action to launch tests during CI/CD when we merge on main. CI should fail if all tests don't pass.
Acceptance Criteria

[X] Implement Github Action to launch tests through a script in bash.
[X] If some test fails, CI should fail and a message should explain which test crashed.
[X] Config to trigger this Github action only when PR are merged in Main branch

Solution
A new GitHub action workflow was added to the repo. It was configured to be triggered on PR merged to main.
The workflow steps include:

The Scarb Setup with version 2.5.4
The snfoundry setup with version 0.18.0
Run the tests (scarb test)
Extract the statistics from the tests output (total passed tests, failed, skipped, etc) to display them in a more user friendly way, instead the whole test output.
If one or more tests failed, display which one(s) have an error and the CI fails.

Examples
Test failed:

Success:

Thank you @julienbrs !!
Already extracted the logic of the step into a bash script.
Regarding the readme task, so would you want the gh action to automatically update the readme file just with the number of passed tests? And what do you mean by "a badge"?

Thank you @julienbrs !! Already extracted the logic of the step into a bash script.
Regarding the readme task, so would you want the gh action to automatically update the readme file just with the number of passed tests? And is this the badge you are referring to?

Yes indeed, update the readme automatically. You can either put the badge you just linked, or a badge where it's written the number of tests that passed (that's kinda the same, it's just to have a cool UI badge for it)

Yes indeed, update the readme automatically. You can either put the badge you just linked, or a badge where it's written the number of tests that passed (that's kinda the same, it's just to have a cool UI badge for it)

Got it! Will update the PR in a few. Let you know once it's ready.

@julienbrs The comments are fully implemented now! Please review!
Below you will find an screenshot of how the badge would appear in the readme. Please let me know if I should make any changes.

@all-contributors add @lindsaymoralesb for code and that great contrib! :heart_hands: :seedling:

LGTM, I just changed the location of the badge in the readme. Congrats for your PR, really nice and clean work!

Thank you!! Hope to contribute again to this amazing project.
Btw, I just noticed the workflow failed on the last step (committing the readme update). Please make sure to update the workflow permissions under the project settings. Go to actions and it should have read and write selected. @julienbrs


Cron tasks can give weird errors if enqueue fails

I was attempting to have a recurring job in cron, and I kept on getting errors with no trace back in the SolidQueue service:
SolidQueue-0.3.1 Skipped recurring task – already dispatched (671.0ms)  task: :index_records, at: 2024-06-26 19:54:00 UTC
SolidQueue-0.3.1 Error in thread (0.0ms)  error: "NoMethodError undefined method `provider_job_id' for false:FalseClass"

After a bit of investigation, it turns out that if perform_later returns false for a cron job, this will be the error displayed. Similarly, if I make the job not use SolidQueue, it will display an error that job_id is undefined for false:FalseClass. I believe, but I'm not sure that it can happen if a recurring job is attempted to be enqueued while it's already running, or if multiple instances of SolidQueue are trying to enqueue the same recurring job at the same time.
Would it be a good idea to give a more descriptive error in the case that this happens?

Huh, yes, this seems wrong. I'll look into it, it shouldn't crash in that way.

I believe here are some of the culprits:
lib/solid_queue/dispatcher/recurring_task.rb line 41: for a cron job that is not run using SolidQueue that returns false
lib/solid_queue/dispatcher/recurring_task.rb line 68 into app/models/solid_queue/recurring_execution.rb line 11: for a cron job that is run using SolidQueue that returns false

@minamete, indeed! I realised the problem: I need to provide a block to perform_later to ensure I get the instance of the job class enqueued, my bad.
I'll work on a fix shortly.

In the end I went for something simpler in #252, I think that should do it.

This one should be fixed with #252. Thanks again for the report!


Overlapping Events Not Being Detected

I've seen numerous instances of events not being properly detected as overlapping, which causes one event to draw atop another given than their x-offset is incorrectly calculated.
In TimelineView.recalculateEventLayout(), the currently-operated-on event is only checked for overlap with the array's most recently added event, not the previous events in the array that could potentially be overlaps.
Is this potentially related to issue #43 ?

Hi @jurysch,
you're absolutely correct, it's a know issue. Thanks for reporting. I will get back to it in a couple of weeks.

@jurysch, I've improved algorithm in PR #67, does this algorithm resolves your issue?


Execute Arbitrary package.json Scripts

Describe the feature you'd like to request
Right now you are given an error message when you attempt to execute turbo run using a command that is not a pipeline in your turbo.json file. With our pnpm workspace we have to use both pnpm {command} --filter={package} and turbo run {command} --filter={package} depending on whether or not a command exists within a pipeline. It would be great if we could use a single tool for all of our commands.
As an aside, the error message:

failed to resolve targets: task test:js not found in turbo pipeline in package.json. Are you sure you added it?

Seems to indicate pipelines used to live in the root package.json. Should that be updated?
Describe the solution you'd like
Since turbo just executes package.json scripts as tasks, it would be convenient if it could execute arbitrary commands. This would default to "cache": false since there is no pipeline definition. The main issue I see with this would be ambiguity about whether or not a command was being executed as a pipeline or arbitrarily. I think that's fine though since it would give the message that it isn't using a cache due to configuration.
The other benefit here is that we'd get to use the comprehensive package filtering functionality on any script. A single syntax for running commands in a monorepo!
Describe alternatives you've considered
An alternative would be to just add every single possible package.json script from any package to the turbo.json. I believe this is unreasonable, however, since that could be a very large amount of variability. I do think this is a good way to enforce consistency to avoid accidents but it seems unnecessary.

I think with a reasonable set of defaults (no dependencies, no caching), this could work.

@gsoltis Would it be possible to still support the dependency traversal provided by the --filter syntax using the ... token?


Adding support for RoBERTa layers_transform in COMMON_LAYERS_PATTERN

Description
This pull request aims to enhance the COMMON_LAYERS_PATTERN in order to support RoBERTa's layers_transform feature. Currently, the key format for RoBERTa layers is as follows: roberta.encoder.layer.0.attention.self.query. By adding the term 'layer' to the COMMON_LAYERS_PATTERN, we ensure compatibility and enable the transformation of RoBERTa layers.
Changes Made

Updated the COMMON_LAYERS_PATTERN by including the term 'layer' to accommodate RoBERTa's key format.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Fix capabilities publish

What this PR does / why we need it:
Now we use rsync to compare different and publish files to OSS registry. When we delete some wrong file rsync will still keep it. Maybe we should just use cp and ossutil sync -f --delete to overwrite all files in registry.
Which issue(s) this PR fixes:

Fixes #1830
Special notes for your reviewer:

-1.
We should keep those legacy definitions due to forward compatibility, so I didn't implement a similar PR in my original design. As for the wrong ones, we can delete them manually.
If manage, if a user used definition X, somehow, we removed it from our codebase, X will be removed. This is not acceptable.

Well, got it. then we should remove files below: manualscale.yaml, podenv.yaml, for-loop.yaml @zzxwill


Conditionally require faraday/multipart

Only Require Faraday Multipart if Faraday Version is greater than 2 because Faraday V1 includes the gem already.
https://github.com/alexrudall/ruby-openai/issues/392
All Submissions:

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?

@ajGingrich I would definitely prefer that as it could affect tens of thousands of people if we get it wrong :) I always try to test PRs as much as possible even small ones. Thank you!

eep, you're right...
I think we need to require faraday json response and request middleware, but can't find the right library 🤔
Thanks for checking, that's a really good spot


SPN changes when connecting to service on non-standard port

So this goes back to change in 5.0. When using Kerberos/Negotiate authentication with HttpClient we would start using port when constructing SPN to lookup the service. That on it's own is breaking change. It was reported but several people and fixed in 6.0. when we made the behavior optional using AppContext property.
In 6.0, the default behavior is turned off i.e. it mimics 2.x/3.x and somebody can turn it on.
We did not backport the switch to 5.0, but if we do, we would probably leave it on by default so there is no new breaking change in middle of 5.0 servicing releases.
Details here https://github.com/dotnet/runtime/pull/57159

Duplicate of #26603


"Unknown Human Player" in Name Field w/ 0 Turns (Stats Screen)

Hey, love the program, but recently I have been seeing "UNKNOWN HUMAN PLAYER" appear in the stats window. The "turns" goes to 0 also, but the win/lose condition is recorded correctly. I cannot attribute this to anything, it appears to happen a lot when playing against warlocks though but I have also seen it with druid and priest (it happens rarely, but still enough to be annoying, especially when some of my decks are important in number of turns and I review games sometimes and stuff to see if there is any correlation between number of turns and my win condition (mainly this is dealing with my Fatigue Mage, but also I like to examine if number of turns does anything with my Control Warrior as well).
The earliest I see this occuring in my logs is Jan 9th 22:48 (against a Priest) and since then it happens in something like 1-5% of my games.
Here is a screenshot of what I am talking about: https://imgur.com/lazamhA
Would be great if you could figure out why this is occurring for me. I believe the app auto-updated on that day, so perhaps something in the release that came out around Jan 9th had some sort of bug? The only weird thing, is there does not appear to be any other issue here for this yet, so perhaps this is something with my specific setup. Let me know what you need in terms of logs and stuff and I can try to provide that.
Thanks :)

I can confirm this issue, it occurs maybe 1-2% of the games for me also, and was also reported informally. I'll investigate it for sure when I reproduce it, it's related to some pattern in the log file I guess.
About the screenshot you posted, it seems to be from a concurrent tracking tool, no ?

Well makes sense why he kept his code close sourced and it worked super well. He's been using log parsing for a while now.

Sorry I'm just realizing now I think I may have somehow made this under the wrong github?! (hearthstone deck tracker vs hearthstats) or are these the same thing? Sorry just a lil confused cause I've never heard of hearthstats but I do use "hearthstone deck tracker", could have sworn I opened this issue under there but I may have mixed something up, haha. Good to hear that I'm not the only one with this bug though. Not sure what you mean by "concurrent", care to elaborate?
Thanks!!

Yeah so it looks like I guess this is in the wrong github, I really have no idea how I mixed this up sorry I'm kinda new to Github haha. I'll close this one off and add the ticket to the proper github project for the program I am dealing with, which is here: https://github.com/Epix37/Hearthstone-Deck-Tracker/issues/new


Update cloud function to 2nd generation

Firebase team confirmed that scheduled functions are not available in 2nd generation cloud functions. Will stick with 1st generation.


[BUG]: HLS Streaming is not giving seamless streaming experience.

Version
6.2.0
What platforms are you having the problem on?
Android
System Version
Android 12, 13, 14
On what device are you experiencing the issue?
Real device
Architecture
Old architecture
What happened?
I'm using this library for HLS streaming and I'm using m3u8 URL. Earlier it was good, but now it's not giving seamless HLS video streaming the video is stopping in between just for milliseconds.
Reproduction
repository link
Reproduction
Step to reproduce this bug are: Just try to play some m3u8 URL atleast 30 minutes video then you can easily find the issue.

@freeboub Please check the issue as I really need this issue to be fixed.
Thanks in advance!

@MdAbubakar , I am sorry, but I don't have time to do 30 min streaming... I am afraid, You will need to investigate more on your side.
It seems you are pointing out the issue as a regression.

Can you clarify which version is working fine ? Did you try to record a memory trace ? (Maybe due to a memory leak).
Are you able to reproduce it with the sample ?
I wonder if another component can also leak ?

@freeboub You can check with the 5-minute video also,
for your reference, I'm giving my implementation of the video player:
<Video
source={{
uri: videoURL,
}}
style={styles.video}
resizeMode={
showFullscreen && fitToScreen
? ResizeMode.COVER
: inPipMode
? ResizeMode.COVER
: ResizeMode.CONTAIN
}
ref={videoRef}
onProgress={handleVideoProgress}
// repeat={true}
playInBackground={false}
poster={videoSource?.image_url}
posterResizeMode="contain"
paused={isCasting ? true : preAds ? true : showAd ? true : paused}
fullscreen={showFullscreen}
fullscreenOrientation={"landscape"}
onLoadStart={() => {
setIsLoading(true);
setPaused(true);
}}
onLoad={handleVideoLoad}
selectedVideoTrack={{
type:
selectedResolution === 0
? SelectedVideoTrackType.AUTO
: SelectedVideoTrackType.RESOLUTION,
value: selectedResolution === 0 ? "NA" : selectedResolution,
}}
volume={volume}
shouldPlay={true}
onEnd={() => {
if (isInPipMode) {
PipHandler.exitPipMode();
}
if (preview) {
Orientation.lockToPortrait();
}
onEnd();
}}
bufferConfig={{
minBufferMs: 15000,
maxBufferMs: 90000,
bufferForPlaybackMs: 3000,
bufferForPlaybackAfterRebufferMs: 10000,
backBufferDurationMs: 120000,
cacheSizeMB: 10,
}}
onBuffer={() => {
if (isCasting) {
setIsLoading(false);
} else {
setIsLoading(true);
}
}}
onAudioFocusChanged={event => {
if (!event.hasAudioFocus) {
setPaused(true);
setActiveCall(true);
} else {
setPaused(false);
setActiveCall(false);
}
}}
/>

I'm experiencing this degradation of quality as well on 6.2.0 but I saw it on 6.1.1 as well. Will continue to debug, I'm using all the default settings for BufferConfig (as in I'm not sending anything into it).

@paulrinaldi @MdAbubakar it would be a very good information to know on which version the regression happened... I agree it's not fun to do dichotomy to find a regression 😣

@freeboub it fixed after adding these params:
useTextureView={false}
disableFocus={true}
shouldPlay={true}


Check line mappings in 2016 FERC Form 1 for historical consistency

FERC Form 1 for 2016 is out! This means we need to check and make sure that the line-to-field mapping that we've created for some of the database tables is still valid for 2016.  These tables include Plant in Service and Accumulated Depreciation.  The issue here is that if a new line (e.g. battery storage) is inserted into the "Plant in Service" table, then the line number on the form, which is associated with all of the data fields which follow that field may shift by one, meaning we'll be mapping the numbers from the wrong line to a given database field.
A similar issue (#55) needs to be addressed in the FERC data from 2004-2006 (where we know there are some lines that don't match up)

There's an additional table in 2016 - the "Regional Transmission Service Revenues (Account 457.1)" which was previously part of Line 42, "Electric Operating Revenues".
Fuel and Steam are both unchanged.

Do you mean a whole new FERC table? Or just a new division of lines?  What table is that in?  I thought we'd also identified some inter-year changes where things like electricity storage had been added as a line-item.  No?


gitea trait

a work in progress as it just fetches commit messages for non-forked sourced pull requests


Fix a couple of deprecation warnings

Those travis failures were nothing to do with my patch. They failed installing Python stuff.

Ping?

Awesome, thanks @gibiansky !


[QUESTION] What is the point of google.cloud.vision._fixtures

Sorry for being a little out of the loop on this one.
Running git grep _fixtures it looks like google.cloud.vision._fixtures meant to be content in unit_tests.vision._fixtures

Looks like I missed this when I was rebasing. #2362 should do the trick.

Thanks


No explicit docs on using Openport with a key

Looking at the usage docs, there is nothing mentioned about using Openport with a key obtained from a paid account.
The usage text mentions a register subcommand, but no info is given on it.
On one of the recipes, there is a --register-key option used. This option is not mentioned in the help text, nor does it match the register subcommand. It is not accepted by the current release.
If these instructions are gated behind the user accounts page, that's not helpful in situations where a different person in an organisation may be setting up the account vs. integrating it into a device.

Indeed, the "register" and "--register-key" commands should be "register-key". I have updated the docs, and added a section about registering the key on the usage page. https://openport.readthedocs.io/en/latest/usage.html#linking-a-key-to-your-account
Thanks for the remark.


netlify deploy error: certificate is not yet valid

Getting an error today:  "netlify deploy" >>
"FetchError: request to https://api.netlify.com/api/v1/user failed, reason: certificate is not yet valid"

hey - we had a brief outage today due to an expired cert - can you please retry?

It was the new cert that had a brand new active date. My WSL2 linux environment that time drift that was the real problem. I'll close this issue, but for others getting this issue in WSL2: https://github.com/microsoft/WSL/issues/4114


Small TextView is broken scrolling using scrollbar

Describe the bug
A notably small TextView cannot be scrolled correctly using a scrollbar.
This bug relates to #2688 which is corrected. I am mentioning it here because it might need a regression test after this one is corrected.
To Reproduce
Steps to reproduce the behavior:

Add a quite short TextView, so that you don't have to insert a lot of text to reproduce the error.
Set it's ReadOnly property to true and its Text property to several lines, such that they exceed its height. Note that @BDisp had noted that the text view being a read only has nothing to do with the problem.
Attach a vertical scrollbar to it as demonstrated in the UI catalog.
Scroll down to the end using the keyboard arrow keys (I do it programmatically in the screenshot) and then try to scroll up again, by clicking on the scrollbar's arrows or using the mouse's middle button.
Notice that you cannot scroll back to the top.

Expected behavior
To scroll correctly.
Screenshots
Below I am demonstrating the inability to scroll using the scrollbar and the ability to scroll using the keyboard arrow keys with no problem. The bigger TextView above does not suffer from the same problem.

Desktop (please complete the following information):

OS: Windows
Version 10

@chr1st0scli can you test the fix in the #2770, please? Thanks.

@BDisp yes, sure.
I see that we didn't make it for 1.13.5, yes?

@BDisp everything works on this PR!

I see that we didn't make it for 1.13.5, yes?

Yes, but I'm sure that @tig will publish after this is merged. But I want to do some more unit tests to prevents this doesn't break in future.


Question about Text Constants in AL

How can I declare "quotation marks" as a text constant so that I can use this constant as a default for fields?
Unfortunately, quotes are used as text delimiters.

Identifiers are escaped with double "", if that was the question. Literals with double ''.

That is a step in the right direction.
I just have the problem that I want to predefine a programmed filter field for a function with the default value of the double quotation mark.
In the variable declaration I use either a label or a direct assignment but both types do not give the desired result.
Filter: Label ' ' ' ';
or
Field := ' ' ' ';
In both cases only a single quotation mark appears in the WebClient and my function leads to an error in the following. If I add another quotation mark in the field and in the client, then the filtering works.

The "problem" is solved.
To program a double quotation mark as default for a filter criterion, you need two escape sequences.
In addition to the declaration of the text there are therefore six! Quotation marks which are needed for the conversion in Visual AL.
Filter: Label ' ' ' ' ' ';
The case can be closed.


SlashUploader with PHP

Hello.
Sorry but my englsih is not so good.
You can help me by sending an example of the server in PHP.
I'm not able to upload using the "move_uploaded_file" command.
Thank you very much for the help.

SlashUploader is a client-side plugin, and can work with PHP. But on the server-side examples there's currently no PHP example, only C# example code.

Ok. But the plugin is not sending data to use in command "move_uploaded_file" in PHP.
Please, can you help me?

The "$_FILES" is empty.
Please, can you help me?


Removing code tags from the table

Tables with code tags don't render on docs.mbed at the moment; easiest to remove them so that the table renders correctly. In the context of the table the distinction between the two fonts isn't very helpful anyway

You know what? It works fine for mbed OS. Whatever the problem is, it's not the code tags.


Use CurrentAttribute instead of RequestStore

It has built-in support in Rails and also with Sidekiq and ActiveJob

@serprex What do you think? :)

I don't actually have much experience with the Ruby ecosystem, from what I gather CurrentAttribute is a RequestStore alternative in ActiveSupport? Would such a PR be backwards compatible? Otherwise would have to be slated for a 2.0 release


fix passive vents

About the PR

makes passive vents properly equalise air between environment and passive vent pipenet
should fix:

passive vents not properly exchanging temperature
the volume pump + passive vent infinite pressure bug (no more 1x1 burnchamber abuse) (closes #13748)
related passive vent bugs

Media

footage of a heater actually working in order to heat air (they were terribly inefficient at it before)

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

fix: Fixed several issues with atmos passive vents.

F frezon speedrun.

Summary of what we discussed on Discord:

The current behavior is probably more physically accurate, but the proposed behavior is more intuitive and easier to play. For example, with the current behavior, a freezer connected to a passive vent "doesn't work" to cool the room because the cold air in the pipe has lower pressure, draws air into the pipe from outside, and never lets the cool air out.
The new behavior would probably fix https://github.com/space-wizards/space-station-14/issues/13748
Investigated the impact on gas miners and concluded that there was probably no significant impact

If there are no other issues, this looks like a reasonable tradeoff to make things more playable.


Error - A callback was made on a garbage collected delegate of type 'WinApi!WinApi.User32.WindowProc::Invoke

I am making a series of web requests using HttpClient.GetAsync(), as part of an automation process (login to a site, navigate to a page, retrieve data)
using (var httpResponse = await _client.GetAsync(url))

HttpClient instance is reused between calls,
The first call goes through without problems, but the second call throws the error
A callback was made on a garbage collected delegate of type 'WinApi!WinApi.User32.WindowProc::Invoke'.

This code works fine outside Chromely.

@RupertAvery it will be nice to know where this is happening. Is it possible you share a pseudo code or so of where this is happening?

To replicate I added some code to the demo:
The httpClient is only created once in the constructor. Reusing HttpClient is the accepted practice, and in the service I am using it in, it is also only created once and reused for each request.
        HttpClient httpClient;

        public DemoController()
        {
            httpClient = new HttpClient();
             ...
        }

        private ChromelyResponse GetMovies(ChromelyRequest request)
        {
            List<MovieInfo> movieInfos = new List<MovieInfo>();
            string assemblyName = typeof(MovieInfo).Assembly.GetName().Name;

            using (var httpResponse = httpClient.GetAsync("http://www.google.com").Result)
            {
            }
            using (var httpResponse = httpClient.GetAsync("http://www.google.com").Result)
            {
            }
            using (var httpResponse = httpClient.GetAsync("http://www.google.com").Result)
            {
            }

...

Upon exit of the method, the exception is thrown from Program.cs at return window.Run(args);
Managed Debugging Assistant 'CallbackOnCollectedDelegate' : 'A callback was made on a garbage collected delegate of type 'WinApi!WinApi.User32.WindowProc::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.'

It will also happen if you only have 1 http request in the method. The first time you execute the method, it will work. The second call will throw the exception.

I was using the demo app code which used older versions of the libraries and Cef. After using the latest source and latest Cef  the problem seems to have gone away. Thanks!


DwC Mapping - MIXS:0000026 source_mat_id

Field
Value

subject_id
http://rs.tdwg.org/dwc/terms/materialSampleID

subject_definition
An identifier for the MaterialSample (as opposed to a particular digital record of the material sample). In the absence of a persistent global unique identifier, construct one from a combination of identifiers in the record that will most closely make the materialSampleID globally unique.

subject_usage_notes
Recommended best practice is to use a persistent, globally unique identifier.

subject_examples
06809dc5-f143-459a-be1a-6f03e63fc083

predicate_id
skos:exactMatch

object_id
MIXS:0000026

object_label
source_mat_id

object definition
A unique identifier assigned to a material sample (as defined by http://rs.tdwg.org/dwc/terms/materialSampleID, and as opposed to a particular digital record of a material sample) used for extracting nucleic acids, and subsequent sequencing. The identifier can refer either to the original material collected or to any derived sub-samples. The INSDC qualifiers /specimen_voucher, /bio_material, or /culture_collection may or may not share the same value as the source_mat_id field. For instance, the /specimen_voucher qualifier and source_mat_id may both contain 'UAM:Herps:14' , referring to both the specimen voucher and sampled tissue with the same identifier. However, the /culture_collection qualifier may refer to a value from an initial culture (e.g. ATCC:11775) while source_mat_id would refer to an identifier from some derived culture from which the nucleic acids were extracted (e.g. xatc123 or ark:/2154/R2).

object source
https://github.com/GenomicsStandardsConsortium/mixs-legacy/blob/master/mixs5/mixs_v5.xlsx

comment

Hi @tucotuco,
I just edited the above comment to correctly reflect the object ID and label as given by you in our SSSOM mapping spreadsheet (previously said lat_lon here). Hope it's now as you intended it!

Yes, that's how I intended it. I must have missed replacing lat_lon with source_mat_id after pasting the other table as a template. Thanks.

Suggested syntax predicate for the mapping above https://github.com/tdwg/gbwg/issues/18#issue-805164468

Field
Value

subject_id
http://rs.tdwg.org/dwc/terms/materialSampleID

subject_value_syntax - expected_value - unit

syntax_predicate_id
skos:exactMatch

object_id
MIXS:0000026

object_value_syntax - expected_value - unit
{text} - for cultures of microorganisms: identifiers for two culture collections; for other material a unique arbitrary identifier

syntax_comment
Both expect a mix of letters, numbers, etc.

Note that DwC has this as part of its definition:

In the absence of a persistent global unique identifier, construct one from a combination of identifiers in the record that will most closely make the materialSampleID globally unique.


PersonDirectory Scenario 3 code isn't correct

https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/use-persondirectory#scenario-3-identify-against-the-entire-persondirectory
Based on the documentation, the line
body.Add("personIds", new List<string>{"{guid1}", "{guid2}", …});
should be
body.Add("personIds", "*");
instead I think?
(Or maybe a list with a single item "*" ?)
Thanks.

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

ID: c4df5f96-e61b-ad7a-f0d2-27f8ed88b313
Version Independent ID: 0529713f-772e-978f-c25d-a2adc6d0b6be
Content: Example: Use the PersonDirectory structure - Face - Azure Cognitive Services
Content Source: articles/cognitive-services/Face/Face-API-How-to-Topics/use-persondirectory.md
Service: cognitive-services
Sub-service: face-api
GitHub Login: @PatrickFarley
Microsoft Alias: pafarley

@danzel - Thanks for brining this to our attention. We will investigate it further and update you shortly.


add natural langage processing

Expected behavior and actual behavior
the possibility to do queries with natural langage
there is a lot of library to do natural langage processing
https://en.wikipedia.org/wiki/List_of_natural_language_processing_toolkits

Can you explain how your suggestion would be more beneficial than the current SQL solution? Can you give some examples of how natural language can work better or be more efficient for the developer? What is the problem trying to be solved? Are there any other databases doing this?
Scott

Not relevant, closing it.


Reward computation based on next state instead of (state, action)

In the code (in the dynamics function/method), I believe that r_k is computed based on s_k (next_encoded_state) instead of (s_k-1,a_k).
Here is the pseudo function from the MuZero paper:

Here is the illustration from the MuZero paper:

The code computes r_1 using s_1 instead of (s_0,a_1)
Here is the corresponding part of models.py :
If I'm correct, 'x' (i.e., s_k-1, a_k)should be the input to the  'dynamics reward network':

Of course in practice, s_k is just a transformation of (s_k-1, a_k), so it's not likely to cause any issue. Is it done on purpose ?

Hi,
Yes you're right, it's a very interesting discussion. We had this kind of discussion during the implementation.
This diagram sums up what you are saying. We preferred to put the reward prediction network after the resnet so that the calculation of the effect of the action on the reward is shared between the resnet and the reward network. The reward network just has to estimate a state instead of also having to calculate the effect of the action. Either way, both ways of doing it should work.
It would be a good experiment.

Hi,
Yes you're right, it's a very interesting discussion. We had this kind of discussion during the implementation.
This diagram sums up what you are saying. We preferred to put the reward prediction network after the resnet so that the calculation of the effect of the action on the reward is shared between the resnet and the reward network. The reward network just has to estimate a state instead of also having to calculate the effect of the action. Either way, both ways of doing it should work.
It would be a good experiment.

Interesting indeed and it makes sense ! Thanks for the quick reply.
Both seem to work fine on my end (cannot conclude regarding performance so far however).

Closing this issue since we are not likely to change the formula of the current implementation but feel free to re open the issue for any thoughts / results of experimentations you could have on this subject !


Cross platform: future plan?

There exist WPF UIs drawn using SkiaSharp instead of System.Drawing. This could extend the interest of Live-Charts to communities using mono and xamarin for all 3 mobile platforms: android, ios, uwp.
Since this project is designed based on mvvm, perhaps the integration of skiasharp could be feasible without significant redesigning of the framework.

AWESOME!, actually the 0.7.0 version was a redesign, now the code has a core project, that does all the math, my idea was for every platform use the native shapes,
For example the core say hey view you need to draw a line at this coordinates
then every platform shod only draw the line calculated by the core
this is how the code was just restructured, currently there are views for Wpf and Winforms and my idea was to add all the other views, it is practically a lot of repetitive code just using the native shapes of the platform.
what you are saying is really interesting and could save a lot of repetitive and boring code.
I will take a look there, any other comments and help is appreciated

https://github.com/AvaloniaUI/Avalonia

Avalonia is really interesting, I am actually watching the library, and had a brief talk with a member of the avalonia team, but they are alpha, and LiveCharts is really close to a production version

https://github.com/mono/SkiaSharp
SkiaSharp has winform example.
If you could choose a simple live-charts example, try to implement the animation transformation which is missing in Skiasharp and do a proof of concept, I am sure the mono community will be excited.
https://github.com/AvaloniaUI/OmniXAML

I want to work on uwp version. I want use shared project to cross platform, like most cross platfrom library do. For example, ReactiveUI, MVVM-Sidekick and so on.
In addition, do you want to reference reactive-extension in the project or with a extension library?

@AuroraDysis I am open to options, with 0.7 I made the core of the library a PCL (portable class library), all the math is in the core of the library, the job of any specific platform version will be to use native controls according to the platform, it should not be that hard to build a UWP version.

Ok, we don't need to move all to shared project. Wpf and uwp have similar code, I mean. Most changes are only on namespace. We can use shared project to share code between uwp and wpf.

Closing this issue, we are already in progress with very nice results, 0.8 will include UWP, Xamarin you are next!


[ARO-6845] Add initial carrypatch removal support code

This allows us to inject our carrypatches in a centralised place instead of maintaining forks for everything we need to do.
As a proof of concept, it moves the MTU3900 patch to this new format.

Validated in local install mode:
Apr 15 15:22:18 bellwether aro[4108251]: stderr: level=info msg=applying feature flag Microsoft.RedHatOpenShift/MTU3900
Apr 15 15:22:18 bellwether aro[4108251]: stderr: level=info msg=applying ignition config patch &mtu3900.patch{}

/remove-lifecycle stale