Clean only release artifacts if --release option is set

Fixes #6339

Seems good to me.  Could you try and add a test for this fixed behaviour, please?

I think we'd want a test that also built non-release, and assert that running clean --release doesn't remove those artefacts.

Updated! Thank you.

Nice one, thank you!
@bors: r+

:pushpin: Commit f61966403abdbbb142bcf9263a7a46ae196c5fef has been approved by dwijnand

:hourglass: Testing commit f61966403abdbbb142bcf9263a7a46ae196c5fef with merge 6d57b59ab505a803e4fb22f87b5ba60eb705163b...

:sunny: Test successful - status-appveyor, status-travis
Approved by: dwijnand
Pushing 6d57b59ab505a803e4fb22f87b5ba60eb705163b to master...


[Bug] lewd filter doesn't filter out some sources

Device information

Tachiyomi version: Preview r296
Android version: 9.1.0
Device: Huawei ANE-LX2

Steps to reproduce
Filter out lewd mangas
Expected behavior
lewd mangas should be filtered
Actual behavior
Some lewd mangas from specific sources were not filtered
Other details
hitomi.la and 8muses mangas should also be filtered

This is not really a bug

Added the sources in https://github.com/jobobby04/TachiyomiSY/commit/98bfe34e1880352dcf781685d7fb9c3917b38de0

thank you


Fix import overhead by using importlib.util.find_spec

Fixes https://github.com/facebookresearch/torchdynamo/issues/133.
This also fixes the performance overhead caused by importing third party libraries in https://github.com/facebookresearch/torchdynamo/issues/107

@anijain2305 is reporting this changes the behavior of TorchDynamo and results in fewer graphs.  So there is an issue with the PR.  We may need to revert it if there isn't an easy fix.


chore: remove rds related commands

Description of changes

Treat RDS commands as any normal unsupported command.
After this change it'll show as:

CDK / CloudFormation Parameters Changed

Issue #, if available

Description of how you validated changes
Checklist

[x] PR description included
[x] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies
[ ] Any CDK or CloudFormation parameter changes are called out explicitly

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Could you also remove the explicit errors that get thrown as part of the commands, since they're now fully removed from execution?


Using NestedScrollView, TabBarView and AutomaticKeepAliveClientMixin will scroll other scroll views in the tab.

Steps to Reproduce

Change tab to Tab 2
Scroll inner list in Tab 2
Change tab to Tab 1
Inner list in Tab 1 has also scrolled

If we switch tabs, States outside the screen will be disposed.
In many cases, loading data is a heavy process, so I want to keep States.
I am going to use AutomaticKeepAliveClientMixin for that.
However, with this combination of Widgets,
the scroll operation also affects the scroll view of other tabs.

Without NestedScrollView, this does not occur
Without AutomaticKeepAliveClientMixin, this does not occur
When wantKeepAlive is false, this does not occur

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(home: MyApp()));

const _kTabs = ["Tab 1", "Tab 2"];

class MyApp extends StatefulWidget {
  MyAppState createState() => MyAppState();
}

class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
  ScrollController scrollController = ScrollController();

  @override
  Widget build(BuildContext context) {
    final Widget tabBar = TabBar(
        tabs: _kTabs.map<Widget>((String name) => Tab(text: name)).toList());

    return Scaffold(
      body: DefaultTabController(
        length: _kTabs.length,
        child: NestedScrollView(
          controller: scrollController,
          headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
            return <Widget>[
              SliverAppBar(
                title: Text("Title"),
                bottom: tabBar,
                pinned: true,
                forceElevated: innerBoxIsScrolled,
              ),
            ];
          },
          body: TabBarView(
            children: _kTabs.map((String name) {
              return Container(
                key: PageStorageKey(name),
                child: MyListView(),
              );
            }).toList(),
          ),
        ),
      ),
    );
  }
}

class MyListView extends StatefulWidget {
  @override
  _MyListViewState createState() => _MyListViewState();
}

class _MyListViewState extends State<MyListView> with AutomaticKeepAliveClientMixin {
  @override
  final bool wantKeepAlive = true;

  @override
  Widget build(BuildContext context) {
    super.build(context);
    return ListView.builder(
      itemBuilder: (BuildContext context, int index) {
        return ListTile(
          title: Text('Item $index'),
        );
      },
    );
  }
}

Logs
[✓] Flutter (Channel v1.7.8-hotfixes, v1.7.8+hotfix.3, on Mac OS X 10.14.4 18E226, locale ja-JP)
    • Flutter version 1.7.8+hotfix.3 at /Applications/flutter
    • Framework revision b712a172f9 (8 days ago), 2019-07-09 13:14:38 -0700
    • Engine revision 54ad777fd2
    • Dart version 2.4.0

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/najeira/Library/Android/sdk
    • Android NDK at /Users/najeira/Library/Android/sdk/ndk-bundle
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/najeira/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/najeira/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2, Build version 10E125
    • CocoaPods version 1.7.4

[✓] iOS tools - develop for iOS devices
    • ios-deploy 1.9.4

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

[✓] Android Studio (version 3.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 34.0.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 31.1.1
    • Dart plugin version 181.4203.498

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

[✓] Connected device (5 available)
    • SC 02H               • 145faa87                                 • android-arm64  • Android 8.0.0 (API 26)
    • HW 01K               • LPF0218529000628                         • android-arm64  • Android 8.1.0 (API 27)
    • TetsuhiroのiPod touch • 8669364bb2135049086983a6bcc1f2db7cdd255e • ios            • iOS 12.3.1
    • macOS                • macOS                                    • darwin-x64     • Mac OS X 10.14.4 18E226
    • web                  • web                                      • web-javascript • Google Chrome 75.0.3770.142

Hi,I have the same problem, how to fixed?

I use PageStorage instead of AutomaticKeepAliveClientMixin to avoid this problem.

@HansMuller i would like to bump this. Using PageStorage only works to some extend.
For example if you have a tab with an ExpansionPanelList.radio, it is not possible to save the currently expanded panel sate without AutomaticKeepAliveClientMixin or a custom rewrite of the whole widget just to be able to use PageStorage.

i have done some things to solve this thing, may be you have better solution 。please check it when you have the time.
i notice innerscrollcontrol is sync the crash scrollpostion, that the problem here.
may be we should only Focus on the active one
https://github.com/fluttercandies/extended_nested_scroll_view

Related to https://github.com/flutter/flutter/issues/40740

Reproduced with dev v1.16.4-pre.83

I also encountered this problem, did anyone find a solution?

the issue reproduce with the latest master (1.19)
https://github.com/flutter/flutter/issues/57071#issuecomment-627901034

@iapicca  This question has been raised for a long time. Are there any restoration plans in the near future

I also have a similar problem that explained in this issue: #71289
I would like you guys to check it too.
Btw, seriously, no offense but NestedScrollView is a must have UI nowadays and I have seen a lot of problems about it.
For example, Instagram's profile screen UI is what I want to achieve. However, with the current possibilities I either have an unacceptable lag between tab switches (because I don't use AutomaticKeepAliveMixin for innerScrollers) or the inner scrollers of the nested view intertwine & affect each other (this happens when I use AutomaticKeepAliveMixin for innerScrollers.)

Using the original code sample https://github.com/flutter/flutter/issues/36419#issue-469570408, the issue is replicable on latest stable and master.

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.6, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.6 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 9b2d32b605 (11 days ago), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (1 available)
    • SM A260G (mobile) • 5200763ebcfa861f • android-arm • Android 8.1.0 (API
      27)

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 1.26.0-18.0.pre.156, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.26.0-18.0.pre.156 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 45508985b1 (2 hours ago), 2021-02-02 22:46:04 -0500
    • Engine revision 2c144c3eeb
    • Dart version 2.12.0 (build 2.12.0-282.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • Mac OS X 10.15.4 19E2269
      darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 88.0.4324.96

! Doctor found issues in 1 category.

@darshankawar  @najeira
the issue does not occur assigning a controller to each ListView.builder
as you can see running this code sample
consider it a workaround if you like, but it seems to me a pretty straight forward implementation

Hi @iapicca,
I tried doing it which solved the issue, but I kept this issue open because earlier this week, I gave a similar solution to an issue and closed it, but it was reopened terming it as a bug in framework. https://github.com/flutter/flutter/issues/75107#issuecomment-771427449.

This does not work if the AppBar has an extended height. The list scrolls but the app bar's height does not collapse

@Piinks  I believe that you are working on NestedScrollView, do you have any progress on this problem?
And I don't understand why @zmtzawqlp 's package solution is not a work into the framework but to build another package...
If his package solve the problem, I guess there might be something to learn from.
Cause we all know the NestedScrollView from framework contains a lot of tiny issue that bugs us.
@Hixie Structure like ListView is very common in all sort of design, I believe Flutter can be better on this area, please try to make the existing perfect than to spend energy into other area. Thank you!

I use PageStorage instead of AutomaticKeepAliveClientMixin to avoid this problem.

@najeira Hi there, you mentioned that you used PageStorage instead of AutomaticKeepAliveClientMixin to avoid(or solve the problem I guess?)
Could you elaborate?
Thanks

@Piinks I believe that you are working on NestedScrollView, do you have any progress on this problem?

Hi @SeasonLeee, no one is assigned to this issue, so I do not believe anyone is actively working on it right now. If you have not already, upvote the first comment of the issue report. This helps us prioritize issues. Thank you! :)

[...] yeah... but no... I mean, it seems you have open several NestedScrollView related issues, and I thought this might be related to the issue that you are working on... and this is been open for like, I don't know, forever?.......
NestedScrollView plus TabBarView is kind of a common design structure in all sort of design language and use case... it's kind of hard to accept the fact that it's not a production ready widget.(due to all these little things that behaves incorrectly...) But we have to use the widget because the design say so....
Anyway... I'm just hoping things about this NestedScrollView can be bug free...
Besides, I have liked the first comment of the issue... yeah... see, 28 likes now... and it's from 2019.... so... please? pretty please?

