Firefox optimization extremely slow

Link to start of conversation:
https://discord.com/channels/785153694478893126/785176548428087306/1049403146608320573

Just fyi, performance issues look to be mitigated if you clear the build list before generating again


plugin/percol shellcheck

Description
Adopt _command_exists, use _log_warning, some cleanup, shellcheck, and finally shfmt.
Motivation and Context
This was part of my _command_exists branch (#1938) but was out of scope.
How Has This Been Tested?
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] My code follows the code style of this project.
[x] If my change requires a change to the documentation, I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] If I have added a new file, I also added it to clean_files.txt and formatted it using lint_clean_files.sh.
[ ] I have added tests to cover my changes, and all the new and existing tests pass.

Rebased on master, no other changes to PR

I'm pretty happy with this so I'm approving it BUT ...
There could have been some acknowledgement that this PR deprecates using tac when present in favor of always using tail -r ...

I did. It's in the commit notes: according to shellcheck, the _tac alias simply never worked. Please don't claim that I did not specifically call that out.

I did.
TIL that clicking the ... on the commit note in the PR comments will expand them (I will be doing this going forward)
The alias approach was definitely borked !
BUT
There are other ways to accomplish the tac || tail -r invocation.
I still feel that choosing to deprecate tac was worth calling out in the PR description.
SIDE NOTE:
I also wish the original PR for this had a comment in the code explaining the use.
I was not able to confirm either of :

tac is noticeably more performant than tail -r
tail -r is not fully portable

Without one of those being true, I'm not sure why one would add that logic present in the first place ...

I think this is mergable right now, the tac thing can be opened as a separate issue

@davidpfarrell, I had actually never heard of tac before and had to Google it. (cat, backwards...😑) Doesn't exist on Mac anyway.
Since literally zero people use this plugin, as it's been broken since original commit (except for someone who has _tac previously defined in their environment, or has some kind of double-invocation bug where the plugin gets loaded, the function gets run (thereby defining the alias, but failing to run successfully), then the plugin gets loaded again (this time with the alias already defined)), I didn't think any further about the impact of using cat or tail -r.
That said, I'm trying out percol now so maybe I'll have some more thoughts in the future or at least be able to offer some intuition about how this runs.


Upgrade to Doobie 0.4.4

Tests pass, but problably there's more to check to ensure that these changes don't break anything.
I need this update to keep working on #2684

Looks like all the builds are failing though, so something is up...

@drostron I think it would be good for you to have a quick look at this to make sure I didn't miss anything

I managed to fix some dependency issues, and now tests seem to pass. However, I can't figure out why one of the build jobs fails here: https://travis-ci.org/quasar-analytics/quasar/jobs/269468912#L1830
Looks like the Quasar app exits prematurely?

@kciesielski I bounced the job. Sometimes travis does weird things.  We'll see if it persists.

@djspiewak thanks, but looks like the problem remains https://travis-ci.org/quasar-analytics/quasar/jobs/269468912#L1812
By the way - I just checked and Doobie 0.5.x and future versions will be cats-only...

@kciesielski Looks like the metastore might be causing Quasar to quit right after starting up. Have you tried running web/run in sbt to see if the server starts up properly?

@jedesah I didn't check that. I'll verify, however I'm wondering why it happens only when CONNECTOR=mongodb_2_6

@kciesielski That specific travis job has extra responsibility such as making sure the app starts properly. Just a historical artifact of Mongo 2.6 being the first connector we supported

