fix(material/paginator): fix issue with paginator focus

Fixes an issue where focus is lost and goes back to the body when on the next, previous, first, or last buttons are disabled. Changed to where focus will now jump to the next appropriate button instead of focusing to body.
Before:
Screen recording 2024-05-07 9.22.24 AM.webm
After:
Screen recording 2024-05-07 9.19.26 AM.webm
Fixes b/286098030

This doesn't seem to capture the case of activating the button via other keypresses or clicks. It's also fragile depending on a 100ms delay to check whether the button becomes disabled and moving focus. Using afterNextRender would be more stable
It'd be nice if there was more intelligence in the paginator to know that a button has focus, but is about to lose focus so that it can directly move it. Right now it seems this change will see the focus move from the button, then to the body temporarily, then to another button.

How about adding a (blur) listener on the buttons that can check whether they are now disabled? If so, move focus to another element [that isn't disabled]

Another alternative is just to set disabledInteractive on the buttons, which lets them remain focusable after they become disabled

Looks like this is resolved by #29379.


just to mention

just  wanted to mention that these 2 items have been merged on neovim master already see https://github.com/neovim/neovim/pull/11668:

Option to change sign text.
Support different signs for different diagnosis level.

Wow that's amazing!
I'm just creating this plugins to let it be a wrapper of the built-in LSP so if the features is already built-in, maybe I'll add an option to disable it for different filetype.
thanks for the mention!


Spyking AI

Title
Spyking AI
This project aims to build a Tensorflow wrapper to build and train spiking neuron arrays connected though hebbian conections. This tool is proposed to study neural mechanisms during cognitive events, i.e., language production/comprehension
Leaders
Marco Antonio Flores Coronado @MarcoFloresCoro
Collaborators
No response
Brainhack Global 2023 Event
Brainhack Donostia
Project Description

What are you doing, for whom, and why?
We are building a new tool to study neural association between cortical regions. This will prove to be useful for cognitive and neural researchers
What makes your project special and exciting?
this will be the first spiking neuron based library aimed for cognitive research. Several other spiking neuron libraries exist, however those follow linear architectures to resemble DNN
How to get started?
The library will be based on Pulvermüller, F. (2013). How neurons make meaning: Brain mechanisms for embodied and abstract-symbolic semantics. Trends in Cognitive Sciences, 17(9), 458–470. https://doi.org/10.1016/j.tics.2013.06.004
and Constant, M., Pulvermüller, F., & Tomasello, R. (2023). Brain-constrained neural modeling explains fast mapping of words to meaning. Cerebral Cortex, bhad007. https://doi.org/10.1093/cercor/bhad007 .
Where to find key resources?
see above

Link to project repository/sources
.
Goals for Brainhack Global
1- To build a spiking neuron class
2-To build a hebbian learning class
3- To train a dummy model associating spiking patterns with one hot vectors
4- Write documentation
Good first issues

issue one:

issue two:

Communication channels
NaN
Skills

Python: medium & advanced
Markdown: beginner
Cognitive neuroscience background

Onboarding documentation
No response
What will participants learn?
To build a Tensorflow wrapper and a introduction to AI
Data to use
No response
Number of collaborators
4
Credit to collaborators
Contributors will be part of the github repo. They will be co-authors of any further publication
Image
Leave this text if you don't have an image yet.
Type
coding_methods, pipeline_development
Development status
0_concept_no_content
Topic
deep_learning, machine_learning, neural_networks, systems_neuroscience
Tools
Jupyter
Programming language
Python
Modalities
not_applicable
Git skills
1_commit_push, 2_branches_PRs
Anything else?
l
Things to do after the project is submitted and ready to review.

[X] Add a comment below the main post of your issue saying: Hi @brainhackorg/project-monitors my project is ready!
[X] Twitter-sized summary of your project pitch.

@brainhackorg/project-monitors my project is ready!

Hi @marco7877, if you have no good first issues, do you want to remove the default text from the field?
Also, the text in these fields will be published as-is, so for example the dot-points in the project description will come out exactly as they are written above, is that ok?


Way to know when an end device has re-joined a coordinator (TZ-874)

Question
I am trying to figure out handling when an end device has rejoined the coordinator from say a power cycle. I noticed that when I power cycled my end device the coordinator showed up the ESP_ZB_NLME_STATUS_INDICATION' So I added that with code to find out the status messages.
case ESP_ZB_NLME_STATUS_INDICATION:
       printf("%s, status: 0x%x\n", esp_zb_zdo_signal_to_string(sig_type), *(uint8_t *)esp_zb_app_signal_get_params(p_sg_p));

This gave me NLME Status Indication, status: 0x0 which I assumed means  success. However when I was playing around I noticed that if I send an attribute read command to an end device that is not connected I also get the same message.
I (2160947) ESP_ZB_GATEWAY: Send 'read attribute' command
I (2161007) ESP_ZB_GATEWAY: Device is no longer available
I (2161007) MQTT_CLIENT: Sent MQTT offline message
I (2161627) MQTT_CLIENT: MQTT_EVENT_PUBLISHED, msg_id=28694
I (2161637) MQTT_CLIENT: MQTT_EVENT_PUBLISHED, msg_id=55406
I (2161677) MQTT_CLIENT: MQTT_EVENT_PUBLISHED, msg_id=53431
NLME Status Indication, status: 0x0
NLME Status Indication, status: 0x0
NLME Status Indication, status: 0x0
NLME Status Indication, status: 0x0

Is this correct? Or is there another way to know when an end device re-joins?
Additional context.
No response

@djorr5 ,

Is this correct? Or is there another way to know when an end device re-joins?

When the device joins or rejoins a network, it will send a device announcement request to the network. Has the coordinator received the ESP_ZB_ZDO_SIGNAL_DEVICE_ANNCE signal when the end device joins the network?

No. I have a pretty standard ESP_ZB_ZDO_SIGNAL_DEVICE_ANNCE based on the examples and I never see the ESP_LOGI when an end device rejoins. It is obviously called when commissioning the end device but that is the only time I have seen it called. Which is interesting as if that was the case it would want to re-bind every time it reconnects right? Even in your Thermostat example if a device rejoins from a power cycle with DEVICE_ANNCE it would re-bind each time. Or is this expected with Zigbee devices?
    case ESP_ZB_ZDO_SIGNAL_DEVICE_ANNCE:
        dev_annce_params = (esp_zb_zdo_signal_device_annce_params_t *)esp_zb_app_signal_get_params(p_sg_p);
        ESP_LOGI(TAG, "New device commissioned or rejoined (short: 0x%04hx)", dev_annce_params->device_short_addr);
        esp_zb_zdo_match_desc_req_param_t  cmd_req;
        cmd_req.dst_nwk_addr = dev_annce_params->device_short_addr;
        cmd_req.addr_of_interest = dev_annce_params->device_short_addr;
        find_temperature_sensor(&cmd_req, user_find_cb, NULL);
        break;

Looking at wireshark packets this end device appears to send a Link Status when re-joining and then a route request. I am unsure if either of these would be a DEVICE_ANNCE to the coordinator?

Then the end device proceeds to send attribute reports from then on in. Are any of the re-join packets captured in the ESP SDK?

@djorr5

No. I have a pretty standard ESP_ZB_ZDO_SIGNAL_DEVICE_ANNCE based on the examples and I never see the ESP_LOGI when an end device rejoins. It is obviously called when commissioning the end device but that is the only time I have seen it called. Which is interesting as if that was the case it would want to re-bind every time it reconnects right? Even in your Thermostat example if a device rejoins from a power cycle with DEVICE_ANNCE it would re-bind each time. Or is this expected with Zigbee devices?

The device_annce is an important signal for device re-join as defined in the BDB spec; you can refer to the figure below. The re-bind operation is application logic in the Thermostat example. You can choose to re-bind or not; it does not matter because the stack will only keep one binding for the same device.

There is no other signal currently triggered to indicate device re-join in the esp-zigbee-sdk.

Understood. It must be how they have implemented in this particular end device.


Implemented Connection#setStatementTimeout

Implemented Connection#setStatementTimeout function kindly check and approve :)

Would it be possible for you to consider adding an integration test related to timeout scenarios?
This would help ensure the robustness of the code and provide better coverage.

Actually i am not more into testing .
Kindly Review and merge my PR.   :)

Actually i am not more into testing . Kindly Review and merge my PR. :)

We need test cases before merge this. Let me add some tests.

PTAL @mirromutth @JohnNiang

@jchrys That exception should be R2dbcNonTransientResourceException, because it is executing a statement which to set a timeout, not a query timed out.
It is caused by server version, so this failure is permanent unless user upgrade their database.

@jchrys That exception should be R2dbcNonTransientResourceException, because it is executing a statement which to set a timeout, not a query timed out.
It is caused by server version, so this failure is permanent unless user upgrade their database.

You're right. Thanks for correction. Let me fix it :D

PTAL @mirromutth


DecryptedSignature is null in logs

The DecryptedSignature element is always null in logs, but it appears on the webui.

Solved

You God!


[BugFix] Fix & Optimizing Partition Scheduling

Fixes #26813
What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto-backported to the target branch

[ ] 3.1
[ ] 3.0
[ ] 2.5
[ ] 2.4