@SeasonLeee
it takes literally 12 lines of code to have the code working
as pointed out here
I believe the team has much more urgent matters to focus on
class MyListView extends StatefulWidget {
  @override
  _MyListViewState createState() => _MyListViewState();
}

class _MyListViewState extends State<MyListView> with AutomaticKeepAliveClientMixin {
+  late final ScrollController _controller;

+  @override
+  void initState() {
+    _controller = ScrollController();
+    super.initState();
+  }

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

  @override
  final bool wantKeepAlive = true;

  @override
  Widget build(BuildContext context) {
    super.build(context);
    return ListView.builder(
+      controller: _controller,
      itemBuilder: (BuildContext context, int index) {
        return ListTile(
          title: Text('Item $index'),
        );
      },
    );
  }
}

@iapicca oooooh... okay, my bad, because there's no single thumb up to your comment, and when I read all the comments, my mind just automatically filter out yours because it's really similar to other non-helpful comments..........😅
Anyway, as for your implementation... well, I'm sorry to say that there's a huge mistakes that when you use another ScrollController to the ListView inside the NestedScrollView, it will just break the whole how NestedScrollView work mechanism, which is clearly documented in the documentation(or the source code) of the NestedScrollView, which is here:

To put is simply, if you set controller to the List which will be the child of NestedScrollView, it will break the Scroll behavior of it, meaning if I have a SliverAppBar hoping it to stretch or collapse along the list, controller in the List will make the SliverAppBar stay put even if you scroll the List.
Please read the documentation before you proceed to offer your help, and try to think why we need the NestedScrollView.
And I understand that the team have another urgent thing to worry about, but this is a bug open from a really long time ago, and I am not just asking for fix immediately, but a question of progress...
Either way, still thank you for your response!

oooooh... okay, my bad, because there's no single thumb up to your comment, and when I read all the comments, my mind just automatically filter out yours because it's really similar to other non-helpful comments..........

imho, here or anywhere else the number of "thumbs up" or the number of people agreeing
do not necessarily (if ever) reflect the quality of an answer (or a question)

I'm sorry to say that there's a huge mistakes that when you use another ScrollController to the ListView inside the NestedScrollView, it will just break the whole how NestedScrollView work mechanism, which is clearly documented in the documentation(or the source code) of the NestedScrollView, which is here:

as the issue is still open does not have a solution and I'm not proposing one,
what I'm proposing is a workaround to address the bug scope of this issue
which successfully fix the observe behavior:

Using NestedScrollView, TabBarView and AutomaticKeepAliveClientMixin will scroll other scroll views in the tab.

@iapicca
yeah, I'm not implying or saying anything about the quality of the comment relating to thumb up, 😅 I'm simply saying that I missed your comment because there's no other visible different to other question-asking or confirming comments. I should be more patient or careful with each comment next time reading an issue.
as for your workaround, which is great but only if the user of the NestedScrollView do not want to use SliverAppBar with the collapsing and stretching effect when the ListView scrolling, which I think will be a least user case, since the whole point of the NestedScrollView is to make the SliverAppBar and the TabBarView and the ListView inside TabBarView to be synced when scrolling... otherwise people can use CustomScrollView if the List is just one and still wanting that SliverAppBar effect or a simpler TabBarView without the SliverAppBar.
Either way, I still thank your time and response!

same problem

this problem driving me nuts. Did anyone try @zmtzawqlp 's package?

@EternalYouth29 you could give it a shot then tell us how it goes😆

@SeasonLeee I tried, but I couldn't even understand his sample code 😅.

