Allow Ingress gateway SDS to search all namespaces for certificate secrets.

Currently when using SDS on the ingress gateway to load certificate secrets it forces you to create the certificates secrets in the same namespace as the gateway (or a single namespace set by an env variable). This complicates secret/certificate management in a scenario where you have a shared gateway used by multiple k8s namespaces, where I only want one main ingress gateway to my cluster. When using tools like cert-manager I now need rights to the gateway namespace in addition to the original namespace I deploy my project to.
It would be nice if the user had the choice to set namespace lookup options as detailed.

Default option to lookup secrets in same namespace as gateway.
Option to override to a specific namespace in the helm chart where all secrets are example:#13345
Option to set env to * which allows nodeagent secretfetcher to look for secrets in all namespaces it has access to.

Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[x] Security
[ ] Test and Release
[ ] User Experience

When using normal Kubernetes Ingress, the ingress controller looks in the same namespace as the ingress object.
In my opinion it would make sense for istio to look for the secret in the same namespace as where the gateway is defined. Or at the very least have the option of adding a spec.servers.[n].tls.credentialNamespace key to the gateway.

Should it be better to run another gateway instance(s) on the other namespaces? I don't think accessing secrets cross namespace is the right model (nor supportable)

@diemtvu why wouldn't it be "supportable"? Implementation wise, it simply another api call to the Kubernetes API server.
One gateway instance would also require people to use different ports for each gateway. That would be very impractical in my opinion.
But it also don't understand why you think it's the "wrong" model? That is already how the official Kubernetes Nginx Ingress works, and no one is complaining about that. In our organization we have a "you build it, you run it" approach. Therefore each Dev team is allowed to build their service and should take steps to secure it, such as enabling TLS. If I want to allow the Dev teams to create certificates via self-service, it would make a lot of sense to let them store the certificate secret alongside their deployments in a namespace. As it stands now, I need to allow all the developer teams to have access to manage certificates in the Istio-system namespace. So not only can they read each others certificates, they can also inadvendently break each others certificates.

I was thinking the secret volume mount when I said not supportable. You may be right that it just an API call. However, you need to change K8s RBAC so that node-agent (the one who fetch secret and serve it to Envoy) can access secrets in other namespaces; and I have a uneasy feeling about this.

Actually, I take it back. Looks like the status quo already grant permission to read all secrets. We will discuss to revise this and see if we can change to serve key from any namespace's secrets.

That would be a huge benefit for us if retrieving keys from multiple namespaces was possible. It already retrieve Gateways across namespaces.

@diemtvu just to add when I wrote this issue up, the helm chart for gateways was setup to deploy a node-agent sidecar running as a service account that only had k8s RBAC rules to read secrets from the namespace the gateway pods are deployed to. The secretsfetcher and rbac rules for the service account can be changed to another namespace, which I tested works mostly using the changes outlined here #18529.
At a minimum changing the secretfetcher in the node-agent pod to search all namespaces it had access to via RBAC would be huge, and as it sits now probably wouldn't change how it's working today. It would give users the functionality to choose where the secrets live using RBAC to manage secretfetcher access to other namespaces, could be all or only some.

I literally just searched "sds secret in same namespace as ingressgateway" because I was wondering if I did something wrong because the only way TLS worked was to put the secret in the istio-system namespace.  This really should be changed.  What we currently do is use cert-manager to provision wildcard certs (*.subdomain.example.com) in a specific namespace.  The individual teams creating can then just deploy an empty secret in their namespace and the secret/configmap replicator will copy the wildcard secret to their namespace.  However, for istio sds to work we also need to copy it into the istio-system namespace and this just seems wrong on so many levels.

Well, to be honest copying a wildcard cert across namespaces is also wrong in so many ways. Why don’t you use cert-manager to actually provisioning individual certs directly to the namespaces using the Certificate object?

@Starefossen We do use cert-manager for individual certs in the desired namespaces, that's how we found the original issue we are all commenting on. We currently only use the wildcard certs for our PR preview builds which can be hundreds/week.  If we used individual certs for these short lived builds then we would slow the CD builds down while a cert is fetched for every PR as well as hit the Let's Encrypt limit for certs/week.

Is there any updates on this? It would be great if Istio could get the secrets from the same namespace where the Gateway resource is instead of istio-system, just like Nginx Ingress does.

Sorry about the delay. We'll discuss this in the WG meeting this week.

I think we discussed this in the last WG meeting and decided to not do this as there are major security implications to giving ingress gateway, which is exposed to public internet, cluster wide read access to secrets?

We didn't have time to cover this in today's meeting.
Today we have managed to avoid istiod accessing secrets in other namespaces. Granting istiod the permission to access secrets could be more dangerous since it's by default exposed to the public network.
With above said, the question here is do we want to offer such an option (not default) for users? What can be done to avoid / mitigate the potential vulnerabilities?

I am not really against giving an option to users (off by default) and they can make their own decisions on whether its secure or not. We do need to figure out how cross namespace references work.

we can look only in the namespace of the Gateway object. But in the future we may want all Gateways to reside in the same namespace as the deployment so that would undo this basically
allow ns/secret in credentialName

It would be nice if this was a option when installing Istio, with off by default as @howardjohn said.
The default could be look in the namespace of the Gateway object if there is no namespace defined in credentialName, otherwise it would get from "ns/secret" in credentialName.
Our policy here is that all resources of an application must be in application's namespace (or any namespace the application owns). But with Istio that's not possible because we need to create the secret in istio-system namespace, or give access for the application to do so, which is not the best option.

I'm actually a quite surprised that the Gateway's namespace is not where the secret is found.
For context - we started with nginx ingress, moved to contour to adopt envoy, and are now moving to istio which is more fully featured. Both nginx and contour support cert-manager and k8s ingress objects in the same way. Because a tenant has the ability to create a certificate object in their namespace, cert-manager will allocate and store the secret in that namespace. Because a tenant has the ability to create an ingress object in their namespace, nginx and contour's proxy layer will use the secret in that namespace to provide host credentials. But the tenant rbac does not provide abilities to see other tenant namespaces, or see the namespace where the ingress systems are installed.
I'm at a bit of a loss how to use istio in a similar way. Our assumption was the same as @igorcezar mentioned, that by policy we would have a tenant application deploy as Deployment+Service+Certificate+Gateway+VirtualService --- giving each team the ability to manager Certificate objects in a shared namespace is a non-starter.

Same use case as people above. Multi tenant cluster, wanting to give tenants access to deploy pods, services, and certificates  within their own namespace(s) to expose their services on the gateway, but not give them permissions on Istio system namespace.

Not super up to date as to what has been going on with SDS and ingress gateway @howardjohn but does this #24667 proposal possibly help with this story?

@mmckane yes one of the major motivators for that proposal is to enable this use case

It has been 14 months since the issue was opened, is there any progress?

@caffeinism yes there is active work on this. See https://docs.google.com/document/d/1nwTh2g7FgdkC8suc3SHZ5le_4Rkm8YvLY8Cgah4cm-I and https://github.com/istio/istio/issues/24667 and https://docs.google.com/document/d/1DEUkk0ocrD_oAH0h8TOUIC94Lf8msDXJb9lyNWlX_Ho/. See https://istio.io/latest/about/community/join/ for drive access

@howardjohn thanks

@howardjohn was this implemented with the closure of #24667 and the documentation hasn't been updated yet? Or was the ability to specify the namespace in the credentialName dropped from the PR?
For example can I specify:

Secret format will change from  to kubernetes|. to support future changes

@mmckane that PR lays the groundwork but we still need to design the auth story for authorizing a gateway to access another namespace. The design is in https://docs.google.com/document/d/1nwTh2g7FgdkC8suc3SHZ5le_4Rkm8YvLY8Cgah4cm-I.

any update?

https://docs.google.com/document/d/1gDhj058q2PKKI9SWpxE23ExEXdOkLiueT8JA_oEJ8Mo describes the long term plan. But might be quite long

any updates on this?

Having the secret in same namespace as gateway seems like an easier/safer change than full flexibility and would cover most of the multi tenant use case. We also have that, shared ingresses but multi tenant app/svc that we want to be self contained in their own namespace.
I wonder how hard would it be to workaround this on the cert manager side(ie have cert-manager writes to istio-system even if the cert request is in another namespace) - or a standalone secret copier?

Looks like this may help https://cert-manager.io/docs/faq/kubed/

https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.ReferencePolicy
will define a way to specify if cross namespace reference is allowed. We
will implement it as part of
https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/
On Thu, Aug 19, 2021 at 8:08 AM Laurent Demailly @.***>
wrote:

Looks like this may help https://cert-manager.io/docs/faq/kubed/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/14598#issuecomment-901995212, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXLPFAPC3MPMPUAO2LDT5UM65ANCNFSM4HUMRCHA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

While I agree that k8s gateway API has many improvement for advanced usecases, the ingress API is properly covering simple cases and should not become a second-class citizen. This is explicitely said in the FAQ:

Will Gateway API replace the Ingress API?
A: No. The Ingress API is GA since Kubernetes 1.19. There are no plans to deprecate this API and we expect most Ingress controllers to support it indefinitely.

Also k8s gateway API is currently v1alpha1 (with v1alpha2 unreleased). It looks premature to stop improving support for an API that graduated as stable in 1.19, less than 14 months ago!

@ldemailly Kubitus Ingress Operator works too, and also handles correctly secrets with the same name accross namespaces(it uses 'ingress-{namespace}-{secret_name}' as name, hashing it if longer than 63 chars).

@foal : Thanks! I decided to use the kubed approach. It's currently for me the most practicable way.
There is a way to reference to gateways in other namespaces in VirtualServices:
gateways:
  - some-config-namespace/my-gateway

But I don't know if it`s applicable for Ingress Resources as well.

Looks like this may help https://cert-manager.io/docs/faq/kubed/

