[ go_router ] can't push page on the shell without key even though the page is outside shellroute

Steps to Reproduce

Execute flutter run on the code sample
navigate as follow

push /b
go back
go to /c
push /d
push /d/e

Expected results:

After step i the page should be on top of the shell route
In step v we should be able to go to /d/e

Actual results:

After step i the page is inside the shell
In step v we can't go to /d/e

Code sample
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';

void main() => runApp(const ProviderScope(child: MyApp()));

final GlobalKey<NavigatorState> _rootNavigatorKey =
    GlobalKey<NavigatorState>(debugLabel: 'root');
final GlobalKey<NavigatorState> _shellNavigatorKey =
    GlobalKey<NavigatorState>(debugLabel: 'shell');

final routesProvider = Provider<GoRouter>(
  (ref) {
    return GoRouter(
      debugLogDiagnostics: true,
      initialLocation: '/a',
      navigatorKey: _rootNavigatorKey,
      routes: [
        ShellRoute(
          navigatorKey: _shellNavigatorKey,
          builder: (context, state, child) => ShellWidget(child: child),
          routes: [
            GoRoute(
              path: '/a',
              builder: (context, state) => const DummyScreen(
                color: Colors.green,
                text: '/b',
              ),
            ),
            GoRoute(
              path: '/c',
              builder: (context, state) => const DummyScreen(
                color: Colors.green,
                text: '/d',
              ),
            ),
          ],
        ),
        GoRoute(
          path: '/d',
          parentNavigatorKey: _rootNavigatorKey,
          builder: (context, state) => const DummyScreen(
            color: Colors.red,
            text: '/d/e',
          ),
          routes: [
            GoRoute(
              // can't push this page at all
              path: 'e',
              builder: (context, state) => const DummyScreen(
                color: Colors.red,
                text: '/c',
              ),
            ),
          ],
        ),
        GoRoute(
          // can't push this page on the shell without key
          // even though it is outside of shell route
          path: '/b',
          builder: (context, state) => const DummyScreen(
            color: Colors.green,
            text: '',
          ),
        ),
      ],
    );
  },
);

class ShellWidget extends StatefulWidget {
  const ShellWidget({
    super.key,
    required this.child,
  });
  final Widget child;

  @override
  State<ShellWidget> createState() => _ShellWidgetState();
}

class _ShellWidgetState extends State<ShellWidget> {
  int index = 0;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Hello")),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: index,
        onTap: (value) {
          setState(() {
            index = value;
            switch (value) {
              case 0:
                context.go('/a');
                break;
              case 1:
                context.go('/c');
                break;
              default:
            }
          });
        },
        items: const [
          BottomNavigationBarItem(
            icon: Icon(
              Icons.access_alarm,
            ),
            label: 'a',
          ),
          BottomNavigationBarItem(
            icon: Icon(
              Icons.access_alarm,
            ),
            label: 'c',
          ),
        ],
      ),
      body: widget.child,
    );
  }
}

class MyApp extends ConsumerWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final routes = ref.watch(routesProvider);
    return MaterialApp.router(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      routeInformationParser: routes.routeInformationParser,
      routeInformationProvider: routes.routeInformationProvider,
      routerDelegate: routes.routerDelegate,
    );
  }
}

class DummyScreen extends StatelessWidget {
  const DummyScreen({
    super.key,
    required this.color,
    required this.text,
  });
  final Color color;
  final String text;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(GoRouter.of(context).location)),
      backgroundColor: color,
      body: Center(
        child: ElevatedButton(
          onPressed: text.isNotEmpty ? () => context.push(text) : null,
          child: Text(text),
        ),
      ),
    );
  }
}

Logs
- go_router debugLogDiagnostics

[GoRouter] Full paths for routes:
             => /d
             =>   /d/e
             => /b
[GoRouter] setting initial location /a
[GoRouter] Using MaterialApp configuration
[GoRouter] pushing /b
[GoRouter] going to /c
[GoRouter] pushing /d
[GoRouter] pushing /d/e

% flutter analyze
Analyzing bug...
No issues found! (ran in 1.4s)

% flutter doctor -v
[✓] Flutter (Channel beta, 3.4.0-17.2.pre, on macOS 12.6 21G115 darwin-arm, locale en-IN)
    • Flutter version 3.4.0-17.2.pre on channel beta at /Users/padya/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d6260f127f (2 weeks ago), 2022-09-21 13:33:49 -0500
    • Engine revision 3950c6140a
    • Dart version 2.19.0 (build 2.19.0-146.2.beta)
    • DevTools version 2.16.0

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

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

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

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

[✓] IntelliJ IDEA Community Edition (version 2022.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.72.0-insider)
    • VS Code at /Applications/Visual Studio Code - Insiders.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.6 21G115 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 106.0.5249.103

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

• No issues found!

 video
https://user-images.githubusercontent.com/58727124/194216074-9c3fde61-54f3-4545-9968-ae7676cdf9cb.mov

<!--
      Consider also attaching screenshots and/or videos to better
      illustrate the issue.
<pre>  You can upload them directly on GitHub.
  Beware that video file size is limited to 10MB.

-->

@DattatreyaReddy Thanks for the report. From the given code sample, I see that you are using flutter_riverpod which is third party package.
Does the reported behavior occur without using that package ? There's a recent proposal to add redirection to go_router using flutter_riverpod https://github.com/flutter/flutter/issues/112915, so please confirm if the same behavior occurs only with go_router package. If so, please provide updated code sample.

Hi @darshankawar,
Thank you for the response.
Answering your question, Yes, the behavior is the same without flutter_riverpod.

Here is the updated code sample.

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

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

final GlobalKey<NavigatorState> _rootNavigatorKey =
    GlobalKey<NavigatorState>(debugLabel: 'root');
final GlobalKey<NavigatorState> _shellNavigatorKey =
    GlobalKey<NavigatorState>(debugLabel: 'shell');

class ShellWidget extends StatefulWidget {
  const ShellWidget({
    super.key,
    required this.child,
  });
  final Widget child;

  @override
  State<ShellWidget> createState() => _ShellWidgetState();
}

class _ShellWidgetState extends State<ShellWidget> {
  int index = 0;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Hello")),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: index,
        onTap: (value) {
          setState(() {
            index = value;
            switch (value) {
              case 0:
                context.go('/a');
                break;
              case 1:
                context.go('/c');
                break;
              default:
            }
          });
        },
        items: const [
          BottomNavigationBarItem(
            icon: Icon(
              Icons.access_alarm,
            ),
            label: 'a',
          ),
          BottomNavigationBarItem(
            icon: Icon(
              Icons.access_alarm,
            ),
            label: 'c',
          ),
        ],
      ),
      body: widget.child,
    );
  }
}

class MyApp extends StatelessWidget {
  MyApp({super.key});

  final routes = GoRouter(
      debugLogDiagnostics: true,
      initialLocation: '/a',
      navigatorKey: _rootNavigatorKey,
      routes: [
        ShellRoute(
          navigatorKey: _shellNavigatorKey,
          builder: (context, state, child) => ShellWidget(child: child),
          routes: [
            GoRoute(
              path: '/a',
              builder: (context, state) => const DummyScreen(
                color: Colors.green,
                text: '/b',
              ),
            ),
            GoRoute(
              path: '/c',
              builder: (context, state) => const DummyScreen(
                color: Colors.green,
                text: '/d',
              ),
            ),
          ],
        ),
        GoRoute(
          path: '/d',
          parentNavigatorKey: _rootNavigatorKey,
          builder: (context, state) => const DummyScreen(
            color: Colors.red,
            text: '/d/e',
          ),
          routes: [
            GoRoute(
              // can't push this page at all
              path: 'e',
              builder: (context, state) => const DummyScreen(
                color: Colors.red,
                text: '/c',
              ),
            ),
          ],
        ),
        GoRoute(
          // can't push this page on the shell without key
          // even though it is outside of shell route
          path: '/b',
          builder: (context, state) => const DummyScreen(
            color: Colors.green,
            text: '',
          ),
        ),
      ],
    );

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      routeInformationParser: routes.routeInformationParser,
      routeInformationProvider: routes.routeInformationProvider,
      routerDelegate: routes.routerDelegate,
    );
  }
}