@EternalYouth29  well, then you know why there's few people talk about that...
By the way, just for future reference if anyone is reading this issue, that PageStorageKey(key) method(to keep each tab's scroll position same as before changing tab) is useless.
To my understanding, in order to make PageStorageKey work, we have to use ScrollController for it(as if the controller use preserved ScrollPosition to scroll to the previous position, which I think is quite weird... (let alone there might be visually auto scrolling in front of the User's eyes... who want this kind of image - -|||)
And right now what seems to cause the issue is that NestedScrollView share the ScrollController between tabs(my guessing), and in this case is unbearably visible if we use AutomaticKeepAliveClientMixin to keep the scroll position of each tab...
@Piinks Is this the case? NestedScrollView share the ScrollController between tabs? (meaning even there's 10 tabs, but due to the nature of NestedScrollView, we only have one working ScrollController instead of separate one for each one?)

The easiest way to solve this problems is create bool _isPresent = true inside MyListView state.
Then add an tabbar listenner for every tab through global key:
      TabBar tabBar = Keys.tabBarKey.currentWidget; //Global key to access TabBar
      tabBar.controller.addListener(() {
        if (tabBar.controller.indexIsChanging) {
          if (tabBar.controller.index != 0) // Example in tab[0]
            setState(() {
              _isPresent = false;
            });
          else {
            setState(() {
              _isPresent = true;
            });
          }
        }
      });

And in build method just render only _isPresent = true;. Because when CustomScrollView is rendered, it will hold scroll controller and cannot share to another tab. So, if we want use the scroll controller we need to first prevent all CustomScrollView render, only render the tab that showing
 return RefreshIndicator(
      edgeOffset: screenSize.height * 0.2,
      onRefresh: () async {

      },
      child: _isPresent
          ? CustomScrollView(
              controller: _primaryScrollController,
              slivers: [
                SliverOverlapInjector(
                  // This is the flip side of the SliverOverlapAbsorber
                  // above.
                  handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
                ),
                SliverPadding(
                  padding: EdgeInsets.symmetric(vertical: 10),
                  sliver: SliverList(delegate: SliverChildListDelegate(listViewWidgets)),
                )
              ],
              // ListView(
              //   controller: _postsScrollController,
              //   children: listViewWidgets,
              // ),
            )
          : Container(),
    );

But by doing this the scroll offset will missing because of changing _isPresent
so before leave current tab we need to save the offset in tab controller listener:
tabBar.controller.addListener(() {
        if (tabBar.controller.indexIsChanging) {
          if (tabBar.controller.index != 0) {
            _scrollOffset = _primaryScrollController.offset; //Add this line
            setState(() {
              _isPresent = false;
            });
          } else {
            setState(() {
              _isPresent = true;
            });
          }
        }
      });

Then restore it when we back
//add in build method
    if (_isPresent) {
      _primaryScrollController = PrimaryScrollController.of(context);
      WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
        if (_scrollOffset != 0) { // Prevent jump to offset 0 to show flexible space in appbar
          _primaryScrollController.jumpTo(_scrollOffset);
        }
      });
    }

@melongbob I think you could write a post about this...
Have you tried to use the method you shared on the example provided in the first reply?
https://github.com/flutter/flutter/issues/36419#issue-469570408

@melongbob I think you could write a post about this...
Have you tried to use the method you shared on the example provided in the first reply?
#36419 (comment)
It's working very good in my project but my project very complex so i can only share the essential code in there

bottom: TabBar(
                  key: Keys.tabBarKey,
                  controller: _tabController,
                  tabs: [
                    Tab(
                      icon: Icon(Icons.home),
                    ),
                    Tab(
                      icon: Icon(Icons.group),
                    ),
                    Tab(
                      icon: Icon(
                        AppIcons.hands_helping,
                        size: 18,
                      ),
                    ),
                    Tab(
                      icon: Icon(Icons.stars),
                    ),
                    Tab(
                      icon: Icon(Icons.notifications),
                    ),
                    Tab(
                      icon: Icon(Icons.menu),
                    ),
                  ],
                ),

The Keys class is the class with static key to access from anywhere. And when you have this key you can retrieve your tab bar and then you can take the tab controller to do that.
The code above must be written in every Tab under TabBarView
Hope this reply can help you. Good luck

try to open Whatsapp on Android and scroll down in the chat tab then go directly to calls ta then scroll down and up then chat list will lose its state I think they should resolve this problem asap.

try to open Whatsapp on Android and scroll down in the chat tab then go directly to calls ta then scroll down and up then chat list will lose its state I think they should resolve this problem asap.

What exactly does the situation you just described have something to do with the issue we are talking here? And Flutter?
Aren't you supposed to report the issue to Whatsapp customer service and not buzzing us who subscribed to the issue with unrelated information?
Thank you!

Because NestedScrollView only can share their scroll controller to only one child. So we can't use for multiple scroll view under the tabs.
Then, We still can use AutomaticKeepAliveClientMixin And SliverAppBar with TabBarView
In the first tabs is showed when we first open the app, Use the scroll controller of NestedScrollView by
_primaryScrollController = PrimaryScrollController.of(context);
And then attach it to CustomScrollView
The remaining tabs we use another ScrollController like this
 ScrollController _scrollController = ScrollController(); // Declare it in state class
Then attach it to CustomScrollView or ListView
But in here, we can not scroll the SliverAppBar. So we must absorb the scroll behaviors from the CustomScrollView
  double _lastOffset = 0;
  //...
  void initState() {
    fetchItems();
    super.initState();

    NestedScrollView nestedScrollView = Keys.nestedScrollViewKey.currentWidget;
    ScrollController primaryScrollController = nestedScrollView.controller;
    _scrollController.addListener(() {
      double scrolled = _scrollController.offset - _lastOffset; // Use lastOffset to store the last offset of the scrollview
      _lastOffset = _scrollController.offset;
      primaryScrollController.jumpTo(primaryScrollController.offset + scrolled);
    });
  }

The Keys class is the static class storing global key to access from anywhere and attach it to NestedScrollView
    return Scaffold(
      body: NestedScrollView(
        key: Keys.nestedScrollViewKey,
//...

All done and good luck!

@iapicca oooooh... okay, my bad, because there's no single thumb up to your comment, and when I read all the comments, my mind just automatically filter out yours because it's really similar to other non-helpful comments..........😅
Anyway, as for your implementation... well, I'm sorry to say that there's a huge mistakes that when you use another ScrollController to the ListView inside the NestedScrollView, it will just break the whole how NestedScrollView work mechanism, which is clearly documented in the documentation(or the source code) of the NestedScrollView, which is here:

To put is simply, if you set controller to the List which will be the child of NestedScrollView, it will break the Scroll behavior of it, meaning if I have a SliverAppBar hoping it to stretch or collapse along the list, controller in the List will make the SliverAppBar stay put even if you scroll the List.
Please read the documentation before you proceed to offer your help, and try to think why we need the NestedScrollView.
And I understand that the team have another urgent thing to worry about, but this is a bug open from a really long time ago, and I am not just asking for fix immediately, but a question of progress...
Either way, still thank you for your response!

Thank you very much!
CustomScrollView(
controller: ScrollController(keepScrollOffset: true),

PageStorage

how do it

This issue got a bunch of duplicates in the last few days.
cc: @Piinks

I spent few hours investigating and ended up compiling example from documentation of NestedScrollView class https://github.com/flutter/flutter/issues/89582 . To my surprise even that code didn't work as expected. After @TahaTesser pointed me to this thread I realised that the issue has been open for 2 years already. This reminded me Android world where nobody care about open issues and wrong documentation for years.

@autolainen We do care very much; please consider how your words might impact the morale of team members. That said, this is an open source project and we very much welcome contributions; lots of people contribute fixes both to the documentation and the widgets. You are welcome to join us!

Is there the best way to solve this problem

The issue has been around for quite a long time now. A proper fix will be very helpful. Is there any progress? If anyone has a workaround, please share.

There's a workaround in this reply that you could give it a shot.
@xshiwei
@zainulhassan815

There's a workaround in this reply that you could give it a shot.
@xshiwei @zainulhassan815

I have used this method and the issue seems to be resolved. Now the new issue is that I lost SliverAppBar's animation. The position is conserved but there is no animation going on on the app bar.

@zainulhassan815 hmm... which animation is missing? Could you record a video and post here to demon it?
I have used the method from that comment and it works perfectly. I didn't have any side effect after implementing it...

@meokg456 your answer is highly underrated. I just spent 2h searching for this :+1:
For those of you, who are lazy, here is a class you can copy paste based on the afore mentioned solution.

add an individual ScrollController for your underlaying ScrollView (eg. CustomScrollView, SingleChildScrollView,...)
wrap your scrollView with _NestedFix
replace RoundEditPage.nestedScrollViewKey with your own   static final nestedScrollViewKey = GlobalKey();
add this static key in the NestedScrollView.

Code
class _NestedFix extends StatelessWidget {
  const _NestedFix({Key? key, required this.child}) : super(key: key);

  final Widget child;

  void absorbScrollBehaviour(double scrolled) {
    final NestedScrollView? nestedScrollView =
        RoundEditPage.nestedScrollViewKey.currentWidget as NestedScrollView?;
    final ScrollController? primaryScrollController =
        nestedScrollView?.controller;
    primaryScrollController?.jumpTo(primaryScrollController.offset + scrolled);
  }

  @override
  Widget build(BuildContext context) {
    return NotificationListener(
        onNotification: (Notification notification) {
          if (notification is OverscrollNotification) {
            absorbScrollBehaviour(notification.overscroll);
            if (notification.overscroll > 0) {
              //Load more items
            }
          }
          if (notification is ScrollUpdateNotification) {
            absorbScrollBehaviour(notification.scrollDelta ?? 0);
          }
          return true;
        },
        child: child);
  }
}

Here is my detailed solution you guys can try it.
https://medium.com/@meokg456/how-to-use-nestedscrollview-tabbarview-and-automatickeepaliveclientmixin-in-sliverappbar-423002ba659e

@meokg456

Chạy trên example của bro bị lỗi này.

@jlnrrg I follow your guide but when I scroll one tab then affect other tabs. Do you have example for this?

@meokg456 Mình chạy code của bro thì có xuất hiện lỗi ở console làm khựng UI. :(

@rikai-trongpq hello bro ông gắn scroll controller cho mỗi custom scroll view chưa. Phiên bản flutter mấy v.

@meokg456 Mình clone code của bro về run luôn á. Phiên bản mới nhất á bro

@rikai-trongpq chụp cái lỗi lúc chạy tui xem

@meokg456  I clone your code example and getting an error on android studio console

@rikai-trongpq can you copy the whole logs?

@rikai-trongpq
======== Exception caught by scheduler library =====================================================
The following assertion was thrown during a scheduler callback:
SemanticsNode#16(Rect.fromLTRB(0.0, 0.0, 0.0, 0.0), tags: [RenderViewport.twoPane], invisible) (with null) tried to set a non-finite rect.
'package:flutter/src/semantics/semantics.dart':
Failed assertion: line 1592 pos 12: 'value.isFinite'

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      SemanticsNode.rect= (package:flutter/src/semantics/semantics.dart:1592:12)
#3      _SwitchableSemanticsFragment.compileChildren (package:flutter/src/rendering/object.dart:3767:11)
#4      _SwitchableSemanticsFragment.compileChildren (package:flutter/src/rendering/object.dart:3733:18)
#5      _SwitchableSemanticsFragment.compileChildren (package:flutter/src/rendering/object.dart:3779:16)
#6      RenderObject._updateSemantics (package:flutter/src/rendering/object.dart:2725:25)
#7      PipelineOwner.flushSemantics (package:flutter/src/rendering/object.dart:1074:16)
#8      RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:502:21)
#9      WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#10     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#11     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1145:15)
#12     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#13     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#17     _invoke (dart:ui/hooks.dart:150:10)
#18     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:270:5)
#19     _drawFrame (dart:ui/hooks.dart:114:31)
(elided 5 frames from class _AssertionError and dart:async)
====================================================================================================

@meokg456 Follow your guide, is it necessary added CustomScrollView for each tab?

@rikai-trongpq hmm I think it relate to cacheExtent: double.infinity so you can remove it in CustomScrollView. I don't know :D try another if you want. ListView basiclly is CustomScrollView

@meokg456 I will update code and feedback. Thanks for support, bro

@meokg456  I remove cacheExtent: double.infinity and it's work. Thanks.

@meokg456 Your example will fire an error if ListView just have 1 item (or number of item could not scroll).
======== Exception caught by gesture ===============================================================
The following StackOverflowError was thrown while handling a gesture:
Stack Overflow

When the exception was thrown, this was the stack:
#0      _NestedScrollController.nestedPositions (package:flutter/src/widgets/nested_scroll_view.dart)
#1      _SyncIterator.moveNext (dart:core-patch/core_patch.dart:182:26)
#2      _NestedScrollCoordinator._outerPosition (package:flutter/src/widgets/nested_scroll_view.dart:601:45)
#3      _NestedScrollCoordinator.unnestOffset (package:flutter/src/widgets/nested_scroll_view.dart:820:19)
#4      ScrollController.jumpTo (package:flutter/src/widgets/scroll_controller.dart:172:16)
#5      ScrollAbsorber.absorbScrollNotification (package:demo/utils/scroll_absorber.dart:21:29)
#6      _KantoTabState.build.<anonymous closure> (package:demo/screens/main_screen/tabs/kanto_tab/kanto_tab.dart:46:30)
#7      Element.visitAncestorElements (package:flutter/src/widgets/framework.dart:4091:39)
#8      DragScrollActivity.dispatchScrollEndNotification (package:flutter/src/widgets/scroll_activity.dart:483:7)
#9      ScrollPosition.didEndScroll (package:flutter/src/widgets/scroll_position.dart:907:15)
#10     ScrollPosition.beginActivity (package:flutter/src/widgets/scroll_position.dart:876:9)
#11     _NestedScrollCoordinator.beginActivity (package:flutter/src/widgets/nested_scroll_view.dart:652:16)
#12     _NestedScrollCoordinator.jumpTo (package:flutter/src/widgets/nested_scroll_view.dart:885:5)
#13     ScrollController.jumpTo (package:flutter/src/widgets/scroll_controller.dart:172:16)
#14     ScrollAbsorber.absorbScrollNotification (package:demo/utils/scroll_absorber.dart:21:29)
#15     _KantoTabState.build.<anonymous closure> (package:demo/screens/main_screen/tabs/kanto_tab/kanto_tab.dart:46:30)
#16     Element.visitAncestorElements (package:flutter/src/widgets/framework.dart:4091:39)
#17     DragScrollActivity.dispatchScrollEndNotification (package:flutter/src/widgets/scroll_activity.dart:483:7)
#18     ScrollPosition.didEndScroll (package:flutter/src/widgets/scroll_position.dart:907:15)
#19     ScrollPosition.beginActivity (package:flutter/src/widgets/scroll_position.dart:876:9)
#20     _NestedScrollCoordinator.beginActivity (package:flutter/src/widgets/nested_scroll_view.dart:652:16)
#21     _NestedScrollCoordinator.jumpTo (package:flutter/src/widgets/nested_scroll_view.dart:885:5)
#22     ScrollController.jumpTo (package:flutter/src/widgets/scroll_controller.dart:172:16)
#23     ScrollAbsorber.absorbScrollNotification (package:demo/utils/scroll_absorber.dart:21:29)
#24     _KantoTabState.build.<anonymous closure> (package:demo/screens/main_screen/tabs/kanto_tab/kanto_tab.dart:46:30)
#25     Element.visitAncestorElements (package:flutter/src/widgets/framework.dart:4091:39)
#26     DragScrollActivity.dispatchScrollEndNotification (package:flutter/src/widgets/scroll_activity.dart:483:7)
#27     ScrollPosition.didEndScroll (package:flutter/src/widgets/scroll_position.dart:907:15)
#28     ScrollPosition.beginActivity (package:flutter/src/widgets/scroll_position.dart:876:9)
#29     _NestedScrollCoordinator.beginActivity (package:flutter/src/widgets/nested_scroll_view.dart:652:16)
#30     _NestedScrollCoordinator.jumpTo (package:flutter/src/widgets/nested_scroll_view.dart:885:5)
#31     ScrollController.jumpTo (package:flutter/src/widgets/scroll_controller.dart:172:16)
#32     ScrollAbsorber.absorbScrollNotification (package:demo/utils/scroll_absorber.dart:21:29)
#33     _KantoTabState.build.<anonymous closure> (package:demo/screens/main_screen/tabs/kanto_tab/kanto_tab.dart:46:30)
#34     Element.visitAncestorElements (package:flutter/src/widgets/framework.dart:4091:39)
#35     DragScrollActivity.dispatchScrollEndNotification (package:flutter/src/widgets/scroll_activity.dart:483:7)
#36     ScrollPosition.didEndScroll (package:flutter/src/widgets/scroll_position.dart:907:15)
#37     ScrollPosition.beginActivity (package:flutter/src/widgets/scroll_position.dart:876:9)
#38     _NestedScrollCoordinator.beginActivity (package:flutter/src/widgets/nested_scroll_view.dart:652:16)
#39     _NestedScrollCoordinator.jumpTo (package:flutter/src/widgets/nested_scroll_view.dart:885:5)
...
...
#11362  _KantoTabState.build.<anonymous closure> (package:demo/screens/main_screen/tabs/kanto_tab/kanto_tab.dart:46:30)
#11363  Element.visitAncestorElements (package:flutter/src/widgets/framework.dart:4091:39)
#11364  DragScrollActivity.dispatchScrollEndNotification (package:flutter/src/widgets/scroll_activity.dart:483:7)
#11365  ScrollPosition.didEndScroll (package:flutter/src/widgets/scroll_position.dart:907:15)
#11366  ScrollPosition.beginActivity (package:flutter/src/widgets/scroll_position.dart:876:9)
#11367  _NestedScrollCoordinator.beginActivity (package:flutter/src/widgets/nested_scroll_view.dart:652:16)
#11368  _NestedScrollCoordinator.jumpTo (package:flutter/src/widgets/nested_scroll_view.dart:885:5)
#11369  ScrollController.jumpTo (package:flutter/src/widgets/scroll_controller.dart:172:16)
#11370  ScrollAbsorber.absorbScrollNotification (package:demo/utils/scroll_absorber.dart:21:29)
#11371  _KantoTabState.build.<anonymous closure> (package:demo/screens/main_screen/tabs/kanto_tab/kanto_tab.dart:46:30)
#11372  Element.visitAncestorElements (package:flutter/src/widgets/framework.dart:4091:39)
#11373  Notification.dispatch (package:flutter/src/widgets/notification_listener.dart:83:13)
#11374  ScrollPosition.didUpdateScrollDirection (package:flutter/src/widgets/scroll_position.dart:925:110)
#11375  _NestedScrollCoordinator.updateUserScrollDirection (package:flutter/src/widgets/nested_scroll_view.dart:642:16)
#11376  _NestedScrollCoordinator.applyUserOffset (package:flutter/src/widgets/nested_scroll_view.dart:995:5)
#11377  ScrollDragController.update (package:flutter/src/widgets/scroll_activity.dart:387:14)
#11378  ScrollableState._handleDragUpdate (package:flutter/src/widgets/scrollable.dart:646:12)
#11379  DragGestureRecognizer._checkUpdate.<anonymous closure> (package:flutter/src/gestures/monodrag.dart:449:55)
#11380  GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)
#11381  DragGestureRecognizer._checkUpdate (package:flutter/src/gestures/monodrag.dart:449:7)
#11382  DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:298:9)
#11383  PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:94:12)
#11384  PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:139:9)
#11385  _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:539:8)
#11386  PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:137:18)
#11387  PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:123:7)
#11388  GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:439:19)
#11389  GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:419:22)
#11390  RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:322:11)
#11391  GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:374:7)
#11392  GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338:5)
#11393  GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296:7)
#11394  GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279:7)
#11398  _invoke1 (dart:ui/hooks.dart:169:10)
#11399  PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#11400  _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
(elided 3 frames from dart:async)
Handler: "onUpdate"
Recognizer: VerticalDragGestureRecognizer#e89e0
  start behavior: start

@rikai-trongpq this is not relate to this issues so ask me on medium please I will delete comment about my own solution.

hmm @rikai-trongpq maybe the new flutter version makes this breaking change. I will check it later thanks for report

@meokg456 your answer is highly underrated. I just spent 2h searching for this 👍
For those of you, who are lazy, here is a class you can copy paste based on the afore mentioned solution.

add an individual ScrollController for your underlaying ScrollView (eg. CustomScrollView, SingleChildScrollView,...)
wrap your scrollView with _NestedFix
replace RoundEditPage.nestedScrollViewKey with your own   static final nestedScrollViewKey = GlobalKey();
add this static key in the NestedScrollView.

Code

I following your code and getting an error if my list in my tab have 1 item (or number of item could not scroll)
======== Exception caught by gesture ===============================================================
The following assertion was thrown while handling a gesture:
'package:flutter/src/widgets/scroll_position.dart': Failed assertion: line 917 pos 12: 'activity!.isScrolling': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      ScrollPosition.didOverscrollBy (package:flutter/src/widgets/scroll_position.dart:917:12)
#3      _NestedScrollPosition.applyFullDragUpdate (package:flutter/src/widgets/nested_scroll_view.dart:1261:7)
#4      _NestedScrollCoordinator.applyUserOffset (package:flutter/src/widgets/nested_scroll_view.dart:1050:31)
#5      ScrollDragController.update (package:flutter/src/widgets/scroll_activity.dart:387:14)
#6      ScrollableState._handleDragUpdate (package:flutter/src/widgets/scrollable.dart:646:12)
#7      DragGestureRecognizer._checkUpdate.<anonymous closure> (package:flutter/src/gestures/monodrag.dart:449:55)
#8      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)
#9      DragGestureRecognizer._checkUpdate (package:flutter/src/gestures/monodrag.dart:449:7)
#10     DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:298:9)
#11     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:94:12)
#12     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:139:9)
#13     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:539:8)
#14     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:137:18)
#15     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:123:7)
#16     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:439:19)
#17     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:419:22)
#18     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:322:11)
#19     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:374:7)
#20     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338:5)
#21     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296:7)
#22     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279:7)
#26     _invoke1 (dart:ui/hooks.dart:169:10)
#27     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#28     _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
(elided 5 frames from class _AssertionError and dart:async)
Handler: "onUpdate"
Recognizer: VerticalDragGestureRecognizer#14cc7
  start behavior: start
====================================================================================================

any update?

Its May 2022 and I am still having this same issue.

Here is my detailed solution you guys can try it. https://medium.com/@meokg456/how-to-use-nestedscrollview-tabbarview-and-automatickeepaliveclientmixin-in-sliverappbar-423002ba659e

This is not working. Could you please share another link. I need this solution

If anyone still trying to solve this issue here is the solution by @meokg456 https://github.com/meokg456/NestedScrollViewBugFixDemo

still get the issue in Flutter version 3.0.4

This bug is still reproducible on Flutter 3.3.4with Dart 2.18.2.
I'm not using AutomaticKeepAliveClientMixin, just DefaultTabController with NestedScrollViewand TabBar with TabView on the body.
The TabView children does not have AutomaticKeepAliveClientMixin. Just a stateless widget.
All the pages scroll together, scrolling only one. And sometimes have this crash:
======== Exception caught by gesture ===============================================================
The following assertion was thrown while handling a gesture:
'package:flutter/src/widgets/scroll_position.dart': Failed assertion: line 932 pos 12: 'activity!.isScrolling': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      ScrollPosition.didOverscrollBy (package:flutter/src/widgets/scroll_position.dart:932:12)
#3      _NestedScrollPosition.applyFullDragUpdate (package:flutter/src/widgets/nested_scroll_view.dart:1290:7)
#4      _NestedScrollCoordinator.applyUserOffset (package:flutter/src/widgets/nested_scroll_view.dart:1077:31)
#5      ScrollDragController.update (package:flutter/src/widgets/scroll_activity.dart:386:14)
#6      ScrollableState._handleDragUpdate (package:flutter/src/widgets/scrollable.dart:671:12)
#7      DragGestureRecognizer._checkUpdate.<anonymous closure> (package:flutter/src/gestures/monodrag.dart:483:55)
#8      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:253:24)
#9      DragGestureRecognizer._checkUpdate (package:flutter/src/gestures/monodrag.dart:483:7)

I still think that this is an "half-bug" at best, just add a controller and everything works as intended

@iapicca , I don't think it works.
See your example. It's not scrollable. The list is locked (vertical) and can't scroll horizontal to change the tab page.

@iapicca , I don't think it works.
See your example describred here. It's not scrollable. The list is locked (vertical) and can't scroll horizontal to change the tab page.

@marcellocamara
because I didn't implement it as it wasn't part of the issue, I've updated the gist, please try again the dartpad
everything works as intended

@iapicca
Thanks for your reply, with the example.
But, I found an issue on your example (and it's also my specific app problem).
On your example, we cannot scroll all together, only the list widget and the red area (I didn't understand the objective of this read area).
Add an expandedHeight and a flexibleSpace to the SliveAppBar, to scroll everything together.
See, the another list starts with the first item and the red area hidded:
https://user-images.githubusercontent.com/18273071/196083090-29427c73-21c1-433f-9d4e-dfd34b357b45.mov

I made a solution based on @meokg456 's article and I also added some snap effects to app bar (snap to closest or snap by direction).
gist:
https://gist.github.com/maRci002/d1565b889f67a5ce3ff0f942e9bf5822
dartpad:
https://dartpad.dartlang.org/?id=d1565b889f67a5ce3ff0f942e9bf5822
For instance here is SnapBehavior.closest:
https://user-images.githubusercontent.com/8436039/200548956-abcaee0e-3504-4ae1-9036-8f809a2be1d8.mp4

this problem still reproducible until now, and my Flutter and Dart version info is below
Flutter 3.7.0-5.0.pre.22 • channel master • https://github.com/flutter/flutter.git
Framework • revision 4a15111660 (2 days ago) • 2022-12-11 07:59:27 -0500
Engine • revision 0795bccae8
Tools • Dart 3.0.0 (build 3.0.0-12.0.dev) • DevTools 2.20.0

I use a NestedScrollView, inside which is a TabBarView with two CustomScrollView children.
import 'package:flutter/material.dart';

class DemoPage extends StatefulWidget {
  @override
  State<DemoPage> createState() => _BangumiInfoPageState();
}

class _BangumiInfoPageState extends State<DemoPage>
    with AutomaticKeepAliveClientMixin, TickerProviderStateMixin {
  late TabController _tabBarController;
  late ScrollController _mainScrollController;
  @override
  void initState() {
    super.initState();
    _tabBarController = TabController(length: 2, vsync: this);
    _mainScrollController = ScrollController();
  }

  // Set this page to be cached
  @override
  bool get wantKeepAlive => true;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // I used NestScrollView
      body: NestedScrollView(
      // No matter if I use controller, the problem still exist
        controller: _mainScrollController,
        physics: const BouncingScrollPhysics(),
        headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
          return [
            SliverOverlapAbsorber(
              handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
              // I used a SliverAppBar
              sliver: SliverAppBar(),
            ),
          ];
        },
        body: TabBarView(
            physics: BouncingScrollPhysics(),
            controller: _tabBarController,
            children: [
              // My two page
              CustomScrollView(),
              CustomScrollView(),
            ]),
      ),
    );
  }
}

I attempted to solve the problem by adding a ScrollController to the two CustomScrollViews, which did indeed prevent the two pages from scrolling together. However, this caused the NestedScrollView to stop functioning properly - when I scrolled the CustomScrollView part, the SliverAppBar did not move with it.
I guess the reason for this may be that the NestedScrollView does not allow us to pass a ScrollController to the inner ScrollView on our own. The NestedScrollView is responsible for coordinating the scrolling behavior of both the outer and inner ScrollViews, but once we specify a ScrollController for the inner ScrollView, it can no longer coordinate their scrolling behavior properly.

I am a new person. I can't believe the problems have persisted for 3 years. =]]

imho this issue shouldn't be open at all, just use a key and everything works just fine (code sample)

This solution doesn't benefit from NestedScrollView since Header won't be scrolled at all.

Reproducible on stable 3.3 and master 3.7

logs
Launching lib/main.dart on Chrome in debug mode...
This app is linked to the debug service: ws://<IP_ADDRESS>:49305/ifeyLlT9fbI=/ws
Debug service listening on ws://<IP_ADDRESS>:49305/ifeyLlT9fbI=/ws
💪 Running with sound null safety 💪
Connecting to VM Service at ws://<IP_ADDRESS>:49305/ifeyLlT9fbI=/ws
══╡ EXCEPTION CAUGHT BY ANIMATION LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown while notifying status listeners for AnimationController:
The provided ScrollController is currently attached to more than one ScrollPosition.
The Scrollbar requires a single ScrollPosition in order to be painted.
When the scrollbar is interactive, the associated ScrollController must only have one ScrollPosition
attached.The provided ScrollController must be unique to one ScrollView widget.
When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 288:49      throw_
packages/flutter/src/widgets/scrollbar.dart 1630:9                                <fn>
packages/flutter/src/widgets/scrollbar.dart 1654:14                               [_debugCheckHasValidScrollPosition]
packages/flutter/src/widgets/scrollbar.dart 1564:14                               [_validateInteractions]
packages/flutter/src/animation/listener_helpers.dart 240:19                       notifyStatusListeners
packages/flutter/src/animation/animation_controller.dart 822:7                    [_checkStatusChanged]
packages/flutter/src/animation/animation_controller.dart 756:5                    [_startSimulation]
packages/flutter/src/animation/animation_controller.dart 619:12                   [_animateToInternal]
packages/flutter/src/animation/animation_controller.dart 467:12                   forward
packages/flutter/src/widgets/scrollbar.dart 1973:37                               [_handleScrollNotification]
packages/flutter/src/widgets/notification_listener.dart 130:22                    onNotification
packages/flutter/src/widgets/framework.dart 3194:18                               dispatchNotification
packages/flutter/src/widgets/framework.dart 3197:13                               dispatchNotification
packages/flutter/src/widgets/framework.dart 4558:24                               dispatchNotification
packages/flutter/src/widgets/notification_listener.dart 60:13                     dispatch
packages/flutter/src/widgets/scroll_activity.dart 92:90                           dispatchScrollUpdateNotification
packages/flutter/src/widgets/scroll_position.dart 917:5                           didUpdateScrollPositionBy
packages/flutter/src/widgets/nested_scroll_view.dart 1326:5                       applyClampedPointerSignalUpdate
packages/flutter/src/widgets/nested_scroll_view.dart 953:21                       pointerScroll
packages/flutter/src/widgets/nested_scroll_view.dart 1427:24                      pointerScroll
packages/flutter/src/widgets/scrollable.dart 799:16                               [_handlePointerScroll]
packages/flutter/src/gestures/pointer_signal_resolver.dart 90:7                   resolve
packages/flutter/src/gestures/binding.dart 466:29                                 handleEvent
packages/flutter/src/gestures/binding.dart 440:14                                 dispatchEvent
packages/flutter/src/rendering/binding.dart 336:11                                dispatchEvent
packages/flutter/src/gestures/binding.dart 395:7                                  [_handlePointerEventImmediately]
packages/flutter/src/gestures/binding.dart 357:5                                  handlePointerEvent
packages/flutter/src/gestures/binding.dart 314:7                                  [_flushPointerEventQueue]
packages/flutter/src/gestures/binding.dart 295:7                                  [_handlePointerDataPacket]
lib/_engine/engine/platform_dispatcher.dart 1207:13                               invoke1
lib/_engine/engine/platform_dispatcher.dart 244:5                                 invokeOnPointerDataPacket
lib/_engine/engine/pointer_binding.dart 167:39                                    [_onPointerData]
lib/_engine/engine/pointer_binding.dart 480:14                                    [_handleWheelEvent]
lib/_engine/engine/pointer_binding.dart 799:7                                     <fn>
lib/_engine/engine/pointer_binding.dart 470:43                                    <fn>
lib/_engine/engine/pointer_binding.dart 223:80                                    <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 367:37  _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 372:39  dcall
The AnimationController notifying status listeners was:
  AnimationController#a517b(▶ 0.000)
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Another exception was thrown: The provided ScrollController is currently attached to more than one ScrollPosition.
Application finished.
Exited

flutter doctor -v (mac)
[✓] Flutter (Channel master, 3.7.0-13.0.pre.131, on macOS 13.1 22C65 darwin-arm64, locale en-IN)
    • Flutter version 3.7.0-13.0.pre.131 on channel master at /Users/mahesh/Development/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0196e6050b (2 days ago), 2022-12-31 11:10:23 -0500
    • Engine revision 932591ec04
    • Dart version 3.0.0 (build 3.0.0-76.0.dev)
    • DevTools version 2.20.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks
      and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

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

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

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

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 13.1 22C65 darwin-arm64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 108.0.5359.124

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

• No issues found!

[✓] Flutter (Channel stable, 3.3.9, on macOS 12.6 21G115 darwin-arm, locale en-IN)
    • Flutter version 3.3.9 on channel stable at /Users/mahesh/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (24 hours ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

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

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

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

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 12 Pro (mobile) • 026D5789-9E78-4AD5-B1B2-3F8D4E7F65E4 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.6 21G115 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 107.0.5304.110

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

• No issues found!

Looks related to https://github.com/flutter/flutter/issues/62833

Upvote #102003 issue to get priority.
I asked to add this issue also for NestedScrollView rewrite.

Here is a workaround which is based on https://github.com/flutter/flutter/issues/118713#issuecomment-1416505982
Check out DartPad (enabled touch events on desktop to simulate scroll by touch)
https://user-images.githubusercontent.com/8436039/216848080-02f84e56-87a7-48d4-9ebc-197fbe2cc437.mp4

This issue is still here today in 3.10

I think this is another case of https://github.com/flutter/flutter/issues/40740. I have been scanning the issue tracker looking to consolidate all of these so we can see about a proper solution. I am going to close this since https://github.com/flutter/flutter/issues/40740 has the most upvotes, let's follow up there. (I am adding a list there of issues like these to be linked)
Thanks for providing test cases, updates and work arounds! :)


Indentation problem

Thanks for this plugin :-)
I guess this is indented wrong:
     text.length > 20
            ? text.substring(0, 19) + '...'
            : text)(subjects.join(gettext(',')))}
            ({Math.log2(this.props.data.key[index] * 2 || 1).toFixed().persian()} -

last 2 lines have an extra indentation.

Thanks report!
I try to make sure

 character?

Oh such a typo. Sorry for taking your time on this.
If it's alright I wanna check another issue with you:
const a =

    {1
            ? this.props.data.answers[column * 30 + row] & (1 << option)
            : 2
    }

;

I guess lines starting with ? and : have an extra indentation here.

Take a look at this one too, it may be related:
const a =
    {1 +\
        2}
    ;

I guess 2} has correct indentation but  doesn't look good (extra indentation.)

Please let me know if I should create separate issues. Found another one:
const a = <button
    x={true ? 1 : 2}
y={2}>
    {gettext('School')}
    </button>;

wrong indentation started in line 3.

humm... Thank you report. I try to fix this problem.

Maybe, indent not only, syntax has issue. So break indent.

Partially fixed

@MaxMEllon thanks, looking forward on this.

@sassanh I already pushed to the master 😄
I fixed it with #5.

Fixed!

Thanks :-)


[FR] Allow interval every x days or every x weeks

Allow timeInject to have an interval every x days or every x weeks.
Source:
https://homematic-forum.de/forum/viewtopic.php?p=673568#p673568

Is integrated in the 2.0.0-beta and can be installed, see Releases Information.


change(db): Use bloom filters for database index lookups

TODO
This change might need a state version increment - check the quick cached state test.
Motivation
We need Zebra to sync faster for the cached state lightwalletd tests.
Using bloom filters for index lookups makes it about 5% faster.
Bloom filters are a recommended optimisation.
Specifications
RocksDB can do lookups using a bloom filter, which can improve read performance:
https://docs.rs/rocksdb/latest/rocksdb/struct.BlockBasedOptions.html#method.set_bloom_filter
See also:
https://zhangyuchi.gitbooks.io/rocksdbbook/content/RocksDB-Tuning-Guide.html
Solution

Use a bloom filter for database queries

I ran a full sync test to check performance:

https://github.com/ZcashFoundation/zebra/actions/runs/2088446513

It finished in 5h50m, compared with most syncs that are around 97% - 99% at 6h.
Alternatives
We should also try ribbon filters, to see if they are even faster.
Review
Anyone can review this PR.
This PR is based on PR #3999.
Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Existing Tests Pass
[ ] Sync is faster

Ribbon filters are 3% faster, so we'll do #4040 instead.


added scrolling to page links

while clicking on page links 1,2,3.... the page will scroll to the top to show the page change.
Demo: http://gautamkrishnar.github.io/microsoft.github.io/
fixes:#127

LGTM. Merging change.


Conditional counts not working on update

Hey guys, I am having some trouble with a conditional column.. Here's the definition
class Product < ApplicationRecord
  has_many :offers, inverse_of: :product, dependent: :destroy
end

class Offer < ApplicationRecord
  scope :enabled, -> { where(enabled: true) }

  counter_culture :product,
                  column_name: proc { |offer| offer.enabled? ? 'active_offers_count' : nil },
                  column_names: { Offer.enabled => :active_offers_count }
end

And here's a simple test:
irb(main):008:0> Product.first.active_offers_count
=> 0
irb(main):009:0> Product.first.offers.update_all(enabled: true)
=> true
irb(main):008:0> Product.first.active_offers_count
=> 0
irb(main):011:0> Offer.counter_culture_fix_counts
=> [{:entity=>"Product", :id=>1, :what=>:active_offers_count, :wrong=>0, :right=>1}]
irb(main):008:0> Product.first.active_offers_count
=> 1

As you can see, it only works if you manually fix the numbers..
What am I missing?

Arrrg.. I completely forgot that update_all doesn't trigger AR callbacks :(
My bad.. It works fine

Yup that would be the problem. 🙂


Remove extra space character in mode withBOM:true #190

Coverage remained the same at 100.0% when pulling c5d96507ee1b3b01c53c530b22c21c32c6276894 on daniel-zahariev:master into d7ad29fb6b24cd23ffc78eab22a27859be526e06 on zemirco:master.

Thanks!

could issue a new release based on this PR please?

Sure 👍

v3.11.2 published

thanks!


revise jaxpr pretty printing to old way of handling call primitives

from jax import make_jaxpr, jit

@jit
def f(x):
  return x + 2
print(make_jaxpr(f)(3))

Before this PR:
{ lambda  ; a.
  let b = xla_call[ backend=None
                    call_jaxpr={ lambda  ; a.
                                 let b = add a 2
                                 in (b,) }
                    device=None
                    name=f ] a
  in (b,) }

After this PR:
{ lambda  ; a.
  let b = xla_call[ backend=None
                    device=None
                    name=f ] a
        { lambda a.
          let b = add a 2
          in (b,) }
  in (b,) }

This is in effect reviving the old way of pretty-printing (what were then) subjaxprs for calls. I like it better because otherwise there's too much indenting too quickly.
Also, I tweaked it so that when a jaxpr doesn't have constvars we avoid printing the semicolon and related spaces, so this:
lambda  ; a.

becomes this:
lambda a.

Since we cons-convert most jaxprs these days, it reduces the visual noise for the common case.

Yeah, the significant indenting has really bugged me.
Actually, in the first commit of this PR (8c828c0) I experimented with changing the handling of jaxpr params in the initial-style control flow primitives too, so that we had
Before:
{ lambda  ; a.
  let b = ge a 0.0
      c = add a 1.0
      d = add a 2.0
      e = cond[ false_jaxpr={ lambda  ; b a.
                              let c = sub a b
                              in (c,) }
                linear=(False, False, False, False)
                true_jaxpr={ lambda  ; b a.
                             let c = add a b
                             in (c,) } ] b a c a d
  in (e,) }

After:
{ lambda  ; a.
  let b = ge a 0.0
      c = add a 1.0
      d = add a 2.0
      e = cond[ linear=(False, False, False, False) ] b a c a d
        false_jaxpr
        { lambda  ; b a.
          let c = sub a b
          in (c,) }
        true_jaxpr
        { lambda  ; b a.
          let c = add a b
          in (c,) }
  in (e,) }

That is more uniform at least, though perhaps it can be tuned up a bit. (I reverted it because I thought just changing call primitives was the higher priority, since nested jits are so common whereas control flow primitives are less common, but I think I like less indentation for both.)
WDYT?

This deserves to be explained in https://jax.readthedocs.io/en/latest/jaxpr.html (that is a bit painful, you'd have to run the test mentioned at the top of the file and copy and paste jaxpr examples; I can do it)

Thanks for the kind offer but, no I insist that I do it! This is just me mucking around, don't let my experiments cost you time.

I've wanted this a few times in the past few days. Suppressing default values sounds hard, since we don't really have a crisp notion of default params (just Python default kwarg values) and we don't necessarily surface XLA's defaults consistently, so maybe we should merge this without that?

Yeah, and I think @apaszke 's pretty prints would be a lot nicer with this too. I'll see if I can follow up on it soon.

Reviving this thread, I just ran into a jaxpr with 1000s of indentation chars and it's super annoying! +1 to landing as-is and iterating, I think any change will be better than what we have.

Following up in #4513.


Expression as Child of TypeDecl under Method Bug

Similar to #2413, if an expression is a child to a type declaration where the contains edge is the TypeDecl and not the Method then a class cast exception is thrown. This circumstance is common in jssrc2cpg.
Resolves #2420

@max-leuthaeuser Same code snippet in the issue that was similarly resolved should be sufficient: https://github.com/joernio/joern/issues/2407#issuecomment-1479505188
The reason this was not picked up earlier is that the test suite I ran it on was not a data-flow test suite. The expression is not a direct AST child to the type declaration I believe, it is more so that it is following CONTAINS edges and the first node is a type declaration not a method.


Creating heroku and deployment layer after the app was created

First of all, thanks for your work! Suspenders are cool :)
I've played with it and found myself in situation where the app was initially created without the --heroku option and the decision to deploy was made a little bit later.
Of course, it is not big deal to set up all the deployment stuff manually; but I thought that it will be great if it is possible to just use suspenders generator to create deployment layer anytime later after the app was built (including such goodies as your ./bin/deploy script).
I understand that it may increase overall complexity of the lib and may condradict with the philosophy of keeping suspenders as simple as possible; However, I'll be glad to hear your opinion about this possible enhancement.

