renderItem is call for all data items, even if windowSize is specified

Describe the bug
If you pass a large amount of data to carousel & set windowSize to a small value (ex: 3) to limit the amount of items to be pre-rendered. All elements are still rendered.
To Reproduce
import * as React from 'react';
import {Dimensions, Text, View} from 'react-native';
import Carousel from 'react-native-reanimated-carousel';

function Test() {
  const width = Dimensions.get('window').width;
  return (
    <View style={{flex: 1}}>
      <Carousel
        loop
        width={width}
        height={width / 2}
        autoPlay={false}
        data={[...new Array(16).keys()]}
        windowSize={3}
        scrollAnimationDuration={1000}
        onSnapToItem={index => console.log('current index:', index)}
        renderItem={({index}) => {
          console.log('renderItem', index);
          return (
            <View
              style={{
                flex: 1,
                borderWidth: 1,
                justifyContent: 'center',
              }}>
              <Text style={{textAlign: 'center', fontSize: 30}}>{index}</Text>
            </View>
          );
        }}
      />
    </View>
  );
}

export default Test;

set windowSize to 3 & data with a lot of items. Then add "console.log" in renderItem method. You will see that every item are rendered at first launch.
Expected behavior
Only 3 items should rendered on launch & then rendered on snap.
Versions (please complete the following information):

react: v18.0.0
react-native: v0.69.5
react-native-reanimated: v2.14.4
react-native-reanimated-carousel: v3.3.0
react-native-gesture-handler: v2.9.0

Smartphone (please complete the following information):

Device: Android TV (Philips)
OS: Android 11

Hi, bro @dohooo. You created nice library.
I have completely the same issue.
I use this lib to building calendars. I have two. First one I displaying data by month (just usual calendar) and it's rendering as expected according to windowSize prop (it has before 50 items (months) to render). Second one displaying data by weeks and it's rendering all the items each time (easy to test, just put console.log in renderItem method). Week view is much simpler than month but hundreds of rendering items make my test device hanging (even in release build).
Versions:

react: 17.0.2
react-native: 0.68.2
react-native-reanimated: 2.9.0
react-native-reanimated-carousel: 3.3.0
react-native-gesture-handler: 2.9.0

Smartphone

Apple iPhone Xs Max
OS: iOS 16.1.1
Any iOS Simulator
Android is not tested yet

PS: @Aure77 Did you find out the solution?

I found that this render problem happen only on first render. After that, windowSize is taken in account. So as workaround, I return "null" in renderItem only in first render to avoid a lot of JS work (ex: effect) on start.

Thank you. I already found the problem in my code. The renderItem method had external dependency which were causing huge number of re-renders.
It was issue on my code.
The library works nice

If you wouldn't mind, could you elaborate on what you did to fix this? I'm currently running into the same issue.

@tasgon I did small research as well and found out that this lib is not good for big data arrays. I started making the library without this limitation, but it's not ready for now.
This one is good for a small or middle data portion. But if you put into it an array with a length of 1000 or 10000 it will hang and glitch with any optimizations. This library is nice but not for this.

I created a PR to hopefully fix this, but it needs some more work with the unit testing. In the meantime you can use the following patch. I have tested it with all of the use cases I have, but more eyes would be helpful.
diff --git a/src/Carousel.tsx b/src/Carousel.tsx
index 980baac7e27bf8e28c1c21cd5217cf24e5b929ed..b4f19050e05fe34db6487b49a5e88b812feadfca 100644
--- a/src/Carousel.tsx
+++ b/src/Carousel.tsx
@@ -1,5 +1,4 @@
-/* eslint-disable @typescript-eslint/no-use-before-define */
-import React from "react";
+import React, { Fragment } from "react";
 import { StyleSheet } from "react-native";
 import { GestureHandlerRootView } from "react-native-gesture-handler";
 import { runOnJS, useDerivedValue } from "react-native-reanimated";
@@ -13,6 +12,7 @@ import { useOnProgressChange } from "./hooks/useOnProgressChange";
 import { usePropsErrorBoundary } from "./hooks/usePropsErrorBoundary";
 import { useVisibleRanges } from "./hooks/useVisibleRanges";
 import { BaseLayout } from "./layouts/BaseLayout";
+import { LazyView } from "./LazyView";
 import { ScrollViewGesture } from "./ScrollViewGesture";
 import { CTX } from "./store";
 import type { ICarouselInstance, TCarouselProps } from "./types";
@@ -171,9 +171,10 @@ const Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(
           autoFillData,
         });

-        return (
+        const isLazy = !!windowSize;
+
+        const content = (
           <BaseLayout
-            key={i}
             index={i}
             handlerOffset={offsetX}
             visibleRanges={visibleRanges}
@@ -188,6 +189,8 @@ const Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(
             }
           </BaseLayout>
         );
+
+        return isLazy ? <LazyView key={i} index={i} visibleRanges={visibleRanges}>{content}</LazyView> : <Fragment key={i}>{content}</Fragment>;
       },
       [
         loop,
@@ -198,6 +201,7 @@ const Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(
         renderItem,
         layoutConfig,
         customAnimation,
+        windowSize,
       ],
     );

diff --git a/src/LazyView.tsx b/src/LazyView.tsx
index 5bc1cc0ea585992a68530dd5bc72ba3f6779a954..731cecbfd8f2ac5dfb77654275c7f40b479b3b9d 100644
--- a/src/LazyView.tsx
+++ b/src/LazyView.tsx
@@ -1,15 +1,32 @@
-import type { PropsWithChildren } from "react";
-import React from "react";
+import React, { type PropsWithChildren, useState } from "react";
+import { runOnJS, useAnimatedReaction } from "react-native-reanimated";
+
+import type { IVisibleRanges } from "./hooks/useVisibleRanges";

 interface Props {
-  shouldUpdate: boolean
+  index: number
+  visibleRanges: IVisibleRanges
 }

 export const LazyView: React.FC<PropsWithChildren<Props>> = (props) => {
-  const { shouldUpdate, children } = props;
+  const { index, visibleRanges, children } = props;
+
+  const [shouldRender, setShouldRender] = useState<boolean>(false);
+
+  useAnimatedReaction(
+    () => {
+      const { negativeRange, positiveRange } = visibleRanges.value;
+      return (index >= negativeRange[0] && index <= negativeRange[1]) || (index >= positiveRange[0] && index <= positiveRange[1]);
+    },
+    (currentValue, previousValue) => {
+      if (currentValue !== previousValue)
+        runOnJS(setShouldRender)(currentValue);
+    },
+    [index, visibleRanges],
+  );

-  if (!shouldUpdate)
-    return <></>;
+  if (!shouldRender)
+    return null;

   return <>{children}</>;
 };
diff --git a/src/layouts/BaseLayout.tsx b/src/layouts/BaseLayout.tsx
index 5447cef58ce10f09a2e11982ee0b8778159c4c2e..c827bb27733a3f259d670040737f9fc20a7d18f3 100644
--- a/src/layouts/BaseLayout.tsx
+++ b/src/layouts/BaseLayout.tsx
@@ -2,19 +2,15 @@ import React from "react";
 import type { ViewStyle } from "react-native";
 import type { AnimatedStyleProp } from "react-native-reanimated";
 import Animated, {
-  runOnJS,
-  useAnimatedReaction,
   useAnimatedStyle,
   useDerivedValue,
 } from "react-native-reanimated";

 import type { ILayoutConfig } from "./stack";

-import { useCheckMounted } from "../hooks/useCheckMounted";
 import type { IOpts } from "../hooks/useOffsetX";
 import { useOffsetX } from "../hooks/useOffsetX";
 import type { IVisibleRanges } from "../hooks/useVisibleRanges";
-import { LazyView } from "../LazyView";
 import { CTX } from "../store";

 export type TAnimationStyle = (value: number) => AnimatedStyleProp<ViewStyle>;
