Graphical Artifacts on blurred backgrounds

Steps to reproduce

Create a SingleChildScrollView with a Column containing a custom widget that animates overflowing text (e.g., sliding horizontally).
Use ImageFiltered with ImageFilter.blur to create a blurred background.
Observe the behavior of the animated text over the blurred background.

When animating text over a blurred background using ImageFiltered with a blur filter, graphical artifacts are visible around the moving text. The issue becomes apparent when the text is sliding due to overflow handling. Removing the blurring effect resolves the issue, indicating that the combination of text animation and background blurring is causing the visual glitches.
Worth pointing out, even without the animation running there is still some glitches. Please see the screenshot provided.
It might be related to this issue:
https://github.com/flutter/flutter/issues/135626
Expected results
The text should animate smoothly over the blurred background without any graphical glitches.
Actual results
Graphical artifacts appear around the animated text when it is displayed over the blurred background, particularly at the start and end points of the animation.
When scrolling graphical artifacts also appear above and below the list itself.
Code sample
Code sample
import 'dart:ui';
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: 'Music App',
      theme: ThemeData(
        brightness: Brightness.dark,
        primarySwatch: Colors.purple,
      ),
      home: MusicScreen(),
    );
  }
}

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

  final List<String> songTitles = [
    "Short Title",
    "This Title is a Bit Longer",
    "This is a Very Long Song Title That Will Overflow",
    "A Medium Length Title",
    "An Extremely Long Title That Surely Won't Fit on the Screen and Will Be Truncated",
    "Shorty",
    "I'm a Title That's Just Right",
    "The Length of This Title Is Excessive and Demonstrative",
    "Title",
    "This Title Is Intentionally Made Longer Than Usual to Test Overflow Handling in a ListTile Widget",
  ];

  @override
  Widget build(BuildContext context) {
    return BlurredBackground(
      child: Scaffold(
        backgroundColor: Colors.transparent.withOpacity(0.6),
        body: CustomScrollView(
          slivers: [
            SliverToBoxAdapter(
              child: ListView.builder(
                primary: false,
                shrinkWrap: true,
                itemCount: songTitles.length,
                itemBuilder: (BuildContext context, int index) {
                  return Padding(
                    padding: const EdgeInsets.all(16.0),
                    child: SlidingTextOnOverflow(
                        text: songTitles[index],
                        style: const TextStyle(
                          color: Colors.white,
                          fontSize: 18,
                        )
                    ),
                  );
                },
              ),
            ),
          ],
        ),
      ),
    );
  }
}

class BlurredBackground extends StatelessWidget {
  final double blurAmount;
  final Widget child;

  const BlurredBackground({
    super.key,
    this.blurAmount = 60,
    required this.child,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xFF242424),
      child: Stack(
        fit: StackFit.expand,
        children: [
          ClipRect(
            child: ImageFiltered(
              imageFilter: ImageFilter.blur(
                sigmaX: blurAmount,
                sigmaY: blurAmount,
              ),
              child: Image.asset(
                'assets/images/default_artwork.jpg',
                fit: BoxFit.cover,
                gaplessPlayback: true,
              ),
            ),
          ),
          child,
        ],
      ),
    );
  }
}

/// Performs a sliding animation on a text if the text overflows.
///
/// By default, the animation starts running after [delayDuration] and then slide the text to the left.
/// Then the animation is paused during [pauseDuration] before sliding in the opposite direction.
class SlidingTextOnOverflow extends StatelessWidget {
  final String text;
  final TextStyle style;
  final TextAlign? textAlign;

  /// Optional width parameter to constrain the text box
  final double? maxWidth;

  /// Delays the start of the animation
  final bool isDelayed;

  /// The speed of the scrolling text, in logical pixels per second
  final int speed;

  /// The time until the animations should start (if [isDelayed] is true)
  final Duration delayDuration;

  /// How long the animation should be paused before going in the opposite direction.
  final Duration pauseDuration;

  const SlidingTextOnOverflow({
    super.key,
    required this.text,
    required this.style,
    this.maxWidth,
    this.textAlign,
    this.isDelayed = true,
    this.delayDuration = const Duration(milliseconds: 800),
    this.pauseDuration = const Duration(seconds: 3),
    this.speed = 30,
  });

  Text _richTextBuilder(TextSpan span) {
    return Text.rich(
      span,
      maxLines: 1,
      softWrap: false,
      textAlign: textAlign,
      overflow: TextOverflow.visible,
    );
  }

  @override
  Widget build(BuildContext context) {
    return RepaintBoundary(
      child: SizedBox(
        width: maxWidth,
        child: ClipRect(
          clipBehavior: Clip.hardEdge,
          child: LayoutBuilder(
            builder: (context, constraints) {
              final textSpan = TextSpan(
                text: text,
                style: style,
              );

              // Use a textpainter to determine if the text will exceed max lines
              final textPainter = TextPainter(
                maxLines: 1,
                textDirection: TextDirection.ltr,
                text: textSpan,
              );

              textPainter.layout(maxWidth: constraints.maxWidth);

              // Check whether the text overflows or not
              final isOverflowing = textPainter.didExceedMaxLines;
              if (isOverflowing) {
                // Calculates how much space being overflowed which
                // is how many pixels the text should slide in the X-direction.
                final dx = textPainter.maxIntrinsicWidth - textPainter.width;
                final milliseconds = (dx / speed * 1000).toInt();
                final duration = Duration(milliseconds: milliseconds);
                return _HorizontalSlider(
                  endOffset: Offset(-1 * dx.abs(), 0),
                  isDelayed: isDelayed,
                  duration: duration,
                  delayDuration: delayDuration,
                  pauseDuration: pauseDuration,
                  child: _richTextBuilder(textSpan),
                );
              }
              return _richTextBuilder(textSpan);
            },
          ),
        ),
      ),
    );
  }
}

/// The actual animated slider
class _HorizontalSlider extends StatefulWidget {
  final Widget child;
  final Offset endOffset;
  final Duration duration;
  final bool isDelayed;
  final Duration delayDuration;
  final Duration pauseDuration;

  const _HorizontalSlider({
    required this.child,
    required this.endOffset,
    required this.duration,
    required this.isDelayed,
    required this.delayDuration,
    required this.pauseDuration,
  });

  @override
  State<_HorizontalSlider> createState() => _HorizontalSliderState();
}

class _HorizontalSliderState extends State<_HorizontalSlider>
    with SingleTickerProviderStateMixin {
  late AnimationController _controller;
  late Animation<Offset> _offset;

  // Since the animation can be paused when completed, (pauseDuration > 0)
  // it's possible that the user disposes the widget during the pause,
  // therefore, we check if we are still mounted to prevent running the animation
  // after the controler has been disposed
  void animateForward() => mounted ? _controller.forward() : null;
  void reverse() => mounted ? _controller.reverse() : null;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(
      duration: widget.duration,
      reverseDuration: widget.duration,
      vsync: this,
    );

    _offset = Tween<Offset>(
      begin: const Offset(0, 0),
      end: widget.endOffset,
    ).animate(
      CurvedAnimation(
        parent: _controller,
        curve: const Cubic(.2, 0, .8, 1),
        reverseCurve: const Cubic(.2, 0, .8, 1),
      ),
    );

    if (widget.isDelayed) {
      Future.delayed(widget.delayDuration, animateForward);
    } else {
      animateForward();
    }

    _controller.addListener(() async {
      if (_controller.isCompleted) {
        await Future.delayed(widget.pauseDuration, reverse);
      } else if (_controller.isDismissed) {
        await Future.delayed(widget.pauseDuration, animateForward);
      }
    });
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: _controller,
      child: widget.child,
      builder: (_, child) => Transform.translate(
        offset: _offset.value,
        child: child,
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
No logs

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.16.3, on macOS 14.2 23C64 darwin-arm64, locale en-US)
    • Flutter version 3.16.3 on channel stable at /Users/hyph/Programs/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b0366e0a3f (13 days ago), 2023-12-05 19:46:39 -0800
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.3

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

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).

[✓] IntelliJ IDEA Community Edition (version 2023.3)
    • IntelliJ at /Users/hyph/Applications/IntelliJ IDEA Community Edition.app
    • Flutter plugin version 77.0.1
    • Dart plugin version 233.11799.172

[✓] Connected device (3 available)
    • iPhone 15 Pro (mobile) • F58A6C91-4380-4E31-96EF-5D7E095A3B0B • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 14.2 23C64 darwin-arm64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 120.0.6099.109

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

! Doctor found issues in 2 categories.

Thanks for the detailed report @rautellin
I tried the code sample by running with and without Impeller on latest stable and master but couldn't replicate the reported behavior.

With Impeller on latest master:

https://github.com/flutter/flutter/assets/67046386/58c42671-b2eb-4887-8de6-8d624b1178a0

With Impeller on latest stable:

https://github.com/flutter/flutter/assets/67046386/92fcfbdf-1036-4357-bf12-fa73c229f292
Without Impeller too, I saw above behavior.
Does the behavior you are seeing only occuring with Impeller ? From your flutter doctor details, I see that you are on iOS 17 while I tried on 15, not sure if that's a factor or not.

Hi @darshankawar. Hmmm, do you have a background image in your assets?
For this example i downloaded the image below and added it to my assets, renaming it to default_artwork.jpg.
https://unsplash.com/photos/a-person-standing-in-the-middle-of-a-rocky-area-Goe4Q0xwvwc
It is used here
 child: Image.asset(
                'assets/images/default_artwork.jpg',
                fit: BoxFit.cover,
                gaplessPlayback: true,
              ),

Thanks for the detailed report @rautellin I tried the code sample by running with and without Impeller on latest stable and master but couldn't replicate the reported behavior.
1. With Impeller on latest master:

RPReplay-Final1702969402.MP4
2. With Impeller on latest stable:

RPReplay-Final1702969752.MP4
Without Impeller too, I saw above behavior.
Does the behavior you are seeing only occuring with Impeller ? From your flutter doctor details, I see that you are on iOS 17 while I tried on 15, not sure if that's a factor or not.

Not sure if you meant that you couldn't replicate the behavior on the master channel only, but you can clearly see the issue in your second video (impeller on stable channel) ⬆

You can also just use Image.network instead of Image.asset
  final String imageUrl = 'https://images.unsplash.com/photo-1682687221038-404cb8830901?q=80&w=1887&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D';

  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xFF242424),
      child: Stack(
        fit: StackFit.expand,
        children: [
          ClipRect(
            child: ImageFiltered(
              imageFilter: ImageFilter.blur(
                sigmaX: blurAmount,
                sigmaY: blurAmount,
              ),
              child: Image.network(
                imageUrl,
                fit: BoxFit.cover,
                gaplessPlayback: true,
              ),
            ),
          ),
          child,
        ],
      ),
    );
  }