[FE PR Coverage Check]
:disappointed: fail : 7 / 22 (31.82%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/backup/RestoreJob.java
0
1
00.00%
[1309]

:large_blue_circle:
com/starrocks/clone/DynamicPartitionScheduler.java
0
10
00.00%
[341, 356, 357, 359, 360, 361, 363, 364, 384, 385]

:large_blue_circle:
com/starrocks/server/LocalMetastore.java
2
6
33.33%
[614, 615, 616, 2788]

:large_blue_circle:
com/starrocks/common/util/DynamicPartitionUtil.java
5
5
100.00%
[]


[google_maps_flutter]Certain map updates don't take effect

I have a complex screen that includes a PageView that shows search results on the bottom, on top of a google map that has custom markers showing the price of every item.
As i swipe and change the page of the pager the markers are updated so that the selected item is focused.
This is working fine with flutter 2.10.5 but not with 3.0.0. I have the same version of google map plugin in both so this is not responsible for the bug.
Now with flutter 3.0.0 the screen doesn't seem to be refreshing correctly when the markers change. It is an irregular behaviour that sometimes they refresh correctly sometimes not.
When the bug kicks in and the markers are not updated if i scroll the map even a little then the screen is repainted correctly.
It seems to me that somehow the flutter framework decides that not enough has changed in the screen to repaint it which leads to the ui refreshing when the whole map is moved.
Also it be only an Android related problem as in IOS it seems to be working fine to me.
Could this be related to the partial rebuilds that were introduced?
Can I somehow disable the partial rebuilds to test if this is indeed at fault?
It is really difficult to provide a working example as this is a pretty complex code that i am using.
This bug is making it impossible for me to upgrade to flutter 3.0.0
[✓] Flutter (Channel stable, 3.0.0, on macOS 12.3.1 21E258 darwin-arm, locale en-GR)
• Flutter version 3.0.0 at /Users/nikostsesmelis/Tools/flutter/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ee4e09cce0 (3 days ago), 2022-05-09 16:45:18 -0700
• Engine revision d1b9a6938a
• Dart version 2.17.0
• DevTools version 2.12.2

@NikosTsesmelis
Without a working reproducible code, it would be hard to analyze anything, so if possible please provide one code sample that shows the behavior you are reporting, without it, we probably can't make this issue actionable.
Thanks.

I will try to create some small project to showcase this. In the meantime is there a way to disable the partial repaints on android?

disable the partial repaints on android?

sorry I am not aware of it. Will try to provide details on it.

import 'dart:typed_data';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class TestScreen extends StatefulWidget {
const TestScreen({Key? key}) : super(key: key);
@override
_TestScreenState createState() => _TestScreenState();
}
class _TestScreenState extends State {
Set _markers = {};
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
_setRedMarkers();
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Expanded(
child: GoogleMap(
initialCameraPosition: const CameraPosition(
target: LatLng(37.3861, -122.0839),
zoom: 14,
),
markers: _markers,
),
),
Padding(
padding: const EdgeInsets.all(32),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
_button('RED', Colors.red, _setRedMarkers),
_button('GREEN', Colors.green, _setGreenMarkers),
_button('BLUE', Colors.blue, _setBlueMarkers),
],
),
),
],
),
);
}
Widget _button(String text, Color color, VoidCallback onTap) {
return GestureDetector(
onTap: onTap,
child: Container(
color: color,
padding: const EdgeInsets.all(16),
child: Text(text),
),
);
}
void _setRedMarkers() async {
_setMarkers('assets/images/red.png');
}
void _setGreenMarkers() async {
_setMarkers('assets/images/green.png');
}
void _setBlueMarkers() async {
_setMarkers('assets/images/blue.png');
}
void _setMarkers(String assetPath) async {
Uint8List? byteData = await _getBytesFromAsset(assetPath, 30);
if (byteData == null) return;
BitmapDescriptor icon = BitmapDescriptor.fromBytes(byteData);

setState(() {
  _markers = {
    Marker(
      markerId: const MarkerId('1'),
      position: const LatLng(37.3861, -122.0839),
      icon: icon,
    ),
    Marker(
      markerId: const MarkerId('2'),
      position: const LatLng(37.3761, -122.0839),
      icon: icon,
    ),
    Marker(
      markerId: const MarkerId('3'),
      position: const LatLng(37.3961, -122.0839),
      icon: icon,
    ),
  };
});

}
Future<Uint8List?> _getBytesFromAsset(String path, int width) async {
ByteData data = await rootBundle.load(path);
Codec codec = await instantiateImageCodec(
data.buffer.asUint8List(),
targetWidth: width,
);
FrameInfo fi = await codec.getNextFrame();
return (await fi.image.toByteData(format: ImageByteFormat.png))?.buffer.asUint8List();
}
}
Archive.zip
If you type some times on the buttons you will see that the markers are not updated but if you move the map a little then they do.
Test on Android because IOS seems to be working fine

might be related to https://github.com/flutter/flutter/issues/103907

@NikosTsesmelis
Can you check this issue and see if it is similar to your case ?

might be related to #103907

@felix-ht Same for you. Looks similar to the one I linked above.

It is not similar with to my case. In my case maps are rendered in the correct position.

I will try to create some small project to showcase this. In the meantime is there a way to disable the partial repaints on android?

@NikosTsesmelis ClipPath might be what you are looking for, it allows you to paint only a specific portion of the widget.

Hi @NikosTsesmelis, Thanks for filing the issue. I am able to reproduce the issue on stable and the master channel on Android, verified on Xiaomi k20 pro Android 11. Markers do not update with SetState unless the maps is interacted with a gesture.

stable 2.10.3
stable/master 3.0

marker assets used in below code sample can be found here assets

code sample
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:permission_handler/permission_handler.dart';
import 'dart:typed_data';
import 'dart:ui';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'Flutter Google Maps Demo',
      home: TestScreen(),
    );
  }
}

class TestScreen extends StatefulWidget {
  const TestScreen({Key? key}) : super(key: key);

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

class _TestScreenState extends State<TestScreen> {
  Set<Marker> _markers = {};

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance!.addPostFrameCallback((timeStamp) {
      _setRedMarkers();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Expanded(
            child: GoogleMap(
              initialCameraPosition: const CameraPosition(
                target: LatLng(37.3861, -122.0839),
                zoom: 14,
              ),
              markers: _markers,
            ),
          ),
          Padding(
            padding: const EdgeInsets.all(32),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                _button('RED', Colors.red, _setRedMarkers),
                _button('GREEN', Colors.green, _setGreenMarkers),
                _button('BLUE', Colors.blue, _setBlueMarkers),
              ],
            ),
          ),
        ],
      ),
    );
  }

  Widget _button(String text, Color color, VoidCallback onTap) {
    return GestureDetector(
      onTap: onTap,
      child: Container(
        color: color,
        padding: const EdgeInsets.all(16),
        child: Text(text),
      ),
    );
  }

  void _setRedMarkers() async {
    _setMarkers('assets/red.png');
  }

  void _setGreenMarkers() async {
    _setMarkers('assets/green.png');
  }

  void _setBlueMarkers() async {
    _setMarkers('assets/blue.png');
  }

  void _setMarkers(String assetPath) async {
    Uint8List? byteData = await _getBytesFromAsset(assetPath, 30);
    if (byteData == null) return;

    BitmapDescriptor icon = BitmapDescriptor.fromBytes(byteData);

    setState(() {
      _markers = {
        Marker(
          markerId: const MarkerId('1'),
          position: const LatLng(37.3861, -122.0839),
          icon: icon,
        ),
        Marker(
          markerId: const MarkerId('2'),
          position: const LatLng(37.3761, -122.0839),
          icon: icon,
        ),
        Marker(
          markerId: const MarkerId('3'),
          position: const LatLng(37.3961, -122.0839),
          icon: icon,
        ),
      };
    });
  }

  Future<Uint8List?> _getBytesFromAsset(String path, int width) async {
    ByteData data = await rootBundle.load(path);
    Codec codec = await instantiateImageCodec(
      data.buffer.asUint8List(),
      targetWidth: width,
    );
    FrameInfo fi = await codec.getNextFrame();
    return (await fi.image.toByteData(format: ImageByteFormat.png))
        ?.buffer
        .asUint8List();
  }
}

Labeling this issue as a regression since this works fine on stable 2.10.3.