We have definitely kicked around the idea of including some kind of standalone generators with Suspenders -- see https://github.com/thoughtbot/suspenders/pull/511#issuecomment-72874292 -- so I feel like this could be accomplished using such a mechanism. That said, no work has been done on that yet.

Thank you for the quick reply, I'll read through the discussion.

I'd like to see this. A PR like #511 would definitely help. Closing for now as I don't expect to work on this in the foreseeable future, but happy to test drive and polish PRs together!


[data provider issue] UCI Nuxeo project folders clean-up to "Publish" & "Do Not Publish"

Seeing some new records in the Nuxeo project folders, likely not intended for publication: https://help.oac.cdlib.org/a/tickets/137389
OCRH collections

[x] Cochems (Edward W.) Photographs

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/1a06db8c-2021-49ca-825a-6e7a1958297d/view_documents
Expecting 534 records, but picking up 1,107 records. We are seeing 573 additional records.
Published Calisphere collection: https://calisphere.org/collections/19

[x] Gerhardt (Wally) Photograph Collection

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/b82ca173-803d-4d1a-a766-ca23bb5347ec/view_documents
Expecting 1,432 records, but picking up 2,864 records. We are seeing 1,432 additional records.
Published Calisphere collection: https://calisphere.org/collections/21

SEAA

