How to use this Plugin in ListView Builder

This is My HomeScreen,

There is the More Button, Which Captures the ScreenShot. code
I can Easily with the Plugin Capture ScreenShot, But the Issue Coming is when I added the New Element the Plugin Captures the Screenshot of new element and when I add again a new element the plugin captures the screenshot the new one and forgets about the old. like this,

This is the Full Code,
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:audioplayers/audioplayers.dart';
import 'package:davinci/core/davinci_capture.dart';
import 'package:davinci/core/davinci_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:gallery_saver/gallery_saver.dart';
import 'package:gradient_widgets/gradient_widgets.dart';

import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';

import 'package:path_provider/path_provider.dart';

import 'package:toodo/main.dart';
import 'package:toodo/pages/listspage.dart';
import 'package:toodo/uis/completedListUi.dart';
import 'package:share/share.dart';
import 'package:toodo/models/completed_todo_model.dart';
import 'package:toodo/models/todo_model.dart';
import 'package:toodo/uis/addTodoBottomSheet.dart';
import 'package:carbon_icons/carbon_icons.dart';
import 'package:dart_random_choice/dart_random_choice.dart';

import 'dart:core';

String firstButtonText = 'Take photo';
Box<TodoModel> box;
var todoList = [];
void incrementCount() {
  totalTodoCount.value++;
}

class TodoCard extends StatefulWidget {
  const TodoCard({
    Key key,
  }) : super(key: key);

  @override
  _TodoCardState createState() => _TodoCardState();
}

class _TodoCardState extends State<TodoCard> {
  GlobalKey imageKey;
  var todokeyValue;

  //

  @override
  void initState() {
    super.initState();
  }

  //bool isCompleted = false;