Just to circle back for anyone wanting all of a set of service in a single namespace, the above works great, you just need 1 annotation and a template for the secret, e.g.
apiVersion: cert-manager.io/v1
kind: Certificate
spec:
  secretTemplate:
    annotations:
      # Request the kubed sync to matching namespaces
      kubed.appscode.com/sync: "cert-manager-tls=istio-system"

From my limited testing, it would appear that with kubed configured, any user can overwrite any secret that is synchronized to istio-system if two namespaces use the same secretname in the Certificate definition.
Is there any controls that can be used to prevent this from happening other than naming conventions?

这是来自QQ邮箱的假期自动回复邮件。

您好，我最近正在休假中，无法亲自回复您的邮件。我将在假期结束后，尽快给您回复。

This is supported now via https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/

@howardjohn Yes it works, but I am not really sure this fixes the original issue. Like outlined above this has the same issue as the original post. I now need to give developers access to modify a shared gateway CR in istio-system, to not only add the listener but also a certificate reference (this is now a way worse experience than before, I could at least have them define and create their own gateway that was attached to a pre-created grouping of envoy proxies in the cluster). This new Gateway could also have other team's/tenants DNS in it, which pushes me to somehow needing to automate update of this as k8s RBAC isn't granular enough to block someone from changing team A's entry.
If this were a perfect world, the separation of concerns I would prefer on the admin side of things is to define a shared-gateway and set TLS min/max negotiation rules. That's it. I don't want to have to manage more things in the gateway spec in a protected namespace. Let me setup wildcard gateways and define which namespaces can setup routes via a label or something, Cert-Manager and DNS is so easy to use to get certificates the gateway admin team doesn't need to be looped into the process anymore. Designing the gateway in this way forces my team to manage each endpoint and what certificate/DNS maps to which secret/namespace, this creates Toil for my team every time one of these needs an update. Better to just give the developer control to define these from their namespace.

这是来自QQ邮箱的假期自动回复邮件。

您好，我最近正在休假中，无法亲自回复您的邮件。我将在假期结束后，尽快给您回复。

@mmckane all valid concerns. The gateway-api is still evolving, in particular around this type of thing. For example, https://github.com/kubernetes-sigs/gateway-api/pull/1085 (doesn't quite solve this). In an earlier iteration there was the ability to define the TLS references in other namespaces completely, but it was removed as the solution had some issues - but the intent is to bring it back in some form.

This is now implemented as part of https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/. Due to security concerns in the older API's resource model, allowing cross namespace secret references would not be secure so this is not planned for any other API. Thanks everyone


Input disappears when using iphone to input Japanese into TextField in flutter web

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create a project.

Add the following code sample in main.dart.

Upload the app with firebaseHosting.

Access the uploaded page on your iphone. (Error confirmed with safari and chrome)

Type something in Japanese in the textField.

Break line in textField. Immediately after that, delete one character.

After that, type something and press the "confirm" button on the keyboard, and the text you typed will disappear.

Expected results
After erasing the line break, the entered text will be entered as usual.
Actual results
The entered text disappears.
Code sample
Code sample
TextField(
  controller: TextEditingController(),
  maxLines: 5,
  minLines: 5,
  textInputAction: TextInputAction.newline,
  keyboardType: TextInputType.multiline,
),

Screenshots or Video

Screenshots / Video demonstration
https://user-images.githubusercontent.com/78903221/235348783-7452a274-8e4a-42bf-93f1-940826499948.mp4

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.7.12, on Microsoft Windows [Version 10.0.22000.1817], locale ja-JP)
[X] Windows Version (Unable to confirm if installed Windows version is 10 or greater)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.1.3)
[√] Android Studio (version 4.2)
[√] VS Code (version 1.77.3)
[√] Connected device (3 available)
[√] HTTP Host Availability

Reproducible using the steps outlined above. I tested on both Android & iOS but was only able to reproduce on iOS.

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: const Center(
        child: TextField(
          maxLines: 5,
          minLines: 5,
          textInputAction: TextInputAction.newline,
          keyboardType: TextInputType.multiline,
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel stable, 3.7.12, on macOS 13.3.1 22E261 darwin-arm64, locale en-GB)
    • Flutter version 3.7.12 on channel stable at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (2 weeks ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9862592/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 2022.1)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9619390/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.15+0-b2043.56-8887301)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9862592/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 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 73.0.4
    • Dart plugin version 231.8770.15

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8109.175/IntelliJ IDEA.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

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8770.65/IntelliJ IDEA.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.77.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.62.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.3.1 22E261 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 112.0.5615.137

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

• No issues found!

[!] Flutter (Channel master, 3.10.0-18.0.pre.42, on macOS 13.3.1 22E261 darwin-arm64, locale en-GB)
    • Flutter version 3.10.0-18.0.pre.42 on channel master at /Users/nexus/dev/sdks/flutters
    ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7907f931f5 (4 hours ago), 2023-05-02 01:09:04 -0400
    • Engine revision 024bf94623
    • Dart version 3.1.0 (build 3.1.0-61.0.dev)
    • DevTools version 2.23.1
    • 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 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9862592/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 2022.1)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9619390/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.15+0-b2043.56-8887301)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9862592/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 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 73.0.4
    • Dart plugin version 231.8770.15

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8109.175/IntelliJ IDEA.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

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8770.65/IntelliJ IDEA.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.77.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.62.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.3.1 22E261 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 112.0.5615.137

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

@danagbemava-nc Out of curiosity when you tested on Android, did you use a Samsung device? I am currently investigating a similar issue for Samsung Keyboards - https://github.com/flutter/flutter/issues/120351 and wonder if these issues could be related.

Hi @mossmana, I used pixel 7 in my testing. I do not have a Samsung device unfortunately

Adding the framework label since this may be affecting multiple platforms.

Hi @justinmc, I reproduced it on web on iOS. It didn't reproduce for me when I tested the android & iOS apps.

FYI, https://github.com/flutter/flutter/issues/120351 was reproducible on a Samsung and not on a Pixel. However, I was unable to reproduce this issue on a Samsung Galaxy S23 Ultra in the Chrome Browser.


[Bug]: AudioDecoder gets really slow processing the audio file

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
When we run inference many times on different audio files we see that AudioDecoder call method eventually gets really slow in iterating over the for loop. we identified it by adding logs in various places while trying to debug why the inference of the model ("call") is not executed.
The slowness we observed that it will take 1-2 sec to go over one iteration inside AudioDecoder call function.
We were able to reproduce on local machine (Mac), on dedicated EC2 instance and inside kubernetes cluster.
When this issue starts happening we observe the memory (2.5G used out of 7.49G) and CPU usage ~2%- 5% (4 cores available)
Expected Behavior
We expect consistent behavior from AudioDecoder.
Steps To Reproduce
1. Use embedding_pipeline = pipeline('towhee/audio-embedding-vggish')
2. Call vecs = embedding_pipeline(str(audio_path))
3. In our tests we provide 10 min wav audio files mono, 16Mhz
4. Wrap the embedding_pipeline into FastAPI endpoint.
5. Either using Gunicorn or Uvicorn start the web server :

"gunicorn fingerprint:app --workers 1 --worker-class uvicorn.workers.UvicornWorker --bind <IP_ADDRESS>:8000"

6. Using curl just call the endpoint with same file over and over

Environment
- Towhee version: 0.6.0
- OS(Ubuntu or CentOS): Ubuntu 20.04
- CPU/Memory: 4 CPU cores available. 7.5 GB Memory available
- GPU: Using AWS Infernia chip instead
- Others: Runs inside kubernetes 1.22 Pod, only one pod runs on the was inf1.xlarge instance.

Anything else?
No response

@jaelgu
Could you help to have a look first?

@sberenson Just to clarify, calls to AudioDecoder become slower and slower the more times pipeline is called, correct?

I also saw that you're using inf1 instances on EC2 - we've never tested it on our end, but if you ran into any issues there let us know and I'd be happy to help out there as well.

@fzliu correct.
Regarding inf1 instances, I had to recompile the model on the inf instance to generate the model and tweaked the vggish implementation to leverage inf1 chip if it present. Gets way better performance vs cpu mode.

@junjiejiangjjj Can you take a look at this issue regarding to audio-decoder?

from towhee.engine.engine import EngineConfig

config = EngineConfig()
config.sched_threshold = 10000000

Please add this code and try again.   Towhee would slow down the  AudioDecoder  if there are lots of audio frame, the config will change the threshold. @sberenson

thank you @junjiejiangjjj it seems to solve the problem, let it run for few hours and didnt experience it anymore.

The solution proposed by @junjiejiangjjj fixes the slowness


[UX] Icon for downloaded models is the same as non downloaded ones

Bug description
Maybe related to light mode enablement
Operating system
Win11Pro
Installation Method
None
Version
next (development version)
Steps to reproduce
No response
Relevant log output
No response
Additional context
No response

We do not display a difference icon between downloaded and remote as we are using the status to indicate if the model is being used or not.
The change has been included in https://github.com/containers/podman-desktop-extension-ai-lab/issues/791.

Currently this is not a bug, but we could found a way to improve the distinction ?

We do not display a difference icon between downloaded and remote as we are using the status to indicate if the model is being used or not.
The change has been included in #791.

Currently this is not a bug, but we could found a way to improve the distinction ?

That's due to a change of the semantic as the icon was solid for downloaded models and it's now solid for in use models

What about these 2 options on the left for the downloaded models?

What about these 2 options on the left for the downloaded models?

White background = downloaded green bullet = in use ?

so those are both suggestions for the downloaded models. I was looking at some penpot files with Emma, and these two options came to mind:

I'll lay them out to be more clear.

I like the idea of using the down arrow to indicated it's downloaded. should the arrow be green, to show reinforce even more that "yes it's downloaded"

Please don't forget it should be aligned with Images and Volumes icons on Podman Desktop core