@jedesah Looks like it starts and runs until I stop it.
I initialized the metastore on PostgreSQL with these steps (it's my first time running the actual app):

I configured ~/.config/quasar/quasar/quasar-config.json to point to my local Postgres: docker container initialized with docker/scripts/setupContainers
I initialized metastore using java -jar quasar-repl-assembly-20.14.13.jar initUpdateMetaStore
I started web/run. Output:

[info] Running quasar.server.Server
Read web config from /home/kc/.config/quasar/quasar-config.json
Using metastore: jdbc:postgresql://localhost:5432/metastore
Server started listening on port 8080
Press Enter to stop.

And I can call webservices locally, etc.

@kciesielski I pulled down your branch and see the following error when using the default config which uses H2.
root:PR-2686> repl/run initUpdateMetaStore
[info] Compiling 1 Scala source to /Users/dave/code/quasar/.targets/core/scala-2.11/classes...
[info] Running quasar.repl.Main initUpdateMetaStore
Read core config from /Users/dave/Library/Application Support/quasar/quasar-config.json
Error: While initializing or updating: unexpected schema version; found: 1; latest known: 0. Is the metastore database running?

It is opaque, somewhat misleading, and I haven't tracked down the cause, but it is reproducible locally. You'll see the default config used when you remove your quasar-config.json. Like you, I don't see the error when running against PostgreSQL.

@drostron I don't get such error with default settings. My output:
> repl/run initUpdateMetaStore
[info] Running quasar.repl.Main initUpdateMetaStore
Configuration file '/home/kc/.config/quasar/quasar-config.json' not found, using default configuration.

and then ~/.config/quasar/quasar-metastore.db.mv.db gets silently created. Calling web/run then starts the app:
[info] Running quasar.server.Server
Configuration file '/home/kc/.config/quasar/quasar-config.json' not found, using default configuration.
Using metastore: jdbc:h2:/home/kc/.config/quasar/quasar-metastore.db
Server started listening on port 20223
Press Enter to stop.

@kciesielski NM and sorry for the confusion, I swore I had removed my H2 database, but indeed one from slamdata-backend was still around (so a reasonable error message after all). I now see the same behavior you're seeing locally. As for Travis, still unclear.

I'm going to give our newly enabled Travis debug mode a whirl to see if it yields increased visibility.

@kciesielski Regarding your note from here:

By the way - I just checked and Doobie 0.5.x and future versions will be cats-only...

The same is also true of http4s, monocle, fs2, and other dependencies.  We'll be shimming back to scalaz at boundaries, with the goal of making it as transparent as possible internally.  If I can ever crack the implicit resolution issues, my shims project will probably be the way to go there.  If not, we'll have some special-cased utilities within quasar which will at least be functional.

The failure is a recent introduction and unrelated to this change, #2693.

@kciesielski I added the version: revision label. For future PRs a version label is required by our merge script and is applied by the PR author, see Versioning.


Gettting error only on iOS devices: " Looking up a deactivated widget's ancestor is unsafe."

Hey guys,
I have a very strange error that only occurs when I'm using IOS device.
Android devices work just fine.
Both devices are using the exact same dart code.
I use a show dialogue function to go to a menu where there is an option to use the image picker from the camera or from the photos library.
When the option is selected, the image picker opens with the relative option. Then you can select image. Once an image is selected the navigator pops the previous menu and then tries to upload the file to firebase to use as a Cached Network Image.
Also this log is appearing sometimes:
NoSuchMethodError: The method 'ancestorStateOfType' was called on null.
Too see Android screen recording( working ): https://youtu.be/L6JKH5AAYBg
And iOS Screen recording( not working ):  https://youtu.be/xNKIdKGh69A
Steps to Reproduce

Show dialog Image picker options menu  =>
Show image picker =>
Select Image =>
await Upload image to firestore and return url =>
App Crashes with Error:

flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building Builder(dirty):
flutter: Looking up a deactivated widget's ancestor is unsafe.
flutter: At this point the state of the widget's element tree is no longer stable. To safely refer to a
flutter: widget's ancestor in its dispose() method, save a reference to the ancestor by calling
flutter: inheritFromWidgetOfExactType() in the widget's didChangeDependencies() method.
Logs
  Andrews-MBP:dial_in_v1 earyzhe$ flutter run --verbose

[  +31 ms] executing: [/Users/earyzhe/dev/SDKs/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +38 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/Users/earyzhe/dev/SDKs/flutter/] git rev-parse --abbrev-ref HEAD
[  +10 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[        ] executing: [/Users/earyzhe/dev/SDKs/flutter/] git ls-remote --get-url origin
[  +12 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[        ] executing: [/Users/earyzhe/dev/SDKs/flutter/] git log -n 1 --pretty=format:%H
[  +19 ms] Exit code 0 from: git log -n 1 --pretty=format:%H
[        ] d166f4df3eebc084b9343c64ba9e6407120e765c
[        ] executing: [/Users/earyzhe/dev/SDKs/flutter/] git log -n 1 --pretty=format:%ar
[  +11 ms] Exit code 0 from: git log -n 1 --pretty=format:%ar
[        ] 12 days ago
[        ] executing: [/Users/earyzhe/dev/SDKs/flutter/] git describe --match v*.. --first-parent --long --tags
[  +60 ms] Exit code 0 from: git describe --match v*.. --first-parent --long --tags
[        ] v1.2.1-1-gd166f4df3
[ +392 ms] executing: /Users/earyzhe/Library/Android/sdk/platform-tools/adb devices -l
[   +8 ms] Exit code 0 from: /Users/earyzhe/Library/Android/sdk/platform-tools/adb devices -l
[        ] List of devices attached
ZY3229ZJWW             device usb:336855040X product:nicklaus_fn model:Moto_E__4__Plus device:nicklaus_fn transport_id:3
emulator-5554          device product:sdk_gphone_x86 model:Android_SDK_built_for_x86 device:generic_x86 transport_id:2
[  +14 ms] executing: idevice_id -h
[ +216 ms] executing: which ideviceinstaller
[   +5 ms] Exit code 0 from: which ideviceinstaller
[        ] /usr/local/bin/ideviceinstaller
[        ] executing: which iproxy
[   +5 ms] Exit code 0 from: which iproxy
[        ] /usr/local/bin/iproxy
[   +4 ms] /usr/bin/xcrun simctl list --json devices
[ +195 ms] More than one device connected; please specify a device with the '-d ' flag, or use '-d all' to act on all devices.
[   +5 ms] /Users/earyzhe/Library/Android/sdk/platform-tools/adb -s ZY3229ZJWW shell getprop
[  +80 ms] ro.hardware = mt6735
[        ] ro.build.characteristics = default
[   +1 ms] /Users/earyzhe/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell getprop
[  +27 ms] ro.hardware = ranchu
[   +7 ms] Moto E 4 Plus             • ZY3229ZJWW                               • android-arm • Android 7.1.1 (API 25)
[   +1 ms] Android SDK built for x86 • emulator-5554                            • android-x86 • Android 9 (API 28) (emulator)
[        ] Andrew's iPhone           • 6aa0c9719a85c174869a09656237b42f23701a91 • ios         • iOS 12.1.4
[        ] iPhone XR                 • B44465DC-EB35-43E8-99A0-B1C3765DAD86     • ios         • iOS 12.1 (simulator)
[  +14 ms] "flutter run" took 929ms.
[        ] "flutter run" took 929ms.
#0      throwToolExit (package:flutter_tools/src/base/common.dart:24:3)
#1      RunCommand.validateCommand (package:flutter_tools/src/commands/run.dart:240:7)

#2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:525:11)

#3      FlutterCommand.run. (package:flutter_tools/src/runner/flutter_command.dart:482:33)

#4      AppContext.run. (package:flutter_tools/src/base/context.dart:142:29)

#5      _rootRun (dart:async/zone.dart:1124:13)
#6      _CustomZone.run (dart:async/zone.dart:1021:19)
#7      _runZoned (dart:async/zone.dart:1516:10)
#8      runZoned (dart:async/zone.dart:1463:12)
#9      AppContext.run (package:flutter_tools/src/base/context.dart:141:18)

#10     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:473:20)
#11     CommandRunner.runCommand (package:args/command_runner.dart:196:27)

#12     FlutterCommandRunner.runCommand. (package:flutter_tools/src/runner/flutter_command_runner.dart:396:21)

#13     AppContext.run. (package:flutter_tools/src/base/context.dart:142:29)

#14     _rootRun (dart:async/zone.dart:1124:13)
#15     _CustomZone.run (dart:async/zone.dart:1021:19)
#16     _runZoned (dart:async/zone.dart:1516:10)
#17     runZoned (dart:async/zone.dart:1463:12)
#18     AppContext.run (package:flutter_tools/src/base/context.dart:141:18)

#19     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:356:19)

#20     CommandRunner.run. (package:args/command_runner.dart:111:29)
#21     new Future.sync (dart:async/future.dart:224:31)
#22     CommandRunner.run (package:args/command_runner.dart:111:11)
#23     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:242:18)
#24     run. (package:flutter_tools/runner.dart:60:20)

#25     AppContext.run. (package:flutter_tools/src/base/context.dart:142:29)

#26     _rootRun (dart:async/zone.dart:1124:13)
#27     _CustomZone.run (dart:async/zone.dart:1021:19)
#28     _runZoned (dart:async/zone.dart:1516:10)
#29     runZoned (dart:async/zone.dart:1463:12)
#30     AppContext.run (package:flutter_tools/src/base/context.dart:141:18)

#31     runInContext (package:flutter_tools/src/context_runner.dart:48:24)

#32     run (package:flutter_tools/runner.dart:51:10)
#33     main (package:flutter_tools/executable.dart:52:9)

#34     main (file:///Users/earyzhe/dev/SDKs/flutter/packages/flutter_tools/bin/flutter_tools.dart:8:3)
#35     _startIsolate. (dart:isolate/runtime/libisolate_patch.dart:298:32)
#36     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)

 Run `flutter analyze` and attach any output of that command below.
 If there are any analysis errors, try resolving them before filing this issue.

info • The exception variable 'e' isn't used, so the 'catch' clause can be removed • lib/repos/flutter_country_picker.dart:20:33 •
unused_catch_clause
info • The value of the field '_animation' isn't used • lib/widgets/custom_widgets.dart:587:27 • unused_field
info • 'CupertinoDialog' is deprecated and shouldn't be used • lib/widgets/popups_widgets.dart:104:16 • deprecated_member_use

Andrews-MBP:dial_in_v1 earyzhe$ flutter doctor -v
[✓] Flutter (Channel stable, v1.2.2-pre.1, on Mac OS X 10.14.3 18D42, locale en-GB)
• Flutter version 1.2.2-pre.1 at /Users/earyzhe/dev/SDKs/flutter
• Framework revision d166f4df3e (12 days ago), 2019-02-28 07:52:52 +0000
• Engine revision 3757390fa4
• Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /Users/earyzhe/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
• All Android licenses accepted.
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 10.1, Build version 10B61
• ios-deploy 1.9.4
• CocoaPods version 1.5.3
[✓] Android Studio (version 3.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 33.3.1
• Dart plugin version 182.5215
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
[✓] IntelliJ IDEA Community Edition (version 2018.3.4)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin version 33.2.2
• Dart plugin version 183.5901
[✓] VS Code (version 1.32.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 2.24.0
[✓] Connected device (4 available)
• Moto E 4 Plus             • ZY3229ZJWW                               • android-arm • Android 7.1.1 (API 25)
• Android SDK built for x86 • emulator-5554                            • android-x86 • Android 9 (API 28) (emulator)
• Andrew's iPhone           • 6aa0c9719a85c174869a09656237b42f23701a91 • ios         • iOS 12.1.4
• iPhone XR                 • B44465DC-EB35-43E8-99A0-B1C3765DAD86     • ios         • iOS 12.1 (simulator)
• No issues found!

Are you able to provide the minimum code required to reproduce?

Hey Tom .
Here is what i think is relevant. Thanks for taking a look.
class ProfilePageState extends State<ProfilePage> {
  List<Widget> _appBarActions = [Container()];
  AssetImage _background;

  void initState() {
    _background = new AssetImage(
        Images.getProFileTypeBackgroundPhoto(widget._model.type));
    assert(widget._model.isFromUserFeed != null, 'isFromUserFeed is null');
    super.initState();
  }

  @override
  Widget build(BuildContext context) => ScopedModel<ProfilePageModel>(
      model: widget._model,
      child: StreamBuilder<bool>(
          stream: widget._model.isEditingStream,
          initialData: false,
          builder: (BuildContext context, AsyncSnapshot<bool> isEditing) =>
              Scaffold(
                appBar: PreferredSize(
                    preferredSize: Size.fromHeight(50),
                    child: ProfilePageAppBar()),
                body: ListView(children: <Widget>[
                  ProfileHeaderWidget(key: UniqueKey(), backround: _background),
                  ProfilePageBody(),
                ]),
                bottomNavigationBar: ProfilePageBottomBar(),
              )));
}

class ProfileHeaderWidget extends StatelessWidget {
  final AssetImage backround;

  ProfileHeaderWidget({@required Key key, @required this.backround})
      : super(key: key);

  @override
  Widget build(BuildContext context) => ScopedModelDescendant<ProfilePageModel>(
      builder: (BuildContext modelContext, _, ProfilePageModel model) =>
          StreamBuilder<bool>(
              stream: model.isEditingStream,
              initialData: false,
              builder: (BuildContext context, AsyncSnapshot<bool> isEditing) {
                return Container(
                  decoration: BoxDecoration(
                      image:
                          DecorationImage(image: backround, fit: BoxFit.cover)),
                  child: Container(
                      decoration: new BoxDecoration(
                          color: AppColors.getColor(ColorType.lightBackground)
                              .withAlpha(200)),
                      child: Row(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Expanded(
                            child: Container(),
                          ),

                          // Profile Image
                          ProfilePageImage(),

                          !model.isFromUserFeed &&
                                  ProfilePageModel.of(context) != null
                              ? isEditing.data
                                  ? PublicProfileSwitch()
                                  : Expanded(
                                      child: Container(),
                                    )
                              : Expanded(
                                  child: Container(),
                                ),
                        ],
                      )),
                );
              }));
}

class ProfilePageImage extends StatelessWidget {

  Future _getimage(BuildContext context, ProfilePageModel model) async {
    PopUps.showCircularProgressIndicator(context);

    var filePath = await PopUps.getimageFromCameraOrGallery(context)
        .catchError(Sentry.report);

    if (filePath != null || filePath is String) {
      String url = await Dbf.upLoadFileReturnUrl(File(filePath), [
        DatabaseIds.user,
        model.userId,
        DatabaseIds.images,
        model.databaseId
      ])
          .timeout(Duration(seconds: 16),
              onTimeout: () =>
                  throw (TimeoutException('Upload is taking too long')))
          .catchError((error) {
        if (error is TimeoutException) {
          onImageTimeout(context);
        } else {
          Sentry.report(error);
        }
      });

      /// Wait until image has saved
      if (model.imageUrl != null && model.imageUrl != '') {
        MainBloc.of(context).cache.setFile(url, File(filePath));
      }
      model.profileImageUrl = url;
      Navigator.pop(context);
    } else if (filePath is ResetImageRequest) {
      model.profileImageUrl = null;
      Navigator.pop(context);
    } else {
      Navigator.pop(context);
    }
  }

  void onImageTimeout(BuildContext context) {
    Navigator.pop(context);
    PopUps.showAlert(
        'Warning',
        "The picture is taking too long to upload. Maybe it's your internet connection ",
        'ok',
        () => Navigator.pop(context),
        context);
  }

  @override
  Widget build(BuildContext context) =>

      /// Profile Image

      ScopedModelDescendant(
          builder: (BuildContext modelContext, _, ProfilePageModel model) =>
              StreamBuilder<Profile>(
                  stream: model.profileStream,
                  builder:
                      (BuildContext context, AsyncSnapshot<Profile> snapshot) {
                    String placeholder = snapshot.hasData
                        ? snapshot.data.placeholder
                        : model.placeholder;
                    String imageUrl = snapshot.hasData
                        ? snapshot.data.imageUrl
                        : model.imageUrl;
                    String objectId = snapshot.hasData
                        ? snapshot.data.objectId
                        : model.objectId;

                    return Container(
                        padding: EdgeInsets.all(20.0),
                        child: InkWell(
                            child: CircularCachedProfileImage(
                                placeholder, imageUrl, 200, objectId),
                            onTap: () {
                              if (model.isEditing) {
                                _getimage(context, model);
                              }
                            }));
                  }));
}

 static Future<dynamic>getimageFromCameraOrGallery(BuildContext contextIn)async{

    var result = await showDialog(context: contextIn, builder: (BuildContext context){
      return CupertinoImagePicker() ;})
    .catchError(Sentry.report);

    return result;
  }

class CupertinoImagePicker extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Center(
            child: Container(
                width: 300,
                child: CupertinoActionSheet(
                  title: Text(
                    StringLabels.photoSource,
                    style: Theme.of(context).textTheme.subtitle,
                  ),
                  actions: <Widget>[
                    CupertinoImagePickerDiolog(ImageSource.camera),
                    CupertinoImagePickerDiolog(ImageSource.gallery),
                    CupertinoDialogAction(
                      isDestructiveAction: true,
                      child: Text('Reset to default', style: Theme.of(context).textTheme.display1),
                      onPressed: () {
                        PopUps.showTwoOptionsDiolog(
                        context,
                        title:'Warning',
                        message:' Are you sure you want to delete this image and reset it to default',
                        actionOneTitle: 'Yes',
                        actionOne: () { Navigator.pop(context, ResetImageRequest);},
                        actionTwoTitle: 'No',
                        actionTwo: () { Navigator.pop(context);},);})
                  ],
                )));
  }
}

class CupertinoImagePickerDiolog extends StatelessWidget {
  final ImageSource _imageSource;

  CupertinoImagePickerDiolog(this._imageSource);

  @override
  Widget build(BuildContext context) {
    String _title = '';

    if (_imageSource == ImageSource.camera) {
      _title = StringLabels.camera;
    } else {
      _title = StringLabels.photoLibrary;
    }

    return CupertinoDialogAction(
        child: Text(_title, style: Theme.of(context).textTheme.display1),
        isDestructiveAction: false,
        onPressed: () =>  showImagePicker(context));
  }

  void showImagePicker(BuildContext context) {
    ImagePicker.pickImage(
            maxWidth: 512.0, maxHeight: 384.0, source: _imageSource)
        .then((image) => handleImagePickerReturn(image, context))
        .catchError((error) => print(error));
  }

  void handleImagePickerReturn(
      dynamic image, BuildContext context) async {
    if (image != null) {
      ///Image is a File
      String filePath = (image as File).path;
      Navigator.pop(context, filePath);
    }
  }
}

Hi @earyzhe
if the issue persist with the latest stable version of flutter
could you please provide your updated flutter doctor -v ,
your flutter run --verbose
and if possible a reproducible minimal code sample.
Thank you

Hi @earyzhe
the code you kindly provided seems to partially rely on fluttefire plugins;
if you are still experiencing the issue with the latest stable (or above)
could you please provide a runnable minimal code sample
that use only first party plugins together
with your updated flutter doctor -v
and your pubspec.yaml
thank you

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Roll engine e64af7510e89..2494abdda728 (2 commits)

https://github.com/flutter/engine/compare/e64af7510e89...2494abdda728
git log e64af7510e89..2494abdda728 --no-merges --oneline
2494abdda Roll src/third_party/skia 273fa2f3bd0b..62cc5f581747 (7 commits) (flutter/engine#6780)
daeeedafa Roll src/third_party/skia 67f5c0ceac22..273fa2f3bd0b (1 commits) (flutter/engine#6779)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Auto-roller completed checks. About to merge.


This part of the project could be better documented: (explain what)

I like how you have provided some markdowns under the questions 1/3/7 to help describe your actions as it makes it a lot easier to understand what you are doing. However, doing this for the other questions too would have been great.

I would recommend, when writing the code, adding descriptions on each step so that the reader can understand the code more easily.


Delete manifests/j/JanDeDobbeleer/OhMyPosh/7.60.0 directory

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@wingetbot run

@wingetbot run


Crash when used alongside boost::propery_tree XML parser.

Here  is the description of the problem. I'm not sure whether this is problem of the Simple-Web-Server or the problem is in some of the used boost libraries.

Have you tried with the latest version/master? The implementation now is simpler and has fewer dependencies.

Boost.coroutine is no longer a dependency in v2.0.0, so the issue is most likely fixed in the latest version?

I tested it with v2.0 of Simple-Web-Server and my web service no longer crashes. Thank you.

Thank you for verifying.


Pytorch runtime not included when project is built as a jar

Description
We have our ONNX model, and we're trying to use it in our app. Running the project from the IDE works just fine, but running the jar file produces this error. We debugged this issue and found that the supportedEngines in IDE runtime includes ONNXRuntime and PyTorch, but the JAR file includes ONNXRuntime only. The issue happens when we reach StackBatchifier.batchify(), on String inputName = ((NDArray)inputs[0].get(i)).getName();
We have the following dependencies in our gradle file:
api("org.apache.logging.log4j:log4j-slf4j-impl:2.18.0")     api("ai.djl:model-zoo:0.21.0-SNAPSHOT")     api("ai.djl.huggingface:tokenizers:0.21.0-SNAPSHOT")     api("ai.djl.pytorch:pytorch-model-zoo:0.21.0-SNAPSHOT")     api("ai.djl.onnxruntime:onnxruntime-engine:0.19.0")     api("org.jetbrains.kotlin:kotlin-stdlib:1.7.20")
Do we need to put any jar configurations for it to work?
Expected Behavior
Pytorch should be included in the supported engines
Error Message
Exception in thread "main" ai.djl.translate.TranslateException: java.lang.UnsupportedOperationException: This NDArray implementation does not currently support this operation
at ai.djl.inference.Predictor.batchPredict(Predictor.java:189)
at ai.djl.inference.Predictor.predict(Predictor.java:126)
at ProfanityPredictionModel.predict(ProfanityPredictionModel.kt:30)
at TestModel.main(TestModel.kt:18)
Caused by: java.lang.UnsupportedOperationException: This NDArray implementation does not currently support this operation
at ai.djl.ndarray.NDArrayAdapter.getAlternativeArray(NDArrayAdapter.java:1225)
at ai.djl.ndarray.NDArrayAdapter.getNDArrayInternal(NDArrayAdapter.java:1173)
at ai.djl.ndarray.NDArrays.stack(NDArrays.java:1825)
at ai.djl.ndarray.NDArrays.stack(NDArrays.java:1785)
at ai.djl.translate.StackBatchifier.batchify(StackBatchifier.java:52)
at ai.djl.inference.Predictor.processInputs(Predictor.java:217)
at ai.djl.inference.Predictor.batchPredict(Predictor.java:177)
... 3 more

How you package your jar file?  Do you have network access when you run your app?
See our packaging demo: https://github.com/deepjavalibrary/djl-demo/tree/master/development/fatjar

How you package your jar file?  Do you have network access when you run your app?
See our packaging demo: https://github.com/deepjavalibrary/djl-demo/tree/master/development/fatjar

Tried many configurations, including fat jar, with no success. And we do have internet connection.
We noticed one thing while debugging, if we change the order of the libraries in the jar build, the first one is the only one that is loaded. So when pytorch engine is above onnxruntime engine, only pytorch engine is loaded and we get this error:
Exception in thread "main" ai.djl.repository.zoo.ModelNotFoundException: ModelZoo doesn't support specified engine: OnnxRuntime         at ai.djl.repository.zoo.Criteria.loadModel(Criteria.java:121)         at ProfanityPredictionModel.loadModel(ProfanityPredictionModel.kt:24)         at ProfanityPredictionModel.predict(ProfanityPredictionModel.kt:29)         at TestModel.main(TestModel.kt:18)

@HishamGarout
You might hit this issue #940, DJL use ServiceLoader, you need merge service provider resource file when creating fatjar.
Please pay attention to our fatjar's pom.xml is shade plugin section, or gradle's shadowJar plugin


Add db.ping()

it will send 3 types data read, write and average ms that coult help to mesure the Database speed

That is out of the scope of this project. This project is aimed at helping beginners use a database quick and easily without worrying about speed or efficiency. If that is your main concern I would suggest an other library than this one as it is not created to be used in a case where speed and efficiency is the priority.


Support Unix domain sockets

I found this piece of code, which unfortunately does not work with the official Mongo driver:
http://www.allanbank.com/mongodb-async-driver/userguide/unix_domain_sockets.html
This pull request does a couple of things that should fix the incompatibilities that I observed that prevented junixsocket from working.
Unix sockets aside - I think these changes make sense on their own.

Fixed the build upstream and now the tests here pass as expected.

I've rebased on the latest master.
I've also added a commit that should allow usage with Socket/SocketAddress implementations other than InetSocket/InetSocketAddress. So in theory with some SocketFactory magic in the MongoClientOptions you should be able to use something like jnr-unixsocket.

I rebased and added a new commit. The new commit implements Unix sockets inside the main codebase (as opposed to the possibility of a user-defined SocketFactory). The change is less than 30 lines. There's only one change in the public API - the addition of a new constructor to ServerAddress.
The previous commits are related to the latest change, but they also make sense on their own (as I've already mentioned).
The implementation uses jnr-unixsocket which in turn uses jnr-ffi. The latter is interesting because it is the basis of JEP 191 which is soon to be release in Java 9. Java Native Runtime libraries are cool, because there is no need to manually install native components or to change the environment (which is a drawback of junixsocket).
Here are some notes:

I've not tested it with clusters. I doubt it's a use case.
The jnr-unixsocket dependency is optional. In case the JAR is missing the connection will ultimately fail with:
Caused by: java.lang.ClassNotFoundException: jnr.unixsocket.UnixSocketAddress
If it is run on Windows (with jnr-unixsocket present in the classpath) it will fail with something like:
Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=\tmp\mongodb-27017.sock:0, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoException: java.lang.UnsatisfiedLinkError: The operation completed successfully.}, caused by {java.lang.UnsatisfiedLinkError: The operation completed successfully.}}]
I have some examples I played with, but I wouldn't call them tests. If there is interest I can put together some real tests based on them.

For reference, the associated Jira issue: https://jira.mongodb.org/browse/JAVA-163

Hi @joankaradimov thanks for updating this PR.  Our focus right now is on driver support for MongoDB 3.6, but this is definitely on our radar to review as soon as our time frees up a bit.

There were some conflicts with latest master. I've rebased and force pushed the branch.

Hi @joankaradimov  thanks for your PR, just to let you know your work formed the base for Unix Domain Socket support.
I rebased your commits into master d2ff8e12a3352d76a297178f75177d7093295ebe and added MongoConnectionString support in e1680a252ae5122ac77f942eed4625d589d4ec72
Many thanks for contribution.
Ross


Write process description, EA-LSTM

Example here: https://github.com/jordansread/lakesurf-data-release/blob/main/in_text/text_data_release.yml#L784

Another example is here: https://github.com/padilla410/lake-temp-mo-data-release/blob/1b453fc062bcf7dcd4d26fc722a43c1e357db0cb/in_text/text_data_release.yml#L447


Model Selection Issue

In your code, you are using the test set and auc metric for model selection, what metric should I use if the test set label is not reliable??

Hi, could you elaborate what you specifically meant by unreliable test set? Do you mean your labels are actually not the correct labels for their corresponding images?

Yeah, the labels I can get may be noisy.

I’m closing this due to inactivity. Please reopen if you still encounter this issue with the latest version.


Cross-compiling GLSL to HLSL produces invalid HLSL with overlapping register/spaces

I am cross-compiling from GLSL to HLSL via SPIRV and ending up with HLSL that doesn't compile.  I believe the interesting bits of the GLSL shader are here:

layout(set = 2, binding = 4) uniform texture2D light_textures[MAX_LIGHT_TEXTURES];
layout(set = 2, binding = 5) uniform texture2D shadow_textures[MAX_LIGHT_TEXTURES];

Produces this output in HLSL:

Texture2D light_textures[16] : register(t4, space2);
Texture2D shadow_textures[16] : register(t5, space2);

When you compile the HLSL, you end up with this error:

error X4610: SRV binding ranges overlap for range T[5:20]

Manually changing the t5 above to t20 prevents the slots from overlapping and seems to solve the issue, since light_textures is an array of 16 float4.  Curious if I'm missing some configuration that would do this for me, or if this is a bug.

By default, SPIRV-Cross just passes the binding information through. If you want the generated HLSL to have different bindings, you can pass some HLSLResourceBinding structures to the compiler. If you're using the command line, unfortunately there is no way to specify these yet.

It sounds like what I'd need to do is reflect over the SPIRV and build a custom resource mapping before compiling to HLSL?  I'm definitely new to this space.  Naively, I'd think it would be valuable to have an option to produce valid HLSL at the cost of changing the bindings automatically.  Then the HLSL could be compiled and reflected as DXBC to produce the root signatures for a DX12 implementation without the intermediate SPIRV reflection.
If it's a goal of the SPRIV -> HLSL compilation to produce valid HLSL that will compile via FXC, it does seem like that process should fail instead of just passing through the bindings.  Of course, my assumption here is that the HLSL is in fact invalid, when it may just be invalid for FXC.  Maybe there are other targets that don't mind the overlapping registers?

Either you need to remap bindings yourself to make it work, or you can use the auto binding API where register information is not emitted at all, and you would rely on reflection on the HLSL. See: https://github.com/KhronosGroup/SPIRV-Cross/blob/master/spirv_hlsl.hpp#L185
SPIRV-Cross does not have a binding validator currently, generally it is somewhat redundant to do the exact same validation that FXC would do, just in the next step in the toolchain.


Laggy hands

Your content examples are awesome, but there's an odd issue with the movement of the hand spheres and any items you pick up. like they are running at a much lower fps than 90.
The visual teleport components don't exhibit this issue though.
I made a video to show what I mean. (Jump to 0:17 to skip me fumbling with the hmd)
Dropbox: mitch_vr_hand_problem.mp4 (10 MB)
Everything is smooth and perfect, until you move your hands or pick up items.
PS. Thanks for everything you do :)

If you type 'Stat FPS' into the console, what kind of numbers are you getting? From the frame timing panel it looks like your GPU isn't hitting the frame rate (although the judder shouldn't be this bad even at 45fps).
You could try lowering the screen percentage and trying to get 90fps and see if that helps.
I only have my Rift on me at the moment so I can't really test Vive perf, but I'm not seeing the judder on my end.
I'll test with Vive later today and see if I can reproduce it.