[x] Veronique Saunier's "Still Lives" Collection (emailed about this earlier)

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/490afd05-fde8-418b-8bda-7a5e05c68744/view_documents
Expecting 63 records, but picking up 716 records. We are seeing 653 additional records.
Published Calisphere collection: https://calisphere.org/collections/26654

[x] James A. Schill collection of photographs and a pocket diary of Southeast Asian refugees

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/ff497d0d-916c-45fa-8cca-ed177f8a3097/view_documents
Note: Within this Nuxeo folder, there is a "don't publish" folder.  If you move the remaining records into a "Publish" folder, please let us know so that we can update where we harvest the records from.
Expecting 3 records, but picking up 55 records. We are seeing 52 additional records.
Published Calisphere collection: https://calisphere.org/collections/27325

SCA

[ ] Tamblyn (Christine) papers

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/eacb978e-2da5-4f85-99a6-4fb2a57c3f53/view_documents
Note: This has a "for merritt" folder inside.
Expecting 2 records, but picking up 7 records. We are seeing 5 additional records.
Published Calisphere collection: https://calisphere.org/collections/27549

UA

[x] Collection on the Anteater Mascot and Other University Symbols (University of California, Irvine)

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/98f61548-f9b4-420a-8098-fb4756131a65/view_documents
Note: There is a "for merritt" folder in here.
Expecting 10 records, but picking up 13 records. We are seeing 3 additional records.
Published Calisphere collection: https://calisphere.org/collections/4734