class DummyScreen extends StatelessWidget {
  const DummyScreen({
    super.key,
    required this.color,
    required this.text,
  });
  final Color color;
  final String text;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(GoRouter.of(context).location)),
      backgroundColor: color,
      body: Center(
        child: ElevatedButton(
          onPressed: text.isNotEmpty ? () => context.push(text) : null,
          child: Text(text),
        ),
      ),
    );
  }
}

Thanks for the updated code sample. Using it, I am seeing same behavior as reported.

 stable, master flutter doctor -v

[✓] Flutter (Channel stable, 3.3.4, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.3.4 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision eb6d86ee27 (2 days ago), 2022-10-04 22:31:45 -0700
    • Engine revision c08d7d5efc
    • Dart version 2.18.2
    • DevTools version 2.15.0

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

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

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 3.5.0-3.0.pre.5, on macOS 12.2.1 21D62 darwin-x64,
    locale en-GB)
    • Flutter version 3.5.0-3.0.pre.5 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9ca314afd0 (2 hours ago), 2022-10-06 23:06:11 -0400
    • Engine revision a4174f29a7
    • Dart version 2.19.0 (build 2.19.0-286.0.dev)
    • DevTools version 2.18.0

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

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

! Doctor found issues in 1 category.

Same here. Can't push route on top of shell route

There is two problem with your code:

Not added parentNavigatorKey: _rootNavigatorKey, to '/b' route. That's why not push to top of shell
You wrote e instead of /e in path

There is two problem with your code:

Not added parentNavigatorKey: _rootNavigatorKey, to /b route. That's why not pushed on top of shell

In then example /d I've added parentNavigatorKey: _rootNavigatorKey then it is working but the sub route Is not working.

You wrote e instead of /e in path
That is required to use subroutes in gorouter,

https://github.com/flutter/packages/blob/main/packages/go_router/doc/configuration.md#child-routes
Child routes
A matched route can result in more than one screen being displayed on a
Navigator. This is equivalent to calling push(), where a new screen is
displayed above the previous screen with a transition animation, and with an
in-app back button in the AppBar widget, if it is used.
To display a screen on top of another, add a child route by adding it to the
parent route's routes list:
GoRoute(
  path: '/',
  builder: (context, state) {
    return HomeScreen();
  },
  routes: [
    GoRoute(
      path: 'details',
      builder: (context, state) {
        return DetailsScreen();
      },
    ),
  ],
)

any updates on this, cause I am facing the same problem I can't go to the sub router (/referral/all) when I am outside of the shell route after giving (/referral)'s parentNavigatorKey the  _rootNavigatorKey to be able to ignore shell router.
the observers show this but nothing happened:
[INFO] GoRouter: pushing /referral/all

and it actually changes the current location from /referral to /referral/all but the screen actually still on /referral.
print(GoRouter.of(this).location) // /referral/all

Not added parentNavigatorKey: _rootNavigatorKey

Why must we do this? Shouldn't the parent be implicit? I don't understand this aspect of GoRouter.