flutter doctor -v (3.0)
[✓] Flutter (Channel stable, 3.0.0, on macOS 12.3 21E230 darwin-arm, locale en-IN)
    • Flutter version 3.0.0 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ee4e09cce0 (6 days ago), 2022-05-09 16:45:18 -0700
    • Engine revision d1b9a6938a
    • Dart version 2.17.0
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! CocoaPods 1.10.2 out of date (1.11.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your
        plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

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

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.3 21E230 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 101.0.4951.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

    • Flutter version 3.1.0-0.0.pre.419 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2eed8cbf93 (2 weeks ago), 2022-04-28 22:29:06 -0400
    • Engine revision dfdfe0b3b0
    • Dart version 2.18.0 (build 2.18.0-66.0.dev)
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! CocoaPods 1.10.2 out of date (1.11.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your
        plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

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

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.3 21E230 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 101.0.4951.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

flutter doctor -v (2.10.3)
[✓] Flutter (Channel unknown, 2.10.3, on macOS 12.3 21E230 darwin-arm, locale en-IN)
    • Flutter version 2.10.3 at /Users/mahesh/Documents/flutter_dev
    • Upstream repository unknown
    • Framework revision 7e9793dee1 (3 months ago), 2022-03-02 11:23:12 -0600
    • Engine revision bd539267b4
    • Dart version 2.16.1
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

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

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 33B73E43-8CF4-4A78-851F-87FD477C288D • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.3 21E230
      darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 101.0.4951.64
    ! Device <IP_ADDRESS>:5555 is offline.

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Seems related to the recent changes. I will take a look.

As there is still no solution regarding this issue, I made a small code that does not solve the problem, but it could help to continue working while it is solved
GoogleMap(
  onCameraMove: (CameraPosition position) {
            setState(() {
              currentZom = position.zoom;
            });
          },
),

mapController?.animateCamera(
  CameraUpdate.newCameraPosition(
     CameraPosition(target: getCentralLatlng(listPointMarkers), zoom: currentZom)  //17 is new zoom level
  )
);

Same issue today

Thanks for the fix. It is behaving much better now but unfortunately it is not completely fixed. In a new fast phone it probably happens like 1% of the time but in an old laggy phone it is noticeable.

I don't think it's a different issue; the workaround that landed in the maps plugin could definitely have the behavior described there.

Is there any progress with this?

Well actually what I said before about working on newer phones is not true. It is not working at all in my case.
This is recorded in my pixel 4a in release mode.
I tested with flutter 2.10.5 and it works fine as well as on an iphone.
Please can you work on it? I need to upload and this is keeping me from doing so.
screen-20220531-100130~2.mp4.zip

Well actually what I said before about working on newer phones is not true. It is not working at all in my case.
This is recorded in my pixel 4a in release mode.
I tested with flutter 2.10.5 and it works fine as well as on an iphone.
Please can you work on it? I need to upload and this is keeping me from doing so.
screen-20220531-100130~2.mp4.zip

I am facing the same issue as well. As a temp fix, I downgraded Flutter to 2.10.4.

The fix for this issue is coming in https://github.com/flutter/engine/pull/33599

Any update on this? We are waiting for this fix to upload.

The medium term action to take here is to further the strategy used in https://github.com/flutter/plugins/pull/5787 to cover behavior on slower devices that seem to exhibit race behavior where the single frame skip invalidation is not sufficient to produce updates.
We can work around this by adding in additional delayed invalidation calls as well as a catch-all extremely delayed invalidation to ensure almost the updates will eventually be caught even if it is noticeably delayed.

Based on further discussion, I think we'll update maps so that its Hybrid Composition switch works again post-3.0, and then default it to Hybrid Composition, and then explore options for improving behavior with TLHC after that.

Any updates for this issues? It not only affects google map but also other plugin. For me , there's no other better way to resolve this . I have to change viewpoint to current viewpoint to force update PlatformView, which against performance.

It not only affects google map but also other plugin.

Please file other issues for other plugins; we'll need to follow up on each one separately to find out what options are viable for them.

Re-opening; defaulting to HC avoids this in the default case, but we want to fix this for TLHC so that we can switch back.

@stuartmorgan how about method invalidateMapIfNeeded() keep calling mapView.invalidate() for the next 20 frames, this way the Surface will be drawn continuously for the next n frames but the marker will be updated with minimum delay. This will affect the performance but I think redrawing a few frames is not so bad, it already draws many frames when user moves the map. The performance of Hybrid Composition mode is pretty bad all the time so I think this is worth a try.

Yes, that's essentially https://github.com/flutter/flutter/issues/103686#issuecomment-1169163526

@stuartmorgan, So will you adapt this workaround and release a new version using TLHC?
The current workaround is calling invalidate() after some delay frame but my workaround is calling invalidate() n frames continuously.
FYI, I tried to reproduce the bug in native android project. with PlatformViewWrapper and a TextureView as embedded view, it seems like the PlatformViewWrapper always draws the previous image of the TextureView.

So will you adapt this workaround and release a new version using TLHC?

There hasn't been a decision yet about continuing to try to work around the problem, vs. just putting that effort into investigating why we are missing updates in the first place to see if the core problem is fixable.
Anyone interested in moving the workaround approach forward is welcome to submit a PR.

@stuartmorgan For some reason, I can reproduce this bug using flutter 3.0.5 but not with flutter 3.3.10, using google_maps_flutter 2.1.5 (before the workaround). If we cannot reproduce this bug anymore, let's consider it fixed.

I dug in more about TextureView and found out that after calling TextureView.unlockCanvasAndPost(), onSurfaceTextureUpdated() will be called to notify that the most recent image from the image stream is available. If View.invalidate() is called after onSurfaceTextureUpdated(), it will draw() the latest image.
So there are some ideas:

After onMapReady() is called, walkthrough each child of MapView to find the TextureView and overwrite the SurfaceTextureListener.onSurfaceTextureUpdated(). I tested and it works.
Maybe we can get the SurfaceTexture of TextureView and pass it directly into Flutter engine to render.


Specifying a Client to use with dask.config

Follow-up to this SO question, it would be nice to have a standard way to specify the computational strategy to use within a specified context. This is useful when working with multiple clients (e.g. living in different environments), when using Dask in different contexts (e.g. using out-of-core features on a worker instead of Distributed features across workers), etc..
Current strategies include...

dask.config.set(get=...)
with distributed.client.temp_default_client(...):
distributed.client.ensure_default_get(...)

However the first one is deprecated and the other two are not part of the public API (nor is there any guarantee that they will be). Would be good to settle on a strategy for users to address this sort of situation especially before removing existing ones. Thoughts on appropriate strategies for context specific client selection welcome.
cc @mrocklin

Also relevant is PR ( https://github.com/dask/distributed/pull/1849 ), which attempts to make option 2 part of the public API.

Sorry I missed this.  Yes, I agree that using dask.config.set to set the default client would be a good idea.  This would require a change to distributed/client.py::_get_global_client in the distributed repository to first check dask.config.get('client') or something similar.
To test this it would be good to create a couple of clients and play around with making them default and getting the default in various nested patterns to ensure good behavior and cleanup.
Marking as good first issue

To update this a bit, one can now do dask.config.set(scheduler=client) where client is a specific Client instance (pointed out to me by Matt recently). ( https://github.com/dask/dask/pull/4062 ) I think this solves the issue of having a standard way to specify a Client. Perhaps now we can tidy up the other old ways of doing this to just use the config and/or deprecate them. Think that is all that remains for this issue unless there are other thoughts.

Perhaps now we can tidy up the other old ways of doing this to just use the config and/or deprecate them. Think that is all that remains for this issue unless there are other thoughts.

By "old ways" do you mean the other two alternatives in the original post? As you say, those aren't part of the public API, so there shouldn't be need for a deprecation.

Closing then.  Happy to have this reopened if folks disagree.


Call to undefined method [loadRoutesFrom] on laravel 5.2 linux

I saw an other (closed) issue but I still get this error : "Call to undefined method [loadRoutesFrom]"

hello philippejadin , its easy to solved this problem
go to /vendor/rachidlaasri/laravel-installer/src/Providers/LaravelInstallerServiceProvider.php
& change   $this->loadRoutesFrom(__DIR__.'/../routes/web.php');
to $this->loadRoutesFrom(__DIR__.'/../Routes/web.php');
i hope Rachid change it in the update

https://github.com/acbilimoria/LaravelInstaller/commit/349da268d4fbc9f30df09ee8507088bea4093148

@acbilimoria Yes just change /routes/web.phpto /Routes/web.php because the name of /routes is  /Routes not /routes

@acbilimoria I like the idea of the logic to change the capital R, but I think it may not be needed and the service provider just needs to be updated like @Muntader suggested above.
Do you want to make an updated PR with just the simple namespace change rather than the logic?
Thanks for tracking the issue down everyone.

Sure!  https://github.com/RachidLaasri/LaravelInstaller/pull/95

I have the same problem. The above solution does not work because the function 'loadRoutesFrom' does not exist. A pure path adjustment won't help here


Missed card logo

Magento version: <IP_ADDRESS>
Plugin version: 2.14.1
Description
When amex card entered - it's not recognized as amex card and so card log is not shown
The logo seems to be available - https://checkoutshopper-test.adyen.com/checkoutshopper/images/logos/amex.svg
but the url to the icon is set as nocard
Could you please fix it to support consistent experience for customers as long as it worked prior 2.12.0 version
Grand

Hi @tikolakin ,
The issue should be solved in the latest plugin version,
if not please make sure that American Express is enabled in your Adyen Credit Card configuration inside Magento.
Feel free to reopen the issue if the problem persists.
Kind Regards,
Alessio
Adyen


Clients crash when they die on a server that doesn't have the mod

This mod seems to be client sided, yet the client will crash when they die if they are connected to a server that doesn't have the mod. The full logs only point at the registry error shown in the image. The curseforge and general documentation doesn't specify weather or not this mod is client sided.
Here's the crash logs to look through:
crash-2023-01-29_14.56.54-client.txt

Thanks for the report, a fix for this is now available to download.
I've also fixed this in the other versions as well.


Calling setMass on an object which was previously setStatic results in inertia NaN

Hello, thank you for this wonderful library. We use Matter extensively at Codeverse (we teach kids how to code using a proprietary language called KidScript)
We recently upgraded from v10 to v16 and noticed some unexpected behaviour. I have traced the issue to the setting of mass, after the object has already been set static. Doing this, will cause the value of inertia to be NaN. Here is a minimal example to reproduce
<html>
  <head>
    <script<EMAIL_ADDRESS>  </head>
  <body>
    <script>
      // module aliases
      var Engine = Matter.Engine,
        World = Matter.World,
        Bodies = Matter.Bodies,
        Body = Matter.Body;

      // create an engine
      var engine = Engine.create();

      // run the engine
      Engine.run(engine);

      // create body
      var platform = Bodies.rectangle(254.5, 384, 150, 49);

      // add all of the bodies to the world
      World.add(engine.world, platform);

      // calling setStatic will set mass, inertia and density to Infinity
      Matter.Body.setStatic(platform, true)

      // calling setMass, the first line of this method is `var moment = body.inertia / (body.mass / 6);`
      // this results in Infinity / Infinity / 6 which is NaN
      Matter.Body.setMass(platform, 1)

      console.log(platform.inertia) // outputs NaN
    </script>
  </body>
</html>

This result happens in Matter.js versions 14, 15 and 16. In versions prior to this, it does not result in NaN.
We're handling this by simply calling Matter.Body.setStatic(platform, false) before setting the mass again, but I wanted to share in case this was helpful.
Thanks very much!
Craig

Hi @liabru. Hope you are well! Was just wondering if you ever found this issue? Thanks so much for an amazing library!


Few warnings in adb logcat of GA

adb logcat -v time -s GAv4
Showing these warnings, i have done all steps mentioned for installation
05-30 16:37:51.883 W/GAv4    (16184): AnalyticsReceiver is not registered or is disabled. Register the receiver for reliable dispatching on non-Google Play devices. See http://goo.gl/8Rd3yj for instructions. 05-30 16:37:51.888 W/GAv4    (16184): CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http://goo.gl/8Rd3yj for instructions. 05-30 16:37:51.899 W/GAv4    (16184): AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See http://goo.gl/8Rd3yj for instructions.

Hi, these are (as it is says) just warnings.
I'll have to consider if this is something I should add by default in the library AndroidManifest.xml.

this could help: http://stackoverflow.com/a/30164011/2628278
and this one: https://developers.google.com/analytics/devguides/collection/android/v4/
maybe we can this information to readme

PRs are welcome


Suggestion: Compile for Synology. It will make a killer package and draw contributors. #EOF

I don't know what Synology is, or how to compile for it.

There's a relatively recent post about compiling Go for Synology machines, I just wonder if the CGO stuff from tcell would be ok that platform.

Synology is the maker a very popular line of NAS appliances, called DiskStations, used in  homes, SOHOs and enterprises. The appliance can also, and usually does, act as a host for a few different applications.

It's architecture is based on CPUs  made by either intel, arm or armada depending on the exact model.

The operating system is a subset of Linux best know as Busybox.

Synology has developed on top of BusyBox a common (vertical) management environment for its whole NAS product line that they call DSM.

Here is a link to Synology Developers Resources and Support

This is the first time I've heard of Synology, and I have no idea how to make a package for it. There are already cross compiled linux binaries for micro which you can probably use on Synology. Because I don't know how to do this, and I don't have too much interest in this, I'm going to close this issue.


Don't interfere with networking during unittests

Fixed code styling.

Fixed!

It is difficult to distinguish between classes agora.test.Network.Network and agora.node.Network.Network.
I think it would be better to change agora.test.Network.Network to a different name. Please review it.

@AndrejMitrovic : Any idea ? We could go with UnittestNetwork somewhere.

It is difficult to distinguish between classes agora.test.Network.Network and agora.node.Network.Network.
I think it would be better to change agora.test.Network.Network to a different name. Please review it.

Yes I think so too. @Geod24 I initially changed it in one of my previous PRs but your changes reverted this. There's a number of ways we could name this, I'll think of something.

Let's merge this and change the name in another PR. Thanks for the suggestion @MukeunKim .


sys/openbsd: neutralize sysctl kern.maxthread

Yet another root only knob that can cause the syz-execprog process to
panic[1]. Greg is currently working on sanitizing sysctl integer knobs
in the OpenBSD kernel. This will improve the situation but preventing
fiddling with this knob is a good call anyway.
While here, restructure the code a bit making it easier to add sysctl
neutralizers.
[1] https://syzkaller.appspot.com/bug?id=40bcbbeb244998dfc4eeec90b8f8bce372882211

I find the comment lint warnings a bit too strict... /cc @dvyukov

I find the comment lint warnings a bit too strict... /cc @dvyukov

It is strict. But alternative is worse. If somebody wants a full-time job reviewing all PRs for all true style bits with close to 100% precision, we may reconsider ;)
Accumulating 150 different styles over years in the code base is also not an option.
Say something like:
// Test for sysctl kern.maxclusters.

or:
// 0x2 stands for sysctl kern.maxclusters.

Not really worse than your current comment, just a different way to say the same.


Get products filtered by productCategory

Not sure if this is a GraphQL or SDK bug but maybe you know more about the API.
Using the following code I'm trying retrieving all Products which are from a specific ProductCategory.
I have already fetched the ProductCategories into a dictionary (productCategories):
var productResults = await _client.Get(
    Query.Product
        .Select(ProductField.ID, ProductField.Name)
        .Filter(ProductField.ProductCategory, FilterOperator.In, productCategories.Select(p => p.Value.ID).ToArray())
);

Using the TraceListener I know that the following GraphQL Query is generated:
query{products(first:100 filter:{productCategory:{values:["NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MjA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MjA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTQ","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTQ","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zODU3OTc","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTQ","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTQ","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTU","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTY","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTY","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTU","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zODU3OTk","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTQ","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTY","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zODU4MDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zODU3OTg","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTQ","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zODc1NjA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDA","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTg","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTg","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTU","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4Nzc","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4Nzc","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4NDE","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zODc1NjE","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zNDc4MTQ","NG1lLnFhL1Byb2R1Y3RDYXRlZ29yeS8zODc1NjI"]}}){nodes{name id} pageInfo{endCursor hasNextPage}}}

Now the query seems fine but not results are returned. I then manually tried to query the GraphQL with a filterless query like this:
{
  products(
    first: 100
    view: current_account
    filter: { }
    order: [{ field: createdAt }]
  ) {
    nodes {
      id
      productCategory {
        id
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      hasPreviousPage
      startCursor
    }
    totalCount
  }
}

Which produces results:

But then trying that retured ID as a filter returns no results again:

What exactly am I missing here?

Also doing something like this works:
var productResults = (await _client.Get(
  Query.Product
      .Select(ProductField.ID, ProductField.Name)
      .SelectProductCategory(Query.ProductCategory.Select(ProductCategoryField.ID))
  //.Filter(ProductField.ProductCategory, FilterOperator.In, productCategories.Select(p => p.Value.ID).ToArray())
)).Where(p => p.ProductCategory?.ID != null && productCategories.Values.Any(c => c.ID == p.ProductCategory.ID));

But this obviously fetches all products and then filteres them which makes what may have been 3 request (205 products) to 11 request (>1000 products).

@TheToor, thanks for the feedback. This seems to be a bug in GraphQL.
When execute the following query
query {
  products(
    first: 100
    view: all
    filter: {
      id: {
        values: ["NG1lMjQuMjMwNDEwMDAyODU3QDRtZS1kZW1vLmNvbS9Qcm9kdWN0LzQ3"]
      }
    }
  ) {
    nodes {
      name
      id
      productCategory {
        id
        name
      }
    }
  }
}

it returns
{
  "data": {
    "products": {
      "nodes": [
        {
          "name": "Dell Precision M4400 Laptop PC",
          "id": "NG1lMjQuMjMwNDEwMDAyODU3QDRtZS1kZW1vLmNvbS9Qcm9kdWN0LzQ3",
          "productCategory": {
            "id": "NG1lMjQuMjMwNDEwMDAyODU3QDRtZS1kZW1vLmNvbS9Qcm9kdWN0Q2F0ZWdvcnkvMjM5",
            "name": "Laptop PC"
          }
        }
      ]
    }
  }
}

The product category is NG1lMjQuMjMwNDEwMDAyODU3QDRtZS1kZW1vLmNvbS9Qcm9kdWN0Q2F0ZWdvcnkvMjM5
When I execute the same query including the category
query {
  products(
    first: 100
    view: all
    filter: {
      productCategory: {
          values: [ "NG1lMjQuMjMwNDEwMDAyODU3QDRtZS1kZW1vLmNvbS9Qcm9kdWN0Q2F0ZWdvcnkvMjM5" ]
      }
      id: {
        values: ["NG1lMjQuMjMwNDEwMDAyODU3QDRtZS1kZW1vLmNvbS9Qcm9kdWN0LzQ3"]
      }
    }
  ) {
    nodes {
      name
      id
      productCategory {
        id
        name
      }
    }
  }
}

it returns
{
  "data": {
    "products": {
      "nodes": []
    }
  }
}

@klaasvandeweerdt
Can you forward this to the 4me team or do I need to fill out something?

Since this seems to be a confirmed GraphQL issue and not a library issue we can close this issue.

@TheToor, a mistake from my side, I missed the description of the filter, ProductCategoryEnumFilter.
query Products_1 {
  products(
    first: 100
    view: all
    filter: {
      productCategory: {
          values: [
          "computer/laptop_pc"
        ]
      }
    }
  ) {
    nodes {
      name
      id
      productCategory {
        id
        name
        reference
      }
    }
  }
}

Confusing but okay. RTFM I guess :)


Prepare backend to support Falco and OPA packages

Signed-off-by: Sergio Castaño Arteaga<EMAIL_ADDRESS>

Related to #186


restore-file - fix(restore-file): use conventional commit

https://www.conventionalcommits.org

Thanks but I'd rather not

@fregante why not? :)

It's just one of many conventions, I don't think I've ever contribute to more than 3 projects with that conventions ever.

Ah, too bad!
Many popular tools now supports it.
Dependabot, renovate... etc


Please invite me to the GitHub Community Organization

Name
Dajour Walker
Discord Username (if applicable)
melodyxpot
Additional Context
Hi community.
I saw your youbute videos and posts and that was really great and helpful for me.
And I respect your open source contributing.
May I join to your organization? I would like to contribute to your open source and I will be happy
Thanks for your care.

Thank you.


CASMMON-295 Monitor the SMF Kafka server and zookeeper

Summary and Scope
Need patched version of SMA-1.7 that allows Nersc to install HPE-built software and keep their scalability settings.
e.g. rsyslog-aggregator config file needs to persist, a number of instances of rsyslog-aggregator, kafka, elasticsearch need to persist, and es-curator needs to create indexes with the configured number of shards. The Kafka partition count needs to persist.
Issues and Related PRs
CASMSMF-7353

Resolves CASMMON-296 and CASMMON-295

Testing
List the environments in which these changes were tested.
Tested on:

<drax>
Local development environment
Virtual Shasta

Test description:
Tested successfully.

Was the upgrade tested? Yes.

Pull Request Checklist

[x] Version number(s) incremented, if applicable
[x] Copyrights updated
[x] License file intact

Summary and Scope
Need patched version of SMA-1.7 that allows Nersc to install HPE-built software and keep their scalability settings. e.g. rsyslog-aggregator config file needs to persist, a number of instances of rsyslog-aggregator, kafka, elasticsearch need to persist, and es-curator needs to create indexes with the configured number of shards. The Kafka partition count needs to persist.
Issues and Related PRs
CASMSMF-7353

Resolves CASMMON-296 and CASMMON-295

Testing
List the environments in which these changes were tested.
Tested on:

<drax>
Local development environment
Virtual Shasta

Test description:
Tested successfully.

Was the upgrade tested? Yes.

Pull Request Checklist

[x]  Version number(s) incremented, if applicable
[x]  Copyrights updated
[x]  License file intact

we have tested this in drax with csm1.3.2

CSM 1.3.2 has shipped. Let's pull into CSM 1.4.1 (release/1.4).


VRFs for secp256k1?

Is anyone working on, or considering adding VRF support to secp256k1-zkp?
There is a fork of libsecp at https://github.com/aergoio/secp256k1-vrf that implements it. (/cc by @aergoio @kroggen)
from: README.md#verifiable-random-function-vrf:

This library has an implementation of an ECVRF based on the IETF draft 05 using the secp256k1 curve, SHA256 as hash function and try-and-increment as hash to curve method (cipher suite SECP256K1_SHA256_TAI). The cipher suite code used is 0xFE for compatibility with other implementations.
It was implemented as a fork because the parent library does not export the required functions.

There are many interesting use case for VRFs (Verifiable Random Functions [original paper]), but for our @BlockchainCommons roadmap, we would like to see use it in a similar way that CONIKS [pdf], Key Transparency [design doc] [slides] & Kademilia [paper] use them for private commitments. We can't use Schnorr signatures as they are do not guarantee uniqueness of the signature because of the random nonce requirements (sidenote: @sipa does Musig-DN qualify as a VRF?).
Other uses for VRFs are: random oracles, non-interactive lottery systems, updatable zero-knowledge databases, Resettable zero-knowledge proofs, L2 e-cash, rotatable Decentralized Identifiers (DIDs), and more.
Our challenge is that we also want to support MUSIG2 now and FROST when it gets finished here, but likely before they will likely be merged into the upstream master. We don't want to have to support 2 forks of the secp256k1 upstream master, so would really like to see VRFs in THIS fork. We don't want to support draft-irtf-cfrg-vrf-11 because it is 25519, not curve secp256k1.
/cc @jesseposner @wolfmcnally @kanzure @maaku
Some other related links:

What is the difference between signatures and VRF? | Stack-Exchange Cryptography
CONIKS vs Key Transparency vs Certificate Transparency vs Blockchains | okTurtles Blog

(sidenote: @sipa does Musig-DN qualify as a VRF?).

The part that generates nonces is a VRF, but it's stronger than normal VRFs: It's a "VRF-in-the-scalar": The resulting group element / nonce is random and the one evaluating the VRF knows its Dlog (and is the only one who knows it). This makes it very complex and inefficient, and the VRF from https://eprint.iacr.org/2017/099 (the one in the IETF draft and https://github.com/aergoio/secp256k1-vrf) is a much better choice.

We don't want to have to support 2 forks of the secp256k1 upstream master, so would really like to see VRFs in THIS fork.

Yeah, this is a problem. :/ It would be really nice to a "more modular" module system that makes it easier to combine multiple extensions of secp256k1.

I am not opposed in principle to pulling in a VRF. In theory, we could even do so without more than a cursory review from the library maintainers (e.g. to check that the code was laid out properly and didn't affect things outside of its module). But that's a larger discussion about how this project ought to be run.
Upstream in libsecp there's been a lot of discussion about how to have a more modular module system, but I don't know that we've come up with a solution that we can start working toward.

But that's a larger discussion about how this project ought to be run.

Yeah, I feel we should have this discussion. One standpoint is that this is a library for Elements ecosystem, and that we should commit only to modules that are relevant within that ecosystem. This may mean that we want a VRF module or that we don't want it, but I'm not even sure if we have a clear policy on the purpose of the library.

I know that from my perspective that this repo has become a default staging ground for doing the first implementation of important crypto that might eventually goes in Bitcoin Core, but also for items needed by Core Lighting, Liquid, or Green Address. That was I thought the original intent of Elements was it could be used for lots on things, not only Liquid.
I also feel some contributors here participate here not necessarily to support Liquid, but instead because it has this history of being a staging ground.
Of course this is a Blockstream-run repository, but if you decide you don't want to use it as a staging/proving ground for various important cryptographic elements, let the community know. But staging/proving ground is its current reputation.

Related to the "big picture" question is the request for basic adapter signature support in #191 from @wolfmcnally.

I know that from my perspective that this repo has become a default staging ground for doing the first implementation of important crypto that might eventually go into Bitcoin Core, but also for items needed by Core Lighting, Liquid, or Green Address. That was I thought the original intent of Elements was it could be used for lots of things, not only Liquid.

I agree with this observation but I'm not sure if I'm satisfied with it. I think we'd need to see how the very related upstream discussion evolves: https://github.com/bitcoin-core/secp256k1/issues/997#issuecomment-949463114 If the way forward is to have Bitcoin-related features in upstream directly (even as PR or experimental) module, then we wouldn't need this library here as a staging ground, and it could move its focus towards Elements again.

I'm not normally one to suggest forks, but there does seem to be some utility in having a "skunkworks" version of libsecp256k1 that isn't bound to only serving a specific project (including Bitcoin Core) but more the community at large.


Add Mono installation instructions to Mac installation instructions

Fixes https://github.com/aspnet/Docs/issues/568.
@shirhatti @Rick-Anderson @Erikre @rachelappel Please review

Sherlock the ship it squirrel says ship it :shipit:


t: Use 'partial(1)->to' instead of 'detour' which was deprecated in Mojolicious 9

Fixes https://github.com/jhthorsen/mojolicious-plugin-assetpack/issues/143

Thanks for the PR. I will make a new release shortly.


Cannot launch

|___  / |  _  \ |  _  \ |  _  \  /  _  \ \ \  / / \ \  / /
/ /  | || | | || | | || |  | | | |  \ / /   \ / /
/ /   |  _  { |  / |  _  /  | | | |   }  {     \  /
/ /  | || | | |     | | \ \  | || |  / /\ \    / /
/| |/ ||     ||  _\ ___/ //  _\  //
Welcome to ZBProxy 3.1-alpha.1 (073a452)!
Build Information: go1.22.5, linux/amd64, CGO disabled
panic: open ZBProxy.json: no such file or directory
goroutine 1 [running]:
main.main()
github.com/layou233/zbproxy/v3/cmd/zbproxy/main.go:37 +0x5fd
Running latest beta github action, fresh start without config so it fails but in readme.md its stated that it auto generates default config

I'm currently working on the next minor version (as you can see the dev-next branch), but the auto-generation feature was missed in that build. Sorry for the inconvenience.
Fixed in bb5f3b0. I have started an action build. Please download the latest build and try again.
The README may be out of date. The documentation is a better reference.

Alright, works now
Thanks.


[WIP] systemd: 247.6 -> 249.4

Motivation for this change
systemd-248 introduces support for TPM-backed LUKS volumes. I want to experiment with this, so tried to bump the systemd version. So far, this fixes some build issues, but many systemd-related tests hang, waiting for the machine to come up (e.g. systemd-analyze.nix).
I'm currently debugging this, but thought I'd post the work on building systemd so far, in case anybody happens to be working on this they can use my build fixes.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Some tests, like nixos/tests/systemd.nix do complete.

Perhaps you want to look at #131618 instead.

I thought I'd searched for open PRs before starting this, but must have missed that. Thanks for the pointer!

Well, that PR has been closed for two days.


Release 1.7.1

FWIW, I always push directly to master for version bumps and changelog updates and don't get PRs for gem releases, which avoids the need to exclude-from-changelog and reduces some unnecessary ceremony..
but 👍

ok. thats sounds good to me @lamont-granquist since this is so trivial.

And i did "screw it up" yesterday and released 1.9.0 of chef-provisioning without the change I actually needed, but I just immediately followed that up with a 1.9.1 release that fixed it...    Pretty much all the mistakes I can think that you could make by skipping process here are all easily fixable like that -- you just wind up wasting one or two integers here or there, but the universe has lots of those...


import kubectls drain implementation

Import and consume Kubectl drain implementation
Fixes https://github.com/flatcar-linux/flatcar-linux-update-operator/issues/16
This brings in the drain implementation from kubectl behind a new feature flag use-kubectl-drain.
When enabled this replaces the local find and delete pods implementation with kubectls find and delete/evict.
Where evictions are supported by the cluster they will be used over the traditional delete and thus pod disruption polices will honoured
How to use
start the agent with the feature flag
command:
    - "/bin/update-agent"
    - -use-kubectl-drain=true

annotate a node to trigger a reboot
kubectl annotate node <node-name> --overwrite flatcar-linux-update.v1.flatcar-linux.net/reboot-needed="true"

profit
flatcar-linux-update-operator-6659648fc6-4gmfb update-operator I0411 12:14:14.260423       1 operator.go:513] Found 1 nodes that need a reboot
flatcar-linux-update-operator-6659648fc6-4gmfb update-operator I0411 12:15:46.505060       1 operator.go:571] Found 0 rebooted nodes
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.378080       1 agent.go:292] draining node using kubectl drain implementation
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545224       1 main.go:108] evicting pod kube-system/calico-typha-66bb9dfbb4-5q7hd
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545250       1 main.go:108] evicting pod sys-vault/terraform-applier-0
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545280       1 main.go:108] evicting pod kube-system/cert-manager-6f96c5b8fd-fm5kc
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545304       1 main.go:108] evicting pod sys-minio/minio-nas-gw-7956b6f56-gx7bf
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545253       1 main.go:108] evicting pod kube-system/k8s-sidecar-injector-5b76cd9c44-scc87
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545366       1 main.go:108] evicting pod sys-mon/grafana-7b45495646-6k8kw
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545422       1 main.go:108] evicting pod sys-mon/thanos-query-shared-56568c9c48-7vbbq
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545464       1 main.go:108] evicting pod kube-system/metrics-server-5f84785dcc-zlx7w
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545501       1 main.go:108] evicting pod sys-prom/thanos-query-658857686-g5tzp
flatcar-linux-update-agent-dqbmf update-agent I0411 12:15:47.545575       1 main.go:108] evicting pod kube-system/cert-manager-webhook-56db8c9bfc-jldrl