[x] University of California, Irvine Communications Photographs, Staff Photographer Series

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/044ca97f-7928-484a-bf8a-1b8bd053bebd/view_documents
Note: This has three folders: Do Not Publish; Series 1; Series 2
Expecting 91 records, but picking up 147 records. We are seeing 56 additional records.
Published Calisphere collection: https://calisphere.org/collections/26880
Test collection on stage: https://calisphere-stage.cdlib.org/collections/26880

[x] University Communications audio and video recordings (University of California, Irvine)

Here is the Nuxeo folder we are harvesting from: https://nuxeo.cdlib.org/nuxeo/nxdoc/default/a1dc09e2-4d2a-4995-b799-f9038eb16f43/view_documents
Expecting 26 records, but picking up 33 records. We are seeing 7 additional records.
Published Calisphere collection: https://calisphere.org/collections/26711

https://calisphere.org/collections/26713/
The Nuxeo project folder for this Slides Series collection got moved to a Do Not Publish folder.
Question out to UCI about which Nuxeo folder to harvest this collection from.

Here's this digital collection of the Slides series, published in Calisphere: https://calisphere.org/collections/26713/
From which Nuxeo project folder path should we be harvesting from?
(We were previously harvesting from the Nuxeo folder path: "asset-library/UCI/SCA_UniversityArchives/AS-061/Slides" -- but note that this has now been moved to the Do Not Publish sub-folder)