Please don't forget it should be aligned with Images and Volumes icons on Podman Desktop core

Not sure what you mean by this @jeffmaury?
I like the arrow one! Idk about having it green tho - something about green makes me think of active / running? maybe that's just me tho

Please don't forget it should be aligned with Images and Volumes icons on Podman Desktop core

Not sure what you mean by this @jeffmaury?
I like the arrow one! Idk about having it green tho - something about green makes me think of active / running? maybe that's just me tho

When a volume or image is used by a running container its icon is also having a green background

Ok, so shall we agree on this one for the downloaded model that's not currently in use?

Hey @MariaLeonova I just came back from PTO, so here is my feedback / impressions.
First thanks for the design, I really like the ideas of the top right icon.
When I saw the Arrow down icon I feel like it is an action, and my first intuition was the contrary of what you are stating, having the Arrow down icon feels like it is not downloaded.
Implementation wise
The top right icon does not seems to be customizable, this would require a change in the PD ui library.
Icons usage
Let's look at some examples in PD and outside for similar elements having those download/downloaded states.
Extension Catalog in PD

We are not showing the arrow/download icon when the state is downloaded, we seems to prefer the circle-check.
LM Studio
Screenshot provided by @slemeur

We also have some similar icons for the different states.
AI Lab
We are trying to have a similar design than the extensions card from PD

@axel7083 thank you for such a detailed comment! With my suggestion I was following the logic of how the model status is currently displayed (eg running vs not sunning) However, I am not at all opposed to your suggestion to indicate the status with a separate icon altogether. If I consider options similar to the examples you've provided, that would be a checkmark icon next to the model name or alternatively, the download button will change to indicate the fact that the action has been completed.
In which case, these could be 2 potential places to indicate the downloaded model:

WDYT?

Given that the Download button gets replaced by a Delete button once the model is downloaded and it's not an action, I would suggest placing the indication elsewhere.

For now my two suggestions are:

follow the pattern of model statuses and add an arrow to the icon next to the model
add a checkmark icon next to model name

That said, it might be beneficial to list all potential model statuses and decide how to represent them in the model catalog.

WDYT?

Hi @MariaLeonova  ! Sorry I did not replied, the notification for the first message was lost while I was in PTO.

follow the pattern of model statuses and add an arrow to the icon next to the model

I like this idea, it would allow for a quick read to differentiate downloaded and non-downloaded

add a checkmark icon next to model name

I am afraid of this one as the color and icon would feel "too much" as it would probably be shown in many lines when a lot of models would have been downloaded.

I would like to know if we could have another example, you will probably have a better vision on the implication and logic from an user POV: in podman desktop we have a few icons for the PVC, and there is one with dashes line

I don't have any skills for illustration so I can't illustrate what I think, but I am wondering if it would make sense to have a dashed version of the model icon to illustrate it is not downloaded, like "incomplete"

@axel7083 do any of the bottom ones look good to you?

I really like this one !

I really like this one !

+1 for this one too :) I think it works well with how we display status/different states across the app. Love the comment Axel made about it being 'incomplete' hence not downloaded

If we are all in agreement, here are the source files:

This is heading into the right direction.
I'm just wondering if the "dotted" line is really conveying the message we are looking for. I'd suggest we add the "down arrow" on it. What do you think?

This is heading into the right direction. I'm just wondering if the "dotted" line is really conveying the message we are looking for. I'd suggest we add the "down arrow" on it. What do you think?

I think this would overload the screen with too many icons, we already have a difference with the action buttons.

Adding a custom icon is already one step extra, adding a custom download icon would be one more step again.

Implementation wise we would need to update the podman-desktop ui library to support custom icon at the top right as currently it is not

@slemeur this is what it would look like with an arrow:

@jeffmaury @axel7083 This has been pending for 3 weeks, let's make a decision?

@MariaLeonova let's go with the following

Can you upload the svg file in this issue ?

@axel7083 I think they are all here: https://github.com/containers/podman-desktop-extension-ai-lab/issues/1409#issuecomment-2331150379

Closing as the implementation will be tracked by https://github.com/containers/podman-desktop-extension-ai-lab/issues/1848, thanks @MariaLeonova


Callbacks don't appear to work in patched object

I am integrating ES into my app with Chewy and we use Acts As Taggable On like the example app.
I have tests written around the AATO patch, modified for my models, but for some reason the callbacks registered by update_index are not called (the test is failing). The patch IS being eval'ed. Has the API changed since the example was published? (The test ES server is running on the correct port)

As far as I remember - nothing. Try to read this: https://github.com/toptal/chewy/blob/9c104b25b136cbadcdf9dfb7971b310ebb3d8f4c/README.md#rspec-integration

OK, thanks.
I had missed the line:
Chewy.use_after_commit_callbacks = !Rails.env.test? line.
All my regular model tests are passing now, but the patched AATO is still failing.
If I pass in a bogus symbol or specify an non existent index it does not throw any exceptions, so I am not sure whats going on.
Here is my patch code:
ActsAsTaggableOn::Tag.class_eval do
  has_many :news, through: :taggings, source: :taggable, source_type: 'News'

  update_index 'site#news', :news
end

ActsAsTaggableOn::Tagging.class_eval do
  update_index('site#news') { taggable if taggable_type == 'News' }
end

The code looks ok, you probably have to debug it further since I've got no any idea right now

No worries.
I patched module ActiveRecordMethods to see what was going on. For some reason I've not identified this line in the initializer:
Chewy.use_after_commit_callbacks = !Rails.env.test?
does not have any effect on the patched code. I suspect this is a load order thing - the patch gets loaded before use_after_commit_callbacks is changed.
To fix this I instead added this line:
Chewy.use_after_commit_callbacks = false
to config/environments/test.rb and things are all good now.
Because it is likely people will be applying patches like this, would it be a good idea to change to docs to use this instead?

Yeah, you are right, also maybe it would be even better to put this setting even to spec_helper.rb

I tried it in the spec_helper but it didn't work there.

That actually happens when models are loaded before this option is set up, normally it doesn't happen, but if you are forcing models loading - it happens then

I wonder if that is related to using Guard?

Spring probably, yeah

OK, thanks for your help, and for the great Gem. Cheers.

Welcome, thank you!


Field wrapper doesn't wrap types in array

When I set fieldWrapper I expect that Types in Arrays will be wrapped too
To Reproduce
Steps to reproduce the behavior:
My codegen.yml config file:
    config:
      skipTypename: true
      wrapFieldDefinitions: true
      fieldWrapperValue: 'T | { valueOf(): T }'
      maybeValue: T | undefined
      typesPrefix: API_
      namingConvention:
        typeNames: pascal-case#pascalCase
        enumValues: camel-case#camelCase

My GraphQL type:

const CustomersPayload = new GraphQLObjectType({
  name: 'CustomersPayload',
  fields: () => ({
    edges: {
      type: GraphQLNonNull(GraphQLList(GraphQLNonNull(Customer))),
    },
  }),
})

Generated type
export type API_CustomersPayload = {
  edges: FieldWrapper<Array<API_Customer>>
}

Expected behavior
Should generate
export type API_CustomersPayload = {
  edges: Array<FieldWrapper<API_Customer>>
}

Environment:

@graphql-codegen/packages/typescript/typescript:
NodeJS:

Fixed in v1.13.4

It seems the fix for this scenario broke another. I am using the following fieldWrapperValue: T | Promise<T> | (() => Promise<T>) and I get the error Type '() => Promise< API_Customer[]>' is missing the following properties from type 'FieldWrapper< API_Customer >[].

Maybe we need additional options how to wrap arrays...

@ibratoev  I think that might be the a good solution, a similar issue bug was introduced here relating to the only the base type of the Array being used when wrapping .   #5453

I landed here with the same issue as @ibratoev - I'd like to be able to define a resolver as a function so that I can lazy fetch an array of things, but with the change above that doesn't work anymore.
Is there any reason why the FieldWrapper type can't be applied to both the array and the inner type? I'm not a TS expert but as far as I can tell there wouldn't be an issue with the above example turning out like:
export type API_CustomersPayload = {
  edges: FieldWrapper<Array<FieldWrapper<API_Customer>>>
}

That'd allow for maximum flexibility with how you define your resolver, without the need for complicating the configuration?

@kgoggin I think it should work. Have you tried it with a project and saw how it affects other things? I'm totally fine to apply that if it works and doesn't break anything.

I like the idea to fix without an additional option as it will keep things simpler. I wonder if there are any valid scenarios where this might now work, like: fieldWrapperValue: T | string. Maybe it is a good idea to make it like that by default and allow to override for special scenarios with an additional option like arrayFieldWrapperValue.

@dotansimha No, I haven't tried it. I might be able to give it a shot, but I'm pretty new to TS so I'm not sure I'd trust my own findings haha.

This relates to the same core issue: https://github.com/dotansimha/graphql-code-generator/issues/5227
Greatest flexibility would be with something like fieldWrapper (current behaviour, could alias innerFieldWrapper) and a new outerFieldWrapper that wraps the entire field.
An example of where outerFieldWrapper would be useful would be for optional fields like:
name?: Maybe<FieldWrapper<Scalars['String']>>;

Where with current fieldWrapper set to T | Promise<T> the final type would be (string | Promise<string>) | null.
With outerFieldWrapper, you would instead get:
name?: FieldWrapper<Maybe<Scalars['String']>>;

Which would give the desired type string | null.| Promise<string | null>
If you only use one configuration value, it would result in: Promise<string | null | Promise<string | null>>, which is not the type you actually want (rather it is too flexible).


Fixes module declaration

Fixes export for non CJS environments

Sorry, forgot this the first time :) I've updated the deps in showwebgl already.


[Feature Request] Sanitise Spell/Ability DCs from players

I would like the ability to hide ability/spell DCs from players.