Hey @jakekeeys, thanks for opening the PR. I will try to review it tomorrow.

@jakekeeys:
@invidian is out until the 25th

To debug a failing test, I suggest using go test -run ^Test_Running_agent/after_marking_node_as_unschedulable/without_exceeding_pod_deletion_grace_period/waits_for_removed_pods_to_terminate_before_rebooting$, this way the printed logs are not cluttered by other agent instances. It's because of a flaw in klog...

To debug a failing test, I suggest using go test -run ^Test_Running_agent/after_marking_node_as_unschedulable/without_exceeding_pod_deletion_grace_period/waits_for_removed_pods_to_terminate_before_rebooting$, this way the printed logs are not cluttered by other agent instances. It's because of a flaw in klog...

This test actually passes for me which is why i didn't pick up on it, are you able to replicate the fail?

Hmm, I can't get it to fail either. This test is awfully long too. Don't worry about it, I'll investigate why it fails on the CI. I usually suspect CI to be just slower in terms of CPU wait time, which can cause some timeouts, which are hard to reproduce on local, usually more powerful/less busy machines.

Maybe you can try adding some log statements around this code:
          expectedPodRemovedMutex.Lock()
          rebootTriggerred <- expectedPodRemoved < 0
          expectedPodRemovedMutex.Unlock()