Elvia reviewed the 27 additional items that are getting picked up in 26713: https://docs.google.com/spreadsheets/d/1DSc4i2zX-9caExrt8vbfxB25izIt7eXelAaeigCbVOI/edit#gid=1961145181
Updated 26713 folder path to: asset-library/UCI/SCA_UniversityArchives/AS-061/Publish/Slides
Updated 26880 folder path to: asset-library/UCI/SCA_UniversityArchives/AS-061/Publish/Series_2_StaffPhotographerImages
Reharvesting 26713 in process.


enable strip of debug information from kernel modules (saves >312MB)

Can you just disable CONFIG_DEBUG_INFO=y https://github.com/ayufan-pine64/linux-pine64/blob/my-hacks-1.2/arch/arm64/configs/sun50iw1p1smp_linux_defconfig#L3364?


change dllexport controlling macro to use _WIN32

use _WIN32 which is provided by msvc compiler, instead of WIN32 which is user configurable, and omitted by default on some x64 builds.
I'm still needing to do:
#define YAML_DECLARE_STATIC
#include <yaml.h>
in my own code on windows builds to avoid dllimport when using libyaml as a static library, but this is acceptable.

It seems this was fixed at some point, but the fix got lost:
Commit 52e34e2b73bef427dd85915199b7d97fc40d3aee from 2011 by Kirill changed it to _WIN32
Commit 119b7b6adfa72552d6dc7eb03f402ff5cf8f9fa6 changed it back to WIN3 accidentally, I assume.
So I think this should be merged.

Thanks, merged!


Compute Decider's CM challenges in Groth16 circuit, link G16 & KZG proofs in Onchain Decider, refactor CommitmentScheme trait

Refactor commitment package

Refactor Commitment trait and the kzg, ipa, pedersen impls
Add methods to prove & verify given challenges (not computing them in-method)

Add KZG challenges computation in decider_eth_circuit
Add cmE & cmW KZG proving & verification in DeciderEth
Link Decider's Groth16 proof & KZG proofs data
Fix point to bytes arkworks inconsistency
Patch ark_curves to use a cherry-picked version with bn254::constraints & grumpkin for v0.4.0 (once arkworks v0.5.0 is released this will no longer be needed)

Thanks a lot for the review! ^^
Regarding

could be nice to avoid computing them multiple times across the circuit

they (the kzg challenges) are not computed multiple times across the circuit, only once (in-circuit).
Outside the circuit I agree that there is no need for the verifier to compute them, updated to have only the prover computing them (appart from in-circuit) and providing them to the verifier.

Thanks a lot for the review! ^^
Regarding

could be nice to avoid computing them multiple times across the circuit

they (the kzg challenges) are not computed multiple times across the circuit, only once (in-circuit). Outside the circuit I agree that there is no need for the verifier to compute them, updated to have only the prover computing them (appart from in-circuit) and providing them to the verifier.

I think I may have misunderstood something? Are those KZG challenges supposed to be different from what's computed within the circuit?

The circuit is in fact checking that they are correctly computed, and the prover computes them in order to pass them as public inputs, but in-circuit they are not computed more than once.
But you are right in that the prover outside the circuit is computing them twice, one in the decider_eth::prove and another time also inside the same method but in the other submethod from_nova.
Good catch! Updated it here

The circuit is in fact checking that they are correctly computed, and the prover computes them in order to pass them as public inputs, but in-circuit they are not computed more than once. But you are right in that the prover outside the circuit is computing them twice, one in the decider_eth::prove and another time also inside the same method but in the other submethod from_nova. Good catch! Updated it here

Sorry I think my comment might have been unclear and made you confused, I indeed meant that the challenges where computed three different times within the circuit, the prover and the verifier.
LGTM!

(for the record, updated the PR moving the computation of the challenge r of the final NIFS.V into the circuit, to avoid needing to compute it by the verifier, and thus avoiding computing Poseidon in the smart contract)

Oh right! Absolutely! My bad, thanks for pointing it out!
Currently the code is checking:
(only listing for $W_{i+1}.W,~ U_{i+1}.\overline{W}$ but same applies for $E, \overline{E}$)

[out-circuit] the instance witness $W_{i+1}$ and the challenge $c_W$ are used to generate the KZG proofs at decider_eth.rs#L147

$(\pi_{KZG, W},~eval_W) \leftarrow KZG.P(c_W, W_{i+1}.W)$

where $eval_W=p_W(c_W)$, with $p_W(X)\in \mathbb{F}[X]$ being the interpolated polynomial from the vector $W_{i+1}.W$

[in-circuit] it is checked the relaxed r1cs relation using $W_{i+1}$ & $U_{i+1}$, at decider_eth_circuit.rs#L377

$check~RelaxedR1CS(W_{i+1}, U_{i+1}) ==true$

[in-circuit] the $U_{i+1}$ is used also to compute the KZG challenges (it checks their correct computation), at decider_eth_circuit.rs#L464

$c_W \leftarrow H(U_{i+1}.\overline{W})$

[out-circuit] verifier checks the KZG proofs, using the $U_{i+1}$ and the challenges, at decider_eth.rs#L216

$KZG.V(U_{i+1}.\overline{W}, c_W, (\pi_{KZG,W},~eval_W))==true$

and so, as you pointed out, it's missing to check:

$eval_W == p_W(c_W)$ (and same for $eval_E, c_E$)

Will add it! Again, thanks a lot for pointing this!

Update on this. Added the code to check in-circuit the $eval_W==p_W(c_W),~ eval_E==p_E(c_E)$: commit 9fb09628
But, currently facing an issue when interpolating (in-circuit) the polynomials to be evaluated, which seems to come from having a domain bigger than 2^11. Just opened the issue #80 to keep track of it, and also sent a message to arkworks's discord server hoping to find a solution.
I'm thinking that if in a couple of days we don't find a solution we can merge the current PR as it is, and we can work on #80 in parallel to other stuff that depends on the current PR (ie. the Solidity verifier).