@@ -28,9 +24,8 @@ export const BaseLayout: React.FC<{
     animationValue: Animated.SharedValue<number>
   }) => React.ReactElement
 }> = (props) => {
-  const mounted = useCheckMounted();
   const { handlerOffset, index, children, visibleRanges, animationStyle }
-  = props;
+        = props;

   const context = React.useContext(CTX);
   const {
@@ -46,7 +41,6 @@ export const BaseLayout: React.FC<{
     },
   } = context;
   const size = vertical ? height : width;
-  const [shouldUpdate, setShouldUpdate] = React.useState(false);
   let offsetXConfig: IOpts = {
     handlerOffset,
     index,
@@ -77,28 +71,6 @@ export const BaseLayout: React.FC<{
     [animationStyle],
   );

-  const updateView = React.useCallback(
-    (negativeRange: number[], positiveRange: number[]) => {
-      mounted.current
-                && setShouldUpdate(
-                  (index >= negativeRange[0] && index <= negativeRange[1])
-                        || (index >= positiveRange[0] && index <= positiveRange[1]),
-                );
-    },
-    [index, mounted],
-  );
-
-  useAnimatedReaction(
-    () => visibleRanges.value,
-    () => {
-      runOnJS(updateView)(
-        visibleRanges.value.negativeRange,
-        visibleRanges.value.positiveRange,
-      );
-    },
-    [visibleRanges.value],
-  );
-
   return (
     <Animated.View
       style={[
@@ -109,16 +81,9 @@ export const BaseLayout: React.FC<{
         },
         animatedStyle,
       ]}
-      /**
-       * We use this testID to know when the carousel item is ready to be tested in test.
-       * e.g.
-       *  The testID of first item will be changed to __CAROUSEL_ITEM_0_READY__ from __CAROUSEL_ITEM_0_NOT_READY__ when the item is ready.
-       * */
-      testID={`__CAROUSEL_ITEM_${index}_${shouldUpdate ? "READY" : "NOT_READY"}__`}
+      testID={`__CAROUSEL_ITEM_${index}`}
     >
-      <LazyView shouldUpdate={shouldUpdate}>
-        {children({ animationValue })}
-      </LazyView>
+      {children({ animationValue })}
     </Animated.View>
   );
 };
diff --git a/src/layouts/ParallaxLayout.tsx b/src/layouts/ParallaxLayout.tsx
index dbc0c858bcf98552ebbe3ee805638e0aeebeafa8..e37984b4fd5f375ce91c18ea1236c22a4f4aaf64 100644
--- a/src/layouts/ParallaxLayout.tsx
+++ b/src/layouts/ParallaxLayout.tsx
@@ -3,8 +3,6 @@ import React from "react";
 import Animated, {
   Extrapolate,
   interpolate,
-  runOnJS,
-  useAnimatedReaction,
   useAnimatedStyle,
 } from "react-native-reanimated";

@@ -12,7 +10,6 @@ import type { ILayoutConfig } from "./parallax";

 import { useOffsetX } from "../hooks/useOffsetX";
 import type { IVisibleRanges } from "../hooks/useVisibleRanges";
-import { LazyView } from "../LazyView";
 import type { IComputedDirectionTypes } from "../types";

 export const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<
@@ -39,8 +36,6 @@ export const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<
     vertical,
   } = props;

-  const [shouldUpdate, setShouldUpdate] = React.useState(false);
-
   const size = props.vertical ? props.height : props.width;

   const x = useOffsetX(
@@ -103,27 +98,6 @@ export const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<
     };
   }, [loop, vertical, parallaxScrollingOffset]);

-  const updateView = React.useCallback(
-    (negativeRange: number[], positiveRange: number[]) => {
-      setShouldUpdate(
-        (index >= negativeRange[0] && index <= negativeRange[1])
-                    || (index >= positiveRange[0] && index <= positiveRange[1]),
-      );
-    },
-    [index],
-  );
-
-  useAnimatedReaction(
-    () => visibleRanges.value,
-    () => {
-      runOnJS(updateView)(
-        visibleRanges.value.negativeRange,
-        visibleRanges.value.positiveRange,
-      );
-    },
-    [visibleRanges.value],
-  );
-
   return (
     <Animated.View
       style={[
@@ -135,7 +109,7 @@ export const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<
         offsetXStyle,
       ]}
     >
-      <LazyView shouldUpdate={shouldUpdate}>{children}</LazyView>
+      {children}
     </Animated.View>
   );
 };

@klandell awesome work thank you very much !


Typo in hasTransparency check in webgldrawer

I was trying to get the webgldrawer to useTwoPassRendering (to work around a flickering line that appears between tiles). I noticed that setting hasTransparency in the tilesource to true should activate the code path, but it wasn't working.
I looked at firstTile in the debugger, and it isn't the tile - it contains a tile:

So the check should be for firstTile.tile.hasTransparency instead of firstTile.hasTransparency

Agree with @iangilman, good catch here! I agree with the fix. As I mentioned in https://github.com/openseadragon/openseadragon/issues/2617#issuecomment-2547307608, I think we might want to provide a formal mechanism to force this behavior (useTwoPassRendering) since it could help address certain (potentially browser-specific) bugs. Would you be up for including such a mechanism in this PR by any chance?

I added useTwoPassRendering to the WebGLDrawer options.  Is that what you are looking for? Do you also want a setter method for it?

Is that what you are looking for?

It is a good start but I think we would also need this option to exist at the viewer level and be passed to the drawer during instantiation.

Do you also want a setter method for it?

I think a setter would be good.

Also, I think the option would better be named forceTwoPassRendering and setting it to true would always use this pathway, and false would fall back to the existing behavior. We should never disable it entirely, which is what useTwoPassRendering: false suggests to me.

Since this appears to be a bug in Chrome (which will be fixed in a few weeks), I'm less interested in adding a forceTwoPassRendering option.  How about I change this MR back to fixing the original typo and we ignore the rest for now?

Since this appears to be a bug in Chrome (which will be fixed in a few weeks), I'm less interested in adding a forceTwoPassRendering option. How about I change this MR back to fixing the original typo and we ignore the rest for now?

Works for me.

Looks like this is ready to merge... agreed @pearcetm?


Where is the mapping between the claim type URI and the JWT identifier?