Especially before and after lock is acquired. Perhaps there is some contention there blocking reboot event from being published.

I can reliably reproduce locally by running GOMAXPROCS=2 go test -mod vendor -count 10 -failfast -race ./pkg/agent.

So from my debugging, the cause seems to be the contention on Go routines, which makes client.Delete() call to pass, but it does not actually remove the pod from the storage of fake client, as it's still returned by client.List().
The fix seems to be just disable the parallelization of this test, which gives it a bit more priority in the execution and makes it stable. So just t.Parallel() call needs to be removed from Test_Running_agent/after_marking_node_as_unschedulable/without_exceeding_pod_deletion_grace_period/waits_for_removed_pods_to_terminate_before_rebooting test.
I'll review again the whole thing.

Just few more nits, overall looks very good to me. I really appreciate your effort @jakekeeys.
It seems just one comment regarding change of tests and error returned when deleting pods fails remains to be solved.

no problem and thanks for all your input into the pull request, sorry its been a bit slow, still haven't quite wrapped my head around the test suite and i've been chipping away at this around other things.
I just want to quickly verify some scheduler behaviour around pod disruption policies which ill do this morning and report back. once that's out the way i think i'm happy with everything.

no problem and thanks for all your input into the pull request, sorry its been a bit slow, still haven't quite wrapped my head around the test suite and i've been chipping away at this around other things.

