[go_router] Navigating back does not update router location since go_router 5.2.0

Note: for version lower than 5.0.0 routing is working as expected.

Hi,
i have routes defined something like
GoRoute(
            path: '/login',
            name: loginRouteName,
            pageBuilder: (context, state) => NoTransitionPage(
              key: state.pageKey,
              child: const LoginScreen(),
            ),
            routes: [
              GoRoute(
                path: 'reset',
                name: resetRouteName,
                pageBuilder: (context, state) => NoTransitionPage(
                  key: state.pageKey,
                  child: const ResetEmailScreen(),
                ),],);

go_router_4.5.1
go_router_5.2.0
As you can see from video (go_router_5.2.0) when i go to subroute 'reset' and pop back to the 'login' route. the path is not changed and i cannot go to 'reset' route again. I am using goNamed() for navigation. The same issue is happening on all other platforms.
Flutter doctor
[✓] Flutter (Channel stable, 3.3.8, on macOS 12.5.1 21G83 darwin-x64, locale en-AE)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.72.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability
Flutter doctor -v
[✓] Flutter (Channel stable, 3.3.8, on macOS 12.5.1 21G83 darwin-x64, locale en-AE)
• Flutter version 3.3.8 on channel stable at /Users/mac/Documents/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 52b3dc25f6 (13 days ago), 2022-11-09 12:09:26 +0800
• Engine revision 857bd6b74c
• Dart version 2.18.4
• DevTools version 2.15.0
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/mac/Library/Android/sdk
• Platform android-33, build-tools 30.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14B47b
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.3)
• 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.13+0-b1751.21-8125866)
[✓] VS Code (version 1.72.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.52.0
[✓] Connected device (3 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 13 (API 33) (emulator)
• macOS (desktop)              • macos         • darwin-x64     • macOS 12.5.1 21G83 darwin-x64
• Chrome (web)                 • chrome        • web-javascript • Google Chrome 107.0.5304.110
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!

Hi @abubakarmvp, please provide a completed and minimal reproducible code sample so that we may verify this. Thank you!

Hi,
This is the minimal reproducible code.
Routes class
GoRouter get router => GoRouter(
      initialLocation: '/ab',
      routes: <RouteBase>[
        GoRoute(
          path: '/ab',
          pageBuilder: (context, state) => NoTransitionPage(
            key: state.pageKey,
            child: const ScreenAb(),
          ),
          routes: [
            GoRoute(
              path: 'abc',
              pageBuilder: (context, state) => NoTransitionPage(
                key: state.pageKey,
                child: const ScreenABC(),
              ),
            ),
          ],
        ),
      ],
    );

first screen
class ScreenAb extends StatelessWidget {
  const ScreenAb({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: InkWell(
              onTap: () {
                context.go('/ab/abc');
              },
              child: const Text('Forgot password?',
                  style: TextStyle(color: Color(0xff468316))))),
    );
  }
}

second screen
class ScreenABC extends StatelessWidget {
  const ScreenABC({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: GestureDetector(
            onTap: () {
              context.pop();
            },
            child: const Center(child: Text('screen 2'))));
  }
}

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      routerConfig: router,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
    );
  }
}

I can reproduce the issue with go_router 5.2.0
However, with the previous version (5.1.10), there is no issue. It looks like it was introduced in https://github.com/flutter/packages/pull/2786

@abubakarmvp thanks for providing more information. And thank @ValentinVignal for reporting a working version.
This is a regression issue:

5.1.10
5.2.0

✅
❌

✅: No Issue ❌: Issue reproduced

Demo

5.1.10
5.2.0

Completed sample code
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

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

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

  GoRouter get router => GoRouter(
        initialLocation: '/ab',
        routes: <RouteBase>[
          GoRoute(
            path: '/ab',
            pageBuilder: (context, state) => NoTransitionPage(
              key: state.pageKey,
              child: const ScreenAb(),
            ),
            routes: [
              GoRoute(
                path: 'abc',
                pageBuilder: (context, state) => NoTransitionPage(
                  key: state.pageKey,
                  child: const ScreenABC(),
                ),
              ),
            ],
          ),
        ],
      );

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      routerConfig: router,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
    );
  }
}

class ScreenAb extends StatelessWidget {
  const ScreenAb({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: InkWell(
              onTap: () {
                context.go('/ab/abc');
              },
              child: const Text('Forgot password?', style: TextStyle(color: Color(0xff468316))))),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: GestureDetector(
            onTap: () {
              context.pop();
            },
            child: const Center(child: Text('screen 2'))));
  }
}

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.3.8, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.3.8 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 52b3dc25f6 (23 hours ago), 2022-11-09 12:09:26 +0800
    • Engine revision 857bd6b74c
    • Dart version 2.18.4
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • 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.3)
    • 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.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/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.73.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • iPhone 14 Pro Max (mobile) • 332079AF-E895-4685-910E-7B1E18B0C6B8 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 107.0.5304.110

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

• No issues found!

[!] Flutter (Channel master, 3.6.0-7.0.pre.33, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.6.0-7.0.pre.33 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b7023e843a (2 hours ago), 2022-11-22 20:47:07 -0500
    • Engine revision f75287af0b
    • Dart version 2.19.0 (build 2.19.0-416.0.dev)
    • DevTools version 2.19.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • 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.3)
    • 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.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/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.73.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (4 available)
    • SM T225 (mobile)           • R9JT3004VRJ                          • android-arm64  • Android 12 (API 31)
    • iPhone 14 Pro Max (mobile) • 332079AF-E895-4685-910E-7B1E18B0C6B8 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 107.0.5304.110

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

! Doctor found issues in 1 category.

for me on version 5.0.0 and above, routing is not working as expected.

Demo
![contain][5.0.0]

@abubakarmvp
If you run flutter pub get with ^5.0.0 you will actually get the version 5.2.0
If you want to try out with 5.1.10 you need to write:
go_router: 5.1.10 # (And not ^5.1.10)

In your pubspec.yaml file

Thanks @ValentinVignal

I have the same issue, open named_routes.dart in example folder. run the app.
Select a row, then pop back, select the same row. it will not go forward!
version 5.2.0

maybe related https://github.com/flutter/flutter/issues/115962

Have the same issue

@chunhtai found the cause the culprit is your pull #2786:
void _handleStateMayChange() {
    final String newLocation;
    if (routerDelegate.currentConfiguration.isNotEmpty &&
        routerDelegate.currentConfiguration.matches.last
            is ImperativeRouteMatch) {
      newLocation = (routerDelegate.currentConfiguration.matches.last
              as ImperativeRouteMatch)
          .matches
          .uri
          .toString();
    } else {
      newLocation = _routerDelegate.currentConfiguration.uri.toString();
    }
    if (_location != newLocation) {
      _location = newLocation;
      notifyListeners();
    }
  }

in the _handleStateMayChange function which triggers router rebuild, you are accessing the new location via the uri property of the currentConfiguration of the router which is basically the location of the routeInformation.
The problem here is that the uri property doesn't get updated when the navigation is popped and that's because nothing triggers GoRouteInformationParser rebuild when popping the route (context.pop()), and when pushing a route (context.go()) a rebuild is triggered on GoRouteInformationParser which reflects the change.
So the location stays same when checking in _handleStateMayChange so rebuild on the GoRouter doesn't get triggered, and when we try to go to the same route again this part of the GoRouteInformationProvider ignores it:
set value(RouteInformation other) {
    final bool shouldNotify =
        _value.location != other.location || _value.state != other.state;
    _value = other;
    if (shouldNotify) {
      notifyListeners();
    }
  }

@chunhtai thanks a lot for the quick fix, this helps a lot!
I just tried it out and was wondering one thing. When popping a page from e.g. /resource/sub the updated URL is /resource/. I would've expected that the updated URL would be /resource without the trailing slash.
Would you consider this a bug? If yes, I'm happy to open up an issue.

@konnic yes, please file a bug and pin me on it.


No Handoff on Preferences/General after installation, MBP early 08 with Asus t400

I've installed the CAT on my mac, but there's no box for activate continuity on the menu!!
Everything should look ok

Here's the menu (in italian, but you can see there's no option for enable continuity or handoff)

Hi, if you notice on the diagnostic report the line about "Verifying AWOL status..." it says that your wifi card isn't supported. So, CAT won't work on your computer. Your only other option is to install a new wifi card, which @dokterdok mentions in the "Airport Extreme Card Upgrades" section on the main page.

But I got a broadcom card on my mac,

Yes, you have all the right Bluetooth hardware (broadcome, etc), but Continuity/Handoff requires more than just the right Bluetooth hardware. It also requires the right Airport (wifi) card hardware, which you do not have, based on the diagnostic report you included in your first post.
@dokterdok, correct me if I'm wrong.

Ok, thank you by now. I hope @dokterdok got good news for me; in the table of "compatibility, looks like mine just need the usb dongle.
I don't know it it mattes, but i receive and send, with no problems, SMS from / on my mac . That "part" of handoff works, and always worked :)

Hello,
@enrique89 is correct, your AirPort Extreme card is not compatible with CAT.
@iloverocknroll SMS and calling don't need CAT to work - CAT has no influence on those features.
Early 2008 MacBook Pros are in the red zone on the chart, you misunderstood I'm afraid: no AirPort Extreme upgrade options are known today for that Mac model : no one has reported a successful upgrade so far.

Thank you @dokterdok
To be honest I installed cat for call and receive calls on my Mac; do you know if it is possible or it need "extended" handoff given by cat?

CAT won't help you with Continuity calling as far as I know. To troubleshoot that feature, I'd suggest you look at other sites (e.g. here) that will better help you.