  @override
  Widget build(BuildContext context) {
    return ValueListenableBuilder(
        valueListenable: Hive.box<TodoModel>(todoBoxname).listenable(),
        builder: (context, Box<TodoModel> box, _) {
          List<int> keys = box.keys.cast<int>().toList();

          List<String> heyss = [
            "Hoi",
            "hi",
            "heeh",
            "heys",
            "hey",
            "All",
            "koool",
            "coooool",
            "pool",
            "lalala",
            "oeye",
            "arrrees",
            "yaahoo",
            "gigigi",
            "swiiiinggg",
            "zoooom",
            "booo",
            "freeeeee",
            "oh haaa",
            "haai",
            "Hooooollla",
            "hoela",
            "yo",
            "yop",
            "salaaaam",
            "assalaaam",
            "hui",
            "Anyway",
            "so",
            "bravvo",
            "Chu-chu",
            "hoooyaah",
            "here",
            "now",
            "you know?",
            "do you know?",
            "amazing!",
            "right",
            "aloooha",
            "hui-hui",
            "hututu",
            "hi",
            "hello",
            "hey all",
            "hey people",
            "guys",
            "Bonjour",
            "Hola",
            "Guten Tag",
            "olá",
            "marhabaan",
            "kon’nichiwa",
            "hyālō",
            "vandanalu",
            "namaskār",
            "vanakkam",
            "hallo",
            "ke aal aee",
            "moni",
            "lllu",
            "haiiyye",
            "uhi",
            "yeh",
            "yeaaaa",
            "waah",
            "yoaah",
            "soo aaah",
            "thus",
            "hussshh",
            "ku-ooh",
            "ji ji",
            "ji",
            "heheh",
            "heya",
            "hey ya",
            "ho yah",
            "hayee",
            "hoo",
            "joyyy",
            "aa-ji",
            "eeh",
            "aayye",
            "heeeye"
                "ggg",
            "hhhee",
            "(giggles)",
            "(winks)",
            "supp",
            "says",
            "tells",
            "asks",
            "yellow",
            "greeen",
            "cheeese",
            "hoooooyah",
          ];

          String randomHeyss = randomChoice(heyss);
          List<String> workList = [
            "write that thing",
            "write them all",
            "move a bit",
            "swimming",
            "keep learning",
            "do exercising",
            "do meditation",
            "do t-shirt designing",
            "make goods",
            "cultivate fruits",
            "make that movie",
            "learn dancing",
            "learn singing",
            "make that movie",
            "do t-shirt designing",
            "make goods",
            "cultivate fruits",
            "make that movie",
            "learn dancing",
            "learn singing",
            "write letters",
            "making videos",
            "making puzzles",
            "learn calliagraphy",
            "praising lord",
            "do streching",
            "paint sneeekers",
            "sell kites",
            "do business",
            "sow some seeds of Apples",
            "organize work-space",
            "play cricket",
            "write blogs",
            "write poems",
            "write programmes",
            "make jams",
            "create apps",
            "read books",
            "Attract people",
            "Make friends",
            "dive into work",
            "designing",
            "make designs",
            "do designing",
            "make charity",
            "Meet Clients",
            "Learning",
            "make collections",
            "cooking",
            "make toodoolee",
            "make music",
            "make beats",
            "Save Animals",
            "Do personal Develoopment",
            "learn that musical instrument",
            "learn languages",
            "do photography",
            "do yoga",
            "write poems",
            "write stories",
            "write essays",
            "learn beatbox",
            "do cycling",
            "give charity",
            "organize stuffs",
            "create webpages",
            "create websites",
            "create my own languages",
            "make available food for some people",
            "learn smilling",
            "learn socialising",
            "learn talking",
            "learn painting",
            "learn jockey",
            "learn football",
            "learn cricket",
            "learn basketball",
            "learn home designing",
            "jogging",
            "do treckking",
            "learn French",
            "learn Spanissssh",
            "learn Napaaaliii",
            "learn Thaaaaaai",
            "learn Bengaaalii",
            "learn Portugueeeeese",
            "learn Twi",
            "learn Englisss",
            "learn Dutchhhh",
            "learn Hindiiii",
            "learn Araaaaaaaabic",
            "learn Japaneeeseee",
            "work",
            "work",
            "work",
          ];

          String work = randomChoice(workList);
          Map<String, String> imageLists = {
            '🔋': "Energy, aaaaaaaa.. \n Me = Bolt",
            '🐝': "Get Things done, Nowww...",
            '🔔🐱':
                "We Belive in working, goodness comes automatically, do we?",
            '✔': "Writing it first then check it",
            '☕':
                "Die hard fan of Coffee, but ${work} is more in caffiiinnnee..",
            '🗻':
                "I turn Dreams to Real, after undertanding, i have to ${work} for it",
            '👍': "good.. now lift goods..",
            '🎸⚡': "Energy-ised! Now to break all the odds..",
            '👋😃':
                "Hey, How's all going.. I am Sure in the presence of you, nothing go wrong",
            '😎🌴':
                "Hey Beauty, do You know? your work of - '${work}' is more beautiful?",
            '🐣': "Welcome to the realest world...  Welcome to the Toodooooolee Squad, BTW.. I know you got to ${work}.. ",
            '🐓😃':
                "I am going to ${work} on this chicken, you can also join me...",
            '📦':
                "hew.. to the \n work-shipper, - Who ships work, to its Destination",
            '🚀': "Going to space... to see what stars you will make",
            '🌞':
                "Hey.. hey.. hey..  We are going to the astronauts in space, so to check what Computers they use in space? it's certainly not windows.",
            '🌻': "Me = says, good. and spreading lucks to all of you.",
            '🌵':
                "Stick with me...We will go to different places after the Work",
            '🕊': "Voilaa.. Fleeeee...",
            '🐍😛':
                "This Boi, is really good at tongue Twisting, i need to ${work} and learn tounge-twisting hard from now... - Bro I will seeeeee you next time",
            '🙌': "Salaaaaam .... to all revolutionaries",
            '🔥': "Fireeeee....., \n Let's make our Head and Chests to ${work}",
            '🌺💐':
                "Aloha.. I am in Hawaii, yeah, but still got to ${work} here..",
            '🌅':
                "Best time to enjoy, live, and schedule... Lemme schedule this day",
            '☕👱':
                "I drink so much coffee at Work, I consider it part of my daily grind.",
            '🚀🌱':
                //🏖
                "Going to the Space to plant this, so it will see your progress when i will not be there. ",
            '🐬':
                "Under the sea... (in a Vacation).  (Swwwwwing....)",
            '💨':
                "I realised, Dreams also needs a push of focused work to get a flight.",
            "🏁": "Letsssssss. Staaaaaaaaaaaart.....",
            '➰': "Comming out of the loop, so to ${work}...",
            '🍉': "Staaaaaaaaaaaaaaaaaaaaaaaaarted now.... but melons first..",
            '🎶🕺🏻': "Dance with me... from whereever you are..",
            '🛫': "To all.. Come, Let's Fly together and make the history..",
            '🎹':
                "Can you name Something? which is better than composing your own music..",
            '🏆': "Glory is yet to be come.. Prepare for the day 🌟",
            '🏃💨': "On the work-path... or to $work paathh..",
            '⭐': "When i come forward to $work a New Star borns..",
            '🦘':
                "Skipping just before writing tooodooolee, not for skip-ing the work.. hehe",
            '👨🏻🌾': "Your own successful biz, that's what your best job is!",
            '🎊🎁':
                "Stick with me.. We will Enjoy every world after this last piece of work",
            '🍵':
                "Yums...Together we all Will Drink it just after swimming on the waves of lilly-lil bits of work..",
            '🏇🏻':
                "Lazies will say I am Phsyco-path.. But I am On the ${work}-path...",
            '👻':
                "Yeah... yeah... yeah... Now you know, (${work}) is Important for the whole life.. hmm..",
            '💡': "It's as easy as it is looking hard",
            '😄':
                "Look... Everytime we all are happy or we 'am' happy, #WeareOne",
            '😌':
                "Things sometimes gets tough, but its good to see we are for one another, #WeareOne",
            '🌌':
                "Look the work you did yesterday has became a star in our Silky Bay Galaxy,",
            '🦖👦':
                "We Found some strawberry under the cave... Let me make a Jam out of it..",
            '🚦':
                "It's all green, why don't we engage ourselves to $work now..",
            '🏀🍩☕':
                "Fresh Mornings is best among all times of the day, let's create this time best day of the whole life.. lemme write that i need to '$work' for today.",
            '⚡⚡⚡': "Team... Awesome. (ENERGY)",
            '💙🎨':
                "I colored my heart Blue from Red.. and it was the best of all descissions",
            '🌈⚽': "Swiiiiiing... in dreams and in real tooo...",
            '👤💰':
                "Shhh.. Un-Stealing the lucks and Stealing the Urgues to ${work}",
            '👋✨': "Hey <3000..\n and \n ${work} > 3000000",
            '🐦': "Chu..Chu.. All - Aboard Next Stop to the ${work}'s Zone.",
            '🥊👊': "Preparing to ${work}, You can also join the Grind. heh",
            '🦄': "Aaaye, I am not Unicorn, i am just, uniquely-born :)",
            '💪❤':
                "Me: Training the heart hard.... and discard the rest of the taaaask..",
            '➕':
                "Pressssssssss the Plussssssssss... it will make you surplus. 💪💪💪",
            '😎🍹':
                "Chillling.. Yeah also got some killing stuffs, Yeah to $work ... and you?",
          };
          /*
          🧑 Heey Debhelooopars, b...b.b..break;,
          You can Run your Creative Muscles,
          You can Add more First Screen Stuffs as a Map,
          (template : {"Emoji" : "Amazing Text"});
          You can Always Contribute,
          Just Download the Code and Punch the Push it..

        TARGET: We can together Achieve ATLeast 30 First-Screens Welcomes..
        Also You can Ask me to Remove this all, if you got any good Ideas, that we can Paste it inside the First Screen
        This, This Whole lot of Code just belongs just to you and Humanity...

        BTW, Lets Continue the Code..
         */

          var listEmojiKeys = imageLists.keys;
          var randomImage = randomChoice(listEmojiKeys);

          var listEmojisValues = imageLists["$randomImage"];

          // var randomValue = randomChoice(listImageValues);

          if (todoBox.isEmpty == true && completedBox.isEmpty == true) {
            return Center(
              child: Container(
                width: MediaQuery.of(context).size.height / 2,
                height: MediaQuery.of(context).size.height / 2,
                padding: const EdgeInsets.all(0.0),
                child: Column(
                  children: [
                    Card(
                      child: FlatButton(
                        splashColor: Colors.white60,
                        onPressed: () {
                          addTodoBottomSheet(context);
                        },
                        child: Padding(
                          padding: EdgeInsets.fromLTRB(
                            0,
                            MediaQuery.of(context).size.height / 30,
                            0,
                            0,
                          ),
                          child: Column(
                            children: [
                              ListTile(
                                title: Center(
                                  child: Text(
                                    "${randomImage}",
                                    style: TextStyle(
                                      fontSize:
                                          MediaQuery.of(context).size.height /
                                              22,
                                    ),
                                  ),
                                ),
                              ),
                              ListTile(
                                title: Padding(
                                  padding: EdgeInsets.fromLTRB(8, 0, 8,
                                      MediaQuery.of(context).size.height / 40),
                                  child: Opacity(
                                    opacity: 0.7,
                                    child: Text(
                                      '$listEmojisValues',
                                      textAlign: TextAlign.center,
                                      style:
                                          Theme.of(context).textTheme.subtitle1,
                                    ),
                                  ),
                                ),
                              ),
                            ],
                          ),
                        ),
                      ),
                    ),
                    Center(
                      child: ListTile(
                        subtitle: Text(
                          "$randomHeyss, To Start press +",
                          textAlign: TextAlign.center,
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            );
          } else if (todoBox.length == todoBox.length) {
            return SingleChildScrollView(
                scrollDirection: Axis.vertical,
                physics: ScrollPhysics(),
                child: ListView.separated(
                    physics: NeverScrollableScrollPhysics(),
                    //itemCount: box.length,// editing a bit
                    itemCount: box.length,
                    shrinkWrap: true,
                    separatorBuilder: (_, index) => Container(),
                    itemBuilder: (_, index) {
                      final int key = keys[index];
                      final TodoModel todo = box.get(key);
                      String completedTodoName = todo.todoName;
                      String completedTodoEmoji = todo.todoEmoji;
                      String completedTodoRemainder = todo.todoRemainder;

                      return Davinci(builder: (key) {
                        ///3. set the widget key to the globalkey
                        this.imageKey = key;
                        return Container(
                          // child: Card(
                          //   shape: RoundedRectangleBorder(
                          //     borderRadius: BorderRadius.circular(0),
                          //   ),
                          //   color: Theme.of(context).canvasColor,
                          child: Card(
                            // elevation: 0.7,
                            child: Wrap(
                              children: [
                                ListTile(
                                  leading: IconButton(
                                    onPressed: () {
                                      setState(() {
                                        todo.isCompleted = !todo.isCompleted;
                                        if (todo.isCompleted == true) {
                                          CompletedTodoModel completedTodo =
                                              CompletedTodoModel(
                                            completedTodoName:
                                                completedTodoName,
                                            completedTodoEmoji:
                                                completedTodoEmoji,
                                            completedTodoRemainder:
                                                completedTodoRemainder,
                                            isCompleted: todo.isCompleted =
                                                true,
                                          );
                                          print(
                                              completedTodo.completedTodoName);
                                          completedBox.add(completedTodo);
                                          todoBox.deleteAt(index);
                                          print(completedBox.length);
                                        }
                                      });
                                      player.play(
                                        'sounds/notification_simple-02.wav',
                                        stayAwake: false,
                                        // mode: PlayerMode.LOW_LATENCY,
                                      );
                                    },
                                    icon: todo.isCompleted == false
                                        ? Icon(CarbonIcons.radio_button,
                                            color: Colors.blue)
                                        : Icon(CarbonIcons.checkmark_filled,
                                            color: Colors.blue),
                                    color: Colors.blue,
                                  ),

                                  title: Opacity(
                                    opacity: 0.8,
                                    child: Text(
                                      '${todo.todoName}',
                                      style: TextStyle(
                                        fontFamily: "WorkSans",
                                        fontStyle: FontStyle.normal,
                                        fontSize: 20,
                                        fontWeight: FontWeight.w600,

                                        // color: Colors.black54
                                      ),
                                    ),
                                  ),
                                  // subtitle: Text("written on morning"),
                                ),

                                // Divider(thickness: 1.2),
                                ButtonBar(
                                  children: [
                                    (todo.todoRemainder) == null
                                        ? Container()
                                        : Text(
                                            '${todo.todoRemainder.toString()}'),
                                    (todo.todoRemainder) == null ||
                                            todo.todoEmoji == "null"
                                        ? Container()
                                        : Opacity(
                                            opacity: 0.5,
                                            child: Text(
                                              "•",
                                              style: TextStyle(
                                                fontSize: 14,
                                                //color: Colors.black54
                                              ),
                                            ),
                                          ),
                                    (todo.todoEmoji) == "null"
                                        ? Container()
                                        : Text('${todo.todoEmoji}',
                                            style: TextStyle(
                                              fontSize: 20,
                                            )),
                                    IconButton(
                                      color: Colors.blue,
                                      onPressed: () {
                                        player.play(
                                          'sounds/ui_tap-variant-01.wav',
                                          stayAwake: false,
                                          // mode: PlayerMode.LOW_LATENCY,
                                        );
                                        showModalBottomSheet(
                                          context: context,
                                          isScrollControlled: false,
                                          shape: RoundedRectangleBorder(
                                            // <-- for border radius
                                            borderRadius: BorderRadius.only(
                                              topLeft: Radius.circular(10.0),
                                              topRight: Radius.circular(10.0),
                                            ),
                                          ),
                                          builder: (context) {
                                            // Using Wrap makes the bottom sheet height the height of the content.
                                            // Otherwise, the height will be half the height of the screen.
                                            return Wrap(
                                              children: [
                                                // FlatButton(
                                                //   onPressed: () {},
                                                //   child: ListTile(
                                                //     leading: Icon(CarbonIcons.edit),
                                                //     title: Text("Edit"),
                                                //   ),
                                                // ),
                                                FlatButton(
                                                  onPressed: () {
                                                    player.play(
                                                      'sounds/ui_tap-variant-01.wav',
                                                      stayAwake: false,
                                                      // mode: PlayerMode.LOW_LATENCY,
                                                    );
                                                    Navigator.pop(context);
                                                    if (todo.todoEmoji ==
                                                            "null" &&
                                                        todo.todoRemainder ==
                                                            null) {
                                                      Share.share(
                                                          "${todo.todoName} \n \n @ToodoleeApp",
                                                          subject:
                                                              "Today's Toodo");
                                                    } else if (todo
                                                            .todoRemainder ==
                                                        null) {
                                                      Share.share(
                                                          "${todo.todoName} \n ${todo.todoEmoji}  \n \n @ToodoleeApp",
                                                          subject:
                                                              "Today's Toodo");
                                                    } else if (todo.todoEmoji ==
                                                        "null") {
                                                      Share.share(
                                                          "${todo.todoRemainder}⏰ \n \n @ToodoleeApp",
                                                          subject:
                                                              "Today's Toodo");
                                                    } else {
                                                      Share.share(
                                                          "${todo.todoName} ${todo.todoEmoji} \n at ${todo.todoRemainder} \n \n @ToodoleeApp",
                                                          subject:
                                                              "Today's Toodo");
                                                    }
                                                  },
                                                  child: ListTile(
                                                    leading:
                                                        Icon(CarbonIcons.share),
                                                    title: Text("Share"),
                                                  ),
                                                ),

                                                FlatButton(
                                                  onPressed: () async {
                                                    // setState(() {
                                                    //   todokeyValue = GlobalKey(
                                                    //       debugLabel:
                                                    //           "$randomHeyss $randomHeyss");
                                                    // });

                                                    await DavinciCapture.click(
                                                      imageKey,
                                                      saveToDevice: false,
                                                      fileName:
                                                          "${DateTime.now().microsecondsSinceEpoch} $randomHeyss",
                                                      openFilePreview: true,
                                                      albumName: "Toodolees",
                                                      pixelRatio: 3,
                                                      // returnImageUint8List:
                                                      //     true,
                                                    );

                                                    // setState(() {
                                                    //   initialCanvasColor = null;
                                                    //   initialmargin =
                                                    //       EdgeInsets.all(4.0);
                                                    // });

                                                    ScaffoldMessenger.of(
                                                            context)
                                                        .showSnackBar(SnackBar(
                                                            backgroundColor:
                                                                Colors
                                                                    .blue[200],
                                                            content: Row(
                                                              children: [
                                                                Expanded(
                                                                    flex: 1,
                                                                    child: Text(
                                                                        "👍",
                                                                        style: TextStyle(
                                                                            color:
                                                                                Colors.white))),
                                                                Expanded(
                                                                    flex: 5,
                                                                    child: Text(
                                                                      "Share this Will, (Captured)",
                                                                    )),
                                                                // FlatButton(
                                                                //   child: Text("Undo"),
                                                                //   color: Colors.white,
                                                                //   onPressed: () async{
                                                                //     await box.deleteAt(index);
                                                                //     Navigator.pop(context);
                                                                //   },
                                                                // ),
                                                              ],
                                                            )));
                                                  },
                                                  // await DavinciCapture.offStage(
                                                  //     PreviewWidget());

                                                  child: ListTile(
                                                    leading: Icon(
                                                        CarbonIcons.download),
                                                    title: Text("Download"),
                                                  ),
                                                ),

                                                Divider(),
                                                FlatButton(
                                                  onPressed: () async {
                                                    await box.deleteAt(index);
                                                    incrementCount();
                                                    //
                                                    // Locally locally = Locally(
                                                    //   context: context,
                                                    //   payload: 'test',

                                                    //   //pageRoute: MaterialPageRoute(builder: (context) => MorePage(title: "Hey Test Notification", message: "You need to Work for allah...")),
                                                    //   appIcon: 'toodoleeicon',

                                                    //   pageRoute: MaterialPageRoute(
                                                    //       builder: (BuildContext
                                                    //           context) {
                                                    //     return DefaultedApp();
                                                    //   }),
                                                    // );

                                                    // locally.cancel(0);
                                                    player.play(
                                                      'sounds/navigation_transition-left.wav',
                                                      stayAwake: false,
                                                      // mode: PlayerMode.LOW_LATENCY,
                                                    );

                                                    setState(() {});
                                                    Navigator.pop(context);
                                                  },
                                                  child: ListTile(
                                                    leading: Icon(
                                                        CarbonIcons.delete,
                                                        color:
                                                            Colors.redAccent),
                                                    title: Text(
                                                      "Delete",
                                                      style: TextStyle(
                                                          color:
                                                              Colors.redAccent),
                                                    ),
                                                  ),
                                                ),
                                              ],
                                            );
                                          },
                                        );
                                      },
                                      icon: Icon(
                                          CarbonIcons.overflow_menu_horizontal),
                                    ),
                                  ],
                                ),
                              ],
                            ),
                          ),
                        );
                      });
                    }));
          }
        });
  }
}

Running it will be shocking, but it's just giving up the main idea

Answer:
Change the, imageKey to like this,
  GlobalKey imageKey; create the Global Key
In the Inititalization:
check how i changed key to imgkey,
return Davinci(builder: (imgkey) {
                        ///3. set the widget key to the globalkey
                        this.imageKey = imgkey;
                        return Container(
                          // child: Card(
                          //   shape: RoundedRectangleBorder(
                          //     borderRadius: BorderRadius.circular(0),
                          //   ),
                          //   color: Theme.of(context).canvasColor,
                          child: Card(
                            // elevation: 0.7,
                            child: Wrap(

and it's good to see i am not using imageKey in the key of the .click method, i am using the imagekey
                               await DavinciCapture.click(
                                                      imgkey,
                                                      saveToDevice: false,
                                                      fileName:
                                                          "${DateTime.now().microsecondsSinceEpoch} $randomHeyss",
                                                      openFilePreview: true,
                                                      albumName: "Toodolees",
                                                      pixelRatio: 3,
                                                      // returnImageUint8List:
                                                      //     true,
                                                    );

But all of these are Giving me good results,
But this made a New Issue to be analysed,
The Last one of the All List view Objects, is looking like this.


Use goccy/go-yaml.Read instead of parsing ourselves

What this PR does / why we need it:
Since https://github.com/goccy/go-yaml/pull/194 has been merged and released, we can close https://github.com/pipe-cd/pipe/issues/1531.
Besides, https://github.com/goccy/go-yaml/pull/196 is soon-to-be-released, hence we can also close https://github.com/pipe-cd/pipe/issues/1530.
Which issue(s) this PR fixes:
Does this PR introduce a user-facing change?:

NONE

/lgtm

/approve


--lxc-conf is accepted but silently ignored by native driver

To replicate: run the docker daemon with -b none but not with any -e flag.
root@kit1:~# docker run -d --name pctest --lxc-conf="lxc.network.type=veth" \
  --lxc-conf="lxc.network.link=docker0" --lxc-conf="lxc.network.flags=up" phusion/baseimage:latest
a7ab640b333d2f7a3e5859dad272fb43e32fd98cf72d7e60abb396ba7ae0deb2
root@kit1:~# docker exec pctest ifconfig eth0
eth0: error fetching interface information: Device not found

Expected behaviour: I think that docker run should reject any --lxc-conf option if the daemon is not using the lxc driver.
Test based on this posting. Further discussion here
(Aside: the lxc configuration is accepted when running docker with -e lxc, but then docker exec does not work with that driver!)

Sorry, but --lxc-conf works only with lxc execdriver.

I think you missed the point.
I do not expect the option to work.
What I ecpect is an error to be shown if I try to use the lxc-conf option with the native driver. At the option is accepted.

I changed the name and added white label as this would be an easy fix.

Hello,
I sent a pull #11401, trying to fix this issue

Closed by #11401


Select/option doesn't work in chrome 53 after inspect

Short description of the problem:
Select/option doesn't work in chrome 53 after inspect.
What behavior are you expecting?
Open select box and see options list. Instead nothing happens. This issue happens only on chrome 53 desktop.
Steps to reproduce:

Open Chrome and navigate to localhost:8100 after ionic serve
Right click anywhere -> inspect element -> select any device
Be sure to be on a page with a select box. Example:

controller.js
...
$scope.data = {}
$scope.data.list = ['1', '2', '3'];
$scope.data.selected = $scope.data.list[0];

view.html
            <ion-input class="item item-select text-align-left">
                <select
                        ng-options="value for value in data.list"
                        ng-model="data.selected">
                </select>
            </ion-input>

Which Ionic Version? 1.x or 2.x
1.3.1
Run ionic info from terminal/cmd prompt: (paste output below)
Your system information:
Cordova CLI: 6.1.1
Gulp version:  CLI version 1.2.1
Gulp local:   Local version 3.9.1
Ionic CLI Version: 1.7.16
Ionic App Lib Version: 0.7.3
ios-deploy version: 1.8.5
ios-sim version: 5.0.6
OS: Mac OS X El Capitan
Node Version: v5.6.0
Xcode version: Xcode 7.3.1 Build version 7D1014
Plunker that shows an example of your issue
http://plnkr.co/edit/Ph9G7pDcPtHV6PWvEq4U?p=preview

Hello, thanks for using Ionic! This is most likely a bug with Chrome DevTools and not Ionic. We are not doing anything special with the select that should cause anything to happen when it is inspected. Because of this, I am going to be closing this issue for now. Thanks for using Ionic!

Using version 52 of chrome it works, but throws this warn:

A DOM event generated from JavaScript has triggered a default action inside the browser. This behavior is non-standard and will be removed in M53, around September 2016. See https://www.chromestatus.com/features/5718803933560832 for more details.

My chrome updated today to version 53 and the select stopped working. The warn above also stopped.
I updated my ionic app and the select is still broken. Before updating ionic, the warn was caused by line 2865:
function triggerMouseEvent(type, ele, x, y) {
  var clickEvent = document.createEvent("MouseEvents");
  clickEvent.initMouseEvent(type, true, true, window, 1, 0, 0, x, y, false, false, false, false, 0, null);
  clickEvent.isIonicTap = true;
  ele.dispatchEvent(clickEvent); // (line 2865)
}

I don't think it is a Chrome DevTools bug. Anyways, should we switch from Chrome to another browser/tool?

I have same problem too

Same problem here.
ionic version : 1.1.0
Effected devices:
One
Chrome version: 53
OS: Ubuntu 14.04
Mode: Chrome developer tools
Two
Chrome version: 53
OS: Android Marshmallow.

Hello everyone
Why is this issue mark as closed? did anyone solved this?

Nope. I think issue is still there.
Some more info I've found:

initMouseEvent is deprecated(Ref)
It was possible to open a select element through JS earlier. Not anymore, (after Chrome 53 update)
Quoting from the feature change page:

We wish to prevent synthetic events from executing the default action, aligning with Firefox and IE.

Ionic is creating synthetic event for touch inputs on select (?) that's why issue is seen on developer tools and native devices only.

I'm also experiencing this after Chrome 53 update.
No selects are responding in stable version, but the nightly build (version 55) works with a long press.
Ionic: 1.3.1
Angular: 1.3.20
Chrome: 53.0.2785.116 (64-bit)
OS: Mac OSX 10.11.6

Just checking to see if I have the same issue. I did an ionic upload, and had the same issue. But if I tap just below the select box, I can get the select box to open.
If I remove ionic.bundle.js, everything works. I tried to locate the event handler that's swallowing the click event, but to no avail.

I face the same issue as well. Using Chrome 53 on Ubuntu 16 with Ionic 1.3.1.

@onelifemedia Does removing the touchstart event affect it's behavior on devices? It seems like an unhealthy solution.
I'm also capable of clicking just above the select to open it.

I just did it in the developer tools. Haven't tried it on the device yet. 100% agree that it's unhealthy.

Hi everyone
I am facing the problem of select box in chrome latest version(53) while checking the responsive, i am attaching the image also,in image that black mark is showing while click on select box. Please tell me the alternative solution for this problem

Hello everyone, thanks for using Ionic! Sorry for the closing of this issue earlier. This is a legit issue and we are tracking it in #8181 . This is due to a deprecation in the v53 release of chrome. I have not tested it yet but it also looks like this is broken in mobile Firefox and mobile Edge.

By now the solution seems to be using a custom select.
Then I added select2 (js and css files), and created this directive:
DirectivesModule.directive('chromeSelect2', function($timeout) {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            window.isChrome() && $timeout(function() {
                var _select = $(element).select2();
                var _select2 = _select.closest('.row').find('.select2');
                var dropdownIsOpen = false;
                _select2.on('tap', function() {
                    _select.select2(dropdownIsOpen ? 'close' : 'open');
                    dropdownIsOpen = !dropdownIsOpen;
                });
                var eventToHandle = 'touchstart wheel';
                $(window).on(eventToHandle, function handleEvent(e) {
                    if (!/^select2/.test(e.target.className)) {
                        if (_select.is(':visible')) {
                            if (dropdownIsOpen) {
                                _select.select2('close');
                                dropdownIsOpen = false;
                            }
                            return;
                        }
                        $(this).off(eventToHandle, handleEvent);
                    }
                });
            });
        },
    }
});

And in the html:
<select chrome-select2
        ng-model="combobox.item"
        ng-options="item as item.description for item in combobox.data">
</select>

I took the window.isChrome function from this SO post:
window.isChrome = function() {
    var isChromium = window.chrome,
        winNav = window.navigator,
        vendorName = winNav.vendor,
        isOpera = winNav.userAgent.indexOf("OPR") > -1,
        isIEedge = winNav.userAgent.indexOf("Edge") > -1,
        isIOSChrome = winNav.userAgent.match("CriOS");

    return isIOSChrome || (
        isChromium !== null &&
        isChromium !== undefined &&
        vendorName === "Google Inc." &&
        isOpera == false &&
        isIEedge == false
    );
};


[Feature][Security] Add data masking feature

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description

Currently we don't have data masking mechanism in DS to hide sensitive data, such as AK for users.

Use case

Add data masking for sensitive data / parameters in task plugin or datasource.
Users will not be able to explicitly print sensitive data in logs.

Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

good suggestion


Feature/81 allow for empty suites

This PR adds optional boolean flag to the generated @Suite annotation in companions.
It will improve dev experience while integrating with Test Retry Gradle Plugin, as mentioned here.
@skuzzle , @leonard84 , @marcphilipp : would you be so kind and have a look please?

@petrandreev , we've been a bit overwhelmed with issues, but we plan to take a look at it next week. Thank you for addressing the feedback and being patient with us.

@petrandreev Can you please rebase or merge main into your fork? That will fix the failing GitHub action check for the macOS cross version tests

merged


Enhanced OAM error code

Signed-off-by: asubedy<EMAIL_ADDRESS>Description
This PR fixes #
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@asubedy a merge conflict to address.


AddJsonFile errors accessing UNC path

I'm getting a System.IO.FileNotFoundException exception loading a config file from a UNC path.  The file does exist.  The AD account running the app pool has permissions to this file/folder (and can access via multiple other mechanisms).  The DNX server is running through IIS/HttpPlatform.  We are targeting the full framework.
var builder = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"\\some-server\some-share\appsettings.{env.EnvironmentName}.json", optional: false);

Here are other observations:

I have verified the app pool is running as the AD account.
As a test, if I use the Windows API to manually invoke impersonation for the same account before the builder line it will load the file using the app pools credentials (using LoginUserA/DuplicateToken, interactive login and security impersonation).
If the server admin creates a symlink to the UNC path, it will load the file.
I made a trusted connection to a SQL Server in the "public Startup" to help verify it was authenticating as AD account running the app pool (and it did).
This behavior does not happen when I run locally.

I verified that there is no issue resolving PhysicalFiles on latest bits with the rooted changes.
    [Fact]
    public void CanReadFromUNC()
    {
        var configurationBuilder = new ConfigurationBuilder();
        var config = configurationBuilder.AddJsonFile(@"\\scratch2\scratch\haok\foo.json").Build();
        Assert.Equal("Value", config.GetSection("Key").Value);
    }

cc @blowdart in regards to the question about impersonation/identity, I'm not clear on the specifics of that.

Impersonation would be a question for the asp.net module people. They start the process. It should be started under the app pool identity. This could be a 3 hop problem, but I don't know.

@blowdart Then can you reroute this to the correct repo?  There's no configuration issue here as far as I can tell.

I don't know where it is - @davidso one for you I think

We've just upgraded to RC2 locally.  Our sysadmin have an open ticket to setup our development server environment where I will be able to test this on RC2 in the same environment and report back with further details.

Cool, feel free to reopen a new issue if you have any issues


Home Assistant Energy Integration

Hi, i have helen exchange contract, and all works just fine. But i noticed that all energy data is downloaded for the wrong days. In home assistant, it shows yesterdays energy consumption as todays energy consumption.

Hi I also found the same issue. The whole day energy consumption yesterday is shown up as an hour of consumption today, for example. My contract is fixed price btw.

Hi!
This is by design. The integration only supports daily resolution in the Energy Dashboard. At the moment there are no plans to make it support hourly resolution.
In order to be able to display hourly data points, the Energy Dashboard should support updating data points in the past because Helen usually has at least 24 hour delay in their new data. AFAIK at the moment there is no official support for importing historical data to the Energy Dashboard in Home Assistant.


Test

Changed index file

👷 Deploy Preview for benevolent-sprinkles-4567d6 processing.

Name
Link

🔨 Latest commit
3d68ce9722c550a365759d674e23fbbc9b91d72a

🔍 Latest deploy log
https://app.netlify.com/sites/benevolent-sprinkles-4567d6/deploys/65b80a66aac50900081513ef


How to get inserted row id with TSQL

I am doing data insert but hit a wall since so far I know there is no possibility to return inserted id with TSQL. My data is quite relation heavy and single unit of data may not be unique by itself but its about relationships. Also so far I know you cannot insert partial graphs at once.
So plan is:

Insert Car (which doesn't have any unique data per se)
Insert Wheels by CarID... But since we don't know id and we cannot identify our car... we are in trouble.

Only workaround I can imagine is simply opt-out from auto increment identifiers and use client side generated id (guid maybe) instead. Honestly I cannot even imagine almost any practical use case where id return wouldn't be necessary.
In the future I might add some cross-database way of getting the inserted ID that would take advantage of the various "output" clauses on some DBs.


Add site config forms

Add forms for the site configuration and default responses models so we do not need to go into the django admin as much.

Closed by ff94fac.


Indexing logs with elasticsearch

Hi, I am new to elasticsearch and want to index my website logs which are stored on HDFS for fast querying.
I have a well structured pipeline which runs a script every 20 minutes to ingest the data into HDFS.
I want to integrate elasticsearch with it, so that it also indexes these logs based on particular field(s) and thereby giving faster query results using spark SQL.
So, my question is, can I index my data based on particular field(s) only?
Also, my logs are saved in avro file format. Does es provides a way to directly index avro serialized data or do I need to convert it into some other format?
Thank you in advance.

Since this question has been already asked on the forums (where it belongs) I'm closing this issue.


genomes are duplicated

I don't know if this is intended but the pickle of the database contain each genome twice.
The ouptut of the function def readPickle(pklName): returns rlist, and qlist` which have duplicated entries.
This is for the conda version 2.2 and was not the case for v2.1

If you've just run --create-db then rlist == qlist.
Or do you mean there are duplicate entries within those?
What was the difference you saw with v2.1?

Yes, I see duplicates within rlist and qlist. (rlist == qlist)
With v 2.1 each genome was present only once in rlist.

Sorry, I think I may have phrased that poorly. rlist == qlist is expected.
But do you also mean that there are the duplicates inside one of those lists? If you do len(set(rlist)) is that the same size as len(rlist)? i.e. rlist = ['a', 'b', 'a'] would be a problem, but rlist = ['a', 'b', 'c'], qlist = ['a', 'b', 'c'] is not

What I see is that rlist =qlist = ['a', 'b', 'c', 'a', 'b', 'c'] which I think is wrong.

I have checked with an example on v2.2.0, and get:
>>> rlist
['24936_2#10', '24936_2#11', '24936_2#12', '24936_2#13', '24936_2#14', '24936_2#15', '24936_2#2', '24936_2#21', '24936_2#23', '24936_2#27', '24936_2#3', '24936_2#30', '24936_2#32', '24936_2#37', '24936_2#4', '24936_2#44', '24936_2#45', '24936_2#46', '24936_2#47', '24936_2#5', '24936_2#51', '24936_2#52', '24936_2#53', '24936_2#54', '24936_2#60', '24936_2#62', '24936_2#63', '24936_2#64', '24936_2#65', '24936_2#7', '24936_2#71', '24936_2#74', '24936_2#75', '24936_2#76', '24936_2#78', '24936_2#79', '24936_2#83', '24936_2#88', '24936_2#9', '24936_2#90', '24936_2#93', '24936_2#94']
>>> qlist
['24936_2#10', '24936_2#11', '24936_2#12', '24936_2#13', '24936_2#14', '24936_2#15', '24936_2#2', '24936_2#21', '24936_2#23', '24936_2#27', '24936_2#3', '24936_2#30', '24936_2#32', '24936_2#37', '24936_2#4', '24936_2#44', '24936_2#45', '24936_2#46', '24936_2#47', '24936_2#5', '24936_2#51', '24936_2#52', '24936_2#53', '24936_2#54', '24936_2#60', '24936_2#62', '24936_2#63', '24936_2#64', '24936_2#65', '24936_2#7', '24936_2#71', '24936_2#74', '24936_2#75', '24936_2#76', '24936_2#78', '24936_2#79', '24936_2#83', '24936_2#88', '24936_2#9', '24936_2#90', '24936_2#93', '24936_2#94']
>>> rlist == qlist
True
>>> len(set(rlist))
42
>>> len(rlist)
42

which is the expected behaviour.
Are you able to provide an example where I can reproduce the bug?
Is this giving you other issues with the run?

I believe this is expected behaviour. Closing the issue, but please reopen if having problems


VS Code zsh terminal issue

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.75.0
OS Version: Ventura 13.2

Steps to Reproduce:

Open VS code
Open the integrated terminal, it is blank for a bit and then the terminal closes.

I'm using Mac M1. The zsh terminal works fine when I open the terminal outside vs code. It also crashes in Android Studio.

Can you share your settings.json file and also do a trace log while creating a terminal? https://github.com/microsoft/vscode/wiki/Terminal-Issues#enabling-trace-logging
/label info-needed terminal

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


src link wrong for crate sqlx

I’m not sure if this is a bug in docs.rs or in sqlx. I just noticed it and though it’d be better to open an issue in case it is a bug and nobody has noticed it before.
If you go to https://docs.rs/sqlx/0.4.1/sqlx/pool/struct.PoolOptions.html#method.max_connections and click on [src] for that function, the link points to the source of version 0.4.0, not 0.4.1. Shouldn’t it point to 0.4.1?

Nevermind. It doesn’t point to version 0.4.0 of crate sqlx, but version 0.4.0 of crate sqlx-core which is the latest. So, no bug I guess.


Ts 4266: Added a GC in add module and delete module

Refer Jira Ts 4266 for the issue and solution.
The first 6 commits are garbage. They were just created when I was trying to delete the merge on to my forked repository.

You can use git rebase to squash this to a single commit that extends from the current tip of the master branch.

Cancelling this pull request and perform git rebase and submit again.

You don't need to submit a new PR, you can just force-push a corrected set of commits onto this branch and the PR will update automatically.


Regexp for validaint input in GXE

Which is the best way to implement special validation in the gxe editor ? For some fields we need to use some regexp, and I was going to use the "match" section and an XQuery expression with the matches($input, $regex) method but don't know if this method is supported and I'm not sure this is the best way to do it. Any suggestions ?

I think we found the best way: in the XTN_.xml use the "restriction" tag with a pattern. The gxe.js will do the rest in the ValidateinputField method. If possible it would be nice to have a confirmation that this is the best way to do the job.
Thanks


Feature/use video

Have a checkbox to choose whether to use video or just static background images, very useful for people on slow connections.

This looks fine for now, at least until we actually have a proper settings pane.
Can you remove the unrelated commits?

Merged everything into one commit and force-pushed, now everything should be in one commit


Delay a FutureProvider until a click is performed

I have a question and I couldn't get an answer on official documentation.
I want to manage the logic of the AsyncValue returned by a FutureProvider in the onPress callback of a button. For example:
signInResult.when(
   data: (_) {
      // Navigate to a new page
   },
   loading: () {},
   error: (error, stack) {
     // Show Flushbar
   },
);

The problem is that if declare:
final signInResult = useProvider(signInProvider);
When I enter the sign in page for the first time automatically makes the API Request holded by the futureProvider.
Is there any way to use this futureProvider AsyncValue result but not making the request of the future until onPress callback?
Thank you all for your time.

FutureProvider may not be what you want to use then.
You may want a StateProvider or StateNotifierProvider

That's what I thought but just to make sure everything is clear: the idea is to listen to this changes on a page in order to show  show an alertDialog, for example, based on the asyncValue.error and in case of AsyncValue.data navigate to home page.
Is there any performance issues or excessive rebuilds on having a ProviderListener listening to this stateNotifierProvider like so:
ProviderListener{
    provider: signInResultProvider.state,
    onChange: (value){}
}

alongside with a
final signInResult = useProvider(sigInResultProvider.state)
to be able to access this state to change widgets:
signinResult.when(
    data: (data){},
    loading: (){},
    error: (err, stack){},
)

Will listening to this providers on different sites but on the same page be a problem or is there a better way to manage this situations?

That's fine, I don't see an issue here
Le jeu. 24 sept. 2020 à 12:24, Eduard Monfort<EMAIL_ADDRESS>a
écrit :

That's what I thought but just to make sure everything is clear: the idea
is to listen to this changes on a page in order to show show an
alertDialog, for example, based on the asyncValue.error and in case of
AsyncValue.data navigate to home page.
Is there any performance issues or excessive rebuilds on having a
ProviderListener listening to this stateNotifierProvider like so:
ProviderListener{
provider: signInResultProvider.state,
onChange: (value){}
}
alongside with a
final signInResult = useProvider(sigInResultProvider.state)
to be able to access this state to change widgets:
signinResult.when(
data: (data){},
loading: (){},
error: (err, stack){},
)
Will listening to this providers on different sites but on the same page
be a problem or is there a better way to manage this situations?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/rrousselGit/river_pod/issues/155#issuecomment-698256959,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEZ3I3N5NVWNW2ZPG7KTAMLSHMM4LANCNFSM4RXPUIOQ
.

That's great. There is no way to have multiple listeners at the same time right? We need to create a ProviderListener as child of a ProviderListener in order to have two at the same time?

Indeed

Sorry for starting a conversation again but I think could be an interesting discussion. I see lots of cases where you want to watch for a futureProvider changes but only after an event, onPress button for example. It's true that you can create a stateNotifierProvider that updates it's state with an asyncValue but I think most of times isn't necessary a full state notifier with a single function just to get all the updates of a futureProvider result (AsyncValue.loading, AsyncValue.data, AsyncValue.error).
What do you all think of having a modifier, like a .lazy that only creates a futureProvider for example once an event is triggered. This way we would be able to have widgets prepared for listening for changes in this FutureProvider but not triggering the future on useProvider declaration.

Do you have a concrete use-case example?

Yes. For example I want to retrieve user information and here with a futureProvider like we are using it right now it's perfect. But now I want to update this user information. I want to have a circularProgressIndicator() as a child of a button when the "update" button is pressed and also, when the future throws an error I want to show an alert and when data arrived from future I want to navigate. In this case if I declare:
final updateUser = useProvider(updateUserProvider);
the future will be triggered just entering the page. I want to listen to changes whenever I press update button in order to manage the events and also be able to have widgets listening to changes that must be done after onPress:
RaisedButton(
    onPress: {
        updateUser.when(
           data: (_) {
              // Navigate to a new page
           },
           loading: () {},
           error: (error, stack) {
             // Show Flushbar
           },
        );
    },
    child: updateUser.when(
           data: (_) {
              return Text('Update'),
           },
           loading: () => CircularProgressIndicator(),
           error: (error, stack) {
             return Text('Try again'),
           },
        );
),

Is the example I provided clear enough? If anyone has good ideas about this I think could be very beneficial for the package. It's a case we can see quite very often (sign in, sign up, update already retrieved information...)

You could have two providers:
final event = Provider((ref) => StreamController<Event>());

final future = FutureProvider((ref) async {
  await ref.watch(event).first;
  print('do something');
})

onPressed: () => context.read(event).add(Event()),

Yes, but seems just like a workaround, just like create a stateNotifier with only one function just to achieve this. Even more, there could be the case where you don't want the presentation layer to know which event must be called, the button just wants to access to wherever this provider returns. What do you think?

Riverpod can't reasonably include a modifier for every single use-case possible
Unless it is proven that this is a use-case that everybody wants, the proposed solutions are good enough imo

Of course!! Just wanted to start this discussion to allow other people read and talk about this kind of cases for the good of the package.
Thank you @rrousselGit

I will add my 3 cents here. What I'm currently doing is I have RequestStateNotifier. Which is almost the same as the FutureProvider with AsyncValue but it also has Idle state when action was not performed yet.
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

part 'request_state_notifier.freezed.dart';

abstract class RequestStateNotifier<T> extends StateNotifier<RequestState<T>> {
  RequestStateNotifier() : super(RequestState.idle());

  //It returns a Future with state if you want to avoid ProviderListener
  Future<RequestState<T>> makeRequest(Future<T> Function() function) async {
    try {
      state = RequestState<T>.loading();
      final response = await function();
      final newState = RequestState<T>.success(response);
      if (mounted) {
        state = newState;
      }
      return newState;
    } catch (e, st) {
      final newState = RequestState<T>.error(e, st);
      if (mounted) {
        state = newState;
      }
      return newState;
    }
  }
}

@freezed
abstract class RequestState<T> with _$RequestState<T> {
  const factory RequestState.idle() = Idle<T>;

  const factory RequestState.loading() = Loading<T>;

  const factory RequestState.success(T value) = Success<T>;

  const factory RequestState.error(Object error, [StackTrace stackTrace]) =
      Error<T>;
}

Which I override for a page when I just want to do some request:
final signInEmailRequestProvider =
    StateNotifierProvider<SignInEmailRequestNotifier>(
  (ref) => SignInEmailRequestNotifier(ref.watch(apiProvider)),
);

class SignInEmailRequestNotifier extends RequestStateNotifier<void> {
  final NetworkApi _api;

  SignInEmailRequestNotifier(this._api);

  Future<void> signIn(String email) => makeRequest(() => _api.signIn(email));
}

Then I can use signInEmailRequestProvider to call the method and listen to the states using useProvider and/or ProviderListener.

@rrousselGit
just informing, i also have got this usecase.

I will add my 3 cents here. What I'm currently doing is I have RequestStateNotifier. Which is almost the same as the FutureProvider with AsyncValue but it also has Idle state when action was not performed yet.
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

part 'request_state_notifier.freezed.dart';

abstract class RequestStateNotifier<T> extends StateNotifier<RequestState<T>> {
  RequestStateNotifier() : super(RequestState.idle());

  //It returns a Future with state if you want to avoid ProviderListener
  Future<RequestState<T>> makeRequest(Future<T> Function() function) async {
    try {
      state = RequestState<T>.loading();
      final response = await function();
      final newState = RequestState<T>.success(response);
      if (mounted) {
        state = newState;
      }
      return newState;
    } catch (e, st) {
      final newState = RequestState<T>.error(e, st);
      if (mounted) {
        state = newState;
      }
      return newState;
    }
  }
}

@freezed
abstract class RequestState<T> with _$RequestState<T> {
  const factory RequestState.idle() = Idle<T>;

  const factory RequestState.loading() = Loading<T>;

  const factory RequestState.success(@nullable T value) = Success<T>;

  const factory RequestState.error(Object error, [StackTrace stackTrace]) =
      Error<T>;
}

Which I override for a page when I just want to do some request:
final signInEmailRequestProvider =
    StateNotifierProvider<SignInEmailRequestNotifier>(
  (ref) => SignInEmailRequestNotifier(ref.watch(apiProvider)),
);

class SignInEmailRequestNotifier extends RequestStateNotifier<void> {
  final NetworkApi _api;

  SignInEmailRequestNotifier(this._api);

  Future<void> signIn(String email) => makeRequest(() => _api.signIn(email));
}

Then I can use signInEmailRequestProvider to call the method and listen to the states using useProvider and/or ProviderListener.
So far it works fine for me if I want to make simple requests without any complex logic that would go to StateNotifier. Maybe someone will find it helpful as well.

Hey @MarcinusX , I was searching for a solution for an issue related to a similar implementation. Do you have an example or article about then using signInEmailRequestProvider, as useProvider and not available now ?

I don't understand. Now you'd use ref.watch and use as a typical StateNotifierProvider.
Oh, also add RequestStateNotifier<void> to Provider Type, so it's StateNotifierProvider<SignInEmailRequestNotifier, RequestStateNotifier<void>>(...

I think this question can be resolved with a nullable, then the initial state will be AsyncData with a null value.
You can too use another class that encapsulates that value.

nullable AsyncValue can't be use in StateNotifier (#1282)
If anyone want to implement this feature with AsyncValue, consider this solution.
This allows you to take advantage of AsyncValue features.
abstract class LazyFutureNotifier<T> extends StateNotifier<LazyFutureState<T>> {
  LazyFutureNotifier(LazyFutureState<T> state) : super(state);

  late final AsyncLoading<T> _loading;

  @protected
  Future<void> makeRequest(Future<T> Function() callback) async {
    if (state.isWaiting) state = state.copyWith(isWaiting: false);

    if (state.value.isLoading) {
      _loading = state.value as AsyncLoading<T>;
    } else {
      state = state.copyWith(value: _loading.copyWithPrevious(state.value));
    }

    final result = await AsyncValue.guard(callback);
    if (mounted) state = state.copyWith(value: result);
  }
}

@freezed
class LazyFutureState<T> with _$LazyFutureState<T> {
  const factory LazyFutureState({
    @Default(true) bool isWaiting,
    required AsyncValue<T> value,
  }) = _LazyFutureState<T>;
}

Yes, however, the null is in the value of the AsynValue.
class MyNotifier extends StateNotifier<AsyncValue<MyData?>> {
  MyNotifier() : super(const AsyncValue.data(null));

  Future<void> fetchData() async {
    state = const AsyncValue.loading();
    state = await AsyncValue.guard(() async => MyData());
  }
}

You yet can encapsulate the value in a Unions/Sealed class with freezed.

THis probably can be closed in favor of https://github.com/rrousselGit/riverpod/issues/1660


CLI, Core: Custom named modules

This PR aims to introduce the first changes to achieve https://github.com/polywrap/monorepo/issues/835.
These are:

Create new manifest for a wrapper, making it able to add any string as a module (instead of only query and mutation)
Created new manifest for plugin
Implemented migrators for new manifest
Update Compiler class to support any string as a module instead of only query and mutation
Added tests for Web3ApiManifest, in these we load a manifest with custom modules

This touches the manifest and build command points in these notes https://hackmd.io/7MilyOKFSiKOxQXRJVlQBQ#CLIClientCore

Closing this PR because spec has changed, so will create a new branch implementing the new details


Some options for metrics seem to be hardcoded not allowing to modification through values

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What version of the Traefik's Helm Chart are you using?
20.8.0
What version of Traefik are you using?
2.9.4
What did you do?
helm template traefik traefik/traefik --version 20.8.0 -f helm-values.yml -n traefik-v2 --dry-run > something.yaml

relevant helm values
metrics:
  # datadog:
  #   address: <IP_ADDRESS>:8125
  # influxdb:
  #   address: localhost:8089
  #   protocol: udp
  prometheus:
    entryPoint: metrics
    addEntryPointsLabels: true
    addRoutersLabels: true
    addServicesLabels: true

expected relevant args
      - args:
        - --entrypoints.metrics.address=:9100/tcp
        - --entrypoints.traefik.address=:9000/tcp
        - --entrypoints.web.address=:8000/tcp
        - --entrypoints.websecure.address=:8443/tcp
        - --api.dashboard=true
        - --ping=true
        - --metrics.prometheus=true
        - --metrics.prometheus.entrypoint=metrics
        - --metrics.prometheus.addRoutersLabels=true
        - --metrics.prometheus.addServicesLabels=true
        - --metrics.prometheus.addEntrypointsLabels=true

What did you see instead?
      - args:
        - --entrypoints.metrics.address=:9100/tcp
        - --entrypoints.traefik.address=:9000/tcp
        - --entrypoints.web.address=:8000/tcp
        - --entrypoints.websecure.address=:8443/tcp
        - --api.dashboard=true
        - --ping=true
        - --metrics.prometheus=true
        - --metrics.prometheus.entrypoint=metrics
        - --metrics.prometheus.addRoutersLabels=true

What is your environment & configuration?
osx monterrey Apple M1 Pro
helm "v3.10.3"
Additional Information
No response

I am experiencing a similar issue with the access log in my Traefik deployment. Specifically, the configuration for the fields and headers in the access log does not seem to be applied as expected. My values.yml have the following:
accessLog:
      filePath: ""
      format: json
      bufferingSize: 0
      filters:
        statusCodes: ["200-600"]
        retryAttempts: true
        minDuration: 20
      fields:
        defaultMode: keep
        names:
          ClientUsername: drop
        headers:
          defaultMode: keep
          names:
            User-Agent: keep
            Authorization: drop
            Content-Type: keep

Running a kubectl describe deployment traefik gives me the following output, where the flag for accesslog.fields.headers.defaultmode is set to drop.
     ...
      --api.dashboard=true
      --ping=true
      --metrics.prometheus=true
      --metrics.prometheus.entrypoint=metrics
      --providers.kubernetescrd
      --providers.kubernetesingress
      --entrypoints.web.http.redirections.entryPoint.to=:443
      --entrypoints.web.http.redirections.entryPoint.scheme=https
      --entrypoints.websecure.http.tls=true
      --accesslog=true
      --accesslog.fields.defaultmode=keep
      --accesslog.fields.headers.defaultmode=drop

@feniix the expected values you are missing are already per default "true" (see docs), so there is no need to enable them explicitly in the helm chart.
At the moment It looks like we check if the value is set to "false" to and set the argument only on false.
I agree that this is somehow irritating, but it is also very difficult to change existing behaviors without risk of breaking something else.
@danielitus You need to ensure to respect the case sensitivity, your configuration does not work because the property name in your value should be actually fully lower cased: defaultmode. I also want to emphasize on creating a separate bug ticket for this as it is not related to this issue:
      fields:
        defaultmode: keep
        names:
          ClientUsername: drop
        headers:
          defaultmode: keep

@project0 Maybe I've found a way to fix it without breaking any thing.
@feniix Thanks for your report.
You can see in PR #774 an attempt to improve current behavior.


Add dMMM token

Project background:
Official website: https://d-mmm.github.io
Official announcement:
https://d-mmm.github.io/announcements/token-info-for-imtoken.md
Team background:
We are an international team of tech geeks from Russia, China and India.
Project basic information:
The dMMM game is the first classic dApp on the dMMM ecosystem. In the dMMM game, players can participate in the game by paying tokens and earn income when they wait in line to end the game. In the process of continuously participating in the game, the player account can be upgraded to obtain more interesting and tangible benefits or rewards.
Recommended Gas Limit for transaction: 80000

该项目已提交过pr，如需修改，请参考教程要求。


Restructuring Typespec migrate and add TypeSpec renaming, version update.

To Do:

[ ] tspconfig.yaml emitter option upgrade
[ ] Split into OSS and Azure migrationg tool

s, seems like migrate needs

[ ] CI green.
[ ] cadl-project.yaml/tspconfig.yaml's  cadl -> typespec replacement done
[ ] deprecated emittors format are being migrated to new emit format


Replace "python" with "python3" while executing commands

Currently, while gathering ansible metadata, python --version is executed which fails in a lot of systems. This is to be replaced with python3 --version command.
Related: https://github.com/ansible/vscode-ansible/issues/607

Duplicate of #428


[feature request] Add an option to auto exclude files from .gitignore

I compare two huge folders, which appear to be git repository.
There is a lot of temporary binary files and I'm using "compareFolders.excludeFilter" to remove them from comparison.
I feel like rewriting my gitignore in a different format.

It's a great idea, thank you.
Can you try the feature in the attached version?
compare-folders-0.23.0.vsix.zip

Keep


When I finish deploy my app on server,dose it started?

When I finish deploy my app on server,dose it started?
And how can I visit my app?
I‘m a newcomer...
Thank you!

You can check your logs out via
mupx logs -f
for error messages
mupx deploy will
mupx is the dev branch for mup but has improvements and is seemingly better to use.
see migration instructions if needed...
https://www.npmjs.com/package/mupx#migrating-from-meteor-up-0-x
This might help you get started
https://www.youtube.com/watch?v=WLGdXtZMmiI
To access the running server look in the settings file. There you have
"env": {
"PORT": 80,
"ROOT_URL": "http://myapp.com"
},
hit the webserver with the correct IP or routed URL and port number.

There is also
mupx start
and
mupx stop
https://github.com/arunoda/meteor-up/tree/mupx#other-utility-commands

thank you for your vidio,but I still can not deploy successfully,can you give me some suggestion?

thank you for your help.I access my app with IP.


Out of Memory Error

I updated to v2.3.0 and now I get out of memory errors when i try to edit C#.
Example page:
https://codegolf.club/demo
just typing in random text in the Monaco editor will cause the out of memory error to happen.

I see you had another change after updating the package version. Can I ask you to downgrade the package version, to be sure that the problem is definitely in the new version? And also please note which one is the latest "right" working version of the package.
Thank you!

Why I am asking this is because here is an example of ControlledEditor (which you are using) in version 2.3.0, and, as I saw, everything is okay so far.

you are right, rolling back React Monaco doesn't fix it.  I can see what's happening now.  It keeps emitting on change events, so it creates a feedback loop and runs away.  I can see in the logs that the loops are alternating last char missing, last char present. I will probably just move to the uncontrolled input and that should solve the problem

Okay. And Please let me know if everything is okay, and we can close the issue.

so, i have left it as the controlled editor, but just removed the feedback of the state into the Editor component, so it is no longer crashing, but I don't think it is working correctly.  I will have another look at it when i have some time


investigate inlining

Within ES6 inlining could be feasable AND safe provided we forbid var within the bodies.

done, now in the same performance league as js.metaret - but WITHOUT having to extend JavaScript


chatCellDidTapAvatar does not work

It seems like it should use QMImageView's imageViewDidTap but instead it uses

(void)handleTapGesture:(UITapGestureRecognizer *)tap {
CGPoint touchPt = [tap locationInView:self];
if (CGRectContainsPoint(self.avatarContainerView.frame, touchPt)) {
[self.delegate chatCellDidTapAvatar:self];
}

One way I was able to get this to work to set
[[(QMChatCell *)cell avatarView] setUserInteractionEnabled:NO];
as well as changing to:
if (CGRectContainsPoint(self.avatarView.frame, touchPt)) {
    [self.delegate chatCellDidTapAvatar:self];

Hi @budlight
It is a known issue, thank your for reporting it.

@budlight fixed in 0.3.6.

ty can confirm its works


[sdk] update to Gecko SDK 4.0.1

This PR updates the sdk_support submodule to the Gecko SDK 4.0.1 release. It also updates the openthread submodule

@lmnotran , are you planning to advance this PR?

Oh, thanks for reminding me about this draft PR. @romacdon is working on a branch that makes this obsolete. Closing this draft PR


GitHub Apps need homepage links set in project

When amp-owners-bot check is viewed more details about, there's the following link:

This currently leads to https://www.ampproject.org which is probably a placeholder. We should probably have it lead to a doc explaining OWNERS.

On the roadmap for after #540

Let’s do this for all our apps.
/cc @ampproject/wg-infra

This is done for Owners. It's a setting within the app configuration, so you'll have to sign into ampprojectbot, go to Settings > Developer Settings > Your App and set the Project Hompage field

@danielrozenberg @estherkim @rsimha If y'all can post here what "homepage" you'd like the app to point to, I'll go update them all at once

I think these links should point to the main README.md file for each app.

@rsimha I don't know if that's always the case. Speaking from the Owners Bot as an example, the homepage link would be reached by contributors clicking on the link from the Owners Check output page. To them, the README (which is mostly deployment and development instructions) would be less useful than the app server, with the example OWNERS syntax specs, the ownership tree, etc. I'm not sure if any of the other apps have a similar set of pages though.

What if we standardized the links to point to the respective README files, and have them point to the syntax specs / ownership tree? That way, the README contents can be changed at any point without having to reconfigure individual apps.

That would tie the app code/repo directly to a specific deployment/URL, as opposed to an app installation (within GitHub) pointing to the instance that is receiving that installation's webhooks

(Though for apps that don't have any context pages, pointing to the readme is fine)

That would tie the app code/repo directly to a specific deployment/URL, as opposed to an app installation (within GitHub) pointing to the instance that is receiving that installation's webhooks

Fair point. I retract my suggestion.

I think it would be fine t opoint some of the app installations to the readme, but at least for Owners Bot I think it's more useful to point at the bot server

Updated the 3 GitHub apps to point at the README (Owners Bot still points to the app status page); resolving


ci: update ci + add ensure no std

Pull Request type

Please add the labels corresponding to the type of changes your PR introduces:

Bugfix
Feature
Code style update (formatting, renaming)
Refactoring (no functional changes, no API changes)
Build-related changes
Documentation content changes
Testing
Other (please describe):

What is the current behavior?

Resolves: #NA
What is the new behavior?

Does this introduce a breaking change?

Other information

This change is

@spapinistarkware

Why is it gated? Why not always use the alloc one?

We could because the std is just a reexport of the alloc.
This way allows for the std code not to change a bit, and just adds the no_std one ontop of it.
But we could go the other way.

I could be wrong, but essentially this PR just invalidates the check that actually ensures no_std compatibility.

The ensure no_std crate will compile the crate (and therefore all the dependencies) and if one of them uses something of std it panics.
What you added is a bare metal target which doesn't have an allocator so we can't use the alloc crate which is allowed in a wasm context

The ensure no_std crate will compile the crate (and therefore all the dependencies) and if one of them uses something of std it panics.

This is not true. Again, no_std only checks the current crate. Dependencies are free to use std as they wish and Rust wouldn't complain.

What you added is a bare metal target which doesn't have an allocator

That's not true. alloc is available in that target. You can compile the entire starknet-core crate for that target. starknet-core uses alloc a lot.

OK I looked a bit deeper. So ensure_no_std relies on the panic handler not no_std to function.
That might work then, but I'm not sure. Need to check a bit more.


Null is not true, but null is not false

Simplest fix for this so we can backport to preview 3. A better fix is to avoid making this nullable and just have true and false 😄
Microsoft Reviewers: Open in CodeFlow

/backport to release/8.0-preview3

I was just discussing this with @JamesNK. To enable testing this component it needs a lot more refactoring. Yes, though we need to do it.

I think we probably need to start to break ApplicationExecutor up ... its become a bit of a dumping ground. In doing so we can make this whole space more testable.


Fix logfile name and add inline example

Fix logFile name
Add inline example in log

Closing as it will not be necessary with new clients coming


Prevent redundant inner transaction

I'd like to be able to wrap some code in a transaction, unless it already runs in a transaction.
That means, more often than not I don't really need nested transactions (savepoints). I just want to prevent inconsistent data ending up in the database. Consider the two functions:
async function updateUserBalance(userId: string, amount: number) {
  await db.$transaction(async () => {
    await db.transfer.create({ userId, amount })
    await db.user.find(userId).increment({ balance: amount })
  })
}

async function saveDeposit(userId: string, deposit: { ... }) {
  await db.$transaction(async () => {
    await db.deposit.create(deposit)
    // This will start redundant inner transaction.
    await updateUserBalance(userId, deposit.amount)
  })
}

saveDeposit runs 7 SQL queries while only 5 are actually needed for the operation (BEGIN + 3 INSERTs + COMMIT). If there were an API like db.$ensureTransaction, that won't be the case.
Note that even Orchid ORM itself uses this approach in insertMany: "To solve this seamlessly, OrchidORM will automatically batch such queries, and wrap them into a transaction, unless they are already in a transaction."

Published $ensureTransaction.


how to add icon(s) for markdown headers?

May I ask if there is a way to customize icons for markdown headers?
The following is what outline.nvim is showing:

Hello, this is nvim-navbuddy.
To configure icons for markdown in outline.nvim, you configure it for outline.nvim. Take a look at this recipe example in the readme:
https://github.com/hedyhli/outline.nvim?tab=readme-ov-file#custom-icons
Personally, I use lspkind, but customize the icons for markdown file types to use a custom icon. This is my config:
    symbols = {
      -- ...
      icon_fetcher = function(k)
        local ft = vim.api.nvim_buf_get_option(require('outline').current.code.buf, "ft")
        -- There can only be kind String in markdown so... let's not have the
        -- eye candy here
        if ft == 'markdown' and k == 'String' then
          return ""
        end
        return false
      end,
      icon_source = "lspkind",

I've disabled the icons for markdown entirely. Possible values for the icon (what you return from icon_fetcher) is the keys of your symbols.icons table, which you can find the defaults of here.


DGGRID copyright reference in project readme.md file

The h3 project readme.md file includes a "Legal and Licensing" reference to:
DGGRID Copyright (c) 2015 Southern Oregon University
This software is licensed under an AGPL license - it is unclear why this reference is included here.  I am not seeing any other reference to it, and the H3 software is licensed under Apache.  Can somebody please provide some clarification as to why the DGGRID reference is included and if it has any relevance to the H3 licensing?

A couple of the low-level functions in H3 were copied/adapted from DGGRID in 2016, when the license for DGGRID had no limitations. The license for DGGRID changed to AGPL in 2019.

Thank you - this is exactly the information I needed to clarify the citation.  Much appreciated.


audit and create a document for bloom filter configurations

    Thank you @Jimexist  -- this is very cool. I went through the code fairly thoroughly. I had some minor suggestions / comments for documentation and code structure but nothing that would block merging.

I think the biggest thing I would like to discuss is "what parameters to expose for the writer API". I was thinking, for example, will users of this feature be able to set "fpp" and "ndv" reasonably? I suppose having the number of distinct values before writing a parquet file is reasonable, but maybe not the expected number of distinct values for each row group.
I did some research of other implementations. Here are the spark settingss https://spark.apache.org/docs/latest/configuration.html

spark.sql.optimizer.runtime.bloomFilter.creationSideThreshold
10MB
Size threshold of the bloom filter creation side plan. Estimated size needs to be under this value to try to inject bloom filter.
3.3.0

spark.sql.optimizer.runtime.bloomFilter.enabled
false
When true and if one side of a shuffle join has a selective predicate, we attempt to insert a bloom filter in the other side to reduce the amount of shuffle data.
3.3.0

spark.sql.optimizer.runtime.bloomFilter.expectedNumItems
1000000
The default number of expected items for the runtime bloomfilter
3.3.0

spark.sql.optimizer.runtime.bloomFilter.maxNumBits
67108864
The max number of bits to use for the runtime bloom filter
3.3.0

spark.sql.optimizer.runtime.bloomFilter.maxNumItems
4000000
The max allowed number of expected items for the runtime bloom filter
3.3.0

spark.sql.optimizer.runtime.bloomFilter.numBits
8388608
The default number of bits to use for the runtime bloom filter
3.3.0

the arrow parquet C++ writer seems to allow for the fpp setting
https://arrow.apache.org/docs/cpp/api/formats.html#_CPPv4N5arrow8adapters3orc12WriteOptions16bloom_filter_fppE
double bloom_filter_fpp = 0.05
The upper limit of the false-positive rate of the bloom filter, default 0.05.

Databricks seems to expose the fpp, max_fpp, and num distinct values:
https://docs.databricks.com/sql/language-manual/delta-create-bloomfilter-index.html
Originally posted by @alamb in https://github.com/apache/arrow-rs/pull/3119#pullrequestreview-1186585988

this is considered a follow up of:

#3023

FYI in spark there's also a document regarding options that can be set for parquet bloom filter: https://spark.apache.org/docs/latest/sql-data-sources-load-save-functions.html

Do you have any suggestions? After a few more days of thought I don't have anything better than ndv and fpp.
The only other possibly I have is to keep this crate simpler and simply expose set_bloom_filter_size and have the users explicitly specify the size. It isn't ideal, but perhaps it would be ok if we added a pointer to the canonical ndv/fpp calculations?

@alamb i believe we should start simple, to support only 2 params:

whether bloom filter is enabled as a master switch
a range of fpp, with which we'd assume all unique items, and use that row count per row group to calculate a bitset size, but cap that to 128MiB; for very large fpp e.g. 1.0 or 0.9999 the minimal is 32.

controlling disk size does not quite make sense or is counter intuitive because users then need to both estimate unique number of items per row group as well as know how to derive fpp from that - in most cases, having a maxinum fpp is good enough
cc @tustvold

I like the idea of specifying fpp (and it follows the arrow C++model)

with which we'd assume all unique items

I think that makes sense as the main use case for bloom filters is high cardinality / close to unique columns.
Perhaps we can document the case clearly (aka "bloom filters will likely only help for almost unique data like "ids" and "uuids", for other types sorting /clustering and min/max statistics will work as well if not better)

turns out i have to allow users to specify ndv and have that defaults to say 1 million. the current code architect requires flow encoding which means there's no good way to know in advance how many num of rows will be written.

label_issue.py automatically added labels {'parquet'} from #3165


[18.03] NetworkDB qlen optimization

backport of https://github.com/docker/libnetwork/pull/2216 for the 18.03 branch
git checkout -b 18.03-backport-netdb-qlen-issue upstream/bump_18.03
git cherry-pick -s -S -x dd5a9eaba3974e06f7b678c6cc02c58d2e18dd30
git cherry-pick -s -S -x dd5a9eaba3974e06f7b678c6cc02c58d2e18dd30
git push -u origin

cherry-pick was clean, no conflicts

ping @fcrisciani @ctelfer I wasn't sure if this was intended to be in 18.03

hmmm... looks like more things have to be back ported for this to work;
# github.com/docker/libnetwork/cmd/networkdb-test/dbclient
cmd/networkdb-test/dbclient/ndbClient.go:529:47: doNetworkStatsQueue redeclared in this block
	previous declaration at cmd/networkdb-test/dbclient/ndbClient.go:428:47
cmd/networkdb-test/dbclient/ndbClient.go:564:39: doWriteKeys redeclared in this block
	previous declaration at cmd/networkdb-test/dbclient/ndbClient.go:463:39
cmd/networkdb-test/dbclient/ndbClient.go:597:40: doDeleteKeys redeclared in this block
	previous declaration at cmd/networkdb-test/dbclient/ndbClient.go:496:40
Makefile:24: recipe for target 'build-local' failed
make: *** [build-local] Error 2
Makefile:20: recipe for target 'build' failed
make: *** [build] Error 2


Is it possible to have any possible wood type for the advancements?

Hi I know #64 mentioned other tree starts, but I have a server that selects a tree for your personal island based on the biome you in.
Is it even possible to have the advancements for the wood check for multiple types, or I am guessing that is not possible? Thanks.

That's definitely possible for the initial oak log/oak sapling advancements.
But starting with a tree that gives apples gives a different progression line to starting with those that don't. The advancements may not match what some players have to do to get golden apples.

true on my server players can work with each other to get different wood types, I was mainly wondering if I could get it so the initial oak sapling/ oak trap door allow any wood if possible. Is that something I could do on my end with configuration?

This data pack should do what you want. It allows any log for the log advancement, any sapling for the sapling advancement, any wooden trapdoor for the trapdoor advancement, and requires all saplings for the Arborist and Day Trader advancements. Make sure it is enabled after the SkyBlock datapack to ensure it overrides the advancements in that.
any_wood_datapack.zip

Wow, thank you so much! Appreciate it.


Remove Fadeout on error notifications

Laravel Version: 5.4
Voyager Version: 0.11.3
PHP Version: 5.6.4

Description:
When an operation errors out, the notification system displays the error and then fades out. If you do not mouse over the error quickly enough to pause the fadeout timer, it disappears. Error notifications should be dismissible, or there needs to be an error log that the user can access without having to navigate away from the current page. Currently if you miss the error notification the only option is to reproduce the error to see what the error was, which is not desirable.
Steps To Reproduce:
Using the database tools, create a new table with an auto-incrementing primary key and leave 'nullable' unchecked. Submit.

What do you think about this?


{Network} az network lb address-pool: Migrate to CodeGen V2

Related command

Description

Testing Guide

History Notes

[Network] BREAKING CHANGE: az network lb address-pool create/update: Replace preview argument --backend-addresses-config-file and --config-file by --backend-addresses which supports Json, files and shorthand syntax formats

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Network

Is the field privateIpAddress in the json output has been changed as privateIPAddress? with the "P" in "IP" as upper case?

Is the field privateIpAddress in the json output has been changed as privateIPAddress? with the "P" in "IP" as upper case?

Yes. They are changed. I will update the History notes. This PR will be released in the next version of azure-cli.


Add Japanese to multi-language

The remote ID for Japan is the F3411-19 specification.
This tool is useful in Japan.
I would like to support Japanese language.
I believe that supporting Japanese language will make it easier for many Japanese people to use this tool.
Japanese display

Very interesting.
I am traveling right now and won't be able to review. Please wait a few days and I will take a look.

Thank you @muramura , This is a great contribution!  I look forward to seeing it integrated.  Not only does it add Japanese support, but easy enablement of other languages.

Requested translation review by @juntakei .

This is great. I had some chat with Gabriel. Let me suggest some changes.

“Location” ->  "位置/方向/速度"
“Direction” ->  "方向"
“Operation” -> "運用情報"
“System/Operator” -> “システム /オペレーター”
"Area Ceiling" -> "エリア上限"
"Area Floor" -> "エリア加減"

Other than that it looks good for me. @gabrielcox , @muramura

I have revised the following items.
I modified the following items, but  “システム /オペレーター” is too long, so I changed it to “システム /操縦者”.
Also, I think "エリア加減" should be "エリア下限".
“Location” -> "位置/方向/速度"
“Direction” -> "方向"
“Operation” -> "運用情報"
“System/Operator” -> “システム /オペレーター”
"Area Ceiling" -> "エリア上限"
"Area Floor" -> "エリア加減"

@muramura  @gabrielcox Looks good for me. Thank you for the update.

Thanks a lot. This is a very good addition.