Don't worry about the slowness :)
And about the test suite, while I think test structure (names, grouping etc.) is OK, the content of the tests, setup code etc. is definitely not something to take as an example :smile: I'm not happy with it either and I have an idea how the whole thing can be simplified in the future.
Unfortunately, current complexity of tests is the result of writing tests after writing code, as original agent code had no tests at all. And as I plan to refactor this code, I wanted to write tests for it first to reduce a chance of regressions. The very lengthy setup code for final stages of the code (of agent processing) and complexity of observing the performed actions is IMO a result of a sub-optimal design. More on that in #134.

pdbs all look good. the drain helper internally retries the eviction as expected and the global timeout is honoured.
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.623115       1 agent.go:185] Setting info labels
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.623185       1 agent.go:578] Skipping missing update.conf: open /etc/flatcar/update.conf: no such file or directory
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.686508       1 agent.go:191] Checking annotations
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.695799       1 agent.go:215] Setting annotations map[string]string{"flatcar-linux-update.v1.flatcar-linux.net/reboot-in-progress":"false", "flatcar-linux-update.v1.flatcar-linux.net/reboot-needed":"false"}
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.728626       1 agent.go:245] Skipping marking node as schedulable -- node was marked unschedulable by an external source
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.728669       1 agent.go:260] Waiting for ok-to-reboot from controller...
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.728768       1 agent.go:398] Beginning to watch update_engine status
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:31:37.729991       1 agent.go:342] Updating status
flatcar-linux-update-agent-f4wp6 update-agent W0504 09:45:51.883902       1 agent.go:268] Error waiting for an ok-to-reboot: <nil>
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:51.884017       1 agent.go:272] Checking if node is already unschedulable
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:51.893912       1 agent.go:290] Setting annotations map[string]string{"flatcar-linux-update.v1.flatcar-linux.net/agent-made-unschedulable":"true", "flatcar-linux-update.v1.flatcar-linux.net/reboot-in-progress":"true"}
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:51.937451       1 agent.go:297] Marking node as unschedulable
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:51.973767       1 agent.go:308] Getting pod list for deletion
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.111694       1 agent.go:315] Deleting/Evicting 19 pods
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116301       1 agent.go:628] evicting pod sys-ingress-priv/internal-ingress-controller-v2-56cbc4c5fc-8kgbp
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116333       1 agent.go:628] evicting pod sys-prom/thanos-query-658857686-wrmb7
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116348       1 agent.go:628] evicting pod sys-flatcar/nebraska-7c849df797-g2nsk
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116355       1 agent.go:628] evicting pod sys-minio/etcd-0
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116384       1 agent.go:628] evicting pod sys-mon/thanos-query-shared-56568c9c48-2nzlm
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116319       1 agent.go:628] evicting pod sys-vault/vault-pki-7695449b6b-6fjpm
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116627       1 agent.go:628] evicting pod sys-vault/terraform-applier-0
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116457       1 agent.go:628] evicting pod sys-minio/minio-nas-gw-7956b6f56-6wfbw
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116665       1 agent.go:628] evicting pod sys-prom/thanos-store-0
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116463       1 agent.go:628] evicting pod fluxcd-ns2/whoami-74958f8d-cwmlt
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116685       1 agent.go:628] evicting pod sys-vault/vault-0
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116492       1 agent.go:628] evicting pod billing-keda/keda-operator-b9b995954-s9nxl
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116720       1 agent.go:628] evicting pod fluxcd-test/source-controller-7c5f4ccbd-v67km
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116966       1 agent.go:628] evicting pod sys-flatcar/nebraska-postgres-0
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116976       1 agent.go:628] evicting pod sys-gatekeeper/gatekeeper-controller-manager-59fc966cc8-jw92m
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.116570       1 agent.go:628] evicting pod sys-metallb/controller-656d4b597b-srx95
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.117428       1 agent.go:628] evicting pod sys-semaphore/semaphore-service-mirror-7f654d59bf-thqqn
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.117466       1 agent.go:628] evicting pod sys-flatcar/test-deployment-c7985ffff-vrlr2
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:52.117710       1 agent.go:628] evicting pod sys-mon/alertmanager-589d75c947-hpv8c
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:53.317216       1 request.go:665] Waited for 1.199843775s due to client-side throttling, not priority and fairness, request: POST:https://<IP_ADDRESS>:443/api/v1/namespaces/sys-prom/pods/thanos-store-0/eviction
flatcar-linux-update-agent-f4wp6 update-agent E0504 09:45:53.735181       1 agent.go:628] error when evicting pods/"test-deployment-c7985ffff-vrlr2" -n "sys-flatcar" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:45:58.735746       1 agent.go:628] evicting pod sys-flatcar/test-deployment-c7985ffff-vrlr2
flatcar-linux-update-agent-f4wp6 update-agent E0504 09:45:58.755224       1 agent.go:628] error when evicting pods/"test-deployment-c7985ffff-vrlr2" -n "sys-flatcar" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:46:03.484288       1 request.go:665] Waited for 3.185345779s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/api/v1/namespaces/sys-vault/pods/terraform-applier-0
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:46:03.755624       1 agent.go:628] evicting pod sys-flatcar/test-deployment-c7985ffff-vrlr2
....
flatcar-linux-update-agent-f4wp6 update-agent E0504 09:55:48.729034       1 agent.go:628] error when evicting pods/"test-deployment-c7985ffff-vrlr2" -n "sys-flatcar" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:55:53.729400       1 agent.go:628] evicting pod sys-flatcar/test-deployment-c7985ffff-vrlr2
flatcar-linux-update-agent-f4wp6 update-agent W0504 09:55:53.729507       1 agent.go:321] timed out draining node, continuing...
flatcar-linux-update-agent-f4wp6 update-agent I0504 09:55:53.729559       1 agent.go:327] Node drained, rebooting
- flatcar-linux-update-agent-f4wp6 › update-agent```

sorry about the semgrep stuff, can't run it locally again, not looked into why yet


@EntityFormat parameters on superclasses are being ignored if annotation without values is added to a child class

When an entity with @EntityFormat extends from other entity which has the annotation too, Springlets its overriding the superclass @EntityFormat and using the information from the annotation on the subclass.

We are using the Spring's AnnotatedElementUtils class findMergedAnnotation method. It has the following javadoc comment:
Find the first annotation of the specified annotationType within the annotation hierarchy above the supplied element, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy, and synthesize the result back into an annotation of the specified annotationType.
The problem happens when you add the @EntityFormat annotation with any parameters in a parent class. If you don't add the annotation in a child class, it works as expected and takes the parent configuration. But if in a child class you add the annotation without any values, it seems the values are taken as empty and then the parent configuration is overwritten.
I think it would be better if an empty annotation takes, by default, the parent's configuration.

I'm unable to find a way to tell the AnnotatedElementUtils not to override attribute values in a parent class with default attribute values in a child class for the same annotation. Maybe the only option is to create a specific annotation utilities for this use case, or create a different annotation for child classes.
I don't think it's worth the effort, so if the @EntityFormat annotation is used in a child class, all the attribute values must be set, ignoring the parent class ones.


Does this support SMS?

Do we have any unexposed SMS feature yet in this?

Hi there,
sending and receiving SMS are server features.
this library implements the client feature of making calls from Android and iOS.
You will need to implement SMS features in your server.


vimPlugins.yazi-nvim: add plenary dependency

Discovered in https://github.com/nix-community/nixvim/pull/1999 test that it has a dependency on plenary.
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 333506 run on x86_64-linux 1

2 packages built:

vimPlugins.yazi-nvim
vimPluginsUpdater


Out_file short flush interval with timekey 1h in buffer

Describe the bug
I'm trying to eliminate the forest plugin that I used before for dynamically generating paths for file output. I need to have files in the format app.2024020813-0.log, where '0' represents the worker_id.
Because of the 1h timekey in my conf the flush interval is ignored - it takes really long time to flush the buffer to the logfile. How can I change the setting to flush every 3s (I want to see actual logs) and have the file in format "app.%Y%m%d%H-#{worker_id}.log"? I tried time_slice_format and time_format, but the output file format needs the timekey (without timekey the dateformat has incorrect hours - it looks like<PHONE_NUMBER>-0 even at 11am). Is there any workaround?
Thank you
To Reproduce
Just use timekey 1h with flush interval - the flush interval is ignored
Expected behavior
correct format of file and flush interval together
Your Environment
- Fluentd version: 1.16.3-2.0

Your Configuration
<match **> #tag cluster.namespace.app
   @type file
   @id "save-#{worker_id}"
   path "fluentd/log/${path_cluster}/${path_namespace}/${path_app}/${path_app}.*-#{worker_id}.log"
   append true
   <buffer path_cluster,path_namespace,path_app,time>
      @type file
      timekey 1h
      flush_mode interval
      flush_interval 3s
      flush_at_shutdown true
   </buffer>
      <format>
       @type single_value
       message_key log
      </format>
  </match>

Your Error Log
no errors

Additional context
No response

@hoooli

Just use timekey 1h with flush interval - the flush interval is ignored

I can't reproduce it.
If you use both timekey and flush_interval at the same time, both should be in effect.
You can confirm it with the following sample config.
<source>
  @type sample
  tag test
</source>

<match test>
  @type file
  path "/test/fluentd/output/result/app.*-#{worker_id}"
  append true
  <buffer time>
    @type file
    timekey 1h
    flush_mode interval
    flush_interval 3s
  </buffer>
</match>

So, your out_file setting seems to be correct.
It can be caused by other factors.
Please use this sample source and check if it is really the issue of your out_file setting.
<source>
  @type sample
  tag test
</source>

@daipom
Thank you for your response. I've tested using the source dummy, and it seems that messages appear in stdout immediately, but they show up in the file later. I have set the flush_interval to 3s - the modification time of the output file is updated after 3s, but the actual message in the file appears after more than 6-10 seconds, sometimes even later.
On another VM, I don't encounter this issue, so it may not be a configuration problem. Do you have any suggestions on which direction to investigate? The machine doesn't have a high load, which is why this surprises me.

the modification time of the output file is updated after 3s, but the actual message in the file appears after more than 6-10 seconds, sometimes even later.

On another VM, I don't encounter this issue, so it may not be a configuration problem.

I think so too.
It could be an environmental issue, such as slow disk processing.

Do you have any suggestions on which direction to investigate?

Sorry, I don't know much about it. :cry:


Refactor: better list handling in patterns

Right now we match DestructuredList separately from the empty List (). We don't allow other lists (e.g. (1)) in patterns. That leads to some pretty hacky type checking which feels bug prone.
I guess the cleanest solution is to:

Use [] for lists - removes the ambiguity between '() and ()
Allow any list to appear in patterns

Sorted by #14 - moar vectors


Ios13 removal

This PR does a major refactor of the Emitron, removing iOS 13 support. The major point of this refactor moves the vast majority of the App Delegate to the EmitronApp struct. From there, the central objects that comprise Emitron are passed into the app by way of environment variables. This means each SwiftUI view is updated to use environment variables and some classes were updated to take in objects versus calling a singleton property.
The PR also removes if directives for iOS 13 since the minimal assumption is iOS 14. Previews and tests were also updated to use this new structure.
This is a pretty major refactor with a lot of files changed. I imagine it's going to take some time for this to be reviewed. The best place to start is the new EmitronApp struct and work from there.

Note - do you want me to solve the merge conflict before review?

@VegetarianZombie If you could that would be great. Will avoid having to re-review anything also the resolution anyway

@VegetarianZombie is this good to go?

@VegetarianZombie  the removal of the line below caused color inconsistency when logging into the app
window.rootViewController?.view.backgroundColor = .backgroundColor

Light
Dark

a possible solution is to remove backgroundColor from the MainView.
  var body: some View {
      contentView
        .overlay(MessageBarView(messageBus: messageBus), alignment: .bottom)
        .onReceive(notification) { _ in
          DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            makeReviewRequest()
          }
        }
  }

But then the transition from MainView to LoginView looks strange.

I'm looking at this today. I'll see what I can do

I've made some changes per @byaruhaf (Thanks for finding it, Franklin!) - I put the changes on the screens versus the EmitronApp and updated all the view previews. That way, we avoid any potential side effects and the previews show a correctly rendered dark mode.


WIP: Azure Batch integration

This is an attempt to build native Azure Batch support into Snakemake. See https://andreas-wilm.github.io/2020-07-30-azure-batch-in-snakemake/ for more info. There are quite a few kinks that need ironing out, but the code already works. I've created this PR so that others can give it a try and comment. Remaining issues (copied from the blog post above):

Azure Batch parameters are provided to Snakemake using a yaml file with --az-batch-config. Instead separate arguments should be used.
Batch autoscaling doesn’t work. I gave this only a quick try using one of the standard formulas, but the pool never increased from 0. Therefore autoscaling is currently disabled (see create_pool())
The workflow resources are not deleted from blob during shutdown()
By default Azure Batch only places one job per node, which is inefficient
The Azure Batch retry option is hardwired to two (see create_job())
Code cleanup: Lots of minor issues marked with FIXME in the code
Untested: when using instances with extra disks, is the space made available in Docker?
Untested: use of spot instances

This is an attempt to build native Azure Batch support into Snakemake. See https://andreas-wilm.github.io/2020-07-30-azure-batch-in-snakemake/ for more info. There are quite a few kinks that need ironing out, but the code already works. I've created this PR so that others can give it a try and comment. Remaining issues (copied from the blog post above):

Azure Batch parameters are provided to Snakemake using a yaml file with --az-batch-config. Instead separate arguments should be used.

You can do it like with tibanna: --tibanna-config arg1=value1 arg2=value2 ....

The workflow resources are not deleted from blob during shutdown()

This is quite important I think.

By default Azure Batch only places one job per node, which is inefficient

We could add a todo that this can be improved in the future. Let's get it out first.

The Azure Batch retry option is hardwired to two (see create_job())

Since Snakemake has its own restart handling (restart_times), I think it should be set to zero in Azure Batch.

Would love to see this pulled in @andreas-wilm @johanneskoester.

Would love to see this pulled in @andreas-wilm @johanneskoester.

Same here... would be happy to help iron out some of the remaining issues. Could we get this going?

Sorry folks, I unfortunately don't even have an Azure account anymore and switched back to AWS at work. Happy to provide contacts within Microsoft (please DM).

Closing this as it is now implemented in #2246


No qualifying bean of type RsaProperties when upgrading from Edgware.SR2 to Edgware.SR3

I'm trying to update from Spring Cloud Edgware.SR2 to Edgware.SR3. When I build the Spring Cloud Config Server the default contextLoads test in ApplicationTests fails with the following error:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cloud.bootstrap.encrypt.RsaProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

I suspect that this is the result of this change in Spring Cloud Commons. I have encrypt.rsa configuration in my bootstrap.yml file which is working in Edgware.SR2 and I've tried adding compile( "org.springframework.security:spring-security-rsa" ) to build.gradle.
I've tried asking this on Gitter and Stackoverflow. However since then I've noticed that with Spring Boot 1.5.14 and Spring Cloud Edgware.SR3 (Spring Cloud Config 1.4.3 and Spring Cloud Commons 1.3.3), it is only the test that fails. If I comment out the test, build and then run, it starts successfully and decrypts my configuration. If I go to start.spring.io to create a new Spring Cloud Config project, added my application.yml, my bootstrap.yml and include spring-security-rsa the test fails and the service fails to start due to the above error.

What change would I need to make in order to for the default test to pass on Spring Boot 1.5.14 and Spring Cloud Edgware.SR3 with Spring Cloud Config that uses RSA encrypted data?
What would I need to do to get both the test to pass and the service to run with Spring Boot 2.0.3 and Spring Cloud Finchley?
I see that the Spring Cloud documentation mentions that spring-security-rsa should be on the classpath, but the Spring Cloud Config documentation does not. If this dependency does need to be included, could it be added to the Spring Cloud documentation?
Both of those section state that Java Cryptography Extension Unlimited Strength Jurisdiction Policy Files are needed (the Spring Cloud Config documentation explicitly states that this is not on by default), but it has been the default since Java 8 Update 161 (release notes and bug note) and possibly also in openjdk 8 Update 152. Could the documentation be updated to note the change to

We are not having any failured when building spring cloud config.  Yesterday I updated config to use the latest boot release (1.5.14) and the latest commons release.  There were test failures but not the the failure you mention above.  Can you use the latest snapshots and see if you can reproduce the problem?

There must be something in your environment causing the failure.  We dont add those properties to any kind of configuration when running the build.

Thank you for your help.
I've deleted my entire gradle cache, downloaded a new project from start.spring.io, added some encrypt configuration and a newly generated password protected encryption key, which I've uploaded to github. At the moment it buids and runs, but if the password is commented out then both the build and run fail. Its missing configuration to work correctly, but I didn't want to make too many changes.
I'm using Windows 10 and Java 8 Update 172.
Would you be able to spare some time to check if the test and exection works without the password being in bootstrap.yml or to point out where I'm going wrong?
I've noticed that in order to pass the test on Edgware.SR2, the following was included in build.gradle, although the values for these properties weren't passed via any means to the build:
test {
  systemProperty "encrypt.keyStore.password", System.getenv( 'encrypt.keyStore.password' )
  systemProperty "encrypt.keyStore.secret", System.getenv( 'encrypt.keyStore.secret' )
}

If you look at the --debug report, RsaEncryptionConfiguration is not executed because you have a encrypt.keyStore.location but no encrypt.keyStore.password, therefor RsaProperties is not created. KeyStoreConfiguration probably needs to have the same condition, it's only conditional on encrypt.keyStore.location.

It's likely an edge case. You probably shouldn't put encrypt.keyStore.location in the default profile for the build and it should be in a prod profile or something.

Thank you very much. Sorry I see now how I should have read that error to find the cause.
Although I have different configuration for development and production, I encrypt both. I'll use profiles to ensure that the runtime configuration includes encrypt.keyStore.location, but the build confguration does not.
I'll answer this in Stackoverflow, but if you add an answer then I'll mark yours as the answer.

We don't duplicate effort, therefore we won't answer stack overflow


Does this actually depend on sha.js ?

Looking at index.js, it's not imported anywhere.

Nvm, it's required for the browser. Makes sense.


Bump app build number to  454

Release Note
NONE

@enahum I see PRs getting merged into 'main'. If there's more coming in, I don't mind 'cutting' the build tomorrow.

I'll cut it.. currently the build is simply going to fail

I'll cut it.. currently the build is simply going to fail

Ok

/update-branch

/cherry-pick release-2.0

Cherry pick is scheduled.

Error trying doing the automated Cherry picking. Please do this manually
+++ Updating remotes...
Fetching upstream
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
From github.com:mattermost/mattermost-mobile
   ca1463148..b2fb4d7ec  main        -> upstream/main
   ec99c8bc0..245f89815  release-2.0 -> upstream/release-2.0
   511525c9e..05984b720  release-2.1 -> upstream/release-2.1
Fetching origin
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
+++ Updating remotes done...
+++ Creating local branch automated-cherry-pick-of-mattermost-mobile-#7042-upstream-release-2.0-1674850881
Switched to a new branch 'automated-cherry-pick-of-mattermost-mobile-#7042-upstream-release-2.0-1674850881'
Branch 'automated-cherry-pick-of-mattermost-mobile-#7042-upstream-release-2.0-1674850881' set up to track remote branch 'release-2.0' from 'upstream'.

+++ About to attempt cherry pick of PR #7042 with merge commit b2fb4d7ec207a935724a3fe6358098eaa5ed9a74.

error: could not apply b2fb4d7ec... Bump app build number to  454 (#7042)
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

+++ Conflicts detected:

UU android/app/build.gradle
UU ios/Mattermost.xcodeproj/project.pbxproj
UU ios/Mattermost/Info.plist
UU ios/MattermostShare/Info.plist
UU ios/NotificationService/Info.plist
Aborting.

+++ Aborting in-progress git cherry-pick.

+++ Returning you to the master branch and cleaning up.

/cherry-pick release-2.1

Cherry pick is scheduled.

also cherry picking for 2.0
As we are cutting a dot release we need to keep the build numbers in sync until the releases


Add Batcher wrapper

Currently the API of cervo assumes that all data is received pre-batched; but it'd be useful for some situations to have a wrapper that can take elements and build batches dynamically (and execute on command).

Done in #25.


Trello Layout - Feature Request

Please pardon my ignorance...not sure how difficult (or even possible) this feature request would be? Is it possible to adjust this plugin to also allow for the lists to be scalable? In other words, some of my lists may only currently have 2 cards but others may be 15+. Rather than having to hover and scroll, it would be great to be able to adjust the lists to pull down/up to adjust to the size we select.
Any thoughts? Thanks for the consideration!

This may be possible, but I think adjustable list sizes would add too much additional complexity to the plugin. (The simpler we keep it, the more likely I'll keep having time to maintain it whenever Trello makes updates that break it.)
The feature discussed in Issue #23 would probably satisfy your need well enough, but I won't likely have time to implement it anytime soon.


[Service Bus] Prepare tracing methods for message processor and scheduleMessage

EventHubs has distributed tracing for sending out events and processing events. ServiceBus already has tracing for sending. This PR is to prepare the tracing utility functions for the message processor (to be added, feature requirement #16087).
It also separates method traceMessageSpan from ServiceBusMessageBatch so scheduleMessage will also be able to use it in the future.
The full feature of distributed tracing for ServiceBus for all languages is still under discussion with the service team.
closes #15622

Tracing changes looking good.
Consider adding unit tests.

@samvaity I created an issue to follow the unit test code. Will discuss with you later when I have time.


Can't Close Devtools

The default ctrl+w keycombo would close a devtools window (when it's the active window), but since the extension API prevents any extension from closing devtools window, this extension can't simulate that.
If ctrl+w (or any other keycombo that's assigned to this extension) is pressed on a devtools window, it will be a no-op.

This won't be fixed unless a change in chrome.tabs API happened, which is very unlikely due to safety reasons.


feat(upgrade): packages upgrade and fixed corresponding issues

Coverage increased (+0.02%) to 90.094% when pulling 5f5a54c86bddc946fc862a5dc411f63b469ff6bd on mbocek:master into 46b5e413082132faf6f21a9aedbee094d70c8d03 on jbehavesupport:master.


feat(api): default to labware version 1, not latest

overview
Closes #3664
changelog

review requests
See ticket for info & criteria

Should cover both APIv1 and APIv2

@btmorr I agree with the rationale and the code, though I want to propose that keeping the unused code in the repo might be a better short term option.
Given that we have labware definitions versions in order to make future patches smooth, even though we currently don't have a a great UX around those version differences anywhere. At least until we establish best practices for Python devs and clarify the PD->RA relationship to individual labware versions, I think that this change to "default to v1" is the right move.
That said, it is not a complete solution, because as soon as we introduce our first patch, there will be no incentive to: 1) migrate your existing protocols over to explicitly load the newer version, 2) create a new protocol with the most modern (read accurate) labware def.
This shows me that somewhere in the medium term (ideally before our first patch version), when have time and design resources to guide users in LL with a more version aware UX. The UX should push them towards importing the most recent version into their protocol explicitly without having to keep arbitrary version numbers in working memory as they develop their protocols. Users will assume that a default parameter is being selected because it is the most responsible, in this case v1 is less responsible if a v2 is present. Without guidance, there version parameter will likely be seldom used.
In addition, I think there is still probably a use case for papi users who are fine with patches and would prefer the latest def on hand at run time. Maybe keeping this function around unused could serve as a sort of documentation of our intention to improve the overall UX soon.

Very much in agreement with @b-cooper , additionally from UX's side this is relatively simple problem to tackle - one which we could do in a couple days. would urge to prioritize sooner to ensure we're delivering a solution with longevity in mind, rather than a short term solution with follow up fix.


Invalid principle

I have issue with the module as below:

aws_iam_role.cross_account_role: Error creating IAM Role the-role-name: MalformedPolicyDocument: Invalid principal in policy: "AWS":"arn:aws:iam::1234567890:role/AWS-Admins"
status code: 400, request id: 34a3dfa3-6fe6-401a-8c44-1e06e4aa516e

Please help

From first sight, it seems like you policy is invalid.
Can you provide your policy.json file

Hi,
Actually, i just testing this module and the permission policy I set as below:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "",
"Resource": ""
}
]
}
It give an issue invalid principle.


Add support for GLONASS and concurrent receivers

At the moment only GPS receivers and their output is supported. GLONASS and concurrent receiver produce a different dataset. The messages start with $GNxxx or $GLxxx instead of $GPxxx.
for example the output of a u-blox NEO-M8N:
$GNRMC,090348.80,A,4838.00682,N,01301.61381,E,1.533,,301020,,,A*61
please add the support for these receivers.

Hi @generationmake 👋 I'll put in onto the feature list. Do you have such a receiver for testing?

Hi @aentinger
I have an u-blox NEO-7M which can be switched from GPS to GLONASS and an u-blox NEO-M8N which supports concurrent systems. So yes, I have devices available for testing.
Maybe we could add a list with tested devices.

We definitely should add a list of tested devices within the README 👍


What type of update are you requesting?
A new version of an existing package
Current Package Identifier
Genymobile.scrcpy
Package Version
2.7
Please describe the changes you would like to see
There is a new release (2.7) available.
Download Page Url: https://github.com/Genymobile/scrcpy/releases/
Updating to this url should keep the repo always up to date. https://github.com/microsoft/winget-cli/discussions/863

[!NOTE]
It's currently in progress.

See #173679.

Thanks @Dragon1573

Close with reason: Duplicate of #173679;