@dokterdok I've unistalled CAT but now EVERY time I need to configurate my mac to send and receive SMS!!


support reverse indexed placeholder for snippet

Consider the following snippet
"for": {
  "prefix": "for",
  "body": [
    "for (size_t ${1:i} = ${2:0}; ${1:i} < ${3:length}; ${1:i}++)",
    "{",
    "\t$4",
    "}"
  ],
  "description": "Code snippet for 'for' loop"
},

I am usually fine with i, but sometimes I want to change i (think of nested loops).
In the current state, I will be forced to hit tab every time I don't want to change i.
I suggest using -1 for i.
So normally it will focus on ${2:0} and if I need to change i, I can use shift+tab to focus on i.
The snippet I hope:
"for": {
  "prefix": "for",
  "body": [
    "for (size_t ${-1:i} = ${1:0}; ${-1:i} < ${2:length}; ${-1:i}++)",
    "{",
    "\t$3",
    "}"
  ],
  "description": "Code snippet for 'for' loop"
},

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Panic recovery -> reflect: call of reflect.Value.Elem on struct Value

I'm getting this error: panic recovery -> reflect: call of reflect.Value.Elem on struct Value when using MarshalMany() method.
Here's the code:
type League2 struct {
    ID   int64  `json:"id jsonapi:"primary,leagues"`
    Name string `jsonapi:"attr,name"`
}

var leagues []model.League2

err := Db.Table("league").Find(&leagues).Error
if err != nil {
    c.JSON(http.StatusInternalServerError, gin.H{})
    return
}

leagueInterface := make([]interface{}, len(leagues))
for i, league := range leagues {
    leagueInterface[i] = league
}

leagues2, err := jsonapi.MarshalMany(leagueInterface)

Any idea why?
I'm using gin framework and gorm btw.

It is because you are using int64 as the Id type. I think support for it was dropped in the latest version in the refactoring. I submitted a patch to include it back again, #26.

@sharonjl Thanks! It now works :+1: :)

https://github.com/shwoodard/jsonapi/pull/26 fixes.


Different rendering per object

Hi,
I am doing the union of two primitives in my distance function. But how can I have a different rendering between both? In my scene I'd like one to be textured and the others keep a unique color.
Thanks.

There seems to be some techniques to change texture or color of each distance function. I think the easiest method with uRaymarching is re-checking the distances of each function also in PostEffect.
DistanceFunction
inline float SphereA(float3 pos)
{
    return Sphere(pos - float3(-0.5, 0.0, 0.0), 0.5);
}

inline float SphereB(float3 pos)
{
    return Sphere(pos - float3(0.5, 0.0, 0.0), 0.5);
}

inline float DistanceFunction(float3 pos)
{
    return min(SphereA(pos), SphereB(pos));
}

PostEffect
inline void PostEffect(RaymarchInfo ray, inout PostEffectOutput o)
{
    float3 pos = ToLocal(ray.endPos); // do not forget convert the position to local one.
    float epsilon = ray.minDistance;
    if      (SphereA(pos) <= epsilon) o.Albedo = float4(1, 0, 0, 1);
    else if (SphereB(pos) <= epsilon) o.Albedo = float4(0, 0, 1, 1);
}

Thank you it works nicely.


Tiled display on Linux unless playing in stretched fixed mode

Describe the bug
The game screen only draws a square at the top left of the screen and repeats it over and over again. Interactions can be made, but the screen is not properly drawn.
To Reproduce

Open Runelite.jar
Set Stretched Fixed Mode off
???
Profit

Expected behavior
The screen should draw normally, not just the top left square.
Screenshots

The only settings the game will run in.

The tiled display. As you can see, the mouse is pointing at the fixed mode button, so only the final screen drawing is affected.
Environment (please complete the following information):

OS: Linux Mint 19 Tara running Xfce 4.12.3 (Gtk 2.24.31) desktop
RuneLite version: 1.4.14
Launcher version: 1.6.0