I don't think there's a standard way that this is displayed across systems (indeed, the concept doesn't even exist in a number of systems).
On 5e we'd have to parse the text on all action buttons to see if any match "DC ", and replace the text, which I don't love, and that only solves for a single system.


781 - Change REAME.md template context included_projects to projects

Issue Number
Closing #781
Purpose/Implementation Notes
This PR includes the following changes:

Renamed the context variable name from included_projects to projects and pass an array of [self] (a project) as its template context in the following methods:

create_anndata_readme_file
create_anndata_merged_readme_file
create_metadata_readme_file
create_multiplexed_readme_file
create_single_cell_readme_file
create_single_cell_merged_readme_file
create_spatial_readme_file

Adjusted the context variable from  included_projects to projects in the following readme templates:

anndata.md
anndata_merged.md
metadata_only.md
multiplexed.md
single_cell.md
single_cell_merged.md
spatial.md

Types of changes

Refactor (addresses code organization and design mentioned in corresponding issue)

Functional tests
N/A
Checklist

[x] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Screenshots
N/A

I've included the rest of the changes and this PR is ready for another look, thank you David!

Looks like we need to update readme_file.get_file_contents to pass in the projects key for context, then this will be good

You are good to merge into the feature branch


PS4 Mode Key Extraction

Can anybody share more information on the PS4 controller key extraction?
I can't seem to find any detailed, easy to follow guide anywhere online.

No


Update techdocs mkdocs-techdocs-core version to 0.2.1

The doc page includes a note to refer to a Dockerfile for the latest
version, but an update to the doc page may reduce the likelihood of
someone skimming and pulling in the now-very-old 0.0.x series.
Signed-off-by: Greg Taylor<EMAIL_ADDRESS>:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[X] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

Related PR https://github.com/backstage/backstage/pull/8625

Going to close this out as #8625 is in.  Thanks again for the contrib + discussion though, Greg!


pub install - DirectoryIOException after moving package directory

This issue was originally filed by<EMAIL_ADDRESS>
What steps will reproduce the problem?

Create a new package
mkdir my_lib
mkdir my_lib/bin
mkdir my_lib/lib
mkdir my_lib/test

create pubspec.yaml
cd my_lib
echo "name: my_lib" >> pubspec.yaml
echo "dependenices:" >> pubspec.yaml
echo "  args: any" >> pubspec.yaml
pub install
pub install
rename package root dir
cd ..
mv my_lib my_new_lib
cd my_new_lib
pub install again
pub install
DirectoryIOException: Directory listing failed, path = /path/to/my_new_lib/test/packages (OS Error: No such file or directory, errno = 2)
What is the expected output? What do you see instead?
pub install should probably recreate symbolic links. Or it should provide a command line option to "reset" the package links.
What version of the product are you using? On what operating system?

Linux karl-VirtualBox 3.2.0-35-generic-pae #55-Ubuntu SMP Wed Dec 5 18:04:39 UTC 2012 i686 i686 i386 GNU/Linux
Dart VM version: <IP_ADDRESS>_r16323_user (Sun Dec 30 13:38:16 2012)

Please provide any additional information below.

This issue has been moved to dart-lang/pub#395.


Fixed using static example

This was reported by a LiveFyre comment on the using static Directive article.

cc: @rpetrusha


gibo: init at 1.0.4

Checked on Darwin and NixOS, builds, seems to work fine.
There's also a mandatory initialization step (gibo -u) which performs a git clone into $HOME/.gitignore-boilerplates. I'm not sure if I should've done it here myself (if so, at which phase?) and so left it on the user.

@projedi tnx!


Stable v4 release

I am opening this issue as a placeholder in case anyone wants to discuss remaining tasks or attach release-related commits.
But I'm mostly just wondering whether the current "v4.0.0-rc1" tag might change at all, or if it is safe to depend on the (exact) version in a dependent project. If the latter, then this will help me close purescript-trout#12.
Thanks for your great work on this library!

@safareli What do you think, are we good to just retag the rc as v4.0.0? I'm not sure about its usage since released, if it's been tested in any real projects.

I guess we can release it we are using it and have no issue so far.

I did notice a reference to run with its old type in docs/index.html. I will be happy to review and update that document as well, but my day is ending now; so I will provide an update soon.

Travis confit also needs update.

tagged v4
https://github.com/purescript-spec/purescript-spec/releases/tag/v4.0.0
thanks for the effort

Awesome, thanks @safareli !


CB-20871 if the freeipa already exist in freeipa side then do not fai…

…l just describe the already existing freeipa
See detailed description in the commit message.

retest this please

retest this please


add Hazazono Mincho Font (version 20170904) to support more CJK characters

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if updating only the sha256:

[ ] I verified this change is legitimate How do I do that? and am providing confirmation below:

Additionally, if adding a new cask:

[x] Named the cask according to the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.
[x] Checked there are no open pull requests for the same cask.
[x] Checked the cask was not already refused in closed issues.
[x] Checked the cask is submitted to the correct repo.

font-hanamina

https://github.com/caskroom/homebrew-fonts/pull/1332


feat(launcher): exclude mute-audio in headless with ignoreDefaultArgs

Motivation
Despite ignoreDefaultArgs is implemented in https://github.com/GoogleChrome/puppeteer/pull/1623/files, but --mute-audio still isn't able to be overridden.
cc @aslushnikov @JoelEinbinder

Id rather do something like #2950

Closing in favor of #2950


Failed to build repo with optee-3.18.0

I was following this blogpost, but replaced optee with higher version. When executing this command,
make QEMU_VIRTFS_ENABLE=y CFG_TEE_RAM_VA_SIZE=0x00300000

I encountered the following error message:
make[1]: Entering directory '/home/user/optee-qemuv8-3.18.0/qemu'
changing dir to build for make ""...
make[2]: Entering directory '/home/user/optee-qemuv8-3.18.0/qemu/build'
config-host.mak is out-of-date, running configure
bash: line 3: ./config.status: No such file or directory
make[2]: *** No rule to make target 'config-host.mak', needed by 'meson.stamp'.  Stop.
make[2]: Leaving directory '/home/user/optee-qemuv8-3.18.0/qemu/build'
make[1]: *** [GNUmakefile:11: all] Error 2
make[1]: Leaving directory '/home/user/optee-qemuv8-3.18.0/qemu'
make: *** [Makefile:236: qemu] Error 2

optee-3.14.0, which is mentioned in the blogpost, is OK.

Hi @winston-wen
Teaclave TrustZone SDK has been tested with OP-TEE 3.18.0.
It seems you have issues with building OP-TEE 3.18.0 Repo (not the SDK), maybe previous building outputs remained in the directory. Suggest cleaning your optee-qemuv8-3.18.0 directory, executing repo sync and trying again.

A fresh build solved this issue! Thanks for your patience!

@winston-wen Happy to help.


Add users to roles using slash commands

I would like to create a bot that creates some slash commands, for example /roles add ROLE and /roles leave ROLE, that allow users to be added/removed to/from certain roles when they use the command.
This probably isn't possible using just interactions, but if I understand Discord docs correctly, it should be possible if we use a bot user/token:

In many cases, you may still need a bot user. If you need to receive gateway events, or need to interact with other parts of our API (like fetching a guild, or a channel, or updating permissions on a user), those actions are all still tied to having a bot token.

You will have to use the discord API. Look in the docs for how to give a user a role

Ok, thanks for your help.


NIFI-4889: Logout not working properly with OIDC

Redirect user agent to end session endpoint on the OIDC provider

Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

When running the test suite locally I have problems with an dependency:
[ERROR] Failed to execute goal on project nifi-hive-processors: Could not resolve dependencies for project org.apache.nifi:nifi-hive-processors:jar:1.7.0-SNAPSHOT: Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde in central (https://repo1.maven.org/maven2) -> [Help 1]

I had to add an additional repository to make it work, although I didn't commit it:
<repository>
    <id>spring-plugins</id>
    <url>http://repo.spring.io/plugins-release</url>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
    <releases>
        <enabled>true</enabled>
    </releases>
</repository>

Could it be, that the artifact was in Maven Central and was moved, but the CI on Travis as it cached in the local repo?

@Trojan295 - NiFi 1.7.0 has been released, I'd recommend you to rebase against master (so that all the pom files are updated to 1.8.0-SNAPSHOT) and do a full build to have a clean local maven repo (you shouldn't have 1.7.0-SNAPSHOT anymore). All the Travis builds are OK for your PR so it sounds OK to me.
Regarding the PR itself, I'll let someone like @mcgilman having a look ;)

Will review...

@Trojan295 Thanks for the PR! The code looks good but I ran into an issue when attempting to log out. Despite being a required field in the openid spec [1], it appears that at least in practice [2] the end_session_endpoint field is not guaranteed to be present. I think we may need to account for this possibility in the logout endpoint.
[1] https://openid.net/specs/openid-connect-session-1_0.html#OPMetadata
[2] https://accounts.google.com/.well-known/openid-configuration

I added a fallback to simply redirect back to NiFi in case the end session endpoint isn't present.
Tricky thing is, that NiFi automatically starts an login attempt, when an unauthenticated user accesses NiFi. In case of an IDP like Keycloak, which has the end session endpoint, then after logout the user is redirected back to Keycloaks login page.
In case of Google OpenID he gets redirected to them and the SSO mechanism logs the user again...

Looks good @Trojan295. Thanks! This has been merged to master.


missing persistent volume mount

We are not mounting the location of persistent volume mounts in the containerized version of microshift. If that container is replaced all persistent data will be lost

/lgtm

@cooktheryan if we merge #457 plus change to Podman volumes, this'll look more like
sudo podman run --network=host --privileged --rm --name microshift \
  -v /var/run/crio/crio.sock:/var/run/crio/crio.sock:rw,rshared \
  -v microshift-data:/var/lib/microshift \
  -v /var/lib/kubelet:/var/lib/kubelet:rw,rshared \
  -v /var/log:/var/log:rw,rshared \
  quay.io/microshift/microshift:latest

Would we still need this then?


Approver permissions for 1.28 Release

As the 1.28 Release Docs lead, I would like to add myself to the approver list for dev-1.28 branch.
/cc @gracenng
/cc @leonardpahlke

@leonardpahlke, Updated according to comments and squashed, could you please take a look again?

/assign @jimangel

/approve


Minify CSS

Hey there! 👋
Great extension. I love web components and the way it's incorporated into the 11ty. I have stumbled upon having my global styles (css) minified, is there any "best practice" approach already by any chance?
The following is my eleventy config:
import webcPlugin from '@11ty/eleventy-plugin-webc';

export default async function (config) {
  // Copy & minify styles
  // My global styles are served from src/_includes/assets/styles/global.css
  config.addPassthroughCopy('src/_includes/assets/styles', {
    transform: function (content, source, stats) {
      // Tried to return minified css here, no luck so far
  });

  // Add WebC plugin
  config.addPlugin(webcPlugin, {
    components: 'src/components/*.webc',
  });
}

Hey there! 👋
After a few hours of exploration, I figured out the solution. I read the file contents with node within the provided transform option and resolve it through further. Don't be surprised about through2 dependency, it's strictly mandatory by recursive-copy utility which is the part of addPassthroughCopy.
import through from 'through2';

config.addPassthroughCopy('src/_includes/assets/styles/*.css', {
  transform: function (src) {
    return through(function (chunk, enc, done) {
      done(null, minifyCSS(fs.readFileSync(src, 'utf8')));
    });
  },
});

Please make sure you've got through2 installed beforehand.
npm i -D through2

Closing this issue in the favour of already resolved solution. Please refer here for more details. 💪


New presets: Boundary Soft and Boundary Soft Dark

Made some modifications to the Boundary light theme to make it more soft, modified graph colors, and header style to some degree, I think Boundary Soft could be a good name then made a Boundary Dark that's based on JustBlack dark theme, modifying it to be an inverse version of Boundary Soft
{
  "Appearance-light@@accent-light": "#000000",
  "Appearance-light@@accent-color-override-light": false,
  "Appearance-light@@color-red-rgb@@light": "#E93147",
  "Appearance-light@@color-orange-rgb@@light": "#ec7500",
  "Appearance-light@@color-yellow-rgb@@light": "#e0ac00",
  "Appearance-light@@color-green-rgb@@light": "#08B94E",
  "Appearance-light@@color-cyan-rgb@@light": "#00bfbc",
  "Appearance-light@@color-blue-rgb@@light": "#086DDD",
  "Appearance-light@@color-purple-rgb@@light": "#7852EE",
  "Appearance-light@@color-pink-rgb@@light": "#D53984",
  "Appearance-light@@background-underlying-select-light": "background-underlying-CSS-light",
  "Appearance-light@@background-underlying-light": "#FFFFFF",
  "Appearance-light@@background-underlying-CSS-light": "radial-gradient(at 40% 20%, hsla(28,100%,74%,1) 0px, transparent 50%), radial-gradient(at 80% 0%, hsla(189,100%,56%,1) 0px, transparent 50%), radial-gradient(at 0% 50%, hsla(355,100%,93%,1) 0px, transparent 50%), radial-gradient(at 80% 50%, hsla(340,100%,76%,1) 0px, transparent 50%), radial-gradient(at 0% 100%, hsla(22,100%,77%,1) 0px, transparent 50%), radial-gradient(at 80% 100%, hsla(242,100%,70%,1) 0px, transparent 50%), radial-gradient(at 0% 0%, hsla(343,100%,76%,1) 0px, transparent 50%) ,#ffffff",
  "Appearance-light@@background-underlying-CSS-blend-mode-light": "none",
  "Appearance-light@@on-border-light": "#000000",
  "Appearance-light@@background-primary@@light": "#FFFFFF",
  "Appearance-light@@background-secondary@@light": "#FFFFFF",
  "Appearance-light@@background-modifier-hover@@light": "#00000013",
  "Appearance-light@@background-modifier-border@@light": "#D4D4D4",
  "Appearance-light@@text-normal@@light": "#222222",
  "Appearance-light@@text-muted@@light": "#5a5a5a",
  "Appearance-light@@text-faint@@light": "#ababab",
  "Appearance-light@@card-shadow-light": "0px 0px 0px 1px #4A4A4A",
  "Appearance-light@@color-activated-tab-header-light": "#FFFFFF",
  "Appearance-light@@color-to-tab-icon-light": true,
  "Appearance-light@@border-radius-activated-tab-header-light": "4px",
  "Appearance-light@@background-activated-tab-header-light": "black",
  "Appearance-light@@shadow-activated-tab-header-light": "none",
  "Appearance-light@@Active-states-file-explorer-select-light": "activated-file-tab-style-light",
  "Appearance-light@@input-radius-light": 3,
  "Appearance-light@@input-shadow-light": "inset 0 0 0 1px black",
  "Appearance-light@@input-shadow-hover-light": "inset 0 0 0 1px black",
  "Appearance-light@@toggle-thumb-color-light": "black",
  "Appearance-light@@toggle-thumb-enabled-color-light": "white",
  "Appearance-light@@toggle-thumb-shadow-light": "none",
  "Appearance-light@@toggle-thumb-enabled-shadow-light": "none",
  "Appearance-light@@toggle-track-color-light": "white",
  "Appearance-light@@toggle-track-enabled-color-light": "black",
  "Appearance-light@@toggle-track-shadow-light": "0px 0px 0px 1px #000000",
  "Appearance-light@@toggle-track-hovered-shadow-light": "0px 0px 0px 1px #000000",
  "Components@@tab-autohide": true,
  "Components@@status-bar-autohide": false,
  "Components@@Ribbon-autohide": true,
  "Components@@tab-title-bar-autohide": true,
  "Components@@nav-header-autohide": false,
  "Components@@anim-speed": 1.65,
  "Components@@new-tab-btn-select": "new-tab-btn-default",
  "Components@@new-tab-image-select": "new-tab-image-customize",
  "Components@@new-tab-image": "url(\" https://imgur.com/yES2sA6.png\")",
  "Editor@@heading-indicator-off": true,
  "Editor@@collapse-icon-restore": false,
  "Editor@@h1-divider-on": true,
  "Editor@@h2-divider-on": true,
  "Editor@@h3-divider-on": true,
  "Editor@@h5-divider-on": true,
  "Editor@@h4-divider-on": true,
  "Editor@@h6-divider-on": true,
  "Editor@@text-align-justify": false,
  "Editor@@ul-marker-restore": false,
  "Editor@@img-center-align": true,
  "Editor@@callout-style-select": "callout-style-4",
  "Editor@@seamless-embeds": true,
  "Editor@@callout-border-opacity": 0.3,
  "Editor@@callout-border-width": "2px",
  "Appearance-dark@@color-red-rgb@@dark": "#FB464C",
  "Appearance-dark@@color-orange-rgb@@dark": "#E9973F",
  "Appearance-dark@@color-yellow-rgb@@dark": "#E0DE71",
  "Appearance-dark@@color-green-rgb@@dark": "#44CF6E",
  "Appearance-dark@@color-cyan-rgb@@dark": "#53DFDD",
  "Appearance-dark@@color-blue-rgb@@dark": "#027AFF",
  "Appearance-dark@@color-purple-rgb@@dark": "#A882FF",
  "Appearance-dark@@color-pink-rgb@@dark": "#FA99CD",
  "Appearance-dark@@background-secondary@@dark": "#000000",
  "Appearance-dark@@background-tertiary@@dark": "#000000",
  "Appearance-dark@@text-normal@@dark": "#FFFFFF",
  "Appearance-dark@@text-muted@@dark": "#FFFFFF",
  "Appearance-dark@@text-faint@@dark": "#808080",
  "Appearance-dark@@link-external-color@@dark": "#83B4E5",
  "Appearance-dark@@link-external-color-hover@@dark": "#2791EB",
  "Editor@@inline-title-size": "3.5em",
  "Editor@@inline-title-weight": 800,
  "Editor@@inline-title-color-select": "inline-title-color-customized",
  "Editor@@inline-title-color@@dark": "#ADEEFF",
  "Editor@@inline-title-color@@light": "#877AE8",
  "Appearance-dark@@accent-color-override-dark": false,
  "Editor@@inline-title-divider-remove": false,
  "Appearance-dark@@background-underlying-select-dark": "background-underlying-CSS-dark",
  "Appearance-dark@@background-underlying-CSS-dark": "radial-gradient(at 40% 20%, hsla(28,100%,74%,1) 0px, transparent 50%), radial-gradient(at 80% 0%, hsla(189,100%,56%,1) 0px, transparent 50%), radial-gradient(at 0% 50%, hsla(355,100%,93%,1) 0px, transparent 50%), radial-gradient(at 80% 50%, hsla(340,100%,76%,1) 0px, transparent 50%), radial-gradient(at 0% 100%, hsla(22,100%,77%,1) 0px, transparent 50%), radial-gradient(at 80% 100%, hsla(242,100%,70%,1) 0px, transparent 50%), radial-gradient(at 0% 0%, hsla(343,100%,76%,1) 0px, transparent 50%) ,#ffffff",
  "Appearance-dark@@background-underlying-CSS-blend-mode-dark": "normal",
  "Appearance-dark@@on-border-dark": "#000000",
  "Appearance-dark@@mix-blend-mode-on-border-dark": "normal",
  "Appearance-dark@@background-modifier-hover@@dark": "#00000078",
  "Components@@icon-autohide": false,
  "Appearance-dark@@color-to-tab-icon-dark": true,
  "Appearance-dark@@color-activated-tab-header-dark": "#FFFFFF",
  "Appearance-dark@@background-activated-tab-header-dark": "black",
  "Appearance-dark@@shadow-activated-tab-header-dark": "none",
  "Appearance-dark@@border-radius-activated-tab-header-dark": "4px",
  "Appearance-light@@background-modifier-border-hover@@light": "#4A4A4A",
  "Appearance-light@@mod-root-split-background-select-light": "mod-root-split-background-primary-light",
  "Appearance-light@@mod-right-split-background-select-light": "mod-right-split-background-customize-light",
  "Appearance-light@@background-mod-right-split-light": "#FFFFFFDB",
  "Appearance-dark@@mod-right-split-background-select-dark": "mod-right-split-background-customize-dark",
  "Appearance-dark@@background-mod-right-split-dark": "#000000DE",
  "Appearance-dark@@mod-left-split-background-select-dark": "mod-left-split-background-primary-dark",
  "Appearance-dark@@theme-dark-style-select": "theme-dark-background-darker",
  "Appearance-dark@@card-border-radius-dark": "8px",
  "Appearance-dark@@card-shadow-dark": "0px 0px 0px 1px #E4E4E4",
  "Appearance-dark@@Active-states-file-explorer-select-dark": "activated-file-tab-style-dark",
  "Appearance-dark@@input-radius-dark": 3,
  "Appearance-dark@@input-shadow-dark": "inset 0 0 0 1px white",
  "Appearance-dark@@input-shadow-hover-dark": "inset 0 0 0 1px white",
  "Appearance-dark@@toggle-thumb-color-dark": "white",
  "Appearance-dark@@toggle-thumb-enabled-color-dark": "black",
  "Appearance-dark@@toggle-thumb-shadow-dark": "none",
  "Appearance-dark@@toggle-thumb-enabled-shadow-dark": "none",
  "Appearance-dark@@toggle-track-color-dark": "black",
  "Appearance-dark@@toggle-track-enabled-color-dark": "white",
  "Appearance-dark@@toggle-track-shadow-dark": "0px 0px 0px 1px #FFFFFF",
  "Appearance-dark@@toggle-track-hovered-shadow-dark": "0px 0px 0px 1px #FFFFFF",
  "Appearance-light@@workspace-divider-transparent-light": false,
  "Appearance-dark@@background-primary@@dark": "#000000",
  "Appearance-dark@@background-modifier-border@@dark": "#3E3E3E",
  "Appearance-dark@@background-modifier-border-hover@@dark": "#E4E4E4",
  "Appearance-dark@@background-secondary-alt@@dark": "#FFFFFF00",
  "Appearance-dark@@card-layout-open-dark": false,
  "Appearance-light@@card-highlight-light": false,
  "Appearance-dark@@interactive-hover@@dark": "#171717",
  "Appearance-dark@@interactive-accent-hover@@dark": "#1F1F1F",
  "Appearance-dark@@interactive-normal@@dark": "#000000",
  "Editor@@border-focus-mode": false,
  "Editor@@line-normal-opacity": 0.65,
  "Editor@@line-hover-indicator": false,
  "Editor@@link-decoration-hover": "underline",
  "Mobile@@drawer-phone-full-width": false,
  "Components@@CTA-BTN-enable": false,
  "Components@@file-names-untrim": true,
  "Components@@vault-name-display-select": "vault-name-hide",
  "Components@@folder-font-bold": false,
  "Components@@graph-line@@dark": "#FFFFFFAB",
  "Components@@graph-line@@light": "#00000069",
  "Components@@graph-text@@light": "#000000",
  "Components@@graph-text@@dark": "#FFFFFF",
  "Components@@graph-node@@dark": "#FFFFFFE8",
  "Components@@graph-node-unresolved@@light": "#00000057",
  "Components@@graph-node-unresolved@@dark": "#FFFFFF91",
  "Components@@graph-node-tag@@light": "#877AE8",
  "Components@@graph-node-tag@@dark": "#ADEEFF",
  "Components@@immersive-canvas": true,
  "Components@@media-embed-card-border-off": true,
  "Components@@canvas-card-menu": "canvas-card-menu-center",
  "Components@@scrollbar-hide": true,
  "Appearance-light@@card-layout-open-light": false,
  "Components@@graph-node@@light": "#000000B8",
  "Editor@@zoom-off": true,
  "Editor@@img-darken": false
}

The two themes are in the same style settings export, you can edit them to be individual, or bundle them together If you want to, I don't consider me capable of doing so.
Credits to the original too, as I only modified the already made themes.

great one, but you can also post it in the discussions, where probably more people will be interested in this preset, and I will also create a link in the presets documentation later that points to user presets in the discussions


ETIMEDOUT connect ETIMEDOUT failure on microsoft hosted agents while running tests in browserstack.

I have an automation framework in Protractor with Jasmine. And I’m trying to trigger browserstack tests from Microsoft hosted agent (e.g. “Hosted vs2017”) through vsts task within a release definition. But as soon as the spec file has more than few tests, its start getting “ETIMEDOUT connect ETIMEDOUT <IP_ADDRESS>” error and as per my observation, the ip address within the error is that of the hub.browserstack.com server sitting in US. We don’t have any proxy or firewall as the tests fail at random places but everytime.
The test runs fine if I host the same agent from my machine. It seems to be related to Microsoft hosted VMs when spin up automatically in VSTS.

@andyjlewis Can you help route this one?

Thank you for your feedback. I have passed this on to the product team for advice.

@ShaifaliKhera - this repo is for doc issues only. You have already reported this one on the tasks repo as well. https://github.com/Microsoft/vsts-tasks/issues/7880
Closing this one out.


⚠ Home 主页 has degraded performance

In fe7e22c, Home 主页 (https://www.fangkehou.eu.org) experienced degraded performance:

HTTP code: 200
Response time: 15219 ms

Resolved: Home 主页 performance has improved in 9abb374.


documentation: Fix typo in bootstrap doc

Hello!
One or more of the commit messages in this PR do not match the Jakt code submission policy, please check the lint_commits CI job for more details on which commits were flagged and why.
Please do not close this PR and open another, instead modify your commit message(s) with git commit --amend and force push those changes to update this PR.

Thanks! :^)


Set default payment method to a specific one

How do I change the initial payment method, I only want to use bank transfer as payment method.

You can disable other options from your paystack dashboard. It will
automatically reflect via the package
On Wed, 19 Jun 2024 at 17:13, WilliamTobs @.***> wrote:

How do I change the initial payment method, I only want to use bank
transfer as payment method.
—
Reply to this email directly, view it on GitHub
https://github.com/Princewil/flutter_paystack_plus/issues/14, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AJWWTE4J4YY7RZLP7PKZHWLZIGUY5AVCNFSM6AAAAABJSLNNR2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGM3DENZTGM3DCNA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

That is not feasible considering we still need other options from another page. Thanks anyway.

You are welcome👍


Issue with invalid label

Seen in the log of the auto issue closer:
018-07-18T20:57:43.980874+00:00 app[web.1]: Checking 7060
2018-07-18T20:57:44.485682+00:00 app[web.1]: -> CLOSING issue 7060
2018-07-18T20:57:44.739104+00:00 app[web.1]: -> WARNING: Label does not exist: set()
2018-07-18T20:57:45.494535+00:00 app[web.1]: Checking 7054
2018-07-18T20:57:45.967184+00:00 app[web.1]: -> CLOSING issue 7054
2018-07-18T20:57:46.172075+00:00 app[web.1]: -> WARNING: Label does not exist: set()
2018-07-18T20:57:47.053923+00:00 app[web.1]: Checking 7053
2018-07-18T20:57:47.681967+00:00 app[web.1]: -> WARNING issue 7053
2018-07-18T20:57:47.946722+00:00 app[web.1]: Checking 7045
2018-07-18T20:57:48.370363+00:00 app[web.1]: -> CLOSING issue 7045
2018-07-18T20:57:48.573939+00:00 app[web.1]: -> WARNING: Label does not exist: set()

But it's there: https://github.com/astropy/astropy/labels/invalid

or you mean some other label not 'invalid'?

('closed-by-bot' also exists)

Sorry I meant the error Label does not exist: set() wasn't clear, but I understand now why that is based on the source code. I'll have a fix to have a clearer error tomorrow.


Add PipelineRun types to v1alpha2 🎋

Changes
This port PipelineRun from v1alpha1 as is to v1alpha2.
Next is the auto-conversion part for all the type, updating knative.dev/pkg (see #1894) and exposing it :stuck_out_tongue_closed_eyes:
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[x] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[x] Commit messages follow commit message best practices

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.

/lgtm


[7.x] Adds the redacted string helper methods

Redact (obfuscate) part of a string
This pull includes three new helpers that allow developers to redact (obfuscate) part of a string. This can be used to hide parts of strings like credit card numbers, emails, or several iterations of a given value.
It redacts all unicode word characters and digits.
redact
This basically redacts half of the string by default. You can set a custom length.
echo Str::redact('5467 3665 1540 5769'); // **** **** 1540 5769
echo Str::redact('5467 3665 1540 5769', 14); // **** **** **** 5769

redactAll
This redacts all word iterations inside a string for another string.
echo Str::redactAll('Michael called to another Michael'); // ******* called to another *******

redactBefore
This redacts the string until a given value.
echo<EMAIL_ADDRESS>'@'<EMAIL_ADDRESS>

This sweeps all the characters instead of just word characters.

Todo

Maybe create redactWords to just redact words until certain number of words. I will literally need help on that.

F*ck it, I went and re-worked it. Updated first post.

You're test are failing and based on the output there is a dump left in it somewhere. Also I think it would be great to support negative length: redact -4 => keep the last 4 only.

Personally, I don't think this belongs in the framework core, tbh.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Polar Decomposition via Carlson & Hoger

Polar Decomposition Function is not robust. Implement Franca method if time permits. At the very least, clean up Carlson & Hoger.

``if (a3.EQ.-2.0_8*I1C) then
Especially this guy


Customized video file name

fixes #35
I added a custom input where name for the recording file would be given and will be downloaded with same name, if file name is not provided the video file will be saved with random string

Good Job 👍
Actually I am away from my keyboard so I  will merge the repo after checking it on Desktop 🖥.
I have added hacktoberfest-accepted label so that you don't have to wait anymore.

Thanks man..

Checked the code , impressive .
can you do some UI changes ?

like what?

like what?

I would suggest if you Take the input at the end where the Your video is ready to be exported  text is displayed

I tried it earlier bro, i also wanted to do it like that itself
But you know when u click on stop button every function related to the making video file in your code ends... U can't get hold of any function to get the input value and also as soon as button is clicked the video is already ready to download

Ooooo , Let me think of something

Done...
Good to go


Feature Request: Keep background color on connected interfaces for instant recognition

I was thinking that when you connected an interface the background color would stay green. When the page is reloaded the green color goes away. If you add this code to the interface.html file it will keep the green color on the connected interfaces. So when you load a device page page you can just glance at the page without having to read anything and see which interfaces have something connected(Green), which have planned connections (Blue) and which are open interfaces (White)
what it currently is:

What I changed it to to show the green for connected interfaces:

This would be awesome!

@traveler3468 would this styling assertion be valuable elsewhere, power, etc?
UI consistency is key =)
@jeremystretch if you're open to PR's on this one I'd be glad to help - just want to make sure we're on the same page for where this would be applicable.

@bellwood My thought here is that any easily recognizable information is better for users than having to look further into something if its not necessary. Obviously if you're looking for more specific information then you are going to look harder for it. I think that if this kind of styling could be applicable anywhere where that kind of "easy to see" differentiation would be helpful.

Massive +1, this could be a huge improvement.

To be clear, you just want to see connected interfaces always highlighted in green? And keep the blue highlighting for those in the "planned" state?

Correct. That way when looking at a device page it is easily recognizable which interfaces are free(nothing connected or planned) and which interfaces either A: Have something connected and, B: Have a planned connection.


Hapi v17 Support

Overview
If you are not aware yet, Hapi v17 is making the transition from callbacks to async/await, as well as deprecating some other rarely used functionality. This is a breaking change that may make your plugin no longer compatible with the Hapi API.
Changelog
Draft release notes can be found here: https://github.com/hapijs/hapi/issues/3658
Target Release
The target release date for v17 is the beginning of November.
Tasks

[ ] Reply to this to acknowledge that you are actively maintaining this module and are willing to update it
[ ] Update plugin to be fully async/await compatible using the v17 branch from Hapi for testing
Possible dev flow for updating

Clone Hapi
npm link within the Hapi repo
npm link hapi within your plugin repo
Your plugin will now be using v17 of Hapi branch for tests

[ ] Release new major version of your plugin on npm. Please use a major version increment as this will be a breaking change and it would be terrible for it to sneak into current versions of Hapi.

Notes

Support is being dropped for all versions of Node <8.0.0.
Hapi v16 will continue to be supported for as long as there exists a Node LTS actively being supported that is not compatible with v17.
Targeted release date is November 1st, 2017. Please try to have your plugin updated before then.
This issue is being opened because your plugin is listed on the official hapi website

Any update on hapi v17 support?

Hi - sorry about the delay working 6/7 day weeks at the moment. I have a free block of 3-4 hours on Wednesday 22nd. I will have a look at then.

Willing to help!

@glennjones Any updates on this? Many of us would gladly help.

I'd also happily help if it quickens up the process.

I've added a PR that still needs work. Most of the unit test are passing minus the tests that are dependent on 3rd party plugins which have not yet upgraded to v17. Hopefully it's a starting point that helps @glennjones or others to use.
I'll continue working on the PR as I have time and if @glennjones doesn't have objections.

Hi All @robmcguinness has done some great work with his PR #481 - I have finally found a bit of time to review it and I am hoping to move it forward with peoples help. I have merged this work into a branch while its finished off https://github.com/glennjones/hapi-swagger/tree/feature/hapi-17

All done v9.x is released, let me know about any issues. Thanks again to @robmcguinness for pull request, not sure when I would have got around to this without that help.


Add cuQuantum Python v<IP_ADDRESS>

Blocked by https://github.com/conda-forge/cuquantum-feedstock/pull/1.

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please restart ci


docs(switchAll): missing tap import

tap is not defined for the example

Description:
Related issue (if exists):

Pull Request Test Coverage Report for Build 8306

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.871%

Totals

Change from base Build 8294:
0.0%

Covered Lines:
5789

Relevant Lines:
5976

💛  - Coveralls


[bug]: {"detail":"Not Found"} after update to 3.6.0

Is there an existing issue for this?

[X] I have searched the existing issues

OS
Windows
GPU
cuda
VRAM
8GB
What version did you experience this issue on?
3.6.0
What happened?
It was working fine until I click on update to 3..6.0 on main launcher.
it installed without any issue and now when I run invokeai on localhost:9090 it just shows {"detail":"Not Found"} in browser.
Screenshots
No response
Additional context
`Official standalone.
Loading...
WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. xFormers was built for:
PyTorch 2.1.2+cu121 with CUDA 1201 (you have 2.1.2+cpu)
Python  3.10.11 (you have 3.10.12)
Please reinstall xformers (see https://github.com/facebookresearch/xformers#installing-xformers)
Memory-efficient attention, SwiGLU, sparse and more won't be available.
Set XFORMERS_MORE_DETAILS=1 for more details
[2024-01-19 23:24:20,612]::[InvokeAI]::INFO --> Patchmatch initialized
C:\invokeai_standalone_latest\invokeai3_standalone\env\lib\site-packages\torchvision\transforms\functional_tensor.py:5: UserWarning: The torchvision.transforms.functional_tensor module is deprecated in 0.15 and will be removed in 0.17. Please don't rely on it. You probably just need to use APIs in torchvision.transforms.functional or in torchvision.transforms.v2.functional.
warnings.warn(
[2024-01-19 23:24:25,309]::[uvicorn.error]::INFO --> Started server process [20124]
[2024-01-19 23:24:25,311]::[uvicorn.error]::INFO --> Waiting for application startup.
[2024-01-19 23:24:25,311]::[InvokeAI]::INFO --> InvokeAI version 3.6.0
[2024-01-19 23:24:25,311]::[InvokeAI]::INFO --> Root directory = C:\invokeai_standalone_latest\invokeai3_standalone\invokeai
[2024-01-19 23:24:25,311]::[InvokeAI]::INFO --> Initializing database at C:\invokeai_standalone_latest\invokeai3_standalone\invokeai\databases\invokeai.db
[2024-01-19 23:24:25,315]::[InvokeAI]::INFO --> GPU device = cpu
[2024-01-19 23:24:25,331]::[InvokeAI]::INFO --> Scanning C:\invokeai_standalone_latest\invokeai3_standalone\invokeai\models for new models
[2024-01-19 23:24:25,630]::[InvokeAI]::INFO --> Scanned 34 files and directories, imported 0 models
[2024-01-19 23:24:25,640]::[InvokeAI]::INFO --> Model manager service initialized
[2024-01-19 23:24:25,642]::[ModelInstallService]::INFO --> Checking for models that have been moved or deleted from disk
[2024-01-19 23:24:25,645]::[ModelInstallService]::INFO --> Scanning C:\invokeai_standalone_latest\invokeai3_standalone\invokeai\models for new and orphaned models
[2024-01-19 23:24:25,681]::[ModelInstallService]::INFO --> 0 new models registered; 0 unregistered
[2024-01-19 23:24:25,681]::[ModelInstallService]::INFO --> Scanning autoimport directory for new models
[2024-01-19 23:24:25,684]::[ModelInstallService]::INFO --> 0 new models registered
[2024-01-19 23:24:25,684]::[ModelInstallService]::INFO --> Model installer (re)initialized
[2024-01-19 23:24:25,738]::[uvicorn.error]::INFO --> Application startup complete.
[2024-01-19 23:24:25,738]::[uvicorn.error]::INFO --> Uvicorn running on http://<IP_ADDRESS>:9090 (Press CTRL+C to quit)
[2024-01-19 23:24:26,124]::[uvicorn.access]::INFO --> <IP_ADDRESS>:59442 - "GET / HTTP/1.1" 404`
Contact Details
No response

The easiest fix is to delete your ".venv" folder and re-run the 3.6.0 installer

@Millu there was no .venv folder. (there was venv however) deleting it and reinstalling resolved the issue but now i get this error on running:
File "C:\invokeai_standalone_latest\invokeai3_standalone\env\lib\site-packages\torch\cuda_init_.py", line 289, in _lazy_init
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

Sorry, I missed that you were using the standalone installer. Not sure what the solve is there, but another solve would be to install via the automated installer: https://github.com/invoke-ai/InvokeAI/releases/tag/v3.6.0

@Millu here is the chronology
Installed using standalone 7z installation. worked fine
updated using automatic updater. Installation failed. (some files were locked by updater itself)
deleted locked files in python folder
ran update again. it succeeded this time. but browser page will not open up. and display error mentioned in first post.
Now I have tried re-installing torch with pip install "InvokeAI[xformers]" --use-pep517 --extra-index-url https://download.pytorch.org/whl/cu121
Install completed without errors. however on running: File "C:\invokeai_standalone_latest\invokeai3_standalone\env\lib\site-packages\torch\cuda_init_.py", line 419, in get_device_name
return get_device_properties(device).name
File "C:\invokeai_standalone_latest\invokeai3_standalone\env\lib\site-packages\torch\cuda_init_.py", line 449, in get_device_properties
_lazy_init()  # will define get_device_properties
File "C:\invokeai_standalone_latest\invokeai3_standalone\env\lib\site-packages\torch\cuda_init.py", line 289, in _lazy_init
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
Press any key to continue . . .

Got the same issue just now, but on a Linux manjaro machine.

Found the solution on the release page: https://github.com/invoke-ai/InvokeAI/releases/tag/v3.6.0
"When upgrading from 3.4 via the updater script, the UI will not render and will display an error: {"detail":"Not Found"}. To fix this error, open the developer console from the invoke.bat / invoke.sh menu and run: pip install --use-pep517 --upgrade  --force-reinstall InvokeAI==v3.6.0"

Found the solution on the release page: https://github.com/invoke-ai/InvokeAI/releases/tag/v3.6.0
"When upgrading from 3.4 via the updater script, the UI will not render and will display an error: {"detail":"Not Found"}. To fix this error, open the developer console from the invoke.bat / invoke.sh menu and run: pip install --use-pep517 --upgrade --force-reinstall InvokeAI==v3.6.0"

This method was helpful for me.

Is this still a relevant open bug report?


python3Packages.ipython: enable tests, reformat

Motivation for this change
Enable tests again, as the ipykernel infinite recursion has been
resolved. Reformat!
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Already fixed in NixOS 21.11 via https://github.com/NixOS/nixpkgs/pull/156176.

The tests fail on x86_64-darwin, and that's blocking nixpkgs-unstable: https://hydra.nixos.org/build/166547282
So... at least doCheck = false; based on platform?

Looks like we're missing a checkInput for darwin.

E               FileNotFoundError: [Errno 2] No such file or directory: 'pbpaste'


Stock "edit" template doesn't escape or quote "special" characters

The stock 'edit' template doesn't do anything about special characters which means that you can't 'round-trip' an issue that has a summary containing something like Cool:: functions should be cool
I've not written any go before, if there's a particular escaping function that could be plugged into the template I'd gladly send a pull request, I just need some pointers for where to start!

Hey, yeah I need to fix the default templates to make them a bit smarter. There are special characters in yaml that need to be escaped. You can manually add that escaping to work around the issue:
summary: "Cool:: functions should be cool"

Or this will work:
summary: >-
    Cool:: functions should be cool

Both will produce the same parsed structure in YAML.
-Cory

Seriously a problem - we can't use any edit commands because we name our issues [Platform] Description.

@elsassph curious if you were able to use the suggested syntax?
summary: >-
    [Platform] Description

I added quotes in the template - would you accept a PR changing the default template? To the syntax you seem to prefer.
(thanks for the quick answers BTW)

Yeah, I think the >- syntax is probably preferable, a PR would be most welcome!

Updated all default templates to use the >- syntax for summary in latest release.


Consider exporting and documenting the 'async_io::poll_future' function

I looked through the code of this crate and found the poll_future function inside async_io.rs. I copied it into code of mine (which already uses smol as async backend) and it seems to work (at least it compiles without errors and warnings, but I haven't tested it enough to be sure that it really works as expected in practice). The function seems to be useful to call async functions from poll_* implementations (impl AsyncRead, AsyncWrite, etc.), but I don't know about the general applicability of it for that use case.

I think that would be a better fit for the futures crate. It is a function I've often wanted and need to implement myself every time :/

I think the most important restriction of the function is that the Future looses all internal state (internal to the future, not internal to self) on yield, which means all state which can't be recovered implicitly, but should be retained (= parameters of fn poll_* often shouldn't be retained, as they might change), must be exported/saved into self.

hm, I used it in yz-encsess v2, but I'm not sure if my usage is correct (e.g. resilent and reentrant).


Remove the abstract BaseViewer-class

After the changes in PR #14112 the PDFViewer-class is now "identical" to the BaseViewer-class and the PDFSinglePageViewer-class is just a very thin wrapper around the BaseViewer-class.
Hence we can rename these files, and also remove the abstract BaseViewer-class, which helps reduce some unnecessary "closures" in the built viewer.
Please note: These changes are made in two separate commits, to allow GitHub to preserve blame for the affected files.

/botio-linux preview

/botio unittest

Looks good to me; thanks!


Fix CTest to handle skipped case

According to our customer, CTest XML format don't have <NamedMeasurement name="Execution Time" /> element in skipped tests. I fixed CTest plugin to handle missing that element. Also, I added a converter that handles a notrun case as a skipped case.

I've tested this change with the customer's data. But I can't share it in this public repository.

I've tested this change with the customer's data. But I can't share it in this public repository.

I agree with you.
But we should add a unit test for skip case and we can add a common skip test to a rocket car repo, can't you?

No, I couldn't find the way to skip Google Test in the rocket-car-googletest.

Okay, I'm going to add a test with anonymizing the customer's data.

@Konboi I modified an existing test case to skip case based on the customer's data.


how to use Masorny customImageComponent?

I read README.md .
And I wrote below.
import React, { Component } from 'react';
import { View, Text, Image, StyleSheet } from 'react-native';
import Masonry from 'react-native-masonry';
import FastImage from 'react-native-fast-image';

const data = [
  {
    uri: 'https://unsplash.it/400/400?image=1',
    priority: FastImage.priority.normal,
    style: { width: 300, height: 300 }
  }
];

const fastProps = {
  onProgress: e => { console.log(e.nativeEvent.loaded / e.nativeEvent.total) },
  resizeMode: FastImage.resizeMode.contain
};

class HomeScreen extends Component {
  constructor(props) {
    super(props);
  }

  render() {
    return (
      <View>

        <FastImage
          style={s.image}
          source={{
            uri: 'https://unsplash.it/400/400?image=1',
            headers:{ Authorization: 'someAuthToken' },
            priority: FastImage.priority.normal,
          }}
          resizeMode={FastImage.resizeMode.contain}
        />  <<<<<<<<<<<<<<<<<<< **_this is well._**

        <Masonry
          bricks={data}
          customImageComponent={FastImage}
          customImageProps={fastProps} />  **_<<<<<<<<<< this is not showing on screen_**

      </View>
    );
  }
}

export default HomeScreen;

const s = StyleSheet.create({
  image: {
    width: 300,
    height: 300
  }
});

First, I try to use FastImage single like below.
<FastImage>
This work well.
But I try to use FastImage with Masonry (customImageComponent) ,
this is not showing.
I'd like to know detail how to use customImageComponent.
Needs help.
Thank you :)

I think of this problem was didn't styling so how to apply some 'style' in customImageComponent?

@kkotkkio I would suggest following the example, the example is using FastImage ^_^


[DATA-663] Add data deletion API

Add gRPC endpoints and requests/responses defined in the ML Data Deletion Scope.

@mcvella The dist/buf tooling is still broken, so locally not getting the js files that CI is generating. Double checked with Adam and he's getting the same result on his machine, so could we force merge this in the interim?


adding YYMMDDN

Adding a Date format so that the Type Provider will parse Dates in SAS files with columns in format "YYMMDDN". Previously, the provider would simply return the integer representing the date.
A full list of date formats is here: https://v8doc.sas.com/sashtml/lrcon/zenid-63.htm
I just added the format I needed in my file, because I could check and verify my simple change worked.

@tpetricek , for context this change is necessary to correctly parse date fields in files from the main academic finance research data provider (https://wrds-web.wharton.upenn.edu/wrds/).
The project builds the dll correctly with my edit, but it is not passing Travis here because the toolbox has not been updated to Fake 5 yet.


how to use in react

I've read the readme.md file, but I still didn't deploy it successfully.
my webpack.config.js is below:
          { test: /jquery-mousewheel/, loader: "imports?define=>false&this=>window" },
          { test: /malihu-custom-scrollbar-plugin/, loader: "imports?define=>false&this=>window"}

and ,Could i use it in react Component?
Do you use the following code directly? Where should this code be placed?
import $ from 'jquery';
require('jquery-mousewheel')($);
require('malihu-custom-scrollbar-plugin')($);

And I've read this article, but where should I put it in the life cycle? How to bind to a container？
issues/404

Did you find out how to do it? Because I am stuck here as I am getting an error:
Menu.jsx:43 Uncaught TypeError: __webpack_require__(...) is not a function

same error

I had the same problem too.
this is just a quick fixed and it works for me
first npm install jquery --save
in your file
import $ from 'jquery'
let mCustomScrollbar = ''

const scrollBarLoaded = () => {
  return new Promise( (resolve, reject) => {
    const scrollStyle = document.createElement('link')
    scrollStyle.type = 'text/css'
    scrollStyle.rel = 'stylesheet'
    scrollStyle.href = 'https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.1.5/jquery.mCustomScrollbar.min.css'
    document.getElementsByTagName('head')[0].appendChild(scrollStyle);

    const scrollScript = document.createElement('script')
    scrollScript.onload = resolve
    scrollScript.onerror = reject
		scrollScript.id = 'scroll_script'
    scrollScript.async = true
    scrollScript.src = 'https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.1.5/jquery.mCustomScrollbar.concat.min.js'
    document.body.appendChild(scrollScript)
  })
}

now in your componentDidMount
window.jQuery = $
scrollBarLoaded().then( () => {
      mCustomScrollbar = window.mCustomScrollbar
      $('.awesome-class').mCustomScrollbar({
          theme: 'light'
      })
})

hope this help

Thats works for me. I hope this will help someone.
first npm install jquery-mousewheel --save
In your component:
import $ from 'jquery' import 'malihu-custom-scrollbar-plugin' import 'malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css'
after all impors:
require('jquery-mousewheel')
componentDidMount() {              $('.any-class').mCustomScrollbar({          theme: "light",          axis:"yx",          setHeight: 613,      }) }


"Improper nesting" hint hides last line of svg code

The hint overlaps the source window, so the last line is impossible to see:

Thanks for the report! This is actually already fixed in a big PR I'm making.


Update README.md

Include the iframeResizer.min.js file in the typical setup for new users.

Thanks