After absorbed the above answers, I wrote an example(pseudo code), I used go_router: ^12.0.0
using context.push or context.go will also work
You need to create key for each root or shell page, make sure to use the correct key
The structure is
/
/login
/home
/page-one
//a sub page of page-one but, not be inside the page-one shell
/page-one/account
Also, if someone is facing the route path won't change on web when navigate to sub route which belongs to different root route.
I found a solution from
https://codewithandrea.com/articles/flutter-navigation-gorouter-go-vs-push/
Add the below code on your main(), and everything works well
GoRouter.optionURLReflectsImperativeAPIs = true;
In the example, assume that I have a bottom Navigation Bar (Tabs :Home, Page One) , a button for navigating to account inside Page One and a back button from app bar inside account page.
  final _rootNavigatorKey = GlobalKey<NavigatorState>();
  final _shellNavigatorKeyHome = GlobalKey<NavigatorState>();
  final _shellNavigatorKeyShellOne = GlobalKey<NavigatorState>();

  GoRouter get router => GoRouter(
        initialLocation: '/login',
        navigatorKey: _rootNavigatorKey,
        routes: <RouteBase>[
          GoRoute(
            path: '/',
            pageBuilder: (context, state) => MaterialPage<void>(
              key: state.pageKey,
              child: Container(),
            ),
            routes: <RouteBase>[],
          ),
          GoRoute(
            name: 'Login',
            path: '/login',
            pageBuilder: (context, state) => MaterialPage<void>(
              key: state.pageKey,
              child: LoginPage(),
            ),
          ),
          StatefulShellRoute.indexedStack(
            builder: (context, state, navigationShell) {
              return ShellRootPage(
                navigationShell: navigationShell,
              );
            },
            branches: [
              StatefulShellBranch(
                  navigatorKey: _shellNavigatorKeyHome,
                  routes: [
                    GoRoute(
                      name: 'Home',
                      path: '/home',
                      pageBuilder: (BuildContext context, GoRouterState state) {
                        return const NoTransitionPage(
                            child: HomePage(), name: 'home');
                      },
                    ),
                  ]),
              StatefulShellBranch(
                  navigatorKey: _shellNavigatorKeyShellOne,
                  routes: [
                    GoRoute(
                      name: 'PageOne',
                      path: '/page-one',
                      pageBuilder: (BuildContext context, GoRouterState state) {
                        return const NoTransitionPage(
                            child: PageOne(), name: 'page1');
                      },
                  routes: [
                         //child page where it is not inside the shell, use _rootNavigatorKey
                          GoRoute(
                            parentNavigatorKey: _rootNavigatorKey,
                            path: 'account',
                            name: 'Account',
                            pageBuilder: (context, state) => NoTransitionPage(
                                child: AccountPage(), name: 'account'),
                          ),
                    ),
                  ]),])


Allow the camera to take multiple pictures

Is your feature request related to a problem? Please describe.
I'd like to be able to capture multiple pictures from the camera I am aware of your answers in #172, but I think this is a possible way to achieve it (at least give the option for it).
Describe the solution you'd like
Provide a mechanism inside the callback to start the camera again. Right now, my only option is to dismiss the view controller. I'd like to be able to start the camera again. Then the shoot button can be used to capture another picture, and the callback called again. One exits by hitting cancel.
Describe alternatives you've considered
I need this functionality, as my app's use case is taking multiple pictures of a specific room. I don't want the user to have to re-tap the "take picture" button. I want him to be able to take pictures until he's satisfied.
Additional context
I made the following changes to my copy of your project:
diff --git a/Source/Pages/Photo/YPCameraVC.swift b/Source/Pages/Photo/YPCameraVC.swift
index 41ccf2b..dc75498 100644
--- a/Source/Pages/Photo/YPCameraVC.swift
+++ b/Source/Pages/Photo/YPCameraVC.swift
@@ -42,6 +42,7 @@ public class YPCameraVC: UIViewController, UIGestureRecognizerDelegate, YPPermis
     }

     func start() {
+        v.shotButton.isEnabled = true
         doAfterPermissionCheck { [weak self] in
             guard let strongSelf = self else {
                 return
diff --git a/Source/YPImagePicker.swift b/Source/YPImagePicker.swift
index fc22684..dd01186 100644
--- a/Source/YPImagePicker.swift
+++ b/Source/YPImagePicker.swift
@@ -158,6 +158,14 @@ override open func viewDidLoad() {
         loadingView.fillContainer()
         loadingView.alpha = 0
     }
+
+    public func restartCamera() {
+        picker.restartCamera()
+    }
 }

 extension YPImagePicker: ImagePickerDelegate {
diff --git a/Source/YPPickerVC.swift b/Source/YPPickerVC.swift
index f70e644..8a95aad 100644
--- a/Source/YPPickerVC.swift
+++ b/Source/YPPickerVC.swift
@@ -156,6 +156,12 @@ open class YPPickerVC: YPBottomPager, YPBottomPagerDelegate {
     func pagerDidSelectController(_ vc: UIViewController) {
         updateMode(with: vc)
     }
+
+    func restartCamera()
+    {
+        stopCurrentCamera()
+        cameraVC?.start()
+    }

     func updateMode(with vc: UIViewController) {
         stopCurrentCamera()

This of course is super-hacky, and works for my use case. But having correct support for it in the actual project would be very nice to use.

@asimrazakhan were you able to add another button or find an alternative library?

There is 2022 year outside🎉 Old outdated issues are closing. Please search if there are already existing issues with the same problem before opening new ☮


getOptionOrd

@gcanti  Something like this or do you have something hidden somewhere to shrink that to a one-liner? :) :
import { Option } from 'fp-ts/lib/Option'
import { Ord } from 'fp-ts/lib/Ord'
import { Ordering } from 'fp-ts/lib/Ordering'

export const getOptionOrd = <T>(O: Ord<T>): Ord<Option<T>> => ({
  compare: (a: Option<T>, b: Option<T>): Ordering => {
    if (a.isSome()) {
      return b.isSome() ? O.compare(a.value, b.value) : 1
    } else {
      return b.isSome() ? -1 : 0
    }
  },
  equals: (a: Option<T>, b: Option<T>): boolean => {
    if (a.isSome()) {
      return b.isSome() ? O.equals(a.value, b.value) : false
    } else {
      return b.isNone()
    }
  }
})

(btw let me know you stance on ternary-operators-all-way-down)

There's getSetoid in Option.ts
// Option.ts

/**
 * The `Ord` instance allows `Option` values to be compared with
 * `compare`, whenever there is an `Ord` instance for
 * the type the `Option` contains.
 *
 * `None` is considered to be less than any `Some` value.
 */
export const getOrd = <A>(O: Ord<A>): Ord<Option<A>> => {
  return {
    ...getSetoid(O),
    compare: (x, y) => x.fold(y.fold<Ordering>(0, () => -1), ax => y.fold(1, ay => O.compare(ax, ay)))
  }
}

@gcanti ok, I'll use getSetoid then.
concerning the usage of fold and past experience on optimisation, don't you think we should avoid closure creation by default here?

concerning the usage of fold and past experience on optimisation, don't you think we should avoid closure creation by default here?

ok (we should scan the codebase looking for other fold usages I guess)


add_movie corrupts powerpoint file when a non-openxml feature is used in animations

When a non-openxml feature is used in animations, Powerpoint wraps the <p:timing> element in a <mc:AlternateContent>.
For example, setting Bounce end to true:

(see enclosed file: file_with_bounce.pptx )
However, python-pptx assumes that <p:timing> is at the root of <p:sld> and creates a new <p:timing>.
This results in a powerpoint file that has the form:
<p:sld>
  ...
  <mc:AlternateContent>
    <mc:Choice>
       <p:timing>
         ... (timing without video)
       </p:timing>
    </mc:Choice>
    ...
  </mc:AlternateContent>
     <p:timing>
       ... (video timing)
     </p:timing>
</p:sld>

The file is then detected as corrupt and deleted.
I can make the fix, but I would need to know where I can find a standard way to account for AlternateContent in the lib?
Thanks

I added mine to the slide.element in md2pptx. If you search for the definition and use of the function addSlideTransition in my code you'll see what I mean.
However, I also would like to understand what would be closer to the heart of python-pptx in this matter.
(Very secondarily, extensions to that code's capability are something I'd contemplate. But I don't actually use transitions in my day job, though I built md2pptx (and mdpre) for my daily needs.)

@MartinPacker the animation is added externally through Powerpoint in my case, and this is intentional in my workflow. I think this is different from slide transitions too, because slide transitions are transitions between slides, and animations are within the slide itself. I don't know the office open xml spec very well, but animations are specified in a single <p:timing> element (or multiple, when using features out of the standard).


PAL crashing when setting subtitles to OFF

If you set an episode's subtitles to off, I believe it crashes:
Traceback (most recent call last):
  File "/app/plex_auto_languages/plex_alert_handler.py", line 66, in _process_alerts
    alert.process(self._plex)
    ~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/app/plex_auto_languages/alerts/playing.py", line 85, in process
    plex.change_tracks(username, item, EventType.PLAY_OR_ACTIVITY)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/plex_auto_languages/plex_server.py", line 256, in change_tracks
    track_changes.compute(episodes)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/app/plex_auto_languages/track_changes.py", line 85, in compute
    matching_subtitle_stream = self._match_subtitle_stream(part.subtitleStreams())
  File "/app/plex_auto_languages/track_changes.py", line 208, in _match_subtitle_stream
    if self._subtitle_stream.forced == stream.forced:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'forced'

I think because it is expected here that self._subtitle_stream, which is the currently selected subtitle stream, to be not None, but it is if we set the subtitles to be off.
We need to find a way to handle when subtitles are turned off, and set all future episodes to turn off subtitles.

@JourneyDocker You are right, I tried on another show and turning it OFF worked correctly without crashing. But the first show I did if I set to OFF will show this crash. So it might be depending on the show 🤔

as noted previously before we moved the issue over here I haven't experienced this issue myself any, but I'm wondering if the simple fix for this would just be to change:
        scores = [0] * len(streams)
        for index, stream in enumerate(streams):
            if self._subtitle_stream.forced == stream.forced:
                scores[index] += 3
            if self._subtitle_stream.hearingImpaired == stream.hearingImpaired:  # Add score for SDH subtitles
                scores[index] += 3
            if self._subtitle_stream.codec is not None and stream.codec is not None and \
                    self._subtitle_stream.codec == stream.codec:
                scores[index] += 1
            if self._subtitle_stream.title is not None and stream.title is not None and \
                    self._subtitle_stream.title == stream.title:
                scores[index] += 5

to:
    scores = [0] * len(streams)
    for index, stream in enumerate(streams):
        if self._subtitle_stream and self._subtitle_stream.forced == stream.forced:
            scores[index] += 3
        if self._subtitle_stream and self._subtitle_stream.hearingImpaired == stream.hearingImpaired:
            scores[index] += 3
        if self._subtitle_stream and self._subtitle_stream.codec is not None and stream.codec is not None and \
                self._subtitle_stream.codec == stream.codec:
            scores[index] += 1
        if self._subtitle_stream and self._subtitle_stream.title is not None and stream.title is not None and \
                self._subtitle_stream.title == stream.title:
            scores[index] += 5

Specifically adding a self._subtitle_stream to each one.

@JourneyOver I think this could prevent the crash 👍
But I'll need to test if that would still not set the rest of the episodes to OFF.

I have two shows, one that works and one that doesn't, so I think I can fool around on the code and make a fix for this!

Sounds good! ^^ I also moved the other issue (the SDH one) over as well so hopefully we can knock both of them out.

So I can at least confirm the above solution that I was thinking of will not work at least, it did exactly as you thought it probably would xD

Actually this latest commit for this issue fixed it and I don't experience the crash anymore!
But I still see if I set the subtitles to off, while the episode sets the current episode playing to off, PAL sets all the episodes in the show to be forced subtitles instead if they are available.
I'm guessing again because this is because PALs default behaviour is that it no subtitles is selected, it automatically sets it to any forced subtitle available here.

Hmm I'm wondering if we just turn the value from True to False if it would stop the forced subtitle thing for the time being until we can come up with a more concrete plan on how we want things done by default, maybe we could add a config/env option to configure it between true/false value as well?

@JourneyOver I think actually I am honestly fine in leaving it for now, but up to you!
I understand the incentive behind PAL setting it to forced if nothing is set, because usually people who watch a show who don't want any subtitles on will at least want some subtitles for the foreign parts, which is what forced is for. So PAL is assuming that when setting it as the backup subtitles.
But I also think in the future it would be nice to consider if there is a case when a user wants to set subtitles to off completely. Essentially it's the users responsibility and own decision saying "I understand even if this show has foreign parts that may offer forced subtitles for it, I want all subtitles off and PAL to set that".

Alright, yea def understand the point you are getting at, I always end up enabling subtitles of some kind anyways if I know a show has a lot of foreign parts to it so I may just leave things how they are then for now and if in the future someone chimes in that they want things changed or whatever then I might make the thing into an optional choice.
Either way are we calling this (the crashing) issue fixed then as well? since you mentioned above the latest commit seems to have fixed the crash you was experiencing before.

Yeah these are both fine I think closing them 🙏
Thanks again!

Sounds great! I'll get a new latest tag pushed up here very shortly then as well.
It's not a problem :P


record descriptor uuid before executing subfactory callbacks in RunRouter.descriptor()

Description
This PR moves the code in method RunRouter.descriptor() that records descriptor uuids in RunRouter._start_to_descriptors and RunRouter._descriptor_to_start so it will execute before
subfactory callbacks are executed. The intention  is to guarantee the dictionaries will be updated even if
a callback raises an exception.
Motivation and Context
Currently if a callback executed by RunRouter.descriptor() raises an exception these
dictionaries will not be updated with the descriptor uuid. Subsequent calls to RunRouter.event()
with event documents referencing the same descriptor will then fail because the descriptor uuid
will not be found in RunRouter._descriptor_to_start.
Closes #209.
How Has This Been Tested?
The test function test_subfactory_callback_exception has been added to test_run_router.py.

Bump @gwbischof Can you review this one?


Stacks 2.1 updates for Clarinet, Stacks JS and API docs

added basic thoughts on @stacks/stacking in 2.1
update some auto-formating and minor fixes

Feel free to take over the PR, if you don't like the structure/content/etc.
I can add more content later. Also some of the version numbers etc. aren't final yet
Live: https://hiro-systems-docs-git-21-stacksjs-blockstack.vercel.app/stacks.js/how-to-guides/how-to-migrate-stacking-to-2.1

@LakshmiLavanyaKasturi :
Can we include the updated periods for activation and transition for clarity from this blog: https://www.hiro.so/blog/how-the-stacks-2-1-transition-impacts-stacking ?


Create ipa file xcode 9.2

Hello,
At this point I find myself trying to export the application to an "ipa" file, so that it can run on a real iphone.
As you can see in the following image, these problems are associated with my Apple developer account:
Your development team does not support the associated domains capability;
Your development team does not support the push notifications capability;
xcode could not find any ios app development provisioning profiles matching 'org.edx.mobile'.
I can not find a solution to this problem.
Could someone help me please?
Please, @saeedbashir can you help me?

@latinosamuel you can't use org.edx.mobile because that belongs to edX. You need to create your own certificate with a unique reversed url


Center align the college name in Profile Page

Description
Align the text center so that the college name looks good.
Screenshots

Additional information
No response

hey, can I contribute to this? can you assign me this bug?

@kheersagar assigned you

Unable to recreate the issue
Image

@kheersagar I think it's happening due to screen size. You should see if it's breaking in smaller screens as it exists in my screen

ok


Logging when using as npm module?

Hello,
I am trying out the lib using https://github.com/maxmantz/redux-oidc as a wrapper.
I am experiencing some trouble with my redirect callback that gives me signature validation failed. I want to enable logging so I can check if a raw exception gives me any clues.
I have tried import Oidc from 'oidc-client'; Oidc.Log.logger = console;both in my Express server file, and in my Root React component, but nothing happens.
Am I totally on the wrong track here? @maxmantz ref: https://github.com/maxmantz/redux-oidc/issues/5

Does Oidc.Log.level = Oidc.Log.INFO help?
Also, you can plug in any object for logging that supports info, warn, and error with params: https://github.com/IdentityModel/oidc-client-js/blob/master/src/Log.js#L53

I've just tried the following to enable logging in my example app:
import { Log } from 'oidc-client';

Log.logger = console;

Now when I try to log in I get the same error as you (stuck on Redirecting...):

redux-oidc.js:1 Uncaught (in promise) Error: Error handling redirect callback: signature validation failed.

When I remove the logging again, no error occurs and the log in works fine. Any ideas as to what could cause this?

That's bizarre, but makes me feel like there's a bug somewhere.

Aha! I get the same error. Everything works fine, but if I add the following the redirect error appears:
import { Log } from 'oidc-client';
Log.logger = console;
Log.level = Log.INFO;

Still no logging when I set the Log.level = Log.INFO;, though.

Do you have a repro with the sample perchance? I don't have a setup with google's OP.

I've used my sample app for testing this. I've enabled logging in src/index.js as described above to get the error.

I found it impossible to troubleshoot myself because oidc-client was built into my library as a dependency and therefore got minified and mangled along with all of my code.
I have updated the app to use the latest version of my library. It now has oidc-client as a peer dependency. This means that now there is a separate folder oidc-client inside node_modules. In there you can replace lib/oidc-client.min.js with lib/oidc-client.js to get sourcemap debugging for oidc-client. It is a bit fiddly but it works.

I am just back this week from being away. Did either of you happen to discover anything else about this? Thanks.

No not yet. The issue still persists. I have changed the use of oidc-client in my library to a peer dependency to allow manual changes to the version of the library. You could now make changes to your library (oidc-client), compile it, and manually copy it to the sample app's node_modules/oidc-client directory for debugging. This is a rather complicated approach, but the only worthwhile one I can think of.
You simply have to include what @lizter wrote to enabling logging in src/index.js to get to the problem.

I have the same problem.
In my entry.js I am trying to set the logger using:
if(process.env.ENABLE_OIDC_LOG) {
    const {Log} = require('oidc-client');
    Log.logger = console;
    Log.level = Log.DEBUG;
}

The logger is set, but only a very small amount is being logged, despite setting it to Log.DEBUG.
I only see user loaded and sometimes signinSilent successful, signed in sub: [...]. Some time ago, there would be very much logging going on. I don't know what happened. Since automaticSilentRenew is set to true, it should log much more.

Ok, nevermind. The chromium console filter was set to "Info" and not "Verbose". It logs again

Just add the same issue...thought that DEBUG log level was not working but was indeed the Chrome console filter not set to Verbose. This issue can be closed IMO @brockallen @Gurkenschreck.

i have oidc-client used in auth-angular project which is then consumed as npm in my main-app.  i am not able to see log statments written in oidc-client , any suggestions how to approach this ?
app1 -> uses oidc-client
app2 -> uses npm of app1


v1.6.3 (v1.4.0 macros) Breaks Un-annotated Fields

I have a struct like this:
#[serde_with::serde_as]
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct Thing {
    pub id: u8,

    #[serde_as(as = "Vec<serde_with::hex::Hex>")]
    pub data: Vec<Vec<u8>>,
}

It worked well until today, presumably with the release of v1.6.3, when I started getting this error:
error: An empty `serde_as` attribute on a field has no effect. You are missing an `as`, `serialize_as`, or `deserialize_as` parameter.
  --> src/thing:14:5
   |
14 |     pub id: u8,
   |     ^^^

I did not previously have to annotate the id field. So I tried adding an annotation:
#[serde_with::serde_as]
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct Thing {
    #[serde_as(as = "u8")]
    pub id: u8,

    #[serde_as(as = "Vec<serde_with::hex::Hex>")]
    pub data: Vec<Vec<u8>>,
}

But now it says:
error[E0277]: the trait bound `u8: SerializeAs<_>` is not satisfied
   --> src/thing:11:1
    |
11  | / #[serde_with::serde_as]
12  | | #[derive(Serialize, Deserialize, Debug, PartialEq)]
    | |__________________^ the trait `SerializeAs<_>` is not implemented for `u8`
    |

So how do I get the default serialization behavior back again?

Thanks for the report. I already prepared a PR to fix this in #268 and will release a new bugfix release after that is merged.
This happened because of #262. The code used to contain a check if a field has any serde_as attribute and exit early if not. That got removed in #262.
I added a new testcase to avoid such breakages in the future.

The new version is now on crates.io. Sorry for the inconvenience.


unit.pytest.command is broken

Our existing unit.pytest.command stops working, I think because of the change from 30b7f12.
# our config
"unit.pytest.command": "env/bin/pytest --cov-report=xml --junit-xml=%s"

# arc diff output
EXCEPTION: (Exception) Config option "unit.pytest.command" must have two "%s" placeholders. The first is used for JUNIT_XML. The second for COVERAGE_XML.
Example:
  make clean && make -j8 test-xml JUNIT_XML=%s COVERAGE_XML=%s

However, if we added the placeholder for COVERAGE_XML as suggested, like env/bin/pytest --cov-report=xml:% --junit-xml=%s, we would get the following error,
EXCEPTION: (BadFunctionCallException) Too few arguments to xsprintf(). at [<phutil>/src/xsprintf/xsprintf.php:63]
arcanist(head=master, ref.master=5f1a791f0f0a), phutil(head=master, ref.master=80b9ff4ad23b)
  #0 xsprintf(string, array, array) called at [<phutil>/src/xsprintf/PhutilCommandString.php:45]
  #1 PhutilCommandString::renderString(boolean) called at [<phutil>/src/xsprintf/PhutilCommandString.php:30]
  #2 PhutilCommandString::getMaskedString() called at [<phutil>/src/xsprintf/PhutilCommandString.php:18]
  #3 PhutilCommandString::__construct(array) called at [<phutil>/src/xsprintf/csprintf.php:37]
  #4 csprintf(string, TempFile) called at [<arcanist>/src/unit/engine/ConfigurablePytestTestEngine.php:26]
  #5 ConfigurablePytestTestEngine::buildTestFuture(TempFile, TempFile) called at [<arcanist>/src/unit/engine/ConfigurablePytestTestEngine.php:14]
  #6 ConfigurablePytestTestEngine::run() called at [<arcanist>/src/workflow/ArcanistUnitWorkflow.php:170]
  #7 ArcanistUnitWorkflow::run() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:1434]
  #8 ArcanistDiffWorkflow::runUnit() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:1322]
  #9 ArcanistDiffWorkflow::runLintUnit() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:486]
  #10 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:394]

In src/unit/engine/ConfigurablePytestTestEngine.php, line 25:
    $coverage_command = $this->getCoverageCommand('unit.pytest.command');
    $cmd_line = csprintf($coverage_command, $junit_tmp);

coverage_command has two placeholders, but csprintf just gets a single value passed in.


Windows Explorer doesn't support FTPS deployment

We need to update the documentation to explicitly state that FTPS deployment isn't supported by Windows Explorer, even though FTP deployments can be done.
During a recent support case interaction, customer had to make extensive changes to adopt a 3rd party FTP client for the developer machines.

@SuchitChoudhury : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

@SuchitChoudhury  Our Azure docs makes no assumptions about people using Windows machines or Windows Explorer for that matter so this addition doesn't seem warranted. I looked into this, and the fact that Windows Explorer doesn't support FTPS is not new. It's up to the customer to make sure that their FTP client of choice supports the protocol they need. #please-close


MODULE_NOT_FOUND

Hi there, thanks for the package, I'm using it in Maizzle 5.
Writing in because I can't pinpoint anything else that might be causing this. Could there be any dependency in import-from-esm that had a patch release and is breaking things?
$ npm ls import-from-esm
m5test@ C:\Users\Cosmin\Desktop\m5test
└─┬<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    └──<EMAIL_ADDRESS>
$ node -v
v20.10.0

So the way I'm using it in @maizzle/cli is this:
import importFrom from 'import-from-esm'

let { serve } = await importFrom(process.cwd(), '@maizzle/framework')

@maizzle/framework package.json exports is this:
"type": "module",
"exports": {
  ".": {
    "import": "./src/index.js",
    "types": "./types/index.d.ts"
  }
},

serve is a function exported by src/index.js.
Just yesterday I got a report from someone saying it errors out, and indeed it now does, this is the stack:
file:///C:/Users/Cosmin/Desktop/m5test/node_modules/import-from-esm/index.js:114
                const error = new Error(errorString);
                              ^

Error: Cannot find module '@maizzle/framework'
    at importFrom (file:///C:/Users/Cosmin/Desktop/m5test/node_modules/import-from-esm/index.js:114:17)
    at async Command.<anonymous> (file:///C:/Users/Cosmin/Desktop/m5test/node_modules/@maizzle/cli/src/index.js:94:25)
    at async Command.parseAsync (C:\Users\Cosmin\Desktop\m5test\node_modules\commander\lib\command.js:1092:5) {
  code: 'MODULE_NOT_FOUND'
}

Line 94 from @maizzle/cli/src/index.js is this:
let { serve } = await importFrom(process.cwd(), '@maizzle/framework')

Any ideas what might be causing it and what could be done about it?
Thanks!

Sorry about this, managed to track it down to cheerio changing their import paths:
https://github.com/cheeriojs/cheerio/releases/tag/v1.0.0
Closing 😇


CTS was failing -> now fixed -> URL update todo

CTS test

Egeria '3.15'
xtdb 3.15
Large openshift cluster

Config:
# SPDX-License-Identifier: CC-BY-4.0
# Copyright Contributors to the ODPi Egeria project.
tut:
serverType: "plugin"
connectorProvider: "org.odpi.egeria.connectors.juxt.xtdb.repositoryconnector.XtdbOMRSRepositoryConnectorProvider"
connectorConfig:
  xtdbConfig:
    xtdb/index-store:
      kv-store:
        xtdb/module: xtdb.lmdb/->kv-store
        db-dir: data/servers/xtdb/lmdb-index
    xtdb/document-store:
      kv-store:
        xtdb/module: xtdb.rocksdb/->kv-store
        db-dir: data/servers/xtdb/rdb-docs
    xtdb/tx-log:
      kv-store:
        xtdb/module: xtdb.rocksdb/->kv-store
        db-dir: data/servers/xtdb/rdb-tx
    xtdb.lucene/lucene-store:
      db-dir: data/servers/xtdb/lucene
downloads:
- filename: egeria-connector-xtdb.jar
  url: "http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.odpi.egeria&a=egeria-connector-xtdb&v=RELEASE&c=jar-with-dependencies"
  #url: "http://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=org.odpi.egeria&a=egeria-connector-xtdb&v=3.15-SNAPSHOT&c=jar-with-dependencies"
  ```

  Results
  ```
                Metadata sharing MANDATORY_PROFILE    CONFORMANT_FULL_SUPPORT [  67066 /      0 ]
            Reference copies  OPTIONAL_PROFILE             NOT_CONFORMANT [    535 /    116 ]
        Metadata maintenance  OPTIONAL_PROFILE             NOT_CONFORMANT [      0 /    651 ]
               Dynamic types  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
               Graph queries  OPTIONAL_PROFILE             NOT_CONFORMANT [      0 /      1 ]
           Historical search  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
              Entity proxies  OPTIONAL_PROFILE             NOT_CONFORMANT [      0 /    238 ]
     Soft-delete and restore  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
              Undo an update  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
         Reidentify instance  OPTIONAL_PROFILE             NOT_CONFORMANT [      0 /    535 ]
             Retype instance  OPTIONAL_PROFILE             NOT_CONFORMANT [      0 /    297 ]
             Rehome instance  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
               Entity search  OPTIONAL_PROFILE             NOT_CONFORMANT [      0 /    594 ]
         Relationship search  OPTIONAL_PROFILE             NOT_CONFORMANT [      0 /    238 ]
      Entity advanced search  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
Relationship advanced search  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
List the versions of each instance  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
Store classifications independently of entity  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
          External instances  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]
Restore metadata from a backup  OPTIONAL_PROFILE             UNKNOWN_STATUS [      0 /      0 ]

FAIL [67601/2670]

Also the automated cts at https://github.com/odpi/egeria-test-cts/actions is currently failing (this uses egeria 'main')
See https://github.com/odpi/egeria-test-cts/actions
Specifically the latest test run shows identical results to above https://github.com/odpi/egeria-test-cts/actions/runs/4249004030
cc: @cmgrote @mandy-chessell

PR updates xtdb version to 'latest'
Kicked off action - results in ~4 hours https://github.com/odpi/egeria-test-cts/actions/runs/4251753818

The change I made to the cts did not work -- wrong URL, 'latest' isn't available seemingly from the snapshot repo. I'd misinterpreted the docs. I only get latest release.
Raising a Q with sonatype.
The other option is to add more logic to the scripting to determine the latest xtdb version (including development versions) and then set the connector download string to that specific version

Raised https://github.com/odpi/egeria-connector-xtdb/issues/466
Once fixed, need to return here to verify the correct URL to use, which is probably ttp://oss.sonatype.org/service/local/artifact/maven/redirect\?r\=snapshots\&g\=org.odpi.egeria\&a\=egeria-connector-xtdb\&v\=LATEST\&c\=jar-with-dependencies .
If so need to update etc/cts.yaml with this URL. But will leave until proven, once the xtdb artifact is correctly published

XTDB is now published
CTS is clean with main/main
However this uses a hardcoded 4.0-SNAPSHOT reference for the connector, which needs to be updated when we branch
Issue opened at Sonatype community to determine a better URL to use -> https://community.sonatype.com/t/retrieving-the-latest-snapshot/10311/2

XTDB connector is now at 4.0 (release)
Will update the connector to use the 'latest' release connector
➜  /tmp wget "http://repository.sonatype.org/service/local/artifact/maven/redirect\?r\=central-proxy\&g\=org.odpi.egeria\&a\=egeria-connector-xtdb\&v\=LATEST\&c\=jar-with-dependencies"

The charts would need modifying to more easily support selection of connector
The easiest way of managing this would be to allow shell expansion of variables in the downloads, or perhaps just allowing a user script to be run.
Note that the connector download currently fails with: HTTP request sent, awaiting response... 401 Unauthorized after the redirect. Following up with sonatype - https://community.sonatype.com/t/issues-or-something-changed-cannot-download-artifact-without-user-pass-prompt/10593

See also #7


manualChunks generates different files

For each build sprite is different.
vite.config.js
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.startsWith('virtual:svg-icons-')) {
            return 'sprite';
          }

The reason is:
SVG_DOM_ID = '__svg__icons__dom__' + new Date().getTime()
I think it shoudn't be date based on build time.

I think it should not be dynamic at all, or passed with viteSvgIcons({ domId: 'custom' })

It would be great to be able to be specific with a custom id name.

2.0.0 already supported


[WIP][RFC][AC SMP merge] add outbound rpc for SMP

Summary
This is second PR for the AC-SMP refactor/merge project - first PR in stack is https://github.com/libra/libra/pull/1870

adding parallel processes that handle periodic broadcasting of batches of transactions via RPC

TODO:

potentially add more tests (especially for killing worker thread for disconnected peer)
add logging/error-handling (esp. in RPC response proto structs)
shared_mempool and some tests use hard-coded values. Replace them with actual values from config
remove code that these changes deprecate

Test Plan
Refactored network/src/validator_network/test.rs and shared_mempool_test, which pass
Related PRs
First PR in stack: https://github.com/libra/libra/pull/1870

:umbrella: The latest upstream changes (presumably ec9ff1480abef6ced77b04382815672a6c412924) made this pull request unmergeable. Please resolve the merge conflicts.

:umbrella: The latest upstream changes (presumably f0721257d9fd740270e982f32b1052cbc92ffc40) made this pull request unmergeable. Please resolve the merge conflicts.

for now don't accept/land - just review please! Land should wait until futures version is only 0.3 in mempool in master

:umbrella: The latest upstream changes (presumably ba3571bc84f4a505a7073d65535232c212a6a045) made this pull request unmergeable. Please resolve the merge conflicts.

:umbrella: The latest upstream changes (presumably 6b776496dc8b5df862bd1939eae254e43ee8693c) made this pull request unmergeable. Please resolve the merge conflicts.

@christinacelee are you still working on this PR?

this is tabled for now - I can close for now and reopen when relevant


bootloader working with adafruit feather express

Hi,
the latest feather express release bootloader doenst work when i flash it:
https://github.com/kaidyth/nrf52_bootloader/releases/download/0.5.6/feather-express_bootloader-fbe4571_s140.hex
nrfjprog -f nrf52 --program feather-express_bootloader-fbe4571_s140.hex --verify --log [ #################### ]   1.508s | Program file - Done programming                                                     [error] [ Client] - Encountered error -160: Command verify_file executed for 1189 milliseconds with result -160         [error] [  nRF52] - Failed while performing 'Verify' operation on target address 0x00000FF8.  -160: Data does not match in address range [0x00000FF8 - 0x00026597] (Flash) Expected byte value 0xC8 but read 0x80 at address 0x00001000. [error] [  nRF52] - Failed while verifying device. -160: Data does not match in address range [0x00000FF8 - 0x00026597] (Flash) Expected byte value 0xC8 but read 0x80 at address 0x00001000. [error] [ Worker] - Data does not match in address range [0x00000FF8 - 0x00026597] (Flash) Expected byte value 0xC8 but read 0x80 at address 0x00001000. ERROR: Write verify failed.
I try the version feather-express_bootloader-0.3.0_s140.hex
and it works i could also use my iphone and nrf Connect using the zip file to upload a new firmare.
I cannot upload a sketch from arduino, looks like it is not compatible?
I am using Mac M1 and cannot run docker x86_64 ubuntu image, i try to modify the file and set ubuntu arm64, it works until executing ./build_all.sh
` => ERROR [8/9] RUN cd $HOME/nrf_sdk/16.0.0/external/micro-ecc &&     ./build_all.sh                                                                                0.2s

[8/9] RUN cd $HOME/nrf_sdk/16.0.0/external/micro-ecc &&     ./build_all.sh:
#11 0.203 make: Entering directory '/root/nrf_sdk/16.0.0/external/micro-ecc/nrf51_armgcc/armgcc'
#11 0.205 qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
#11 0.205 ../../../../components/toolchain/gcc/Makefile.common:129: *** Cannot continue.  Stop.
#11 0.206 Cannot find: '/root/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc'.
#11 0.206 Please set values in: "/root/nrf_sdk/16.0.0/components/toolchain/gcc/Makefile.posix"
#11 0.206 according to the actual configuration of your system.
#11 0.206 make: Leaving directory '/root/nrf_sdk/16.0.0/external/micro-ecc/nrf51_armgcc/armgcc'

executor failed running [/bin/sh -c cd $HOME/nrf_sdk/16.0.0/external/micro-ecc &&     ./build_all.sh]: exit code: 2`
Is the script ./build_all.sh from nordic only for x86_64?
What should be done to support usb serial DFU like adafruit bootloader does?

You probably want 0.5.3 instead of 0.5.6: https://github.com/kaidyth/nrf52_bootloader/releases/tag/0.5.3 use it instead for the feather boards. This is what I have running on my feather nrf52840.

Flash to board with the following command. This is what the make flash command does, and what I have running on my feather.

nrfjprog -f nrf52 --program feather-express_bootloader-fbe4571_s140.hex --sectoranduicrerase

Make sure your using the Nordic SDK 16.0.0 toolchain and the appropriate tooling that comes with it. I haven't tested the 17 toolchain. The docker image is provided because it has all the tooling bundled with it.

USB DFU is supported via TTY: See https://github.com/kaidyth/nrf52_bootloader/wiki/Application-Flashing for documentation on how to bundle and sign the application.

If you're manually compiling things, you'll need to use x64. micro-ecc doesn't have an arm64 target and that's on Nordic and that library to resolve as they have shared dependencies. On a Arm64 Ubuntu image, GCC is arm-none-eabi-gcc, but I'm almost certain it won't compile on a arm64 docker image given how old this is.

I cannot upload a sketch from arduino, looks like it is not compatible?

From Arduino IDE, you need to export the sketch as a hex, with the appropriate compiler settings for the board and everything in-between, then build, sign, and deploy the application itself using these steps. https://github.com/kaidyth/nrf52_bootloader/wiki/Application-Flashing

Notes on Arduino are here: https://github.com/kaidyth/nrf52_bootloader/wiki/Arduino-Notes. I've run really simple sketches like blinky or neopixel, but as documented in the README, the Wiki, and a bunch of issues, this bootloader provides zero support or compatibility with Bluefruit - Bluefruit is incompatible.
With that said, I don't do any development with Arduino and can't really provide any support with it. If you're looking to use Arduino sketches, use the Adafruit bootloader instead.

I've managed to make your bootloader similar to the adafruit and to use the bluefruit stack, I will publish the changes required to work with the adafruit core nrf52, until now works only wirh s140 softdevice, but with small fix should work also with s132

Hey @gb88, awesome news! Looking forward to your merge request.

Did this merge request regarding the Bluefruit stack ever happen?


MarioKart8_3P_4P_60FPS graphic pack BUG

3 and 4 players split screen, now all works in full, true 60 fps with this mod; but now 2 player split screen works in half speed (30fps).. We need a fix for this :)

Should be fixed now.  Let us know if it isn't.

Thank you very much; all split screen modes are now working 60fps, great job.

Thanks for this! I have a couple of questions:

Does 60fps affect game speed?

There seems to be a weird issue when using this mod along with the 4k resolution graphics pack in the dolphin shoals race where once you get out of the tunnel outside in the water fall the fps drops drastically. I don't think this has to do with my gpu because it's a 980ti. Running the 1440p graphics pack or no graphics pack at all, the issue goes away. Can you look into this please?

No.  It makes all 4 quadrants refresh every frame instead of 2 quadrants refreshing every other frame.

I can duplicate your issue.  It may not be fixable.  Nintendo did employ this frame skipping during 3 and 4 player for a reason after all.

Thanks for the response.
Regarding the issue, after looking into it in more depth, it does seem to be a GPU bottleneck after all as at 4k (2160p) GPU usage is at 99% in that area where the fps drops. Using 1800p seems to hold a stable 60fps without hurting image quality that much.
The mod is awesome! I had been waiting for this for a while, thank you so much! :)


Connection was destroyed by application

Im trying to write end2end tests for my express app with supertest.
The app boots after mongoose.connect and in the beforeAch part of the test I insert some data with Mongoose models.
When the express route executes it throws an error in GridFS when it tries to insert a file.

I'm going to need some more information, like code samples. I don't quite understand what you're trying to do.

+1

This test uses nodeunit and superfast to test a NodeJS app and fails with 'Connection was destroyed by application'. As far as I can tell it seems to happen during session save using MongoStore (After the res.render)
//Unit test using SuperFast and
var supertestRequest = require('supertest')
	, express = require('express')
	;

exports.home_Normal_Succeeds = function(test) {
	test.expect(3);

	supertestRequest(app)
		.get('/')
		.expect('Content-Type', "text/html; charset=utf-8")
		.expect(200)
		.end(function(err, res){
			console.log(err ? "**** ERROR - " + err : "**** SUCCESS")
			test.equal(null, err);
			test.notEqual(null, res);
			test.equal(200, res.status);
			test.done();
	});
}

Stack trace:
 Stack: Error: Connection was destroyed by application
    at Db._executeInsertCommand (/blah/node_modules/mongodb/lib/mongodb/db.js:1773:55)
    at Collection.update (/blah/node_modules/mongodb/lib/mongodb/collection.js:487:13)
    at /blah/node_modules/connect-mongo/lib/connect-mongo.js:340:18
    at MongoStore.getCollection (/blah/node_modules/connect-mongo/lib/connect-mongo.js:210:11)
    at MongoStore.set (/blah/node_modules/connect-mongo/lib/connect-mongo.js:338:10)
    at Session.save (/blah/node_modules/express-session/session/session.js:71:25)

Do you use mockgoose?

Where exactly is this a mongoose issue? Are you passing a mongoose connection to connect-mongo?
Disclaimer: connect-mongo has numerous known bugs and limitations (some of which may have been fixed since it got a new maintainer, I haven't followed connect-mongo dev in 2015) but connect-mongodb-session is meant to be a more reliable replacement. I would recommend switching over.

Nope, I'm not using mockgoose - looks interesting, will check it out. Thanks.
Yep I'm passing the mongoose connection to MongoStore:
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
...
app.use(session({...,store: new MongoStore({ mongooseConnection: mongooseConnection }) }) );

I'll try connect-mongodb-session to see if that helps - thanks.
I have no idea if this is a mongoose issue, (seems unlikely) but I saw this post and had the same symptoms so provided the code sample requested.
Thanks.

connect-mongo does some strange things with mongoose connections, I don't quite grok the particulars. I think this sounds like a connect-mongo issue.


Compatibility with ngAnimate

I am using ui-select 0.8.0 with AngularJS 1.3.0-rc.4 and I am facing a problem.
Note
This issue occurs with FireFox 32.0.3. No problem with google Chrom!
The link below is a working version with no problem.
http://plnkr.co/edit/JiSJWbsehhP7Zq8C0Ybc?p=preview
However, if I include ngAnimate, there is a problem in the Select2 theme dropdown. The link below is the version where I added ngAnimate.
http://plnkr.co/edit/4VW0avAPB2LTXQ6L5WGq?p=preview
if I first click away on an empty spot, and then click on the Select2 theme dropdown to expand it, the text box doesn't get the focus or the cursor.
So, if you click away, and then click on the dropdown, repeat....you will see the textbox not getting the focus or cursor on it.
Again, this occurs only in FireFox.
Would it be possible for this to be fixed?
Thanks.

have you found a work around for this?

I think it's a decent solution to restrict ngAnimate to only apply to elements having a class to allow it--see http://stackoverflow.com/a/24542131/2497945.


Updated Form component

Hi, @lovasoa
Changes:
• Added 2 columns using bootstrap, to display tow input boxes next to each other.
• Adjusted the form button based on the new button component from SQLPage v0.14.
• Added a reset button, that essentially resets the form.
Note: The buttons are both top-level parameters.
Problems:

Struggling to adjust the width of the input boxes using bootstrap.

Form reference:

SQLPage code:

thanks @Pieter3033 ! your work will be included in the next version of sqlpage

Thanks @lovasoa, it feels I (as user) have more control over the form component now.
I find it very interesting how you implemented the width of the columns with handlebars, I believe my problem was I never set the default of the width and it messed with the input-box.
I thank you though, because I am learning a-lot from your project. Keep it up man, and good luck.


print doesn't print log when call from dispose?

I make a plugin with platform_channels ,And I have print log in EventChannel.StreamHandler  callback function onCancel,

I  make call mStreamSubscription.cancel() in dispose(), which I expect print log ,but nothing do.
while ,if I trigger mStreamSubscription.cancel() in RaisedButton  onTap callback ,print do well.

Please add the output of flutter doctor -v.
When you set a breakpoint, is it hit?
Can you please post a complete main.dart that allows to reproduce?

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.

@ghwaldo
Please add the output of flutter doctor -v.

This is working as intended. When the app is killed, dispose is not executed.
You are probably looking for something like
https://stackoverflow.com/questions/52074265/flutter-detect-killing-off-the-app/52074534#52074534 or #6827

Thank you, zoechi.
But one question: what's the function of dispose when it is never called ? Or is it called ? How can i check it ? What should be done in dispose when it is called ?


System.ArgumentNullException when reading event log

If event log contains an event type form not loaded assembly a ArgumentNullException is thrown because the dotNetType cannot be resolved see:
https://github.com/JasperFx/marten/blob/5bd4b03266ff4b91b565a9d58c8cfc87e5f42741/src/Marten/Events/EventSelector.cs#L45

@RytisLT can you please provide a repro test case for this issue?

@RytisLT What would you expect to happen here though? Better error message? Some facility to try to load the assembly? Some facility to move the event types?

We've got a better exception message now at the least in 2.9.0


CHANGELOG has merge text in it

Version 4.2.4 of the cookbook's CHANGELOG has a merge line in it: >>>>>>> 029f756152c4dc97aaf6468b3e44b5ec2284cf61.
It appears it was due to commit d3c961c made by @someara: link

Fixed. Thanks! 76ed527


No such file or directory: 'data/scores_all_data.pkl'

Hi, thanks for the interesting work!
I'm trying to run the offline_induction.py
code python offline_induction.py --mode auto --domain Travel --subdomain Airlines --website aa --model "gpt-4o" --output_dir "workflow"
within mind2web, and I'm encountering this error: (Line 97 of offline_induction.py)
No such file or directory: 'data/scores_all_data.pkl'
In the data folder, there are only test/, train/, and memory/. Could you please help advice where the scores_all_data.pkl come from? Thanks a lot!

This link seems to work. It's a bit hard to find in their repo, I'll add this link to my repo too for the ease of downloading.

Thank you so much!

Hi @zorazrw, Would you mind uploading scores_all_data.pkl file again? It seems that the updated link failed again.


login routes complete

It still needs a few updates.
I've updated the server.js without handlebars implementation

also there's a login.html file i used for testing login features included in the pr but I can delete if necessary


keycloak does not check whether Request Object include "scope" claim and return appropriate error

According to FAPI-RW-5.2.3-8(https://openid.net/specs/openid-financial-api-part-2-ID2.html#public-client), FAPI-R-5.2.3-7(https://openid.net/specs/openid-financial-api-part-1-ID2.html#public-client) and OIDCC-<IP_ADDRESS> (https://openid.net/specs/openid-connect-core-1_0.html#HybridAuthError) because FAPI RW uses hybrid flow :

check whether Request Object does include "scope" claim
check whether the value of "scope" query parameter matches the value of "scope" claim in the request object exactly
if not, return the error (error=invalid_request_object) from authorization endpoint such that
HTTP/1.1 302 Found
Location: https://client.example.com/cb#error=invalid_request_object&state=xyz

All of query parameters in an authorization code request should be included in signed Request Object in order to protect those query parameters (substitution, tampering, insertion by malicious one).
"scope" query parameter should be added in an authorization code request.

related keycloak-jira ticket created : https://issues.jboss.org/browse/KEYCLOAK-11256

@tnorimat
I was able to fix this defect in Keyloak and test it through FAPI-compliance suit. I see in the JIRA ticket and other relevant tickets and docs and found that there is a proposed plan to have Client conformance profiles(https://issues.redhat.com/browse/KEYCLOAK-11612) which as you rightly mentioned is an epic task.
So, shall we not go ahead and try fixing these outstanding FAPI compliance defects. let me know your thoughts.

@pritish-nitb Hello. As you mentioned, I have the plan to resolve this issue by KEYCLOAK-14204 . To do so, I need to establish the basics of Client Policies mentioned in KEYCLOAK-14189 and its pull-request in under review by keycloak development team.  Therefore, could you please wait for my work on it?
I hope that Client Policies makes it easy for us to support not only FAPI Security Profile (RO, RW) but also other OAuth2/OIDC based security profiles like FAPI CIBA security profile, OpenBanking Security Profile (UK), Consumer Data Right (Australia), security profile for Native App, security profile for SPA, etc.

@tnorimat and @pritish-nitb thank you for your contribution on Keycloak FAPI. I think if we can continue the discussion of this thread further in the keycloak-dev mailing list ( https://groups.google.com/g/keycloak-dev ) ,it may help to get visibility from others who are interested in it. What do you think about it?

@VinodAnandan  Yes, I agree with you.

closed. https://issues.redhat.com/browse/KEYCLOAK-14204


iOS app start issues

Hey, this seems like a great starter-kit. Although I'm getting 2 errors when trying to launch it from xcode (8.1):
1.
/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m:494:3: Ignoring return value of function declared with warn_unused_result attribute
2.
/Users/Olle/development/reactNativeReduxTest/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m:1334:5: Ignoring return value of function declared with warn_unused_result attribute
Any ideas? Would love to try this one out! :)

Hi @Ollebolle! Thanks for your feedback! Did you run a git checkout next right after your git clone to make sure that you're using the latest version of the start-kit? I know we didn't expressly mentioned it in the doc, I just corrected that.

@CharlesMangwa Thank you! That did the trick!

Glad to read that!
Closing issue #27


⚠ Bofrost.de has degraded performance

In d062600, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1628 ms

Resolved: Bofrost.de performance has improved in c931bd2.