[IOS] SafeArea maintainBottomViewPadding is not respected when keyboard viewInsets are animated

This issue has been introduced as a result of the changes to the flutter engine (iOS) made in PR 29281 (https://github.com/flutter/engine/pull/29281). Those changes are in use on the current master and dev branch of this project.
It is now possible for MediaqQuery viewInsets.bottom to be >0 AND for padding.bottom >0 during the keyboard transition. This results in the maintainBottomViewPadding property being ignored within SafeArea build() at various times during the animation.
Steps to Reproduce

Execute flutter run on the code sample
Tap on the TextField to reveal the software keyboard
Tap 'done' to remove the software keyboard

Expected results:
The keyboard should overlay the app and not affect the layout of any widgets. In particular, the SafeArea padding at the bottom of the orange widget should remain unchanged regardless of the viewInsets.bottom value created by the keyboard  since maintainBottomViewPadding is set to true.
Actual results:
During animation, the orange widget 'jumps' downward. It is laid out differently during the animation indicating that the bottom viewPadding is not always respected, despite maintainBottomViewPadding being set to true.

Code sample

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MyHomePage(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      appBar: AppBar(
        title: const Text('SafeArea Demo'),
      ),
      body: Center(
        child: Column(
          children: <Widget>[
            const Expanded(
                child: Padding(
              padding: EdgeInsets.only(top: 20.0),
              child: Text("This scaffold has resizeToAvoidBottomInset=false"),
            )),
            SafeArea(
              maintainBottomViewPadding: true,
              child: Container(
                color: const Color.fromARGB(255, 255, 72, 0),
                height: 500,
                child: Column(
                  children: const [
                    Text(
                      'This container is surrounded by a SafeArea \n with maintainBottomViewPadding=true',
                      style: TextStyle(fontWeight: FontWeight.bold),
                    ),
                    SizedBox(width: 200, child: TextField()),
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

Logs

No relevant runtime logs

No issues found! (ran in 1.8s)

[✓] Flutter (Channel master, 2.10.0-1.0.pre.373, on macOS 12.1 21C52 darwin-x64, locale en-GB)
    • Flutter version 2.10.0-1.0.pre.373 at /Users/joellurcook/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a22cf5d6b9 (28 minutes ago), 2022-02-02 09:16:05 +0100
    • Engine revision 0bd729b972
    • Dart version 2.17.0 (build 2.17.0-74.0.dev)
    • DevTools version 2.10.0

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/joellurcook/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

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

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

[✓] Android Studio (version 4.2)
    • 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.8+10-b944.6916264)

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio 2.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] IntelliJ IDEA Community Edition (version 2021.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • 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

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

[✓] Connected device (2 available)
    • iPhone 13 (mobile) • 63C9A42F-6841-4F83-8922-DCAE0C900EBE • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 97.0.4692.99

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

! Doctor found issues in 1 category.

https://user-images.githubusercontent.com/55881597/152073161-6c91ba08-fa50-4b38-a48c-6961bc95fdf7.mp4

The offending line in SafeArea is:
if (data.padding.bottom == 0.0 &&
        data.viewInsets.bottom != 0.0 &&
        maintainBottomViewPadding)
      padding = padding.copyWith(bottom: data.viewPadding.bottom);

I shall raise a PR with a more suitable condition

Hi @joellurcook, Thanks for filing the issue. I am able to reproduce the issue on stable and the master channel, This issue seems to be only affecting IOS platforms and works fine on Android.

IOS
Android

flutter doctor -v
[✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.8.1 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 77d935af4d (7 weeks ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • 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 4.2)
    • 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.8+10-b944.6916264)

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

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

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro (mobile) • 14F40EC6-3B73-469A-A1C0-8CF0B152290F • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 97.0.4692.99

• No issues found!

[✓] Flutter (Channel master, 2.10.0-1.0.pre.371, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.10.0-1.0.pre.371 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d1285eef1b (4 hours ago), 2022-02-02 00:50:20 -0500
    • Engine revision 5bbdb7a6f7
    • Dart version 2.17.0 (build 2.17.0-74.0.dev)
    • DevTools version 2.10.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • 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 4.2)
    • 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.8+10-b944.6916264)

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

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

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555                     • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro (mobile) • 14F40EC6-3B73-469A-A1C0-8CF0B152290F • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 97.0.4692.99

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

• No issues found!

Hi @maheshmnj
Thanks for confirming. I notice your Android video shows software back buttons. This would create a MediaQuery viewInsets.bottom, but not a viewPadding.bottom, which is required to see the problem. You would need an android device with a notch at the bottom and hardware buttons to replicate the issue. Unfortunately adding a notch to my AVD (and removing the software buttons) does not result in flutter reporting any bottom inset/padding - I'm not sure if this is another Flutter bug or an issue with emulated notches.
I suspect that the issue would occur on Android if you could find such a device. I believe viewInset animation for software keyboard has been available for Android for some time, so the bug may be quite an old one, just very hard to see before being introduced to iOS.

CC @gaaclarke

@luckysmg

I've reviewed everything again.
The sample code makes sense.  The desired behavior is that the app won't shrink when the keyboard is presented and that the widget is fixed to the bottom of the screen even when the keyboard is presented.  In practice that would put you at the risk of having a Text widget that is obscured by the keyboard.  But if the orientation is locked and the widget is high enough it could be a valid use case.
The engine PR is correct, meaning I don't think it's doing something incorrect that is causing the visual glitch.  The engine PR is modifying the view inset but the reproduction code is explicitly saying it doesn't care about the view inset when laying out the widget.  This validates the OP's suggestion that the fix may be in the framework.  I'm not that familiar with that code.  I'll read it over and the OPs suggestion to see if that makes sense to me.
Let me know if you think I'm missing something.

The `viewPadding` is always 34.0(which is the ios safeArea height).
The `padding` is from 34 to 0
And Here is the code in SafeArea widget's build(context) method
@override
  Widget build(BuildContext context) {
    assert(debugCheckHasMediaQuery(context));
    final MediaQueryData data = MediaQuery.of(context);
    EdgeInsets padding = data.padding;
    // Bottom padding has been consumed - i.e. by the keyboard
    if (data.padding.bottom == 0.0 && data.viewInsets.bottom != 0.0 && maintainBottomViewPadding)
      padding = padding.copyWith(bottom: data.viewPadding.bottom);

    return Padding(
      padding: EdgeInsets.only(
        left: math.max(left ? padding.left : 0.0, minimum.left),
        top: math.max(top ? padding.top : 0.0, minimum.top),
        right: math.max(right ? padding.right : 0.0, minimum.right),
        bottom: math.max(bottom ? padding.bottom : 0.0, minimum.bottom),
      ),
..........

We can see the code here:
 // Bottom padding has been consumed - i.e. by the keyboard
    if (data.padding.bottom == 0.0 && data.viewInsets.bottom != 0.0 && maintainBottomViewPadding)
      padding = padding.copyWith(bottom: data.viewPadding.bottom);

When animation is running,we can pick the first log data as example:
flutter: viewpadding:34.0
flutter: padding:31.666062079370022
flutter: inset:2.333937920629978

This data will make the condition:data.padding.bottom == 0.0 && data.viewInsets.bottom != 0.0 && maintainBottomViewPadding to false when maintainBottomViewPadding is true
So the padding = padding.copyWith(bottom: data.viewPadding.bottom); will not execute....

I've reviewed everything again.
The sample code makes sense. The desired behavior is that the app won't shrink when the keyboard is presented and that the widget is fixed to the bottom of the screen even when the keyboard is presented. In practice that would put you at the risk of having a Text widget that is obscured by the keyboard. But if the orientation is locked and the widget is high enough it could be a valid use case.
The engine PR is correct, meaning I don't think it's doing something incorrect that is causing the visual glitch. The engine PR is modifying the view inset but the reproduction code is explicitly saying it doesn't care about the view inset when laying out the widget. This validates the OP's suggestion that the fix may be in the framework. I'm not that familiar with that code. I'll read it over and the OPs suggestion to see if that makes sense to me.
Let me know if you think I'm missing something.

To give an example use case... my app brings up popups from the bottom of the screen, of variable size, all of which have a SafeArea at the bottom. It also brings up the keyboard sometimes and disables the app UI when it does so. Because the UI is anyway disabled I want the keyboard to overlay - obscuring widgets is fine. Unles I specify maintainBottomViewPadding, my popup SafeAreas will reduce to zero when the keyboard comes up, causing the popup to change height. This bug makes my popups behave just like the example app.

Hi @luckysmg
Yes, exactly that - see my PR with a suggested change to the condition you have mentioned.

Oh I didn't see that. Yes,that 's it! 😀 @joellurcook


Wireguard Allowed IPs not propagated correctly after node restart

Is there an existing issue for this?

[x] I have searched the existing issues

Version
equal or higher than v1.16.0 and lower than v1.17.0
What happened?
Restarting a node it happens that it cannot reach any kubernetes address. Investigating I saw that it is due to the fact that, after the restart of the node, the other Wireguard peers do not receive the correct list of allowed ips and in particular the host address is missing.
The situation can only be restored by doing a rolling restart of the daemonset.
How can we reproduce the issue?

Check the status of wg of a peer:

root@vin-54:~# wg show | grep "<IP_ADDRESS>" -B 1 -A 2
peer: 2aU6+YDRxbJGAWevAisNMpGf+7ouC5LMxF8p1L7oHAc=
  endpoint: <IP_ADDRESS>:51871
  allowed ips: <IP_ADDRESS>/32, <IP_ADDRESS>/32, <IP_ADDRESS>/32, <IP_ADDRESS>/32

Restart the peer
Check the status again and assert that the host address missing

root@vin-54:~# wg show | grep "<IP_ADDRESS>" -B 1 -A 4
peer: 2aU6+YDRxbJGAWevAisNMpGf+7ouC5LMxF8p1L7oHAc=
  endpoint: <IP_ADDRESS>:51871
  allowed ips: <IP_ADDRESS>/32, <IP_ADDRESS>/32

Cilium Version
Client: 1.16.3 f2217191 2024-10-09T15:17:46+00:00 go version go1.22.8 linux/amd64
Daemon: 1.16.3 f2217191 2024-10-09T15:17:46+00:00 go version go1.22.8 linux/amd64
Kernel Version
Linux vin-53 5.15.0-71-generic #78-Ubuntu SMP Tue Apr 18 09:00:29 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.2", GitCommit:"7f6f68fdabc4df88cfea2dcf9a19b2b830f1e647", GitTreeState:"clean", BuildDate:"2023-05-17T14:20:07Z", GoVersion:"go1.20.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v5.0.1
Server Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.10", GitCommit:"0fa26aea1d5c21516b0d96fea95a77d8d429912e", GitTreeState:"clean", BuildDate:"2024-01-17T13:38:41Z", GoVersion:"go1.20.13", Compiler:"gc", Platform:"linux/amd64"}
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

[x] I agree to follow this project's Code of Conduct

I'm also experiencing this issue.
Cilium version: 1.16.3
Kubernetes version: 1.31.2
Linux kernel: 5.14.0-427.40.1.el9_4.x86_64
Running with these encryption settings:
  encryption:
    enabled: true
    nodeEncryption: true
    type: wireguard

Disabling nodeEncryption does not fix the issue, but downgrading to Cilium v1.15.10 does.

I have also been troubleshooting something very similar
Cilium version: 1.17.0-pre.1
Kubernetes version: 1.31.2
Linux kernel: 6.11.5
Running with these settings using the CLI install method:
  --set ipam.mode=kubernetes
  --set cni.exclusive=false
  --set k8s.requireIPv4PodCIDR=true
  --set devices=kube0
  --set encryption.enabled=true
  --set encryption.type=wireguard
  --set encryption.nodeEncryption=true
  --set envoy.enabled=true
  --set kubeProxyReplacement=true
  --set hostPort.enabled=true
  --set ingressController.enabled=true
  --set ingressController.default=true
  --set ingressController.loadbalancerMode=dedicated
  --set gatewayAPI.enabled=true
  --set l2announcements.enabled=true
  --set externalIPs.enabled=true
  --set ipv4.enabled=true
  --set bandwidthManager.enabled=true
  --set bandwidthManager.bbr=true
  --set bpf.masquerade=true
  --set bpf-lb-sock-hostns-only=true
  --set hubble.peerService.clusterDomain=k8s.internal
  --set hubble.relay.enabled=true
  --set hubble.ui.enabled=true

Results:

Restart worker node, confirm it is back to Ready
Check cilium status from cilium pods on all other nodes: all report the restarted node as unreachable
Check cilium status from cilium  on the restarted node: Node 1/1 for each control plane node (node encryption bypassed as expected from this warning), 0/1 for all Endpoints and all other Nodes
Delete cilium pod on another worker node, ensure a new pod is created and Running
Check cilium status from cilium  on all other nodes (not rebooted and not deleted): all report the restarted node and the node with the deleted pod as unreachable
kubectl rollout restart -n kube-system ds/cilium deploy/cilium-operator both are needed to restore full connectivity

Remove nodeEncryption from the settings and restarting both rollouts (note the operator doesn't automatically restart the rollouts to apply the change for some reason):

Restart worker node, confirm it is back to Ready
Check cilium status from cilium  on all nodes: all report good connectivity

Correction to something I removed from the post above:
If I remove nodeEncryption from the settings and restart both rollouts (note the operator doesn't automatically restart the rollouts to apply the change for some reason):

Check cilium status from cilium  on all nodes: all report good connectivity
Restart worker node, confirm it is back to Ready
Check cilium status from cilium pods on all other nodes: all report the restarted node as reachable but endpoints as unreachable
Check cilium status from cilium  on the restarted node: Node 1/1 for all nodes, 0/1 for all Endpoints
kubectl rollout restart -n kube-system ds/cilium deploy/cilium-operator both are needed to restore full connectivity, wait for rollouts to finish
Check cilium status from cilium  on all nodes: all report good connectivity

It seems that removing nodeEncryption alone doesn't fully resolve the issue.

Bug confirmed on main HEAD, but not for v1.15

Given it's 1.16 and above, could be related to https://github.com/cilium/cilium/pull/33278.

@bimmlerd Just did a local test at b855b2575f7ae718290b29288b244930c7a223ec (b855b2575f7ae718290b29288b244930c7a223ec), all good.
Maybe https://github.com/cilium/cilium/pull/34612?

Turned out to be 3ebfa4d636af626c7484209a512bfefa6e027c93 (wireguard: Use dummy peer for allowed IP removal). Cilium built from 3ebfa4d636af626c7484209a512bfefa6e027c93 can reproduce, while 3ebfa4d636af626c7484209a512bfefa6e027c93~ can't.

cc @jrife

cc @jrife

Thanks, I can take a look today. Is there any way to reproduce this in kind? Otherwise, I'll set up a real cluster and restart one of the nodes to reproduce.

It looks like with https://github.com/cilium/cilium/pull/34612 UpdatePeer() fails to sync the node IPs after a public key change which happens after a node restart. I'm working on https://github.com/cilium/cilium/pull/35750 to fix this.

@jrife This is a key point. If the public key of a node changes when the node is rebooted, I confirm that the public key remains the same in the other nodes. This was a fact that I had observed in various tests conducted.

If the public key of a node changes when the node is rebooted, I confirm that the public key remains the same in the other nodes

Just to clarify are saying the public key for the node that gets rebooted remains the same in the output of wg show on the other nodes even after that node comes back up and is Ready? In my testing the public key does not remain the same on the other nodes following a reboot. See my example above: "wg show before and after the reboot of the peer at <IP_ADDRESS>".

Correct. You can see by scrolling to the top of my report, I indicated the state detected by "wg show" before and after the peer restart. I had observed that allowed IPs were missing, but also that the public key is unchanged. I do not know if this is correct behavior, certainly the missing allowed IPs does not allow the node to communicate with others.

I have now rolled back to version 1.15.10 and cannot test further, this version is not affected by the problem.

Looking a bit closer, I think the state directory (/var/run/cilium) where Cilium stores the generated WireGuard key on my node gets deleted after a reboot triggering the regeneration. This may be an artifact of my environment (GKE). It's possible there are two issues here and I've found one. The public key changing is key to the fix in https://github.com/cilium/cilium/pull/35750. I will continue to poke around to see if I can get some symptoms closer to what you saw.

@jschwinger233 @cyanidium Since you also reproduced this issue, I'm wondering if you observed the node key change or not after the reboot in your environment.

I've got 3 control planes and 5 workers, so I've restarted 1 worker and trimmed the data so that only the restarted worker, 1x cp, and 1x worker are shown. On my servers, /run is mounted as tmpfs and /var/run symlinks to ../run, so it isn't preserved across reboots. This is exactly what is documented for systemd's fire-hierarchy, so it should be common to almost all distros at this point.
 I can create a separate ticket if needed.

One more note: in my environment the nodes have static IP addresses. I am not able to test what happens if the node reboots with a different IP address.

@cyanidium Thanks for the detailed info. This seems consistent with my observations.

On my servers, /run is mounted as tmpfs and /var/run symlinks to ../run, so it isn't preserved across reboots. This is exactly what is documented for systemd's file-hierarchy, so it should be common to almost all distros at this point.

This is what I see in the environments where I tested as well. /var/run points to /run which is a tmpfs mount, so /var/run/cilium/state is cleared after reboot resulting in a fresh WireGuard key being generated each time. This scenario would be fixed by https://github.com/cilium/cilium/pull/35750.

Possibly a different issue. I can create a separate ticket if needed.

Possibly. I kind of want to see if we can reproduce the symptoms as described before creating a new issue. @m-sarti what does ls -al /var/run and df show on your nodes? Is /var/run pointing to a tmpfs mount?

@jschwinger233 @cyanidium Since you also reproduced this issue, I'm wondering if you observed the node key change or not after the reboot in your environment.

I reproduced issue using local kind-based cilium cluster. Indeed key changes after docker restart -t0 kind-worker.


[PR: Closes #504]

Updated

Closes: #504
Description of Changes

Added Badges and Gif to readme file.
Added Important notes in tabular format for clarity.
Updated the Readme File.

Checklist:

[x] My code adheres to the established style guidelines of this project.
[x] I have conducted a self-review of my code.
[x] I have included comments in areas that may be difficult to understand.
[x] I have made corresponding updates to the project documentation.
[x] My changes have not introduced any new warnings.

Screenshots

Updated
Updated
Updated

@tuhinaww Amazing work!
Looking forward for more contributions from you. 🧑💻

Thank you so much for your contribution.🌟
Make sure to ⭐ and follow me.

I would love to connect with you all ❤

https://www.linkedin.com/in/om-gawande/

Likewise @Spyware007 !! It was amazing to work with you!! :)


Create and update commands do not take return_fields_by_field_id into account

The record returned will always have names, not IDs. We need to fix it. I guess it is quite simple.

requires pyairtable 1.4.0

I have a hunch that this is because returnFieldsByFieldId needs to be passed in the POST body rather than as query params in the URLs. I'm working on this part of the code already in #247 so I'll cut another branch for this issue soon.


Fix issue where small web browsers were being miscategorized as mobile web

Mostly done to fix an issue where currently links don't show as / behave strictly as (no underline, no cursor change) links when the agent's viewport is smaller than 1230px, rather than if it is a mobile device by our best guess.
Definitely will have some other changes but getting a hopefully more accurate flag in early seems worth it. A less controversial change may be to adjust Link to switch based on isNative rather than the current isDesktopWeb 🤷🏼.
I've been testing locally and things seem to be great after the change, but I've of course got limited context here. Thanks for the opportunity to contribute!

Drafting this while I chase down some CSS issues; mostly with padding on Feed instances

Alright, ready for review now I think! I ended up adding a shouldUseMobileLayout variable to account for places where we still want the mobile look/feel but aren't actually mobile.
Def not sold on the name, but the concept seems valuable/relevant if we're going to keep the mobile-esque view for smaller screens in general.
Feels really good locally, and I haven't seen any additional issues!

@Kingles So I just redid all of our responsive breakpoint code; I want to work this in but I need to understand the issue a little better. I'm guessing https://github.com/bluesky-social/social-app/issues/1410 might be manifesting the issue this is meant to solve?
The goal is to be deciding what to render based on screen real-estate only -- at least for now. Is our query botching that somehow?


x/mobile/cmd/gomobile: rewrite misc/ios/clangwrapper.sh in Go

misc/ios/clangwrapper.sh can be easily reimplemented in Go. Rewrite the script to remove the misc/ios  dependency from gomobile init.

I have what looks like an unrelated change, but it would benefit from this, so I'll try to do this as part of it.


Matrix shard data preparer for HDFS.

This is originally for preparing sparse matrix shards on HDFS for experiments with BWMF.

Closing this since it's just for code snippet.


PackageIcon doesn't work in VS yet

I built my package with VS 2017 15.9.17 ('dotnet build') today and saw the PackageIconUrl deprecation warning. So I changed my .csproj file to use PackageIcon instead and placed the PNG image file in the project root directory. It is included in the .nupkg file and the .nuspec file in it contains that link with the file name (no path). Looks good. But Visual Studio won't show that icon anymore. Using a local directory as package source. So the docs should probably also tell me that I can only use this with an unspecified newer version of Visual Studio. Reverting my commit now and staying with PackageIconUrl.

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

ID: 099102e8-c320-ef50-6821-57519684dc98
Version Independent ID: 1523dac4-419d-613d-2497-4062f9efd358
Content: NuGet pack and restore as MSBuild targets
Content Source: docs/reference/msbuild-targets.md
Product: nuget
GitHub Login: @karann-msft
Microsoft Alias: karann

@ygoe - VS doesn't yet support showing self-contained icons from offline or folder based feeds. We are working on releasing this in Visual Studio 16.5. If you publish packages to nuget.org, the self-contained icon scenario is fully supported since nuget.org extracts, hosts, and serves these icons when browsing packages on nuget.org.

So odd and frustrating that you are providing warnings for (and documenting!) "features" that are not even fully supported yet.
LICENSE is another great example:
https://github.com/NuGet/Home/issues/7509#issuecomment-446296042

Yes, @Mike-EEE, evolving the package format, changing the clients and changing the protocol and the server is tricky work to plan, execute and coordinate.
We're learning each time we do it, and appreciate your constructive feedback.
As we plan each new instance of these coordinated features, the teams involved are taking these lessons to heart. Sorry for your frustration, as we get better at this.

@karann-msft VS 16.5.0 is out and seems PackageIcon is not supported yet?

@jasinycw It is fully supported in 16.5. Have you tried it out and found something not working as expected?


Feature development cycle change

Pull Request Testing

[X] Describe testing already performed for these changes: Changed PROJECT ASSIGNMENT to CYCLE ASSIGNMENT for consistency.  Please note when these changes were made, no items were kicked off in the "Actions" area.

[ ] Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:

[ ] Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes or No]

[ ] Do these changes include sufficient testing updates? [Yes or No]

[ ] Will this PR result in changes to the test suite? [Yes or No]
If yes, describe the new output and/or changes to the existing output:

[ ] Please complete this pull request review by [Fill in date].

Pull Request Checklist
See the METplus Workflow for details.

[ ] Review the source issue metadata (required labels, projects, and milestone).
[ ] Complete the PR definition above.
[x] Ensure the PR title matches the feature or bugfix branch name.
[x] Define the PR metadata, as permissions allow.
Select: Reviewer(s)
Select: Organization level software support Project or Repository level development cycle Project
Select: Milestone as the version that will include these changes
[ ] After submitting the PR, select Development issue with the original issue number.
[ ] After the PR is approved, merge your changes. If permissions do not allow this, request that the reviewer do the merge.
[ ] Close the linked issue and delete your feature or bugfix branch from GitHub.

Ian is looking into the trivy failure, which has been going on for a while. You’re good to ignore it and merge this PR.

On May 3, 2023, at 10:42 AM, jprestop @.***> wrote:
@jprestop approved this pull request.
I have reviewed the changes and approve this pull request. Thanks for your work on this task @lisagoodrich https://github.com/lisagoodrich. @mollybsmith-noaa https://github.com/mollybsmith-noaa I see that the "Trivy Repo Scan / Analyze (pull_request)" has been queued for days. I suspect it may fail as the main branch PR's Trivy Scan failed. Can you please confirm if it is ok to squash and merge this PR?
—
Reply to this email directly, view it on GitHub https://github.com/dtcenter/METexpress/pull/124#pullrequestreview-1411318271, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHBWGZNKWWDI3V27P2N2QDDXEKDGBANCNFSM6AAAAAAXR5DNSI.
You are receiving this because you were mentioned.


Code Question

Can you tell which part  is the reproduction of Adaptive Attention Span in Computer Vision in your code.

Internet Bug


Dataset Class Distribution Analysis plots on Dashboard (small improvements)

Describe the solution you'd like

For Representation mismatch, when the percentage is less than 1%, the label/annotation shows 0%. It'd be great if we could show fractions of a percent, at least down to tenths, maybe hundredths.
Axis labels for all plots (x-axis for first two, and both x- and y-axis for the third)

Additional context

self-assign

#self-assign


added remove_all in Mojo::Parameters

When converting a cgi script to mojo I notice that I needed 'delete_all' equivalent in CGI. This change added a simple method 'remove_all' in Mojo::Parameters which does that. It is a very simple but convenient method to wipe out all input parameters.

:-1: Just using $params->pairs([]) requires less typing.

I could also see just adding a snippet to the pairs documentation

This is true for someone who really knows which method does
what. The name remove_all makes it easier for folks to
search for such functionality. One needs to know the innards
to see that $params->pairs([]) is the right one to use.
On Tue, Jun 30, 2015 at 05:26:19AM -0700, Sebastian Riedel wrote:

:-1: Just using $params->pairs([]) requires less typing.

Reply to this email directly or view it on GitHub:
https://github.com/kraih/mojo/pull/815#issuecomment-117158485

Yes. Having verbiage relating remove_all to this pair method
will work just fine.
On Tue, Jun 30, 2015 at 05:59:10AM -0700, Joel Berger wrote:

I could also see just adding a snippet to the pairs documentation

Reply to this email directly or view it on GitHub:
https://github.com/kraih/mojo/pull/815#issuecomment-117168380

Added to documentation. https://github.com/kraih/mojo/commit/fc39d9d4758eb7a48e008ccde8d41876dc34aa85


Bulk dispatching jobs onto the DatabaseQueue does not trigger jobs

Laravel Version
11.20.0
PHP Version
8.3.9
Database Driver & Version
No response
Description
When pushing an array of jobs onto the database queue using the bulk method the JobQueueing and JobQueued events are not triggered.
In contrast, when pushing an array of jobs onto the redis queue or the SQS queue using the bulk method, these event are triggered (as they should be imho).
I think that @RuslanMelnychenko also described symptoms of this bug in https://github.com/laravel/framework/issues/52380.
I see two potential solutions:

Either not inserting all jobs in a single database modification (i.e. using the default implementation of the bulk method)
Or by calling the raiseJobQueueingEvent/raiseJobQueuedEvent methods for all jobs before/after the logic that is currently implemented in the  bulk method.

Steps To Reproduce
Add a listener for JobQueueing and dispatch jobs onto different queues:
Bus::batch($jobs)->onConnection('database')->dispatch();
Bus::batch($jobs)->onConnection('redis')->dispatch();

The listener will not be invoked when using the database connection, while it will be invoked for the redis connection.

Hey! 👋
You’re right—when pushing an array of jobs to the database queue with the bulk method, the JobQueueing and JobQueued events aren’t triggered. This is different from the behavior on Redis or SQS queues, which can definitely cause inconsistencies.
Possible Workaround
One option is to manually trigger these events in your code before and after the bulk dispatch. Here’s a quick example:
use Illuminate\Support\Facades\Event;
use Illuminate\Queue\Events\JobQueueing;
use Illuminate\Queue\Events\JobQueued;
$jobs = [ /* your array of jobs */ ];
foreach ($jobs as $job) {
Event::dispatch(new JobQueueing($job));
}
Bus::batch($jobs)->onConnection('database')->dispatch();
foreach ($jobs as $job) {
Event::dispatch(new JobQueued($job));
}
This will manually raise the JobQueueing and JobQueued events, ensuring consistency across different queue drivers. Hope this helps! 😊


Update Bevy to 0.13 (Version 0.3.0)

PR closed in favor of renaming latest to release-0.2.2 and making a new branch which will then be renamed to latest (this is so I can rebase)


Incorrect handling of Blocks/Array fields value while calculating the "Fallback to default locale" checked value

Link to reproduction
No response
Describe the Bug
After checking the default "Fallback to default locale" checkbox for the localized Blocks field, publishing the changes and reloading the page - the same "Fallback to default locale" field is not checked.
To Reproduce

Configure 2+ (en and de for example) locales in buildConfig and set fallback: true.
Add Blocks field to fields in Page collection and set localized: true.
Start the CMS and click on create a new Page.
Add any component to the blocks field and publish the changes.
Switch the locale from en to another locale.
Clear the Blocks field and check the default "Fallback to default locale" checkbox
Publish changes and reload the page.
See that previously checked "Fallback to default locale" is not checked.

Payload Version
2.11
Adapters and Plugins
No response

In my opinion, it is connected with checks in NullifyLocaleField, which gets the fieldValue from the blocks field, which looks equal to the children's block length. In case the user checked the "Fallback to default locale," - there is no content for blocks, and the length of children is 0. In NullifyLocaleField there is a defaultValue for checked variable equal to typeof fieldValue !== 'number' which looks to be always false for this case.


BackgroundGeolocationService has hard-coded settings

For example:
      config.configureUrl = 'http://<IP_ADDRESS>:8080/configure';
      config.configureInterval = 10000;
      config.extras = {
        "foo": "extra data item"
      };

Actually, all of the settings machinery in the service seems to be related to the settings UI in the sample app and probably is unnecessary.

I'm fairly certain those settings are used by the geolocation plugin and the settings UI was just to show that the settings can be changed programatically.
I removed the specific code that you used as an example but when I skimmed the rest it all looked useful (not all used at the moment though)
f70e964f988d9e17c3ca7030b5693bd08c5bbea8


Clarify context support

The Differences to React page indicates that context support is included since 3.0 and links to React's Context page which describes the createContext api.
But on the other hand PR 963 is meant to implement the "new" context api.
It seems the Differences to React page is pointing to the new api and not the old api that is actually supported. And there's no other Preact documentation indicating how context is currently supposed to be used.

PR submitted https://github.com/developit/preact-www/pull/226


Spaceship version bump

[16:21:08]: Changes since release 0.31.8:

CSRF token storage by entity type

👍


Hashcat6.2.6

Build was failing on Hashcat v6.2.6; updated syntax in the modules to match current ones. Mode 3 still doesn't seem to work though, not sure why.
Renamed branch for clarity, apologies for the duplicate pull request!

Hi. I had to apply your PR in order to build Hashcat's master branch yesterday. Without your PR, building failed. However, when testing this repo's code for SCCM hashes, Hashcat runs as far as the initial status update then nothing more happens. No errors, nothing. Is this working for you?

I used default settings which means attack mode 0, wordlist or straight attack.


Is that possible to automatically upload released .zip file to discord?

@Solor
I think it can be done because there is a release in the trigger event
see https://docs.github.com/en/actions/reference/events-that-trigger-workflows#release


Set cpu affinity through pthreadpool_create()

Currently pthreadpool_create() only take a size_t indicating number of threads. Shall we add capability to specify cpu affinity?

Affinity is not portable, e.g. macOS doesn't support it. The best we can do is provide a hint of the current CPU core, similarly to pthreadpool_parallelize_*_with_thread functions.


[BUG] Slackbot notifier false positive notification

Expected Behavior
When I log a time entry like this one:

Worked on PROJECT-1235: Solved bug and submitted PR

I should not get a notification from the Slackbot.
Actual Behavior
When I log a time entry like this one:

Worked on PROJECT-1235: Solved bug and submitted PR

I get a notification from the Slackbot.
Possible Fix
Improve the regular expression. The : is throwing things off.
To Reproduce

Log an entry with PROJECT-123: in Noko
Get a notification around 8pm

Additional Information
Here is more info:

https://github.com/fastruby/pecas/blob/b8891addcd2d9b5d53b936621ac531a216098fa3/app/domain/time_entry/description_rules.rb#L18-L24
https://github.com/fastruby/pecas/blob/b8891addcd2d9b5d53b936621ac531a216098fa3/app/domain/time_entry/description_rules.rb#L2

I will abide by the code of conduct

Could be useful to also check this line doing a gsub before matching the Jira ID:
https://github.com/fastruby/pecas/blob/b8891addcd2d9b5d53b936621ac531a216098fa3/app/domain/time_entry/description_rules.rb#L42
Because will have a similar issue doing something like Woking on something (PROJ-123) since the ( ) will also make it fail.
Not sure what's better, if an update of the gsub regular expression removing chars or if an update on the JIRA regular expression to ignore unwanted chars.

I agree that updating the gsub to removing chars will be more beneficial.


call the same task twice but only fire internal promise once

🚀 Feature request
I have a task. If I call
task()
task()

it fires the internal promise twice. Is there a way to make it only fire once?
Current Behavior
It fires twice. Say a http request.
Desired Behavior
Only fire once. The second call returns the same result as the first one.
Use case: I have 3 tasks: t1, t2, t3. tA is called once t1 and t2 is done. tB is called once t1 and t3 is done.  tC is called once t2 and t3 is done. With raw promise I could do
Promise.all([
   Promise.all([t1, t2]).then(_ => tA)
   Promise.all([t2, t3]).then(_ => tC)
   Promise.all([t1, t3]).then(_ => tB)
]).then(...)

But with Task
sequence([
   pipe(sequence([t1, t2])), chain(_ => tA)),
   pipe(sequence([t2, t3]), chain(_ => tC)),
   pipe(sequence([t1, t3]), chain(_ => tB)),
])
...

side effects of t1, t2, t3 will be fired twice each.
Suggested Solution
Honestly not sure. Maybe add a flag to:
A. Somehow make the wrapped promise the same object if they are the same promise.
B. Cache the result of the promise it's the same one.
Who does this impact? Who is this for?
Async programming to maximise the concurrency.
Describe alternatives you've considered

raw promise.
memoization

Additional context

Your environment

Software
Version(s)

fp-ts
2.5.0

TypeScript
3.7.5

Use case: I have 3 tasks: t1, t2, t3. tA is called once t1 and t2 is done. tB is called once t1 and t3 is done. tC is called once t2 and t3 is done

Looks like memoization is the best option
import { IO } from 'fp-ts/lib/IO'

export function memoize<A>(ma: IO<A>): IO<A> {
  let cache: A
  let done: boolean = false
  return () => {
    if (!done) {
      cache = ma()
      done = true
    }
    return cache
  }
}

Example
import * as T from 'fp-ts/lib/Task'
import * as A from 'fp-ts/lib/Array'
import { pipe } from 'fp-ts/lib/pipeable'

let counter = 0

const make = (label: string, delay: number): T.Task<string> =>
  T.delay(delay)(() => Promise.resolve(`${label}: ${counter++}`))

const t1 = make('t1', 100)
const t2 = make('t2', 200)
const t3 = make('t3', 1000)

const sequence = A.array.sequence(T.task)

export function current() {
  console.time('current')
  const log = (label: string) => (a: unknown): IO<void> => () => console.timeLog('current', `${label}: ${a}`)
  return sequence([
    pipe(sequence([t1, t2]), T.chainIOK(log('tA'))),
    pipe(sequence([t2, t3]), T.chainIOK(log('tC'))),
    pipe(sequence([t1, t3]), T.chainIOK(log('tB')))
  ])
}

export function desired() {
  console.time('desired')
  const log = (label: string) => (a: unknown): IO<void> => () => console.timeLog('desired', `${label}: ${a}`)
  const mt1 = memoize(t1)
  const mt2 = memoize(t2)
  const mt3 = memoize(t3)
  return sequence([
    pipe(sequence([mt1, mt2]), T.chainIOK(log('tA'))),
    pipe(sequence([mt2, mt3]), T.chainIOK(log('tC'))),
    pipe(sequence([mt1, mt3]), T.chainIOK(log('tB')))
  ])
}

// current()()
/*
current: 203.234ms tA: t1: 0,t2: 2
current: 1001.999ms tC: t2: 3,t3: 4
current: 1002.507ms tB: t1: 1,t3: 5
*/
desired()()
/*
desired: 202.854ms tA: t1: 0,t2: 1
desired: 1002.817ms tC: t2: 1,t3: 2
desired: 1003.321ms tB: t1: 0,t3: 2
*/


Refixed Issue# 1: inconsistent sidebar style

Fixed Issue 1a: Monospace font in archives now consistent for all sidebar titles on the right.
Fixed Issue 1b: All bullet points now have unfilled circles for consistency.

Let's keep working on #30 instead of opening new issues

Okay will go back to there.

There seems to be no way to push this solution to PULL REQUEST #30, given that my old branch has been deleted accidentally.
Please check this Stack Overflow Article:
http://stackoverflow.com/questions/10081053/how-to-change-the-base-branch-of-a-pull-request
You can't. Just make a new pull request.
shareimprove this answer
answered Apr 9 '12 at 23:18
Amber
230k33386397
8
straight to the point, but not strictly true -- see this answer. – Tom Aug 16 '12 at 9:08
7
Relying on undocumented (and potentially unintentional) API functionality is a recipe for sadness down the line. – Amber Aug 18 '12 at 18:39
15
Nobody said anything about relying on undocumented API functionality. This question is asking for the resolution to a one-off problem, not a permanently supported ongoing solution. Regardless, to say that "You can't" is simply untrue. – Tom Sep 30 '12 at 20:12
5
Either way the undocumented API is broken now (see comments of the other answer), and that's pretty sad. – dequis Jun 16 '13 at 3:00
1
A quick googling dropped me into this issue with hundreds of +1s. github.com/isaacs/github/issues/18 – tejasbubane Feb 4 '15 at 7:04

Please refer to Pull Request #34, moving forward. Kindly close this request. Thank you.


How to set the requestHeaderSize?

Docker commands that you execute
Starting a container and passing in JENKINS_OPTS="--httpPort=8083 --requestHeaderSize=32768" as I need to increase the header size supported by jetty.
Actual result
It doesn't seem like we can pass more than one parameter to JENKINS_OPTS?
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2019-06-21 07:26:08.955+0000 [id=1]     INFO    org.eclipse.jetty.util.log.Log#initialized: Logging initialized @608ms to org.eclipse.jetty.util.log.JavaUtilLog
2019-06-21 07:26:09.116+0000 [id=1]     INFO    winstone.Logger#logInternal: Beginning extraction from war file
2019-06-21 07:26:09.155+0000 [id=1]     WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2019-06-21 07:26:09.207+0000 [id=1]     INFO    winstone.Logger#logInternal: Jetty shutdown successfully
java.io.IOException: Failed to start a listener: winstone.HttpConnectorFactory
        at winstone.Launcher.spawnListener(Launcher.java:217)
        at winstone.Launcher.<init>(Launcher.java:175)
        at winstone.Launcher.main(Launcher.java:362)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Main._main(Main.java:375)
        at Main.main(Main.java:151)
Caused by: java.lang.NumberFormatException: For input string: "8083 --requestHeaderSize=32768"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:580)
        at java.lang.Integer.parseInt(Integer.java:615)
        at winstone.cmdline.Option.intArg(Option.java:307)
        at winstone.cmdline.Option$OInt.get(Option.java:219)
        at winstone.HttpConnectorFactory.start(HttpConnectorFactory.java:30)
        at winstone.Launcher.spawnListener(Launcher.java:215)
        ... 8 more
2019-06-21 07:26:09.209+0000 [id=1]     SEVERE  winstone.Logger#logInternal: Container startup failed
java.lang.NumberFormatException: For input string: "8083 --requestHeaderSize=32768"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:580)
        at java.lang.Integer.parseInt(Integer.java:615)
        at winstone.cmdline.Option.intArg(Option.java:307)
        at winstone.cmdline.Option$OInt.get(Option.java:219)
        at winstone.HttpConnectorFactory.start(HttpConnectorFactory.java:30)
        at winstone.Launcher.spawnListener(Launcher.java:215)
Caused: java.io.IOException: Failed to start a listener: winstone.HttpConnectorFactory
        at winstone.Launcher.spawnListener(Launcher.java:217)
        at winstone.Launcher.<init>(Launcher.java:175)
        at winstone.Launcher.main(Launcher.java:362)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Main._main(Main.java:375)
        at Main.main(Main.java:151)

Expected outcome
Jenkins is started and jetty can handle headers greater than 8k.

No.
Output of docker version
Docker version 17.12.0-ce, build c97c6d6
Other relevant information

Which image are you using?

is actual
277.2 (jenkins/jenkins:lts) and some problem with 288.2 (jenkins/jenkins:latest)

@galek Can you show the invocation of docker you are using?

@slide , yep, but I'm using portainer (visual interface for managing containers)
I can show settings

I don't see the JENKINS_OPTS in there (I could be blind...). Is there a way to see what command portainer will generate?

@slide , hello
Now is not actual. Sorry for the long time reply.
This was an erroneous update of all plugins and the major Jenkins version

So, there is no issue? Can we close this then?

@slide , for me - yes, it's not actual.


Jesse: Watch The[\W_]+Neo[\W_]+Solutions?(?!.com(?<= theneosolutions.com))

Jesse requests the watch of the watch_keyword The[\W_]*+Neo[\W_]*+Solutions?(?!\.com(?<= theneosolutions\.com)). See the MS search here and the Stack Exchange search in text, in URLs, and in code.

The[\W_]*+Neo[\W_]*+Solutions?(?!\.com(?<= theneosolutions\.com)) has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Left and Main Window height stretches beyond the screen for a device like Motorola X2

Works fine on all phones but strangely on Moto X2, a view which is set to Ti.UI.Fill goes below the screen. Suspect is the left and main window height setting.

Further found this in Nexus 5, now checking if this is with screens 1920x1080 and above?

Closing because same issue as https://github.com/viezel/NappDrawer/issues/162 and therefore for resolution, simply follow the link.
Leaving the thread rather than deleting for better google searchability on the same topic


Updated: clipgrab 3.8.12

${}

eba4a5fe-2ef0-4790-a350-979ecbf6017c

Newer version of clipgrab (3.8.13) is now available in master. 3cc724db8b6d0aeb8862351d933ffbc7bee94042


Error: Could not resolve app package: @apache-mynewt-core/apps/boot

I use latest newt 1.7.0 on Windows to build rbnano2_boot target and get follwoing error:
$ newt version
Apache Newt
   Version: 1.7.0
  Git Hash: 80bcba7
Build Date: 2019-07-17_13:51

$ newt build rbnano2_boot
Building target targets/rbnano2_boot
Error: Could not resolve app package: @apache-mynewt-core/apps/boot

If you have a recent tree of Mynewt you have to change to boot app, using something like: newt target set rbnano2_boot app=@mcuboot/boot/mynewt.

Implementing this setting I got the build running and successfully build the target, thank you!
I was following step-by-step the Tutorial | Project Blinky | Blinky on RedBear Nano 2 (version: latest, https://mynewt.apache.org/latest/tutorials/blinky/rbnano2.html). I would quite appreciate if the latest documentation can reflect this change in settings.

Done here: https://github.com/apache/mynewt-documentation/pull/76

Thanks a lot!

This was fixed with apache/mynewt-documentation#76

I'm facing this same issue with this repo:
https://github.com/chris-zen/mdp-link-mynewt
And mynewt HEAD installed with Homebrew:
$ newt build nrf52_boot
Downloading repository mynewt-core (commit: master) from https://github.com/apache/mynewt-core.git
Downloading repository mynewt_nrf52840_mdk (commit: master) from https://github.com/makerdiary/mynewt_nrf52840_mdk.git
Downloading repository tinyusb (commit: master) from https://github.com/hathach/tinyusb.git
Building target targets/nrf52_boot
Error: Could not resolve app package: @mcuboot/boot/mynewt

Also with the arm-eabi toolchain outlined on issue #2076, from ArmMbed. I tried following the updated docs, using set for the bst and the optimized compile profile, but I get the same effect.
Are you able to reproduce this issue, @utzig?

@brainstorm Yes, I could reproduce. There's many things that could be going wrong here. But doing newt upgrade -f afterwards solved it (not that it should be happening in the first place!). Also a very recent build of newt is required, because of a known bug in git submodules that newt is currently "masking" for the mcuboot repo.

hey @brainstorm , @utzig I am facing the same problem with blinky project.
Could not resolve app package: @mcuboot/boot/mynewt
I tried newt upgrade -f as you suggested but I am getting following error with that cmd.
Error: usage: git rev-list [OPTION] ... [ -- paths... ]
What is wrong here. I have already installed git as well.  Please help me to solve this problem.
Thanks in advance!

@Thilanka97 I'm not sure if it's entirely related, but there are some ongoing efforts to fix those issues in https://github.com/apache/mynewt-core/issues/2125... I would come back when 2.0 is properly merged/tested/released, IMHO.


Add support for gallery-based websites

Examples

4chan + derivates
e-hentai.org + sad panda
Fakku

Implementation steps

[x] Add posts parsing and sources, support only through gallery URLs
[ ] Add new "Gallery list" tab type which list the galleries by name only
[ ] Allow more gallery list displays, including: text only, image + text, image only
[ ] Clicking one of those galleries will open a new tab (see 1)
[ ] Add new "Gallery" tab type which is opened by clicking a gallery
[ ] Allow to change gallery display, including: image only, image + text (useful for 4chan threads)
[ ] Left clicking galleries must not open a new tab, but directly show this tab "inside" the current tab (same as the "Favorites" tab). Middle clicking must still open a new tab with the URL

So is this also going to be a full-fledged browser for those sites too or only scrape images.

Same as other sources, so if you consider them "full-fledged browser" then it will also be.
The only difference being that there will be another step: "list galleries, click gallery, list images, click image" (instead of "list images, click image").

Pixiv is missing

yes, Pixiv is the most major one. add it
On Sun, May 28, 2017 at 5:45 PM, maskkulin<EMAIL_ADDRESS>wrote:

Pixiv is missing
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Bionus/imgbrd-grabber/issues/917#issuecomment-304542387,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AS2t8LVLN1LADRpBT6RtwycYCsbEMWj3ks5r-erwgaJpZM4NhTYb
.

Moved to 5.5.0 or else 5.4.0 will not release any time soon.
As for Pixiv, the list given in the initial post are just examples, what will be actually added in 5.5.0 is very likely to be only 4chan as a proof-of-concept. Other sources will be added separately, see #738 for example for Pixiv (that issue will likely get more activity once gallery support is added, feel free to bump it then).

Moving to milestone 5.6.0 to prioritize #995 which also requires deep changes.

the list given in the initial post are just examples

@Bionus what about http://e-shuushuu.net/ from #483 ?
And in this list of examples better to focus on Pixiv first, I guess everyone here wants the same.

Do you on giving all the sources above by default support?

Maybe not all of them from the get-go, but when I'll release the gallery system, I'll at least have support for Pixiv and EH.
To be honest, I already have a work-in-progress version for EH that's progressing pretty well. The files can be found here and only work with the nightly version. Lots of things don't work yet though (see the checklist of this issue).

How do you access the gallery? couldnt find it in the latest version. Also e-hentai didn't came up in the source list after adding the folder and changing the .ts to .js of model.ts.

Yes, you cannot just rename TS files into JS, this won't work. Since I don't think you want to install the bunch of stuff used for their transformation during Grabber's compilation, you can just use this:
https://es6console.com/
Make sure to select "TypeScript" on the left, copy/paste the contents of the TS file, then click "Transform", and you'll get the corresponding JS file on the right.
Otherwise, install NodeJS on your machine, download the repository, switch to the develop branch, go into the release/sites folder, then run npm install then npm run build and it'll work too.
Here's my locally built version for reference (in ZIP because GitHub won't let me upload JS files): model.zip
.

It seems for me that the credential test always fails for e-hentai. Don't know how much of it has already being implemented since I did see a commit for the basic login

May I suggest considering adding Twitter too? A lot of good artists now pretty much exclusively posts there, but Twitter's UI is a pain to navigate through

An important note that was forgotten when writing this issue is the important of gallery-specific tokens when downloading gallery images:

%gallery_id%
%gallery_name%

Otherwise downloading multiple galleries at once generates a big mess in the downloads folder, with no way to distinguish galleries from each other.

Information about the new "Galleries count as one" batch download setting (commit 134e5b3135849a2e9e3d39133188ffcc498659ad).

It defaults to "true"
When you set the "Images limit" to 20 and the search returns a page with 18 images, 1 gallery of 6 images, then 1 more image (for a total of 20 "results" on the page)

If set to "true", it will download the 18 first images, then the 6 images from the gallery, then the last image, resulting in a total of downloaded images of 25
If set to "false", it will download the 18 first image, then 2 images from the gallery, then stop because it reached the total of 20 downloaded images

In most cases, you'll want to leave it to "true".

Basic Pixiv and E-Hentai support were pushed in the nightly release. There were also some heavy changes on batch downloads in order to support download of multiple galleries at once, so if you see anything funky, feel free to create a ticket.
Also note that E-H is pretty generous with temporary bans for over-use (which are 1~2h long), so make sure you put some healthy limits to it before using it too much.

It seems for me that the credential test always displays failure althought it is a success. Don't know how much of it has already being implemented since I did see a commit for the basic login

Indeed. It seems that E-H has a 2-step login procedure, which isn't implemented in Grabber yet. I'll see how to do this properly then update E-H to have a proper login check.

Might this include Mastodon-based sites (such as Pawoo)? It's similar to Twitter in functionality, but I have no idea how (technically-speaking) it would be searched by something like Grabber.

If there's an API or easily-parsable HTML results, it's possible. I suggest creating a separate issue however (like you did for Nije), and describe in which way you would download from that source.

Done. See #1521


Added a Debris Mapping App project

The app can track and map the debris around the globe and tell you the nearest debris.

Thank you for creating Pull Request 🙌 @sudhanshupatel-dev
Happy Hacktoberfest 🎆


Add constexpr to compile time const variables

IDE can identify these cases, but code changes are implemented manually
If statement with compile-time constant can be replaced with "if constexpr"
    REPLACE: (^ *)const *([a-zA-Z0-9_:]* [0-9a-zA-Z_]* = *[\+\-e0-9\.]+;)
       WITH: $1constexpr $2

    REPLACE: (^ *)const (\w* \w*\{\}\;)
       WITH: $1constexpr $2

PR Checklist

[x] No API changes were made (or the changes have been approved)
[x] No major design changes were made (or the changes have been approved)

@hjmjohnson Great work on these style improvements 😍
As I was working on the VectorImage bug, I was looking at the NumericTraits classes. You may want to look at these classes and see if methods like SetLength and others could be made constexpr. I think there are large potential for performance improvements using "if constexpr" statements in tight filter loops. I am sure your queue is filled with items, but just wanted to mention this for your consideration.


The package path currently lies

The main directory should be named none-ls-extras instead on none-ls.
Example scenario

A user is loading a external source from none-ls.formatting.reformat_gherkin.
So he goes to the none-ls package just to find it's not there.

The current mess

none-ls main directory is currently null-ls
none-ls-extras directory is currently none-ls.

This is gonna lead to problems if not properly addressed. If it's not possible to rename null-ls due to backwards compatibility, at least we should use the correct directory naming conventions on this repository and not try to de-entangle the issue by entangling it further.

I've gone ahead and create https://github.com/Zeioth/none-ls-external-sources.nvim
To ensure the quality of external sources.


List var

lgtm
Can you check if there's relevance in repeating these tests for v3?

If v3 is using dbapi and field_types then no, if you are using something custom then yes.


Add Keras Dense Net Implementation

Add DenseNet implementation of the paper Densely Connected Convolutional Networks in Keras (TnesorFlow backen).
Support the more efficient DenseNet-BC (DenseNet-Bottleneck-Compressed) networks. . Using the DenseNet-BC-190-40 model, it obtains state of the art performance on CIFAR-10 and CIFAR-100.
Code Ported from DenseNet.
Test environment:  Windows 10 (16299.309) with Visual Studio 2017 (15.6.1) and Tools for AI (<IP_ADDRESS>), Python (3.6.4) with TnesorFlow (1.6.0)  Kears (2.1.5) h5py (2.7.1) Pillow (5.0.0) pylint (1.8.2) and sklearn (0.0)
Project has been tested on local machine.
LICENSE: MIT
BTW, add the project Twitter_Sentiment_Analysis.pyproj into solution TensorflowExamples.sln

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: LiuSecone sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


[Tempest][Tobiko] clouds.yaml mounted on the proper path

When either a tempest or a tobiko container is run, the clouds.yaml file could be mounted directly on its proper path
$HOME/.config/openstack/clouds.yaml (new behavior implemented in ci-framework) or on the external_files directory (legacy behavior).
Related-PR: https://github.com/openstack-k8s-operators/ci-framework/pull/1057
OSPRH-1670

recheck


fix(transformer): react development default value should be false

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#3002  👈
#3001
main

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

Join @Boshen and the rest of your teammates on  Graphite

Merge activity

Apr 16, 5:22 AM EDT: Graphite rebased this pull request after merging its parent, because this pull request is set to merge when ready.


fix linked list bug when you add more than one element to the list

I don't think more than one is ever added so that may be why this bug went unnoticed.  But if you ever added more than one element you would loose the old head.

I don't see what is wrong with the old code. Did you run into a bug?

Never mind I got it backwards.


[#112135729] Refactor use of FLY_TARGET

What
As suggested by @saliceti in:

https://github.com/alphagov/paas-cf/pull/58#issuecomment-173311797

This makes the default FLY_TARGET within deploy-pipeline.sh match env
(same as DEPLOY_ENV in other scripts), which is the Deployer Concourse for
your environment. By doing this we no longer need to instruct people to
export FLY_TARGET before running each of the pipeline scripts.
This is overridden by vagrant/deploy.sh which needs to deploy pipelines to
the Bootstrap Concourse machine. I've moved the variable from
vagrant/environment.sh so that it's not exported to someones shell when
they follow the README instructions to source this file.
ATC_URL is no longer needed. The default value points to Vagrant
concourse-lite running in VirtualBox, whereas we now run it in EC2.
How to review
If you want to simulate from-fresh:
unset FLY_TARGET DEPLOY_ENV

Follow the README instructions. tl;dr
./vagrant/deploy.sh <ENV>
$(./vagrant/environment.sh <ENV>)
./concourse/scripts/create-microbosh.sh && \
./concourse/scripts/deploy-cloudfoundry.sh && \
./concourse/scripts/destroy-cloudfoundry.sh && \
./concourse/scripts/destroy-microbosh.sh

Who can review
Anyone but @dcarley

Much cleaner, thanks.


game crashing even after the update 11.22

Hey there mates, i have an issue with the game crashing even after the latest update of the program.
Doing everything correctly as i should just like with the last patch and version and suddenly it just doesnt work.
Everytime i inject it the game just freezes and crashes, reconnecting doesnt help.
Anyone having the same issue?
Please if so let me know and help me fixing it <33

I tested it after updating and it should be working. Maybe you are making one of the common mistakes.
Things Forgotten To Do;

Extracting the cheat from RAR
Injecting the cheat before the game starts
Turn off antivirus and windows defender, if they are on

still crashing ://

Make sure the required C++ dependencies are installed on your computer.

If it still doesn't work sorry I have no other solution.


Update branch if it exists

Hello 👋
Thank you for this awesome library! I am building a utility to improve the developer experience for those with many repositories, much like your Octoherd. Kopier is designed with templating in mind with using Github Actions, like in Tabetalt where we distribute some standardized files.
I recently started a full refactor of Kopier, and testing out this library for the pushing of files and creating pull request. One feature that I've been asked for a lot internally is being able to update a pull request with new changes. Imagine that there's one repository where we have an open pull request, (maybe because we're not ready for the changes yet in that repo), but we've pushed yet another update to the origin repository (in Tabetalt, it's named workflows). We don't want yet another pull request for those changes.
To track this, I opened bjerkio/kopier#31. I imagine we could take parts of this library, and implement this behaviour in Kopier. Or, better yet, maybe this is something that this library should support? Or is it supported?

I wanted to create another plugin solely for creating the commits with multiple changes, and then use it as dependency in this PR. With the multi-file-update-per-commit plugin you'd be able to do that by checking if the branch already exists. You'd install both plugins, but it would deduplicate it internally so that shouldn't be a big problem
@mheap created such a plugin but I never got around to check it out and to see if I can use it, or if I have to create a separate one: https://github.com/mheap/octokit-commit-multiple-files
would that approach work for you?

+1 for this feature :)

I would find this very helpful as well.


extract_binds usage help is appreciated

Hi,
I'm having the following ReST message:
HTTP/1.1 200 OK
Date: Mon, 06 Aug 2018 15:32:21 GMT
Content-Length: 90
Content-Type: text/plain; charset=utf-8

{"responseCode":0,"responseMsg":"Initiated","userId":4,"stackId":1,"stackResponseCode":0}

and I'm trying to use the extact_binds to get the value of stackId:
- test:
   - group: "CMT Test"
   - name: "Stack Creation"
   - url: "XXX"
   - method: 'POST'
   - body: 'XXXX'
   - expected_status: [200]
   - headers: {'Content-Type': 'text/plain'}
   - extract_binds:
       - 'id': {'raw_body': 'stackId'}
   - validators:
       - extract_test: {raw_body: "stackId",  test: "exists"}
       - compare: {raw_body: "stackId", comparator: contains , expected: '$id'}

Unfortunately I'm facing the following error:
ERROR:Test Failure, failure type: Validator Failed, Reason: Comparison failed, evaluating contains({"responseCode":0,"responseMsg":"Initiated","userId":4,"stackId":26,"stackResponseCode":0}
, $id) returned False

any help is appreciated!

For anyone who is having this issue, please take a look at
~/pyresttest/examples/miniapp-extract-validate.yaml


[tools] Add basic fixing capabilities to the copyright linter tool

What does this PR do?
Previously, the inv lint-copyrights tooling was only able to detect
problems with the copyright headers. This change adds functionality to
fix the vast majority of these issues (specifically when the header is
completely missing) when run with --fix flag. A --dry-run flag was
also added as a way to safely test run this command before making
permanent changes to files.
Motivation
Automation of copyright header fixing
Additional Notes
N/A
Possible Drawbacks / Trade-offs
We currently can only handle basic cases of linting issues such
as a completely missing header but this covers >90% of current
linter hits.
Describe how to test/QA your changes
$ inv lint-copyrights --fix

$ git diff

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] The appropriate team/.. label has been applied, if known.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the config template has been updated.

it would be awesome to have this as a precommit hook to automatically fix files

👍 I am hoping to get it to that point :)


[CUDA] Random number generation on CUDA

Summary
Support generation of random numbers on CUDA.
Motivation
Sometimes random number generation is repeatedly called during the training process. For example, in the rank_xendcg objective. Supporting generation of random numbers on CUDA can accelerates these processes.
References
See the code snippet below for random number generation in boosting with rank_xendcg
https://github.com/microsoft/LightGBM/blob/f0e3296232a98be70dc420977a3c5c5d731771ba/src/objective/rank_objective.hpp#L301-L328

Closed in favor of being in https://github.com/microsoft/LightGBM/issues/2302. We decided to keep all feature requests in one place.
Welcome to contribute this feature! Please re-open this issue (or post a comment if you are not a topic starter) if you are actively working on implementing this feature.

Sorry, this was locked accidentally. Just unlocked it. We'd still love help with this feature!


Extra  in BasicBot/wwwroot/default.htm

Github issues for C# /JS / Java/ Python should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.
Sample information

Sample type: Downloaded sample from ABS (BasicBot solution)
Sample language: [dotnetcore]
Sample name: ABS BasicBot code

Describe the bug
There is an extra closing

div in the wwwroot/default.htm page
To Reproduce
Steps to reproduce the behavior:

Create an ABS service
Download code
Inspect wwwroot/default.htm

Expected behavior
Proper HTML format
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
[bug]

This does appear in this repo
But you're talking about the Basic Bot template from Azure and not the Basic Bot sample from this GitHub repo, right?

The next round of portal updates will contain this fix.


Fixes issue !380, nested dictionaries are lost during linter settings tokenization

Hi
I've found some time to look into problem from SO: http://stackoverflow.com/questions/34057863/sublimelinter-ignore-match-not-working-when-extension-is-specified/34493594
I've found it's really simple, just for dict values recursive_replace_value function uses recursive_replace instead of recursive_replace_value and the first one does not return any value at all. This is why we have 'None' instead of dict with replaced arrays. So I've added parameter to control if the return should be invoked and voila ... tests are passing.
Sorry for this kind of crappy tests but I usually work with pure unittest and I do not know py.test so well. So these tests are rather basic but even with them I can prove that new version works (just compare same tests with branch and master linter.py to see)

Issue: #380

You had some flake8 issues in your unit tests that I fixed, but thank you for taking the time the submit this fix, and for your support in SO.

@grotewold thanks for correcting this, I was planning to do the needed flake changes but 02:00 AM was too late for me :) Debugging ST plugins is very hard as sublime_api module is builtin of ST python and I could not figure out option to debug with standard pdb. Fortunatelly for this case extracting two methods was enough - this suggests that these methods could be either static or in utils module.


Without scaling Kong horizontally, whether Cassandra is necessary or not?

I learned that Kong uses Cassandra for storing config, in order to run a Kong cluster. Then if we do not  scale Kong horizontally, whether Cassandra is necessary or not?

Cassandra is still necessary to run Kong, with plans to also add support for PostgreSQL #331. You can use instaclustr.com to run a Cassandra cluster in the cloud.


Bug/no file table for seed

Description
After figuring out that seeds wouldn't run, looked into it and saw that the problem was that there was no "files" table for "files" seed file. After consulting previous BE eng on this project, it was confirmed that is a planning artifact that got moved to the DS API.
As a result, we are deleting the seed file and the proceeding seed file was renamed accordingly.
Fixes # (issue)
npm run seed would not seed but npm migrate and rollback worked fine
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have removed unnecessary comments/console logs from my code
[x] My changes generate no new warnings
[x] I have checked my code and corrected any misspellings
[x] No duplicate code left within changed files
[x] Size of pull request kept to a minimum
[x] Pull request description clearly describes changes made & motivations for said changes

Great catch @christina-yun @dominthebox

@paulstgermain I've added the Loom video of myself walking through the changes and the conversations leading up to the changes. I believe this is ready to merge!


missing include

Hi @jermp ,
I think pthash/include/encoders/util.hpp is missing the cstdint and cassert headers.
g++ 12.3 complains about uintX_t definitions and asserts.

Hi @yhhshb, which header?

I do not have this issue. It just compiles fine on gcc version 12.3.0.
I think the problem you're seeing is because you're taking just the file util.hpp and place it in another project. Right?

Hi @yhhshb, can you please confirm?

Hi @jermp ,
No, I did not take util.hpp alone.
I use the whole repository as a dependency of other projects.

Ah ok. Strange that I cannot replicate the issue from PTHash itself. Anyway, I've just added the missing includes.


[FLINK-21026][flink-sql-parser] Align column list specification synta…

…x with hive in INSERT statement
What is the purpose of the change
HIVE-9481 allows column list specification in INSERT statement in Hive. And the column list specification appears after the partition clause. Whereas in Flink, the column list specification appears before the partition clause. This PR align the column list specification syntax with Hive.
Brief change log

8b36c8a  Align column list specification syntax with hive in INSERT statement

Verifying this change
This change is already covered by existing tests
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Thanks @docete for the contribution, looks good to me.

Thanks @docete for the contribution, looks good to me.


Support private_class_method in the indexer

Motivation

Closes #2781

private_class_method can be used to declare class methods as private. Prior to this PR, this method was not setting the visibility to private for the methods in the arguments.
Implementation

My implementation is similar to the module_function implementation which was mentioned in the issue.
I handled the case where the arguments are Strings, Symbols or an Array of those. They are mentioned as the valid arguments in the Ruby docs.
Automated Tests

I added tests to cover private_class_method being passed a combination or Strings and Symbols or an Array of Strings and Symbols.
Manual Tests

In this example,
class Test
  def self.foo
  end

  def self.bar
  end

  private_class_method(:foo)
end

foo does not get suggested but bar does.

I have signed the CLA!

Looks great!
Another way that private_class_method can be used is a a prefix to def, e.g.:
private_class_method def foo
  ...
end

Can we add a test to verify this doesn't cause anything to break?

I pushed a commit to the branch below illustrating how an inline private_class_method def self.foo could be handled:
https://github.com/Shopify/ruby-lsp/tree/andyw8/def-private-class-method

@vinistock we do:
https://github.com/Shopify/ruby-lsp/blob/592495eace9286f6845d2dbafc003d399e689000/lib/ruby_indexer/lib/ruby_indexer/declaration_listener.rb#L333-L337
(and I verified manually)

Thanks for the feedback! I'll update the PR over the next couple of days.

@andyw8 @vinistock Thanks for the help. This was a great project to work on for RubyConf Hack Day.


feat: make autosharding default node behavior

This is a feature or change request
Problem

The default configuration for a js-waku node uses static sharding with a default pubsub topic. We expect the default behavior to be autosharding, which requires specifying application and version as otherwise there is no sensible default pubusb topic.
Proposed Solutions

Update constructors for the node and all protocols to default to autosharding and require providing application and version parameters.
Notes

I suggest the following strategy to make the migration smooth:

keep createLightNode as it is: default to default pubsub topic and supports named space
mark createLightNode as deprecated: devs can use it but they get a warning
New method createNode that only support static and autosharding, default to autosharding.

This gives dev more time to migrate.
It also gives us more time to migrate the tests and examples.

Weekly Update

achieved: open PR to reintroduce (but deprecate) name sharding alongside auto/static sharding without breaking APIs
next: update all examples to use autosharding
blocker: need review on https://github.com/waku-org/js-waku/pull/1723

Weekly Update

achieved: umerged PR that implements autosharding after feedback. PR to reintroduce named sharding ready for review
next: update all examples to use autosharding


Make cache failure metrics names more descriptive

With this change, the types of cache failures have different metric names, which makes it easier to distinguish between them.

Can confirm this is my hacky fix that I tested in prod...
Random thought for later when we revisit and do this as a proper PR for upstream. Can the backend for statsd take the tags and apply them to the metric name rather than have them be passed in, in a redundant way like this.

Good question! I have no idea. I'll merge this as-is and let's investigate once we've rolled this out. :)


Rename the requestAnimationFrame helper so the library works in ie/edge

see http://stachowski.me/jquery-ie-error-invalid-calling-object/

Ah cool! Merged!