It was 45 fps. and it shows I'm missing a lot of frames, so it would appear I have a performance issue with Unreal Engine, despite running on a GTX 1080.
I migrated your map to a mobile/low quality new project and was then able to achieve 90 fps and the hand judder was gone.
Strange how only the hands were affected so badly and not anything else though.

I went back to your project and started playing with r.ScreenPercentage, first setting it to 100%, which sped things up a lot, clearing 90 fps easily, then tried 200% and again, still holding 90 fps and looking great, but the hands were still juddering, then I bashed the motion controller on my desk trying to reach for the game cartridge and Unreal crashed. :D

I noticed the r.ScreenPercentage is set to 280% by default. Is that something that is saved with your project or is my system doing that? Isn't that a bit overkill?
What system do you have?

Weird my project has a default screen percentage of 140%
I tried it on my vive as well and had no issues with performance (I also have a GTX1080) I recently changed the project to the Forward renderer but that should actually be better performance than the default differed.
So in all honesty I'm not too sure, I'll keep on looking, but it's my understanding that you can't set the SP engine wide so I'm don't really know where the 280% came from (just as a side that's a total resolution of 3024x3360 per eye or 6048x6720 at 90fps or 3.7 billion pixels/second compared to the 124 million pixels/second of 1080p60 so understandable that at GTX1080 can't quite hit it)