I just tried on the latest master. This issue wont appear now as you can, so i guess I need to wait till the fix on master is on stable as well

Yes, thanks for the update. The fix from master will roll out in next stable release. You may check the flutter release documentation for reference.
Per triage policy, I'll close this as fixed as of master. If you disagree, write in comments and I'll reopen it.


freesurfer recon-all -parallel option?

I can't find this in older issues, but: shouldn't all of the recon-all call include the new-parallel switch prior to -openmp? I dont' see that being used in the log files, and this might speed up things further...
https://surfer.nmr.mgh.harvard.edu/fswiki/ReleaseNotes

Parallelization: a new flag was introduced which enables two forms of compute parallelization that significantly reduces the runtime. As a point of reference, using a new-ish workstation (2015+), the recon-all -all runtime is just under 3 hours. When the -parallel flag is specified at the end of the recon-all command-line, it will enable 'fine-grained' parallelized code, making use of OpenMP, embedded in many of the binaries, namely affecting mri_em_register and mri_ca_register. By default, it instructs the binaries to use 4 processors (cores), meaning, 4 threads will run in parallel in some operations (manifested in 'top' by mri_ca_register, for example, showing 400% CPU utilization). This can be overridden by including the flag -openmp  after -parallel, where  is the number of processors you'd like to use (ex. 8 if you have an 8 core machine). Note that this parallelization was introduced in v5.3, but many new routines were OpenMP-parallelized in v6. The other form of parallelization, a 'coarse' form, enabled when the -parallel flag is specified, is such that during the stages where left and right hemispheric data is processed, each hemi binary is run separately (and in parallel, manifesting itself in 'top' as two instances of mris_sphere, for example). Note that a couple of the hemi stages (eg. mris_sphere) make use of a tiny amount of OpenMP code, which means that for brief periods, as many as 8 cores are utilized (2 binaries running code that each make use of 4 threads). In general, though, a 4 core machine can easily handle those periods. Be aware that if you enable this -parallel flag on instances of recon-all running through a job scheduler (like a cluster), it may not make your System Administrator happy if you do not pre-allocate a sufficient number of cores for your job, as you will be taking cycles from other cores that may be running jobs belonging to other cluster users.

We do our own coarse parallelization of recon-all that doesn't suffer from some of the limitations of the -parallel flag. They get at some of the reasons it can be problematic at the end of that block, which would have consequences for how we account for the number of threads FreeSurfer uses and thus actually inhibit overall concurrency.

Thanks! in that case, is there any consensus on when you max out on benefit for --nthreads and --omp-nthreads? That is, assuming unlimited resources, where do you start getting diminishing returns, and is there a ratio of nthreads to omp-nthreads that makes sense? (i.e., 1:1, 2:1, etc...)