I need to diagnose an issue where the code is reading claims by URI (i.e. http://schemas.microsoft.com/identity/claims/objectidentifier), but the parsed JWT token shows only the short identifier (oid).
For instance, what is the short name for claim http://schemas.microsoft.com/ws/2008/06/identity/claims/confirmationkey ?
Ideally, the list here should provide the mapping. But if there is query I can do on my tenant to find this, please specify.
Thanks

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

ID: 195c79a3-ccc5-8c6a-233e-95e344a9b4df
Version Independent ID: 401c7557-5817-bbd3-5bd8-8c97ef5a28cc
Content: Customize claims emitted in tokens for a specific app in an Azure AD tenant (Public Preview)
Content Source: articles/active-directory/develop/active-directory-claims-mapping.md
Service: active-directory
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@msfcolombo Thanks for the question! We are investigating and will update you shortly.

@msfcolombo The following doc has a list of the all the JWT identifiers sent in the payload of Azure AD token.
Let me know if this is the list you are looking for?

That one shows only short names. I need the mapping between the claim spec URI (http://schemas/etc) and the short name.

@msfcolombo The claim spec URI format is not used in JWT. It is used only in SAML and can be customized for any custom claims you need.
There is no actual list which has this information.

@msfcolombo We have not heard from you in a while. We will now proceed to close this thread. If you have further questions, please tag me in the comments and I will gladly continue the conversation.

@ManojReddy-MSFT  Some mappings are displayed in this document:

This table lists the claim types as they appear in the ID token. In ASP.NET Core, the OpenID Connect middleware converts some of the claim types when it populates the Claims collection for the user principal:
oid > http://schemas.microsoft.com/identity/claims/objectidentifier
tid > http://schemas.microsoft.com/identity/claims/tenantid
unique_name > http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
upn > http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn

Yet is not clear if that is a complete or partial list. Also, the mentioned "OpenID Connect middleware" is a lousy definition for software component. I think if we can find that software component, we can get the full mapping.

For the record, the full list of mappings are defined in ClaimTypeMapping.cs in the System.IdentityModel.Tokens.Jwt assembly/package:
https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/src/System.IdentityModel.Tokens.Jwt/ClaimTypeMapping.cs

Thanks @colgreen! That's exactly what I was looking for!


Phoenix.rebirth not working on Flutter web

I have been testing on local network and also https protocol network, but it didn't work.
And I can't find any references for Flutter web development. Not sure it is still an early development stage for Flutter web
Error: Unexpected null value.
at Object.throw_ [as throw] (http://localhost:3000/dart_sdk.js:5348:11)
at Object.nullCheck (http://localhost:3000/dart_sdk.js:5681:30)
at Function.rebirth (http://localhost:3000/packages/flutter_phoenix/flutter_phoenix.dart.lib.js:72:12)
at http://localhost:3000/packages/aliments_v2/screens/splash/splash_screen_page.dart.lib.js:83169:41
at Generator.next ()
at http://localhost:3000/dart_sdk.js:39230:33
at _RootZone.runUnary (http://localhost:3000/dart_sdk.js:39087:58)
at _FutureListener.thenAwait.handleValue (http://localhost:3000/dart_sdk.js:34073:29)
at handleValueCallback (http://localhost:3000/dart_sdk.js:34633:49)
at Function._propagateToListeners (http://localhost:3000/dart_sdk.js:34671:17)
at _Future.new.[_completeWithValue] (http://localhost:3000/dart_sdk.js:34513:23)
at async._AsyncCallbackEntry.new.callback (http://localhost:3000/dart_sdk.js:34536:35)
at Object._microtaskLoop (http://localhost:3000/dart_sdk.js:39374:13)
at _startMicrotaskLoop (http://localhost:3000/dart_sdk.js:39380:13)
at http://localhost:3000/dart_sdk.js:34887:9

Same for me. I tested it in a web browser and it does not work.

Hello,
As of today, this plugin has not been tested on Flutter Web and we have no idea if it is compatible or not.
Sorry that we can't help with it for now.

@CallMeSH could you please delete 'web' marker here if it is not tested?

@chengboonrong @mmazurovsky  it seems to work on web if you do the below:
If you save navigator state in a global key such as GlobalKey<NavigatorState> and do await Phoenix.rebirth(navigatorKey.currentState!.context), it seems to work on web (at least on my side).
FYI. I am also using auto-route library and get_it but have excluded it from the above code in case you don't use it.

Future _navigateAndReset() async {
final stackData = s().stackData;
if (stackData
    .where((element) => element.name == AuthRoute.name)
    .isNotEmpty) {
  s<Nav>().popUntil((route) => route.isFirst); // if you came from the root route
} else {
  await s<Nav>().popAndPush(const AuthRoute()); // if you did not come from the root route
}

await Phoenix.rebirth(s<Nav>().navigatorKey.currentState?.context);

}

I am using the same tech stack mind sharing full sample

The unsupported platforms were removed from the pub.dev page for clarity. Closing this issue.


Add formatted field to JSON if possible.

Done more correctly this time.
It's not setup for log4j yet. I've never understood how (or if) log4j supports parameterized log messages. I guess maybe message can be of type ParameterizedMessage? But I think we'd be failing today if that were true.
The most common pattern seems to be,
if logging at this level is enabled:
    log(manually_format(msg))

So maybe in log4j we just always send message as formatted (no params)? We can also leave out formatted on log4j.

This change is

Reviewed 6 of 6 files at r1.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

raven/src/main/java/com/getsentry/raven/event/interfaces/MessageInterface.java, line 120 [r1] (raw file):

        return Objects.equals(message, that.message)
            && Objects.equals(parameters, that.parameters)
            && Objects.equals(formatted, that.formatted);

:thumbsup:

raven/src/main/java/com/getsentry/raven/jul/SentryHandler.java, line 232 [r1] (raw file):

                } catch (MissingFormatArgumentException e) {
                    // use unformatted message
                    formatted = message;

If formatting fails here, I think it might make sense to pass the parameters through but not format the message?
So:

If parameters is null, don't format (null value for formatted parameter to the MessageInterface constructor).
If formatting succeeds (including if the parameter collection is empty — but not null), use that as the formatted constructor parameter to MessageInterface and event message attribute.
If formatting fails (wrong number of params, bad toString call, any other reason), use a null value for the formatted constructor parameter, and use the "raw" message for the event message attribute.

Does this seem reasonable?

raven/src/main/java/com/getsentry/raven/marshaller/json/MessageInterfaceBinding.java, line 44 [r1] (raw file):

        generator.writeEndArray();
        if (messageInterface.getFormatted() != null) {
            generator.writeStringField(FORMATTED_PARAMETER, formatMessage(messageInterface.getFormatted()));

It wasn't introduced here, but the name formatMessage threw me for a second. trimMessage might be better.,

Comments from Reviewable

Review status: 3 of 7 files reviewed at latest revision, 2 unresolved discussions.

raven/src/main/java/com/getsentry/raven/jul/SentryHandler.java, line 232 [r1] (raw file):
Previously, tkaemming (ted kaemming) wrote…
> If formatting fails here, I think it might make sense to pass the parameters through but *not* format the message?
>
> So:
>
> 1. If `parameters` is null, don't format (`null` value for `formatted` parameter to the `MessageInterface` constructor).
> 2. If formatting succeeds (including if the `parameter` collection is empty — but *not* null), use that as the `formatted` constructor parameter to `MessageInterface` and event `message` attribute.
> 3. If formatting fails (wrong number of params, bad `toString` call, any other reason), use a `null` value for the `formatted` constructor parameter, and use the "raw" message for the event `message` attribute.
>
> Does this seem reasonable?

OK, refactored some to handle all of those cases.

I'm not in love with topLevelMessage var/name but I can't think of a cleaner way to handle it right now. We have 3 versions: message (original), formatted, and topLevelMessage which is sort of like "maybe formatted, maybe not".
I'm using a deprecated method, I'm not sure if we actually want it to be deprecated though: https://github.com/getsentry/raven-java/blob/master/raven/src/main/java/com/getsentry/raven/event/interfaces/MessageInterface.java#L40

Without calling that, there will be no sentry.interfaces.Messageadded to the object. Your comment implies we always want to send the interface, right?

raven/src/main/java/com/getsentry/raven/marshaller/json/MessageInterfaceBinding.java, line 44 [r1] (raw file):
Previously, tkaemming (ted kaemming) wrote…
> It wasn't introduced here, but the name `formatMessage` threw me for a second. `trimMessage` might be better.,

Done.

Comments from Reviewable

Reviewed 3 of 3 files at r2, 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

CHANGES, line 6 [r3] (raw file):

- Changed default ``raven.async.queuesize`` from unlimited to 50.
- Add ``formatted`` field to JSON payload if possible.
- Add callback system for exceptions raised while attempting to send events.

Not sure why this is showing as updated in the review…

raven/src/main/java/com/getsentry/raven/jul/SentryHandler.java, line 232 [r1] (raw file):
I think this makes sense.

I'm using a deprecated method, I'm not sure if we actually want it to be deprecated though: https://github.com/getsentry/raven-java/blob/master/raven/src/main/java/com/getsentry/raven/event/interfaces/MessageInterface.java#L40

Hm... yeah, I don't think that should be deprecated any more.

Your comment implies we always want to send the interface, right?

Yeah, I think so. (That is my understanding of how it should work, at least.)

Comments from Reviewable

Review status: 6 of 7 files reviewed at latest revision, 1 unresolved discussion.

CHANGES, line 6 [r3] (raw file):
Previously, tkaemming (ted kaemming) wrote…
> Not sure why this is showing as updated in the review…

Yeah, I moved this up to 7.5.0 regardless, looks fine on Github.

Comments from Reviewable

Reviewed 2 of 2 files at r4.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

raven/src/main/java/com/getsentry/raven/event/interfaces/MessageInterface.java, line 40 [r4] (raw file):

     * <p>
     * While it's technically possible to create a non parametrised message with {@code MessageInterface}, it's
     * recommended to use {@link com.getsentry.raven.event.EventBuilder#withMessage(String)} instead.

I don't think this comment is accurate any longer either.

Comments from Reviewable


请问是否有静态信息的xml schema提供

作者你好，
我们需要导入静态信息到数据库 ，例如一条酒店信息
http://api.elong.com//xml/v2.0/hotel/cn/25/40101025.xml
是否可以提供相对应的xml schema，以便的转成java或者php对象。
PS: 我从您的项目里找到了三个shema文件，是用于处理openapi返回结果的。但静态信息的shema与真正openAPI返回的schema似乎也并不一致。

在xml schema和已经生成的java对象里面已经有静态信息的定义。 php的就没有了。

Celestia Airdrop - Claim Your Free TIA Tokens Now!

Don't Miss Out on Your Share of 60 Million $TIA Tokens!
Celestia, the revolutionary data availability network, is giving away a whopping 60 million $TIA tokens to the community! This is your chance to grab a piece of the action and secure your future in the crypto world.
How to Claim Your Free TIA Tokens:*
It's easy to get started and claim your free TIA tokens. Follow these simple steps:

Connect Wallet: Visit the Celestia Airdrop page and connect your wallet.
Claim: Click the Claim button to receive your tokens.
Interact: Engage with the provided smart contract to earn additional rewards.

Why Wait? Start Earning Today!
With Celestia, the sky's the limit. Don't let this opportunity slip through your fingers. Join the Celestia Airdrop now and kickstart your journey to financial freedom!zqz19891031, @seven1oe, @MohanL, @fengyun501, @thtfive, @coolmaoxin, @yhw-miracle, @NicknamedCoco, @qqqlyx, @aufula, @helloWaterM, @pengzaiguang, @wenxinxian, @jojowhoooo, @LX-Richard, @zhangjinyang, @GuoJingtao-1997, @chenkevin, @daxiajames, @seanxiafan


Use port_id based RRD path as introduced to libreNMS in issue #386.

Signed-off-by: Maximilian Wilhelm<EMAIL_ADDRESS>

:+1:


[BUG] Found more than one migration with version 160 (Docker Compose mysql-victoria version)

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Upon running docker compose up -d I'm getting an error in 'compose-hertzbeat' stating there's multiple migration files.

/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/h2/V160__update_column.sql (SQL)
/opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/mysql/V160__update_column.sql (SQL)

Despite my best efforts to locate these I haven't been able to find them or experiment with removing one of them.
Expected Behavior
Hertzbeat handles the multiple files gracefully, or improved documentation for remediation.
Steps To Reproduce

Put mysql connector mysql-connector-java-8.0.25.jar into ./ext-lib
Create a volume ./ext-lib:/opt/hertzbeat/ext-lib
Remove docker container and image
run docker compose up -d

Environment
HertzBeat version(s): 1.6.0
Windows 10 Pro Version 22H2 (19045.4529)
Docker Desktop 4.31.1 (153621) (newest version available)

Debug logs
2024-07-04 22:25:27.143 [main] ERROR org.springframework.boot.SpringApplication Line:851 - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Found more than one migration with version 160
Offenders:
-> /opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/h2/V160__update_column.sql (SQL)
-> /opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/mysql/V160__update_column.sql (SQL)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:312)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1231)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:949)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
	at org.apache.hertzbeat.manager.Manager.main(Manager.java:44)
Caused by: org.flywaydb.core.api.FlywayException: Found more than one migration with version 160
Offenders:
-> /opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/h2/V160__update_column.sql (SQL)
-> /opt/hertzbeat/file:/opt/hertzbeat/apache-hertzbeat-1.6.0.jar!/db/migration/mysql/V160__update_column.sql (SQL)
	at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.checkForIncompatibilities(CompositeMigrationResolver.java:94)
	at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.doFindAvailableMigrations(CompositeMigrationResolver.java:127)
	at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.resolveMigrations(CompositeMigrationResolver.java:114)
	at org.flywaydb.core.internal.resolver.CompositeMigrationResolver.resolveMigrations(CompositeMigrationResolver.java:120)
	at org.flywaydb.core.internal.info.MigrationInfoServiceImpl.refresh(MigrationInfoServiceImpl.java:86)
	at org.flywaydb.core.internal.command.DbValidate.lambda$validate$0(DbValidate.java:112)
	at org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.java:59)
	at org.flywaydb.core.internal.command.DbValidate.validate(DbValidate.java:105)
	at org.flywaydb.core.Flyway.doValidate(Flyway.java:418)
	at org.flywaydb.core.Flyway.lambda$migrate$0(Flyway.java:162)
	at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:209)
	at org.flywaydb.core.Flyway.migrate(Flyway.java:151)
	at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
	... 18 common frames omitted

Anything else?

version: "3.7"

networks:
  hertzbeat:
    driver: bridge

services:
  mysql:
    image: mysql:8
    container_name: compose-mysql
    hostname: mysql
    restart: always
    healthcheck:
      test: ['CMD-SHELL', 'mysqladmin ping -h <IP_ADDRESS> --silent']
      interval: 3s
      retries: 5
      start_period: 3m
    ports:
      - "3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - ./dbdata/mysqldata:/var/lib/mysql/
      - ./conf/sql:/docker-entrypoint-initdb.d/
    networks:
      - hertzbeat

  victoria-metrics:
    image: victoriametrics/victoria-metrics:v1.95.1
    container_name: compose-victoria-metrics
    hostname: victoria-metrics
    restart: always
    healthcheck:
      test: ["CMD", "wget", "-q", "-O", "-", "http://victoria-metrics:8428/-/healthy"]
      interval: 10s
      retries: 5
      timeout: 5s
      start_period: 30s
    environment:
      TZ: Asia/Shanghai
    ports:
      - "8428"
    volumes:
      - ./dbdata/tsdbdata:/victoria-metrics-data
    networks:
      - hertzbeat

  hertzbeat:
    image: tancloud/hertzbeat
    container_name: compose-hertzbeat
    hostname: hertzbeat
    restart: always
    environment:
      TZ: Asia/Shanghai
      LANG: zh_CN.UTF-8
    depends_on:
      mysql:
        condition: service_healthy
      victoria-metrics:
        condition: service_healthy
    volumes:
      - ./ext-lib:/opt/hertzbeat/ext-lib
      - ./conf/application.yml:/opt/hertzbeat/config/application.yml
      - ./conf/sureness.yml:/opt/hertzbeat/config/sureness.yml
      - ./log:/opt/hertzbeat/logs
      - ./conf/enable-mysql-native-password.cnf:/etc/mysql/conf.d/enable-mysql-native-password.cnf
    ports:
      - "1157:1157"
      - "1158:1158"
    networks:
      - hertzbeat

hi, got it, we will try to reproduce this. Are you deploying a completely new version, or upgrading from an older version?

Are you deploying a completely new version, or upgrading from an older version?

It's a completely new version.

Side note - possibly related - maybe expected: I've logged in to mysql and the hertzbeat database is empty (no tables)
sh-5.1# mysql -uroot -p123456;
Server version: 8.4.1 MySQL Community Server - GPL
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| hertzbeat          |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

mysql> use hertzbeat;
Database changed

mysql> show tables;
Empty set (0.00 sec)

Hi, Can you provide detail content of ./conf/application.yml. I tried to reproduce the bug in your steps, but failed to reproduce. I guess your application.yml miss the flyway configuration. So I deleted the flyway configuration in the latest application.yml and successfully reproduced the bug you mentioned. I hope this helps you. You can provide more information so we can help you solve this problem further.

Hi, Can you provide detail content of ./conf/application.yml. I tried to reproduce the bug in your steps, but failed to reproduce. I guess your application.yml miss the flyway configuration. So I deleted the flyway configuration in the latest application.yml and successfully reproduced the bug you mentioned. I hope this helps you. You can provide more information so we can help you solve this problem further.

Sure, it's was 100% untouched from the 1.6.0 release. I see in the master branch there's numerous changes including flyway. Should I be cloning the master branch instead of using the releases?
Currently though I've added the flyway config from the master branch and HertzBeat seems to have started up ok and I can at least log in.
...
...
...
  mail:
    # Attention: this is mail server address.
    # 请注意此为邮件服务器地址：qq邮箱为 smtp.qq.com qq企业邮箱为 smtp.exmail.qq.com
    host: smtp.qq.com
    username<EMAIL_ADDRESS>    # Attention: this is not email account password, this requires an email authorization code
    # 请注意此非邮箱账户密码 此需填写邮箱授权码
    password: xxqzvuqbnqvbbdac
    port: 465
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory
          ssl:
            enable: true

  # - Added flyway config (from master)
  flyway:
    enabled: true
    clean-disabled: true
    baseline-on-migrate: true
    baseline-version: 1
    locations:
      - classpath:db/migration/{vendor}
  # // Added from master branch

warehouse:
  store:
...
...
...

There were some warnings output by HertzBeat though (below) - are these anything to be concerned about? If not feel free to close this issue, your direction was very much appreciated.
  _   _           _       ____             _
 | | | | ___ _ __| |_ ___| __ )  ___  __ _| |_
 | |_| |/ _ \ '__| __|_  /  _ \ / _ \/ _` | __|        Profile: prod
 |  _  |  __/ |  | |_ / /| |_) |  __/ (_| | |_         Name: hertzbeat10 Port: 1157 Pid: 10
 |_| |_|\___|_|   \__/___|____/ \___|\__,_|\__|        https://hertzbeat.apache.org/

[EL Info]: 2024-07-05 17:26:22.513--ServerSession(1688861863)--EclipseLink, version: Eclipse Persistence Services - 4.0.2.v202306161219
[EL Warning]: 2024-07-05 17:26:22.929--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Key column 'alertDefineId' doesn't exist in table
Error Code: 1072
Call: CREATE INDEX index_alert_define_monitor ON hzb_alert_define_monitor_bind (alertDefineId)
Query: DataModifyQuery(sql="CREATE INDEX index_alert_define_monitor ON hzb_alert_define_monitor_bind (alertDefineId)")
[EL Warning]: 2024-07-05 17:26:23.035--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Duplicate key name 'index_incident_component'
Error Code: 1061
Call: CREATE INDEX index_incident_component ON hzb_status_page_incident_component_bind (component_id)
Query: DataModifyQuery(sql="CREATE INDEX index_incident_component ON hzb_status_page_incident_component_bind (component_id)")
[EL Warning]: 2024-07-05 17:26:23.214--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Key column 'monitorId' doesn't exist in table
Error Code: 1072
Call: CREATE INDEX INDEX_hzb_param_monitorId ON hzb_param (monitorId)
Query: DataModifyQuery(sql="CREATE INDEX INDEX_hzb_param_monitorId ON hzb_param (monitorId)")
[EL Warning]: 2024-07-05 17:26:23.297--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Duplicate key name 'index_tag_monitor'
Error Code: 1061
Call: CREATE INDEX index_tag_monitor ON hzb_tag_monitor_bind (monitor_id)
Query: DataModifyQuery(sql="CREATE INDEX index_tag_monitor ON hzb_tag_monitor_bind (monitor_id)")
[EL Warning]: 2024-07-05 17:26:23.389--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Duplicate key name 'index_collector_monitor'
Error Code: 1061
Call: CREATE INDEX index_collector_monitor ON hzb_collector_monitor_bind (monitor_id)
Query: DataModifyQuery(sql="CREATE INDEX index_collector_monitor ON hzb_collector_monitor_bind (monitor_id)")
[EL Warning]: 2024-07-05 17:26:23.549--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Duplicate key name 'monitor_query_index'
Error Code: 1061
Call: CREATE INDEX monitor_query_index ON hzb_monitor (host)
Query: DataModifyQuery(sql="CREATE INDEX monitor_query_index ON hzb_monitor (host)")
[EL Warning]: 2024-07-05 17:26:23.755--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Key column 'monitorId' doesn't exist in table
Error Code: 1072
Call: CREATE INDEX push_query_index ON hzb_push_metrics (monitorId)
Query: DataModifyQuery(sql="CREATE INDEX push_query_index ON hzb_push_metrics (monitorId)")
[EL Warning]: 2024-07-05 17:26:23.796--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Key column 'monitorId' doesn't exist in table
Error Code: 1072
Call: CREATE INDEX history_query_index ON hzb_history (monitorId)
Query: DataModifyQuery(sql="CREATE INDEX history_query_index ON hzb_history (monitorId)")
[EL Warning]: 2024-07-05 17:26:23.825--ServerSession(1688861863)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 4.0.2.v202306161219): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Key column 'monitorId' doesn't exist in table
Error Code: 1072
Call: ALTER TABLE hzb_param ADD CONSTRAINT UNQ_hzb_param_0 UNIQUE (monitorId, field)
Query: DataModifyQuery(sql="ALTER TABLE hzb_param ADD CONSTRAINT UNQ_hzb_param_0 UNIQUE (monitorId, field)")

Yes, I find this problem in v1.6.0. The configuration file for starting heartzbeat via docker compose has problems. This problem has been fixed in the current master branch. You can cd to script/docker-compose/hertzbeat-mysql-victoria-metrics directory, configure conf/application.yml in this path and add external jar to ext-lib. Then execute docker compose up -d to start the service.


Delete code commented by @gtanzillo

d5bfd100 2007-06-21 14:29:38

@gtanzillo @jrafanie Please review :scissors: :fire:

:heart_eyes: :+1: :shipit:

Seems like a risky change ;-) :+1:

:heart_eyes:


Default settings are not applied

Environment
PowerToys version: 1891bd494c32401e9531a6ff212ae82bcccff837
PowerToy module for which you are reporting the bug (if applicable): Settings

# Steps to reproduce
- Remove settings folder
- Run Powertoys

# Expected behavior
- Default settings should be applied

# Actual behavior
- "0" settings are applied

this should be done now.


FLPATH-467: reset alarm message

What this PR does / why we need it:
Delete alert message when the user completes manual steps
Which issue(s) this PR fixes
Fixes # FLPATH-467
Change type

[ ] New feature
[x] Bug fix
[ ] Unit tests
[ ] Integration tests
[ ] CI
[ ] Documentation
[ ] Auto-generated SDK code

Impacted services

[ ] Workflow Service
[ ] Notification Service

Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.

@RichardW98 PTAL :)


Changing the Makefile to test for all source; code coverage dropping …

…in 3... 2.. 1..

Coverage decreased (-56.3%) to 33.668% when pulling 7d5e0a0800cfa5a4a135ff2b7e062037e9dba970 on sulkaharo:official/dev into e01f98b523d208f1c1753b925419b243c9f698a9 on openaps:dev.

Coverage decreased (-56.3%) to 33.668% when pulling 7d5e0a0800cfa5a4a135ff2b7e062037e9dba970 on sulkaharo:official/dev into e01f98b523d208f1c1753b925419b243c9f698a9 on openaps:dev.


Redirection query string 'redirect'

It seems that on postLink form it removes all parameters of query string we have in URL. Please fix it soon. so we can redirect after login.

So just set redirect in URL array using '?' => ['redirect' => $this->request->query('redirect')] in postLink() call.

#107


Version 0.7

Breaking changes to be fixed:

[ ] #3

Need to figure out whether #9 will be breaking...


Fix to convert electron platform name darwin to macos

Fixes #3567.

test please :) for what the button should say for each os, because tbh i dont think anything is / like thats what comment and uncomment is

I can look into it, but I didn't fix the ^/ on non-mac.

I split out #3578 and I'll make another PR for that.


Update cloudwatch, dynamodb, kinesis, s3, sns, ... to 2.16.86

Updates

software.amazon.awssdk:cloudwatch
software.amazon.awssdk:dynamodb
software.amazon.awssdk:kinesis
software.amazon.awssdk:s3
software.amazon.awssdk:sns
software.amazon.awssdk:sqs
software.amazon.awssdk:sts

from 2.16.81 to 2.16.86.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

labels: library-update, semver-patch

Superseded by #705.


[SP-5918] Backport of PDI-19140 - Problems in Delete Files and Get Su…

…bfolder Names steps when using S3 (8.3 Suite)
@bcostahitachivantara @smmribeiro
cherry-pick of https://github.com/pentaho/pentaho-kettle/pull/7864 and https://github.com/pentaho/pentaho-kettle/pull/7921

:white_check_mark: Build finished in 33m 17s
Build command:
mvn clean verify -B -e -Daudit -amd -pl core,engine

:ok_hand: All tests passed!
Tests run: 4830, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 30m 57s
Build command:
mvn clean verify -B -e -Daudit -amd -pl core,engine

:ok_hand: All tests passed!
Tests run: 4830, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message


Cannot read property 'SpeechToText' of undefined

We try to use this plugin in Cordova application. While running in both browser and Android devices, we got this below error.
ionic.bundle.min.js:150 TypeError: Cannot read property 'SpeechToText' of undefined
at m.$scope.Speech (controllers.js:279)
at m.$scope.speech_menu (controllers.js:259)
at fn (eval at compile (ionic.bundle.min.js:260), :4:229)
at ionic.bundle.min.js:472
at m.$eval (ionic.bundle.min.js:176)
at m.$apply (ionic.bundle.min.js:177)
at HTMLButtonElement. (ionic.bundle.min.js:472)
at Pf (ionic.bundle.min.js:70)
at HTMLButtonElement.d (ionic.bundle.min.js:70)
at n (ionic.bundle.min.js:22)(anonymous function) @ ionic.bundle.min.js:150
Error Screenshot :

Code of particular function :`

We need your immediate assistance to solve this issue.
Looking forward for your response.

I created both ionic and cordova projects just now and add the plugin, they work well. Is there any customized global variable named "WatsonSDK" in your project? or did you build the project firstly to generate the JavaScript files? Or could you please try to remove the window reference and use WatsonSDK.SpeechToText directly? As I know the $window injection is preferred in the ionic framework instead of window. @andaralex

Hi mihui,
Thanks for the update.
Without using window reference it shows error like "WatsonSDK is not defined". I have tried to add this plugin within the existing developed project.
Even I checked there is no customized object in the application.
I dont know , if i have miss anything in installation and configuration part. If possible could u share the demo ionic application for my reference.
Once again , thanks for your instant reply.

Hi Michael,
We are waiting for sample application.

Hi @andaralex , sorry I guess we have a very different timezone, sorry for that.
Please take a look at this repo: https://github.com/CognitiveBuild/WatsonSpeechPluginSample
As there is no issues from my side, I didn't actually create a qualified Sample, but this one should be good enough to prove something you want.
And there is only one button in green, after you click on it, it will invoke WatsonSDK.SpeechToText.recognize without the error you had, but please do not use it in browser because it only supports the mobile device or simulator.

Hi Michael, Yes we are in different time zone and thanks for your sample app. We will check it out this sample app today and update you.

@andaralex Sure, looking forward to it.

Hi Michael,
Yes its working fine in iPhone.

@andaralex thanks, I'm closing this issue now.


Add CLDT to admin domains

fixes #2520.
This will need a dedicated release in the next couple of weeks as we are not close to being ready with v4.3.

@elichad

This will need a dedicated release in the next couple of weeks as we are not close to being ready with v4.3.

Please create a new release (4.2.1?) and a release branch from release/4.2.0 (or main if we don't have it). Eventually this code will have to be merged into both develop and release/4.2.1.

Created release/v4.2.2 from release/v4.2.1.

Thanks @pbanaszkiewicz! I should have time to release this on Wednesday afternoon, so I'll merge it then (unless you want to do the release yourself sooner, which would be fine too)


Provide more info about errors in parsing

https://docs.rs/xot/latest/xot/enum.Error.html
There are a bunch of error variants that just have a string field without any description of what those strings contain.
The errors also lack information about the position. So, in a large enough xml file, it might take a long time to find the error. Just like xmlparser, it would be great if we had a TextPos along with the errors.

Yeah, error reporting is definitely a flaw in Xot for now.
I've recently got to understand thiserror better, and I want to switch to that away from the handwritten struct where I mimicked roxmltree.
In addition, for error information I now have experience with miette, and we could potentially add miette span information. That way it would be also be more easy for a command-line tool that uses Xot to display nice information. But that might be overkill; if we have a text position we'd be good already, but a miette source span is effectively the same with nice facilities in addition.
What do you think?

thiserror is definitely the way to go.
But miette is also a cool idea. I was using color-eyre, but i will shift to miette too if i get to use the span info from xot. It would be really helpful to show specific error lines of xml to users for easier debugging.

Just a note I haven't forgotten about this issue. I do intend to add span information to errors. I think I will forgo adding miette to leave the choice of reporting framework up to the user (miette, ariadne, etc).


[AutoPR-contoso]E2E User Experience of Onboarding Service to CADL

Create to sync https://github.com/Azure/azure-rest-api-specs/pull/22223

/azp run java - contoso - ci


Usage

Could you maybe explain how to use it?

Can you put a requirements.txt ?

I had to futz with it, but I got it working on my windows machine.
-Need at least Python 3.7 (maybe even 3.6 works)
-Install the BeautifulSoup4 module
-command line "pip install beautifulsoup4"
-Install Requests module
-command line "pip install requests"
-From command line...
-"python .../main.py --username xxxxxxx"

Yeah just install dependencies and run it. A note on the arg format would be good though.

Hey guys! I'll make a requirements.txt file! I didn't think people would actually use this! I'll get right on some of these issues! Thanks for bringing up these issues!

The usage has been updated in the README.md.
Thanks for the feedback!


rpc: expose invoice features in decodepayreq

Split off from #3679
Now that all invoices have been migrated to have features vectors (#3693),
we can expose this info via the rpc interface. Invoices generated prior to
this commit will show an empty list, but new invoices will set
lnwire.TLVOnionPayloadOptional as configured in the default
feature.Manager.
Note that for now this feature bit will be ignored by the router, but this will
change once #3679 is finalized.

Needs rebase (just protos).

@Roasbeef rebased


Enabled the Fortran2003 standards.

I looked the following warning/remark messages.
warning #5268: Extension to standard: The text exceeds right hand column allowed on the line.
warning #5462: Global name too long,
warning #6477: Fortran 2003 does not allow this statement or directive.
warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.
warning #6916: Fortran 2003 does not allow this length specification.
warning #7025: This directive is not standard F2003.
warning #7346: The CHARACTER* form of a CHARACTER declaration is an obsolescent feature in Fortran 2003.
warning #7416: Fortran 2003 does not allow this intrinsic procedure.
remark #7712: This variable has not been used.

I enabled compiler checking for conforming the standards and fixed some compiler warnings from Intel compiler,

fixed

5268 (at ARTED/*.f90)
6843 (at src/core/exc_cor.f90)
6916, 7346 (at mpif.h of Intel MPI)

suppressed

6477, 7025

For developers: I think that we should remove unused variables before sending pull requests.

@yhirokawa san and developers, I agree that we should remove unused variables to keep the code clean!


PowerShell script correction

The PowerShell script must be changed at https://docs.microsoft.com/en-us/azure/architecture/networking/prefixes/add-ip-space-peered-vnet#add-the-ip-address-range
foreach loop must be added to run Remove-AzVirtualNetworkPeering on all peerings: foreach ($hubPeering in $hubPeerings) {
Remove-AzVirtualNetworkPeering -VirtualNetworkName $vnethubname -ResourceGroupName $rgname -name $hubPeering.Name -Force }
Sync-AzVirtualNetworkPeering must be added in the foreach loop foreach ($vNetPeering in $hubPeerings) to remove final manual sync step:
Sync-AzVirtualNetworkPeering -Name $peeringName -VirtualNetworkName $vNetName -ResourceGroupName $rgname

Docs Build status updates of commit b970c25:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/networking/prefixes/add-ip-space-peered-vnet-content.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 3c4fe8e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/networking/prefixes/add-ip-space-peered-vnet-content.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

#Sign-Off


fix: invalid url scheme on google login

The type of this PR is: Bugfix

Description
This PR resolves google login issues caused by an invalid URL scheme. I noticed this is broken after we updated our GoogleService-info.plist

PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have tested my changes on iOS and Android.
[x] I have added tests/stories for my changes, or my changes don't require testing/stories, or I have included a link to a separate Jira ticket covering the tests.
[x] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a changelog entry below or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

set the right url scheme on google login - mounir

Android user-facing changes

Dev changes

This PR contains the following changes:

iOS user-facing changes (set the right url scheme on google login - mounir)

  Generated by :no_entry_sign: dangerJS against 5381e9608c5180aa401cbe5941d005b4116cb8e9

#squashongreen


Wecord logs out at (re)boot

Aknowledgements

[X] I have checked that there's no other issue describing the same or
similar problem that I currently have, regardless if it has been
closed or open.

[X] I can confirm that this is not an issue with the Discord website,
but it is a problem specific to the WebCord itself. I have tested
if this bug occurs on Chromium/Chrome or any other Chromium-based
browser that uses unpatched/upstream Chromium engine.

[ ] I have tried running the build from the master branch and it does
not have any fixes implemented according to my issue.

[ ] My issue describes one of the unstable and/or not fully implemented
features.

[ ] I have found a workaround to mitigate or temporarily fix this issue
in affected releases (please write it in Additional context section
below).

Operating System / Platform
🐧 Linux
Operating system architecture
x64 (64-bit Intel/AMD)
Electron version
20.1.0
Application version
v3.8.1
Bug description
When my system reboots webcords logs me out and shows me this screen:

I then need to relog, i have not encoutered this issue with the official discord client for linux.
Additional context
I am on Fedora 36, linux kernel 5.19.4-200.fc36.x86_64, i'm using Gnome 42

Which distributable format were you using? Try native if you've tested Flatpaks, on Fedora RPMs are recommended.

Also I wasn't able to reproduce this, it's definitely not an issue on my side. A similar issue I've encountered when merging between Electron 15 and 16, but it was resolved for quite a long time and I haven't encountered any logouts since then. Since WebCord saves its data normally in $XDG_CONFIG_HOME/WebCord or ~/.config/WebCord and I'm pretty sure Flatpaks normally save their data somewhere else (I'm not sure if this directory is persistent or not) due to sandboxing, my first guess this is not an issue with WebCord, but a problem with Flatpak sandboxing that I am not going to fix as I'm not a maintainer of Flatpak releases.

#247 suggests this issue is with the Flatpaks. This won't be fixed, see #247 for the details why.

@GribouilleVert If you can reproduce this on officially-supported releases, just reply here. I'll reopen this as long as it is reproducible.

Hi,
Thanks for all the help, i've switch from flatpak to the rpm on the release page, unefortunately, the issue is still there :/,
Additionally since i'm on fedora, i've checked se-linux logs but the is nothing.
Do not hesitate to ask for any additional details :)

I still can't reproduce it, my guesses are either WebCord's data is cleaned after each reboot or it is somehow stored in RAM (I don't know much how your .config or XDG_CONFIG_DATA is stored).
I have no clue why logout happens for you, in earlier WebCord version there was a bug with Electron 16 (I believe it hasn't been resolved yet through in newer releases) but it is now workarounded so that should not happen anymore (if it ever happened before in WebCord's stable releases, I believe I've found this bug and prepared WebCord before I moved to next Electron version)...

Huh, could you precise your thoughts about .config and XDG_CONFIG_DATA, maybe i can checks things for you, as far as i am aware, my .config folder is stored on my disk, i use ButterFS so maybe this is an issue (altough i highly doubt it),
The XDG_CONFIG_DATA environment variable doesn't seem to exists on my system, maybe this is causing the issue ? (tried echo $XDG_CONFIG_DATA and it cas blank (fish shell))

Huh, could you precise your thoughts about .config and XDG_CONFIG_DATA

It was that WebCord data is stored in ~/.config/WebCord or in case XDG_CONFIG_DATA is set (AFAIK) WebCord's data will be made in the path this variable stores.

(…) i use ButterFS so maybe this is an issue (altough i highly doubt it),

I've never tested how Electron behaves on brtfs, so I have no clue. I also doubt it, unless it messes up some Linux permission in some way, it should rather be functional. But just to be safe, you might check whenever it behaves correctly in a clean VM on ext4 or maybe just clean enviroment on brtfs.

I have the same problem on a fresh Arch Linux install (using the official rpm). Given that it doesn't forget everything (i.e. it still remembers what account was logged in, since it asks for reauthentication) I wonder if and how the auth token is stored differently from the rest. My system also runs on btrfs, but I don't have problems with other Electron based apps forgetting data.

I've tried on fresh installs in VMs (ext4 and btrfs) and same issue ! Also, i use EFI, maybe this causes issues, altough i doubt it.

I also saw this issue, but maybe it's an issue with your .config getting messed up? I just moved ~/.config/Webcord elsewhere (so the app can recreate the config folder) and the issue went away for me.

I also saw this issue (using the AUR package webcord), but maybe it's an issue with your .config getting messed up? I just moved ~/.config/Webcord elsewhere (so the app can recreate the config folder) and the issue went away for me.

It could be that, but I'm pretty sure that if he tested WebCord for like the three times in the row in VM on official releases (runs with Flatpaks shouldn't count).

I have the same problem on a fresh Arch Linux install (using the official rpm).

You mean Fedora? Arch got webcord or webcord-* packages, where webcord-git is the only package maintained by me right now.
Also, does it reproduce only on the reboot or when app is restarted (not hidden to the tray)?

I wonder if and how the auth token is stored differently from the rest.

As of that, it's not stored differently from anything, AFAIK Discord stores all data in the localStorage. And as long this is a thing:

I've tried to qui[t] it from the tray and then launch it again, and i'm still connected. (...)

…I don't think this is a bug with the Electron. I would suspect something's messed up once the logout or login occurs. I definitely can't fix it myself if WebCord works fine after it is being relaunched. I can't also reproduce this issue at all.

I also saw this issue (using the AUR package webcord), but maybe it's an issue with your .config getting messed up? I just moved ~/.config/Webcord elsewhere (so the app can recreate the config folder) and the issue went away for me.

I can confirm deleting my ~/.config/Webcord folder made the issue dissappear for me as well.

Reopening the issue ticket since it seems that this has never been fixed...

I'm having the same issue on Arch (aur/webcord).
Deleted ~/.config/Webcord but it didn't help, still getting logged out on every restart.


Any way to specify gradient colors that don't compress?

For instance, i have a progress bar that i want to go from blue to yellow to red. I specify _progressBar.progressTintColors = @[[UIColor bluecolor], [UIColor yellowColor], [UIColor redColor]] and then set it to 50%.
I get this:
|-blue.yellow.red-----------|

When I'd really like it to be:
|-blue.....yellow------------|

So the gradient colors are more of an indication of where the progress bar is at... you wouldn't see red at 50%, only blue to yellow. at 75% you'd see blue, yellow, and half of the gradient of yellow to red.
Does that make sense? Wondering if that's possible with the current codebase and if so, how would I achieve it?

Hi Mark,
Unfortunately this is the "normal" behaviour.
I had already thought about adding this feature, but I never took the time to do it yet. I'll add this feature asap.
Thank you

Thanks @yannickl. I wound up looking at a different component that does this, however, I like that this one is a lot more comprehensive. I've already submitted some pull requests to fix a few things and add some features to the other component. https://www.cocoacontrols.com/controls/amgprogressview

Oh nice! I just looked at the commit and it looks great! I'll try it out and let you know how t goes!

Thank you for the compliment. :+1:
Please close the issue if everything is ok.


Training Code

Thanks for your fascinating work , Can't wait for the training code .

Can't wait for the training code +1


Remove connected-react-router

Is your feature request related to a problem? Please describe.
Not really a problem. It just seems that it's not being used anywhere.
Describe the solution you'd like
Just remove everything related to connected-react-router

Sure makes sense if you're not using the routing redux state anywhere.


Create a landing page for first contributions

A landing page for First contributions will bring a better look to the project
🐞 Problem
Jumping directly in to project readme is not cool enough.
🎯 Goal
Create a landing page. This will help in working on additional features in the app too.

@Roshanjossey  Anyone working on this issue?

@Balaji2198: This is almost done. You can take a look at the landing page by going to https://roshanjossey.github.io/first-contributions/
Feel free to suggest anything that can improve the landing page.

Is this the only feature we need on the landing page? Am thinking it should have quotes from guys that have contributed to the project. More like a vote of thanks to this impressive idea

@opiumated: We could have a section for that.

the link returns a 404 for me at least

@pedrorijo91, landing page is hosted on GitHub pages. Might be a problem that happened on their end.
https://roshanjossey.github.io/first-contributions/
Now works for me.

@Roshanjossey Landing Page is not responsive.

@rishabh09, Let's fix that shall we?

@Roshanjossey Can I open this as an issue and start fixing it.

@rishabh09, yeahbsolutely

Closing as this is done


Improve throughput of persisting in-Alluxio files to S3

Since in-Alluxio files have been split into blocks, the blocks can be uploaded to S3 concurrently using multipart uploading.
The current implementation of S3AOutputStream and S3ALowLevelOutputStream will first write the data into a local temporary file, then upload the local file to S3.
Since the blocks are already in workers' storage directories, there should be more efficient ways to directly transfer the blocks to the sockets for uploading to S3 in kernel space without copying to user space.

this was done for efficiency and safety


Updated contact section

Request for Approval of Pull Request #268 - Updated Contact Section
Dear Project Admin,
I hope this message finds you well. I have made updates to the contact section of our project, as detailed in pull request #268. The following fields have been added with their corresponding names for better form handling:

Name: name
Email: email
Phone Number: phone
City: city
Subject: subject
Message: message
Map: 'map'

but i am having some error when i updated the code this is showing some black dot on it so i will solve the error as soon as possible
These changes enhance the functionality and usability of the contact form, ensuring that all necessary information is collected during submissions.
I kindly request your approval for this pull request. Your feedback is always appreciated!
Thank you for your attention.


Fix attribute errors and filing csvs

Overview
All of the content-dispositions when looking for filenames as of late have been either of type str or None. So the decode() method that has been in use has been raising AttributeErrors. This branch accounts for the content-disposition being a string, and passes the filename found within.
After resolving that error, jq had issues parsing out the files attributes of objects in filing.json to a csv since they were nested objects. This branch also flattens out that object with a make command to get the csv working.

Closes #12

Testing Instructions

Run make lm20.db or look at the checks performed on this PR
Confirm that everything in the "build database" portion runs without the str attribute error
Confirm that the data in the db is what we expect

This still errors out when the content-disposition is None, but the command would still continue to run. I imagine this can return something more useful in that case, but was unsure what that would be since no content would mean no file. What do you think @fgregg?

awesome, ty for those suggestions i've got them in!


CanCOGeN template: expand the CV terms for column sample collected by

The column sample collected by has changed to CV term list from free text.
Virusseq portal (https://virusseq-dataportal.ca/) has accepted data with following values which are NOT in the CV term list:

Unity Health Toronto
Queen’s University / Kingston Health Sciences Centre

Could you please add the above values into the CV terms list?
Thanks.

Thank you for letting us know.
The sample collected by term list has now been updated to include both the aforementioned values.
These changes will be reflected in the next release.

The requested terms are now available in the v0.13.29 release.


module not found

how do i run  the bot? when i run bot, it state module not found csv2 follow by mss

Install all required modules before running the bot.
There is no csv2 module, it's cv2 (opencv-python) - https://pypi.org/project/opencv-python/


Database DDL & Migration Support for plugins

Is your feature request related to a problem? Please describe
Apache Answer should support a way for plugin devs to have DDL and migration specific to their plugins / code.
There are plenty of use cases for this.
Most basic use cases is their tables would act as meta for their plugins.
Describe the solution you'd like
Apache Answer should support a way for plugin devs to have DDL and migration specific to their plugins / code.
Describe alternatives you've considered
Alternative is plugin having its own database. This idea sucks when you have use cases of joins between answer db to plugin db.

@LinkinStars share ETA of future.
Why future is not today?

@LinkinStars I think my question was conveyed wrongly. My question is "why are planning this for future but not today".
What I mean by this is "Plugin having DDL and Migration support / capabilities"
Understand, Even converse is true. There is no plugin today because answer doesn't support that.
Here are list of plugins that can be created, Just as Examples

very basic Plugin is for having some additional content. AI copilot for moderators, AI Copilot for users etc
A plugin for exposing some additional stats etc. where you store aggregated results for faster fetch

Existing search plugins also come under this category, but as of today the unique value prop of those is underlying search Databases.
Without need, is request would haven't been raised in first place.

All data is sourced from the answer itself, including the plugin's configuration information.

This causes additional work on answer wrt to plugin needs. That's completely unwanted and avoidable.

@LinkinStars Not exactly true. I have updated Suggestion solution in feature card.

Firstly, you want the plugin to have the ability to manipulate database table structures, such as modifying existing table structures, right?

Right words or answer for this, plugin should have support creating its own tables, extending existing tables (joins are expensive), Adding Indexes (for performance optimization wrt plugin use cases). I support you wrt modifying existing tables (there is a difference between extending tables (adding new column) and modification (rename and dropping column).
When it comes to data Access - (Migration tool ideally should take care of assigning ownership, like who created that able), ownership of columns (who added column)
Rights for owners module would be different to others. Modules which has ownership - has full control and other modules will only by having read-only access.
Examples of modules - incubator-answer, google-connector, basic-connector, Slack Notification ..... etc
Building everything in one go would be tough, complicated and uncertainly do exits. For now, plugins having their migration sequence https://github.com/apache/incubator-answer/blob/main/internal/migrations/migrations.go and DB access would be a starting point.


Should sspi_SecBufferFree() zero set the buffer?

Wondering if it would be worth having sspi_SecBufferFree() reset the buffer with 0's before freeing it.  This could help ensure that sspi/ntlm/nla buffer data is not left around in memory.

Closing due to lack of activity.
Reopen/create a new issue if still relevant.


Add multiple selection feature to DropdownButton

Add feature to DropdownButton that allows multiple selections to be made in a similar fashion as Angular Material.
This implementation uses an additional argument, "values", which contains the list of selected values. The Angular and other implementations just use the "value" argument to hold the list along with a Boolean argument "multiple".  This feature can be changed to the "value" / "multiple" with some help with Dart typing.
Note that this implementation only allows a single value to be toggled before the dropdown is closed. A "Close" button could be added to the bottom of the selection list to allow multiple changes to be made but I'm not sure if that work flow is actually better on mobile.
I will add tests and address other requirements if this implementation is acceptable.
Addresses issue #22927

Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.

I signed it

Sorry to have taken so long to get to this. It looks like you've put a non-trivial amount of effort into this contribution!
We'd prefer to support creating multiple selection menus like this by making sure that it's moderately straightforward to do with the existing dropdown button classes. It looks like it's already possible to do something like what was done here by creating a menu with checkbox items whose values toggle when selected: https://gist.github.com/HansMuller/a46c847cd38c9394405975a2b95ace81

I'm going to close this because https://github.com/flutter/flutter/pull/25955#issuecomment-466215221
Sorry about that.

@HansMuller The code gist you suggested doesn't work correctly, it closes the dropdown everytime you select an item. Can you reevaluate merging this PR because right now there is no proper dropdown multiple selection support in Flutter


Lazy plugin manager

How can I use your plugin with the help of lazy.nvim?
I tried to install the plugin in the way that I send below, but I encountered a problem.
{
"tzachar/cmp-tabnine", cmd = "./install.sh"
		dependencies = "hrsh7th/nvim-cmp",
}

The method you wrote in the readme to use lazy should be modified as follows:
{
	"hrsh7th/nvim-cmp",
	event = "InsertEnter",
	dependencies = {
		{
		"tzachar/cmp-tabnine", build = "./install.sh" },
		...
		...
		},
	config = function()
	...
	...
	end,
}

https://github.com/Pakrohk-DotFiles/NvPak/blob/main/lua/plugins.lua#"hrsh7th/nvim-cmp"

Why?
I see no need to supply instructions on how to enable cmp with lazy.

Why?
I see no need to supply instructions on how to enable cmp with lazy.

If cmp is not activated correctly, tabnine will also not work properly, please note that this is a tabnine plugin for cmp, not an independent tabnine plugin for neovim.
The way you currently write in readme it cannot enable cmp and tabnine properly.
My intention was only to help.

I don't think I should explain how to install cmp on this repo.
And I don't see any issues with the current installation instructions; The instructions show exactly how to install this plugin. Installing cmp is the plugin user's responsibility, and they should consult cmp documentation -- which might change.

I don't think I should explain how to install cmp on this repo.
And I don't see any issues with the current installation instructions; The instructions show exactly how to install this plugin. Installing cmp is the plugin user's responsibility, and they should consult cmp documentation -- which might change.

My friend, this is related to the working method of lazy.nvim, not cmp activation, you should use cpm as a prerequisite in the method you wrote, but lazy.nvim does not behave in this way, and this causes problems.
Please try to activate tabnine with the method you wrote, you will see for yourself why I sent this to you.
I think we have talked about it enough.


kbfs folder location?

I cannot access /keybase (permission denied) or any folders within it (such as /keybase/public/davidneedham). I notice that I'm able to get to /Volumes/Keybase (davidneedham)/public/davidneedham, but that's not what your help article suggests I should get (https://keybase.io/docs/kbfs). Is the doc out of date?
my log id: d2f1b938ac8257f19ce0611c

We resolved this via chat.  The solution was:
keybase uninstall -c redirector
keybase install -c redirector

There was some weirdness with a company policy around certain apps that may have contributed to the problem.


File Issue 🍳

Issue in command-line-tool saving files ( token.txt and id.txt )

Temporary fix done

Fixed


Automation to validate RSS feed

I keep accidentally breaking the RSS feed and not realizing it until someone reports a problem.

Can confirm that currently RSS feed is broken. Thunderbird checks if the feed is valid on validator.w3.org and I think you might be able to find a clue there.

Closed in 42f9b8f3c7b97fd091220e60c2e87a75da6449e0


add a 'help' overlay that contains a very brief description and all the shortcuts

Ctrl-H in less for some inspiration


Align edit and delete buttons

Delete and edit buttons are now aligned. #31

Thank you for your invaluable contributions to our open-source project! 🚀 If you like our project, please consider to start ⭐ the repo.


Error in account_options during server installation

Recently downloaded and installed a local bipio server instance. The server started up correctly and visiting localhost:5000/status indicated that all connections were working. However, I failed to mount the server on bip.io. Likewise, requests to localhost:5000/login failed, as well as attempts to manually POST bips to the server via a REST client.
A bit of digging revealed that the server was complaining about a missing entry in the account_options collection on the bipio database. The collection was completely empty. A reinstall of the server allowed me to catch these errors during installation:
Trace: Caught exception: TypeError: this.getAccountInfo(...).testDomain is not a function
TypeError: this.getAccountInfo(...).testDomain is not a function
at model.AccountOption.entitySchema.bip_domain_id.validate.validator (/home/mark/bipio/src/models/account_option.js:150:43)
at /home/mark/bipio/node_modules/mongoose/lib/schematype.js:686:19
at Array.forEach (native)
at SchemaString.SchemaType.doValidate (/home/mark/bipio/node_modules/mongoose/lib/schematype.js:667:19)
at /home/mark/bipio/node_modules/mongoose/lib/document.js:1133:9
at doNTCallback0 (node.js:419:9)
at process._tickDomainCallback (node.js:389:13)
at Object.app.logmessage (/home/mark/bipio/src/bootstrap.js:192:15)
at process. (/home/mark/bipio/src/bootstrap.js:255:9)
at emitOne (events.js:82:20)
at process.emit (events.js:169:7)
at process._fatalException (node.js:223:26)
Trace: WORKER:PID:5378:1453918898640:Caught exception: TypeError: this.getAccountInfo(...).testDomain is not a function
TypeError: this.getAccountInfo(...).testDomain is not a function
at model.AccountOption.entitySchema.bip_domain_id.validate.validator (/home/mark/bipio/src/models/account_option.js:150:43)
at /home/mark/bipio/node_modules/mongoose/lib/schematype.js:686:19
at Array.forEach (native)
at SchemaString.SchemaType.doValidate (/home/mark/bipio/node_modules/mongoose/lib/schematype.js:667:19)
at /home/mark/bipio/node_modules/mongoose/lib/document.js:1133:9
at doNTCallback0 (node.js:419:9)
at process._tickDomainCallback (node.js:389:13)
at Object.app.logmessage (/home/mark/bipio/src/bootstrap.js:210:14)
at process. (/home/mark/bipio/src/bootstrap.js:255:9)
at emitOne (events.js:82:20)
at process.emit (events.js:169:7)
at process._fatalException (node.js:223:26)
This appears to be an issue with the commit from December 15th. Thank you in advance.

Hi,
I have the same issue as well, so I'm unable to setup bipio server :(
Can anyone have a look at this issue? It's been 3 months already since the previous guy posted.
Thanks!

I fixed this issue by rolling back the changes happened on 15 Dec 2015 on src/models/account_option.js file
https://github.com/bipio-server/bipio/commit/00736141eedd62a370b0a6db52cc5b4bb2de464b


Remanining blocking work to merge docs-v2 branch as official page

[ ] Review all the pages to double-check against incorrect information
[ ] Look for any in-progress pages

Are there any currently in-progress pages?


Added optional headers to all responses

This allows optional headers to be passed with any response. Sometimes the response needs to include Auth tokens or additional headers, even with Error or Collection responses.

Tank you for your PR. Everything look good.
Can you rebase your branch from master and squash your commits in a single one.

@earnaway the best way to prevent force push auto close is to create a PR from a branch other than master instead.

Sorry @maximebeaudoin - think I tried resetting the branch and must've closed it. I just tried again and it created a new PR. If the new PR isn't right, I'll do one from a branch other than master.


Can I set typeface font in GVRTextViewSceneObject class?

How do I set typeface font in GVRTextViewSceneObject?
textView.setTypeface();```

Android example:

```TextView textView = new TextView();
Typeface myTypeface = Typeface.createFromAsset(context.getAssets(), "fonts/futura-condensed-normal.ttf");
textView.setTypeFace(myTypeface);```

Currently you cannot as GVRTextViewSceneObject uses a TextView internally that isn't fully accessible besides a few helper methods. (See:  https://github.com/Samsung/GearVRf/blob/master/GVRf/Framework/src/org/gearvrf/scene_objects/GVRTextViewSceneObject.java)
setTypeFace would be a useful one to add, or a method that returns the TextView so one could call any of it's methods.

I think you can do that since at the beginning I created this type of scene object with just basic APIs. You can add whatever is available from TextView.


version up

What is the necessity of this update? What is updated?
version up for fixing version upload to Maven Repository
How did you do the test? (Not required for updating documents)

LGTM


Some urls come with 403 response

I see, python3-saml is using urllib  in get_metadata classmethod of OneLogin_Saml2_IdPMetadataParser class.
Some urls are going fine through this method and we can access data in our code.
However, we have problems with some public urls and I do not see the reason denying it. Somewhy urllib , that you're using, is not accepting that url without User-Agent header. With User-Agent it works. It can be due to ModSecurity in urllib, where it checks if the request comes from a bot.  But the url is parsed fine with curl and requests, however.
Could you please catch such 403 errors in some way, so we get this fixed on our side?
My example that worked:
request = Request('some-url.com', headers={'User-Agent': 'Mozilla/5.0'})

response = urlopen(req)

Thanks!

Hi @galynazholtkevych. May I know how you got it working so I can get a hotfix going? Did you change this snippet?
`class OneLogin_Saml2_IdPMetadataParser(object):
"""
A class that contain methods related to obtaining and parsing metadata from IdP
This class does not validate in any way the URL that is introduced,
make sure to validate it properly before use it in a get_metadata method.
"""

@classmethod
def get_metadata(cls, url, validate_cert=True, timeout=None):`

@tongshen-yong  I actually was going to create a pr to your repository, was going to work on that, but if you can help with hotfix, it will be faster for sure .
I supposed to modify parse_remote and get_metadata  classmethods like below:

parse_remote:
`
@classmethod
def parse_remote(cls, url, validate_cert=True, entity_id=None, timeout=None, **kwargs):
"""
Gets the metadata XML from the provided URL and parse it, returning a dict with extracted data
:param url: Url where the XML of the Identity Provider Metadata is published.
:type url: string
 :param validate_cert: If the url uses https schema, that flag enables or not the verification of the associated certificate.
 :type validate_cert: bool

 :param entity_id: Specify the entity_id of the EntityDescriptor that you want to parse a XML
                   that contains multiple EntityDescriptor.
 :type entity_id: string

 :param timeout: Timeout in seconds to wait for metadata response
 :type timeout: int

 :returns: settings dict with extracted data
 :rtype: dict
 """
 idp_metadata = cls.get_metadata(url, validate_cert, timeout, headers=kwargs.pop('headers', None))
 return cls.parse(idp_metadata, entity_id=entity_id, **kwargs)

`
^^  to pass headers to get_metadata method, because we  use parse_remote method to get the url data, basically it is one line of change passing headers to get_metadata.
And

get_metadata

`
@classmethod
def get_metadata(cls, url, validate_cert=True, timeout=None, headers=None):
"""
Gets the metadata XML from the provided URL
:param url: Url where the XML of the Identity Provider Metadata is published.
:type url: string
    :param validate_cert: If the url uses https schema, that flag enables or not the verification of the associated certificate.
    :type validate_cert: bool

    :param timeout: Timeout in seconds to wait for metadata response
    :type timeout: int

    :returns: metadata XML
    :rtype: string
    """
    valid = False
    request = urllib2.Request(url, headers=headers or {})
    if validate_cert:
        response = urllib2.urlopen(request, timeout=timeout)
    else:
        ctx = ssl.create_default_context()
        ctx.check_hostname = False
        ctx.verify_mode = ssl.CERT_NONE
        response = urllib2.urlopen(request, context=ctx, timeout=timeout)

`
Here changed: param and docstring added named headers, and what is the most important that worked - I wrapped intp request url and headers and passed Request object to urlopen.
Thanks! Notify me please, if any help is needed, including pr making.
Have a nice day!
Regards, Halyna

So please, welcome to review my pr to python3-saml
https://github.com/SAML-Toolkits/python3-saml/pull/366

PR merged, thanks for contributing.

@pitbulk thank you! Please, may I know , when the new release with this fix will be published?

+1 would be great to have a release as I'm also running into issues with this, thanks 🙏    @pitbulk