change tensorboard html data request path to relative

Tensorboard use a  absolute path  for data request like /data/runs, /data/graph, /data/logdir.
If someone want to deploy tensorboard with a path http://host/tensorboard/, the data xmlhttprequest would be  http://host/data/runs,  thus give not found 404 errors and tensorboard doesn't work properly.
To make the data request with http://host/tensorboard/data/runs, a relative  xmlhttprequest url for data request should be used.  The default dataDir = '/data'; will change to dataDir = 'data';
The default  dataDir to dataDir = 'data' will always work whenever tf-tensorboard.html is placed or any context path is set.

Can one of the admins verify this patch?

Changing the dist/tf-tensorboard.html file alone isn't enough. Can you please change the Typescript source too (I believe it will be router.ts)

@danmane  I have done it, thanks for your reminding.

@dandelionmane Can you take another look, please?

Sorry for losing track of this. I already made the change (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tensorboard/components/tf_backend/router.ts), and we will be re-generating the tf-tensorboard.html file with this change and more this week, so I'm going to close the pull request.


refactor(cmark/inline_struct): replace List with Array

Pull Request Test Coverage Report for Build 102
Details

151 of 251 (60.16%)  changed or added relevant lines in 11 files are covered.
5 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.4%) to 74.512%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/cmark/block.mbt
0
1
0.0%

src/cmark/block_struct.mbt
6
7
85.71%

src/cmark/mapper.mbt
1
2
50.0%

src/cmark/parser.mbt
6
7
85.71%

src/cmark_html/html.mbt
2
3
66.67%

src/cmark_base/link.mbt
0
2
0.0%

src/cmark_base/runs.mbt
1
3
33.33%

src/cmark/block_line.mbt
1
5
20.0%

src/cmark_base/raw_html.mbt
0
5
0.0%

src/cmark/inline.mbt
10
40
25.0%

Files with Coverage Reduction
New Missed Lines
%

src/cmark/inline.mbt
1
41.3%

src/cmark/mapper.mbt
1
28.07%

src/cmark/block_struct.mbt
1
79.94%

src/cmark/inline_struct.mbt
2
76.27%

Totals

Change from base Build 99:
0.4%

Covered Lines:
1412

Relevant Lines:
1895

💛  - Coveralls


📈 SSW Rules - LoggerMessage Templates

Source: https://learn.microsoft.com/en-us/dotnet/core/extensions/high-performance-logging

High-Performance Logging with LoggerMessage in .NET
Logging is a critical component in modern applications, but it can introduce performance overhead, especially in high-throughput or latency-sensitive environments. The LoggerMessage class in .NET offers a solution to reduce the performance costs associated with logging. By utilizing this pattern, developers can optimize logging with fewer object allocations and reduced computational overhead.
Key Performance Benefits of LoggerMessage

Reduced Object Allocations: Traditional logger extension methods often require "boxing" of value types (e.g., integers or dates) into objects. LoggerMessage avoids this by using static Action fields and strongly typed parameters, eliminating the need for boxing and reducing memory overhead.

Efficient Message Parsing: Logger extension methods parse the log message template each time a log entry is made. In contrast, LoggerMessage only parses the template once when the message is defined, leading to fewer computations and faster execution during logging.

Structured Logging: With LoggerMessage, log templates can include placeholders that are filled with specific log data, such as Item or DateTime. This makes it easier to integrate structured logging with logging frameworks like Serilog, which can enrich logs with meaningful event names.

How to Use LoggerMessage
To use the LoggerMessage pattern, you define a static Action delegate for logging a message. The LoggerMessage.Define method is used to create these delegates with parameters such as:

Log Level (e.g., LogLevel.Information)
Event ID (for tracking specific events)
Message Template (a named format string with placeholders)

For example:
private static readonly Action<ILogger, WorkItem, Exception> s_processingPriorityItem =
    LoggerMessage.Define<WorkItem>(
        LogLevel.Information,
        new EventId(1, nameof(PriorityItemProcessed)),
        "Processing priority item: {Item}");

Each log message is represented as an Action delegate. This delegate is then invoked using strongly typed extension methods like PriorityItemProcessed, making it simple to log information in a structured manner with minimal performance impact.
Logging with Scope
In addition to defining individual log messages, you can define a log scope using LoggerMessage.DefineScope. This allows you to associate a series of log entries with a specific context (e.g., the time at which an operation started). This can be helpful for tracking the lifecycle of complex operations.
Example of defining a log scope:
private static readonly Func<ILogger, DateTime, IDisposable?> s_processingWorkScope =
    LoggerMessage.DefineScope<DateTime>("Processing scope, started at: {DateTime}");

