Android side-effect issue with KeyboardProvider

Describe the bug
Hello, thank you for creating such a great library. I've been using KeyboardAvoidingView in React Native for a while, but recently needed the keyboard functionality from react-native-keyboard-controller, which allowed me to implement the keyboard behavior I wanted. I really appreciate your work.
However, I encountered an issue where KeyboardAvoidingView from the core react-native package only causes a side-effect on Android. Specifically, when I wrap my app layout with KeyboardProvider, the KeyboardAvoidingView in react-native package stops working, but this issue is only happening on Android.
It seems like the issue was resolved by setting padding instead of leaving the behavior as undefined, and also by providing a keyboardVerticalOffset, but the exact cause and behavior remain unclear, which leaves me feeling a bit uncertain. I would like to better understand how this change impacts screens where KeyboardAvoidingView is already being used. Specifically, I’d like to know what effects this adjustment may have on the existing views, especially in terms of layout shifts or keyboard interaction, and whether this might introduce any potential side effects. Could you explain how this configuration influences the layout and behavior in detail?
Code snippet
RootProvider.tsx
function RootProvider({initialThemeType, children}: Props): JSX.Element {
  return (
    <KeyboardProvider>
      <RecoilRoot>
        <DoobooProvider
          themeConfig={{
            initialThemeType: initialThemeType ?? undefined,
            customTheme: theme,
          }}
        >
          <ErrorBoundary
            FallbackComponent={FallbackComponent}
            onError={handleErrorConsole}
          >
            <ActionSheetProvider>{children}</ActionSheetProvider>
          </ErrorBoundary>
        </DoobooProvider>
      </RecoilRoot>
    </KeyboardProvider>
  );
}

_layout.tsx
    <GestureHandlerRootView
      style={css`
        flex: 1;
      `}
    >
      <RootProvider initialThemeType={localThemeType as ColorSchemeName}>
        <>
          <StatusBarBrightness />
          <Layout />
        </>
      </RootProvider>
    </GestureHandlerRootView>

index.tsx
import styled, {css} from '@emotion/native';
import {EditText, IconButton, Typography, useDooboo} from 'dooboo-ui';
import {Stack} from 'expo-router';

import {t} from '../src/STRINGS';
import {KeyboardAvoidingView, Platform, View} from 'react-native';
import {useState} from 'react';

const Container = styled.View`
  background-color: ${({theme}) => theme.bg.basic};

  flex: 1;
  align-self: stretch;
  justify-content: center;
  align-items: center;
`;

export default function Index(): JSX.Element {
  const {theme} = useDooboo();
  const [text, setText] = useState('');

  return (
    <Container>
      <Stack.Screen
        options={{
          title: t('HOME'),
        }}
      />
      <KeyboardAvoidingView
        style={css`
          flex: 1;
          width: 100%;
        `}
        behavior={Platform.OS === 'ios' ? 'padding' : undefined}
      >
        <View
          style={css`
            flex: 1;
            background-color: ${theme.bg.paper};

            justify-content: center;
            align-items: center;
          `}
        >
          <Typography.Heading5>Hi there!</Typography.Heading5>
        </View>
        <EditText
          onChangeText={setText}
          value={text}
          decoration="boxed"
          style={css`
            background-color: ${theme.bg.basic};
          `}
          endElement={<IconButton icon="Bird" onPress={() => {}} size={24} />}
        />
      </KeyboardAvoidingView>
    </Container>
  );
}

Repo for reproducing
I would be highly appreciate if you can provide repository for reproducing your issue. It can significantly reduce the time for discovering and fixing the problem.
To Reproduce
Steps to reproduce the behavior:

Go and clone react-native-keyboard-controller-issue repository.
Run bun install or use your package manager.
Checkout initial commit git checkout 16a313a4d8ae1d4a5fb1cdd07529f440527c3dcb.
Run the app and see it if works.
Checkout commit 41f812e9b6edd1b27cf787f74de7600ae20360fe which installed react-native-keyboard-controller and wrapped with KeyboardProvider and test that keyboard is not showing this time.
Checkout commit 61bc6f35ffc30048df04c4a78a8a2a1d29de2d90 and test that it works again with workaround codes.
Also tested using custom hook, useKeyboardAnimation with various options.

Expected behavior
Even when using react-native-keyboard-controller and wrapping the app with KeyboardProvider, the existing KeyboardAvoidingView from react-native should continue to function without issues on Android.
Screenshots
Video Previews

Initial Commit
https://github.com/user-attachments/assets/44d4d630-d2eb-4a23-80bc-b2e59719f064

Install and wrap with KeyboardProvider
https://github.com/user-attachments/assets/2789ad4d-8c3e-4348-9c05-fedf377f7431

Naive workaround
https://github.com/user-attachments/assets/a4ba161c-eee7-4e17-9a6f-efed71499b25

Test other options with useKeyboardAnimation
https://github.com/user-attachments/assets/b9b4a76c-bddf-44f9-b1e0-4ae2d6e5a55b

Smartphone (please complete the following information):

Device: All Android Phones
OS: Android
RN version: 0.74.5
RN architecture: old
JS engine: Hermes
Library version: 1.13.4

Additional context
N/A

Hello @hyochan
When you wrap the app in KeyboardProvider it automatically moves the app in edge-to-edge mode and with adjustResize mode the automatic window resize will not work.
So in your case:

the first video relies on default Android keyboard handling mechanism
second video - you wrapped app with KeyboardProvider and thus automatic resize stopped to work (edge-to-edge mode + adjustResize)
third video - you explicitly specified that you want KeyboardAvoidingView from RN to work on Android (on first video KeyboardAvoidingView wasn't working and the resize that happened was controlled by Android OS). keyboardOffset is needed to specify because useWindowDimensions hook from RN that used inside KeyboardAvoidingView is buggy when it comes to edge-to-edge mode.
4th video - you changed mode to adjustPan - in this case you force Android OS to handle the keyboard on OS level. In this case adjustPan simply does transform: [{ translateY: keyboardHeight }] on OS level (and it's not highly desired, because your navigation header will be also translated - you can see it on your video).

The ways how you can solve your problem:

start to use KeyboardAvoidingView from react-native-keyboard-controller package (in this case you will have smooth animations on both iOS and Android app), you don't need to write platform-conditional code, don't need to specify keyboardOffset since I use internal hook for window dimensions and everything is handled properly;
if you want to gradually adopt the functionality of this package in your app then you can use useKeyboardController hook. You can disable module by default <KeyboardProvider enabled={false}> and enable it using useKeyboardController on screens where you want to use them.

Let me know if you want me to explain any aspect in more details 🙏

Okay @hyochan
Sorry for initial misleading - in your case you should have verticalKeyboardOffset. Let me slightly dive in the implementation of KeyboardAvoidingView:

the red rectangle represent the window returned by useWindowDimensions;
the blue rectangle is where your KeyboardAvoidingView lives and what it measure.

So as you can see you had a difference which is equal to headerHeight + statusBarHeight (depends on whether it's translucent or not).
And this space is roughly equal to the size of your text input - that's why it gets hidden behind the keyboard. In your case you should artificially increase the area of a blue rectangle and you can do that by adding verticalKeyboardOffset. You can get headerSize using useHeaderHeight hook. If this space is not enough then you can add + StatusBar.currentHeight
I hope I explained why it doesn't work as you expect 😅
Thank you for providing such a detailed and good quality reproduction example ❤ Let me know if you have any additional questions - I'll be happy to answer on all of them 😊

@kirillzyusko
Thank you for your efforts. Unfortunately, we are still encountering the same issue on Android. The field animates to the top of the upper side of the keyboard, meaning it remains covered.
We have tested all your solutions, but none of them have worked.
I am quite surprised that this bug exists in React Native. I am considering migrating to Flutter, although it is not an easy decision. Some bugs force you to consider alternatives.
If you have any solution that can be applied with clear steps, we would be very grateful.
All our app forms are covered by this bug, and the React Native team remains silent.

@kirillzyusko Thanks for the great explanation 👍👍

No Header
With Header

However, I still curious why react-native-keyboard-controller's KeyboardAvoidingView needs extra headerSize to keyboardOffset. If you could spot the suspicious sections of the code, I would also like to take a look.
This issue needs to be clearly understood to prevent side effects in other views that use KeyboardAvoidingView. This could be critical for large applications, as it would require testing every view before integrating react-native-keyboard-controller.
@beshoo I am not getting your statement.

The field animates to the top of the upper side of the keyboard, meaning it remains covered.
I think this should be explained in more details. Providing some code examples and recordings would be very helpful.

Eg demo which we can understand your sulution since your last reply is very complicated. Demo code is appreciate.

@beshoo you can clone the example app https://github.com/kirillzyusko/react-native-keyboard-controller/tree/main/example and see how everything is handled there. This app has a plenty of use cases and covers almost all basic interactions with the keyboard. If you run the code in example app and it works there, but the same code produces different output in your app - it means that something is misconfigured, and it's easier to fix a misconfiguration rather than switching to a new framework/technology 🤷♂
If you can replace the code in example app with your own code and the bug persist in example application, then feel to free to open a new issue and I'll be glad to help to resolve the problem.

The field animates to the top of the upper side of the keyboard, meaning it remains covered.

It's very hard to say what exactly causes the problem, because I don't see the code, don't see the output (including view hierarchy) and can not test/interact with this code. If you think it's a problem in this library - feel free to open a new issue with reproduction example and I'll try to do all my best to help you.

However, I am still curious why react-native-keyboard-controller's KeyboardAvoidingView needs extra headerSize to keyboardOffset. If you could spot the suspicious sections of the code, I would also like to take a look.

It's all handled in https://github.com/kirillzyusko/react-native-keyboard-controller/blob/e2198afcf71e9bef79e43bf7a1b2a2f19a8a42a8/src/components/KeyboardAvoidingView/index.tsx#L78-L79

This issue needs to be clearly understood to prevent side effects in other views that use KeyboardAvoidingView. This could be critical for large applications, as it would require testing every view before integrating react-native-keyboard-controller. (I understand that we can safely adopt this library by disabling it with  and selectively enabling it where needed. However, I’m trying to understand the root issue. 🤔)

Well, feel free to correct me here, but I think that verticalOffset is needed for KeyboardAvoidingView from RN as well. Basically how KeyboardAvoidingView works - it measures its dimensions (width/height), then when keyboard is open it understands which part of view is covered by keyboard and changes padding to the same size, so that all the content is visible.
But if some elements are placed above the KeyboardAvoidingView, then dimensions will be gathered incorrectly and it may lead to a situation, when part of the content is obscured by the keyboard.
In the end I implemented test example and covered it by e2e tests to assure that KeyboardAvoidingView satisfies to default implementation:

Default KAV
KAV from RNKC

On iOS if you don't specify keyboardVerticalOffset (i. e. header size) you also will end up in the same situation, when bottom elements will be overlapped by keyboard:

RN
RNKC

So I think that a component from react-native-keyboard-controller works in the same manner as a default KeyboardAvoidingView on iOS (and on Android it just re-uses all the logic).
I didn't find time to run your project on iOS - but if you run it with  keyboardVerticalOffset={0} will the input be overlapped by keyboard?

If you want to fully match default keyboard handling from Android, then you can wrap your entire app in KAV:
    <GestureHandlerRootView
      style={css`
        flex: 1;
      `}
    >
      <RootProvider initialThemeType={localThemeType as ColorSchemeName}>
        <KeyboardAvoidingView
          behavior="padding"
          style={{flex: 1, width: '100%'}}
        >
          <StatusBarBrightness />
          <Layout />
        </KeyboardAvoidingView>
      </RootProvider>
    </GestureHandlerRootView>

Then layout will be measured correctly and you don't need to think about headers and other elements (because all of them will be rendered inside KAV - KAV will match window dimensions).
But sometimes having just KeyboardAvoidingView is not always enough to handle the keyboard in all scenarios, but when you have something on a global level it may be hard to disable that (or it can make your code slightly more complicated). Anyway - feel free to chose what exactly best suitable for your project, but I think wrapping an app in KeyboardAvoidingView is kind of anti-pattern.
Let me know if you have any other questions - will be happy to answer on them as well! 😊 🙌

@kirillzyusko, I feel that wrapping the entire view with KeyboardAvoidingView might not be ideal. My concern is that it could lead to performance issues, as it handles the onLayoutWorklet every time the child component re-renders (this is just my assumption).
Your detailed explanation has made things much clearer, but I wanted to highlight a few concerns I encountered during implementation:

When I dynamically toggle the navigation header using headerShown set to true and false, the KeyboardAvoidingView doesn’t always adjust its height correctly unless I reload the app. This happens intermittently, so I'm unsure what’s happening internally.

I'm still curious why react-native-keyboard-controller's KeyboardProvider affects the default KeyboardAvoidingView behavior in Android. When I change the behavior to padding, it works, but it doesn't work with other behavior values like height or undefined. Interestingly, the issue resolves when I remove KeyboardProvider. I’d just like to clarify this point before closing the issue 🥹.

I feel that wrapping the entire view with KeyboardAvoidingView might not be ideal. My concern is that it could lead to performance issues, as it handles the onLayoutWorklet every time the child component re-renders (this is just my assumption).

@hyochan if re-render doesn't cause a layout re-calculation then onLayout will not be fired. And since you wrap entire app, the most likely there will be a children in hierarchy with styles { flex: 1 } which will take all available width/height and will not change its size over time, so most likely keeping KeyboardAvoidingView at the top of view hierarchy will not cause any problems in terms of performance.

When I dynamically toggle the navigation header using headerShown set to true and false, the KeyboardAvoidingView doesn’t always adjust its height correctly unless I reload the app. This happens intermittently, so I'm unsure what’s happening internally.

Interesting. It should just call onLayout and update a shared value 🤷♂ Maybe update is not happening inside KeyboardAvoidingView? Anyway it's pretty straightforward to debug - you can log values in relativeKeyboardHeight() and compare values between run, i. e. when it works correctly and when it's not.

I'm still curious why react-native-keyboard-controller's KeyboardProvider affects the default KeyboardAvoidingView behavior in Android. When I change the behavior to padding, it works, but it doesn't work with other behavior values like height or undefined. Interestingly, the issue resolves when I remove KeyboardProvider. I’d just like to clarify this point before closing the issue 🥹.

This is a very good question and honestly I don't know the answer. This component heavily relies on LayoutAnimations from react-native and maybe some updates are getting ignored. Did you enable them BTW?
But it's actually very strange - if it works with one mode (i. e. padding), then it means that bottomHeight is calculated properly but styles somehow can not be applied (which is very strange).
I honestly don't know why KeyboardAvoidingView works only with specific mode. When you remove KeyboardProvider, then you delegate resizing of window to Android OS. So that would be very logical to suppose, that if you had behavior as height or undefined, then KeyboardAvoidingView wasn't working and resize of the window was handled by OS. But when you added KeyboardProvider it stopped automatic window resizes and now you can see that KeyboardAvoidingView is not working? What is the behavior of behavior="padding" without KeyboardProvider? Does it apply double keyboard height as padding? 👀

What is the behavior of behavior="padding" without KeyboardProvider? Does it apply double keyboard height as padding? 👀

Below is KeyboardAvoidingView from react-native with behavior=height without KeyboardProvider.
https://github.com/user-attachments/assets/687bbfc9-59df-4c34-a71f-4f4dda657f81
Below is KeyboardAvoidingView from react-native with behavior=padding without KeyboardProvider.
https://github.com/user-attachments/assets/40abeb3d-ef19-4b1e-946e-5e2bad33c027
Would this information be more helpful in identifying the cause of the issue?

@hyochan well, that's what I thought. In case of padding the KeyboardAvoidingView applies double padding:

Later on it resizes back to proper size, but the key thing is that at some point of time it applies double space (i. e. KeyboardAvoidingView works).
In case of height - everything works fine and I think KeyboardAvoidingView doesn't work at all here. You can try to remove KeyboardAvoidingView and I bet that you will see the identical behavior.
So it makes me thinking that KeyboardAvoidingView with behavior="height" doesn't work on Android and you were relying on default Android resize behavior rather than KeyboardAvoidingView 🤷♂

@kirillzyusko
Thank you for your response! 😊 This is indeed quite challenging! I think it would be a good idea to explain the side effect that only occurs on Android to the users in the documentation. While the root cause isn’t fully clear yet, it would be helpful to open a discussion and investigate it gradually.
If it's alright with you, I’d like to write and upload a document about this issue. Would that be okay?

If it's alright with you, I’d like to write and upload a document about this issue. Would that be okay?

Yes, sure! I think I attempted to clarify it in https://github.com/kirillzyusko/react-native-keyboard-controller/pull/381but if you can write a better documentation that will explain everything in more details then I'm happy to merge it in docs 😊

I'm going to close that issue since I believe I gave an answer on the question. If you want to make adjustments to the documentation - feel free to do that (it's highly appreciated)!


Invalid Reverse Solidus '' declaration.

Good evening. I get the error:  Invalid Reverse Solidus '' declaration.
When cyrillic is present in json, utf8 generates '' .
Json large size. Is there a way to make the quicktype not throw an error?

Same as https://github.com/glideapps/quicktype/issues/1243
Looks like there won't be any fix soon.


Fix error spam when tweened node leaves tree

Node can_process() will throw an error when the node is inside tree.
When you have a Tween with TWEEN_PAUSE_BOUND and tween a node that leaves tree, you will get spammed with this error, because the Tween will try to determine whether it can process and poll a node that isn't inside tree.
This was left unnoticed for a long time, until #56648 changed the default pause mode.

Thanks!


How to run in jit debug mode?

The output of command ./bin/omnisci_server -h only shows options in help_desc. How could I list and set options in developer_desc?
I followed the description of jit-debug-ir option  in developer_desc, turn off the ENABLE_JIT_DEBUG build flag and run with -jit-debug-ir option. But nothing generated in dir /tmp.
developer_desc.add_options()(
    "jit-debug-ir",
    po::value<bool>(&jit_debug)->default_value(jit_debug)->implicit_value(true),
    "Enable runtime debugger support for the JIT. Note that this flag is "
    "incompatible "
    "with the `ENABLE_JIT_DEBUG` build flag. The generated code can be found at "
    "`/tmp/mapdquery`.");

./bin/omnisci_server --dev-option to get all hidden options
the option you are looking for is this one
  --jit-debug-ir [=arg(=1)] (=0)        Enable runtime debugger support for the
                                        JIT. Note that this flag is
                                        incompatible with the
                                        `ENABLE_JIT_DEBUG` build flag. The
                                        generated code can be found at
                                        `/tmp/mapdquery`.

According to the option's description, I turned off the ENABLE_JIT_DEBUG build flag and ran with ./bin/omnisci_server --jit-debug-ir=1.
But nothing generated in dir /tmp. The file mapdquery dosen't exist in dir /tmp as expected.

This flag seems to be broken or deprecated right now. You can use --log-channels flag to dump generated code into log channels IR and PTX.


ERROR ON MULTIPLE GRID VIEWS.

ERROR
I encounter a problem while utilizing multiple draggable grid views within a single page.

The elements in the initial view can be dragged to the secondary list.
The interface of the second list's is displayed on the first.
The first list is not using the children count of the second hence there are "out of range errors" as seen in the video below.

The code segments are somewhat lengthy, so I'll display only the pertinent portions, kindly note that both list contains items of different classes and have different lengths.
FIRST GRIDVIEW.
DraggableGridViewBuilder(
         key: UniqueKey(),
         physics: const NeverScrollableScrollPhysics(),
         shrinkWrap: true,
         padding: const EdgeInsets.all(0),
         gridDelegate: SliverQuiltedGridDelegate(
           crossAxisCount: 3,
           mainAxisSpacing: 0,
           crossAxisSpacing: 0,
           repeatPattern: QuiltedGridRepeatPattern.inverted,
           pattern: const [
             QuiltedGridTile(1, 1),
             QuiltedGridTile(1, 1),
             QuiltedGridTile(1, 1),
           ],
         ),

         children: uploadData.images.map(
           (image) {
             return DraggableGridItem(
               isDraggable: true,
               child: ProductImageAndStyle(
                 key: UniqueKey(),
                 image: image.imageUrl ?? '',
                 isFileImage: image.isFileImage,
                 onLongPressed: () => showRemoveItemDialog(() {
                   setState(() {
                     _uploadData.removeImage(image);
                   });
                 }),
               ),
             );
           },
         ).toList(),
         isOnlyLongPress: false,
         dragCompletion:
             (List<DraggableGridItem> list, int firstIndex, int secondIndex) {
           setState(() {
             _uploadData.swapImages(firstIndex, secondIndex);
           });
         },
         dragFeedback: (List<DraggableGridItem> list, int index) {
           return SizedBox(
             width: 150,
             height: 150,
             child: list[index].child,
           );
         },
         dragPlaceHolder: (List<DraggableGridItem> list, int index) {
           return PlaceHolderWidget(
             key: UniqueKey(),
             child: const SizedBox(),
           );
         },
       ),

SECOND GRIDVIEW
    DraggableGridViewBuilder(
          key: UniqueKey(),
          physics: const NeverScrollableScrollPhysics(),
          shrinkWrap: true,
          padding: const EdgeInsets.all(0),
          gridDelegate: SliverQuiltedGridDelegate(
            crossAxisCount: 3,
            mainAxisSpacing: 0,
            crossAxisSpacing: 0,
            repeatPattern: QuiltedGridRepeatPattern.inverted,
            pattern: const [
              QuiltedGridTile(1, 1),
              QuiltedGridTile(1, 1),
              QuiltedGridTile(1, 1),
            ],
          ),
          children: uploadData.productStyles.map(
            (style) {
              return DraggableGridItem(
                isDraggable: true,
                child: ProductImageAndStyle(
                  image: style.imageUrl ?? '',
                  isFileImage: style.isFileImage,
                  name: style.name,
                  key: UniqueKey(),
                  onLongPressed: () => showRemoveItemDialog(
                    () {
                      setState(() {
                        _uploadData.removeProductStyle(style);
                      });
                    },
                  ),
                  onPressed: () async {
                    final index = uploadData.productStyles.indexOf(style);
                    final item = await context.showBottomBar<ProductStyle>(
                      child: AddProductStyleBar(
                        productStyle: style,
                      ),
                    );
                    if (item != null) {
                      uploadData.addEditProductStyle(index, item);
                    }
                    setState(() {});
                  },
                ),
              );
            },
          ).toList(),
          isOnlyLongPress: false,
          dragCompletion:
              (List<DraggableGridItem> list, int firstIndex, int secondIndex) {
            setState(() {
              _uploadData.swapProductStyles(firstIndex, secondIndex);
            });
          },
          dragFeedback: (List<DraggableGridItem> list, int index) {
            return SizedBox(
              width: 150,
              height: 150,
              child: list[index].child,
            );
          },
          dragPlaceHolder: (List<DraggableGridItem> list, int index) {
            return const PlaceHolderWidget(
              child: SizedBox(),
            );
          },
        ),

FURTHER EXPLANATION
Both Gridviews utilize a similar widget, albeit with distinct parameters sourced from separate lists. The initial Gridview draws from the 'image' list, whereas the subsequent one relies on the 'style' list. Upon rendering, these Gridviews are anticipated to exhibit distinct visual appearances.
However, a disparity arises during the rendering process, as both the first and second lists exhibit the same content—the second item—accompanied by some visual irregularities. Also an element can be dragged from the first to the second and this results in a disruptive confluence of content and this should not even work.
An endeavor was made to address this issue by rearranging the order of the lists within the column layout. Intriguingly, this modification led to a change in the widget rendered: the two lists no longer showed the same content of the second code but now showed that of the first.
LIBRARY VERSION
flutter_draggable_gridview: ^0.0.8
Here's a glimpse of the present state with both grids visible. Please be aware that the UI of the second grid is the one always rendered on both.
And this serves as a preview of the display when one of the grid is converted to the normal flutter grid view . It's important to highlight that no major code modifications were made (only changes back to the standard grid view) and under these circumstances, the list is rendered accurately.
The codes where tested on an iPhone 14 pro max simualator

Did the issue solve?
I'm encountering the similar problem.
I couldn't find the solution anywhere.

Did the issue solve?
I'm encountering the similar problem.
I couldn't find the solution anywhere.

solve this issue in latest version of this package https://pub.dev/packages/flutter_draggable_gridview


Openapi3Parser::Node::Schema#requires? incorrectly returns true

If I have two properties that both are refs to the same type and one is required:
    AdminPolicyAdministrative:
      type: object
      additionalProperties: false
      properties:
        hasAdminPolicy:
          $ref: '#/components/schemas/Druid'
        referencesAgreement:
          $ref: '#/components/schemas/Druid'
      required:
        - hasAdminPolicy

Then when I query the non-required property, requires? returns true:
(byebug) doc
Openapi3Parser::Node::Schema(#/components/schemas/AdminPolicyAdministrative)
(byebug) properties_doc
Openapi3Parser::Node::Schema(#/components/schemas/AdminPolicyAdministrative/properties/referencesAgreement)
(byebug) doc.requires?(properties_doc)
true

However, If i change the required item to a different ref, it does not:
    AdminPolicyAdministrative:
      type: object
      additionalProperties: false
      properties:
        hasAdminPolicy:
          $ref: '#/components/schemas/Foo'
        referencesAgreement:
          $ref: '#/components/schemas/Druid'
      required:
        - hasAdminPolicy

(byebug) doc
Openapi3Parser::Node::Schema(#/components/schemas/AdminPolicyAdministrative)
(byebug) properties_doc
Openapi3Parser::Node::Schema(#/components/schemas/AdminPolicyAdministrative/properties/referencesAgreement)
(byebug) doc.requires?(properties_doc)
false

The problem seems to occur here: https://github.com/kevindew/openapi3_parser/blob/main/lib/openapi3_parser/node/schema.rb#L125 where Openapi3Parser::Node::Schema(#/components/schemas/AdminPolicyAdministrative/properties/referencesAgreement) and Openapi3Parser::Node::Schema(#/components/schemas/AdminPolicyAdministrative/properties/hasAdminPolicy) are determinted to be equivalent.

I am able to work around this by passing doc.requires?('referencesAgreement') rather than the Schema object.

Thanks for opening this and for the detailed information - it made it easy for me to replicate your problem.
This does seem to indicate a problem in the library. I've put together a fix in https://github.com/kevindew/openapi3_parser/commit/7c229f2ab94b933f68a7a93f0bf65fee2a3127dd which I'll look at releasing in the next couple of days. If you have a chance it'd be great if you could try it out to confirm it resolves your problem (and doesn't introduce a fresh one) - you can do so by changing your Gemfile entry to gem "openapi3_parser", git: "https://github.com/kevindew/openapi3_parser", ref: "7c229f2"

I tried that ref and it fixes the problem.


Problem accept call ios 13 build, tested on ios 12.4.1

After the update to 5.0.0, accept call invite is not working and the  following error is thrown
   let acceptOptions: TVOAcceptOptions = TVOAcceptOptions(callInvite: self.callInvite!) { (builder) in
            builder.uuid = callInvite.uuid
        }
        let res = callInvite.accept(with: acceptOptions, delegate: self)

        print("TVOCall [\(res.state.rawValue)]  [\(res.uuid)]")

ERROR:Twilio:[Platform]:AVAudioSession setActive Error Domain=NSOSStatusErrorDomain Code=561017449

This is for swift, I will move the issue to the other repository


Delay in Fetching Tweets

I developed a program that creates several processes, each utilizing its own API account. These processes run simultaneously, scanning for tweets from a single account every 60 seconds using rettiwt.tweet.search(filter). To prevent rate limiting, each of the six processes scans the same profile, staggered by 10 seconds, effectively simulating scanning every 10 seconds.
However, when testing, it seems that the api(s) only recognizing when an account has posted ~ a full minute after it made the post.
Is this normal for the tweet.search() function? Or should it pick up on new tweets almost instantly?
For the purpose of my program, it is important to pickup on a newly posted tweet from a specific account almost instantly.

rettiwt.tweet.search should indeed return result instantaneously, that is, if I someone makes a tweet, and soon after I run rettiwt.tweet.search, I should get the newly created tweet. Can you share the code you use to simulate scans every 10 seconds?

Here's the abridged version of the code:
main.ts
const API_KEYS = [
... 6 api rettiwt api keys here ...
];

// pass username to scan as argument
const profile = process.argv[2];
if (!profile) {
   console.error('Please provide a profile name.');
   process.exit(1);
}

if (cluster.isPrimary) {
   const numCPUs = os.cpus().length;
   const numWorkers = Math.min(API_KEYS.length, numCPUs);

   // 6 worker processes
   for (let i = 0; i < numWorkers; i++) {
      setTimeout(() => {
         const worker = cluster.fork();
         worker.send({ profile, apiKey: API_KEYS[i] });
      }, i * 10000); // 10-second offset
   }
   // exit all worker processes if one fails
   cluster.on('exit', (worker, code, signal) => {
      console.log(`Worker ${worker.process.pid} died`);
      cluster.fork();
   });
} else {
   process.on('message', (msg: unknown) => {
      if (typeof msg === 'object' && msg !== null && 'profile' in msg && 'apiKey' in msg) {
         const { profile, apiKey, } = msg as { profile: string; apiKey: string; };
         import('./worker').then(workerModule => {
            workerModule.startWorker(profile, apiKey);
         });
      }
   });
}

worker.ts
// scan tweets, if tweet matching regex found, execute sendTM(client)
async function scanTweets(username: string, client: tc) {
      try {
         const rettiwt = new Rettiwt({ apiKey });

         const startTime = Date.now();

         const filter = new TweetFilter({
            fromUsers: [username]
         });

         const data: CursoredData<Tweet> = await rettiwt.tweet.search(filter);

         if (data && data.list && data.list.length > 0) {
            for (let tweet of data.list) {
               const tweetText = tweet.fullText;
               const matches = tweetText.match(/\b\w{32,44}\b/);
               if (matches) {
                  for (let match of matches) {
                     const matchTime = Date.now();
                     console.log(`Found match: ${match}`);
                     await sendTM(client);
                     // this usually returns ~350ms
                     console.log(`Processed match in ${Date.now() - matchTime}ms`);
                     process.exit(0);
                  }
               }
            }
         }

      } catch (error) {
         console.error('Error scanning tweets:', error);
      }
   }

while (true) {
  // scan every 60s to avoid rate limiting
  const currentTime = new Date().toLocaleTimeString([], { hour: 'numeric', minute: '2-digit', second: '2-digit' });
  console.log(`[${currentTime}] Scanning tweets for profile ${profile} (Process ID: ${process.pid})`);
  await scanTweets(profile, client);
  await sleep(60000);
}

Just to clarify, the >60s delay is not whilst calling the search function itself; once I make a test tweet, the next five or six or so times the search function is called, it will return no matching tweets. After about a minute or so after posting, the search function returns the matching tweet, but I assume the api should pick up on the new tweet far quicker than that.

Did you try using the rettiwt.tweet.stream method? That method streams tweet in pseudo-realtime, given a scan delay.

Just tried that, ran into the same issue unfortunately.
Also decided to isolate the search function and test that way
import { Rettiwt } from 'rettiwt-api';
import { TweetFilter } from 'rettiwt-core';
import { Tweet } from 'rettiwt-api/dist/models/data/Tweet';
import { CursoredData } from 'rettiwt-api/dist/models/data/CursoredData';

async function scanTweets(username: string, apiKey: string) {
   try {
      const rettiwt = new Rettiwt({ apiKey });

      const filter = new TweetFilter({
         fromUsers: [username]
      });

      const data: CursoredData<Tweet> = await rettiwt.tweet.search(filter);

      if (data && data.list && data.list.length > 0) {
         for (let tweet of data.list) {
            const tweetText = tweet.fullText;
            const matches = tweetText.match(/\b\w{32,44}\b/);
            if (matches) {
               console.log("Found");
               return;
            }
         }
      } else {
         console.log("No tweets found.");
      }

   } catch (error) {
      console.error('Error scanning tweets:', error);
   }
}

const apiKey = 'api key here';
const username = 'username here';

scanTweets(username, apiKey);

As expected, when manually running the function some times after posting the tweet, it only prints found after about 60 seconds, (five or 6 runs of the program above).

Strange, it should be returning as soon as a scan is done.
Does it happen with a specific user in fromUsers or does it happen with all target users?

The same behavior occurs regardless of the profile username being passed (I've tested with a few different profiles).

@Rishikant181  Is it possible to verify on your end that streaming detects tweet immediately after it's posted? Or at least less than 60 seconds after?

Yeah on my end, it's working as expected, i.e, returning tweets as soon as they are created. I have not been able to reproduce your issue. Can you try it with any other account and see if the same happens?

I also have this problem. If using the same account with apiKey it will appear immediately, but searching for other usernames cannot find new tweets.

If using the same account with apiKey it will appear immediately, but searching for other usernames cannot find new tweets

Checking this out

@nakamuraos I'm unable to reproduce this issue. Can you provide the username of the accounts whose tweets can't be found?

@Rishikant181 (from:Luat_T97)
I realized that if product=Latest twitter did not return more complete results than product=Top when searching on twitter

@nakamuraos product=Latest returns return all tweets sorted by the the they were posted at, from recent at the top, to oldest at the bottom. That's why it's the one filter that rettiwt uses to search for tweets.
Can you post the code snippet you use for fetching the tweets?

@nfadeluca @nakamuraos This might be the reason. If yes, then it's been patched in #638 .

@nfadeluca @nakamuraos Please update to v4.1.4


Installation goes through with thousands of "could not open working directory" errors, then launch fails with a permission error

Describe the bug
When I try to install Fusion on recent OpenSUSE Tumbleweed, installation passes OK (but ends with FALSE). However, launching Fusion throws a permission error and the Fusion window never appears.
In addition, I get thousands of error messages: wine: could not open working directory L"unix\\home\\username\\.fusion360\\bin\\", starting in the Windows directory.
To Reproduce
Steps to reproduce the behavior:

Install script copied verbatim from the website mkdir -p "$HOME/.fusion360/bin" && cd "$HOME/.fusion360/bin" && wget -N https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/install.sh && chmod +x install.sh && ./install.sh
Accept the default for everything
After the install finishes, launch Fusion 360 from the .desktop file
Permission error, Fusion 360 fails to launch.

An install log (produced with ./install.sh 2>&1 | tee fusion360-install.log) is here: https://gist.github.com/phrxmd/62c804239d184d998c9dc789168fa901 - warning, 38,000 lines and 2.9 MiB.
Expected behavior
Fusion 360 should launch.
Screenshots

Desktop (please complete the following information):

Version number of Autodesk Fusion 360: Whatever gets downloaded today
Graphics card model + Graphics card driver (Version number): Intel (Lenovo Thinkpad X1 Yoga 3rd)
Operating system: OpenSUSE Tumbleweed
Desktop environment: KDE Plasma 5.25.1 Wayland
DXVK mode

Additional context
Wine versions:
> zypper if wine wine-gecko wine-mono wine-32bit
Loading repository data...
Reading installed packages...

Information for package wine:
-----------------------------
Repository     : wine
Name           : wine
Version        : 7.11-1462.16
Arch           : x86_64
Vendor         : obs://build.opensuse.org/Emulators
Installed Size : 605.9 MiB
Installed      : No
Status         : not installed
Source package : wine-7.11-1462.16.src
Upstream URL   : http://www.winehq.org/
Summary        : An MS Windows Emulator
[...]

Information for package wine-gecko:
-----------------------------------
Repository     : wine
Name           : wine-gecko
Version        : 2.47.2-65.22
Arch           : noarch
Vendor         : obs://build.opensuse.org/Emulators
Installed Size : 235.6 MiB
Installed      : Yes
Status         : up-to-date
Source package : wine-gecko-2.47.2-65.22.src
Summary        : The Wine specific Gecko HTML rendering engine
[...]

Information for package wine-mono:
----------------------------------
Repository     : wine
Name           : wine-mono
Version        : 7.3.0-52.1
Arch           : noarch
Vendor         : obs://build.opensuse.org/Emulators
Installed Size : 232.7 MiB
Installed      : Yes
Status         : up-to-date
Source package : wine-mono-7.3.0-52.1.src
Upstream URL   : https://github.com/madewokherd/wine-mono
Summary        : A .NET replacement for use by Wine
[...]

Information for package wine-32bit:
-----------------------------------
Repository     : wine
Name           : wine-32bit
Version        : 7.11-1462.16
Arch           : x86_64
Vendor         : obs://build.opensuse.org/Emulators
Installed Size : 515.9 MiB
Installed      : No
Status         : not installed
Source package : wine-7.11-1462.16.src
Upstream URL   : http://www.winehq.org/
Summary        : An MS Windows Emulator
[...]

Additional information: the executable is there and has correct permissions:
> ls -l .fusion360/wineprefixes/default/drive_c/Program\ Files/Autodesk/webdeploy/production/59c8a288d74003935db5128cd3acb5349f9d794a/Fusion*.exe
-rwxr-xr-x 1 username users 838704 17. Jun 20:56 '.fusion360/wineprefixes/default/drive_c/Program Files/Autodesk/webdeploy/production/59c8a288d74003935db5128cd3acb5349f9d794a/Fusion360.exe'
-rwxr-xr-x 1 username users 262192 17. Jun 20:56 '.fusion360/wineprefixes/default/drive_c/Program Files/Autodesk/webdeploy/production/59c8a288d74003935db5128cd3acb5349f9d794a/FusionLauncher.exe'

Here is the output from bash ~/.fusion360/launcher.sh:
> bash ~/.fusion360/bin/launcher.sh
--2022-07-01 19:38:12--  https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/build-version.txt
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20 [text/plain]
Saving to: '/tmp/fusion360/build-version.txt'

build-version.txt  100%[===============>]      20  --.-KB/s    in 0s

Last-modified header missing -- time-stamps turned off.
2022-07-01 19:38:12 (1.16 MB/s) - '/tmp/fusion360/build-version.txt' saved [20/20]

Online Build-Version: 2.0.13168
Online Insider-Build-Version: 2.0.13367
The version.txt file not exist!
EN

(yad:2660): Gdk-CRITICAL **: 19:38:12.820: gdk_wayland_window_set_dbus_properties_libgtk_only: assertion 'GDK_IS_WAYLAND_WINDOW (window)' failed

(yad:2660): Gdk-WARNING **: 19:38:12.866: gdkwindow-x11.c:5653 drawable is not a native X11 window

(yad:2679): Gdk-CRITICAL **: 19:38:44.616: gdk_wayland_window_set_dbus_properties_libgtk_only: assertion 'GDK_IS_WAYLAND_WINDOW (window)' failed

(yad:2679): Gdk-WARNING **: 19:38:44.670: gdkwindow-x11.c:5653 drawable is not a native X11 window
wine: invalid directory  in WINEPREFIX: not an absolute path

Update:
> cat ~/.fusion360/wineprefixes/default/box-run.sh
WP_BOX='/home/username/.fusion360/wineprefixes/default'
. /home/reichmuth/.fusion360/bin/launcher.sh
Firstly this file should contain a shebang line (#!/bin/sh or something).
Secondly if I insert export on the first line, I can launch Fusion 360 using ~/fusion360/bin/launcher.sh, however launching it using the .desktop file still produces an error.

Update:
> cat ~/.fusion360/wineprefixes/default/box-run.sh
WP_BOX='/home/username/.fusion360/wineprefixes/default'
. /home/username/.fusion360/bin/launcher.sh
Firstly this file should contain a shebang line (#!/bin/sh or something). Adding it does not fix the permission error though.
Secondly the first line should probably start with export. When I add that, I can launch Fusion 360 using box-run.sh, however launching it using the .desktop file still produces an error.


fix: option --no-auth breaking --upload with auth

fix: option --no-auth breaking --upload with auth

This fixes the logic behind `--no-auth` and `--upload` requiring
`--upload-server`.

When the user doesn't use `--no-auth`, but uses `--upload` the current
logic was overwitting the server defined by `rstuf admin login`.

Added tests to prevent regression

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.14 :tada:

Comparison is base (058bcaa) 94.86% compared to head (ca3ab64) 95.01%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #259      +/-   ##
==========================================
+ Coverage   94.86%   95.01%   +0.14%
==========================================
  Files          13       13
  Lines         701      702       +1
==========================================
+ Hits          665      667       +2
+ Misses         36       35       -1

Impacted Files
Coverage Δ

repository_service_tuf/cli/admin/ceremony.py
99.56% <100.00%> (+0.43%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Update stm32l1 crate to v0.12.1

Hi, merging this would update the crate stm32l1 along with minor updates to couple of examples to make them compile. The cortex-m and embedded-l versions are also brought up a bit.

Hello, any updates on this bump?
Thank you for the crate and that pull request

Hello, any updates on this bump?
Thank you for the crate and that pull request

I will probably update this to the recently published v0.13 next time I work with my L1 toys.

I have continued the work in #14.


Fix/implement timer triggers for updates

daily message and send table are now triggered by a timer. The timers are set such that slack messages are sent after the resources have been updated.

@j0rd1smit @timotk Roel has indicated he has limited time for the review, and that approval of either one of you is sufficient!


Performance: Server-side pagination: home page cluster list

SURE-7040
Blocked on https://github.com/rancher/dashboard/issues/9545

@richard-cox could it be an option to add a setting disable this list altogether for users who do not need it, or is the provisioning cluster list also used elsewhere?


Vue Js

Hello to everyone,
there is out there a chance to use with Vue js??
Thanks

Hello THERE? Is any documentation using this in vuejs?

I Created a Vue Component to use Pivot Table, and i added Vuetify Material Design style. Soon i will create a full conversion of this component to Vue JS, removing the dependency of jQuery and Jquery UI.

I Will Create a Guide to use him in Vue JS.

@ebellumat nice job

@ebellumat Nice job!
In your video, did you remove jQuery from the component?

@ebellumat I think I can help you to port, can you create a new project to share progress?

@theRichu, of course!

@ebellumat out of curiosity, what level of compatibility with PivotTable.js / react-pivottable are you aiming for with your Vue port? Right now the jQuery and React versions can share aggregators and sorters basically, which is nice, but not much else. Are you aiming for this as well or... ?

@nicolaskruchten, here in my job, i created from zero, an Pivottable in Vue to input data. Basically, we create a relationship of data in runtime, creating the text inputs for insertion. Currently he have an agregator to sum data, and he plots charts with ChartJS. What i need to complete the job, are the aggregators and sorters, what your wonderful project can already provide us! In short, I look at a port 100% true to the original, with all the benefits.
Check out the current Version, before the conversion!

@ebellumat When can we expect basic pivot table for vuejs

@SujanKumarK That might help : https://github.com/MarketConnect/vue-pivot-table

I Created a Vue Component to use Pivot Table, and i added Vuetify Material Design style. Soon i will create a full conversion of this component to Vue JS, removing the dependency of jQuery and Jquery UI.

Hi, any progress in full conversion to Vue.js?

This project release a version before me, so, i will help this project instead release my original project.
https://github.com/MarketConnect/vue-pivot-table


Custom CMDI file ignored if it starts with BOM

If the custom CMDI starts with BOM, DSpace seems to ignore it, falling back on the default.

will be reopened if a volunteer is found to implement it


installed apps

Hello! Thank you for this creation.
Just a note, my django project only registered the install when I added the app to settings as follows:
INSTALLED_APPS = [
....
'geojson_serializer',
]
The django at the beginning seems to be irrelevant. Many thanks!

Thanks, fixed)


Feature flush trust_dns

Hi there
My machine is travelling between many networks per day. I use trust_dns for enhanced security but sometimes the networks lack IPv6 or IPv4 connections.
Most of my target hosts are dual-stack the problem however, if the current network does not support the connection type used on the first network of the day the connection fails because it is still trying with the same address.
Could we add a flush function or pass trough the trust_dns resolver so one can flush that cache when needed?

I have come across this type DnsResolverWithOverrides in src/connect.rs could I use that to configure the trust dns resolver?
In this issue https://github.com/bluejekyll/trust-dns/issues/1608 there was a suggestion to set the positive_max_ttl config option.
Are there any docs on that yet?

Hey, I'm encountering a trust_dns issue while using reqwest.
Description of My Issue:

Successfully connected my device to the network and made an initial HTTP request to a URL.
Changed the device's network, which led to a modification in the /etc/resolve.conf file.
Now, all subsequent HTTP calls are failing with an error message indicating an issue with sending the request for the URL.
error sending request for url (https://atmosphere-dev.us-west-2.cpair.dev.braintree.tools:8080/graphql): operation timed out

I noticed that the code references the file "/etc/resolve.conf" loaded only once.
lazy_static! {     static ref SYSTEM_CONF: io::Result<(ResolverConfig, ResolverOpts)> =         system_conf::read_system_conf().map_err(io::Error::from); }
Please assist me in identifying the problem and making the statement clearer for better comprehension.


SR-7195: JSONSerialization encodes Double differently on Darwin and Linux

Use .description property of numbers to encode as String
instead of using CFNumberFormatter for Float/Double,
and serialising integers explictly.

@swift-ci please test

Looks reasonable — can we add a unit test to cover the specific values mentioned in SR-7195 so we can ensure that this at least helps with the round-tripping?

@swift-ci test

@swift-ci test and merge

@swift-ci test and merge


should follow Java Escape Character rule to allow \n or \t in env

Closing this one in favor of https://github.com/ashald/EnvFile/pull/127 - LMK if you have a case for \t etc.


LACP Port Errors

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:
[X] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[X] I have searched the existing issues and I'm convinced that mine is new.
Describe the bug
Creating and using a LACP LAGG interface causes errors on the LAG. After rebooting the machine, the LAG is not usable. the physical connections need to be replugged.
To Reproduce
Create The LAGG and check the error counter (no physical link attached)
root@OPNsense:~ # netstat -i
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
lagg0  1500 <Link#11>     00:1b:21:a7:5b:f2        0     0     0        0     5     0
lagg0     - fe80::%lagg0/ fe80::21b:21ff:fe        0     -     -        2     -     -
Then in moved a vlan interface to the lagg, send some traffic over it and plugged and unplugged the physical links one after another.
root@OPNsense:~ # netstat -i
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
lagg0  1500 <Link#11>     00:1b:21:a7:5b:f2     9843     0     0     4232    34     0
lagg0     - fe80::%lagg0/ fe80::21b:21ff:fe        0     -     -        2     -     -
Then i rebooted the switch and the opnsense and testet again. After reboot I noticed that the link did not work. I had to unplug both physical cables and replugg them.
This is what the error counters looked like after sending some traffic through again:
root@OPNsense:~ # netstat -i
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
lagg0  1500 <Link#11>     00:1b:21:a7:5b:f2    12385     0     0     7016    82     0
lagg0     - fe80::%lagg0/ fe80::21b:21ff:fe        0     -     -        2     -     -
root@OPNsense:~ # netstat -i
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
lagg0  1500 <Link#11>     00:1b:21:a7:5b:f2    13326     0     0     8134   135     0
lagg0     - fe80::%lagg0/ fe80::21b:21ff:fe        0     -     -        2     -     -
With or without VLAN hardware filtering the same thing happens.
Expected behavior
A LACP link should be usable without any errors
Screenshots
Creating LAGG:
https://ibb.co/HqGd9s9
Configure vlan to lagg parent if:
https://ibb.co/1JCj1jR
Interface settings:
https://ibb.co/VWqg2hW
lacp switch configuration 1/2:
https://ibb.co/Ptd7fJQ
lacp switch configuration 2/2:
https://ibb.co/G0WwL6L
switch interface stats before connecting physical lacp links to opnsense:
https://ibb.co/2hj65vR
switch interface stats after connecting physical lacp links to opnsense:
https://ibb.co/dKZcyRN
Relevant log files
If applicable, information from log files supporting your claim.
Additional context
No errors appear on the Switch. This error does not appear using LACP on Ubuntu Server 19.10 Kernel 5.3 so i guess it is no Hardware related issue. This occurs even with completely different hardware (Sophos XG 105 rev2).
Environment
Versions    OPNsense 20.1-amd64
FreeBSD 11.2-RELEASE-p16-HBSD
OpenSSL 1.1.1d 10 Sep 2019
Intel Xeon E3-1220v6
Intel i340-T4 Gigabit Nic
Switch:
Device Information
Device Type    DGS-1210-26 Gigabit Ethernet Switch
Boot Version    1.00.010
Firmware Version    6.12.B006
Hardware Version    F1
NIC:
root@OPNsense:~ # pciconf -l -BbceVv
igb2@pci0:1:0:2:   class=0x020000 card=0x12a18086 chip=0x150e8086 rev=0x01 hdr=0x00
vendor     = 'Intel Corporation'
device     = '82580 Gigabit Network Connection'
class      = network
subclass   = ethernet
bar   [10] = type Memory, range 32, base 0xde180000, size 524288, enabled
bar   [1c] = type Memory, range 32, base 0xde304000, size 16384, enabled
cap 01[40] = powerspec 3  supports D0 D3  current D0
cap 05[50] = MSI supports 1 message, 64 bit, vector masks
cap 11[70] = MSI-X supports 10 messages, enabled
Table in map 0x1c[0x0], PBA in map 0x1c[0x2000]
cap 10[a0] = PCI-Express 2 endpoint max data 256(512) FLR NS
link x4(x4) speed 5.0(5.0) ASPM disabled(L0s/L1)
ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
ecap 0003[140] = Serial 1 001b21ffffa75bf0
ecap 0017[1a0] = TPH Requester 1
PCI-e errors = Correctable Error Detected
Unsupported Request Detected
Corrected = Advisory Non-Fatal Error
igb3@pci0:1:0:3:   class=0x020000 card=0x12a18086 chip=0x150e8086 rev=0x01 hdr=0x00
vendor     = 'Intel Corporation'
device     = '82580 Gigabit Network Connection'
class      = network
subclass   = ethernet
bar   [10] = type Memory, range 32, base 0xde100000, size 524288, enabled
bar   [1c] = type Memory, range 32, base 0xde300000, size 16384, enabled
cap 01[40] = powerspec 3  supports D0 D3  current D0
cap 05[50] = MSI supports 1 message, 64 bit, vector masks
cap 11[70] = MSI-X supports 10 messages, enabled
Table in map 0x1c[0x0], PBA in map 0x1c[0x2000]
cap 10[a0] = PCI-Express 2 endpoint max data 256(512) FLR NS
link x4(x4) speed 5.0(5.0) ASPM disabled(L0s/L1)
ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
ecap 0003[140] = Serial 1 001b21ffffa75bf0
ecap 0017[1a0] = TPH Requester 1
PCI-e errors = Correctable Error Detected
Unsupported Request Detected
Corrected = Advisory Non-Fatal Error

Screenshot 1, both NICs have the same Mac address, looks weird.

Does this also occur with lacp and no vlans? Maybe a native vlan mismatch in the switch?

IT appears even if no switch is attached. So no vlans.
(no physical links) still errors
root@OPNsense:~ # netstat -i
Name Mtu Network Address Ipkts Ierrs Idrop Opkts Oerrs Coll
lagg0 1500 <Link#11> 00:1b:21:a7:5b:f2 0 0 0 0 5 0
lagg0 - fe80::%lagg0/ fe80::21b:21ff:fe 0 - - 2 - -
both nics have different mac adresses per default:
igb2: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=6403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6>
ether 00:1b:21:a7:5b:f2
hwaddr 00:1b:21:a7:5b:f2
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: no carrier
igb3: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=6403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6>
ether 00:1b:21:a7:5b:f3
hwaddr 00:1b:21:a7:5b:f3
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: no carrier

While creating the lagg both interfaces have a different mac. once i click edit after lagg creation both interfaces share the same mac.

I don't think this (Oerrs) has nothing to do with your problem, can you please check lacp to switch without VLANs and look if you have a link after reboot?

I have created a lagg interface and added an ip to it. then i setup a dhcp server and range for this lag link.
on the switch i createt a lacp group with a untagged vlan on it. so to speak access port. i added a vm in esxi to this vlan.
the vm did not receive an ip adress.
testlacp interface (opt6, lagg0)
Status 	up
MAC address 	00:1b:21:a7:5b:f2 - Intel Corporate
MTU 	1500
IPv4 address 	<IP_ADDRESS> / 24
IPv6 Link Local 	fe80::21b:21ff:fea7:5bf2 / 64
Media 	Ethernet autoselect
LAGG Protocol 	lacp lagghash l2,l3,l4
LAGG Ports 	igb2
igb3
In/out packets 	0 / 1 (0 bytes / 116 bytes )
In/out packets (pass) 	0 / 1 (0 bytes / 116 bytes )
In/out packets (block) 	0 / 0 (0 bytes / 0 bytes )
In/out errors 	0/4
Collisions 	0

So, you dont have carrier problems when rebooting without vlans, correct?

The Link is up, but it seems that no data can be transmitted (with or without vlans). The client (vm) does not receive a ip from the dhcp. The packet counter on the interface is 1 out.
German:
So wie es aussieht, besteht das Problem unabhängig von Vlans auf dem LAGG Interface. Auch ein Reboot bringt keine Abhilfe. Ein mit dem Netz verbundener Client erhält keine IP von dem auf dem LACP Interface konfiguriertem DHCP-Server.

Can you check with ping and the arp cache on client and server if mac address is learned? Also on the switch.
Which hypervisor is running the VM? Usually VMware uses own HA and not LACP.

I have no idea what went wrong yesterday. My ESXi does not use a multilink configuration. Before testing i rebooted everything and pinging in both directions now works. But the issue with the rising error counter sill persists. On the switch ports there are no errors.
The mac adresstable from the switch:
https://ibb.co/bB9zPdz
ifconfig OPNsense:
igb2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
ether 00:1b:21:a7:5b:f2
hwaddr 00:1b:21:a7:5b:f2
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: no carrier
igb3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
ether 00:1b:21:a7:5b:f2
hwaddr 00:1b:21:a7:5b:f3
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: no carrier
arptable opnsense:
root@OPNsense:~ # arp -a | grep 160
? (<IP_ADDRESS>) at 00:1b:21:a7:5b:f2 on lagg0 permanent [ethernet]
? (<IP_ADDRESS>) at 00:0c:29:07:58:14 on lagg0 expires in 1177 seconds [ethernet]
arptable client:
user@test:~$ arp -a
? (<IP_ADDRESS>) at 00:1b:21:a7:5b:f2 [ether] on ens160
port errors:
root@OPNsense:~ # netstat -i
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
lagg0  1500 <Link#16>     00:1b:21:a7:5b:f2      407     0     0     1222    12     0
lagg0     - fe80::%lagg0/ fe80::21b:21ff:fe        0     -     -        2     -     -
lagg0     - <IP_ADDRESS> <IP_ADDRESS>          182     -     -       51     -     -

You have a learned mac address on lagg0 but both interfaces don't have a link?

Read again:
I have no idea what went wrong yesterday. My ESXi does not use a multilink configuration. Before testing i rebooted everything and pinging in both directions now works. But the issue with the rising error counter sill persists. On the switch ports there are no errors.

This error happens even with a complete new installed system. Errors appear even without any cables attached.

Look, when you have a Switch tagging packets on port 1 with vlan 5 and on the other side it expects vlan 4, you'll see interface errors. When you see the errors even without cables it's just an error because it can't send a specific kind of traffic, like not forming LACP neighborship

Please answer these four questions:
1.: Why do both physical interfaces share the same MAC adress once the lagg is formed? I have not seen this behavior running Ubuntu Server 19.10 for example.
2.: Why does the error counter go up. Even when the same VLANs are configured on both sides and both interfaces are connected to both lacp port group interfaces on the switch? The devices should easily exchange LACPDUs.
3.: Why does the interface error counter stay at a solid zero running a LAG on Ubuntu Server 19.10? (lag setup with netplan)
With or without physical links up.
4.: If it is expected behavior that the counter goes up due to unanswered LACPDUs, where is it documented?

When the nics are disconected i get this output:
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
lagg0  1500 <Link#19>     a8:5e:45:3d:ed:34        0     0     0        0     5     0
lagg0     - fe80::%lagg0/ fe80::aa5e:45ff:f        0     -     -        2     -     -
2 Out Packages and 5 Out Errors. This is so strange.
Another Freebsd User also experienced this issue:
https://forums.freebsd.org/threads/lagg-4-interface-output-errors.46022/
@mimugmail Since you are running an LACP Setup:
what does the Error Counter from your lagg Interface look like?
Does it look the same? If so It might be an Freebsd issue.

My counters look similar. But they are in production, no way to unplug a cable or move vlans around.
lagg0  1500 <Link#13>     ac:1f:6b:6c:95:2a<PHONE_NUMBER>2     0     0<PHONE_NUMBER>    17     0
lagg0     - fe80::%lagg0/ fe80::ae1f:6bff:f        0     -     -        1     -     -
lagg1  1500 <Link#14>     ac:1f:6b:6c:9b:34<PHONE_NUMBER>     0     0<PHONE_NUMBER>8   108     0
lagg1     - fe80::%lagg1/ fe80::ae1f:6bff:f        0     -     -        2     -     -
lagg1  1500 <Link#15>     ac:1f:6b:6c:9b:34        5     0     0  1006453     7     0

This issue is not caused by OPNsense. It can be closed.

I just upgraded a box from 20.1 to 20.7 Since the upgrade I can detect errors on the VLANs. On the side of the switch I could not detect any errors.

i reopened the issue wrong since in this case there is no lacp involved.

The issue is still persistent after a fresh 20.7 installation. Maybe related to: #4235 https://github.com/opnsense/core/issues/4235

Didnt you state it's not related to OPNsense?

Another user also found this problem. Back in 2019:
https://forum.opnsense.org/index.php?topic=15005.0

In the forum Post is stated that he can reach full throughput. Error can come from everything, unknown packets, wrong checksum when running IPS and offloading and so on. If you dont encounter performance drops just ignore them or report to FreeBSD directly

This issue has been automatically timed-out (after 180 days of inactivity).
For more information about the policies for this repository,
please read https://github.com/opnsense/core/blob/master/CONTRIBUTING.md for further details.
If someone wants to step up and work on this issue,
just let us know, so we can reopen the issue and assign an owner to it.


changes to views and template for home page

Summary Change Description

made big changes to the view for home page. Handled card attributes in views, instead of repeated code blocks in template.
passed the linting with jscpd

Affected Issue Numbers

Resolves #279

Code Review Notes
Added test code to spot check object counts, and urls for card attributes.
Checklist

[x] All issue requirements satisfied (or no linked issues)
[x] Linting passes.
[x] Migrations created & committed (or no model changes)
[x] Tests implemented (or no code changes)
[x] All tests pass

I am not completely happy with this implementation - it moved repeated code blocks from template to views. But it passed linting. I'll keep your suggestions in mind, and think about a more balanced approach. My plan is to merge it into main now, and re-visit it after making some progress on Neuron-simulator project.


[Issue] Crashing at Entity Extraction using Ollama: KeyError: "['type', 'description'] not in index"

Do you need to file an issue?

[ ] I have searched the existing issues and this bug is not already filed.
[ ] My model is hosted on OpenAI or Azure. If not, please look at the "model providers" issue and don't file a new one here.
[ ] I believe this is a legitimate bug, not just a question. If this is a question, please use the Discussions area.

Describe the issue
GraphRAG is crashing during entity extraction using llama 3 (via Ollama) with the following error:
KeyError: "['type', 'description'] not in index"
I've tried multiple file formats with different file sizes (csv, txt, pdf), but the issue persists. I suspect it could be running out of memory or hitting some kind of threshold.
Steps to reproduce
Follow the Get Started instructions from Microsoft's GraphRAG documentation.
GraphRAG Config Used
encoding_model: cl100k_base
skip_workflows: []
llm:
  api_key: ${GRAPHRAG_API_KEY}
  type: openai_chat # or azure_openai_chat
  model: mistral
  model_supports_json: true # recommended if this is available for your model.
  # max_tokens: 4000
  # request_timeout: 180.0
  api_base: http://localhost:11434/v1
  # api_version: 2024-02-15-preview
  # organization: <organization_id>
  # deployment_name: <azure_model_deployment_name>
  # tokens_per_minute: 150_000 # set a leaky bucket throttle
  # requests_per_minute: 10_000 # set a leaky bucket throttle
  # max_retries: 10
  # max_retry_wait: 10.0
  # sleep_on_rate_limit_recommendation: true # whether to sleep when azure suggests wait-times
  # concurrent_requests: 25 # the number of parallel inflight requests that may be made

parallelization:
  stagger: 0.3
  # num_threads: 50 # the number of threads to use for parallel processing

async_mode: threaded # or asyncio

embeddings:
  ## parallelization: override the global parallelization settings for embeddings
  async_mode: threaded # or asyncio
  llm:
    api_key: ${GRAPHRAG_API_KEY}
    type: openai_embedding # or azure_openai_embedding
    model: nomic_embed_text #text-embedding-3-large  #mxbai-embed-large #
    api_base: http://localhost:11434/api
    # api_version: 2024-02-15-preview
    # organization: <organization_id>
    # deployment_name: <azure_model_deployment_name>
    tokens_per_minute: 150000 # set a leaky bucket throttle
    requests_per_minute: 10000 # set a leaky bucket throttle
    # max_retries: 10
    # max_retry_wait: 10.0
    # sleep_on_rate_limit_recommendation: true # whether to sleep when azure suggests wait-times
    concurrent_requests: 25 # the number of parallel inflight requests that may be made
    # batch_size: 16 # the number of documents to send in a single request
    # batch_max_tokens: 8191 # the maximum number of tokens to send in a single request
    # target: required # or optional

chunks:
  size: 300
  overlap: 100
  group_by_columns: [id] # by default, we don't allow chunks to cross documents

input:
  type: file # or blob
  file_type: text # or csv
  base_dir: "input"
  file_encoding: utf-8
  file_pattern: ".*\\.txt$"

cache:
  type: file # or blob
  base_dir: "cache"
  # connection_string: <azure_blob_storage_connection_string>
  # container_name: <azure_blob_storage_container_name>

storage:
  type: file # or blob
  base_dir: "output/${timestamp}/artifacts"
  # connection_string: <azure_blob_storage_connection_string>
  # container_name: <azure_blob_storage_container_name>

reporting:
  type: file # or console, blob
  base_dir: "output/${timestamp}/reports"
  # connection_string: <azure_blob_storage_connection_string>
  # container_name: <azure_blob_storage_container_name>

entity_extraction:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  prompt: "prompts/entity_extraction.txt"
  entity_types: [organization, person, geo, event]
  max_gleanings: 0

summarize_descriptions:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  prompt: "prompts/summarize_descriptions.txt"
  max_length: 500

claim_extraction:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  # enabled: true
  prompt: "prompts/claim_extraction.txt"
  description: "Any claims or facts that could be relevant to information discovery."
  max_gleanings: 0

community_report:
  ## llm: override the global llm settings for this task
  ## parallelization: override the global parallelization settings for this task
  ## async_mode: override the global async_mode settings for this task
  prompt: "prompts/community_report.txt"
  max_length: 2000
  max_input_length: 8000

cluster_graph:
  max_cluster_size: 10

embed_graph:
  enabled: false # if true, will generate node2vec embeddings for nodes
  # num_walks: 10
  # walk_length: 40
  # window_size: 2
  # iterations: 3
  # random_seed: 597832

umap:
  enabled: false # if true, will generate UMAP embeddings for nodes

snapshots:
  graphml: True
  raw_entities: false
  top_level_nodes: True

local_search:
  # text_unit_prop: 0.5
  # community_prop: 0.1
  # conversation_history_max_turns: 5
  # top_k_mapped_entities: 10
  # top_k_relationships: 10
  # max_tokens: 12000

global_search:
  # max_tokens: 12000
  # data_max_tokens: 12000
  # map_max_tokens: 1000
  # reduce_max_tokens: 2000
  # concurrency: 32

Logs and screenshots

Additional Information

GraphRAG Version: 0.3.6
Operating System: MacOS Sequoia v15.0
Python Version: 3.12.4
Related Issues:

It's failing here in Pandas:
`
def check_key_length(columns: Index, key, value: DataFrame) -> None:
"""
Checks if a key used as indexer has the same length as the columns it is
associated with.
Parameters
----------
columns : Index The columns of the DataFrame to index.
key : A list-like of keys to index with.
value : DataFrame The value to set for the keys.

Raises
------
ValueError: If the length of key is not equal to the number of columns in value
            or if the number of columns referenced by key is not equal to number
            of columns.
"""
if columns.is_unique:
    if len(value.columns) != len(key):
        raise ValueError("Columns must be same length as key")
else:
    # Missing keys in columns are represented as -1
    if len(columns.get_indexer_non_unique(key)[0]) != len(value.columns):
        raise ValueError("Columns must be same length as key")

`

After some debugging, I think this is the issue:
graphrag.index.verbs.graph.clustering.cluster_graph WARNING Graph has no nodes
Any idea why graph nodes are not being created?


ImageDownloader with .backgroundDecode produces CG Raster Data Leak

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

[x] I have read the wiki page and cheat sheet, but there is no information I need.
[x] I have searched in existing issues, but did not find a same one.
[x] I want to report a problem instead of asking a question. It'd better to use kingfisher tag in Stack Overflow to ask a question.

Issue Description
I am using the default ImageDownloader to retrieve images from our servers.
Pretty standard implementation:
ImageDownloader.default.downloadImage(with: url, options: [.backgroundDecode]) { [weak self] result in
                var image: UIImage?
                switch result {
                case let .success(value): image = value.image
                default:
                    break

// Pass my image in completion block
                }

The image is downloaded correctly and I'm able to display it without any issues.
However, upon profiling my issue, I notice a huge memory consumption.
What
There seem to be CG Raster Data to be leaked during the background decoding (at least that's what Instruments suggests)
Here is an Instrument Screenshot:

Reproduce

Set a UIViewController with an image to be displayed (in my case it's a collection view, so, several images) (our URL are simple S3 download URLs that I cannot provide)
the download call can simply be in viewDidLoad()
Push this view controller onto a UINavigationController
Image(s) will be downloaded and displayed correctly
Raster Data will be visible on Instrument
Pop that view controller and make sure deinit is called
The Raster Data will leak and stay present in the overall allocations.

I guess it is not what Kingfisher could control.
Maybe it worths to confirm it on a device instead of a simulator.

I will test that, I however tested that removing .backgroundDecode from the options removed the leak, which is what led me to believe it was on the framework's side


Added image stitching

Related issue
Fixes #417

I have made some changes. Hope it will fulfill the requirements.
Please review.


feat: upgrade @carbon/charts

Closes #3169
Summary

Upgrades to the newest version of @carbon/charts

Change List (commits, features, bugs, etc)

Upgrades to the newest version of @carbon/charts

Acceptance Test (how to verify the PR)

check charts in storybook to ensure no issues

Regression Test (how to make sure this PR doesn't break old functionality)

check charts in storybook to ensure no issues

Things to look for during review

[ ] Make sure all references to iot or bx class prefix is using the prefix variable
[ ] (React) All major areas have a data-testid attribute. New test ids should have test written to ensure they are not changed or removed.
[ ] UI should be checked in RTL mode to ensure the proper handling of layout and text.
[ ] All strings should be translatable.
[ ] The code should pass a11y scans (The storybook a11y knob should show no violations). New components should have a11y test written.
[ ] Unit test should be written and should have a coverage of 90% or higher in all areas.
[ ] All components should be passing visual regression test. For new styles or components either a visual regression test should be written for all permutations or the base image updated.
[ ] Changes or new components should either write new or update existing documentation.
[ ] PR should link and close out an existing issue

Seems like we have the chart toolbar coming through on this now.

Seems like we have the chart toolbar coming through on this now.

@davidicus, I didn't realize they added it there, too, now. I've already disabled it. Just waiting on checks and preview.

Compared to next

Just the one issue with sizing on the pie chart. Otherwise looks good.

Yeah, I think that was related to the toolbar, too. The deploy preview matches now.


Choosing a Synthesis Strategy

Hello,
Below is a screenshot of a synthesis exploration that I have done on spm. According to the OpenLane documentation, there is a SYNTH_STRATEGY variable that can be used in config.tcl to choose a synthesis strategy. This SYNTH_STRATEGY variable can only be set using "DELAY 0" or "AREA 1" for example.
My question is: how can I choose any of the strategies in the image below? For example how can I choose strategy 1 or 3 or 6. I find that for other designs there are more than 7 strategies.

Thank you,
Mousa

I ran into the same question today.  The strategies are poorly labelled but  there seem to be 4 delay and 3 area strategies in that order.  I think the labelling should be
DELAY 1
DELAY 2
DELAY 3
DELAY 4
AREA 1
AREA 2
AREA 3
I haven't tested it yet though.

@donn This looks like both a doc issue and an enhancement to the labelling.
Also the docs says "summary report under reports that compares the 4 outputs." which there are now 7 outputs.

@mousaq92 there isn't clear documentation nor is the scope for choosing the best strategy fully tested yet. The definition is here https://github.com/The-OpenROAD-Project/OpenLane/blob/master/scripts/yosys/synth.tcl which allows you to access multiple synthesis scripts/recipes for abc based on area, delay settings. The number in the synthesis strategy (as in 5 in S5) is an index into the list (area or delay) to use. The optimal area vs delay recipe for the type of design goal is not always obvious or consistent as seen from initial testing. Please feel free to explore and report your findings.

I think I fixed this a while back, it's just mislabeled as "documentation." Synthesis exploration now prints the actual strategy name.


[ActionMenu] Fixes overlapping elements for SubMenus

Description
Solves https://github.com/navikt/aksel/pull/3085#discussion_r1790161786 🤞
Fixes issue currently caused by width: calc(100% + 17px)

FloatingUi-element uses "max-content" for width calculation. This omits the 17px, thus leading to wrong calculations
This causes the sub-menu to overlap 17 extra pixels over the element when place on the left side.

Fix:

Use scrollbar-gutter instead of magic numbers to avoid text-wrapping.

Result:

@HalvorHaugan Might need to test on windows how scrollbar-gutter looks, the scrollbar "track" is not always present on Mac, but might differ on OS

Chrome:

Looks acceptable, except that right padding now looks bigger than left when scrollbar is not there.
Firefox on the other hand:

Seems like they have a floating scrollbar now.
Fun fact: Thin scrollbar in FF is not very different from their normal scrollbar:

Would it be possible to instead set a different sideOffset depending on the side?
Unrelated issue: The viewport height is not being fully utilized, there's some space above.

Floating scrollbar ruins everything 😭😭😭😭 Back to the drawingboard i guess...

Would it be possible to instead set a different sideOffset depending on the side?

They do have this possibility, but could not get the API to work dynamically based on side.

Looks acceptable, except that when hovering, the right padding now looks bigger than left when scrollbar is not there (and with scrollbar the items look a bit "crammed" into the scrollbar).

Since the item has a min-width, this will happen anyways if the text is short enough. Its just by accident that the text is almost, but not quite equal to the minWidth here.

@HalvorHaugan Undid the scrollbar gutter change 🚀

Unrelated issue: The viewport height is not being fully utilized, there's some space above.

Seems like availableHeight in Floating.tsx is calculated "wrong" based on something. Can't see why that is, but would file it under future fix for now


FLAG_ATTR is breaking C++ compilation (IDFGH-1806)

Using master (a7e8d87d3e5ccc9e5ffcd701a1bac587ba4f43ea), there is an issue with the FLAG_ATTR macro used for enum for flags in C++ builds.
It expands to:
#define FLAG_ATTR_IMPL(TYPE, INT_TYPE) \
constexpr TYPE operator~ (TYPE a) { return (TYPE)~(INT_TYPE)a; } \
constexpr TYPE operator| (TYPE a, TYPE b) { return (TYPE)((INT_TYPE)a | (INT_TYPE)b); } \
constexpr TYPE operator& (TYPE a, TYPE b) { return (TYPE)((INT_TYPE)a & (INT_TYPE)b); } \
constexpr TYPE operator^ (TYPE a, TYPE b) { return (TYPE)((INT_TYPE)a ^ (INT_TYPE)b); } \
constexpr TYPE operator>> (TYPE a, int b) { return (TYPE)((INT_TYPE)a >> b); } \
constexpr TYPE operator<< (TYPE a, int b) { return (TYPE)((INT_TYPE)a << b); } \
TYPE& operator|=(TYPE& a, TYPE b) { a = a | b; return a; } \
TYPE& operator&=(TYPE& a, TYPE b) { a = a & b; return a; } \
TYPE& operator^=(TYPE& a, TYPE b) { a = a ^ b; return a; } \
TYPE& operator>>=(TYPE& a, int b) { a >>= b; return a; } \
TYPE& operator<<=(TYPE& a, int b) { a <<= b; return a; }

If the included file is used in multiple .cpp unit, you'll get multiple definition of these functions and it breaks linking.
Thus, the code should read:
#define FLAG_ATTR_IMPL(TYPE, INT_TYPE) \
inline constexpr TYPE operator~ (TYPE a) { return (TYPE)~(INT_TYPE)a; } \
inline constexpr TYPE operator| (TYPE a, TYPE b) { return (TYPE)((INT_TYPE)a | (INT_TYPE)b); } \
inline constexpr TYPE operator& (TYPE a, TYPE b) { return (TYPE)((INT_TYPE)a & (INT_TYPE)b); } \
inline constexpr TYPE operator^ (TYPE a, TYPE b) { return (TYPE)((INT_TYPE)a ^ (INT_TYPE)b); } \
inline constexpr TYPE operator>> (TYPE a, int b) { return (TYPE)((INT_TYPE)a >> b); } \
inline constexpr TYPE operator<< (TYPE a, int b) { return (TYPE)((INT_TYPE)a << b); } \
inline TYPE& operator|=(TYPE& a, TYPE b) { a = a | b; return a; } \
inline TYPE& operator&=(TYPE& a, TYPE b) { a = a & b; return a; } \
inline TYPE& operator^=(TYPE& a, TYPE b) { a = a ^ b; return a; } \
inline TYPE& operator>>=(TYPE& a, int b) { a >>= b; return a; } \
inline TYPE& operator<<=(TYPE& a, int b) { a <<= b; return a; }

Notice that inline here is better than static since the former does what you'd expect, that is, it's replacing the function with the code (and since the used type is an enum, it's a no-op), while the latter create actual functions that might be called and not inlined (and thus, use binary space). inline prevents multiple definition, static does not (it just prevent colliding definitions).

Thanks for reporting the issue. Would you please help provide more details as suggested in the issue template? Information like elf, sdk configuration, backtrace, log outputs, commit ID, hardware and etc. would help us debug further. Thanks. @X-Ryl669

Commit id is in the initial post. The error is generic and not linked with any version, you can't define a function multiple time in a header without it being inline or static.

@X-Ryl669  Thanks for reporting, feel free to reopen if the issue still happens. Thanks.


flac file

Can't open flac file music.

FLAC support works now.
Supported file formats are currently highly depending on Atom and operating system.


Are there any plans for supporting an explicit attention mask?

I've noticed that the Triton implementation supports explicit attention bias, which can be used to support arbitrary mask shapes with large negative values, however is there any planned support for explicit (boolean) masks in the CUDA implementation?
I've noticed some requests for features like off-diagonal attention, but an explicit attention mask would be able to facilitate this and any other arbitrary masking scheme - such as XL-Net, attention sinking, landmark attention - without needing to hardcode the attention scheme and enable it with an argument or seperate python interface.

It seems like the PyTorch attention implementation supports custom attention masks and also uses Flash-Attention 2: https://twitter.com/StasBekman/status/1736083447658225665. Though I'm not sure that passing in an attention mask doesn't cause the op to dispatch to a non-FA2 kernel.

If there's attn mask pytorch does not dispatch to FA2 kernel, rather the kernel from xformers.

Thanks for the info @tridao! Is support for arbitrary attention masks on your roadmap? This would be incredibly useful for some encoder-decoder and prefixLM models. Mandatory thank you for your amazing work!

If there's attn mask pytorch does not dispatch to FA2 kernel, rather the kernel from xformers.

Thanks for this valuable tip. No wonder torch.nn.functional.scaled_dot_product_attention does not bring any speed up in my case

I'm looking for bias mask support too, in FA2 and better FA3. Is there a roadmap for this? Thank you~


Installation Problem

Hello Developers,
I am having the same issue that alice1020 is having. My screen looks the same with a red x on the R Integration toolbox. Any suggestions with how to fix this would be great.
Thanks,
Yannik

Yannik,
In the other thread you mentioned getting past this issue. Did you take any steps beyond re-downloading the package? OK to close this issue?
Thanks,
Shaun


fix: LSDV-5164: Unselect labels with tools

PR fulfills these requirements

[X] Commit message(s) and PR title follows the format [fix|feat|ci|chore|doc]: TICKET-ID: Short description of change made ex. fix: DEV-XXXX: Removed inconsistent code usage causing intermittent errors
[X] Tests for the changes have been added/updated (for bug fixes/features)
[ ] Docs have been added/updated (for bug fixes/features)
[X] Best efforts were made to ensure docs/code are concise and coherent (checked for spelling/grammatical errors, commented out code, debug logs etc.)
[X] Self-reviewed and ran all changes on a local instance (for bug fixes/features)

Change has impacts in these area(s)
(check all that apply)

[ ] Product design
[X] Frontend

Describe the reason for change
LSDV-5164 Ziss had an issue selecting labels that had tools, when one is selected the other is not unselected
What does this fix?
This unselects adjoined labels with tools
What is the new behavior?
This unselects adjoined labels with tools
What is the current behavior?
Adjoined labels with tools will not unselect when a new label is selected
What libraries were added/updated?
none
Does this change affect performance?
no
Does this change affect security?
no
What alternative approaches were there?
could have put this in the image model or in the label model
What feature flags were used to cover this change?
none
Does this PR introduce a breaking change?
(check only one)

[ ] Yes, and covered entirely by feature flag(s)
[ ] Yes, and covered partially by feature flag(s)
[X] No
[ ] Not sure (briefly explain the situation below)

What level of testing was included in the change?
(check all that apply)

[ ] e2e
[ ] integration
[ ] unit

Which logical domain(s) does this change affect?
multiple label types at least one of which has a tool

Codecov Report
Patch coverage: 100.00% and project coverage change: -0.82 :warning:

Comparison is base (cc44fcc) 28.04% compared to head (54eada0) 27.23%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1460      +/-   ##
==========================================
- Coverage   28.04%   27.23%   -0.82%
==========================================
  Files         436      397      -39
  Lines       27387    26124    -1263
  Branches     7275     6984     -291
==========================================
- Hits         7682     7114     -568
+ Misses      16323    15519     -804
- Partials     3382     3491     +109

Impacted Files
Coverage Δ

src/tools/Manager.js
66.31% <100.00%> (+0.35%)
:arrow_up:

... and 65 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

/git merge master


Lua logical operations bug

Both and and or use short-cut evaluation, that is, they evaluate their second operand only when necessary.

http://www.lua.org/pil/3.3.html

It means that this code must work in any case. But it fails when there are no enemies
local enemy = findNearestEnemy()
if enemy and distanceTo(enemy)<10 then
    attack(enemy)
end

@basicer is this an Aether bug or a lua2js bug? I seem to remember a short-circuiting bug, but can't remember where it was.

I believe it's an aether bug that only manifests with yielding enables.
Short circuit or ands work in my lua2js unit teats.
On May 26, 2015 5:36 PM, "Nick Winter"<EMAIL_ADDRESS>wrote:

@basicer https://github.com/basicer is this an Aether bug or a lua2js
bug? I seem to remember a short-circuiting bug, but can't remember where it
was.
—
Reply to this email directly or view it on GitHub
https://github.com/codecombat/codecombat/issues/2788#issuecomment-105704365
.

This is (finally!) fixed in the newest build.


Pass constom arguments to webdriver through config

Sometimes we need to configure webdriver binary (geckodriver/chromedriver etc.). through arguments.
For example path to executable (firefox/chrome) since it may have not standard location.
As I see currently we pass only port which handled internally.
https://github.com/stevepryde/xenon/blob/91fef580287c438b43d3aacf545d5282e95f346f/src/service.rs#L21-L32
We could add a list of specific options or a custom list which may be benefitial
I'll tackle it later if you don't mind and if you consider that's suitable change.
Actually people could create a bash script or something like that and just put a path to it in a config instead of a real binary. It would solve the issue. But it would be necessary for them to deal with arguments which you set up which is not nice (maybe)

Sounds good to me


Update to app-launcher

Update references from the Spring Cloud Stream Module Launcher to the replacement Spring Cloud Data Flow App Launcher
To be merged after #23 and #55 are merged. In the mean time the old snapshot module launcher build will be used.

LGTM, rebased and merged as bed5c03c2109716911dd754351d7e371951f9846


Fix declarations for noImplicitAny

Omitting the return type of fn causes compile errors in consuming projects that import fuse-box with noImplicitAny compiler option.
node_modules/fuse-box/dist/typings/core/FuseBox.d.ts(63,9): error TS7020: Call signature, which lacks return-type annotation, implicitly has an 'any' return type.
node_modules/fuse-box/dist/typings/quantum/plugin/ComputerStatementRule.d.ts(8,13): error TS7020: Call signature, which lacks return-type annotation, implicitly has an 'any' return type.
node_modules/fuse-box/dist/typings/quantum/plugin/ComputerStatementRule.d.ts(14,13): error TS7020: Call signature, which lacks return-type annotation, implicitly has an 'any' return type.
node_modules/fuse-box/dist/typings/quantum/plugin/QuantumCore.d.ts(30,13): error TS7020: Call signature, which lacks return-type annotation, implicitly has an 'any' return type.

@aretecode - the current code does not look at the return value of these functions. If it is going to look at them in the future, I think there needs to be dynamic check for this. Then the types can be changed to something like void | string if string was the new option to indicate that there still could be functions implemented based on the old interface.

@nchanged - thanks for the quick merge, as always :)


Fix subchannel ref_from_weak_ref

Fix https://github.com/grpc/grpc/issues/18008

#18008 is caused by #17879. The return value of GRPC_SUBCHANNEL_REF_FROM_WEAK_REF shouldn't be ignored. After this bug is fixed, GRPC_VERBOSITY=DEBUG GRPC_TRACE=pick_first tools/run_tests/run_tests.py -l c -c tsan -r "concurrent_connectivity_test" -n inf -S can pass >=132 runs. Previously the flakiness is FLAKE: bins/tsan/concurrent_connectivity_test GRPC_POLL_STRATEGY=epollex [1/6 runs flaked].

Also fixed a bug caused by #17513. If we find an existing subchannel in the pool but it's shut down and will be destroyed soon, we shouldn't unref the newly created subchannel. Otherwise, I can imagine that there will be some other use-after-free bug when we want to register the new subchannel in the next iteration.

BTW, I just noticed that #17513 failed to remove the subchannel_index.{cc,h} files.  Can you put together a separate PR to remove them?  Thanks!

Oh, thanks for noting that!


Add Set-Union function

Looks good to me if it works merge it. But with that being said i've never implemented setUnion() So if you want additional feedback but all means seek it out. Goodjob


Feature Request: right-click "Add Step" in CodeTour browser side panel

This context menu seems like a great place for an "Add Step" feature.

Thank you for this suggestion, @dsschnau! We will look into prioritizing this in our backlog.

What would the expected behavior be in this case? To add a new step below the selected step? That's how PowerPoint works if you right-click a slide and select Add New. But I wanted to confirm that this matched your expectations as well! 👍

@lostintangent  That's exactly what I was thinking 🙂


Improvements to Issue template language

Points people to StackOverflow for non bugs / features.

Can one of the admins verify this patch?

I already committed this, thanks.


Refactoring about Link Format

This is a refactoring to try to propose a API to bound Attribute  and Link world, proposing a kind of LWM2M flavored Link.
Some idea are described at :

https://github.com/eclipse/leshan/issues/1118#issuecomment-961184229
https://github.com/eclipse/leshan/issues/1118#issuecomment-964337947

This is an huge PR ... I really don't like to do that :disappointed:...
However I tried to make it with a series of "small" consistent commit.
I will probably squash all of this in 1 commit when integrating this in master.
~There are renaming work but I think this should be done in some other PRs :~
~- Use LwM2mLink for discover~
~- Use Version instead of String for VERSION.~
~- Add notification/properties kind to model.~
~- Add range check~
~- Add applicability check~
~- quoted version invalid by default ?~
~- Make linkparser/attribute parser configurable.~
Finally done in this PR.

@Michal-Wadowski I don't know maybe you want to have a look at this before I integrate it in master ?
(In the other hand, I could understand that you didn't want to dig in a huge PR like this :fearful:)

@sbernard31 unfortunately I have limited time recently, so I can't look at this. I believe all the changes are OK :smile:

I think this is in a mergeable state.
I plan to integrate it in master on next Monday.

This is now integrated in master (commit 30f79d333b3bf8cd2b4e602fc5bb797f481583b5)

Noob here, noob to Java and everything. Somehow many stuff mentioned here is not available to the Leshan-Server-Demo. For example:
org.eclipse.leshan.core.link.attributes does not exist.
package org.eclipse.leshan.core.link.lwm2m.attributes does not exist
I tried clean installing.
Can somebody help me here?
When I go into details, checking out the external libraries. I do not see these files are available as it does in Master. Somehow the Maven builds are not new. If that's the case, how do I build jar directly from the master and use them in the demo server?

Somehow many stuff mentioned here is not available to the Leshan-Server-Demo

Which version are you talking about ? (where/how do you get your "leshan-server-demo" ?
Currently there is no (stable or milestone) release which integrate this. This is available in master.
To build from master : https://github.com/eclipse/leshan#compile-leshan--run-demos
HTH

You can also download the already built jar of master looking at the https://github.com/eclipse/leshan#readme table (leshan v2.0.x)


[Github] refactor: Changed database:create-migration command to not create Package attribute

1. Why is this change necessary?
Currently it is a bit annoying when one is creating plugin migrations, that the Log\Package attribute is added, which is only used for Shopware core migrations.
2. What does this change do, exactly?
Create custom template for plugin migrations.
3. Describe each step to reproduce the issue or behaviour.
Create a plugin migration.
4. Please link to the relevant issues (if any).
-
5. Checklist

[x] I have rebased my changes to remove merge conflicts
[ ] I have written tests and verified that they fail without my change
[x] I have created a changelog file with all necessary information about my changes
[ ] I have written or adjusted the documentation according to my changes
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Imported from Github. Please see: https://github.com/shopware/shopware/pull/4948

[public] Shopware automated response: This issue is linked to the internal issue: NEXT-38700
[created from NEXT-38700, comment 500309]


Installation issue on OpenBSD/amd64 with Chrome

I am hereby reporting an issue, as requested on https://rustwasm.github.io/wasm-pack/installer/ along with the following values:
navigator.platform:
OpenBSD amd64
navigator.appVersion:
5.0 (X11; OpenBSD amd64; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36

hi @niklasha could you provide more info about the failure you see?


Set the project root based on ENV.

Currently, if you set a different rootURL for environment === 'production', ember-service-worker won't respect that. Passing in the environment fixes it.
For example:
https://github.com/yaymukund/example-app-that-breaks-ember-service-worker/blob/master/config/environment.js#L45-L47
https://github.com/yaymukund/example-app-that-breaks-ember-service-worker/blob/master/dist/index.html#L24

Thanks!


Update Readme.md

This seems to really mess up the formatting and we want to keep the install instructions.