--omp-nthreads stops improving significantly at 8, so our default formula is max(1, min(8, nthreads - 1). We generally don't recommend changing it unless you have a desire to profile and see if the optimal is actually a little different. The nthreads - 1 is to allow one small job at a time to run while large OMP jobs are running, which can shorten the queue quite a lot.
I don't really know what the upper bound of nthreads is. It's going to depend on your memory constraints, which will affect how many large jobs you can run simultaneously, but I'd guess after 3-4x omp-nthreads, you end up with a significant amount of idle time.
Another consideration is whether to let us parallelize several subjects in one fMRIPrep call, in which case throwing more cores and RAM will tend to pay off, or to submit one subject per call, in which case constraining each to an integer fraction of system resources and letting the batch queue do the rest is probably optimal. From the perspective of minimizing idleness, I suspect one or two subjects per call is best, but we haven't done a thorough investigation here.

Thank you for the explanation. This is probably the clearest insight into these two switches, it might be worth adding the formula and your mention of diminishing returns to the documentation.


Select Rear Camera in Android devices

This is more of a question than issue. By default if you are using Chrome on Android, the front camera is selected. Is there any way to select the rear camera via some options or controls? Thanks

Interesting question! Take a look at this question. I think it gives some options.
http://stackoverflow.com/questions/14610945/how-to-choose-input-video-device-for-webrtc

I succesfully accessed the rear cam with this fix:
https://github.com/jonashartmann/webcam-directive/pull/31

Did a fork for our company where I fixed the issue. You can change Camera with attribute cameraid="0" or cameraid="1" for example. Nothing very special but works:
https://github.com/sysart/webcam-directive


Moving Schedulers to a separate package?

Clearly the Schedulers are a requirement for this library. However, I feel like the schedulers are generally more useful than just for RxJS. @mattpodwysocki, it seems like these schedulers would be useful for IxJS and other async types the Reactive community might come up with. What do you think?
Also @mhevery and @IgorMinar ... I know that you have a lot of work in the scheduling arena, we have different needs here, but they do have some overlap. What do you think about the plan to have a separate agnostic package for our schedulers? How could this mesh with your goals around Zones, etc?
This is just a discussion. Of course.
Again: We'd still need to export/include the schedulers with this library.

cc/ @jayphelps for visibility, since he's looking into breaking out things like DOM functionality into different packages for us.

I'm +1 to this, including publish other packages as well if it's allowed.

The only big thing to be mindful off is that once the schedulers are in a
separate package, we could get into a situation where there are multiple
copies of schedulers lurking around which would likely be very bad.
On Sun, Apr 24, 2016 at 11:33 PM OJ Kwon<EMAIL_ADDRESS>wrote:

I'm +1 to this, including publish other packages as well if it's allowed.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/ReactiveX/rxjs/issues/1638#issuecomment-214162443

I agree @IgorMinar, it would mean people would have to be careful to only use them as a peer dependency or something. We already have a few issues with RxJS around that because of operator patching. Worse yet, peer dependencies are sort of a pain.

@IgorMinar we could easily get around that by installing schedulers into globals at that point to keep multiple ones from hanging around.  That's how others have done it with two RxJS packages sticking around...

installing schedulers into globals

@mattpodwysocki my currency-bug-sense is tingling on this one. I can see one library getting a handle to a scheduler from a global, then another library swapping out the reference and using a different one. Then the first library scheduling on two different scheduler instances and not realizing it.

What we do with bluebird promises is ship with a single scheduler and then let users override it.
I think you could do the same in Rx, ship with one simple scheduler (or two, since IIRC that's needed) and then encourage others include schedulers themselves when needed.

closing as inactive.


[bug]  [v2] IndexedDB path changed after upgrading to tauri 2

Describe the bug
After upgrading from tauri 1 to tauri 2, the IndexedDB directory changed from https_tauri.localhost_0.indexeddb.leveldb to http_tauri.localhost_0.indexeddb.leveldb. Since my app stores all data in IndexedDB, this will cause "data losing" from user's point of view.
This happens on Windows, the full paths are:

C:\Users\[username]\AppData\Local\[appid]\EBWebView\Default\IndexedDB\https_tauri.localhost_0.indexeddb.leveldb
C:\Users\[username]\AppData\Local\[appid]\EBWebView\Default\IndexedDB\http_tauri.localhost_0.indexeddb.leveldb

Reproduction
To verify that tauri 2 uses said IndexedDB directory http_tauri.localhost_0.indexeddb.leveldb, following these steps:

create a new app: pnpm create tauri-app
do anything that causes IndexedDB directory being created, for example, using idb:
a. pnpm i idb
b. open IndexedDB: openDB("test").then((db) => console.log("db opened: ", db));
build: pnpm tauri build --debug
run the app and check the directory

I've set up a repo at https://github.com/hut36/tauri2-indexeddb for you to test.
Expected behavior
The directory https_tauri.localhost_0.indexeddb.leveldb is expected, instead of http_tauri.localhost_0.indexeddb.leveldb. See above for the full path.
Full tauri info output
[✔] Environment
    - OS: Windows 10.0.22631 x86_64 (X64)
    ✔ WebView2: 125.0.2535.92
    ✔ MSVC: Visual Studio 生成工具 2022
    ✔ rustc: 1.81.0 (eeb90cda1 2024-09-04)
    ✔ cargo: 1.81.0 (2dbb1af80 2024-08-20)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 20.12.0
    - pnpm: 9.10.0
    - yarn: 1.22.22
    - npm: 9.6.3

[-] Packages
    - tauri 🦀: 2.0.1
    - tauri-build 🦀: 2.0.1
    - wry 🦀: 0.44.1
    - tao 🦀: 0.30.3
    - @tauri-apps/api : 2.0.1
    - @tauri-apps/cli : 2.0.1

[-] Plugins
    - tauri-plugin-shell 🦀: 2.0.1
    - @tauri-apps/plugin-shell : 2.0.0

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../build
    - devUrl: http://localhost:1420/
    - framework: Svelte
    - bundler: Vite

Stack trace
No response
Additional context
Related discussion: https://github.com/tauri-apps/tauri/discussions/11231. @FabianLars says this is related to dangerousUseHttpScheme.

the next release will include an option useHttpsScheme, to switch a certain window to use https (same as v1) so you can access your data again.

Thank you all for your efforts on this!


[MM-9606] Fix cropping of single image preview of very wide or tall image

Summary
Fix cropping of single image preview of very wide or tall image
Ticket Link
Jira ticket: MM-9606
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed
[x] Has UI changes

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-0c5d29ff30420d576.spinmint.com
Test Admin Account: Email<EMAIL_ADDRESS>| Password: user-0
Test User Account: Email<EMAIL_ADDRESS>| Password: user-1
Instance ID: i-0c5d29ff30420d576

Spinmint test server destroyed

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-03ed5fd8e941b7bf4.spinmint.com
Test Admin Account: Email<EMAIL_ADDRESS>| Password: user-0
Test User Account: Email<EMAIL_ADDRESS>| Password: user-1
Instance ID: i-03ed5fd8e941b7bf4

Spinmint test server destroyed

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-0c1fdeebdf2ccf64e.spinmint.com
Test Admin Account: Email<EMAIL_ADDRESS>| Password: user-0
Test User Account: Email<EMAIL_ADDRESS>| Password: user-1
Instance ID: i-0c1fdeebdf2ccf64e

Spinmint test server destroyed

@asaadmahmood The resizing on RHS toggle should work now. Static width for image-container is now only applied whenever scaling is necessary.
@esethna This should be ready for PM review. Please let me know if you find an issue.

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-02a5ef56381d9b49e.spinmint.com
Test Admin Account: Email<EMAIL_ADDRESS>| Password: user-0
Test User Account: Email<EMAIL_ADDRESS>| Password: user-1
Instance ID: i-02a5ef56381d9b49e

Spinmint test server destroyed

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-0a1142733d300baa3.spinmint.com
Test Admin Account: Email<EMAIL_ADDRESS>| Password: user-0
Test User Account: Email<EMAIL_ADDRESS>| Password: user-1
Instance ID: i-0a1142733d300baa3

That image squish/distortion should be fixed by the latest commit (removing min-height). There maybe cache issue somewhere (browser/spinmit).
Spinmint is now working for me.

@esethna Yes, I think roughly 3-5px, it varies. I suggest not to have it at the moment.

Also, is it intended that the image doesn't scale when the RHS is opened (instead it crops). Is this to reduce scroll pop?

There are cases it will not scale like when it initially render below 50px. With that, it will crop the image only.

Spinmint test server destroyed


Composite.remove() doesn't play nicely with enableSleeping

If enableSleeping is set Composite.removeBody behaves weirdly: http://codepen.io/anon/pen/QjpQEj?editors=001
I'm not sure what the right fix here is, waking up every body every time an element is removed sounds expensive.

At the moment, sleeping doesn't have support for situations like this.
What should happen is that when bodies get removed, their contacts should be notified and awoken, which in the case of your demo should travel all the way to the top of the stack.
I'll leave this open as something to implement, luckily sleeping pairs are maintained in the pair manager, so it should be a case of just recursively waking up all pairs that are in contact with the removed body.
In the meantime as you mention, you're probably best just waking everything up if that's viable for your situation. Otherwise you may need to be a bit smarter and maybe wake up all bodies in a certain radius.

Ok, thanks. In my case it's entirely possible to wake up all bodies, so I'll just do that instead.

Actually let's keep this open as it's something I'd like to get fixed, thanks!

Maintaining the pair has result serious memory leak in my game, can you explain what's the issue here, I need a workaround.

It's worth checking out 0.18.0 as some aspects of pair management have changed, but it's hard to tell if that will help where sleeping is involved.
If you do need to remove sleeping pairs for some reason, you could try doing it in the afterUpdate event using something similar to these lines. I'll consider doing this by default when I have chance to revisit the sleeping feature.


Unable to load vulnerable driver, NTSTATUS (0xC0000603)

Describe the bug
After running loader.exe It fails with an error. (0xC0000603)
To Reproduce
Start loader.exe
See the results
Expected behavior
It should load the driver.
Screenshots

Environment
Windows 10 Home 22H2 (OS Build 22621.900)
AMD Ryzen CPU
Windows event viewer log

Loader Log
D:\VBoxLdr\Binary>loader.exe
VirtualBox Hardened Loader v<IP_ADDRESS>5
[>] Entering VBoxLdrMain
LDR: Listing process token privileges...
LDR: SeLockMemoryPrivilege Disabled
LDR: SeIncreaseQuotaPrivilege Disabled
LDR: SeSecurityPrivilege Disabled
LDR: SeTakeOwnershipPrivilege Disabled
LDR: SeLoadDriverPrivilege Disabled
LDR: SeSystemProfilePrivilege Disabled
LDR: SeSystemtimePrivilege Disabled
LDR: SeProfileSingleProcessPrivilege Disabled
LDR: SeIncreaseBasePriorityPrivilege Disabled
LDR: SeCreatePagefilePrivilege Disabled
LDR: SeBackupPrivilege Disabled
LDR: SeRestorePrivilege Disabled
LDR: SeShutdownPrivilege Disabled
LDR: SeDebugPrivilege Disabled
LDR: SeSystemEnvironmentPrivilege Disabled
LDR: SeChangeNotifyPrivilege Enabled (Default Enabled)
LDR: SeRemoteShutdownPrivilege Disabled
LDR: SeUndockPrivilege Disabled
LDR: SeManageVolumePrivilege Disabled
LDR: SeImpersonatePrivilege Enabled (Default Enabled)
LDR: SeCreateGlobalPrivilege Enabled (Default Enabled)
LDR: SeIncreaseWorkingSetPrivilege Disabled
LDR: SeTimeZonePrivilege Disabled
LDR: SeCreateSymbolicLinkPrivilege Disabled
LDR: SeDelegateSessionUserImpersonatePrivilege Disabled
LDR: VirtualBox version 6.1.32
LDR: Windows version: 10.0 build 22621
LDR: Maximum User Mode address 0x7FFFFFFEFFFF
Pattern matching: 'VBOX'
Pattern FACP (pre v6.1) was not found
FACP (v6.1+)            0x355e7
Pattern RSDT (pre 6.1) was not found
RSDT (6.1+)             0x3584e
XSDT            0x359a5
APIC            0x35bfb
HPET            0x35da4
MCFG            0x35ea8
VBOXCPU         0x3ffe0
Pattern VBOX generic (pre 6.1) was not found
VBOX (6.1+)             0x142b4c
Pattern matching: 'VirtualBox'
VirtualBox      0x147ac8
VirtualBox__    0x157280
VirtualBox GIM  0x1578b8
VirtualBox VMM  0x158090
Pattern matching: 'Configuration'
Pattern Configuration (pre 6.1) was not found
Configuration (6.1+)            0x154355
Pattern matching: Hardware ID
80EE            0x211d7
80EE            0x211fb
BEEF            0x211ed
BEEF            0x21207
CAFE            0xdf540
LDR: Patch table created
LDR: SeDebugPrivilege assigned
LDR: SeLoadDriverPrivilege assigned
[>] Entering MapTsugumi
[>] Entering ProviderCreate
[>] Entering StartVulnerableDriver
[!] Unable to load vulnerable driver, NTSTATUS (0xC0000603)
[<] Leaving StartVulnerableDriver
[<] Leaving ProviderCreate
[!] ProviderCreate failed, abort
LDR: Cannot inject monitor code
[<] Leaving VBoxLdrMain

I exactly have the same problem. I guess there's something wrong with 22h2 version of Windows, since it used to work for me in 21h2. Any help would be appreciated

STATUS_IMAGE_CERT_REVOKED, Intel Nal driver is no longer suitable solution for loading your own drivers. This loader needs an update to continue work with Win 11. However since this project is no longer maintained I will close this issue.


Support files are not colors.xml

Including resource files from v4/v7 lib, too

One problem I had is using FiletypeIndex.getFiles which return virtual file not psi file.

https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/psi/PsiManager.java#L58


[FAB-18308] Add RSA support back

Make it possible to upgrade from a ledger with rsa certificates

Bug fix

Description
It's not possible to upgrade from fabric 1.4 using an existing ledger with rsa certificates.
Related issues
FAB-18308

It looks like RSA was removed in commit https://github.com/hyperledger/fabric/commit/80a20e3aaf5fcfa70e2e3cd8a3e10eb31b1d5901 and the commit says "The RSA operations are not used within Fabric." @sykesm can you provide some more of the background?

I guess if any of the endorsers/creators used RSA, then it's possible that after an upgrade a peer could no longer verify signatures generated by those.. @filipeandre could you comment?

It looks like RSA was removed in commit 80a20e3 and the commit says "The RSA operations are not used within Fabric." @sykesm can you provide some more of the background?

From my perspective, we are here because:

No code within the Fabric repo or integration test suites related to Fabric were exercising the RSA paths.
There was a JIRA item opened to deprecate or remove the code
We had an explicit statement about RSA in our documentation for Fabric 1.2 that reads "We emphasize that in Hyperledger Fabric there is no support for certificates including RSA keys."

The problem is that in a blockchain, if you remove code paths that are used in transaction processing, you either end up in a fork, or you are stuck forever, because the code in the present still needs to be able to process data from the past in the same way it did.

The problem is that in a blockchain, if you remove code paths that are used in transaction processing, you either end up in a fork, or you are stuck forever, because the code in the present still needs to be able to process data from the past in the same way it did.
So, what is the decision for this PR? are we going to revert the RSA removal? Are the affected users going to need to fork their own Fabric version because we don't revert it?

Given there was a decision not to support RSA, and that the decision was in the official documentation since v1.0, I'd suggest the correct path would be to open an RFC at https://github.com/hyperledger/fabric-rfcs/ for adding RSA support. It should mention the rationale, but more importantly what is the proposed test and support approach, as I believe those were the considerations behind the prior decision.

The problem is that in a blockchain, if you remove code paths that are used in transaction processing, you either end up in a fork, or you are stuck forever, because the code in the present still needs to be able to process data from the past in the same way it did.

Yes, we all realize this.

So, what is the decision for this PR? are we going to revert the RSA removal?

This PR is not mergeable as-is so let's focus on the bigger issue.
Given the explicit statement in the documentation that there is no support for RSA (which exists in all versions of the MSP article since v1.0.0), this comes down to whether or not we want to implement and maintain formal support for RSA, do just enough to enable a migration, or do nothing. It's clear from the documentation and lack of test that this was not something that we intended to support yet we did not add the guard rails to prevent it from being used.
If we wish to support RSA, the code needs to be restored, integration tests need to be written, HSM support needs to be validated (since there was code there as well), and the documentation needs to be updated. This, to me, is more than a simple bug fix.

Are the affected users going to need to fork their own Fabric version because we don't revert it?

Clearly not ideal.

So, what is the decision for this PR? are we going to revert the RSA removal?

This PR is not mergeable as-is so let's focus on the bigger issue.

I think that an another issue is that currently, there might be more networks of Fabric 1.4.x out there that once they try upgrade to 2.x they are in for an unpleasant surprise.
We should probably circulate a warning through the mailing list.

I guess if any of the endorsers/creators used RSA, then it's possible that after an upgrade a peer could no longer verify signatures generated by those.. @filipeandre could you comment?

Yes, that's it.

If we wish to support RSA, the code needs to be restored, integration tests need to be written, HSM support needs to be validated (since there was code there as well), and the documentation needs to be updated. This, to me, is more than a simple bug fix.

tement

The problem is that in a blockchain, if you remove code paths that are used in transaction processing, you either end up in a fork, or you are stuck forever, because the code in the present still needs to be able to process data from the past in the same way it did.

Yes, we all realize this.

So, what is the decision for this PR? are we going to revert the RSA removal?

This PR is not mergeable as-is so let's focus on the bigger issue.
Given the explicit statement in the documentation that there is no support for RSA (which exists in all versions of the MSP article since v1.0.0), this comes down to whether or not we want to implement and maintain formal support for RSA, do just enough to enable a migration, or do nothing. It's clear from the documentation and lack of test that this was not something that we intended to support yet we did not add the guard rails to prevent it from being used.
If we wish to support RSA, the code needs to be restored, integration tests need to be written, HSM support needs to be validated (since there was code there as well), and the documentation needs to be updated. This, to me, is more than a simple bug fix.

Are the affected users going to need to fork their own Fabric version because we don't revert it?

Clearly not ideal.

Since the beginning of fabric we were using it with RSA.
Our CA generates rsa keys by default:
fabric-ca-server start -b ${CA_EMAIL}:${CA_PASSWORD}  --csr.keyrequest.algo rsa --csr.keyrequest.size 4096
I believe at some point of time there was a documentation statement saying that fabric supports ecda as well as rsa ?
I suggest to restore the RSA code as it was proven to be working.
Meanwhile the full tests are not written, we could state in the documentation about this, instead of removing it from the code.

Given there was a decision not to support RSA, and that the decision was in the official documentation since v1.0, I

Sorry I must have missed it. But I have not seen that mentioned on the documentation until 1.2. Can you point me out in the direction of where it was mentioned on 1.0? To ensure I don't miss such important announcement of a diference between what the code supports and of how it should be used?

I think that an another issue is that currently, there might be more networks of Fabric 1.4.x out there that once they try upgrade to 2.x they are in for an unpleasant surprise.
We should probably circulate a warning through the mailing list.

@yacovm This is exactly where we (with @filipeandre and @pmcostaioi) are at the moment - trying to find out how to upgrade our live production Fabric from 1.4.6 to 2.2.x and realized that there is no way to convert ca, orderers and peers from using RSA to the default type keys. We are happy to participate in every possible way in the development of the migration procedure or bring back the RSA support.

Our production system has over 20 different organizations, all running on 1.4.6 and using MSPs dynamically generated by HLF CAs using RSA algorithm.
Before upgrading to the latest 2.x version of fabric we attempted a simpler test setup:

Single organization
5 orderers (orderer 0, orderer 1, …. orderer 4) working using Raft consensus mechanism
1 CA using RSA encryption
1 system channel which the orderers are using
1 application channel used, well, by our application
2 peers that joined the application channel
All fabric components running on fabric 1.4.6
Ledger type = file on both orderer and peers

This is the procedure we executed to move away from RSA to ECSDA (before upgrading to 2.2):

Had the 5 orderers and 2 peers running
Stopped the CA
Regenerated the CA’s MSP based on ECSDA
Started the CA
updated both system channel and application channel to add this new public certificate of the CA to the org using the MSP of the org’s admin (signed with the previous CA’s MSP). This was done by generating a channel config update transaction based on a delta computed and converted to and from json/protbuf using configtxlator
Regenerated the org’s admin MSP to be based on ECSDA and added his public certificate to the org (signed with the previous CA’s MSP). This was done by generating a channel config update transaction based on a delta computed and converted to and from json/protbuf using configtxlator
Regenerated orderer 0's MSP based on ECSDA
Updated the raft consenter section of the config block (of both system and application channels) to update orderer 0's certificate (orderer 0 is still running). Did that via the config update transaction
Once the new block was distributed, backed up orderer 0, stopped orderer 0, and restarted it using the new MSP
Orderer 0 started with the new MSP and used the latest config block to join the Raft cluster
Repeated these steps for orderers 1-4
After this we had all orderers communicating over raft using ECSDA MSPs
Then we regenerated both peers MSPs based on ECSDA
Then we backed up one of the peers, stopped it and restarted it using the new MSP
Repeated the process for the other peer
Then, using the new admin’s MSP, we generated a config update transaction to remove the previous CA and admin certificates from both the system and application channels
Then executed some test transactions using the new MSPs and verified that it worked fine
Extracted the latest config block (from both system and application channeles), converted it to JSON and ensured that there were no RSA certificates present there

Then we attempted to upgrade to fabric 2.2:

we backed up orderer 0
stopped orderer 0
upgraded the base image to 2.2
started it

And it failed when it was validating the existing ledger:
2020-10-28 12:22:25.282 UTC [orderer.common.server] Main -> PANIC Failed validating bootstrap block: initializing channelconfig failed: could not create channel Orderer sub-group config: setting up the MSP manager failed: Failed importing key with opts [&{true}]: Certificate’s public key type not recognized. Supported keys: [ECDSA]
panic: Failed validating bootstrap block: initializing channelconfig failed: could not create channel Orderer sub-group config: setting up the MSP manager failed: Failed importing key with opts [&{true}]: Certificate’s public key type not recognized. Supported keys: [ECDSA]

2020-10-28 12:22:25.282 UTC [orderer.common.server] Main -> PANIC Failed validating bootstrap block: initializing channelconfig failed: could not create channel Orderer sub-group config: setting up the MSP manager failed: Failed importing key with opts [&{true}]: Certificate’s public key type not recognized. Supported keys: [ECDSA]

Well you need to replace the bootstrap block with the latest configuration block of the system channel, one that doesn't have RSA certificates in it. But even if you do it, you will never be able to add new nodes to the network.

@yacovm We tried that approach as well once we had everything running on ECSDA

stopped orderer 0 (without any backup)
set up the genesis block to be the current config block
started it (with the ECSDA MSP and an empty production folder)
It used to block correctly and connected to the raft consensus
It started receiving the ledger from both channels

It crashed with the same error while it was validating the ledger.
As far as we can determine, there is no way to migrate an existing ledger from fabric 1.4.6 to 2.x if there are RSA certificates in a block of a channel

I think that an another issue is that currently, there might be more networks of Fabric 1.4.x out there that once they try upgrade to 2.x they are in for an unpleasant surprise.
We should probably circulate a warning through the mailing list.

@yacovm This is exactly where we (with @filipeandre, @jorgecaeiros and @pmcostaioi) are at the moment - trying to find out how to upgrade our live production Fabric from 1.4.6 to 2.2.x and realized that there is no way to convert ca, orderers and peers from using RSA to the default type keys. We are happy to participate in every possible way in the development of the migration procedure or bring back the RSA support.

For the short term I suggest that you fork Fabric and add RSA support yourself.
For the longer term, as @denyeart  suggested, you can open an RFC about making Fabric have RSA again.

started it (with the ECSDA MSP and an empty production folder)

Why would you start it with an empty production folder? Replicating the blocks will cause it to see the RSA certificates again.

started it (with the ECSDA MSP and an empty production folder)

Why would you start it with an empty production folder? Replicating the blocks will cause it to see the RSA certificates again.

to force it to get the data from the other nodes so we could pinpoint in which stage the error was occurring.
With the genesis block as the latest config and with backup present, it still failed while validating the application channel

For the short term I suggest that you fork Fabric and add RSA support yourself.
For the longer term, as @denyeart suggested, you can open an RFC about making Fabric have RSA again.

Thank you @yacovm! we will create RFC asap.

I believe @sykesm is working on a proposal for RSA enablement (albeit still unsupported) so that existing RSA users could switch over to ECSDA.

I believe @sykesm is working on a proposal for RSA enablement (albeit still unsupported) so that existing RSA users could switch over to ECSDA.

The general proposal was to bring back RSA behind a build tag. Builds and images published by the Fabric team would not include this code as it's untested, unsupported, and explicitly documented as so. This would enable a migration to the 2.x stream and ECDSA, and if things go to plan, eventually a path to checkpoint and remove the old MSP definitions.
That said, before doing anything with RSA, I wanted to try running 1.4 with RSA. The goal was to test-drive the RSA paths by building a configuration that works with 1.4 and then moving it to a v2 network. What I found was that the 1.4 peer panics at bootstrap while attempting to sign with an RSA key. This is because the required RSA signing opts are not provided on any call to sign outside of bccsp unit tests. This is not surprising as, again, RSA is not supported and not recommended for Fabric.
With a mixed configuration where Fabric only verifies signatures, it's possible things hold together so that's the path I'm on right now.
While I've read your topology description, can you please describe the key type of the CA and issued certificates for each MSP? I ask as I don't see how the signing certs can be RSA.
Thanks.

While I've read your topology description, can you please describe the key type of the CA and issued certificates for each MSP? I ask as I don't see how the signing certs can be RSA.
We have our network started and working with RSA keys by doing this (short version):

start hlf CA with command: fabric-ca-server start -b ${CA_EMAIL}:${CA_PASSWORD}  --csr.keyrequest.algo rsa --csr.keyrequest.size 4096
register 5 orderers on the CA
perform enrollment with each orderer to get their MSP
use the public certificate (and the tls one) and set it up on the genesis block on the raft consenter section
start the orderers
This will create a system channel with RSA certificates, using RSA based MSPs. The rest seems standard. Happy to discuss this process in details.

We have our network started and working with RSA keys by doing this (short version)
...
The rest seems standard.

I'd rather not assume so I'm trying to explicitly confirm what key types were generated when constructing the CSR for enrollment. My expectation is that they are not RSA. Can you please confirm?
I understand that the CA certificates in the MSP use RSA; I'm asking explicitly about the signing certificates in the local MSPs.

Within release-1.4, the Verify operation for RSA keys require the caller to provide signer options
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/bccsp/sw/rsa.go#L58-L72
and the Sign operation for RSA keys requires the caller to provide signer options
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/bccsp/sw/rsa.go#L30-L36
However, the MSP implementation specifies no options when verifying signatures
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/msp/identities.go#L156-L183
and no options when signing
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/msp/identities.go#L232-L256
All of this is further evidence that RSA was never supported by the MSP.
The only thing I have observed that worked in 1.4 and no longer works in 2.x are CA certificates associated with an RSA key. If that's the only aspect of this that has been dropped, all that's needed is a trivial change to the key import path to generate an MSP identity from an RSA public key.
IMO, this is far from implying all of the RSA code that was pulled from bccsp needs to be restored.
Please build and test https://github.com/sykesm/fabric/commit/f47c396103def0c87057cd4ee822a9a2a270d8ae using your configuration and let us know what you see.

Within release-1.4, the Verify operation for RSA keys require the caller to provide signer options
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/bccsp/sw/rsa.go#L58-L72
and the Sign operation for RSA keys requires the caller to provide signer options
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/bccsp/sw/rsa.go#L30-L36
However, the MSP implementation specifies no options when verifying signatures
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/msp/identities.go#L156-L183
and no options when signing
https://github.com/hyperledger/fabric/blob/b5a12de28553481140374865850e1632cbb2b016/msp/identities.go#L232-L256
All of this is further evidence that RSA was never supported by the MSP.
The only thing I have observed that worked in 1.4 and no longer works in 2.x are CA certificates associated with an RSA key. If that's the only aspect of this that has been dropped, all that's needed is a trivial change to the key import path to generate an MSP identity from an RSA public key.
IMO, this is far from implying all of the RSA code that was pulled from bccsp needs to be restored.
Please build and test sykesm@f47c396 using your configuration and let us know what you see.

Thank you very much sykesm!
I compiled and tested it. It works with our setup which means that the rest of code is not needed 👍

RSA key import:

master: https://github.com/hyperledger/fabric/pull/2121
release-2.2: https://github.com/hyperledger/fabric/pull/2122

@filipeandre thanks for your verification.
I'm happy to report that the PRs are merged:

master (upcoming v2.3 release): #2121
release-2.2 (future v2.2.2 release): #2122

I believe this issue is now resolved, I'll go ahead and close this PR.


just run-iso fails with an invalid source name

Trying to run an ISO locally:
2024-11-06 21:54:01,637: anaconda args = ['--xz', '--install', '/.buildstamp', '--no-early-microcode', '--add', 'fips', '--add', 'anaconda pollcdrom qemu qemu-net']
2024-11-06 21:54:01,661: rebuilding boot/initramfs-6.11.5-300.fc41.x86_64.img
2024-11-06 21:54:30,180: populating output tree and building boot images
2024-11-06 21:54:30,193: running x86.tmpl
2024-11-06 21:54:37,626: writing .treeinfo file
make -w -C container bluefin-latest
make[1]: Entering directory '/build-container-installer/container'
skopeo copy containers-storage:localhost/bluefin:latest oci:bluefin-latest
time="2024-11-06T21:54:49Z" level=fatal msg="Invalid source name containers-storage:localhost/bluefin:latest: open /var/lib/containers/storage/storage.lock: read-only file system"
make[1]: *** [Makefile:2: bluefin-latest] Error 1
make[1]: Leaving directory '/build-container-installer/container'
make: *** [Makefile:148: container/bluefin-latest] Error 2
error: Recipe `sudoif` failed with exit code 1
error: Recipe `build-iso` failed with exit code 1
error: Recipe `run-iso` failed with exit code 1

https://github.com/ublue-os/bluefin/pull/1904
Justfile: mounted /var/lib/containers/storage read-only; however, lockfile is written to directory while skopeo is used to pull. Mounting the directory was chosen over requiring the rootful podman socket to be running.
Workflow: Correct variable expansion.


🐛 BUG: why AUTOINCREMENT not supported ?

Which Cloudflare product(s) does this pertain to?
D1
What version(s) of the tool(s) are you using?
3.9.0
What version of Node are you using?
20.2.0
What operating system are you using?
Windows
Describe the Bug
My d1 migration sql is:
-- Migration number: 0001 	 2023-09-24T15:15:06.176Z

CREATE TABLE "changeset_entity" (
  "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
  "codeId" varchar NOT NULL,
  "operations" text NOT NULL,
  "baseVersion" integer NOT NULL,
  "userId" integer NOT NULL,
  "memberId" integer NOT NULL,
  "updateTime" date NOT NULL DEFAULT (datetime('now')),
  "createTime" date NOT NULL DEFAULT (datetime('now'))
)

I think AUTOINCREMENT  caused the error. Is it not supported ?
Please provide a link to a minimal reproduction
No response
Please provide any relevant error logs

wrangler d1 migrations apply fake-name
▲ [WARNING] Processing wrangler.toml configuration:

- D1 Bindings are currently in alpha to allow the API to evolve before general availability.
  Please report any issues to https://github.com/cloudflare/workers-sdk/issues/new/choose
  Note: Run this command with the environment variable NO_D1_WARNING=true to hide this message

  For example: `export NO_D1_WARNING=true && wrangler <YOUR COMMAND HERE>`

🚧 D1 is currently in open alpha and is not recommended for production data and traffic
🚧 Please report any bugs to https://github.com/cloudflare/workers-sdk/issues/new/choose
🚧 To request features, visit https://community.cloudflare.com/c/developers/d1
🚧 To give feedback, visit https://discord.gg/cloudflaredev
┌───────────────┐
│ name          │
├───────────────┤
│ 0001_init.sql │
└───────────────┘
√ About to apply 1 migration(s)
Your database may not be available to serve requests during the migration, continue? ... yes
🌀 Mapping SQL input into an array of statements
🌀 Parsing 1 statements
🌀 Executing on fake-name (22b98bc9-da38-49e8-8f18-e20bbbea78e7):
┌───────────────┬────────┐
│ name          │ status │
├───────────────┼────────┤
│ 0001_init.sql │ ❌       │
└───────────────┴────────┘
❌ Migration 0001_init.sql failed with the following errors:
X [ERROR] near "CREATE": syntax error [code: 7500]
If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose

I think I got the reason, maybe it's because I didn't type semicolon in the end of the sql ?


Firebase exceptions are useless

Using the Flutter Crashlytics plugin and having some devices with issues on layout (width or height overflow), Firebase shows us this:

But there is no information whatsoever what widget is to blame (that would be our code), making this issue hard to track and utterly useless.

@JCKodel
Can you provide the stacktrace in properly formatted text along with what exactly are you looking in the logs when Firebase exception occurs ?
Also, would be good to have a minimal code sample that will trigger the current exception along with expected entries in the log you are looking for.

The whole point of this bug is: I don't know where the exception is.
Clearly, is when a widget is drawn in a space where it doesn't fit (then, in debug, it draws on the screen that the widget was overflown by N pixels).
The bug is: it really doesn't matter exceptions or stack trace of Flutter framework, but only our code (or, at least, the user class that caused the bug).
This is a sample causing an overflow:
import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Card(
          child: Padding(
            padding: const EdgeInsets.all(16),
            child: Row(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Padding(
                  padding: const EdgeInsets.symmetric(horizontal: 16),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: const [
                      Text("Flutter Clutter", style: TextStyle(fontSize: 18)),
                      Text("Internationalization (i18n) in Flutter: an easy and quick approach"),
                    ],
                  ),
                ),
                const Spacer(),
                const Text("03.03.2020"),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

There are no stack trace because it is not an exception we can handle (it doesn't trigger the debugger, even with breakpoint at all exceptions). Only a log is displayed:
════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 182 pixels on the right.

Widget creation tracking is currently disabled. Enabling it enables improved error messages. It can be enabled by passing `--track-widget-creation` to `flutter run` or `flutter test`.
The overflowing RenderFlex has an orientation of Axis.horizontal.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and black striped pattern. This is usually caused by the contents being too big for the RenderFlex.

Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be seen. If the content is legitimately bigger than the available space, consider clipping it with a ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex, like a ListView.

But the exception, with the Flutter internal stack trace, goes to Firebase anyway (without any kind of information about offending user code).
I'm pretty sure this is a Flutter bug (or lack of decent information), but they told me to open a bug here instead =\

Thanks for the update. I think what you are looking for is to see widget details in the stacktrace, something like https://github.com/flutter/flutter/issues/103264, so I suggest you to follow-up in it for further updates. The logs are triggered by framework itself and displayed using flutter_tool in the console, so, this use case is not specific to flutterfire.
Closing from here and sorry for inconvenience on going back and forth between repos.


doc: add migration design documentation

This commit adds migration design doc which carry information about
the required changes and design for rbd intree to csi migration.
Additional info:
This doc is pretty much the replica of tracker issue and the PRs merged ( with e2e in place) on this effort.
Updates https://github.com/ceph/ceph-csi/issues/2509
Signed-off-by: Humble Chirammal<EMAIL_ADDRESS>

just a couple of minor remarks:

Thanks @nixpanic

* mixing of _in-tree_ and _intree_ , suggest to use _in-tree_ everywhere

Done.

* mixing of _CSI_ and _csi_, suggest to use _CSI_ everywhere

Done.

* add a link to the Kubernetes documentation (not a PR) that contains the instructions a Kubernetes admin needs to take

These changes are yet to be part of the release note or blog,  I can add the same in this doc once its available.

Is there an other plan for CephFS migration? Probably mention that in the doc, or update the title and filename to be RBD specific.

https://github.com/kubernetes/enhancements/issues/2924 tracks it, but this is  yet to be done and mostly marked for beyond/after 1.23. so I mentioned TBD for cephfs heading in the doc

@Madhu-1 @yati1998 can you please review this ?

@Madhu-1 I have addressed the review comments. ptal. thanks!

just a few nits, looks good to me otherwise

Thanks @nixpanic :+1: , addressed final set of comments too.. ptal.

SC to StorageClass change has been made. No other changes , ptal @nixpanic @Madhu-1

@Mergifyio rebase


[Epic]: 👍 Account Abstraction

EPIC ISSUE. DO NOT CLOSE.
This issue only exists to improve visualisation of the Roadmap view of the project board.
(Unfortunately, the start and end date of github's 'Milestones' can't be shown on a roadmap view).
If the 'Target end date' looks unrealistic, let's chat! 😃

Account abstraction
The goal for this epic is implement an initial version of Account Abstraction that covers signature abstraction. Fee abstraction is pending until we implement fees in the system, and encryption and nullifying remains at the protocol level. Nonces are abstracted as well, so any tx ordering needs to be managed by the account contract.
Account Contract
The core of account abstraction is the account contract. This contract is responsible for receiving a payload from the user, which instructs what actions to take (ie what other contracts to call). The contract also needs to authenticate the user action. In this sample implementation, the user submits a signature of the payload to the contract, which the contract verifies against a registered public key.
EOAs
As part of this epic, we're removing EOAs (externally owned accounts) altogether from the protocol. This means that, in order to send a tx, a user first needs to deploy an account contract. So all txs are now originated from a contract. A user's "identity" in the system is then the address of their account contract. Addresses are no longer derived from a keypair. Note that it's not necessary to have deployed an account contract to receive funds, since a user can calculate their account contract deployment address in advance, and broadcast this (more on this below).
Deployments
Since we cannot deploy a contract from another contract, and we also don't have EOAs, deploying a contract is an action that has no sender. A user can simply submit a new contract to be deployed on chain, which is how they deploy their initial account contract. In the future, when we implement fees, we can require the user to have pre-funded the deployment address, and the fee is taken from there.
Addresses
An address now only refers to contracts, since there are no more EOAs. The deployment address for a contract is calculated as:
partial_contract_address = Pedersen({salt, function_tree_root, constructor_hash});
contract_address = Pedersen({deployer_pub_key, partial_contract_address});

Note that it's up to the deployed contract to validate the deployer actually holds the private key that corresponds to the deployer_pub_key, though in most cases it won't be necessary to do so.
References

Ideas on Account Abstraction
Account abstraction & fees
Contract classes, upgrades, and default accounts
Doing thinking
Nullifier keys
Default account
Encryption and decryption


Newly learned recipes not getting scanned (Found work around)

I seem to have found an issue where newly learned recipes weren't being picked up by craftscan.
I noticed after learning all of the Algari * and Profession Tools / Accessory's on my leather worker.  None of them were being detected after unlocking the recipes.
I found  that by toggling (unchecking -> checking again) the Scan all recipes button made it so that they are now able to be scanned.
Not a big deal, just thought I would mention it.

Thanks for the report. Knew about this one, but haven't bothered to fix yet. Developed that button in DF when I already knew all the recipes.


check compatibility with newer k8s versions

Especially kubeadm config object.

currently weekly tests with latest k8s version using molecule


TypeError: Cannot read property 'displayName' of undefined

    "react-native": "0.44.0",
    "native-base": "^2.1.3",
    "react": "~15.4.0",

Got error after running jest tests, after importing native-base
import { StyleProvider } from 'native-base/backward';

TypeError: Cannot read property 'displayName' of undefined

      at getComponentDisplayName (node_modules/native-base-shoutem-theme/src/connectStyle.js:86:24)
      at wrapWithStyledComponent (node_modules/native-base-shoutem-theme/src/connectStyle.js:90:26)
      at Object.<anonymous> (node_modules/native-base-shoutem-theme/examples/Shapes.js:128:68)
      at Object.<anonymous> (node_modules/native-base-shoutem-theme/index.js:6:13)

package.json#jest
  "jest": {
    "preset": "react-native",
    "setupFiles": [
      "<rootDir>/.jest"
    ],
    "transformIgnorePatterns": [
      "node_modules/(?!react-native|react-clone-referenced-element|native-base|@shoutem)"
    ],
    "collectCoverage": true,
    "verbose": true
  }

Also installed:
    "@expo/vector-icons": "^4.0.0",
    "@shoutem/theme": "^0.9.0",
...
    "react-native-vector-icons": "^4.1.1",

NPM warnings:
pm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

index.js
import React, { Component } from 'react';
import { StyleProvider } from 'native-base/backward';
import getTheme from '../native-base-theme/components';
export default class App extends Component {
    render() {
        return (
            <StyleProvider style={getTheme()} >
            </StyleProvider>
        );
    }
}

@iegik Can you check with the latest versions?
"native-base": "2.1.4",
"react": "16.0.0-alpha.6",
"react-native": "0.44.0"

Closing this issue due to inactivity

Sorry, cannot check this right now. I`ll answer this later.


fix: template uses lang html for template, however it is not installed

Environment

Operating System: Linux
Node Version:     v14.19.3
Nuxt Version:     3.0.0-rc.9
Nitro Version:    0.5.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      telemetry
Runtime Modules:  -
Build Modules:    -

Reproduction
https://codesandbox.io/s/template-lang-html-dzr7f2?file=/pages/index.vue
Describe the bug
Setting lang="html" on a template tag yields the following error in @vitejs/plugin-vue:
 ERROR  Component /.../pages/index.vue uses lang html for template, however it is not installed.         19:16:56

  at error (node_modules/.pnpm/rollup@2.77.3/node_modules/rollup/dist/es/shared/rollup.js:1858:30)
  at throwPluginError (node_modules/.pnpm/rollup@2.77.3/node_modules/rollup/dist/es/shared/rollup.js:21764:12)
  at Object.error (node_modules/.pnpm/rollup@2.77.3/node_modules/rollup/dist/es/shared/rollup.js:22486:20)
  at Object.error (node_modules/.pnpm/rollup@2.77.3/node_modules/rollup/dist/es/shared/rollup.js:21941:42)
  at node_modules/.pnpm/@vitejs+plugin-vue@3.1.0_vite@3.0.9+vue@3.2.38/node_modules/@vitejs/plugin-vue/dist/index.mjs:161:32
  at Array.forEach (<anonymous>)
  at compile (node_modules/.pnpm/@vitejs+plugin-vue@3.1.0_vite@3.0.9+vue@3.2.38/node_modules/@vitejs/plugin-vue/dist/index.mjs:160:19)
  at transformTemplateAsModule (node_modules/.pnpm/@vitejs+plugin-vue@3.1.0_vite@3.0.9+vue@3.2.38/node_modules/@vitejs/plugin-vue/dist/index.mjs:130:18)
  at Object.transform (node_modules/.pnpm/@vitejs+plugin-vue@3.1.0_vite@3.0.9+vue@3.2.38/node_modules/@vitejs/plugin-vue/dist/index.mjs:2653:18)
  at node_modules/.pnpm/rollup@2.77.3/node_modules/rollup/dist/es/shared/rollup.js:22695:37

Additional context
I'm not sure if that's an upstream issue. What do you think?
There was a similar issue, which was closed with a workaround: https://github.com/vuejs/rollup-plugin-vue/issues/256
Logs
No response

This issue is now resolved upstream :)
https://codesandbox.io/p/sandbox/template-lang-html-updated-w9g6xg?welcome=true


Add a DAO for RegistryLock objects

This change is

Dependent on #282

@weiminyu I added code that allows us to modify this in place, assuming we're in the same transaction. Would you be able to take a look? Thanks!


Various search pills related bugfixes.

This is a WIP PR related to #10026
some more bugs i notice are:-

[ ] If the width of the search pills overflows the searchbox, only way to refocus the searchbox for typing is to go to the end by using the right key on the pills.
[ ] multiple pasted pills get combined as one.
[ ] on reloading the page the pills having "search" operator get combined as one. (not sure if bug)

It's probably worth talking a bit about where we're hoping for the UI to land following this change.  My vision is that (1) a stream+topic narrow would look exactly like it does today in master and (2) a narrow involving a search or other more complicated thing would show pills in its default view in the search box and of course (3) one would use the pills UI for editing the search.

on reloading the page the pills having "search" operator get combined as one. (not sure if bug)

I think this might not be a bug; we should check but I think that's how it's actually represented in the API.

I'm not sure why CI didn't run, but it should when you rebase.

Regarding the UI comment, I agree with all the points, I'm guessing we want to display the title in #tab_list if searchbox is not focused and also if title exists (for cases like stream+topic, pms, starred and such as present in the left sidebar) else would just display in pills format.
will create a new PR to integrate the pills with the tab_bar, this PR just consists of some prep commits.

These changes are great progress, merged, thanks @ryanreh99!
The first thing I notice trying to test the search-pills-enabled mode is that the / keyboard shortcut seems to be broken there; any idea what the issue is?  It feels like there's a few other glitches as well.  But it's definitely possible to play with now in a way that it wasn't before this branch, so this work is much appreciated!
I think it'd be great for you to start a thread on #frontend talking about this with @showell.


Notify via SNS owner for schedule failures

@realstraw ok, will add SNS publish permission to sprinkler user


enhancement: GroupPlan don't generate ObjectId

Proposed changes

GroupPlan don't generate ObjectId
GroupPlan use Supplier as param

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Should .nyc_output be deleted?

Since .nyc_output is a temp directory, I am wondering if nyc should delete it, once the process ends.

We allow nyc report commands to be run at a later time, and .nyc_output still needs to be around for that.

Wondering if it would be possible to run nyc report on coverage dir. Please excuse my ignorance. Thanks!

nyc report operates basically the same as istanbul report, except it first combines all the contents of .nyc_output before running the report. Running .nyc_output on the coverage directory wouldn't make a lot of sense (you already have istanbul report for that)

Hey @sarbbottam, as @jamestalmage says the reason for not deleting .nyc_output on each run is that it can be handy to output reports multiple times:
nyc npm test.
nyc report lcov-text
nyc report lcov
If you want to cleanup after nyc, I recommend adding a posttest command that uses rimraf to nuke the folder :+1:

Shall we provide an option to not generate .nyc_output at all?

Not possible. We need it to store coverage info

Would it be possible to configure where to store the coverage info ? F.x. in the same folder as the reports ?

You can specify where .nyc_output is generated under temp-directory in the config. e.g.
"nyc": {
  "temp-directory": "./coverage/.nyc_output"
}

source: https://github.com/istanbuljs/nyc/blob/master/index.js#L43

I'm not a fan of creating a directory under my project in general and especially when I specify explicitly --report-dir. This should be an option and not the default behavior. For me nyc should use a tmp directory by default generated by something like mktemp -d and the equivalent on Windows.
The problem here is the assumption that there will be only one instance of the covered process running at a given path. I wonder how nyc handles this case but I suppose that there are concurrency issues with this approach.
In my case I launch two instances of the same service under nyc and then I launch the integration tests as a separate process. At the end I use istanbul-combine to combine the two coverage reports into one and I use nyc check-coverage for the combined coverage.
In general I feel that nyc is the only option for the NodeJS community and it's quality is questionable compared to istanbul and in general. I started using it for a week and I already stumbled on a couple of bugs, undocumented features in the man page, strange imposed defaults like the number of lines at 90% when running nyc check-coverage, uncovered js files without extension etc.
I know this is an open source and anybody is welcome to contribute but I'm still disappointed that such a large community does not have what I would call "proper tools".

I have resolved it adding the .nyc_output folder under the node_modules.
All the node_modules is ignored by the .gitignore file.
"nyc": {
  "temp-directory": "./node_modules/coverage/.nyc_output"
}

I have resolved it moving the .nyc_output folder under the node_modules.

@IsFlwrs This isn't a very good idea. node_modules contains your dependencies, which you may wish to remove and reinstall at any time.
It's better to add .nyc_output to your .gitignore file.


Adds GTM iRule api support

@wojtek0806 @zancas
Fixes #494
What's this change do?
This patch adds support and tests for to the SDK for the GTM iRule API
Where should the reviewer start?

test/functional/tm/gtm/test_rule.py
f5/tm/gtm/test/test_rule.py

Any background context?
The SDK currently does not support the GTM iRule API.

Looks good to merge, not sure if i got merge rights tho, leaving for @zancas  to merge

I have pulled this PR, and while this is unrelated to this PR, it looks like the 4 sec timeouts are causing some false positives when testing against hardware units:
https://github.com/F5Networks/f5-common-python/blob/development/test/functional/tm/sys/test_failover.py#L65
and:
https://github.com/F5Networks/f5-common-python/blob/development/test/functional/tm/sys/test_failover.py#L79
Can you tell me if they fail for you locally too? I added those previously due to Jenkins failures. For me reducing those to 2 sec fixes problem, but I do not want to cause Jenkins fails with that change

@wojtek0806 was that second comment meant for a different PR?

@caphrim007 I meant this for this PR, i just wanna check if failover passes on your end, if not then we can reduce the timeout values and kill 2 birds with 1 stone, rather than raising second PR just to fix the timing in the test

@wojtek0806 I had no issues running the tests on this feature.

@pjbreaux PR updated

Well this is all just delectable. If Jenkins passes. I'll merge.

Now was this prioritized for a specific milestone? (I should have asked this first)

@pjbreaux no, it was just something that came up recently when I was doing ansible work


⚠ ClamAV has degraded performance

In aabd9e8, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 68 ms

Resolved: ClamAV performance has improved in 33e84e2.


Modal hidden event

Not sure what I'm doing wrong here, have managed to turn my issue into a simple example of what is going wrong at:
http://www.bootply.com/BzXT9pgtO7
Basically I'm trying to get it so that when a modal closes the hidden.bs.modal event sends the focus back to an input box on the page. I'm sure I've had this working before but cannot work out where I have gone wrong.
If I tell the hidden event to instead just put a value into the input box it shows up, I just can't get it to focus, I'm thinking it's a timing issue but then that's why I'm using the 'hidden' event as opposed to the 'hide' event.

Hi @ray73864!
You appear to have posted a live example (http://s.bootply.com/render/BzXT9pgtO7), which is always a good first step. However, according to Bootlint, your example has some Bootstrap usage errors, which might potentially be causing your issue:

line 9, column 9: W013: Bootstrap version might be outdated. Latest version is at least 3.3.4 ; saw what appears to be usage of Bootstrap 3.3.1
line 71, column 9: W013: Bootstrap version might be outdated. Latest version is at least 3.3.4 ; saw what appears to be usage of Bootstrap 3.3.1

You'll need to fix these errors and post a revised example before we can proceed further.
Thanks!
(Please note that this is a fully automated comment.)

Revised example using Bootstrap 3.3.4 same issue:
http://www.bootply.com/c7GmgLZx5H

Wrapping it in a setTimeout with a time of 1 fixes it.
setTimeout(function() {
    $("#txtInput").focus();
  }, 1);

See: http://www.bootply.com/hsCP97LMhZ

Hrmm, kind of wanted to avoid using a setTimeout, but if that is the only way then so be it.

Understandable. I'm not sure it's the only way, but it seems to work to fix the issue even if you set a 0ms delay. For that reason you shouldn't actually slow down the application in any noticeable manner because you aren't actually delaying it.

For accessibility reasons, after hiding a modal, we refocus the button that was used to trigger the showing of the modal (see https://github.com/twbs/bootstrap/blob/6e8df2ba581accbbd267ce649d2fb24a7440ccef/js/modal.js#L331 ).
I will make a note that we should try to better accommodate cases like yours in Bootstrap v4. For v3, short of modifying modal.js, I think only somewhat-hacky solutions are available.

The setTimeout workaround unfortunately does not solve the problem of IE throwing an error when it tries to refocus on an SVG that was clicked to trigger the modal (I'm using IE 11).
See: https://github.com/davidtheclark/focus-trap-react/issues/18


When a user wants to delete a dataset , the confirmation message could be more shaped

Hello,
when a user wants to delete a dataset , the following confirmation message is displayed
We can see on the example that no element is linked to the dataset.
When elements are linked, a list could be displayed to identify elements
When elements are not linked, a simpler message could be displayed to inform user
Screenshot
Before :

After :
If no link :

If links :

Best regards

I love the idea! It's more enhancement than bug, so we might move it to a Github Ideas discussion. If you're willing to implement this, we'd be more than happy to review a PR. Otherwise, I'll take @kasiazjc here for design input and @yousoph to see if anyone wants to adopt the idea.

I don't see how convert the issue in discussion.
Should I manually close the bug and create a discussion ?


data&model

Hi, i use your files and it will working well on your trained class.when i use my own graph trained using facenet-davidsandberg code.if i use your data&model files for my graph it seems like my trained images are unknown. so please tell me how do you create your data,model and mtcnn files.
thanks in advance

Pillarpond,
now I can use mydata to detect and recognize face,but I found 2 problem.
1.I found if change data/model/label  files  in FileUtils.java to data_1/model_1/label_1
I meet APP crash issue when initialize...
2.when change data/model/label files to my new data/model/label files need to manually clear
these old files in Cell phone ，it means when I build APK with these files and re-install APK to cell  phone ,these files can not be upgraded  automatically.
 Anyway,thank you again ,it is a good APP example.

I can create data and model files. Is there any way to create label too by code.
Thank you in advance.

@pillarpond Thank you so much for your helpful repo.
I have followed your guide to create model and data file. But how about the label file ?


Tokyonight flavor / fixes

you are missing a few variables, like --hover, --active, --selected. also, i'd prefer if you kept bug fixes separate from the flavor. make a separate pr for that.

nah


chore: bump deps & pin hugo

nodemon and npm-run-all were potentially affected by the event-stream issue
https://github.com/dominictarr/event-stream/issues/116
This PR bumps those deps to the latest release that avoid it.
To clarify, our specific versions were not affected by the issue,
this PR just bumps them to remove any ambiguity. Also, these
are dev dependencies, so it is not an issue that would affect
the published ipfs.io. site.
To make the site build reliably, it adds hugo as a dev dep and
pins it to vesion v0.31.1 that is known to work with the current
ipfs.io website src. You can now run make reliably regardless
of what version of hugo you may have installed gloabally.
License: MIT
Signed-off-by: Oli Evans<EMAIL_ADDRESS>

To clarify, our specific versions were not affected by the issue, this PR just bumps them to remove any ambiguity. Also, these are dev dependencies, so it is not an issue that would affect the published ipfs.io. site.

SGTM. Although we should still merge #278.

Is https://ipfs.io deployed manually? We've got a Jenkinsfile that should deploy master to https://website.ipfs.io but that domain isn't resolving for me.
In general I think all the dev tools a site needs should be pinned by project rather than be provided by the build env, so I feel that this PR is the right way to go to reduce the fricition for folks to update the site.


Fix rolling.constuct() example

The example was using the wrong name for the function (to_datarray), and used the wrong dimension for the window.
Cc: @fujiisoup, who added this in #1837

Thanks, @kmsquire
I didn't notice that this still survives. Merging.


EMFILE, Too many open files

I realize this may not be a request-specific issue, but I have am getting two errors from trying to utilize the module.
The first was
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory

So I changed the request options to
pool : {maxSockets : 10}

and then started getting the title error
EMFILE, Too many open files

Here is the little app making all the problems: https://gist.github.com/0f496e2ba2ab12786de0
Basically what happens is one call is made which returns an array of values, each of which require a new call. That is why I set an interval between calls. tho it didn't help :(
I looked into using node-pool to help, but did not understand how to stick request in it. Can somebody gist a simple node-pooling of requests?
https://github.com/coopernurse/node-pool

is this in 0.6 or 0.4?

It was 0.4, but I think it was because I was making too many requests from
a local machine over a sluggish connection.
On Thu, Nov 10, 2011 at 2:35 PM, Mikeal Rogers <
<EMAIL_ADDRESS>
is this in 0.6 or 0.4?

Reply to this email directly or view it on GitHub:
https://github.com/mikeal/request/issues/100#issuecomment-2702289

this should be fixed in node 0.6.


Add rubberband

Is your feature request related to a problem? Please describe.
Adding audio stretching library rubberband.
Describe the solution you'd like
rubberband filter enabled and available in runtime
Describe alternatives you've considered
atempo is available but produced audio quality is lower
Additional context
I tried this:
await ffmpeg.run('-i', 'dl.wav', '-filter_complex', "rubberband=pitch=1.5", 'dl-result.wav');

And it displays this in console:
[fferr] [AVFilterGraph @ 0x1a6fb40] No such filter: 'rubberband'
[fferr] Error initializing complex filters.

@rap2hpoutre where you able to figure this out, or is it not an option?


Support for pruned scan for required fields.

Like https://github.com/databricks/spark-csv/pull/169, this library might also have to support pruned scan.
This would improve its performance in particular when the number of requested columns is few but the schema is huge according to the test I proceeded in the PR at CSV datasource above.

Fixed in https://github.com/databricks/spark-xml/pull/46.


[NDArray] Process Tracking

[x] L2 Norm op
[ ] Slice op
[ ] Take op
[ ] Sum op

maybe also support (explicit) broadcasting along some dimensions when doing elementwise operation of two (or more) ndarrays?

Reference on how to add new operators http://mxnet.readthedocs.org/en/latest/developer-guide/operator.html

What's going on with Slice operator？

we already have a slice_axis operator, which should serve most of the purpose


feat: a11y and focus management for tree-view

Signed-off-by: stsogoo<EMAIL_ADDRESS>PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)
[ ] If applicable, have a visual design approval

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[x] Documentation content changes
[ ] clarity.design website / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?
The Tree View does not support the correct keyboard interactions.
Issue Number:
closes #3569
closes #3571
closes #3573
What is the new behavior?
Adding keyboard focus management that complies with: https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-22
Does this PR introduce a breaking change?

[x] Yes*
[ ] No

Previously, clr-tree was optional. But now we are making it mandatory.
Other information

Type-ahead feature is not implemented as that was not in the scope of this PR. We have a separate tracking issue for the feature: https://github.com/vmware/clarity/issues/3603
After discussing with the team, I've made it so that when the tree receives focus, the first visible node will be focused. This doesn't follow the authoring guideline, which says the first visible selected node should get focused. The reason why we didn't follow the authoring guideline on this specific behavior is that we believe that this behavior will cause the abrupt page scrolling if the first selected node if it exists in a deeply nested tree, resulting in poor user experience.

Preview: https://deploy-preview-3851--vmware-clarity.netlify.com/documentation/tree-view

I've been reviewing, and right now I propose this go only into v3. It has too many changing behaviors and is a breaking change. If we get into a pickle we can consider a backport then.

We also decided not to include other behaviors from the spec like the type-ahead functionality for trees with more than 7 nodes
From: Jeremy Wilken<EMAIL_ADDRESS>Reply-To: vmware/clarity<EMAIL_ADDRESS>Date: Wednesday, October 2, 2019 at 3:39 PM
To: vmware/clarity<EMAIL_ADDRESS>Cc: Chris Lane<EMAIL_ADDRESS>Review requested<EMAIL_ADDRESS>Subject: Re: [vmware/clarity] feat: a11y and focus management for tree-view (#3851)
@gnomeontherun approved this pull request.
I don't see anything major, didn't finish going through all the tests but you have my approval for this from what I see, we're on spec (except for focus on first selected item as we decided).

In src/clr-angular/data/tree-view/tree-focus-manager.service.tshttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fvmware%2Fclarity%2Fpull%2F3851%23discussion_r330752267&data=02|01|chlane%40vmware.com|4b4c8b6a7baa460b836e08d747896822|b39138ca3cee4b4aa4d6cd83d9dd62f0|0|0|637056527812146775&sdata=HV8vNpS28CXFJT0IqZYSkpL2HdyASwpk4U7ie9t1s6s%3D&reserved=0:

}

focusNode(nodeId: string) {

this._focusRequest.next(nodeId);

}

broadcastFocusedNode(nodeId: string) {

if (this.focusedNodeId !== nodeId) {

 this.focusedNodeId = nodeId;

 this._focusChange.next(nodeId);

}

}

focusParent(model: TreeNodeModel) {

const focusModel = model.parent;

if (focusModel) {

Seems like you can move this if (focusModel) { logic into focusNode above so its not duplicated so much.

In src/clr-angular/data/tree-view/tree-node.htmlhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fvmware%2Fclarity%2Fpull%2F3851%23discussion_r330799918&data=02|01|chlane%40vmware.com|4b4c8b6a7baa460b836e08d747896822|b39138ca3cee4b4aa4d6cd83d9dd62f0|0|0|637056527812146775&sdata=zXllzF1P7Zs51bOvmWdkQmJMYGeW%2BFHLX9Zq3N22lNA%3D&reserved=0:

@@ -4,36 +4,39 @@

~ The full license information can be found in LICENSE in the root directory of this project.
-->
-
+

nit: put focus on new line

In src/clr-angular/data/tree-view/tree-node.htmlhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fvmware%2Fclarity%2Fpull%2F3851%23discussion_r330800400&data=02|01|chlane%40vmware.com|4b4c8b6a7baa460b836e08d747896822|b39138ca3cee4b4aa4d6cd83d9dd62f0|0|0|637056527812156775&sdata=e29AWkyGAz%2Flni7ypkUEb93E6zyw37kPO22zhoJ9dWM%3D&reserved=0:

 <ng-content></ng-content>

-<div class="clr-treenode-children"

<EMAIL_ADDRESS>? 'expanded' : 'collapsed'"

[attr.role]="isExpandable() ? 'group' : null">

+<div class="clr-treenode-children"<EMAIL_ADDRESS>? 'expanded' : 'collapsed'" [attr.role]="isExpandable() ? 'group' : null">
nit: put attributes on separate lines like other elements.

In src/clr-angular/data/tree-view/tree.tshttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fvmware%2Fclarity%2Fpull%2F3851%23discussion_r330801272&data=02|01|chlane%40vmware.com|4b4c8b6a7baa460b836e08d747896822|b39138ca3cee4b4aa4d6cd83d9dd62f0|0|0|637056527812156775&sdata=2fEOznnQPEKZov6UhtsxcBW7jEmoNjjtRVQigWvq9IM%3D&reserved=0:

})

-export class ClrTree {

// This component can also be used just to declare providers once for trees with multiple root nodes.

+export class ClrTree implements AfterContentInit, OnDestroy {

constructor(

public featuresService: TreeFeaturesService,

We talked about this, since its only going into master this breaking change of requiring clr-tree is acceptable.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fvmware%2Fclarity%2Fpull%2F3851%3Femail_source%3Dnotifications%26email_token%3DALPARJX2VEP2HCPDL6DWSP3QMUPKRA5CNFSM4I2RPEUKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCGWEATI%23pullrequestreview-296501325&data=02|01|chlane%40vmware.com|4b4c8b6a7baa460b836e08d747896822|b39138ca3cee4b4aa4d6cd83d9dd62f0|0|0|637056527812156775&sdata=WozaOCfMMOGSaO3MaYsckQI4rrptIh9B1ad%2FM8M6qmY%3D&reserved=0, or mute the threadhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALPARJSTE3EI2MTA6EF4UODQMUPKRANCNFSM4I2RPEUA&data=02|01|chlane%40vmware.com|4b4c8b6a7baa460b836e08d747896822|b39138ca3cee4b4aa4d6cd83d9dd62f0|0|0|637056527812166761&sdata=bUwwWUAL4faIXo5nOGNQoy3hILIxDU1AYU5ONMgruBE%3D&reserved=0.

nit: use feat(tree-view) to scope the commit


Upgrade gardener/gardener-resource-manager to v0.25.0

How to categorize this PR?

/area open-source
/kind enhancement
/merge squash
What this PR does / why we need it:

Upgrade gardener/gardener-resource-manager image to to v0.25.0
Revendor github.com/gardener/gardener-resource-manager and github.com/gardener/gardener-resource-manager/api dependencies to v0.25.0

Release Notes:
The `gardener-resource-manager` now features an optional garbage collector controller (disabled by default) for immutable `ConfigMap`s/`Secret`s. Please take a look at [this document](https://github.com/gardener/gardener-resource-manager/blob/master/docs/concepts/garbagecollector.md) if you want to use it.

Most dependencies have been revendored, most prominently:
*<EMAIL_ADDRESS>*<EMAIL_ADDRESS>*<EMAIL_ADDRESS>
Don't overwrite resources/replicas of objects annotated with `resources.gardener.cloud/preserve-{resources,replicas}`.

/cc @timebertt
FYI @harishmanasa @amshuman-kr @ashwani2k


auto_detect_line_endings is deprecated warnings with PHP 8.1

the laravel.log file is filled with auto_detect_line_endings is deprecated ... vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Csv.php on line 318.  PHP 8.1 is required for Laravel 10. How to suppress this warning? Here is the related bug reported on laravel-excel

@frankyso I asked the same question on the laravel-excel package repo. is it possible to do it in the Import class?


Release Google.Cloud.DiscoveryEngine.V1 version 1.0.0-beta04

Changes in this release:
New features

Change netstandard2.1 target to netstandard2.0 (commit 82bea85)

Created release for Google.Cloud.DiscoveryEngine.V1-1.0.0-beta04


Add markdown extension for prettier rendering of Changelog

So pretty! References to environment variables are getting italicized because of the underscore in them though. These may need to be surrounded by backticks.

+1

Sorry, I forgot about this. Just fixed the conflicts.


feat(no-callback-in-promise): add timeoutsErr option

What is the purpose of this pull request?

[x] Bug fix
[x] Changes an existing rule

What changes did you make? (Give an overview)

feat(no-callback-in-promise): add timeoutsErr option; fixes #167
fix(no-callback-in-promise): ensure timeouts do not err (by default); fixes #220

I think the approach here may not be right, as we're looking for the timer functions with callbacks, not just timer functions.
eg if we use the node:timers/promises api, then timers are fine:
import { setImmediate } from 'timers/promises';

whatever.then((err) => setImmediate('value'))

Ah, good catch. Do you have a suggested way of catching those? Just introspecting on the imports for known promise APIs and failing otherwise?

The first way that comes to mind is using the ReferenceTracker from our eslint-utils.
But I think that it is going about things the wrong way round

Maybe the check could be as simple as checking the scope of the variable and if it's got declarations?

The first way that comes to mind is using the ReferenceTracker from our eslint-utils.
But I think that it is going about things the wrong way round
Maybe the check could be as simple as checking the scope of the variable and if it's got declarations?

You mean because a declaration would itself imply a potentially Promise-based library import as opposed to the built-ins?

I think the approach here may not be right, as we're looking for the timer functions with callbacks, not just timer functions.
eg if we use the node:timers/promises api, then timers are fine:
import { setImmediate } from 'timers/promises';

whatever.then((err) => setImmediate('value'))

Actually, the code is only checking for timers with callbacks. Your example currently passes with the PR.
The main idea with the timeouts in this PR is to permit them unless the option timeoutsErr: true is set, and then, to only fail with them if the contain a callback (not to fail with their presence).
I was thinking you were suggesting that the following could be more acceptable with the option set:
import { setImmediate } from 'timers/promises';
whatever.then((err) => setImmediate(cb))

...but I'm not sure that it is, as it is still passing around a callback inside of a promise.

Actually, the code is only checking for timers with callbacks. Your example currently passes with the PR.

Ah, that makes sense!


FileNotFoundError: [Errno 2] No such file or directory: './temp/imdb.synonyms'

Hi,
When I run the script it fails with the following error
Traceback (most recent call last):
  File "./train_imdb_ascc.py", line 310, in <module>
    main()
  File "./train_imdb_ascc.py", line 305, in main
    train_iter, dev_iter, test_iter, syn_data = imdb_make_synthesized_iter(opt)
  File "/repos/ASCC/dataHelper.py", line 1013, in imdb_make_synthesized_iter
    f=open(filename,'rb')
  File "/anaconda3/envs/ascc/lib/python3.6/codecs.py", line 897, in open
    file = builtins.open(filename, mode, buffering)
FileNotFoundError: [Errno 2] No such file or directory: './temp/imdb.synonyms'

Could you please provide the imdb.synonyms?

Hi,
You may add "--synonyms_from_file false" when the first run.

Thanks! BTW, does the script train_imdb.sh reproduce the results in Table 1?


Helper for transforming key presses into sequence strings

This would be used to redefine hotkeys at runtime.
Something similar to https://github.com/ccampbell/mousetrap/tree/master/plugins/record

An interesting idea, @AndriySvyryd.
This may be possible with a little modification.

If I am interpreting how that particular mousetrap plugin works correctly, I am not sure I like its approach. It appears that it simply waits for 1 second after the last key event before assuming that the user is done pressing keys, and setting the new key combination or sequence. I think I'd prefer a more explicit action, so as clicking a "Done" button (which would trigger a callback to tell react-hotkeys that the sequence should stop being recorded).
Would that work for your application, @AndriySvyryd?

@greena13 For my application only a single key combination is needed at a time, so it would work best if it stopped recording on the last keyup (to allow for something like ctrl+alt+shift+m to be captured)

This feature is now available in v2.0.0-pre8.