You can then use this scope in your code:
using (IDisposable? scope = logger.ProcessingWorkScope(DateTime.Now))
{
    // Perform work and log messages
}

Optimizing Further with ILogger.IsEnabled
For even better performance, you can check whether logging is enabled for a particular log level using ILogger.IsEnabled(LogLevel). This check ensures that logging statements aren't called when the log level is not configured, thus avoiding unnecessary object allocations and improving efficiency.
if (logger.IsEnabled(LogLevel.Information))
{
    logger.Information("This is a log message.");
}
## When to Use LoggerMessage
The LoggerMessage pattern is particularly beneficial in scenarios where logging needs to be performed frequently with minimal performance impact. It is most effective when:

- Logging is done in high-throughput scenarios (e.g., background services, real-time applications).
- You require structured logging for easier integration with advanced logging systems (e.g., Serilog, ElasticSearch).
- Reducing object allocations and computational overhead is a priority for the application.

## Conclusion
By leveraging the LoggerMessage class, developers can create high-performance logging in .NET applications with minimal overhead. This pattern reduces object allocations, improves template parsing, and makes it easier to structure logs in a way that is efficient and easy to consume. For applications where performance is critical, adopting the LoggerMessage pattern can lead to significant improvements in logging efficiency.

https://github.com/SSWConsulting/SSW.Rules.Content/pull/9541

Merged and deployed


Chapter 3: Setting up postgres

When I try to migrate data after setting up postgresql and running this command:

python manage.py migrate

I run into this error:
django.db.utils.OperationalError: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "blog"

Duplicate of #12


Crashes on iOS 9 at initWithCoder

In Crashlytics I'm receiving a crash when loading a RingProgressView from storyboard. Crash is logged in initWithCoder with the following information:
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010
Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x181535b90 objc_msgSend + 16
1  UIKit                          0x18701eef8 -[UIView _createLayerWithFrame:] + 252
2  UIKit                          0x18701eb00 UIViewCommonInitWithFrame + 688
3  UIKit                          0x187325fb4 -[UIView initWithCoder:] + 304
4  MKRingProgressView             0x100b776e8 $s18MKRingProgressView04RingbC0C5coderACSgSo7NSCoderC_tcfcTf4gn_n + 72
5  MKRingProgressView             0x100b76fbc $s18MKRingProgressView04RingbC0C5coderACSgSo7NSCoderC_tcfcTo + 32

It happens only on iOS 9. Also I'm subclassing RingProgressView, if this may help.

The problem may be that I'm subclassing RingProgressView. Trying without subclassing and will log the result.

Hi @euroboy, please check if you have any issues with the latest release


process is not defined in browser

I need a lib to export shapefiles from a geojson source.
I was searching and your fork seems the most updated one, since the original from mapbox as no current maintainers.
I changed in my dependencies from the original repo to this fork:

npm install hwbllmnn/shp-write#maintenance -save

but I'm getting an error when trying to download the zip file:

My project uses Angular 8 and typescript, but it seems this is using the old browserify to export for the web. As far as I know process is exclusive from node.
from zip.js
return zip.generateAsync({
    type: process.browser === undefined ? 'nodebuffer' : 'blob',
    compression: 'DEFLATE'
});

Could this validation just verify if the window object or the process object is undefined ?

I guess if process is undefined, we can fall back to blob as well. Can you prepare a PR for that?

Fixed in #4


[🚀-🐛] Bring back gh workflows, remove from github specific files

Description
No need for funding, staleness and greeting
Related Issue
Closes #3
Checklist

[x] I've read the CODE_OF_CONDUCT.md document.
[x] I've read the CONTRIBUTING.md guide.
[x] I've updated the code style using make codestyle.
[x] I've written tests for all new methods and classes that I created.
[x] I've written the docstring in Google format for all the methods and classes that I used.

Should shift the safety check into optional
Only critical should fail it (Needs more research)


"simple" capability view does not properly show contact information

Full XML document shows contact info, but "simple" view has a series of "None" entries.

See e.g. the SouthTRAC server.


php 8

Description
Describe your changes in detail.
Motivation and context
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here (if you write fixes #num
or closes #num, the issue will be automatically closed when the pull is accepted.)
How has this been tested?
Please describe in detail how you tested your changes.
Include details of your testing environment, and the tests you ran to
see how your change affects other areas of the code, etc.
Screenshots (if appropriate)
Types of changes
What types of changes does your code introduce? Put an x in all the boxes that apply:

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:
Go over all the following points, and put an x in all the boxes that apply.
Please, please, please, don't send your pull request until all of the boxes are ticked.

[ ] I have read the CONTRIBUTING document.
[ ] My pull request addresses exactly one patch/feature.
[ ] I have created a branch for this patch/feature.
[ ] Each individual commit in the pull request is meaningful.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] If my change requires a change to the documentation, I have updated it accordingly.
[ ] My code follows the code style of this project.

If you're unsure about any of these, don't hesitate to ask. We're here to help!

Is this project still maintained?


adding original image link to  element

Hello
Please help me with template parsing question.
I'd like to add  for generated picture element to have a link to the original image like below.
<picture>
        <source media="(min-width: 320px)" srcset="/assets/resized/41031-320x317.jpg" />
        <source media="(min-width: 480px)" srcset="/assets/resized/41031-480x476.jpg" />

</picture>

However the problem is that template parsing results are not as expected.
I've modified sample template as below
<picture>
    {% for i in resized %}
        <source media="(min-width: {{ i.width }}px)" srcset="/{{ i.path }}">
    {% endfor %}

</picture>

but result html is out of expected

<picture></picture>

Please help me to understand what is wrong with my template? Why
 tag is added by parser and  breaks picture tag renderring ?
Regards
using Jekyll 4.2.0 and ImageMagick 7.1.0

I've made the test and it succeeds so it is not the responsive-image issue sorry
  Scenario: img with outer a href tag
    Given I have a responsive_image configuration with "template" set to "_includes/responsive-image-href.html"
    And I have a file "indexHref.html" with:
      """
      {% assign path = 'assets/everybody-loves-jalapeño-pineapple-cornbread.png' %}
      {% assign alt = 'Lorem ipsum' %}
      {% responsive_image_block %}
          path: {{ path }}

          {% if another_alt %}
          alt: {{ another_alt }}
          {% else %}
          alt: {{ alt }}
          {% endif %}
      {% endresponsive_image_block %}
      """
    When I run Jekyll
    Then I should see "<img alt=\"Lorem ipsum\" src=\"/assets/everybody-loves-jalapeño-pineapple-cornbread.png\"" in "_site/indexHref.html"

and responsive-image-href.html is like below
{% assign largest = resized | sort: 'width' | last %}

the answer was in picture.html layout line breaks
I've made it works using one line template
{% comment %}
Render your responsive images using <picture>, with the original asset used as a fallback. Note: If your original assets are not web
friendly (e.g. they are very large), you can use a resized image as the fallback instead. See the srcset
resized-fallback.html template for how to do this.

Usage:

       {% responsive_image path: assets/image.jpg alt: "A description of the image" %}

(P.S. You can safely delete this comment block)
{% endcomment %}

<picture>
    {% for i in resized %} <source media="(min-width: {{ i.width }}px)" srcset="/{{ i.path }}" > {% endfor %}

</picture>

Line breaks before <a (and I have few of them after closing ) were converted to
 and caused wrong html to be produced.
The template below works well (and check there is no line break before starting and closing tags)

    <picture>
        {% for i in resized %}<source media="(min-width: {{ i.width }}px)" srcset="/{{ i.path }}" > {% endfor %}

    </picture>


Improve loading time for images

Currently, images take a while to load as they're quite large. Can we compress the images when they are committed using a GitHub action to improve loading speeds?

Hey @wrussell1999, can you please assign this issue to our team? @Sargam-Agarwal and I would like to work on it.

Done @rajat2502! Next time, ask @NoahCardoza to help here 💯

Thanks, @wrussell1999, sure, will keep that in mind from next time :)


Table: Application specific ranges

We were going to keep some application specific ranges. I'm not finding them in the table. We should add them back.
Ideally we should have a function that keeps some numbers within every varint size. Meaning that:

a 1-byte varint should have a few value reserved for app-specific codes.
a 2-byte varint should have some too, many more than 1-byte.
etc.

Effectively: come up with a function appSpecific(code int) bool that:

assigns some values at every varint range
is simple to understand

For example, one such function could be:
func appSpecific(code int) bool {
    return code % 127 > (127 - 8)
    // keeps 8 codes every 128.
}

There should be a simple way to come up with appSepecific function that distributes them in a matter that the longer the code the more values app specific code can have. So for example 1 value in one byte code, 2 values in two bytes, ..., 512 values in 9 byte code. We might want to shift this around/scale, cap.
I was thinking about giving the app specific range at exact value of the highest byte in varint. So one code in 1 bytes rage, 127 codes in in two bytes range, 16384 in three bytes, but IMO it gets too big too fast.