Additional context
Application.log:
2018-08-27 13:09:11 [main] INFO  n.r.client.account.SessionManager - No session file exists
2018-08-27 13:09:11 [main] INFO  n.r.c.plugins.kourendlibrary.Library - Library is now reset
2018-08-27 13:09:16 [AWT-EventQueue-0] INFO  net.runelite.client.ui.ClientUI - Showing frame net.runelite.client.ui.ContainableFrame[frame0,279,117,809x534,layout=java.awt.BorderLayout,title=RuneLite,resizable,normal,defaultCloseOperation=DO_NOTHING_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,809x534,layout=org.pushingpixels.substance.internal.ui.SubstanceRootPaneUI$SubstanceRootLayout,alignmentX=0.0,alignmentY=0.0,border=org.pushingpixels.substance.internal.utils.border.SubstancePaneBorder@4f0d0a9e,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
2018-08-27 13:09:16 [main] INFO  n.r.client.discord.DiscordService - Initializing Discord RPC service.
2018-08-27 13:09:18 [main] INFO  net.runelite.client.RuneLite - Client initialization took 9431ms. Uptime: 9866ms
2018-08-27 13:09:28 [Thread-4] WARN  n.r.client.callback.ClientThread - Exception in invoke
java.lang.NullPointerException: null
	at net.runelite.client.game.SpriteManager.getSprite(SpriteManager.java:75)
	at net.runelite.client.game.SpriteManager.lambda$getSpriteAsync$0(SpriteManager.java:92)
	at net.runelite.client.callback.ClientThread.invoke(ClientThread.java:99)
	at net.runelite.client.callback.Hooks.clientMainLoop(Hooks.java:149)
	at client.methodDraw(client.java:1132)
	at client.an(client.java)
	at am.ah(am.java:392)
	at am.run(am.java:346)
	at java.lang.Thread.run(Thread.java:748)

https://github.com/runelite/runelite/wiki/Disable-Hardware-Acceleration


langchain-core: Allow passing local cache to language models

Issue: close #19276
@eyurtsev PTAL

There are also some agents

@liugddx The acceptance criteria for this involve unit-tests because this is in langchain-core and is widely used functionality. (Most of the meat of the PR is expected to be testing)

I will complete the test case.

@baskaryan PTAL

@baskaryan PTAL

@eyurtsev PTAL thanks~

@eyurtsev  PTAL.Looking forward to your reply.

Resolve merge conflicts.


Quarto Pub Credentials

Hi Paco,
This morning I tried your template and it is very nice and easy to use. Thanks for making it public!
I wanted to publish in quarto pub though (https://quarto.org/docs/publishing/quarto-pub.html) and I was having a problem with authorising quarto pub credentials (https://quarto.org/docs/publishing/quarto-pub.html#quarto-pub-credentials). I guess it's similar to what you have created with the github pages. So my question is, once you add the repository’s action Secrets, did it work well for you?
I based my template on yours (https://github.com/Julenasti/curso-git-github-r), but I created a new one for mine because I wanted to see how it worked from scratch (https://julenasti.quarto.pub/curso-git-github-r/). Compared to yours, mine has another target in the github actions to be able to publish in quarto-pub:
with:
          target: quarto-pub
          QUARTO_PUB_AUTH_TOKEN: ${{ secrets.QUARTO_PUB_AUTH_TOKEN }}

Thanks in advance,

Thanks Paco! Yes, I followed those steps (or at least I tried) but I got a message that I didn't have the authorisation. I guess this has to be something to do with the actions secret and I thought you might have done this step also to host the website on GitHub changing the target. Yes, as you said, it's not a big deal because I can render locally without problem and upload but I was wondering how to do it with github actions. I will inspect more 🔍

Ok. It worked straightforward for me on github because I already have it configured (tokens and all). If you can't get quarto.pub to work you may still be able to render automatically and host on github pages. Or just render locally. Anyway, at least you have a running website!


Travis

Partial implementation by PR #34 .
For now, it remains pending to pass tests of kamon-scala and kamon-servlet, since it's breaking with a segmentation fault.

All tests green in Travis.


Node index check value fits in depth

Describe your changes
This modifies NodeIndex::new to validate that value is valid for depth.
Checklist before requesting a review

Repo forked and branch created from next according to naming convention.
Commit messages and codestyle follow conventions.
Relevant issues are linked in the PR description.
Tests added for new functionality.
Documentation/comments updated according to changes.

We should probably avoid making assumptions on scalar types as we would restrict the potential usage of these.

I'm not sure if I understand. AFAIK from the type system perspective this is a compound/product type, with a u8 and another u64 value, not an scalar, and I'm not sure how this matters. If we would pack the index and the value on the same u64, it would be a scalar type from the type system perspective but semantically it would still have two different values, and IMO we should have the validation there too.
I guess the issue is: should there be internal consistency or not? I personally think that yes, we should always have validation and use correctness by construction. This strategy allows for errors to be detected sooner, with better spatial and temporal locality. By that I mean the error will be caught closer to the line of code that produced it, instead of allowing incorrect values to flow through the system and just result into incorrect computation (this is super time consuming to debug).
Performance is ofcourse always a concern, and I agree we should have efficient code, but on something like this with something like 4 instructions on the constructor we need at least see where this would be an issue, and benchmark to double check it is actually a bootleneck, and if we do detect a bootleneck we can introduce unchecked version of the APIs. ref

I am generally in favor of changes in this PR (will do a full review later) - but I'd prioritize getting MerkleStore implemented and integrated into the VM. We can come back to this after that.


Replace Bard with Gemini in README and enhance Linux installation instructions

Replaced Google Bard with the new and updated Google Gemini in the README, specified installation instructions for different Linux distributions.

Thanks.


Support "outline" for text

Is your feature request related to a problem? Please describe.
As a dev,
I want to provide an outline color and width,
so that a text is rendered with an additional outline.
Describe the solution you'd like
Add outline parameters to Labels or other text rendering classes.
Additional context
Some of us had a short discussion about this before and it might be easy with a shader.
Example

A good proof of concept would be to modify & set the pyglet.text.layout.layout_vertex_source / pyglet.text.layout.layout_fragment_source shader source at the top of a hello_world. If we can find a reasonable looking algorithm, then I don't see why it couldn't be added.

As of 2.0.12, you can provide the shader through the program kwarg through Labels and Text Layouts. You can use the original shader and build it off that to make a separate shader, then pass it to your text object.

I will have a look, if I might be able to do it myself. Thank you for the hint


Virtual report suite link doesn't go to a real page

Issue in help/implement/analytics-terminology-basics/ref-reports-report-suites.md

Click this link and see it goes to a blank doc page:

Hi @bkfarnsworth - this one is a bit tricky, since we have no equivalent Home page in the new doc system. Did you have this bookmarked or did you find it in the UI?

@bkfarnsworth - never mind - I think I know how to fix it.

Hi @MicaPete I did not have it bookmarked, found this link while I was googling for documentation:
https://docs.adobe.com/content/help/en/analytics/implementation/analytics-basics/ref-reports-report-suites.html
I was just googling "what is a report suite"
That page had the link to the VRS page that does nothing.

Yes, I am fixing it now, @bkfarnsworth - I will fix a bunch of other links on that page as well. You will see it published this afternoon.

Fixed.


Jog mode bug

for example
activeIncrementValue = 1.0000
when I turn encoder A or encoder B (if present) slowly - position incremented by 1 as it should.
If I turn encoder rapidly back an forth, position incremented accidently by  fractional number (for ex. 0.125)
If USE_UI_ENCODER_B_ISR enabled or disabled nothing changed. same issue.
I tried many different encoders, mpg wheels. Its software issue.
I tried to fix it but cant understand UISupport.cpp . My programming abilities too low for it =(
please help...

EXEC_MOTION_CANCEL flag set when changing direction while axis moving

also still cant figure out why А feedrate didnt change actual speed in jog mode
maybe im doing something wrong?
could you tell me how do you use it?

I have added feedrate change during jog. As it used during PowerFeed
config.h
#define UI_JOGGING_BASE_STRING_METRIC   		"$J=G91F"
#define UI_JOGGING_BASE_STRING_INCH     		"$J=G91F"
UISupport.cpp
if(!UILineBufferIsAvailable()) return;
const char *source = (gc_state.modal.units)?PSTR(UI_JOGGING_BASE_STRING_INCH):PSTR(UI_JOGGING_BASE_STRING_METRIC);
char *cursor = UILineBuffer;
char c;
while ((c=pgm_read_byte(source++))) *cursor++ = c;
**cursor = sPrintFloat(cursor, 10, jogFeed, 1); //set feed**
*cursor++ = activeAxis;

cursor = sPrintFloat(cursor, 10, activeIncrementValue * count, 4);

*cursor = 0;

Also fix a bug of feedrate. It didnt change value if editBuffer<4
void JogUIPage::enterKeyPressed(void)
{
if(!editingJogFeed) return;
  if(editBufferState == 0)
  {
    jogFeed = 0.0;
  }
  else
  {
    **while(editBufferState<4) {editBuffer[editBufferState++] = ' ';}**
		jogFeed = stringToFloat(editBuffer);
   }

EXEC_MOTION_CANCEL flag set when changing direction while axis moving

Where did you locate this in the script? Which Line(s) please?
Kind Regards

UIsupport.cpp
line 1863
line 1889
and few times later i this file
But I forgot already if the problem still there. it was year ago/ I revised all code and post branch there https://github.com/how-eee/grbl_lathe_UI_threading
My lathe still working every day with no issues (minor issues dont count)

UIsupport.cpp
line 1863
line 1889
and few times later i this file
But I forgot already if the problem still there. it was year ago/ I revised all code and post branch there https://github.com/how-eee/grbl_lathe_UI_threading
My lathe still working every day with no issues (minor issues dont count)

Many thanks for your reply...
Kind regards

UIsupport.cpp
line 1863
line 1889
and few times later i this file
But I forgot already if the problem still there. it was year ago/ I revised all code and post branch there https://github.com/how-eee/grbl_lathe_UI_threading
My lathe still working every day with no issues (minor issues dont count)

Many thanks for your reply...
Kind regards

Hello
I've looked at this UISupport.ccp and your UISupport.ccp on your branch and can't see any difference between the two.
Did you rectify this issue?
I've noted that the Jog Wheel has a tendency to change direction when spun quickly which cancels the movement very briefly mid Jog and gives rise to the incomplete travel/movement, hence odd values.
Also, the wheel doesn't respond to the first 'dent' or click when direction is changed, you get like a dead spot. This only happens when direction has been changed though.
Is this an issue in the Protocol script?
Thoughts welcomed...
Kind regards

I assume this is correct behavior.
When you jogging your mashine in one direction than rotate encoder another direction it  stopped immidiatly with EXEC_MOTION_CANCEL flag. And it doesnt lost its position.
If yoг wait until jog motion finished and then rotate wheel to another direction, first click change direction,second click move axis.
When you rotate encoder fast it starts to jitter, and you get wrong series of impulses of your encoder.
I made 3dprinted own MPG with two latched hall sensors and magnets. It works perfect at any rotation speed. I dont have issues with it anymore.

you can see it here https://youtu.be/8M4gzLkSXls

you can see it here https://youtu.be/8M4gzLkSXls

Hello How-eee
Thanks for the link and reply.
Great job on the DIY Encoder. Works really well it seems.
Following your comments, I've added 10nF caps to the lines on my MPG wheel and it has cleaned up the movement nicely!
Thanks for sharing...
Kind regards

you can see it here https://youtu.be/8M4gzLkSXls

Hello How-eee
Thanks for the link and reply.
Great job on the DIY Encoder. Works really well it seems.
Following your comments, I've added 10nF caps to the lines on my MPG wheel and it has cleaned up the movement nicely!
Thanks for sharing...
Kind regards

How did you connect those caps?

you can see it here https://youtu.be/8M4gzLkSXls

Hello How-eee

Thanks for the link and reply.

Great job on the DIY Encoder. Works really well it seems.

Following your comments, I've added 10nF caps to the lines on my MPG wheel and it has cleaned up the movement nicely!

Thanks for sharing...

Kind regards

How did you connect those caps?

Between both lines and GND
Google 'Rotary Encoder caps'
Kind regards


Stac 13356 v3 merge master

Step 1: Link to Jira issue
Step 2: Description of changes
Step 3: Did you add / update tests for your changes in the right area?

[ ] Unit/Component test
[ ] Integration test
[ ] E2E/Molecule test

Step 4: I'm confident that everything is properly tested:
I got a PO / QA Approval by:

[ ] Name

Step 5: Did you add release notes describing the changes you made?

[ ] Yes

Step 6: Can we ship this feature to production?

[ ] Yes, I'm proud of my work. Ship it! :ship:

Replaced by https://github.com/StackVista/stackstate-agent/pull/341


Added onDragEndConfirm to DndContext

In #107 a confirm dialog on drop was added to storybook.
The demo was implemented with window.confirm which is rarely used. Usually a modal is used, but since it can't stop javascript execution the way window.confirm does - it won't work, as the drag end handler and its drop animation just won't wait.
My proposition
<DndContext> exposes a new prop onDragEndConfirm. If provided, it awaits a Promise execution in the drag end handler, expecting a boolean return value:

true continues onDragEnd
false aborts onDragEnd and triggers onDragCancel

<DndContext onDragEndConfirm={(event: onDragEvent) => Promise<boolean>}>

Screencast
https://user-images.githubusercontent.com/486954/111068510-b3880800-84d1-11eb-9c6c-b7866a9b4809.mov

@clauderic lmk what you think. I believe this implementation adds no risk and works well.
It's important to me as it is a must-have feature in our app, and imo a common enough use case.
I can add a cypress test upon your approval.

@clauderic I pushed the requested changes. Take a gander.
And feel free to modify the code as you see fit before merging.
Lmk if you think it deserves an e2e test (but perhaps in subsequent PR bc some changes are needed for Cypress to be able to to flip on the storybook control).


HDDS-10965. Add Top N Datanode Latency Metrics for Block Operations

What changes were proposed in this pull request?
Add the datanode dimension for the GetBlock, PutBlock, WriteChunk and ReadChunk, Since the Since a cluster has a very large number of Datanodes, if you export metrics for all Datanodes, this will generate a very large number of metrics, so this adds a TopNMetrics type, which will only display information about the Datanodes with the highest latency.
With this Metrics, we should be able to quickly find out if a Datanode is failing (for read operations, we can confirm directly with the Metrics Tag: name, for write operations, we need to combine it with the Pipeline information, in the Metrics for write operations, Tag: name is the Datanode UUID of the Pipeline's leader).
What is the link to the Apache JIRA
Example
Configuration
  <property>
    <name>ozone.xceiver.client.top.metrics.latency.record.threshold.ms.key</name>
    <value>1, 10</value>
  </property>
  <property>
    <name>ozone.xceiver.client.top.metrics.latency.record.count.key</name>
    <value>5</value>
  </property>

Metrics
[root@VM-7-9-centos ~]$ curl -s http://<IP_ADDRESS>:9878/prom | grep -v '#' | grep -i top | grep top
xceiver_client_metrics_put_block_exceed10_ms_count_top_n{top="1",name="2384b4cc-6808-489c-a14e-0781a6cbeb5d",hostname="VM-7-9-centos"} 1
xceiver_client_metrics_put_block_exceed1_ms_count_top_n{top="1",name="2384b4cc-6808-489c-a14e-0781a6cbeb5d",hostname="VM-7-9-centos"} 13
xceiver_client_metrics_put_block_exceed1_ms_count_top_n{top="2",name="99ce0d5a-0c29-49b5-94b5-cae68f8bdc39",hostname="VM-7-9-centos"} 9
xceiver_client_metrics_write_chunk_exceed10_ms_count_top_n{top="1",name="2384b4cc-6808-489c-a14e-0781a6cbeb5d",hostname="VM-7-9-centos"} 1
xceiver_client_metrics_write_chunk_exceed1_ms_count_top_n{top="1",name="2384b4cc-6808-489c-a14e-0781a6cbeb5d",hostname="VM-7-9-centos"} 13
xceiver_client_metrics_write_chunk_exceed1_ms_count_top_n{top="2",name="99ce0d5a-0c29-49b5-94b5-cae68f8bdc39",hostname="VM-7-9-centos"} 9

How was this patch tested?
existing test

@xichen01 thanks for working on the change.
Please resolve the merge conflict. Can you also introduce additional unit tests to cover TopNMetrics?

@xichen01 also, can you please fix the PR title?  I don't think this is specific to S3 Gateway.

@xichen01 thanks for working on the change.
Please resolve the merge conflict. Can you also introduce additional unit tests to cover TopNMetrics?

OK, I will

@xichen01 also, can you please fix the PR title? I don't think this is specific to S3 Gateway.

Updated

can you please fix the PR title? I don't think this is specific to S3 Gateway.

Updated

Thanks a lot, the new one is much better for clarity.

Why do we need to filter the metrics for top 10 here and add a lot of processing in the data path? Grafana can sort and showcase top 10. Why don't we just add the datanode label for each latency measured from the client. This way, we can compare client side view of latency on a per datanode basis even if they are below a certain threshold? It might be over all simpler to capture all the data in the client and let grafana sort through and present what we want instead of adding the threshold logic here.

@kerneltime can you please check if the latest comment answers your question?

/pending conflicts


phing 2.9.0 incompatible?

today i updated my symfony project and got phing/phing (2.9.0) installed. after that php app/console propel:build hasn't worked any more.
---snip---
vendor\propel\propel1\generator\build.xml
Override ignored for user property phing.file
Override ignored for user property phing.dir
Overriding previous definition of reference to phing.file
parsing buildfile build.xml
Project base dir set to: Z:\
Property ${project.dir} => Z:/work/example.com.dev/app/cache/dev/propel
Property ${application.startdir} => Z:\
[resolvepath] Resolved Z:/work/example.com.dev/app/cache/dev/propel to Z:\
Build sequence for target 'build-sql' is: check-project-or-dir-set check-project-set set-project-dir check-buildprops-exists check-buildprops-for-propel-gen check-buildprops configure build-sql
Complete build sequence is: check-project-or-dir-set check-project-set set-project-dir check-buildprops-exists check-buildprops-for-propel-gen check-buildprops configure build-sql  main convert-conf create-db reverse datadump datasql insert-sql om new-om sql sql-diff diff migration-status status migration-up migrate-up up migration-down migrate-down down migration migrate old-sql dbd2propel graphviz
---snip---

---snip---
Task property (phing.tasks.system.PropertyTask) already registered, skipping
    [phing] Calling Buildfile 'Z:\build-propel.xml' with target 'build-sql'
Overriding previous definition of reference to phing.file
[PHP Error] Undefined variable: php_errormsg [line 59 of Z:\work\example.com.dev\vendor\phing\phing\classes\phing\system\io\FileInputStream.php]
    [phing] Unable to open Z:\build-propel.xml for reading:

BUILD FINISHED

Total time: 0.0190 seconds

0 SQL file has been generated.
---snip---

reverting it back to phing/phing (2.8.2) made it work again.

i can't confirm this too. I'm using 2.9.1 same as @marcj. Btw, there is a PR #936 related to the phing version.


iOS: dismiss keyboard, predictive covers key info

1.0(9)
0.2.12 version
I was going through the suggestions in the index and noticed when I tried to use the Stats: Show command that the output was covered up by the predictive text bar on top of the keyboard. There is a larger issue at play here: it would be nice to be able to dismiss the keyboard easily, maybe with a button in the top row. I realize one can tap on an empty section of the page but that's not always easy nor obvious.
Tapping command:

Output obscured:

Right, I've been looking at the CapacitorJS keyboard docs a bit, but there doesn't seem to be a lot of flexibility here. Currently the "resize" mode is set to native, which is supposed to resize the entire webview (UI) to fit above the keyboard. But indeed, it seems that doesn't take into account the auto suggest. Perhaps I should make a bug report there.
As to dismissing the keyboard: I've noticed this too. It's possible to programmatically dismiss the keyboard, but I'm not really sure when this is supposed to happen...

Closing this, because the native apps have now been replaced with the PWA.


Show tickers

Respond to a command in Slack to show a list of all the current tickers.

I don't think I'm going to invest time in making Slack more than just a log channel unless more people express an interest in it. I haven't really needed it so far.


Cut plane detection

Adding a tool to search for the cut plane
The idea is to look at the distribution of all neuron data points along the X, Y, Z axes and to look for the sharpest cut at the beginning/end of each distribution:
1) The distribution of all points along X, Y and Z is computed
   and put into 3 histograms.

2) For each histogram we look at the first and last empty bins
   (ie. the last bin before the histogram starts rising,
   and the first after it reaches zero again). Under the assumption
   that there is no cut plane, the posteriori probability
   of observing this empty bin given the value of the not-empty
   neighbour bin is then computed.
3) The lowest probability of the 6 probabilities (2 for each axes)
   corresponds to the cut plane"""

Yes, I am currently writing them.
If there is no cut plane the computed probability will be higher than as usual.
Based on the morphologies I have, I can try to find a threshold above which to set a warning about the computed plane, or to return no plane at all.
I will try to reproduce your crash.

On 15 Sep 2017, at 17:08, jdcourcol<EMAIL_ADDRESS>wrote:
@jdcourcol commented on this pull request.
Can you provide some unit tests please ?
What is supposed to happen if there is actually no cut plane ? Let say I provide a repaired cell without any particular cut artefact.
I tried to run it on Mac and got the an error (see below). As I am using an executable, is that something that your code should handle ?
File "/Users/courcol/DEV/NeuroM/venv/lib/python2.7/site-packages/matplotlib/backends/init.py", line 32, in pylab_setup
globals(),locals(),[backend_name],0)
File "/Users/courcol/DEV/NeuroM/venv/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 19, in
from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/BlueBrain/NeuroM/pull/646#pullrequestreview-63073292, or mute the thread https://github.com/notifications/unsubscribe-auth/ABm2Vh9i77WQYb-nKoqcCQF0V32nXrNNks5sipL-gaJpZM4PYmVG.

@jdcourcol That error is due to how your python is installed: if you're using brew or fink (iirc), you get that error.  Can you try using the system python?
https://stackoverflow.com/questions/4130355/python-matplotlib-framework-under-macosx

I should add that it's a mismatch between the matplotlib wheel that's being installed, and the how your python was compiled, so, in theory, you could recompile matplotlib (or install it from where you installed python) and that should work.

@jdcourcol That error is due to how your python is installed: if you're using brew or fink (iirc), you get that error. Can you try using the system python?
https://stackoverflow.com/questions/4130355/python-matplotlib-framework-under-macosx

I changed my ~/.matplotlib/matplotlibrc with backend : TkAgg and that works. Thank you.

Codecov Report

Merging #646 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #646   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          41     42    +1
  Lines        2041   2116   +75
=====================================
+ Hits         2041   2116   +75


Update PA admin warnings

About the PR
With singulo fixed by https://github.com/space-wizards/space-station-14/pull/28906, PA strength 3 and below (level 2) are now safe. Update the admin logging to reflect this.
Why / Balance
Don't scare admins into bwoinking people unnecessarily.

So an admin has been getting a ping every time I've setup singulo?

So an admin has been getting a ping every time I've setup singulo?

No, an admin has been getting a ping every time the PA is set to strength 2 or above. This PR changes it to strength 4.

So an admin has been getting a ping every time I've setup singulo?

No, an admin has been getting a ping every time the PA is set to strength 2 or above. This PR changes it to strength 4.

Yeah, I always set it to strength 3 when I setup PA


createDriver undefined in redux-saga-requests-axios

saw a commit yesterday, maybe something got broken in exports?
createDriver doesn't seem to be exported  from redux-saga-requests-axios.  i'm developing a project with react-redux-boilerplate as a basis. so to reproduce for my env (using node 8.9.0):
git clone git@github.com:flexdinesh/react-redux-boilerplate.git
npm install axios && npm install redux-saga-requests && npm install redux-saga-requests-axios

in src/app.js, add
import { createRequestInstance, watchRequests } from 'redux-saga-requests';
import { createDriver } from 'redux-saga-requests-axios';
console.log('createDriver', createDriver);
// createDriver undefined

and the warning in chrome i see is:
./app/app.js 40:28-40"export 'createDriver' was not found in 'redux-saga-requests-axios' @ multi eventsource-polyfill webpack-hot-middleware/client?reload=true ./app/app.js

great, that worked for now, thanks for the quick reply

@inconduit You can use new syntax with createDriver in new version 0.16.0


Server plugin refresh triggers before compile completed

Basic info

OS: [Windows]
VSCode version: Latest
Extension version: Latest (3.0.3)

Further Information
Having sourcepawn.refreshServerPlugins set to afterCompile does not wait for the compile to complete and refreshes the plugins instantly.

Probably just needs this to be added after sending terminal text?
https://github.com/microsoft/vscode/blob/1c4b3759ff8c4483e506834e51d7e9fa31ac80b6/src/vs/vscode.d.ts#L5300-L5313

I see what's going on here, but your suggestion will only work when the terminal crashes (i think). I will have to test it.

i will have to test it

I did, and the onDidCloseTerminal method only fires when you kill the terminal, it's by design apparently, as explained here : https://github.com/microsoft/vscode/issues/97217#issuecomment-625795242
The only option I see is to add a sleep function, but that's not very clean...

@bakapear please try the latest build here. It implements the second fix I proposed above. I still don't know if it works on windows, will have to try later.

On 3.0.4 it prints this in terminal after compile:
PS C:\Users\pear\Desktop\plugins> .C:/Users/pear/AppData/Local/sourcemod/scripting/spcomp.exe c:\Users\pear\Desktop\plugins\test.sp -oB:\games\misc\TF2 Server\steamapps\common\Team Fortress 2 Dedicated Server\tf\addons\sourcemod\plugins\test -iC:/Users/pear/AppData/Local/sourcemod/scripting/include -ic:\Users\pear\Desktop\plugins\include -ic:\Users\pear\Desktop\plugins -O2 -v2
.C:/Users/pear/AppData/Local/sourcemod/scripting/spcomp.exe: The term '.C:/Users/pear/AppData/Local/sourcemod/scripting/spcomp.exe' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

However it does work. The plugin gets compiled and afterwards server plugins refresh.
If the solution isn't ideal though, what about using window.onDidWriteTerminalData to listen for the terminal output and proceed when it sees the last line saying Done. & abort on Error. / Errors.?
Might be better than a separate process, if it works.

EDIT: Apparently window.onDidWriteTerminalData is not in the API? Can't really test anything here just trying to help ;p

It's only in the proposed API (meaning it won't get implemented) for performance concerns apparently.
I've just pushed another commit that removes the ., I think it's not needed here. Please try the latest build again and let me know if it works.

Please try the latest build again

Have you pushed a new release? I only see 3.0.4 as latest pre-release there.
Manually removing the dot infront still isn't enough as I get this error from the compiler now:
Server\steamapps\common\Team.sp(0) : fatal error 183: cannot read from file: "Server\steamapps\common\Team.sp"
Version 3.0.3 put the paths in quotes while 3.0.4 does not anymore:
3.0.3:
.'C:\Users\pear\AppData\Local\sourcemod\scripting\spcomp.exe' 'c:\Users\pear\Desktop\plugins\test.sp' -o='B:\games\misc\TF2 Server\steamapps\common\Team Fortress 2 Dedicated Server\tf\addons\sourcemod\plugins\test' -i='C:\Users\pear\AppData\Local\sourcemod\scripting\include' -i='c:\Users\pear\Desktop\plugins\include' -i='c:\Users\pear\Desktop\plugins' -O2 -v2

3.0.4:
.C:\Users\pear\AppData\Local\sourcemod\scripting\spcomp.exe c:\Users\pear\Desktop\plugins\test.sp -oB:\games\misc\TF2 Server\steamapps\common\Team Fortress 2 Dedicated Server\tf\addons\sourcemod\plugins\test -iC:\Users\pear\AppData\Local\sourcemod\scripting\include -ic:\Users\pear\Desktop\plugins\include -ic:\Users\pear\Desktop\plugins -O2 -v2

I ended up adding a timeout with a setting to configure the amount of time to wait. It's not clean, but it makes more sense than spawning another process.

Actually another thing comes to mind:

Compile plugin with child process exec
Redirect stdout/stderr messages to output window
Trigger Plugin Refresh

let output = window.createOutputChannel("SourcePawn")
...
output.show()
let child = child_process.exec(compileStr)
child.stdout.on(data => output.appendLine(data.toString())
if(refreshAfterCompile) child.on("close", refreshPlugins)

Shouldn't this work in theory? Output window would be better than opening up another terminal in my opinion.

The problem with this solution is that outputchannels can't be reaccessed once they were created like this issue states.
If I figure out something I will implement it, as I think it's cleaner.

I experimented a bit with this and I don't think there is a need to access output channels for this to work.
Just create the output channel once before compile and save it to variable to be used for future compiles.
Managed to do it here: https://github.com/bakapear/sourcepawn-vscode/commit/02833934474d72e4e3d322a4f3d9872b7a70f629

Managed to do it here: bakapear@0283393

Looks good!
Can you do a PR so I can merge this?


select_STR_reads error

Hi,
I installed BaitSTR by cloning the repository from Github, as suggested. After "make", I ran into an issue where I had to rename the .so files in the src folder (fastq.cpython-35m-x86_64-linux-gnu.so to fastq.so, and select_STR_reads.cpython-35m-x86_64-linux-gnu.so to select_STR_reads.so), but then the correct files were created in the bin folder (after "make install").
./merge_STR_reads and ./extend_STR_reads both print the usage options; however,
./select_STR_reads leads to the following error:
File "./select_STR_reads", line 75
except GetoptError, err:
^
SyntaxError: invalid syntax
python2 select_STR_reads leads to the following error:
Traceback (most recent call last):
File "select_STR_reads", line 61, in
from select_STR_reads import *
ImportError: /home/user/workspace/SNP_caller/tools/BaitSTR/bin/select_STR_reads.so: undefined symbol: _Py_FalseStruct
python3 select_STR_reads leads to the following error:
File "select_STR_reads", line 75
except GetoptError, err:
^
SyntaxError: invalid syntax
Any thoughts on how I can get this to run?
Thank you!!

The first issue (names of the .so files) is a consequence of  PEP 3149, which has been implemented since Python 3.2. So I believe what is happening is that 'make' is using python3 to create the .so files. BaitSTR does not support python3, so when you use 'python3' to run select_STR_reads it fails due to syntax issues. 'python2' fails as the *.so files have been compiled using python3.
You could try the following:
make clean

Replace 'python' with 'python2' in 'src/Makefile'. Then try 'make' again.
Thanks.

Hi Aakrosh,

make clean
replaced 'python' with 'python2' in 'src/Makefile'
make && make install
python2 select_STR_reads > prints the usage options :)

Thank you!

Great, glad that this was resolved. Thanks for your interest in BaitSTR.


DiplomaticNetworkNodeMapping fails with more than 9 cores

Method getNode in DiplomaticNetworkNodeMapping cannot handle more than 9 cores. The issue is with how string matching is performed, consider:
getNode("Core 10 DCache[0],Core 10 DCache MMIO[0],Core 10 ICache[0]", ListMap("Core 10" -> 1, "Core 1" -> 0))

Here we will have matches = List(true, true), because "Core 10" contains both "Core 1" and "Core 10".  I would say the desired results should have been matches = List(true, false).
A quick fix is:
 def getNode(l: String, nodeMapping: ListMap[String, Int]): Option[Int] = {
    val keys = nodeMapping.keys.toSeq
    val patterns = keys.map { k =>
      val regexSpecial = Seq(
        "+","*", "?", "^", "$", "(", ")", "[", "]", "{", "}","|"
      )
      val escaped = regexSpecial.foldLeft(k) { case (kk, ch) =>
        kk.replace(ch, "\\" + ch)
      }
      raw".*${escaped}[A-Z,a-z,\,,\[,\],\s,\|]+.*".r
    }
    val matches = patterns.map { p => p.findFirstIn(l) }
    if (matches.filter(_.nonEmpty).size == 1) {
      val index = matches.indexWhere(_.nonEmpty)
      Some(nodeMapping.values.toSeq(index))
    } else {
      None
    }
  }

Thanks for reporting and posting a fix.
I don't remember precisely, but does "Core 1 " (note the space) resolve this too? It's quite the hack, but I seem to recall that's how I got around this issue.
Obviously the more fundamental problem is using this string matching system in the first place... I couldn't find a better way to do this without major API additions elsewhere.

Thanks for the quick response.
Yes "Core 1 " (with white-space) does solve the issue. And that is a much simpler and better hack than regular expression.


Cyb 60 word search

Cyb 60 word search and password game changes

I've added this into another branch so I can add it into our current dashboard. Your changes are now in main. Have a little test and see if everything is still working and if you're bug persists


Lingering issues in Pop-Up-Shop.ipynb

Lingering issues in Pop-Up-Shop.ipynb

[x] "A naive solution to this proc is to place" -> "A naive solution to this problem is to place"
[x] Pet Shop should be Pop-up Shop
[x] All the variables are defined as NonNegativeReals, but the description clearly talks about items? What's the best way to resolve this?
[x] Do we need the very big image at the very beginning of the notebook?

Copy-pasting here some of the old issues:

[x] Do we want to address the reader as "you" and phrase the problem as a dialogue? As in, you need to solve this, you need to help X dealing with this issue, etc.?
[ ] I changed a bit the wording in the book, shall I change it accordingly in the notebook? Or is it fine if they're not identical?
[x] Euro symbol before or after the number? With the space or without?
[x] Do we need the capitals for Sunny Skies, Good Weather and Poor Weather? The corresponding dictionary keys have all small caps. Shall we go for the more boring "good, average, poor weather" classification? Or shall we stick to the more fun and creative sunny skies, but then add cloudy day and heavy downpour?
[ ] Should the mathematical style of the equations (and of the full optimization problem) be consistent between book and online companion?

Copy-pasting here some of the old issues:

[ ] Do we want to address the reader as "you" and phrase the problem as a dialogue? As in, you need to solve this, you need to help X dealing with this issue, etc.?
[ ] I changed a bit the wording in the book, shall I change it accordingly in the notebook? Or is it fine if they're not identical?
[ ] Euro symbol before or after the number? With the space or without?
[x ] Do we need the capitals for Sunny Skies, Good Weather and Poor Weather? The corresponding dictionary keys have all small caps. Shall we go for the more boring "good, average, poor weather" classification? Or shall we stick to the more fun and creative sunny skies, but then add cloudy day and heavy downpour?
[ ] Should the mathematical style of the equations (and of the full optimization problem) be consistent between book and online companion?

Alessando ... I checked off most of these.  I did go through the text to remove the "you" reference, and otherwise tried to streamline things. I'm not sure it is necessary for the language to be identical in the book and notebook. Let me know what you think.

All looks good to me, Jeff, thanks for the edits. I agree with allowing the language in the book and companion notebooks to diverge a bit. I'm closing the issue then.


WIP: Update menu translations for Turkish

Developers who know the language are now needed to help complete this PR.  The menu translation items template is generated by https://github.com/adaext/vim-menutrans-helper. I've scanned all the menu items and created a fairly completed template. It haven't been updated for years, many new items would be added except items inmenu.vim.

@chrisbra this can be closed i checked

so was this included already?

This seems to be maschine translated with some errors. I am not including this. Closing.

I want to update the menu translations along with my regular translation updates, but I am not sure how to update the template - or how to pull the latest changes. Is there a documentation for this?


doc: security: Refresh hardening tool doc page

Improved the wording of the Hardening tool documentation to better reflect that it provides suggestions for both options that could be enabled for improved security, as well as options that should be disabled for they may expose to vulnerabilities.
Also fixed the "Usage" section which was stale.
DIRECT LINK TO NEW HTML PAGE: https://builds.zephyrproject.io/zephyr/pr/57958/docs/security/hardening-tool.html

Thanks @ceolin! Would you be able to recommend another reviewer?


fix replaceBase macro in 0.5

This should hopefully fix the issues with @replaceBase that was causing the tests on 0.5 to fail.

This seems to work! I'm going to go ahead and merge it  - it will be nice to see the build badge be green!


Client Allocation Request for: Future Asset Financial

Client Allocation Questions
Core Information

Name: Future Asset Financial
Website / Social Media: http://www.futureassetfinancial.com/
Region: Asia excl. Greater China
DataCap Requested: 1TiB
Addresses to be Notarized: f3uzdoz4kvubl3oabbtzufqaeirsqo2wbjqjerlxm3urdo4p5t3sdey756e4576veigxdg2kd7imre63ytiqbq
Notary Requested: Broz221

@fafinacial Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

Thanks for your application!
Could you please introduce you and your company?

Thank you for your reply.
My name is Han, and I'm the CEO of the company. Our business is to create technology-based social values in the SI field by combining blockchain technology and IPFS and contribute to society based on them.
If you have anything you want to ask, feel free to do anytime.

Hi, we only accept application from NA. We'd love to suggest you choose Chinese notaries.


Write a Swift program to check alphabet

Description
Write a Swift program to check alphabet
Check that the given character is an alphabet or not (a-z, A-Z).
Input  : a
Output : Alphabet

How to contribute

Save the solution in CheckAlphabet.swift file
Add CheckAlphabet.swift file in check-alphabet folder

!assign


Web based IDE

Now that stack and stack-ide are here, it should be fairly straightforward to create a web based ide.
I can think of

websocket proxy between web ui and stack-ide process
ace9 for editor (see the kitchen sink demo and choose haskell https://ace.c9.io/build/kitchen-sink.html)
git integration for free via an open source tool like git-webui
hoogle, HaRE, haddock, hlint, codex all setup by stack directly and proxied by ide rest api
terminal for free with some open source tool like shellinabox or whatever found on github (https://github.com/search?utf8=✓&q=web+terminal+)

We can also leverage docker for packaging and deploying components, or even offering users some quick scripts to package apps, etc.
What do you think ?

I think the idea behind haskell-ide is to be a daemon that supports multiple different frontends. A web interface would be just another one of these.

oh ok


Minor fixes in the grayscale_icon_map.xml file

Removed duplicated icon map for WhatsApp Business and fixed the package name for myXL.

Thanks, @N0-0NE-Dev!

Thanks, @N0-0NE-Dev!

You're welcome @patrykmichalik


Ask how the client has multiple domain names use cas?

My site use multiple domain names point to the same Web App,
Whether it is a single sign-on service or web application.
Fixed domain name can not be written in the configuration inside,
Ask how to use the cas, can an example?

Are you asking about the CAS client  or CAS server?

Please use the cas mailing lists for further questions.


net/haproxy: Support OCSP stapling for multiple certs in a PEM blob

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md

[x] I have searched the existing issues and I'm convinced that mine is new.

[x] When the request is meant for an existing plugin, I've added its name to the title.

Is your feature request related to a problem? Please describe.
https://github.com/opnsense/plugins/commit/d5b7a679b86f9af1e46bf6920c37a38aa15d0ec9 added support to the plugin for automatically fetching the OCSP responses for all certs used by haproxy public services, but it only did this for certs that were created using the internal CA method, since only those certs have caref set. For imported certs there is no caref, so that code does not generate a .issuer file, so updateOcsp.sh ignores such certs.
Describe the solution you'd like
exportCerts.php should support certs which don't have a caref but do have more than one CERTIFICATE in the PEM blob. All CERTIFICATEs except the first constitute the issuer chain and should be written to a .issuer file.
Describe alternatives you've considered
N/A
Additional context
Originally reported at https://github.com/opnsense/plugins/issues/1430#issuecomment-860172357

it only did this for certs that were created using the internal CA method, since only those certs have caref

That's not accurate. Certificates generated by the Let's Encrypt plugin also work as expected.
Wild guess: importing the CA/chain certificate for a certificate would probably add the required caref to the certificate.

Sure, I was only looking at the Cert Manager endpoint code in tthe core repo when I made that observation, not the plugins repo.

Wild guess: importing the CA/chain certificate for a certificate would probably add the required caref to the certificate.

@Arnavion Can you confirm that importing the CA/chain certificate fixes this issue?

If you mean I should use the "Import an existing certificate" option in the Certificates UI, that does not allow me to import a cert without its private key.

No, you should import the CA/chain certificate under System: Trust: Authorities. Most certificates ship with a CA/chain certificate and you should import this too.

Yes, doing that retroactively adds the caref to the original server cert I had imported.
It would be good to implement the solution I noted in the OP as well, because all the information needed to identify the issuer is already in the original certificate's PEM blob.

Thanks for the confirmation. So there already exists a working solution to this problem.
I may be wrong, but I think this is exactly how it is supposed to work in OPNsense:

import the CA certificate under System: Trust: Authorities
import the certificate under System: Trust: Certificates

A certificate that was imported this way should work both with OPNsense core components and all plugins.

exportCerts.php should support certs which don't have a caref but do have more than one CERTIFICATE in the PEM blob

What's the reason not to use the previously described workflow?
I don't like the idea of modifying exportCerts.php to support this. It would need to be able to parse (unexpected) additional data, making it more complex without a real benefit, just to support an undocumented feature. And it would only work for HAProxy, but other OPNsense components use similar scripts to export certificates, they would not support this feature.
If there is a real use-case for this, please let me know.

The reason is that a single PEM containing the full chain is a standard way of dealing with certs. You get one file containing the chain from your issuer and can trivially copy-paste the whole chain into the "Import Certificate" form. Having to manually split the PEM and input two forms is busywork.

I get that. However, since I'm a volunteer and there is a working solution, I'm not going to work on this. But everyone is free to step in and submit a PR, then I'll gladly review it.
(FWIW, I'd recommend to use something like Let's Encrypt, since there's no need to manually import certs.)
(I'll unassign myself and flag this issue so that it's clear that PRs are welcome. However, according to the contribution policy this issue may automatically be closed.)

(FWIW, I'd recommend to use something like Let's Encrypt, so there's no need to manually import certs anymore.)

I do use Let's Encrypt. But I don't use Let's Encrypt from my OPNsense install, since I have multiple things that use the same (wildcard) cert apart from my router.

I don't use Let's Encrypt from my OPNsense install, since I have multiple things that use the same (wildcard) cert apart from my router

FYI, the Let's Encrypt plugin provides an automation to copy certificates via SFTP (SSH) to other hosts, but you're probably already aware of this. :)

fUCK0FF1

Where did this come from?


Storing offsets inside a MongoDb collection

Now the connector does not distinguish the first run from reboots: it alway writes all extracted SinkRecords without check whether they have been already stored.
We can solve this issue storing the last written offsets for each topic inside a MongoDb collection. In this way the same message will be no longer written more than once.
There are tow possible solutions:

we can modify public synchronized void flush(Map<TopicPartition, OffsetAndMetadata> offsets) in org.radarcns.mongodb.MongoDbWriter. At the end of the write phase, the flush function will store the last flushed Kafka offsets of each topic inside a MongoDb collection.
we can modify private void store(SinkRecord record, int tries) in org.radarcns.mongodb.MongoDbWriter storing first the message and then the related offset. Each SinkRecord will require two MongoDb inserts one for the data and one for the offset

Upon start, MongoDbSinkConnector will fetch the last written offsets from MongoDb and it will forward the metadata to the org.radarcns.mongodb.MongoDbSinkTask. Then public void put(Collection<SinkRecord> sinkRecords) of MongoDbSinkTask  will escape all SinkRecords having offsets smaller than the last flushed offset read form the MongoDb collection for the given topic.
[1] adds a very small overhead for the flush function, while the performance for the put will be considerably improved in case of rebooting. This enhancement will provide exactly once delivery for offsets committed by Kafka.
[2] provide exactly once delivery at the price of huge overhead: the MongoDb writes will be doubled. In case of rebooting, the put function will achieve better performance than [1], but it will suffer an overhead during normal executions.

Can i close this issue @blootsvoets , @fnobilia ?

Yes - perhaps its time for a PR then as well.


Improve typing doc

Clearly mention that type checks for builtin types (cdef str) require the exact class, not a subclass.

Move the section about optional and keyword-only arguments to the "Functions and Methods" section where it belongs.

Many small fixes.

This doc is still far from perfect, but I hope that this PR is a strict improvement.
@embray

Thanks. Yes, this is an improvement.

I would say this definitely aids my understanding of how Cython uses variable type declarations.


Add pause

Hello, thanks for the addon.
It would be cool to see a pause button for each tab.

You can check out the latest commit if you want to test it out, I'll update the version on the Firefox store in a couple of hours.

Awesome 👍
Also, you can use Github Actions to make the zip automatically, I can make a pr for this

That would be amazing, thanks for the help again :)


[QUESTION] Do aggregate functions not use indexes?

I use Litedb V5.0.2.
I have a 600+m data file with 20000 rows in it. If only group by is used, the speed is very fast. But if use group by and aggregate functions(e.g. MAX()) at the same time, even though create indexes, it becomes slow.
for example:
the SQL like this :  select {FileName: @key} from table group by FileName is very fast. It just about 1s.
code like this:
col.Query().GroupBy("FileName").Select("{FileName: @key}").ToList();

But the if the  SQL like this: select {FileName: @key,Time: MAX(*.Time)} from table group by FileName is very fast.` is slow.It may use 15+s.
code like this:
col.Query().GroupBy("FileName").Select($"{{FileName: @key,Time: MAX(*.Time)}}").ToList()

And if I use select @key from table group by FileName and foreach the results use select $.Time from table where FileName = foreachData order by Time desc limit 1. It only use about 5s.
code like this:
var datas = col.Query().GroupBy("FileName").Select("{FileName: @key}").ToList();
foreach(var data in datas)
{
    col.Query().Where(BsonExpression.Create("FileName= @0", data ["FileName"].AsString)).OrderByDescending("Time").Select("{Time: $.Time}").Limit(1).FirstOrDefault();
}

So,do aggregate functions not use indexes?
If not, can aggregate function use index in the future?

@yaozhong-OMEC Can you post the execution plan for the queries you provided? (just run them with the keywork explain before the SQL command)

@lbnascimento
The explain for select {FileName: @key} from table group by FileName is:
{
  "collection": "table",
  "snaphost": "read",
  "pipe": "groupByPipe",
  "index":
  {
    "name": "FileName",
    "expr": "$.FileName",
    "order": 1,
    "mode": "FULL INDEX SCAN(FileName)",
    "cost": 100
  },
  "lookup":
  {
    "loader": "index",
    "fields":
    [
      "FileName"
    ]
  },
  "groupBy":
  {
    "expr": "$.FileName",
    "having": null,
    "select": "{FileName:@key}"
  }
}

The select {FileName: @key,Time: MAX(*.Time)} from table group by FileName is:
{
  "collection": "table",
  "snaphost": "read",
  "pipe": "groupByPipe",
  "index":
  {
    "name": "FileName",
    "expr": "$.FileName",
    "order": 1,
    "mode": "FULL INDEX SCAN(FileName)",
    "cost": 100
  },
  "lookup":
  {
    "loader": "document",
    "fields": "$"
  },
  "groupBy":
  {
    "expr": "$.FileName",
    "having": null,
    "select": "{FileName:@key,Time:MAX(MAP(*=>@.Time))}"
  }
}

The select $.Time from table where FileName = foreachData order by Time desc limit 1 is:
{
  "collection": "table",
  "snaphost": "read",
  "pipe": "queryPipe",
  "index":
  {
    "name": "FileName",
    "expr": "$.FileName",
    "order": 1,
    "mode": "INDEX SEEK(FileName= foreachData)",
    "cost": 10
  },
  "lookup":
  {
    "loader": "document",
    "fields":
    [
      "Time",
      "FileName"
    ]
  },
  "orderBy":
  {
    "expr": "$.Time",
    "order": -1
  },
  "limit": 1,
  "select":
  {
    "expr": "{Time:$.Time}",
    "all": false
  }
}


Linux hot reload

Test Comment

Dashboard Preview URL: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview URL: https://docs-1-pr-reposense-gok99.surge.sh

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

Dashboard Preview: test
Docs Preview: test

Dashboard Preview: test
Docs Preview: test

testing

Dashboard Preview: https://dashboard-1-RepoSense-gok99.surge.sh

Dashboard Preview: https://dashboard-1-RepoSense-gok99.surge.sh
Docs Preview: https://docs-1-RepoSense-gok99.surge.sh

Dashboard Preview: https://dashboard-1-RepoSense-gok99.surge.sh
Docs Preview: https://docs-1-RepoSense-gok99.surge.sh

The following links are for previewing this pull request:
-Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
-Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh

The following links are for previewing this pull request:

Dashboard Preview: https://dashboard-1-pr-reposense-gok99.surge.sh
Docs Preview: https://docs-1-pr-reposense-gok99.surge.sh


Update Klarna logo

Use their latest logo: https://developers.klarna.com/en/nl+php/kpm/logos

Hi Leeuwd,
If you enable Adyen OpenInvoice then you will have the klarna latest logos. The logo in Adyen HPP is not yet changed and will be when we are changing the logos see issue #330
Regards,
Rik
Adyen

It seems that this one is used: skin/frontend/base/default/images/adyen, which is not their latest.

Using now latest klarna logo it is in the sprite see: http://dev.magento.adyenshop.nl/skin/frontend/base/default/images/adyen/pm_gloss.png
Regards,
Rik


Monitoring of Spark emissions via Spark plugin

Hi,
I am working on a prototype of a Spark plugin to report the energy consumption of executors. The logic behind is similar to CodeCarbon's, although the computation method differs slightly: the executor process scheduling is sampled regularly, converted to Wh with the TDP (provided or inferred), and aggregated by the driver. The total energy is published as a Spark metric, accessible via the REST API.
I wanted to know if you'd be interested in integrating it with CodeCarbon, for example with Spark cluster as a new type of resource alongside CPU, GPU, or RAM. It would let CC factor in the energy mix and cloud provider data, which could be cumbersome to access from a private Spark cluster (it's better not to assume internet connectivity). And it would benefit from CC's ease of use, which is a strong factor of adoption.
In any case, it's a prototype, it needs more testing and validation, and only handles CPU for now (but many data engineering pipelines don't use GPUs anyway). Here it is: https://github.com/tvial/ccspark (Apache 2.0 license). Note that it embeds your CPU database for the TDPs, I'm open to remove it if you think it's a bad idea :)
Let me know if it can be of any help
Thanks

Hello Thomas, that's a great idea!
Thanks for this proposal, that would be appreciated by a lot of potential users.
I'll have a deeper look on the implementation, but here are some initial questions.

are the binaries executed from the executor, to sample energy consumption, launched as root ? Otherwise, the RAPL interface exposing this data might not be accessible.
It seems that your implementation is already working, what could be a good test setup ? Do you think it could be reproduced in the CI, with some TestContainers, for instance ?
I'm happy to get news from you, especially from this channel !!

Hi Amine, it's been a while :) Glad to hear from you as well!
Thanks for the encouraging feedback.
It's working as it is, I tested it locally and on a small dedicated Databricks cluster on Azure, both with very simple jobs (no real usage as of yet). I see no challenges in making it work within a CI or other environment, as it has no dependencies by itself.
Regarding the measurements, it does not use RAPL for the reason you mention. I think I read somewhere that some Databricks configs would let you run executors as root, but I would not make this a requirement, maybe an alternative method? The one here is to read scheduled jiffies from proc/stat and proc/$pid/stat, to take the difference between two samplings, and compute the ratio as the load attributed to the process over the sampling period. It should be reviewed by someone more expert in Linux and Spark's execution model.


Allow ENV to override GlobalState#test_library

Motivation
In our project we have a small amount of rspec tests and a large amount of minitest tests. The test library detection method prefers rspec over minitest and as a result, the testing code lenses don't work for the vast majority of our tests.
Having multiple test frameworks in-use in a single project is certainly not standard. Ours is a monorepo-ish application born years ago, being converted from engines to packwerk, so it's got a sprinkling of various things in it. We're looking for some way to be able to override the test library detection to be able to force it to "rails".
Implementation
Potential solutions I've dreamed up:

Create our own custom Addon that inherits from RubyLsp::Rails::Addon but removes this restriction: https://github.com/Shopify/ruby-lsp-rails/blob/8c0e73a2e938c5cda5e7ff20098d78d132f09853/lib/ruby_lsp/ruby_lsp_rails/addon.rb#L50

Pros: No upstream changes
Cons: Our little anemic Addon has to be committed and maintained over time

Same as (1) except we fork the RubyLsp::Rails repo and remove the line.

Allow an ENV var to specify the testing library

Pros: Small code change
Cons: one-off ENV var specification rather than being specified as part of a wider configuration system. (Not sure if this other open PR would be relevant here or if it's tackling a different sort of configuration? https://github.com/Shopify/ruby-lsp/pull/1434)

Add some way to hook into the loading of RubyLsp so that I can go wild with ~monkey-patching~ behavior modifications. Something like RubyLsp looks for ruby-lsp.rb or something at the root dir and just loads it as part of its booting process. In my case, I could use it to prepend my own module to the library, but I could also see this as a way to make small Addons where creating a full gem seems like a lot. Sort of a use-at-your-own-risk escape hatch.

Pros: Small code change.
Cons: Increased surface for issues to arise. Ie, how many new issues will be created in your repo because somebody checked in a broken boot file into their codebase. Those codebases descend into chaos and darkness (though perhaps a few reach enlightenment).

I create ruby-lsp.rb in my home directory that uses that uses the const_defined callback to modify RubyLsp::GlobalState as its loaded. Then I export RUBYOPT="-r ${HOME}/ruby-lsp" to get my fingers into every single ruby process and I convince my coworkers to do the same.

Pros: I bask in the glory of my rube-goldberg creation
Cons: too many to list

In this PR I've gone with option 3.
Though again, I can understand if this whole minitest/rspec living together is not a use-case you care to support. Which is one reason I actually kind of want option 4 (some way to hook into the the various ruby-lsp processes being run). It would be a simple outlet for us if you don't want to support things like this and it would enable us to deal with any other issues that arise immediately while we see about upstreaming solutions.
Automated Tests
I added the test. It's a bit annoying to mutate the ENV and put it back correctly. It's also not thread-safe. But it works.
Manual Tests
Make a rails project that contains both rspec and minitest gems and tests. The test runners will be present for the rspec tests and not for the minitest tests. Then, export RUBY_LSP_TEST_LIBRARY="minitest" and reload the window. The opposite will now be true.

I have signed the CLA!

Yeah, no worries, that all makes sense. And I didn't see that PR which you linked which is clearly the better solution in the end! :)
One reason  I was looking around for another way to hook in was to have a way to "beta" test my own addon across various repos. My understanding is that in order to install and use an addon, it either requires adding it to the app's Gemfile (which forces it on everyone) or having an external "custom" rubyLsp.bundleGemfile (in the vscode extension) which loses some of the goodness of the automated plugin (since it's no longer in the context of my application, if I'm understanding it all correctly). But I will play around with things and follow-up in the slack channel if needed. Thanks!

Yeah, we're still thinking about how to deliver a smooth experience with addons. One option might be configuring the desired addons from the editor.


Towards 100% Haddock coverage

This PR attempts to document all modules, which I personally think is complete once we have 100% haddock coverage. I think this is also a good time to mark all Internal modules as such.

There doesn't appear to be a builtin way for CI to fail when there are warnings unfortunately: https://github.com/haskell/haddock/issues/1393

A follow-up to this will be #91

Merging already because this will cause merge conflicts with pretty much anything else we're gonna do

I don't believe we did find an easy and robust way unfortunately.


Keep GitHub Actions up to date with GitHub's Dependabot

Fixes software supply chain safety warnings like at the bottom right of
https://github.com/RustPython/RustPython/actions/runs/11870777239

Keeping your actions up to date with Dependabot
Configuration options for the dependabot.yml file - package-ecosystem

Failing test: Two new Prettier releases in the past 12 hours... https://github.com/prettier/prettier/releases

Generated

#5448


version 2.0.0 iOS build error

Hi, I have got error when I am building
Here is the error:
Failed to build iOS app
Error output from Xcode build:
↳
objc[18688]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libauthinstall.dylib (0x1ed662c10) and /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x11aeb82b8). One of the two will be used. Which one is undefined.
objc[18688]: Class AMSupportURLSession is implemented in both /usr/lib/libauthinstall.dylib (0x1ed662c60) and /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x11aeb8308). One of the two will be used. Which one is undefined.
** BUILD FAILED **
Xcode's output:
↳
warning: The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Workspace Settings.
=== BUILD TARGET sqflite OF PROJECT Pods WITH CONFIGURATION Debug ===
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:117:54: error: 'open(:options:completionHandler:)' is only available in iOS 10.0 or newer
UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:117:54: note: add 'if #available' version check
UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:58:17: note: add @available attribute to enclosing instance method
public func handle( call: FlutterMethodCall, result: @escaping FlutterResult) {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:15:14: note: add @available attribute to enclosing class
public class SwiftFlutterBarcodeScannerPlugin: NSObject, FlutterPlugin, ScanBarcodeDelegate,FlutterStreamHandler {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:258:54: error: 'DiscoverySession' is only available in iOS 10.0 or newer
let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .back)
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:258:54: note: add 'if #available' version check
let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .back)
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:256:10: note: add @available attribute to enclosing instance method
func initBarcodeComponents(){
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:148:7: note: add @available attribute to enclosing class
class BarcodeScannerViewController: UIViewController {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:258:86: error: 'builtInWideAngleCamera' is only available in iOS 10.0 or newer
let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .back)
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:258:86: note: add 'if #available' version check
let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .back)
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:256:10: note: add @available attribute to enclosing instance method
func initBarcodeComponents(){
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:148:7: note: add @available attribute to enclosing class
class BarcodeScannerViewController: UIViewController {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:500:39: error: 'DiscoverySession' is only available in iOS 10.0 or newer
let devices = AVCaptureDevice.DiscoverySession(deviceTypes: [ .builtInWideAngleCamera ], mediaType: AVMediaType.video, position: .unspecified).devices
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:500:39: note: add 'if #available' version check
let devices = AVCaptureDevice.DiscoverySession(deviceTypes: [ .builtInWideAngleCamera ], mediaType: AVMediaType.video, position: .unspecified).devices
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:498:18: note: add @available attribute to enclosing instance method
private func getCaptureDeviceByPosition(position: AVCaptureDevice.Position) -> AVCaptureDevice? {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:148:7: note: add @available attribute to enclosing class
class BarcodeScannerViewController: UIViewController {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:500:72: error: 'builtInWideAngleCamera' is only available in iOS 10.0 or newer
let devices = AVCaptureDevice.DiscoverySession(deviceTypes: [ .builtInWideAngleCamera ], mediaType: AVMediaType.video, position: .unspecified).devices
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:500:72: note: add 'if #available' version check
let devices = AVCaptureDevice.DiscoverySession(deviceTypes: [ .builtInWideAngleCamera ], mediaType: AVMediaType.video, position: .unspecified).devices
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:498:18: note: add @available attribute to enclosing instance method
private func getCaptureDeviceByPosition(position: AVCaptureDevice.Position) -> AVCaptureDevice? {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/ios/Classes/SwiftFlutterBarcodeScannerPlugin.swift:148:7: note: add @available attribute to enclosing class
class BarcodeScannerViewController: UIViewController {
^
/Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/onesignal_flutter-3.0.0/ios/Classes/OneSignalPlugin.m:102:43: warning: incompatible pointer types sending 'OneSignalPlugin ' to parameter of type 'NSObject * _Nonnull' [-Wincompatible-pointer-types]
[OneSignal addSMSSubscriptionObserver:self];
^~~~
In module 'OneSignal' imported from /Users/iremarikan/Development/flutter/.pub-cache/hosted/pub.dartlang.org/onesignal_flutter-3.0.0/ios/Classes/OneSignalPlugin.h:29:
/Users/iremarikan/StudioProjects/imo-mobil/build/ios/Debug-iphonesimulator/XCFrameworkIntermediates/OneSignal/OneSignal.framework/Headers/OneSignal.h:520:74: note: passing argument to parameter 'observer' here
+ (void)addSMSSubscriptionObserver:(NSObject)observer;
^
1 warning generated.
Could not build the application for the simulator.
Error launching application on iPhone 12 Pro Max.
and try
increased the target to '12'
Xcode > worksapce setting
but still I get this error.

got any solution?


mcapp controller fixes

move controller from user to mgmt
enqueue mcapp on app change in mgmt
add interval ticker for mcapp upgrade

https://github.com/rancher/rancher/issues/17856
https://github.com/rancher/rancher/issues/17818
https://github.com/rancher/rancher/issues/17701

LGTM


Add test that the settings partial appears on partner profile edit

Summary
Add a test that the settings partials appear on the partner profile edit
Why?
"Closing the barn door" -- we had a case where the settings partial was inadvertently deleted from the partner profile edit view and we did not catch it until staging.
Details

add a test that checks that the settings partial appears when you sign in as a partner and "Edit My Organization"  (This partial is at the extreme bottom and right of the screen when viewed on a desktop)
I expect there are tests for the same case from the bank's p.o.v. (but have not confirmed), which handle the internal functionality of the partial

Criteria for completion

[ ] There are tests that demonstrate that the settings partial appears under "Edit My Organization" when signed in as a partner.
[ ] These tests pass.

Hi @cielf, can you assign me to this issue? Thanks!

You've got it!

@cielf In looking at where the partner_settings partial is used, there are two more places and I was wondering if I should include tests for these instances as well in my PR:

Signed in as Partner, Profile Show view
Signed in as Diaper Bank User, Edit Partner Information

There doesn't seem to be tests for presence of other partials in the Partner Profile Edit view, so I was curious why only this particular partial in only the specific page.

Huh.  I would have thought we would have a test for the partials that are configurable already.  We do for the area served, actually.
I think I'll write up a separate issue for the configurable partials, and for the other non-configurabale  partials.
Signed in as Partner, Profile Show view
Signed in as Diaper Bank User, Edit Partner Information

As for why this particular partial -- a change that made it disappear got by testing and our local manual testing.  I run through the proposed changes on staging on Saturday as a sanity check before we release on Sundays and caught it,  but it could very easily have gone into production.    It also happens to be something that most partners would not notice was missing, so there is a low chance that we would have learned of it's disappearance from our users.