(commented it over chat, we're merging this to unblock other tasks, and in parallel we will work on #80 )


Wrong group for /usr/local

Hello,
I try to use your role with this Playbook https://github.com/fubarhouse/mac-dev-playbook but I have one issue :
In  ansible-role-homebrew/tasks/main.yml you check if the group is admin
- name: Ensure Homebrew parent directory has correct permissions (on non-'High Sierra' versions of Mac OS X).
  file:
    path: "{{ homebrew_prefix }}"
    owner: root
    group: admin    <--------
    state: directory
    mode: 0775
  become: yes
when: "not ansible_distribution_version.startswith('10.13')"

I would like to know why this value, on the differents Mac I manage they are all at wheel group => root  wheel  /usr/local
Do I have to change it ? but not seems to be the right solution
or do I have to make a PR to make this value configurable in your role ?
Thank you.
Matthéo

You do not need an external role for homebrew in recent versions on Ansible.
see: http://docs.ansible.com/ansible/latest/homebrew_module.html

@philoserf, not sure what you are referring to. The module you link to is only for installing packages using Homebrew, this role is for installing Homebrew itself. Ansible does not do this without this/a role.

@philoserf, not sure what you are referring to. The module you link to is only for installing packages using Homebrew, this role is for installing Homebrew itself. Ansible does not do this without this/a role.

Homebrew pre-1.0.0 required /usr/local to be writable. If the group is set to wheel it seems this happens with the current installation setup on <10.12. Default users are only in the admin group and not the wheel group.
Not sure what they changed in 10.13 though since according to this https://github.com/geerlingguy/ansible-role-homebrew/pull/75, the defaults work.
What homebrew does in the installation script seems like a terrible mess https://github.com/Homebrew/install/blob/master/install#L233:L250

Does the role run successfully on 10.12 if the group is set to wheel? If not, the role would have to mimic that install script which I doubt @geerlingguy wants to do :D

I just made a PR to make these values configurable: https://github.com/geerlingguy/ansible-role-homebrew/pull/79

So, can we figure out which values which version of Mac OS should take? Or does this differ from installation to installation, even if those use the same version of Mac OS?
If there is a way to determine the correct values for each version of Mac OS, I think the role should take care of it and the defaults should work regardless of version. Having an additional option to override this with custom values would be acceptable though, I think.
So, could we load the defaults according to Mac OS version, if no custom values are specified? Ideally, as a user, I would not want to have to deal with this, having to know which group to use. If there is a way around it, anyway.

@DnD-Merlin did you verify that the playbook works in full using wheels as the group? I have a feeling it doesn't based on #76 and that means the role would have to mimic the Homebrew install script which looks horribly unstable for future updates.

Sorry but I am quite new at Ansible which command I have to run to test this role ?

@oxyc The playbook alone seems to be working fine, I just have to specify the password : https://stackoverflow.com/a/29799758/3531064
So maybe the error is elsewhere, I use this repository https://github.com/fubarhouse/mac-dev-playbook/ which is prompting the error. I will try with the original one

Using the original repository everything works fine ! My bad.
Thank you for your time and answers, I will close this one and my PR.


libuv 1.49.0 breaks dnstap test in BIND 9

Version: 1.49.1
Platform: Fedora 40

In BIND 9, the upforwd system test started to fail with libuv 1.49.0:
2024-09-27 15:08:19 INFO:upforwd.test_upforwd     I:checking DNSTAP logging of UPDATE forwarded update replies (28)
2024-09-27 15:08:19 INFO:upforwd.test_upforwd     I:UQ=0 UR=1
2024-09-27 15:08:19 INFO:upforwd.test_upforwd     I:failed

I bisected libuv, and e5cb1d3d3d4ab3178ac567fb6a7f0f4b5eef3083 seems to be the culprit. I believe @bnoordhuis hunch in #4400 came true:

I'm somewhat worried this change may cause hard-to-debug regressions in existing programs

For CI consumption, we build libuv 1.48.0 with TSAN enabled for the TSAN image; for non-TSAN image, we pull libuv from Fedora that just got updated to 1.49.1.

Ugh. Any chance you can spot a small test case that reproduces the problem? I understand if the answer is "nope" 😅

I can work on making the system test shorter, so it's clearer what commands were used to trigger this in named, but I can't prepare a short test case based on named internals and libuv use. We need @oerdnj or some of his collegues. I'll file an internal issue, and we'll see if we can do anything on our side.

I'll take a look when I get back (in about week and half).

Maintainers, I would suggest to revert that commit and do a point release. Agree/disagree?

:+1:

Yes, I'll do it tomorrow.

This is odd, I can't imagine how that commit would break things, given that it only circumvented one system call read(2) and eliminated that latency. Unless, your test precisely needed that latency for some reason, I'd love to see a simple reproducer and find out the root cause in the end.

Does it access uv_backend_fd? There are some ways I could imagine an application (such as electron) might break the normal invariants depending on what they do with it?

From the code comments in bind9, there appears likely to be a synchronization error in their code occurring here:
https://gitlab.isc.org/isc-projects/bind9/-/blob/main/lib/isc/async.c#L60
The code comments mention that there is no seq-cst fence after the call to cds_wfcq_enqueue, but the implementation in bind9 assumes that there is one in uv_async_send (there never has been, but it maybe should have one because it is confusing not to have one):
https://github.com/urcu/userspace-rcu/blob/a84350f8f14be2a8e02457ccc59844fe0815abc7/include/urcu/wfcqueue.h#L301-L312

But there is a seq-cst memory barrier in uv_async_send() - we call atomic_fetch_add, twice.
It is true that it doesn't always issue that barrier - when the handle is already pending - but do you think that would explain it? Note the failure was on amd64 - strong memory model.

v1.49.2 is released: https://github.com/libuv/libuv/releases/tag/v1.49.2

The "cheap read" here can invalidate any guarantee about the behavior of the function, since that later code may not be reached:
https://github.com/libuv/libuv/blob/7e6590f31d800b8fdd8740f6a2a0e9a04a0a1e56/src/unix/async.c#L72-L74
Without a seq-cst fence, I wouldn't necessarily assume the relaxed read in this write-read pair to form a happens-before relationship, even with TSO, since that is specifically the one case (Stores may be reordered after relaxed loads) that makes it weaker than seq-cst: https://github.com/urcu/userspace-rcu/blob/a84350f8f14be2a8e02457ccc59844fe0815abc7/include/urcu/static/wfcqueue.h#L182-L199

What I mean is:

if the handle isn't pending (i.e., it's the first uv_async_send call), then a memory barrier is issued

if the handle is pending (second or later uv_async_send call), then a memory barrier won't help because the async_cb in the other thread can run in parallel with cds_wfcq_enqueue (or before, or after - indeterminate, basically)

IOW, any ordering bugs should already be present. It's conceivable eliding the read() syscall in the async_cb thread changed the timings enough to make it more visible but that's conjecture at this point. :-)

I don't know why, but libuv 1.49.0 and 1.49.1 were problematic for many FreeBSD BIND 9 users; see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282088. The update to 1.49.2 worked for most of them.

Thanks for the info, that points to 27134547ff (or rather, its revert in 18d48bc13c.) That's the only change in v1.49.2 that touches BSD.


Crawler detection improvement

Write the implementations and also write tests to validate.

This issue concerns the code present within CrawlerDetection.java
 which is too static in nature and which is not accurately capturing all of the Web crawlers which appear within HTTP. FTP, etc. logs.
We need to use a more intelligent mechanism for detecting Web crawlers within the PO.DAAC logs.

Any quick solution or suggestion right now.
Sent from my iPhone

On Aug 25, 2016, at 22:03, Lewis John McGibbney<EMAIL_ADDRESS>wrote:
This issue concerns the code present within CrawlerDetection.java
which is too static in nature and which is not accurately capturing all of the Web crawlers which appear within HTTP. FTP, etc. logs.
We need to use a more intelligent mechanism for detecting Web crawlers within the PO.DAAC logs.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

This is not an easy issue to tackle. I've been writing Web crawlers (and search engines) for years so have experienced this issue from both sides of the table.
Sites exist such as user-agents.org, robotstxt.org and botsvsbrowsers.com however unfortunately we've found that bot activity is too numerous and varied to be able to accurately filter it. If you want accurate download counts (or in our case dataset landing page hits/downloads), our best bet may be to push a requirement on PO.DAAC to require Javascript to trigger the download. That's basically the only thing that is going to reliably filter out the bots. It also means that we can catch the requests which are not intelligent enough to invoke JavaScript in order to acknowledge the download. It's also why all site traffic analytics engines these days are Javascript based.
This being said, we've actually modified Apache Nutch to interact with Javascript so we can (with Nutch) actually bypass Javascript download verification as well.
i think that this is a difficult issue... there is actually a bunch of research in this area. I will try to find some and post it here.

Another article I started reading http://searchengineland.com/7-fundamental-technical-seo-questions-to-answer-with-a-log-analysis-and-how-to-easily-do-it-245903

@Yongyao we need to make this a priority. Right now it takes forever.


fix building judys + judypn boots into SimpleInit

i am no developer/maintainer but fixing stuff is neat

Well done,

wonderful!


glowing-bear: 0.7.2 -> 0.9.0

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 119612 at f0c043cb run on x86_64-linux 1

1 package built successfully:

glowing-bear

1 suggestion:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/networking/irc/glowing-bear/default.nix:14:3:
   |
14 |   installPhase = ''
   |   ^


Remove unnecessary dependency from macOS/Conda binaries

This commit updates the dependency description on Conda package,
so that FFmpeg is installed only on platforms on which torchvision comes with the corresponding extension.

Currently, FFmpeg integration is enabled only for Linux.

https://github.com/pytorch/vision/blob/a8ebd0b3e69407e06ad4e8a4f2ade5147dda6628/setup.py#L366-L367

For binary packaging, even for Linux, it is excluded in wheel. (due to the lack of build-time dependency in CI)

https://github.com/pytorch/vision/actions/runs/6678010959/job/18148611653#step:14:106

The Linux/Conda package is still built with FFmpeg after this commit

https://github.com/pytorch/vision/actions/runs/6695315792/job/18190638421?pr=8077#step:9:199

@NicolasHug Review please.

@pmeier Thanks. I don't have a merge privilege. Could you merge it?


Mellanox hv_storvsc - how to change

Hello,
The mellanox settings check output from the JSON is suggesting the values are set with sysctl:
"set hv_storvsc.storvsc_ringbuffer_size=131072 and hv_storvsc.storvsc_vcpus_per_sub_channel=1024 in sysctl.conf"
They must be set with Kernel boot options (grub) as mentioned here:  https://www.suse.com/support/kb/doc/?id=000020248
Darryl

thank you!
fixed in version<PHONE_NUMBER>44


Added extended dialog: https://github.com/ioBroker/ioBroker.matter/is…

…sues/181
Added ioBroker vendor icon: https://github.com/ioBroker/ioBroker.matter/issues/192 Changed some texts: https://github.com/ioBroker/ioBroker.matter/issues/168 Make info closable
Make it possible to show always qr-code: https://github.com/ioBroker/ioBroker.matter/issues/138

Awesome. I also will update change log and update issues when I release