Any progress on this? We are considering using CIDs to link between data structures at http://www.uprtcl.io/, but we need to be able to define application-specific codecs.
Also libraries concerning multicodecs (at least https://github.com/multiformats/js-cid, https://github.com/multiformats/js-multicodec or https://github.com/multiformats/rust-cid) don't support adding custom codecs. They seem to throw errors when we try to define CIDs with custom codecs. Is this the behaviour we should expect?

First of all, that project looks awesome.

Application specific codes are useful for data that never pass application boundaries but you'll loose quite a few of the interoperability benefits of IPLD if use one in CIDs. It'll also be painful to migrate away from these app-specific codecs later as everything in IPLD is content addressed. If need-be, I'd be happy to just define a new codec if need-be.
Note: there are valid use-cases for app-specific IPLD codecs, I just want to make sure this case is one of them.
To make sure we're on the same page, how are you planning on serializing your objects? For context, a CIDs "codec" isn't really supposed to be used as a "type". Instead it's there to indicate the serialization format for the object.
So, the question is, have you considered just using CBOR or some other standard serialization format? We have codecs defined for git, eth, btc, etc. because these systems all existed before IPLD.

They seem to throw errors when we try to define CIDs with custom codecs. Is this the behaviour we should expect?

Ideally, no. We should consider allowing arbitrary unknown CID codecs, failing only when we try to decode a given block. Mind opening issues in js-cid, rust-cid, and go-cid?

Ideally, no. We should consider allowing arbitrary unknown CID codecs, failing only when we try to decode a given block. Mind opening issues in js-cid, rust-cid, and go-cid?

You can’t encode the CID if you can’t map the codec string key to a multicodec hex value, that’s why they throw.

You can’t encode the CID if you can’t map the codec string key to a multicodec hex value, that’s why they throw.

https://github.com/multiformats/multicodec/issues/39 is related as it would allow to pass in a number instead of a string.

multiformats/js-cid#72 is related as it would allow to pass in a number instead of a string.

Sure, but it’ll still throw when you decode the CID. The way the CID interfaces are built assume they have a map to the string value and back. It’s pretty involved even adding codecs to these maps for the purpose of developing new codecs, it’s an area we should consider improving the experience of in a broader way than just the one issue.

it’s an area we should consider improving the experience of in a broader way than just the one issue.

@mikeal js-ipld is already using numbers instead of strings for codecs for that reason.

@vmx CID instances expose the string key for the codec property though, so as soon as you get to that stage you need a string value unless we want to push out a breaking change to that interface. A fair amount of code assumes it is a string value today. While I think the new stack could easily support numeric values internally it still produces CID instances and the consumers probably assume the codec property is a string.

@mikeal Good point. Though you could probably just create a string (e.g. unknown-<the-codec-number> if it isn't known and things should still work. What I try to say is, that we should keep that case in mind and keep moving into that direction. But I agree currently it's not easily possible.

What I try to say is, that we should keep that case in mind and keep moving into that direction. But I agree currently it's not easily possible.

I totally agree. I think we should zoom out a little and ask “what would make using/developing new codecs better?” If we spent a little more time considering the full use case I think we’ll find a better overall direction and changes to multiple libraries that can improve this.


'About icon' not aligned

The top left icon is not aligned with the other icons in the left toolbar. Please could you fix this ?
It is also the case in https://dev.nmrium.org (as compared with www.nmrium.org).

duplicate of https://github.com/cheminfo/analysis-ui-components/issues/46


Detailed instructions on how to upscale videos in a standard format are needed.

With all due respect to the author, dataset preparation is overly complicated even for someone who has been using computers for decades like myself. Is it really that complex? Could someone please create a detailed tutorial? I would really love to try this seemingly phenomenal open-source project, but not everything is explained properly. Really.
Thank you to everyone who can help!

@zelenooki87 @C00reNUT Hi all, sorry for the delayed reply. We are currently working on this and will do our best to provide a simplified script for testing with user-provided videos soon. Thank you for your interest in our work!

@DachunKai
Two months have passed since your message. Are there any indications that you'll be finishing that script at all? Thanks.

@zelenooki87 Hi, thank you for checking in. I've made some progress, such as packaging part of the event simulator and rewriting some of the C++ code. However, I'm currently busy with an upcoming conference deadline, which will take about a month. So, the script has been temporarily put on hold. I appreciate your understanding.

@DachunKai Are there any indications that you'll be finishing that script? Thanks.


[Question]: Why do motion sensors not trigger when notifications are turned off.

Ask your question
I noticed the following behavior; I have door sensors and motion sensors in my home. The door sensors always trigger, even when 'push notifications' are turned off in the Eufy app. For some reason the motion sensors only trigger when push notifications are turned on.
I would like to use them in my HA automations without getting hundred push notifications on a daily basis. Would this be possible?
Thanks!

Disable the Eufy app notifications at the OS level instead of in the app (Settings->Notifications on iOS or the equivalent in Android).
 It works great for me and I have complete control over which notifications I receive!
All the Eufy cameras I have require notifications in the app to be enabled for the motion sensors to update in HA. Sounds like the door sensors work differently for whatever reason.


Investigate why compiletests can't find panic_handler

As of main right now, exactly one (and only one) test emits an error that it cannot find #[panic_handler]: https://github.com/EmbarkStudios/rust-gpu/blob/ba689b5603bcd441d599962ca100ae7d5b994e89/tests/ui/spirv-attr/invalid-storage-class.stderr#L1
It should be defined in spirv_std, and we link to that, and so it should be found!
As of a PR that I'm working on right now (edit: now submitted and merged, #641), a second one popped up (no idea why), which is how I found this. So marking this as a TODO since it's pre-existing (invalid-storage-class.stderr), and moving forward with #641 since I don't think it's that PR's fault.

Will open fix PR soon, but for the record, the issue is that if spirv_std:: isn't used anywhere, an import like this is needed (extern crate spirv_std; would also work but the use looks nicer I guess?): https://github.com/EmbarkStudios/rust-gpu/blob/ba689b5603bcd441d599962ca100ae7d5b994e89/tests/ui/spirv-attr/invariant-invalid.rs#L4
By comparison, invalid-storage-class.rs has nothing like that and therefore will not link to spirv_std: https://github.com/EmbarkStudios/rust-gpu/blob/ba689b5603bcd441d599962ca100ae7d5b994e89/tests/ui/spirv-attr/invalid-storage-class.rs#L1-L13


Fix some typo in install-kubeadm.md

Uniform case and adjustment description for smoother writing.(Kubelet → kubelet)

/assign @bradtopol
pls review this PR,thx.


Extract number images from bonus icons

Building on top of the work we started in #134, we now want to extract smaller circles from each bonus icon which only contain the numbers 1 to 11. Let's put these in a spritesheet with these numbers side by side.
The reason for this is that rather than having images for each of the 11 numbers multiplied by 5 different colors, we are going to 5 have just 5 images with the colored borders and then superimpose the number images on top of it in-game.
This task must be done using ImageMagick. You can add this to circle_icons.sh.
NOTE: Before you begin working on this, please assign this issue to yourself. If you do not do this, then there's the possibility that 2 people will end up doing the same task, which is not a good use of time.

Out of curiosity, what are your thoughts on displaying the numbers on the tableau?  Isotropic displays the largest (and full value) bonus icon in bold coloring and then has a greyed out appearance for each symbol beyond that (the ones that are worth 1 point).  That seems like a straightforward way of conveying that information.
Perhaps we can save this discussion for when we have to show these icons somewhere, but it might be relevant for image creation.

The greyed out icons sound like an interesting idea for making it easier for players to interpret their board, but the simplest solution is just to include the bonuses in the score total in the player panel. So I'm not sure there's any real need to add this extra feature.

icon window being the player board area where the number of icons are shown.  The number of hex icons in a particular pile will also be useful for heritage

I think the point is the distribution of point icons is pivotal in many of the cards.  Having that be really obvious would help people play their cards better.
I guess with the boards actually having the points visible would be beneficial generally speaking.  isotropic doesn't have that so they had to make due.


Added Jenkins workflow / pipeline step.

Usage is:
nvm(version: 'v6.1.2') {
  sh 'env'
}

any updates on this pull request?

Closing this PR as it includes updates to the README that are specific to my fork.
@ejohansson This has been open for a while and so I resorted to building & installing manually I'm afraid.

@jSherz thanks, that's a shame, would have been nice to seen this merged.

awesome I would integrate this.

🍻

Hi, everyone the merge is on this branch https://github.com/jenkinsci/nvm-wrapper-plugin/pull/5


fix:refetch data after deleting[PURCHASE-2899]

The type of this PR is: FIX
[PURCHASE-2899]
refetch data after deleting address on Android platform

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have tested my changes on iOS and Android.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a changelog entry below or my changes do not require one.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

refetch addresses after deleting - alexj105

https://user-images.githubusercontent.com/37010996/131479745-48b8fbe0-f0ad-40dc-88a6-45574c1da4bb.mov

This PR contains the following changes:

Dev changes (refetch addresses after deleting - alexj105,https://user-images.githubusercontent.com/37010996/131479745-48b8fbe0-f0ad-40dc-88a6-45574c1da4bb.mov)

  Generated by :no_entry_sign: dangerJS against a2d5432a60efbd353f08b18f6584b60bfe085551


feat: modernize setup project

What problem you’re solving
This PR tries to modernize the setup project and improve process build.
Hope to improve our Developer Experience.
Any tests you wrote
No update.  I just updated the setup config.
Changes:

Adopt tsup to improve process build.
Update package.json - Conditional exports, enrich metadata.
Setup prettier.
Correct config tsconfig.json, jest.config.js, .eslintrc.js, .eslintignore.
Enrich .gitignore.
Distributes as ESM, CJS.
Replace ts-jest with @swc/jest.

Thanks for the PR. Please also help to update contribution guide about your changes

I just updated the setup configuration, don't change the way to contribute. What information do you want me to update?

Thanks for the PR. Please also help to update contribution guide about your changes

I just updated the setup configuration, don't change the way to contribute. What information do you want me to update?

I see you have some changes in package.json for build config
"generate": "sh scripts/generate.sh",

@longxice please resolve your comment

LGTM

LGTM


[fix] [metadata] Fix zookeeper related flacky test

Fixes #21286, #21289
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

/pulsarbot rerun-failure-checks

Codecov Report

Merging #21310 (f0e3a69) into master (643428b) will increase coverage by 36.28%.
Report is 5 commits behind head on master.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##             master   #21310       +/-   ##
=============================================
+ Coverage     36.96%   73.24%   +36.28%
- Complexity    12294    32521    +20227
=============================================
  Files          1698     1887      +189
  Lines        130510   140223     +9713
  Branches      14260    15435     +1175
=============================================
+ Hits          48240   102709    +54469
+ Misses        75982    29436    -46546
- Partials       6288     8078     +1790

Flag
Coverage Δ

inttests
24.13% <66.66%> (-0.19%)
:arrow_down:

systests
24.70% <66.66%> (-0.19%)
:arrow_down:

unittests
72.54% <100.00%> (+40.41%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

...org/apache/bookkeeper/mledger/util/RangeCache.java
95.40% <100.00%> (+21.53%)
:arrow_up:

... and 1452 files with indirect coverage changes

@hangc0276 @Technoboy- @poorbarcode  Please help to review it.

Since the PR https://github.com/apache/pulsar/pull/21188 will cherry-pick into branch-3.0, branch-2.11 and branch-2.10 and the test is very flaky, I added the labels release/2.10.6, release/2.11.3 and release/3.0.2

Great work @horizonzy!

This will help reduce flakiness a lot. Please cherry-pick also to branch-3.1 since that will be maintained for some time.

This will help reduce flakiness a lot. Please cherry-pick also to branch-3.1 since that will be maintained for some time.

Sure.

This will help reduce flakiness a lot. Please cherry-pick also to branch-3.1 since that will be maintained for some time.

Done.


Fix SpinReversalTransformComposite's behavior when child samplers change the variable order

Closes https://github.com/dwavesystems/dwave-preprocessing/issues/142
See also https://github.com/dwavesystems/dwave-system/issues/538

CI errors unrelated. Will fix.

The following test still fails. Will fix...
    def test_variable_order2(self):
        class GroundStateSampler:
            @staticmethod
            def sample(bqm):
                return dimod.ExactSolver().sample(bqm).lowest()

        bqm = dimod.BinaryQuadraticModel(
            {}, {(1, 0): 0, (4, 3): 0, (2, 0): -1, (2, 1): 1, (5, 3): -1, (5, 4): 1}, 0, 'SPIN')

        sampler = SpinReversalTransformComposite(GroundStateSampler(), seed=42)

        sampleset = sampler.sample(bqm, num_spin_reversal_transforms=10)

        self.assertEqual(len(sampleset.aggregate()), 4)

Checking that sampleset variable order matches bqm variable order is always recommended. A sampleset can be forced to match the bqm order using: ss = dimod.SampleSet.from_samples_bqm(ss, bqm)


issue with base-urls which contains dot in them.

Info
Value

Platform Name
android

Platform Version
10.0

Dio Version
3.0.10

Repro rate
all the time

Repro with our demo prj
yes

Hi,
what I want is to set my test base-url which is http://melodyo-api.test ,then I add a path inside of http methods.
the issue is that because of existing a dot in base-url , it will not attach the path to the base-url.

I am very sorry
the issue was because I don't have access to my local-host with my phone.


Validate environment variables

Validate environment variables, such as %%environ_systemdrive%% in paths

grep %%environ_ data/* | sed "s/^[^%]*%%/%%/;s/%%[^%]*$/%%/" | sort | uniq
%%environ_allusersappdata%%
%%environ_allusersprofile%%
%%environ_programfiles%%
%%environ_programfilesx86%%
%%environ_systemdrive%%
%%environ_systemroot%%
%%environ_windir%%

To do: determine how GRR uses %%environ_allusersappdata%%

https://github.com/google/grr/blob/8123918157e0c53a2ba36d225cec542c6ee4524d/grr/server/grr_response_server/artifact.py#L102


Why std::string everywhere?

I think it is possible to unicode name of sheet or smth? Isnt it?
.cell("A:1") need to create string every time. May be allocation or smth, why you dont use string_views?

Probably not a big deal, if you have the time to write "A1" (not even mentioning small string optimization)
You'll use
XLCell XLWorksheet::cell(uint32_t rowNumber, uint16_t columnNumber) const
everywhere else.

Probably not a big deal, if you have the time to write "A1" (not even mentioning small string optimization) You'll use XLCell XLWorksheet::cell(uint32_t rowNumber, uint16_t columnNumber) const everywhere else.
And its big deal, if you dont want transform "A1:B2" to indegers(its almost impossible in Excel AAB system)
It also may be a good thing to just get cell range from string_view like "A1:B4" or smth (without exceptions, with something like std::expected)

Hi @kelbon
1. I think it is possible to unicode name of sheet or smth? Isnt it?
I'm not sure what you mean. Are you asking if it is possible to name worksheets with unicode strings, then yes:
XLDocument doc;
doc.create("./Spreadsheet.xlsx");
doc.workbook().addWorksheet("スプレッドシート");

Just make sure that your source code is also encoded in UTF-8 (see the README for details).
2. .cell("A:1") need to create string every time. May be allocation or smth, why you dont use string_views?
As @reder2000 rightly noted, you can use .cell(uint32_t rowNumber, uint16_t columnNumber) instead. Also, you can use an XLCellReference object instead, You can use either row/column numbers or address strings to create such an object, and it can be used to convert between the two, so it's quite handy.
Regarding the use of strings, as @reder2000 also mentions, the address strings will be so small that the compiler will use the Small String Optimization, so the performance penalty will be minimal. That being said, OpenXLSX does use std::string many places where std::string_view might be better. It is something that is on my todo-list, but it may be a bit tricky, because the std::string_view does not own the string, so I have to make sure that the source string is not deleted after returning a std::string_view.

In really best realization it may be cell("A1:B4") which accepts consteval constructed object of RangeCell so it may be calculated even on compile time.
And if you use const std::string&, then you always can use string_view as well, but if you need to copy string, just use std::string in signature(or std::u8string if it may be unicode)

At least paths in functions like open should be replaced with something more portable, e.g std::filesystem::path or boost::filesystem::path.

@JanczarKurek , Unicode support is currently achieved via Boost.NoWide, which does not provide std::filesystem implementations. It may be a good idea to eventually upgrade this / replace nowide with std::filesystem, but I'd like to be sure first that all required unicode functionality works on the platforms on which currently Boost.NoWide is working as expected :)


Nothing is visible

Describe the bug
Nothing is visible when i open the app, just grey sections everywhere...
To Reproduce
Open app ┐( ∵ )┌
Expected behavior
Wallpapers should be visible but just aren't visible... reinstalled, cleared cache, updated, but nothing :/
Screenshots

Smartphone (please complete the following information):

Device: [e.g. Poco X2]
OS: [e.g. miui 12]
Version [e.g. 27.0]

Additional context
Add any other context about the problem here.

Happening same in Realme 3 pro also


AttributeError: module 'cdd' has no attribute 'Matrix'

Hi team, I am working on testing highway-env under  python gpi_pd_highway.py gpi-ls false 1
It encounter the error as here around 10000 steps. Do you have any idea to overide this error below ?
Traceback (most recent call last):
  File "gpi_pd_highway_bs.py", line 69, in <module>
    fire.Fire(main)
  File "/Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "gpi_pd_highway_bs.py", line 58, in main
    agent.train(
  File "/Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages/morl_baselines/multi_policy/gpi_pd/gpi_pd.py", line 844, in train
    w = linear_support.next_weight(
  File "/Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages/morl_baselines/multi_policy/linear_support/linear_support.py", line 72, in next_weight
    W_corner = self.compute_corner_weights()
  File "/Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages/morl_baselines/multi_policy/linear_support/linear_support.py", line 345, in compute_corner_weights
    vertices = compute_poly_vertices(A, b)
  File "/Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages/morl_baselines/multi_policy/linear_support/linear_support.py", line 332, in compute_poly_vertices
    mat = cdd.Matrix(np.hstack([b, -A]), number_type="float")
AttributeError: module 'cdd' has no attribute 'Matrix'

I manually reinstall cdd as
zi6106738@***** morl-baselines % pip show cdd
Name: cdd
Version: 0.1.12
Summary: improved file system navigation with cd
Home-page: https://github.com/daltonserey/cdd
Author: Dalton Serey
Author-email<EMAIL_ADDRESS>License: GNU Affero General Public License v3
Location: /Users/zi6106738/.pyenv/versions/3.8.16/lib/python3.8/site-packages
Requires:
Required-by:

But still have the error as here.
Thanks

Hi @PatrickYanZ ,
As stated in https://github.com/LucasAlegre/morl-baselines/blob/main/pyproject.toml#L44C8-L44C18 , the library name is actually pycddlib, so you should install it with:
pip install pycddlib

Indeed, there is a problem with the install of pycddlib on macos. I remembered there was a trick but I didn't remember exactly what. Happy it's solved :)

I tried pip install pycddlib and pip install cdd, it still reports AttributeError: module 'cdd' has no attribute 'Matrix'. Then I tried pip install cdd==0.1.2, it works.

The "cdd" library installed via "pip install cdd" is never used in our library, and can be uninstalled. You need to install only "pip install pycddlib"

The python interpreter imports the python_cdd module incorrectly and needs to remove it by:
 pip uninstall python-cdd
Then, install the pycddlib and  libgmp according to:
https://pycddlib.readthedocs.io/en/latest/quickstart.html
https://gmpy2.readthedocs.io/en/latest/


Fixes #4159

Fixes #4159

Pull Request Test Coverage Report for Build 1608

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.002%) to 65.138%

Totals

Change from base Build 773:
0.002%

Covered Lines:
10921

Relevant Lines:
16766

💛  - Coveralls


Removing sky-pages-in

Removed any concept of "sky-pages-in-*".
Replaced index components and siblings with routes + components.
Removed passing of "entities," and instead allowing generators to use glob.
Added vscode settings for debugging jasmine tests.
Miscellaneous refactoring.

This is working towards totally replacing "out" and "in" with "builder" and appropriate hooks.

Current coverage is 100% (diff: 100%)

Merging #29 into master will not change coverage

@@           master   #29   diff @@
===================================
  Files          19    21     +2
  Lines         427   435     +8
  Methods        47    53     +6
  Messages        0     0
  Branches       51    43     -8
===================================
+ Hits          427   435     +8
  Misses          0     0
  Partials        0     0

Powered by Codecov. Last update 69f2610...b0913ca


Invalid JSON inside technology signatures

Platform

WebExtension (Google Chrome, Mozilla Firefox)
NPM
Bookmarklet
Website

Describe the bug
The merge request #5155, introduced new signatures which has invalid JSON inside them.
To Reproduce
https://github.com/AliasIO/wappalyzer/runs/4171207426?check_suite_focus=true
Expected behavior
All platforms making use of this source will break otherwise.

Fix merged, thanks!

Thanks!


istioctl generated ValidatingWebhookConfiguration doesn't use the correct service with revision

Bug description
We are using istioctl to generate all the objects to deploy 1.9.3. We are using a revision tag as we deploy it with a canary dual control plane. The revision tag is in this case set to 1-9
All the objects seem to correctly version themselves with the revision tag, except the ValidatingWebhookConfiguration which is generated with the following endpoint, missing the revision tag:
webhooks:
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    caBundle: ""
    service:
      name: istiod
      namespace: istio-system
      path: /validate

What is expected is to have:
webhooks:
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    caBundle: ""
    service:
      name: istiod-1-9
      namespace: istio-system
      path: /validate

Or was this intended in order to use the previous istiod installation for the validating webhook?
[ ] Docs
[ x ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade

After digging a bit, this seem to be the same issue as :

https://github.com/istio/istio/issues/27501
https://github.com/istio/istio/issues/32143

What made it very confusing and slightly different in my case is that we had a service called istiod in the istio-system namespace (our previous version of istio), which means that the ValidatingWebhookConfiguration was accepted by K8S API, and it took us a bit of retro engineering to figure out that the new ValidatingWebhookConfiguration was sending the request to the old istio.

Something else i noticed, there are 2 different ValidatingWebhookConfiguration in the master branch.
Didn't have time to look into it yet, but this doesn't feel okay.
Commit: f38465f8f5c1edd944ed7776c1253ffa2d9768b2
./main manifest generate ...
kind: ValidatingWebhookConfiguration
metadata:
  name: istiod-1-10-0
  labels:
    app: istiod
    release: istio
    istio: istiod
    istio.io/rev: 1-10-0

kind: ValidatingWebhookConfiguration
metadata:
  name: istiod-istio-system
  labels:
    app: istiod
    release: istio
    istio: istiod

I think in the upcoming versions they came up with a model in which in a canary deployment, two validating webhook are installed side by side and you chose the correct one based on the version you want to validate it for. (Not sure on the details)


ReferenceError: window is not defined

Got this error trying to use it. I'm using saper, svelte, firebase and babylonjs. I dont know why.
defined/home/rahto/www/xblazy.com/node_modules/@macfja/svelte-persistent-store/dist/index.js:135
      return getBrowserStorage(window.localStorage);
                               ^

ReferenceError: window is not defined
    at Object.localStorage (/home/rahto/www/xblazy.com/node_modules/@macfja/svelte-persistent-store/dist/index.js:135:32)
    at Object.<anonymous> (/home/rahto/www/xblazy.com/__sapper__/dev/server/server.js:1229:84)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
> Server crashed

localStorage (as well as sessionStorage) are only available inside a Browser, where window is defined.
(https://developer.mozilla.org/en-US/docs/Web/API/Storage)
So, the localStorage won't work in the server context.
You probably need to implement a new Storage that use the Firebase database.
I can help you with that I you need

The version 1.0.1 and 1.0.2 should solve this issue.
If not don't hesitate to reopen this issue.


Test upgrading on a stateful genesis

Use the cosmos-genesis-tinkerer repo to produce a tinkered genesis file from a mainnet export periodically.

This tinkered file would include a pre-set faucet account and a validator one with majority voting power.

Add another test to the CI workflow that runs a software upgrade on a stateful chain using the tinkered genesis file.

We can use a temporary node whose only purpose is to generate an exported genensis file.
The chain registry would be useful for getting sync peers information:
https://github.com/cosmos/chain-registry
https://chain-registry.netlify.app/
https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/chain.json

Currently being blocked by low power Github Actions VM. Test does not compete in time during the 58 minutes limit.
It looks like there is work being done that will allow us to use more powerful runners in the future https://github.com/github/roadmap/issues/161

For a workaround we can do the test in the same DO VM when doing the exporting to also try the upgrade process and push the status into the repo until Github supports more powerful runners.

For a workaround we can do the test in the same DO VM when doing the exporting to also try the upgrade process and push the status into the repo until Github supports more powerful runners.

Sounds good! We might also have to do this if we want to implement a workflow for joining the theta testnet.

GitHub will disable LFS if we go over 150% of our quota, we need to find a sustainable storage solution for genesis files.

Closed with #110


fixed issue with bash script text

updated bash script when used in project with a path that contains spaces

Hello Juan,
you are right, that I definitely overlooked. Thank you for this
Have a nice day
Jiri


test & create sample for streaming

We need to ensure the streaming use case is adequately supported in the API. While agent-agent communication likely does not need streaming, we need to ensure agent-UI supports streaming.
User can:

Create a UI which can show partial model output
Interrupt an in progress streaming response

We should use a closure agent to collect the partial messages and pump them through to the front end via a websocket.
The partial message type is application defined.
We can show case this using a cookbook or a sample directory.

Related to #3970, a simple solution is to just have the agent and team return a streaming iterator.

Related to #3970 and #3969, a simple solution is to just have the agent and team return a streaming iterator.与 #3970 和 #3969 相关，一个简单的解决方案是让代理和团队返回一个流式迭代器。

I totally agree!
Agent token streaming output is very important.
In some cases, streaming output may not be needed, such as the interaction between tool_caller and tool_executor;
But when interacting with user agents, it is very necessary. LLM output is streaming and it will be time-consuming. We need to let users see the first token output as soon as possible.
I think the fastest way to achieve this is that any Agent that interacts with UserProxyAgent should return an iterator or generator instead of full chat_messages
So that we can implement streaming output to the UI ourselves.
Looking forward to it soon. Thanks


Sample Container Applications for Home Edge

Instead of hello-world, it would be nice to share some sample container applications that represent Edge Orchestration functions like datastorage, cloud sync and service offloading.

@suresh-lc @nitu-s-gupta Any idea for enabling a simple and attractive use case with the sample container apps for HomeEdge? 😄

I think that hello-world should be as an example of a quick start. But the more we provide an example how to start different containers to us better.

I think that hello-world should be as an example of a quick start. But the more we provide an example how to start different containers to us better.

I think so. hello-world is good for a quick start. However showing the Home Edge features is not enough.

I think so. hello-world is good for a quick start. However showing the Home Edge features is not enough.

I completely agree!

I can think of a container that will be a random value generator to showcase the datastorage, cloudsync and sample rules to show service offloading


Upgrade document suggestions

The document looks really really comprehensive. The only thing I wanted to call out was a pattern I have seen folks use of updating the namespace to something custom for architecture reasions. My suggestion was to call out that specific use case.

I did consider putting something like that in there already, but felt that it wasn't actually 'easy' enough any more.
It is pretty important that the whole set of YAMLs be applied this time, so if people have changed the namespace, they'll need to global search-and-replace heptio-contour in their chosen example. So I figured that they would be able to do that for the commands too.

Hey @youngnick I tried to do something similar will see if I can wordsmith something better around the search and replace possibly just a note at the bottom that it also applies to the easy way.

Also, please sign your commit, git commit --amend -s && git push -f. Thanks.

@rbankston ping!

Hey @davecheney sorry for the delays. Updated to a note at the bottom of the easy way to use search and replace in the editor.

Thanks for the update but I would prefer not to add addenda to the easy way — it’s not easy if you have to think about the namespace a thing just deployed into.
Instead, what if we called out that the namespace is hard coded in the not so easy way section and left it to the reader to figure out what to do. Alternatively we could remove the namespace from the manifests and suggest a -n flag in our installation instructions.

@davecheney something like "These example deployments all deploy into the heptio-contour namespace by default"?

Merging as discussed with @davecheney


Play/pause support

You have to be careful what you pass to /player/play as it throws a 400 if both context_uri and uris are supplied: https://developer.spotify.com/web-api/start-a-users-playback/
To play a particular track on a particular playlist you have to set the track URI in the offset object.

@ojread While our at it, add next/previous too!

@JMPerez review?

👍

@ojread Sorry for the late reply. It would be great if you add some unit tests.

Closing this. This is already covered in https://github.com/thelinmichael/spotify-web-api-node/pull/150.


Make Durable Objects support DECENT

Problem
Currently, this crate's support for Durable Objects works, but its developer experience is incredibly bad:
use worker::{durable_object, DurableObject};
// 1. We MUST introduce them into the scope for this code to compile.
use worker::{async_trait, wasm_bindgen};

#[durable_object]
struct MyObject {
    state: worker::State,
}

// 2. This attribute to impl-block prevents editor's completions of trait methods.
// 3. And this uses `async_trait` which is unnecessary, bothering layer now.
#[durable_object]
// 4. Due to current implementation of the attribute, hover and code jump on
// this ↓ `DurableObject` doesn't work.
impl DurableObject for MyObject {
    //...
}

// 5. Defining multiple Durable Objects causes compile error due to the wrong design of Durable Objects support
#[durable_object]
struct AnotherObject;

#[durable_object]
impl DurableObject for AnotherObject { /* ... */ }

 Details with Pictures

5 is reported in #432

1 makes error messages difficult to understand for those who avoid use worker::*;:

worker exports a lot of items from the top-level, so *-import causes serious namespace pollution and many developer will like to avoid it

3 leads to very unfriendly error messages for unexpected usage like:

2, 4: completion or hover doesn't work:

Solution
This PR resolves all of them by re-designing Durable Objects support. See worker-macros/src/durable_object.rs  for how new #[DurableObject] works internally.
usage:
// 1. We only have to import `DurableObject`.
use worker::DurableObject;

#[DurableObject]
struct MyObject {
    state: worker::State,
}

// 2,3,4. Now we don't need annoying attribute on impl-block.
// Of course, hover and code jump and completion works perfectly.
impl DurableObject for MyObject {
    //...
}

// 5. This compiles. No problem.
#[DurableObject]
pub struct AnotherObject;

impl DurableObject for AnotherObject {
    //...
}

 Details with Pictures

( 1, 2, 3, 4 ) Of course, completion, hover and code jump work perfectly

( 5 ) More than one Durable Objects don't cause problem ( so closes #432 ).

Very clear error message for unexpected usage:

if attribute is missing:

if trait impl is missing:

Additionally, even if we merge this PR immediately, current codes still compile and work, just with "deprecated" warnings, due to some effort for backward compatibility:

I also ran into the multiple durable objects problem, would be great if this can get merged o7