Add npm provenance

:tada: This PR is included in version 2.0.19 :tada:
The release is available on postcss-colorguard-v2.0.19
Your semantic-release bot :package::rocket:


Could you start a testnet network?

Why you don't have a testnet network?

Testnet will be up when the new release is up and running.

we eagerly waiting the testnet, now all my development is stopped and waiting for testnet, when the new
release will issued?

When it's ready.
Luckily, coins are cheap enough to burn if development is pressing;
$1 gets you over 200 transactions.
0.1XVG miner fee sending the same 25 coins ($1) back and forth lasts quite a while

@mabbas1975 what are you developing?

i am working in a new VERGE pool, that supports Lyra2re2, we complete everything and waiting for test on
testnet, i am waiting from 20 days ago, so kindly anybody can help me, the regtest is not a good choice, testnet is better, i am just want to know when the testnet back

no ETA unfortunately.  We are still working on the rebased codebase.  Last update was 90%.  https://vergecurrency.com/roadmap/

@jrsikors Let's close this, there will be no testnet for the old codebase anymore.

@marpme The latest comments where most likely related to the new codebase. At least mine was.

itll be ready soon

i am working in a new VERGE pool, that supports Lyra2re2, we complete everything and waiting for test on
testnet, i am waiting from 20 days ago, so kindly anybody can help me, the regtest is not a good choice, testnet is better, i am just want to know when the testnet back

@mabbas1975 : how to set up VERSE in regtest mode?

@karanpatel863 : when will the new codebase release?

Planned to be released anytime this month.
On Tue, Dec 18, 2018, 17:39 Free Account<EMAIL_ADDRESS>wrote:

@karanpatel863 https://github.com/karanpatel863 : when will the new
codebase release?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vergecurrency/VERGE/issues/761#issuecomment-448199421,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AjzlvLcNZL5QBAs3YKl2IXEJr370vRCHks5u6NsRgaJpZM4UVEDS
.

@karanpatel863 : thanks

We don't have any official ETA for the upcoming codebase. It's done when its done. Nevertheless we are on good way.

Cool. thats why i said "PLANNED".
On Tue, Dec 18, 2018, 18:01 Marvin Piekarek<EMAIL_ADDRESS>wrote:

We don't have any official ETA for the upcoming codebase. It's done when
its done. Nevertheless we are on good way.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vergecurrency/VERGE/issues/761#issuecomment-448204715,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AjzlvP0iVkyQPN88MOqpGKGj1hlc-Etmks5u6OAHgaJpZM4UVEDS
.


Clean and re-post WGI Informer images

A lot of good work went into the WGI Informer site, so the screenshots really should be cleaned up so they can be put back up on the site. That involves:

[ ] Remove WGI branding
[ ] Remove any real data (people, names, project info, etc.)

Closed in 46d2f4d!


Introduce a "build_and_push_docker_image" job in artman/circleci

This is a example when the tasks runs:
https://circleci.com/gh/ethanbao/artman/410
The smoketest (all) will fail, but I manually disabled the smoketest and confirmed that the deploy step will work (see https://hub.docker.com/r/googleapis/artman/tags/ for an auto-build artman docker image).

The performance gain is substantial. Saved 20+ mins in building time. More importantly, it is the same cached layer when pushing to Dockerhub, meaning the downstream users will not need to download the whole image for a new docker image in most cases.

Merged, thank you for the review. There is a similar CI PR in googleapis repo: https://github.com/googleapis/googleapis/pull/474. PTAL.
While running the same smoketest script, the googleapis PR uses different artman docker image for different purpose.


Delete tag

As title

Wether delete last tag equals to delete vertex?

Wether delete last tag equals to delete vertex?

For now the answer is no. This is a good point, I can't come up with a good way to do it at this time. Even if we have transactions, how to convert delete last tag to delete vertex could be tricky.


Help with deproject. Getting z coordinate same as distance

| Camera Model                       | { D435i } |
| Firmware Version                   | (Open RealSense Viewer --> Click info) |
| Operating System & Version |   {Win (10)  |
| Platform                                 | PC/Raspberry Pi/ NVIDIA Jetson / etc..  |
| SDK Version                            |  { legacy / 2.50.0 }                          |
| Language                            |  {python}                          |
Issue Description
When I use :
distance =  depth_frame.get_distance(pixel_x, pixel_y)
point3D = rs.rs2_deproject_pixel_to_point(intrinsics,[pixel_x ,pixel_y],distance) why is the z coordinate same as the distance to object in all even if i move the object in different directions infront of the camera

Hi @Arshad9544  It would be normal for Z to be approximately the same as the distance to camera if the camera was being moved up-down-left-right but not forward / backward, as the Z coordinate represents 3D depth (the distance of the camera from the observed object / surface).

Actually z coordinate should be representing the distance along the axis coming out of the camera and not the distance to the object. Am I wrong in this? I am working on a project which requires the x y z coordinates of the object. If the z axis always represents the depth or distance to object, is there anyway to get the x y z coordinates of the object in world coordinates with camera as origin. Thank you

In RealSense the Z axis is the depth / distance from the front of the camera to an object.
In ROS cases where a RealSense user requires distance to an object to be represented by a different axis such as Y instead of the default Z, it is possible to perform a static transform or to define a custom orientation in RViz (as described at the link below).
https://answers.ros.org/question/339109/how-to-change-the-cameras-view-in-rviz-in-the-begin/
In most applications, Z will be the distance from the camera to the object and I would recommend using Z if possible.

There a few different scripting approaches that could be used to obtain the XYZ world coordinates using Python without having to use ROS.  These include:

Performing depth to color alignment and then obtaining the XYZ coordinates by 'deprojecting' from 2D to 3D with the SDK instruction deproject_pixel_to_point.  An example of this approach with Python is at https://github.com/IntelRealSense/librealsense/issues/6749#issuecomment-654185205

Generate a 3D point cloud and then obtain its vertices with the points.get_vertices instruction and store them in a numpy array so the XYZ coordinates can be retrieved from the array.

Differences between approaches 1 and 2 are discussed with RealSense team members at https://github.com/IntelRealSense/librealsense/issues/4315

Use the project_color_pixel_to_depth_pixel to convert a single specific color pixel to a depth pixel to obtain its XYZ without having to align the entire image.  https://github.com/IntelRealSense/librealsense/issues/9945#issuecomment-972539640 may be a useful Python reference for that approach.

Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


[Question] How can I create Definitions pack?

Hi,
Is it possible to create a definition pack for the new version of minecraft ? (1.11)

Ismael Gorissen writes:

Is it possible to create a definition pack for the new
version of minecraft ? (1.11)

Yes, there's a [readme]
(https://github.com/mrkite/minutor/tree/master/definitions)
and it should be straightforward if you can read JSON.
However, the ones in the github repository are already for 1.11
so unless they're not to your liking there's nothing you need
to do.
Try to update or import them manually.

@upwhere Thanks.
Maybe there is an issue because I'm using the latest version on Windows (v2.1.0) and I see this info about definitions :

Vanilla / 1.9.15w34a / block
Vanilla / 1.9.15w31 / entity
Vanilla / 1.6.2 / dimension
Vanilla / 1.9.15w37a / biome

Ismael Gorissen writes:

Maybe there is an issue because I'm using the latest version
on Windows (v2.1.0) and I see this info about definitions :

Vanilla / 1.9.15w34a / block
Vanilla / 1.9.15w31 / entity
Vanilla / 1.6.2 / dimension
Vanilla / 1.9.15w37a / biome

Yes, you're right. The release on the website comes with
definitions for 1.9.
Are you able to update them in the definition manager? It should
be as simple as clicking a button. There's also an option to
automatically check for updates in the settings.
If that doesn't work then it would be nice to have an issue
filed for that.

@upwhere Yes, I have cloned your repository in order to use the latest definitions. Next time I'll give a try with the Check for updates option.
Thanks.


Please invite me to the community

Name
Preeti Raj
Additional Context
Please Invite me to the GitHub Community Organization for my contribution in your Organization. Thankyou

Invitation sent to join the GitHub Organization. Welcome to Infraform 🎉Please check your mail to accept the invitation sent by GitHub! 🤖About usInfraform is an open source solution for serverless platforms, it is designed for developing solutions and enhancing creators to create their infrastructure 💻 Great to have you in our community ✨ Looking forward to your valuable contributions! 🤓 You can also check our community ✨ Github ✨ LinkedIn 💜 You can also share our community with other folks who want to learn about development, DevOps, tech, and contribute together and with us 👉💜👈


Fixes #2: Simplify mpy.List class

[MAJOR]

added an argument to List for supporting ordinal vs nominal data
added an argument to List for naming the List Variable expression
Updated docstring comment style for List before the init magic function
added asserts in freeze() method to check if the idx's are of type list

[TRIVIAL]

removed type hinting for the BaseSampler class in metalgpy/_sample.py

Signed-off-by: akhilpandey95<EMAIL_ADDRESS>

@Deathn0t Please squash and merge the PR and not merge.


Error: The (relay-query) Babel 5 plugin is being run with Babel 6.
possibly due to this
https://github.com/facebook/relay/issues/887

Same issue for me, looks like the linked issue is likely the root issue.

+1

npm i babel-relay-plugin@latest --save

That kinda worked, but now Webpack is throwing an error it seems... :unamused: Guess I'll just put off learning Relay again for a while.

suggestion by @akatebi seems to sort it
npm i babel-relay-plugin@latest --save
npm i

I think that I've fixed this in https://github.com/facebook/relay/commit/3b35827d14b9bba55c7807fd54f953f3f9c1059b (and released it as babel-relay-plugin 0.7.3).


Fixed markdown errors

GitHub is finicky with their markdown. This PR fixes the markdown issues.

Coverage remained the same at 97.936% when pulling 84983434fe1f23a13693f6ce4d6f3e692d06735b on dingwilson:patch-1 into 5e215ee223e6117c97b3407ee309daed66ddaac8 on theupdateframework:develop.

Coverage remained the same at 97.936% when pulling 84983434fe1f23a13693f6ce4d6f3e692d06735b on dingwilson:patch-1 into 5e215ee223e6117c97b3407ee309daed66ddaac8 on theupdateframework:develop.

Thanks for the fix!
Interesting.  Did GitHub change the markdown parser?  I recall these headings displaying correctly in the past.

Perhaps in March: https://github.com/blog/2333-a-formal-spec-for-github-flavored-markdown


[web] TextField double caret on iOS

Steps to Reproduce

Run the following code in the lib/main.dart file in a newly created flutter project in safari version 9.0.x:

import 'package:flutter/material.dart';

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

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

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

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

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
            keyboardType: TextInputType.emailAddress,
            decoration:
              InputDecoration(
                border: InputBorder.none,
                hintText: 'Enter text here'
              ),
            ),
            TextFormField(
              keyboardType: TextInputType.numberWithOptions(signed:true, decimal:true),
              decoration:
                InputDecoration(
                  labelText: 'Enter text here'
                ),
            ),
          ],
        ),
      )// This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

flutter run -d web

Expected results:
No double caret. Keyboard type of 1st input field for emails and keyboard type of 2nd input field for numbers.
Actual results:
Double caret, keyboard is similar to both input fields.
Flutter doctor output:
[√] Flutter (Channel beta, 1.23.0-18.1.pre, on Microsoft Windows [Version 10.0.19041.630], locale en-150)
    • Flutter version 1.23.0-18.1.pre at C:\flutter
    • Framework revision 198df796aa (5 weeks ago), 2020-10-15 12:04:33 -0700
    • Engine revision 1d12d82d9c
    • Dart version 2.11.0 (build 2.11.0-213.1.beta)

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

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

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

[√] VS Code (version 1.51.1)
    • VS Code at C:\Users\Pedro\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.16.0

[√] Connected device (3 available)
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome 86.0.4240.198
    • Edge (web)       • edge       • web-javascript • Microsoft Edge 85.0.564.67

! Doctor found issues in 2 categories.

Remarks:

Note that I cannot reproduce this problem in more modern browsers. Only on safari 9.0.x, in my case I am using an iPad mini simulator with iOS version 9. On a real iPad the results are the same. You can also directly access this testing website
Please see this short video I uploaded on dropbox to have a visual view of the problem
I do not have android studio installed, because I do not need it. So ignore that on the doctor output.

As expected based  on your remakes, no issues Safari 14

flutter doctor -v
[✓] Flutter (Channel beta, 1.24.0-10.2.pre, on macOS 11.0.1 20B29 darwin-x64,
    locale en-GB)
    • Flutter version 1.24.0-10.2.pre at /Users/tahatesser/Code/flutter_beta
    • Framework revision 022b333a08 (2 days ago), 2020-11-18 11:35:09 -0800
    • Engine revision 07c1eed46b
    • Dart version 2.12.0 (build 2.12.0-29.10.beta)

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

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B45b
    • CocoaPods version 1.10.0

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

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

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

[✓] Connected device (3 available)
    • Taha’s iPad (mobile) • 00008020-000255113EE8402E • ios            • iOS
      14.2
    • Web Server (web)     • web-server                • web-javascript •
      Flutter Tools
    • Chrome (web)         • chrome                    • web-javascript • Google
      Chrome 87.0.4280.67

• No issues found!

@TahaTesser thank you for your input, however it is irrelevant. I specified safari 9, even on the title. I also said that on more modern browsers it works.

I updated the website where I tested the input with more varieties of input fields from external libraries as well. The results are similar.

main.dart

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_input/flutter_input.dart';
import 'package:easy_text_input/easy_text_input.dart' as ezi;
import 'dart:async';
import 'package:rxdart/rxdart.dart';

class Validators {
  static StreamTransformer<String, String> validateInputHasMin(int size,
      [String message]) {
    return StreamTransformer<String, String>.fromHandlers(handleData: (
      String value,
      EventSink<String> sink,
    ) {
      if (value == null || value.isEmpty) {
        sink.add(null);
        return;
      }
      if (value.length >= size) {
        sink.add(value);
      } else {
        sink.addError(message);
      }
    });
  }

  static StreamTransformer<String, String>
      validateInputHasExactNumberOfCharacters(int characters,
          [String message]) {
    return StreamTransformer<String, String>.fromHandlers(handleData: (
      String value,
      EventSink<String> sink,
    ) {
      if (value == null || value.isEmpty) {
        sink.add(null);
        return;
      }

      if (value.length == characters) {
        sink.add(value);
      } else {
        sink.addError(message);
      }
    });
  }
}

class ExampleBloc {
  final phoneCharactersAmount = 15;
  final minPasswordCharacters = 5;

  final BehaviorSubject<String> _phone = BehaviorSubject<String>();
  final BehaviorSubject<String> _password = BehaviorSubject<String>();

  Stream<String> get phone => _phone.stream.transform(
      Validators.validateInputHasExactNumberOfCharacters(phoneCharactersAmount,
          'The phone number must have exaclty 11 numbers'));

  Stream<String> get password =>
      _password.stream.transform(Validators.validateInputHasMin(
          minPasswordCharacters,
          'The password must have at least 5 characters'));

  Function get sinkPhone => _phone.sink.add;

  Function get sinkPassword => _password.sink.add;

  String get phoneValue => _phone.value;

  String get passwordValue => _password.value;

  void dispose() {
    _phone.close();
    _password.close();
  }
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  var textEditingController = TextEditingController(text: "RAW EDITABLE INPUT TEXT");
  var textEditingController2 = TextEditingController();
  final exampleBloc = ExampleBloc();

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  void changed_function(text) {
    debugPrint("InputField of ezi changed.");
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Invoke "debug painting" (press "p" in the console, choose the
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
          // to see the wireframe for each widget.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
              obscureText: true,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'TextField obscured',
              ),
            ),
            TextField(
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'TextField not obscured',
              ),
            ),
            Container(
              height: 40,
            ),
            EditableText(
              controller: this.textEditingController,
              focusNode: FocusNode(debugLabel: 'editable_text'),
              autocorrect: false,
              style: TextStyle(color: Colors.amber),
              cursorColor: Colors.black12,
              backgroundCursorColor: Colors.transparent
            ),
            Container(
              height: 40,
            ),
            EditableText(
              controller: this.textEditingController2,
              focusNode: FocusNode(debugLabel: 'editable_text'),
              autocorrect: false,
              style: TextStyle(color: Colors.amber),
              cursorColor: Colors.black12,
              backgroundCursorColor: Colors.transparent
            ),
            Container(
              height: 40,
            ),
            InputKeyboard<String>(
              decoration:
                InputDecoration(
                  labelText: 'Name *',
                  icon: Icon(Icons.person),
                  hintText: 'InputKeyboard<String> from lib flutter_input',
                ),
              path: 'user.name',
            ),
            Container(
              height: 20,
            ),
            ezi.InputField(
              stream: this.exampleBloc._phone,
              labelText: 'EZI INPUT text field from easy_input',
              onChanged: this.changed_function,
            ),
          ],
        ),
      )// This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

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

pubspec.yaml

name: flutter_input_x
description: A new Flutter project.

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_input: ^1.3.0
  keyboard_actions: "^3.3.1+1"
  easy_text_input: ^1.0.2
  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.0
  rxdart: ^0.24.1

dev_dependencies:
  flutter_test:
    sdk: flutter

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

These are two separate problems. I'll keep this issue for the double caret problem. @OblackatO could you please open a new issue for the keyboard type problem? Please mention me on the issue to make sure I'm notified.

I found an alternative to google flutter and no longer use it. Thank you for your input though.

Let's keep this issue open since other users are also experiencing the same problem.

This is a major issue for iOS users of my Flutter web app in production. Any thoughts on what's going on here?

The double caret on iOS issue is quite frustrating and it’s reproducable on latest master as of this moment : 2.3.0-1.0.pre.229
@mdebbar If I understand this correctly, Flutter renders it’s own cursor, which ideally, would be fully in sync with the browser cursor to the point that they are indistinguishable?
When they get out of sync, for various reasons (I suspect one of them is programatically modifying the TextField via TextEditingController directly), we end up with dual cursors?
Would a potential workaround be hiding the default browser cursor or setting it’s color property to a transparent color?
Since it’s only happening on web, maybe modifying Index.html manually, to force hide the browser cursor, would be a potential temporary workaround?

The double caret on iOS issue is quite frustrating and it’s reproducable on latest master as of this moment : 2.3.0-1.0.pre.229
@mdebbar If I understand this correctly, Flutter renders it’s own cursor, which ideally, would be fully in sync with the browser cursor to the point that they are indistinguishable?
When they get out of sync, for various reasons (I suspect one of them is programatically modifying the TextField via TextEditingController directly), we end up with dual cursors?
Would a potential workaround be hiding the default browser cursor or setting it’s color property to a transparent color?
Since it’s only happening on web, maybe modifying Index.html manually, to force hide the browser cursor, would be a potential temporary workaround?
how can i modifying Index.html to fix this for few time?please

The double caret on iOS issue is quite frustrating and it’s reproducable on latest master as of this moment : 2.3.0-1.0.pre.229
@mdebbar If I understand this correctly, Flutter renders it’s own cursor, which ideally, would be fully in sync with the browser cursor to the point that they are indistinguishable?
When they get out of sync, for various reasons (I suspect one of them is programatically modifying the TextField via TextEditingController directly), we end up with dual cursors?
Would a potential workaround be hiding the default browser cursor or setting it’s color property to a transparent color?
Since it’s only happening on web, maybe modifying Index.html manually, to force hide the browser cursor, would be a potential temporary workaround?

how can i modifying Index.html to fix this for few time?please

Just to confirm, is this issue only occurring on old versions of safari (< 10)? And does upgrading to a modern version resolve it?


isPermissionDialogVisible Only works with the app language being English.

Use case
When my app is support multiple language.
isPermissionDialogVisible can't execute because patrol execute text by English
Proposal
I think we should has a optional for execute when the app is other language without English

Hi @duchv-selex
Could you provide some more details? I've just rechecked this test from example app https://github.com/leancodepl/patrol/blob/master/packages/patrol/example/integration_test/main_test.dart#L51 on both iOS and Android simulators with Polish language set up (popups were correctly with Polish texts) and this test passed.

@duchv-selex Actually, I was wrong, sorry for that.
What I described works on Android. If you try to use those native commands (isPermissionDialogVisible  etc.) on iOS, they will only work with English. I will add feature label (feature request).
For now you can only work with those permissions on iOS in other languages by using String selectors.

For now you can only work with those permissions on iOS in other languages by using String selectors.

Remember to set appId argument to com.apple.springboard on iOS! :)

@jBorkowska I don't really understand what you mean.

@zoskar Thank you for you support.

@duchv-selex
The comment above suggested, that if you want to implement tapping on your permission dialog in other language on iOS, you would need sth like:
    await $.native.tap(
      Selector(text: 'your text'),
      appId: 'com.apple.springboard',
    );


ranks文件夹为空, .npy文件找不到？

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Cell In[5], line 3
      1 print(f"Loading dataset: {dataset_name}")
      2 ranks = {
----> 3     'valid': [np.load(f"{rank_path}/{m}_valid_ranks.npy") for m in model_names],
      4     'test': [np.load(f"{rank_path}/{m}_test_ranks.npy") for m in model_names]
      5 }
      6 print(ranks['test'][0].shape)
      8 n_model = len(ranks['test'])

Cell In[5], line 3, in <listcomp>(.0)
      1 print(f"Loading dataset: {dataset_name}")
      2 ranks = {
----> 3     'valid': [np.load(f"{rank_path}/{m}_valid_ranks.npy") for m in model_names],
      4     'test': [np.load(f"{rank_path}/{m}_test_ranks.npy") for m in model_names]
      5 }
      6 print(ranks['test'][0].shape)
      8 n_model = len(ranks['test'])

File ~/miniconda3/lib/python3.8/site-packages/numpy/lib/npyio.py:405, in load(file, mmap_mode, allow_pickle, fix_imports, encoding, max_header_size)
    403     own_fid = False
    404 else:
--> 405     fid = stack.enter_context(open(os_fspath(file), "rb"))
    406     own_fid = True
    408 # Code to distinguish from NumPy binary files and pickles.

FileNotFoundError: [Errno 2] No such file or directory: 'ranks/ogbl-biokg/KGBench_valid_ranks.npy'

·

Problem: The "ranks" folder is empty, and the .npy file cannot be found?
Due to the large size of the rank file, we have not uploaded it. You can place your rank file in this location. The data format of the file and how to generate it are explained in the documents and papers. If you encounter any problems, you can post your specific questions. Thanks for your attention!

How I can generate rank file for OGBL datasets e.g., wikikg2 or book ?

Due to the large size of the rank file, we have not uploaded it. You can place your rank file in this location. The data format of the file and how to generate it are explained in the documents and papers. If you encounter any problems, you can post your specific questions. Thanks for your attention!

Due to the large size of the rank file, we have not uploaded it. You can place your rank file in this location. The data format of the file and how to generate it are explained in the documents and papers. If you encounter any problems, you can post your specific questions. Thanks for your attention!

Can you guide me which specific documents or papers? Are there multiple choices to generate rank of data

In the paper: https://aclanthology.org/2023.emnlp-main.1034/ , we explain why ranks are necessary. The script is simple and easy to code, and the paper also introduces how to generate the ranks. You can ensemble without using ranks, but based on our experiments and experience, ranks are always better, especially when your ensemble models are very different.

You can also follow the instructions in the readme.md:
Section: Prepare predictions of the base models.


Iterative example of Time Calibration

Add iterative version of Time Calibration based on the new iterative scheme.
This approach uses several new mechanisms which are included into the dev core framework

Superseded by #126.


Add download links to commits_list

Feature Description
This is a small change which adds links to download any commit from the commits list.  The change makes the "message" column slightly smaller and adds text "[.zip]|[.tar.gz]" in the sha1 column, with "[.zip]" being a link to download the .zip copy of the repo commit on the related row, and "[.tar.gz]" being the same in .tar.gz format.
An example can be seen live here:
https://git.groesz.org/Groesz.org/bits/commits/branch/master.
I've found this to be very convenient when needing to download a specific commit of a repo with fewer clicks.
Screenshots

Hmm… I'm not sure if cluttering up the UI is a good idea here.
How often do you actually need to download a repo at a specific commit, and can't use git clone instead?
I've never needed it so far, and I use git(ea) for quite some time now.
So, to me, this seems a bit like an unnecessary feature that takes away space from the list that is already scarce (especially on smaller screens such as mobile).
The action is already possible with a few clicks more on a page that is more fitting for it…

I work from multiple locations and from multiple client PCs where I don't always have access to git locally. In my case, a project I was working on for another engineering team required me to send links to a .zip copy of the repository where the client didn't want to hassle with git. When developing in my own controlled environment, it's not such a big deal.
Also, I had cloned the Nvidia Jetson kernel repo to make changes. The repo was huge, but I wanted to share my changes without requiring a download of the entire repo on the client side.
This adds convenience links which, in my opinion, are unobtrusive. The links themselves are kept small for this reason. One or the other link can also be removed.
To me it's a small change that adds convenience without affecting the layout too terribly much.

An alternative which is less intrusive is to add a single line
{{svg "octicon-file-zip" 16 "gt-mr-3"}}
which adds an icon with the link to the .zip download for the commit and doesn't modify the column spacing.

I understand your requirement, but it is indeed not a common one. Since Gitea is customizable, maybe you can use a custom template for your instance? See Customizing Gitea pages and resources.


Set clear-on-select to true but not update the options until user inputs a new search string

Hello, I would like to clear the search term on select but would not like options to be updated until the user enters another search term. Is there a way to ignore the empty search string which end up displaying all the options ? Fiddle and repro steps below.
https://jsfiddle.net/cheekudi/bmwyn9zp/6/
Steps to reproduce

Search for "ail", Rails, Tails and Fails will show up under the options
Select Tails

Expected behaviour
Clear the search term "ail" but keep showing "Rails, Fails" as options untile a new search term is entered.
Actual behaviour
All the remaining options are shown since the search is cleared.

@shentao - any suggestions on how to clear the search term but maintain the search results on selection? Thanks much!


Serializer/Deserializer for type using variable length encoding scheme

Moved from https://github.com/serde-rs/bytes/issues/4. @jinyuanxie

For example, I have a struct defined as follow:
pub struct VariableLength(u32);

And the field using a variable length encoding scheme, how can I implement Serializer/Deserializer for it?
VariableLength <---> Vec<u8>/&[u8]

Thanks a lot.

Can you say more about your use case? What data format are you using? Are you implementing a new Serde data format from scratch?

@dtolnay emm, I'm want to use serde to ser/de MQTT protocol packet, some basic type, any packet is an combination of those basic type. In the iniaitl implement, I use custom trait Encode Decode to do this:
impl Encode for VariableLength {
    fn encode(&self) -> Vec<u8> {
        ....
    }
    fn encoded_len(&self) -> usize {
        ....
    }
}

impl Decode for VariableLength {
    fn decode(i: &[u8]) -> IResult<&[u8], VariableLength> {
        ....
    }
}

pub struct NewPacket {
    len: VaribaleLength,
    ...
}

but I found that serde may do this more flexible, and want to rewrite my code, but didn't know how to start to do this..

Based on MQTT specification, I would recommend using nom to parse packets. Serde is not a parsing library so if you have a working parser already then Serde would not provide any value.

Thanks a lot, I have to evaluate my needs.


DynamoDBContext.FromScanAsync scans more than the provided limit before returning a result

Describe the bug
I have the following code that should return the first 30 items, but it takes a few minutes to return the result.
Is there another way to specify the max items?
var search = DbContext!.FromScanAsync<DynamoPropertyRecord>(
            new ScanOperationConfig()
            {
                Limit = 30,
                AttributesToGet = new List<string>(){ "ShortId", "Content" },
                Select = SelectValues.SpecificAttributes
            },
            _config);

        var results = await search.GetRemainingAsync();

Expected Behavior
The result should be returned and the scan stopped once the limit is reached
Current Behavior
It looks like it scan all table and returns the last 30 items. Looking at the code of the DocumentSearch, as long as there is a LastEvaluatedKey the scan will continue. Shouldn't the GetRemainingAsync method take into account the configure limit ? It doesn't seem intuitive to use GetNextSetAsync
Reproduction Steps
var search = DbContext!.FromScanAsync<DynamoPropertyRecord>(
            new ScanOperationConfig()
            {
                Limit = 30,
                AttributesToGet = new List<string>(){ "ShortId", "Content" },
                Select = SelectValues.SpecificAttributes
            },
            _config);

        var results = await search.GetRemainingAsync();

Possible Solution
No response
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
AWSSDK.DynamoDBv2 <IP_ADDRESS>
Targeted .NET Platform
.NET 7
Operating System and version
Windows 11

@JManou Good afternoon. Please refer to DynamoDB API Reference: Scan where it mentions that The Scan operation returns one or more items and item attributes by accessing every item in a table or a secondary index. To have DynamoDB return fewer items, you can provide a FilterExpression operation.. Please confirm if you have tried using FilterExpression property of ScanOperationConfig. I'm unsure if the Scan operation fits your needs, you may check Query operation if it fits your needs.
Thanks,
Ashish

@ashishdhingra when using the aws cli I can specify --max-items to get a limited number of elements without doing any filtering. Is it possible to achieve the same behavior using the SDK ?

@ashishdhingra when using the aws cli I can specify --max-items to get a limited number of elements without doing any filtering. Is it possible to achieve the same behavior using the SDK ?

@JManou Kindly advise on how you came into conclusion that AWS SDK for .NET if not stopping after evaluating the number of items specified by Limit property.

@ashishdhingra

I debugged the code and I have seen that, until the NextKey is null or empty the scan continue (cf https://github.com/aws/aws-sdk-net/blob/8c8809236e07eaa5341399e9328df2433c0929b9/sdk/src/Services/DynamoDBv2/Custom/DocumentModel/Search.cs#L356)
Yes every time


WIP: Version 6

Issue #, if available:
#3
#55
#70
#80
Description of changes:
This PR holds all the v6 changes, so they can be merged into master at once. While working on these features, they will be merged into the v6_prerelease branch to make them available for adventurous users.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

For anyone still interested, this is on hold until at least March of 2019. Thanks for your interest!

For anyone still interested, this is on hold until at least March of 2019. Thanks for your interest!

Interested. And it's March. Questions/comments:

There's been no updates for about 6 months. Is this release still happening?
I only want the routing changes (wish that was the original protocol), not any streaming stuff. Why delay and complicate v6 with more moving parts?
git checkout master && git merge v6_prerelease looks pretty clean and simple. How far out on a limb would I be if I fork and track my own until this gets done?

Great "batteries included" stuff here!

I wish the custom prefix #55 could be added in v5, instead of waiting for v6. Or streaming stuff can be a v7?

Yes, as I stated in #70, I think streaming might be the wrong next step for Twirp. That would simplify this release considerably, changing it down to just being about paths.

How far out on a limb would I be if I fork and track my own until this gets done?

@rmasp, I'm not sure exactly. The current branch just removes the /twirp prefix, but I think I might want to do something a little more sophisticated to make the migration process easier. That might come with a new API, or something - not exactly sure, but I'm back to thinking about it much more actively.
Thanks for waiting, and sorry about the long delay on this. The reason for the delay is mostly that Twirp works pretty well today, and these routing changes will take some careful work to make the transition smooth. I think they're basically just cosmetic, too.

The current branch just removes the /twirp prefix, but I think I might want to do something a little more sophisticated to make the migration process easier

And that's all I want/need. Again, for those of us exposing our Twirp APIs to 3rd parties, the /twirp is an issue. However, I branched master, merged in v6_prerelease and everything looks good. And since I'm building anew, migration is a non-issue for me.
That said, why not make the lead path part configurable at protoc code-gen time, with nil or empty string leaving that path piece out entirely? Default would be /twirp, so legacy code would not be affected?

Right, I'd just like to avoid configuration at code-gen time if possible. Code generators are often buried in tool chains, so passing through options to them can be hard for people with any sophistication in their builds. An option in the .proto file might work, but that would require providing an importable definition, which adds its own headaches... maybe worth it, but it's a challenge.

Seems like the approach I like puts the onus of toolchain config on those if us who don't like the default. It's a no-op for anyone happy with the /twirp default. Just sayin'.

Yep, but if I can avoid adding that complexity for anyone, I'd prefer that. Good point though, you've moved my thinking on this a bit.

Thanks for listening! Fwiw, I'm using twirp in a pipeline with gqlgen, which has a bunch of code gen configurability in a yml: https://gqlgen.com/config/
Imho as twirp sees wider adoption you'll get requests for a more configurable settings. Look at Django, Rails, ... I know it's a fine line between simplicity and configurability. Way to many tools (esp in the golang space) have more dials and buttons than Spock's science station. Have to design for the "just right porridge" and common case defaults.

Shall we merge newer releases back to v6_prerelease branch in the meantime?

Fwiw, next week I'm moving my servers (and clients) to the v6_prerelease branch because of product requirements that include no /twirp in path. I'd really like to see v6 become mainline.

Hi,
Any news regarding a merge date ?
Also, keep the good work, twrip is awesome!

Sorry, this PR is not going to be merged. The protocol v6 proposal was closed because both issues included in the release could not reach consensus (streaming: https://github.com/twitchtv/twirp/issues/3, and updating the path: https://github.com/twitchtv/twirp/issues/55).
This doesn't mean that the features will never be implemented in some form, this only means that they don't depend on each other for v6.


Ran clang-tidy with modernize-use-nullptr

Running clang-tidy over the 7.1.x branch to make things easier to backport

[approve ci clang-analyzer]


refactor: migrate to dependent induction lemmas

It's great that we add these dependent induction lemmas, but I think it's sometimes nice to also have access to the non-dependent ones, since they're sometimes easier to work with. For example, when it's necessary to specify the motive to a dependent induction in the case where the application is not dependent, you often end up with things looking syntactically really confusing. I'd personally slightly prefer keeping the old ones around, under other names. But if it turns out that adjusting mathlib to your change is easy enough, then it's probably fine...

You should never have to specify the motive explicitly though? Usually when you do, this is because:

The induction principle was not dependent, and should have been
The induction principle has the arguments in the wrong order
elab_as_elim is missing from the theorem
You tried to use apply with an elab_as_elim

You should never have to specify the motive explicitly though?

Note that the current state of this PR has exactly one adaptation going from the non-dependent to the dependent one, in dense_induction. And the motive is specified explicitly here, in a non-dependent way: exactly the situation I'm worried about.
It's possible that this is an isolated example, but I just want to flag it because it does get annoying in practice.

@b-mehta I think that refine can get confused, but that's primarily because dense_induction is weird in that the term on which we are doing induction (namely x) doesn't reference s in it's type, so it's a bit underdetermined. Nevertheless, I think Eric is right, so long as you actually use the induction tactic. For instance, this works for Subsemigroup.dense_induction.
theorem dense_induction {p : M → Prop} {s : Set M} (hs : closure s = ⊤)
    (mem : ∀ x ∈ s, p x)
    (mul : ∀ x y, p x → p y → p (x * y))
    (x : M) : p x := by
  induction hs.symm ▸ mem_top x using closure_induction with
  | mem x hx => exact mem x hx
  | mul x _ y _ hpx hpy => exact mul x y hpx hpy

Overall, while it was a lot of work to go through changing things, it wasn't terrible. This dense_induction issue hardly ever came up (at least in terms of new places where I needed to specify the motive). You're welcome to have a look and let me know what you think.

I think all the primed induction principles should be kept as deprecated aliases, to not break downstream code that already uses them.

I think all the primed induction principles should be kept as deprecated aliases, to not break downstream code that already uses them.

I considered that, but I think it might be really confusing if we only swap the names on some of them.

I think all the primed induction principles should be kept as deprecated aliases, to not break downstream code that already uses them.

I considered that, but I think it might be really confusing if we only swap the names on some of them.

I'm not suggesting we swap the names, but that both the primed and unprimed versions refer to the dependent ones. That way people don't have to guess to work out that they just need to remove the '.

I'm not suggesting we swap the names, but that both the primed and unprimed versions refer to the dependent ones. That way people don't have to guess to work out that they just need to remove the '

Done

Given that this PR is huge, I thoroughly approve of the changes, my questions above are quite superficial and probably easily answered, and this might pick up merge conflicts if we leave it too long, my instinct is to merge first and ask questions later.
bors merge


ae_grid_search doesn't parse n_ae_latents when it's a list

If "n_ae_latents" is a list in ae_model.json, then I get this cryptic error:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~/dev/behavenet/behavenet/fitting/ae_grid_search.py in <module>
    126 if __name__ == '__main__':
    127
--> 128     hyperparams = get_all_params('grid_search')
    129
    130     if 'slurm' in hyperparams and hyperparams.slurm:

/share/ctn/users/ccr2137/dev/behavenet/behavenet/fitting/hyperparam_utils.py in get_all_params(search_type, args)
     45     # Add parameters dependent on previous inputs
     46     namespace, extra = parser.parse_known_args(args)
---> 47     add_dependent_params(parser, namespace)
     48
     49     return parser.parse_args(args)

/share/ctn/users/ccr2137/dev/behavenet/behavenet/fitting/hyperparam_utils.py in add_dependent_params(parser, namespace)
     82         if (arch_dict['ae_encoding_n_channels'][-1]
     83                 * arch_dict['ae_encoding_x_dim'][-1]
---> 84                 * arch_dict['ae_encoding_y_dim'][-1]) < namespace.n_ae_latents:
     85             raise ValueError('Bottleneck smaller than number of latents')
     86

TypeError: '<' not supported between instances of 'int' and 'NoneType'

It turns out that namespace.n_ae_latents is returning None, instead of the list in the json config. Any ideas? I could set a default=value[0] in :
https://github.com/ebatty/behavenet/blob/develop/behavenet/fitting/hyperparam_utils.py#L54
But not sure if that would break something else.

Hmmm we've had this problem before, I thought it was fixed :/
I can take a look at it later this afternoon.

Oh, I hope I'm using the up to date versions of everything. I just checked I'm on the 'develop' branch of behavenet, pulled all recent changes, and checked that I have the versions in requirements.txt.
behavenet                 0.0.2                     dev_0    <develop>
python                    3.7.2                h0371630_0
ssm                       0.0.1                     dev_0    <develop>
test-tube                 0.7.3                    pypi_0    pypi
torch                     1.3.1                    pypi_0    pypi

I'm using this change to fix it for now:
https://github.com/cxrodgers/behavenet/commit/9cc89256ebc11b65d193499d5e8c174860f2d6a7
So no rush on this at all, because this workaround seems to work.
Let me know if there's anything I can do to help. thanks!!

@yifr were you having this problem as well?

Yeah, at the time I ended up just removing the check for the time being, but you had a commit that was intended to solve it:
https://github.com/ebatty/behavenet/issues/11

@cxrodgers fixed this - it's a bit ugly but should work. Let me know if you have any problems with it!

works, thanks!!


saveSnapshotToPath is not a function

I added .a and .m files to my XCode project and restart app, but still don't see the saveSnapshotToPath function.

Am I doing something wrong ?

Can you give more details on how you added these files?

@jsierles Right click -> "Add files to project" -> selected .m and .h file

same here ,,, seems the import statement returns an empty object

somehow the ViewSnapshotter.ios.js is missing from the version installed by npm !!

Sorry for the trouble here - I published 0.3.0 which should include these files.


Support custom host and port

Thanks for creating this crate, it's a time saver!  We needed a way to query Snowflake and convert to arrow/parquet, so this is perfect for us.  There are some tweaks I would need in order to use this for tests.  I'm happy to submit a PR, but wanted to see if you were accepting them?
Currently, the host is hard-coded to go snowflakecomputing.com.  There is a way to test snowflake now on LocalStack, but it requires a custom host and port (host: snowflake.localhost.localstack.cloud, port: 4566).
I think this can be added to the builder without affecting the current API in lib.rs (just the signature to request() in connection.rs):
pub struct SnowflakeApi {
    connection: Arc<Connection>,
    session: Session,
    account_identifier: String,
    host: Option<String>, // this is new
}

pub fn with_host(mut self, uri: &str) {
    self.host = Some(uri);
}

Then, in the request() function in connection.rs:
pub async fn request<R: serde::de::DeserializeOwned>(
    &self,
    query_type: QueryType,
    account_identifier: &str,
    extra_get_params: &[(&str, &str)],
    auth: Option<&str>,
    body: impl serde::Serialize,
    host: Option<&str>, // this is new
)

...

let url = host.unwrap_or_else(|| format!(
    "https://{}.snowflakecomputing.com/{}",
    &account_identifier, context.path
));

REFS:
Hard coding: https://github.com/andrusha/snowflake-rs/blob/57705c5fe7a27ee45ed4604ddcdb060c41ed88f9/snowflake-api/src/connection.rs#L147-L149
LocalStack on Snowflake docs: https://snowflake.localstack.cloud/introduction/

I have a working fork here: https://github.com/quadratichq/snowflake-rs, though it still needs some polish.  Sadly, hitting LocalStack Snowflake gave an empty body on the session login.  After contacting LocalStack, it seems like their product is in public preview, and may be a paid feature in the future.
My goal is to be able to test the snowflake interactions without hitting the production snowflake server.  HTTP Mock is relatively new, which offers the ability to record live requests/responses into saved fixtures to use in tests.  They require a custom host injection to act as a proxy, so the code in the fork may still be useful.  I'll update this issue with my findings.

In that same fork, I implemented a stream response.  The original full response is available, but this stream helps avoid taking down a server for overly-large data sets.

Note, for streaming support there is the following PR.
https://github.com/andrusha/snowflake-rs/pull/44/
The code has been battle tested for several months as part of the following project
https://github.com/spiceai/spiceai


Support fields in scalers for identification

Proposal
Can KEDA scaler support some fields like name or labels for identification ?
It's very common that one scaledObject or job has multiple triggers for same scaler like prometheus or cron but just with different queries or conditions. Currently all KEDA scalers don't have fields for identification, this limitation makes us difficult to dynamically manage the triggers by some script or operator.
Use-Case
Our script periodically checks the events from calendar, if there is a new event scheduled in 2pm today for example, the script will add a new cron trigger to scaledobject for scaling, and remove it if event is finished. Without some fields for identification we only can manage the multiple cron triggers in an ugly way, compare the value of start/end parameters of all existing cron triggers, if exactly matches to the one for expired event, then remove it. With the identifiable fields we can just easily search the name or labels, remove it if matched
triggers:
- type: cron
  metadata:
    name: daily_scaling_morning
    timezone: Asia/Kolkata
    start: 30 8 * * *
    end: 45 9 * * *
    desiredReplicas: "10"
- type: cron
  metadata:
    name: special_event_jul_1_noon
    labels:
      event_type: all_subscribers
    timezone: Asia/Kolkata
    start: 30 12 1 7 *
    end: 30 13 1 7 *
    desiredReplicas: "20"
- type: cron
  metadata:
    name: special_event_jul_1_evening
    labels:
      event_type: prime_subscribers
    timezone: Asia/Kolkata
    start: 30 18 1 7 *
    end: 45 20 1 7 *
    desiredReplicas: "20"

Anything else?
No response

Hey,
I think that this use case is more specific for your scenario than a generic scenario. I'd say that in this case, it's better if you create your custom metrics server by RestAPI (MetricsAPI Scaler) or gRPC (External Scaler). You could just implement the logic in your backend and KEDA will query the value every time, so if you decide that you have to scale ie at 2AM, you could just return 0 before 2AM and X after 2AM.
WDYT?
BTW, currently you can use name in the metadata because metadata is a map[string]string, KEDA doesn't validate the extra fields.

@JorTurFer Didn't know we can add some self-defined fields in metadata, this should be sufficient for identification, thank you !


Are types working in v0.3.0?

Seems like types cannot be found in version 0.3.0.
Perhaps due to package.json -> types property?
  "typings": "dist/types/index.ts",
Path /dist/types/index.d.ts once bundled

Yeah, not working... Quick fix is to just change typings from dist/types/index.ts -> dist/types/index.d.ts, then save a patch with patch-package...
@SegFaultx64 Fix coming or should I open a PR?

Ran into this issue too, found a different workaround that doesn't need a patch
in your tsconfig.json, add this path override
{
    "compilerOptions": {
        // ... your other options
        "paths": {
          "typescript-graph": ["./node_modules/typescript-graph/dist/types/index.d.ts"]
        }
    }
}


Invalid grid element

Issue Id: 3a4b08c2-0cf6-689a-15b7-3b3c7f8253d8Versions - 1.38.0-insider (9/3/2019 11:14:03 PM)-  5ab84ce18fe7dee304325952f2849264dd4a48c1-  190a29c9f8cb60859adaad497f316ceed717b3c2-  dcc01858d3f75696568eb751238d01b30a1e7d33-  e77b008fb04222192a608906ff603bd72943d779Stack Error: Invalid grid element/vs/base/browser/ui/grid/grid.ts#171:8 (getGridLocation)/vs/base/browser/ui/grid/grid.ts#180:12 (getGridLocation)/vs/base/browser/ui/grid/grid.ts#437:9 (getViewLocation)/vs/base/browser/ui/grid/grid.ts#372:24 (getViewSize)/vs/workbench/browser/parts/editor/editorPart.ts#594:36 (doRestoreGroup)/vs/workbench/browser/parts/editor/editorPart.ts#330:7 (restoreGroup)/vs/workbench/browser/parts/editor/editorGroupView.ts#863:17 (doOpenEditor)/vs/workbench/browser/parts/editor/editorGroupView.ts#816:40    at Generator.next ()/vs/base/common/errors.ts#199:0    at new Promise ()/vs/base/common/errors.ts#199:0 (options)/vs/workbench/browser/parts/editor/editorGroupView.ts#800:39 (openEditor)/vs/workbench/services/editor/browser/editorService.ts#279:41    at Generator.next ()    at out/vs/workbench/workbench.desktop.m

/cc @bpasero @joaomoreno

@sbatten Isn't this the editor grid?

yes, it is but could be a result of changes to grid serialization

Got it. Any thoughts on how to repro?

nope, couldn't repro myself. the number of hits is fairly small imo and no reports from 1.39-insiders

Close it up!


Multiple Trees in File

Good afternoon! Sorry to leave another response, I have been trying for several days to trouble shoot this on my own with no luck.
When running the sample data, the output from the align subcommand gives me CBF3_MSA.fasta and CBF3.tree instead of CBF3_tree.tree. I checked the .log files and I don't see an error happening. I then tried executing the predict subcommand using this CBF3.tree and it gives me the error that there are multiple trees in this file. I have tried looking at the Hyphy/Biopython side and the PASTA side of the problem, and noticed there was an extra semicolon in the tree. I deleted that manually and tried running again with the same error occurring. At this point I assume some step in the PASTA align/tree component is being skipped and just not giving me an error. I have tried reinstalling things and messing with the versions for each dependency without any luck. Bellow are the end portions of the logs:
Align:

PASTA INFO: TreeShrink option has been turned off!
PASTA INFO: Step 4. Realigning with decomposition strategy set to mincluster
PASTA INFO: Step 4. Alignment obtained. Tree inference beginning...
PASTA INFO: realignment accepted despite the score not improving.
PASTA INFO: current score: -17739.33, best score: -17698.421
PASTA INFO: TreeShrink option has been turned off!
PASTA INFO: Writing resulting alignment to /tmp/pastajob_1572975010.129370.marker001.BAD_Mutations_PastaInput_KxK2_1.aln
PASTA INFO: Writing resulting tree to /tmp/pastajob_1572975010.129370.tre
PASTA INFO: Writing resulting likelihood score to /tmp/pastajob_1572975010.129370.score.txt
PASTA INFO: The resulting alignment (with the names in a "safe" form) was first written as the file "/tmp/pastajob_1572975010.129370_temp_iteration_1_seq_alignment.txt"
PASTA INFO: The resulting tree (with the names in a "safe" form) was first written as the file "/tmp/pastajob_1572975010.129370_temp_iteration_1_tree.tre"
PASTA INFO: Total time spent: 70.6753809452s
===2019-11-05 10:31:22,141 - LRT_Predict===
DEBUG	stderr:
===2019-11-05 10:31:22,169 - Pasta_Align===
DEBUG	Sanitizing alignment in /tmp/BAD_Mutations_BackTranslated_Aw55AW.fasta
===2019-11-05 10:31:22,169 - Pasta_Align===
DEBUG	Sanitizing tree in /tmp/pastajob_1572975010.129370.tre
===2019-11-05 10:31:22,243 - LRT_Predict===
INFO	Nucleotide alignment in /tmp/BAD_Mutations_BackTranslated_Aw55AW.fasta
===2019-11-05 10:31:22,243 - LRT_Predict===
INFO	Tree in /tmp/pastajob_1572975010.129370.tre
===2019-11-05 10:31:22,261 - LRT_Predict===
INFO	MSA copied to Output_Dir/CBF3_MSA.fasta
===2019-11-05 10:31:22,261 - LRT_Predict===
INFO	Tree copied to Output_Dir/CBF3.tree<

Predict:

===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable BASE to /scratch/BAD_Mutations_Data
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable TARGET_SPECIES to hordeum_vulgare
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable EVAL_THRESHOLD to 0.05
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable BASH to /bin/bash
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable GZIP to /bin/gzip
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable SUM to /usr/bin/sum
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable TBLASTX to /usr/bin/tblastx
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable PASTA to /usr/local/bin/run_pasta.py
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Setting variable HYPHY to /usr/bin/hyphymp
===2019-11-07 08:44:27,234 - Configuration_Handler===
DEBUG	Command line and config options merged. Values: {'sum_path': '/usr/bin/sum', 'target': 'hordeum_vulgare', 'gzip_path': '/bin/gzip', 'loglevel': 'DEBUG', 'config': 'BAD_Mutations_Config.txt', 'evalue': '0.05', 'tree': 'Output_Dir/CBF3.tree', 'substitutions': 'Test_Data/CBF3.subs', 'base': '/scratch/BAD_Mutations_Data', 'hyphy_path': '/usr/bin/hyphymp', 'action': 'predict', 'output': 'Predictions_Dir', 'fasta': 'Test_Data/CBF3.fasta', 'tblastx_path': '/usr/bin/tblastx', 'bash_path': '/bin/bash', 'alignment': 'Output_Dir/CBF3_MSA.fasta', 'pasta_path': '/usr/local/bin/run_pasta.py'}
===2019-11-07 08:44:27,234 - LRT_Predict===
DEBUG	Checking if BAD_Mutations_Config.txt exists.
===2019-11-07 08:44:27,235 - LRT_Predict===
DEBUG	Checking if Output_Dir/CBF3.tree exists.
Traceback (most recent call last):
File "./BAD_Mutations.py", line 372, in
main()
File "./BAD_Mutations.py", line 330, in main
arguments_valid, msg = parse_args.validate_args(config_opts, loglevel)
File "/home/arizonica/BAD_Mutations/lrt_predict/General/parse_args.py", line 347, in validate_args
if not parse_input.valid_tree(args['tree'], log):
File "/home/arizonica/BAD_Mutations/lrt_predict/General/parse_input.py", line 29, in valid_tree
p = Phylo.read(f, 'newick')
File "/usr/local/lib/python2.7/dist-packages/Bio/Phylo/_io.py", line 73, in read
"There are multiple trees in this file; use parse() instead.")
ValueError: There are multiple trees in this file; use parse() instead.<

Thank you again for your assistance, I very much appreciate your time!

update: I changed the biopython portion from read() to parse() and was able to run the tree, however I am getting p-values of 0 for every SNP in the test files.

Hello,
The first issue (multiple trees in file) looks like a real bug - I will start working on the tree sanitization script to address that. The second issue regarding P-values of 0 seems like more of a complicated case. I will look into that once the tree sanitizing is in place and I can reliably reproduce the problematic files. Thank you, and apologies for the inconvenience!

Thank you for your help, please let me know if you would like more information or need any help! As an update I tried running the tree again with 42 species instead of all the 90 (what currently downloads) and now get proper p-values, however all of them are significant, even for those in the test data which should not be.

Hello,
Thank you for your patience! I have pushed some edits to the dev branch that should address the tree parsing issue. With regard to the P-value issue, can you share the output of the predict and compile commands? I can make sure that the columns of the HYPHY output are being parsed and handled properly. Thank you!

Thanks again for the help! I have attached all the files and logs associated. Please note if I run the predict command on the provided tree and MSA fasta file I get similar p-values to those in the sample output files. I also tried running both commands on some of my own data and it gives highly significant p-values (10-16) for all possible snps.
CBF3.tree.txt
CBF3_MSA.fasta.txt
CBF3_Alignment.log.txt
CBF3_Predictions.log.txt
messages.log.txt

Hello,
Thank you for sharing the files! It looks like the alignments and tree files are generating properly and the HYPHY log does not show any problematic output. The issue might be that the logistic regression model for generating P-values does not really translate to analyses that use a different set of query genomes than the ones for which it was developed. My hunch with that is that the total substitution rate observed depends on the number of sequences in the alignment.
I think the easiest way to get a usable prediction from the output of BAD_Mutations when using a different set of sequences, you may be able to use the heuristics that were originally used in the Chun and Fay 2009 (https://genome.cshlp.org/content/19/9/1553.abstract) paper:

Deleterious mutations were predicted by nonsynonymous SNPs that disrupt significantly constrained codons defined by the LRT (P < 0.001) and a number of subsequent filters (Supplemental Table S1). First, positions with low power, <10 eutherian mammals, were eliminated. Second, a small number of sites with dN significantly greater than dS were discarded. Finally, positions where the derived deleterious allele occurred in another eutherian species were eliminated.

I'm sorry that the best solution for now is to go back to heuristic approaches for prediction. We applied similar heuristics in our 2016 paper, which you can see implemented in this old script: https://github.com/MorrellLAB/Deleterious_Mutations/blob/master/Analysis_Scripts/Count_Deleterious_By_Sample.py (function defined on lines 25-63). I'll look into getting a new logistic regression model with a more modern set of genomes for the next release of BAD_Mutations. My apologies!


PHPsu is to fast for our Production System.

what do you mean?

This can probably fixed by #61 compressing the mysql data

closed by: #135


Duplicate IP detection on L2 mode

Is this a bug report or a feature request?:
feature request
What happened:
Here is the thing, our env have a dhcp server, and I don't have additional IP pool other than dhcp pool.
So I will config metallb to use the same pool as dhcp server, but I would like metallb to detect if an IP is taken or not before create one.
I'm not sure if metallb supports it or not for now.
What you expected to happen:
metallb always pick an IP from pool  that haven't been taken by other clients.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

MetalLB version:
Kubernetes version:
BGP router type/version:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):

MetalLB doesn't support this, and likely never will, because the complexity of implementation is high, and my free time is very low. Issue #157 tracks this general idea, so I'll close this in favor of that one.


how to start vue after doing npm run build ?

I did try with npm run start, but it says starting dev server,
thanks

npm run start should only be used for dev environment.
all you have to do is point Apache/Nginx/Caddy to the ./dist folder.


Dependencies are installed when not needed.

For all of the _DEPENDS lists the first column defines when the dependency is needed. It may be a binary in the path, a package, or a library. Portupgrade is ignoring this field and always installing the dependency when the ports framework may have actually skipped installing it. This is easily seen with base utility dependencies such as in security/keychain. It has a dependency on ssh-agent:${PORTSDIR}/security/openssh-portable that is only needed to be installed if ssh-agent is not installed.

Same issue in portmaster https://github.com/freebsd/portmaster/issues/44


[cudamapper] arbitrarily-sized index suport

Performs index generation in a chunked manner.
This causes some CPU-side performance regressions which need to be addressed.

rerun tests

closes #98


Typo

There is a typo on this page in the second paragraph:
"As you get more familiar and comfortable with using SQL Date Warehouse".
This should be "SQL Data Warehouse".

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0b3d99f8-96b8-b31a-d6d3-868fa4614242
Version Independent ID: 965ea5f3-ae07-3701-b49b-828170670631
Content: Best practices for Azure SQL Data Warehouse
Content Source: articles/sql-data-warehouse/sql-data-warehouse-best-practices.md
Service: sql-data-warehouse
Sub-service: design
GitHub Login: @mlee3gsd
Microsoft Alias: martinle

Thanks for the feedback and bringing this to our notice . At this time we are reviewing the feedback and will update the document as appropriate .

@curtisbuhler Thanks much for pointing this out. Pull Request for the fix has been created and it will be merged soon.

@curtisbuhler The PR merge is now completed and document has been updated. Thanks again for the feedback and bringing this to our notice, I am closing the issue based on this update, please let us know if there is something else that we can help you with.


[#6018] Move Dotnet generators from Samples to "generators" - dotnet-templates - Empty Bot

Addresses # 6018
Description
This PR adds the dotnet-templates' Empty bot from the BotBuider-Samples repository.
Detailed Changes

Added generators/dotnet-templates/Microsoft.BotFramework.CSharp.EmptyBot.
Fixed some StyeCop issues in the code.

Testing
These images show the dotnet-template working.

Promoted to MS in PR# 6050


Fixed tabbed streamfield error reporting

This fixes an issue where streamfields nested in tabs might raise validation errors that are not indicated in the tab error counts. In the case of a heavily tabbed, large admin page, this leads to a lot of user (and dev) confusion.
Re: #4122

For anyone else that hits the same problem, we're using the following workaround.
# wagtail_hooks.py

from wagtail.core import hooks

@hooks.register('insert_global_admin_js')
def global_admin_js():
    return format_html('<script src="{}"></script>', static('project/admin-tweaks.js'))

// static/project/admin-tweaks.js

$(function initErrorDetection() {
    var errorSections = {};

    // first count up all the errors
    $('.error-message, .help-critical').each(function() {
        var parentSection = $(this).closest('section');

        if (!errorSections[parentSection.attr('id')]) {
            errorSections[parentSection.attr('id')] = 0;
        }

        errorSections[parentSection.attr('id')] = errorSections[parentSection.attr('id')] + 1;
    });

    // now identify them on each tab
    for (var index in errorSections) {
        $('.tab-nav a[href="#' + index + '"]').addClass('errors').attr('data-count', errorSections[index]);
    }
});

@markfinger  - thanks for this submission, I have tried this out locally and I cannot actually reproduce the scenario that this fixes.
I followed the steps to reproduce on #4122 - I still only get one global error at the top of the page and no additional error counts on the tabs or errors shown above the fields.
Could you advise as to the specific scenario that this PR fixes (or let me know what I may have missed).
It appears that the .help-critical class name only gets added by draftail, document chooser and image chooser so maybe this works for errors in those fields only?

Sorry, enough time's passed that I can't remember any further context about this.

@markfinger - no problems


Cannot detect class names in React / JSX with {...} syntax

First off, let me just say you guys rule! I was struggling with Purifycss for a while. Seems like its not getting the TLC it deserves. But then I found you guys. Purgecss to the rescue! The bundles it spits out are so tiny and it works with classes that end with numbers too! Bravo. But I digress...
TL;DR
Purgecss strips used class names in React w/JSX using template literals. Here's a repo that reproduces the issue.
The Details

Thing
Version

Node
9.2.0

purgecss-webpack-plugin
0.15.0

webpack
3.10.0

The issue is Purgecss will not detect some class names being used. It then strips those styles out of the produced bundle.
Example
const Test = () => {
  const bg = 'bg-blue';

  /*
    The 'purple' class is clearly used here but Purgecss will strip it out.
    The issue seems to be the combination of {` characters.
    If you put a space before 'purple', Purgecss will detect it and leave it in.
  */
  return (
    <h1 className={`purple ${bg}`}>Hello world!

  );
}

Thank you for the feedback :blush:
I will investigate this issue

I started using purgecss for the same reason :)
It looks like the default extractor sees "`purple" as one word (with the template quote). This is very unexpected, apparently the regex expression [A-z] includes "`" you could fix this my making your own extractor like this:
{
  extractor: class {
    static extract(content) {
      return content.match(/[A-Za-z0-9_-]+/g) || []
    }
  },
  extensions: ['html', 'js'] // file extensions
}

@jsnanigans Thank you very much for this. I see in the docs they show something just like your suggestion. Pardon my ignorance, but what syntax is this? I've not seen anonymous classes before. In any case, I too am shocked that [A-z] includes the backtick character. I just had to tweak your solution to read extensions: ['js'] and thing are working as expected for me. Thank you again!

I just created FullHuman/purgecss#37 for that.
A-z is the ascii range from 65 to 122, which also includes these special characters:  [ \ ] ^ _ `

   {
          extractor: class {
            static extract(content) {
              return content.match(/[A-Za-z0-9-_:\/]+/g) || [];
            }
          },
          extensions: ['js', 'jsx'], // file extensions
    },

You need capture Class Names with Responsible Utility Classes with : like md:* sm:* focus:*

How about code like this?
const Test = () => {
  const block = 'some-block';

  return (
    <h1 className={`${block}__item ${block}_bg-blue purple`}>Hello world!

  );
}

.purple {
  color: purple;
}

.some-block__item {
  padding: 15px;
}

.some-block_bg-blue {
  background: blue;
}

PurgeCSS strips some-block__item and some-block_bg-blue
How to avoid it? Thank you.


Cannot install lean 4 stable on Pop_OS 22.04

$ elan install leanprover/lean4:stable
info: syncing channel updates for 'stable'
info: latest update on stable, lean version v4.0.0-m5
info: downloading component 'lean'
error: binary package was not provided for 'linux'

since this elan was installed as a debian package, it cannot self update:
$ elan self update
error: self-update is disabled for this build of elan
error: you should probably use your system package manager to update elan

You need the newest version


Add server extensions documentation

Closes #588
Add documentation for extension authors. I tried to include our motivations and goals, guidelines to avoid common pitfalls and instructions on how to build an extension.
One thing that's missing is instructions for test helpers, mainly because we didn't build those yet. Is there anything else missing that would be helpful?

This is good but it's hard to review for ease of understanding since we are already heavily involved in Ruby LSP's development. It would be helpful to get some 'outsider' feedback.

Should we point people to the Ruby DX Slack for help? Maybe start a #lsp-extensions channel?

@andyw8 great idea. I created a channel for ruby-lsp-extensions and cited it on the docs.


Add dirmngr as prereq [Closes #1227]

OPS Build status updates of commit 93e3e25:
:clock10: Preparing: average preparing time is 58 sec(s)

OPS Build status updates of commit 93e3e25:
:clock10: Incremental building: average incremental building time is 12 min(s) 21 sec(s)

OPS Build status updates of commit 93e3e25:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/install-azure-cli-apt.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


CMake can't link to libmpg123 when building with sdl2-mixer

I have 2 projects which are based on sdl2 which use sdl2-mixer and produce automatic builds for Windows. Since this issue #21776 this hasn't worked. A fix has been applied which makes sdl2-mixer build again with libmpg123 support, but my builds, which were working before, are still not working. I changed nothing.
Here is a link to the build: https://github.com/JoseTomasTocino/freegemas/runs/4520681620?check_suite_focus=true
I'm building on windows-latest in github actions. I'm getting the following error:
main.cpp
Generating Code...
LINK : fatal error LNK1104: cannot open file 'MPG123::libmpg123.lib' [D:\a\freegemas\freegemas\freegemas.vcxproj]
Error: Process completed with exit code 1.

This is my workflow:
  Windows:
    runs-on: windows-latest

    steps:
      - name: Install dependencies
        run: |
          vcpkg install --triplet x64-windows sdl2 sdl2-image[libjpeg-turbo] sdl2-ttf sdl2-mixer[libvorbis,mpg123] jsoncpp
      - name: Checkout
        uses: actions/checkout@v2
      - name: Build
        run: |
          cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -D-DVCPKG_TARGET_TRIPLET=x64-windows -A x64 .
          cmake --build . --config Release

The relevant part of my CMakeLists.txt can be found here: https://github.com/JoseTomasTocino/freegemas/blob/ea416c4594b3e0a97e594e4968d000f70ff198c6/CMakeLists.txt#L121-L152
There is probably an error in one of the cmake files shipped with sdl2-mixer, but I did not extensively troubleshoot this.

I can reproduce this on Windows 10 as well when I use the same code and and commands on a clean vcpkg.

@sharkwouter Could you test PR #22049 is useful for you? Thanks.

Done, it does fix this issue

Error when install sdl2-mixer:
vcpkg install sdl2-mixer[mpg123]:x64-mingw-dynamic`
Log says:
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/SDL2_mixer.dir/music_mpg123.c.obj:music_mpg123.c:(.rdata$.refptr.mpg123_seek[.refptr.mpg123_seek]+0x0): undefined reference to mpg123_seek' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/SDL2_mixer.dir/music_mpg123.c.obj:music_mpg123.c:(.rdata$.refptr.mpg123_replace_reader_handle[.refptr.mpg123_replace_reader_handle]+0x0): undefined reference to mpg123_replace_reader_handle'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/SDL2_mixer.dir/music_mpg123.c.obj:music_mpg123.c:

@mice2100 Please open a new issue to report that.


Proposal : Adding support for Qemu/KVM containers

Adding support for Qemu/KVM containers
What?
This proposal is about adding support  for docker container execution on Linux using KVM hypervisor.
Why?
The conventional way of running docker containers on Linux leveraging namespaces and cgroups (runc) works great and we absolutely love it! But there are situations where we would like to have a stronger isolation between the container and the host kernel.
Here is how!
The basic idea here is to isolate the running container from the host kernel by running it inside a virtual machine. Traditional hypervisors are good at having a separation between the guest kernel and host kernel. So in a nutshell, we propose to use the KVM hypervisor to run docker containers! (But, what about performance??? see the section 'who is it for?')
There are alternate approaches like those from Hyper, Clear Containers. However one of our motives was to make this happen transparently without requiring users to alter their docker 'experience'.
Our proposal is to add a qemu option to the existing --isolation flag allowing the container to be run as a KVM VM rather than a default namespace based container. Further there is 1:1 mapping between a container and a VM. This is similar to Hyper-V containers approach (https://github.com/docker/docker/pull/16412). Our approach allows the user to execute containers with default as well as QEMU isolation simultaneously without changing the docker runtime.
Anyway, this is a sample invocation with the isolation=qemu option.
docker run --isolation=qemu busybox /bin/ls
The output of above command looks similar to the default docker container execution on Linux. i.e. without --isolation=qemu
docker run busybox /bin/ls
Which is,
$docker run busybox /bin/ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var
$
$docker run --isolation=qemu  busybox /bin/ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var
$

Except for the fact that with --isolation=qemu the container actually ran inside a virtual machine.
Also, docker ps shows container running while in the background the task is getting executed inside a virtual machine.
But exactly how?
Our main objective here is to execute the container inside a virtual machine on linux. Following steps will help you understand how we go about it,

When the user says, docker run busybox /bin/ls docker essentially gets the busybox image and runs /bin/ls within the confinements of container started from that busybox image. When we move this logic to a virtual machine we have to do the following:

Boot a the virtual machine image.
configure the VM networking by using networking info provided by docker engine (e.g. IP, Mac address etc)
Mount a file system consisting of the busybox image.
chroot to that filesystem
execute the command /bin/ls
Redirect the stdout/stderr to docker cli so that user gets a consistent experience with or without qemu isolation driver.

So we need to have a virtual machine that can configure itself and execute the command intended for a container (in this case, /bin/ls). Here is how we went about it,

cloud-init (https://cloudinit.readthedocs.io/en/latest/) - VMs installed with cloud-init software mount a config-drive during their bootup and parse a yaml file to configure the VM(e.g. networking). One can also embed commands in cloud-init yaml file to be executed by VM after bootup.
We start with creating the config-drive on the fly whenever user executes the ‘run’ command with the flag, --isolation=qemu.
A Yaml file is injected into this ISO image with the information from docker daemon about it's networking and command that needs to be executed.
We also mount the docker image (e.g. busybox) into this image as a passthrough disk from the host filesystem. Once the VM completes the boot we do the chroot to this drive and execute the command (both using cloud-init)
VM stdout/stdin is redirected to the docker cli.
If user does docker stop, in the background this will be mapped to stopping a corresponding virtual machine, or if the user decides to do docker rm on that container we will map it to undefining the virtual machine apart from the standard flow. Same approach can be extended to other docker commands as well (like, docker logs)

Here is the sample implementation for anyone to try it out.
Who is it for?
Places where applications don't wish to share kernel with hosts can take advantage of such approach. This gives them the flexibility of running any docker image with the isolation of a virtual machine on linux without compromising the docker workflow they are used to and love.
The obvious drawback of this approach is the speed. We are trying to boot a VM and then execute the command. This will have overheads when compared to the default approach of using namespaces.

Can't we already do this with docker run --runtime?

Have you looked at the other implementations, eg the Intel Clear Containers, runv, the unikernels work? The general approach that people have been looking at usually involves a replacement for runc that launches VMs, or a container that wraps the process. The --isolation flag is not something that there was a plan to expand I don't think, as there are more general mechanisms since then with pluggable runtimes via OCI compliant runners.

Like Justin mentioned, https://github.com/hyperhq/runv is prior art here.  https://github.com/hyperhq/runv#run-it-with-docker seems to pretty much do what you're describing already, no?

@justincormack @nathanleclaire thanks for your replies.
We are aware of the OCI compliant runtime runv. But we really liked the way hyperv uses the --isolation and it would have helped a great deal to the specific use case we have if we take the similar approach for qemu. But before I get into details of that use case, can you/anyone confirm that --isolation is really not up for the expansion?

All of the actual Docker runtime is going to be via the OCI compliant mechanisms, and will be managed by containerd. There may be some generic ways to pass parameters to those runtimes, but it is really hard to see how --isolation fits into this.

What this issue is talking about is definitely what Intel CC and runV already solved, and both of them can work well with Docker (thanks to containerd project!).  What's more, CC and runV all perform much better than full blown VM as you suggest :)
Anyhow, --runtime is a much better option.

Thanks everyone for your feedback. We will evaluate the option of having our own runtime for the use case we have. I will post my findings here.

I am closing this issue because based on the feedback and our investigation we are not going to follow on --isolation path


Dependency management migration from vendor to go modules

Pull Request Test Coverage Report for Build 60

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

Totals

Change from base Build 58:
0.0%

Covered Lines:
189

Relevant Lines:
219

💛  - Coveralls


Pin ember-cli-babel to major version

What
Allow ember-cli-babel dependency to resolve to any 6.x.x version.
Why?
Locking ember-cli-babel explicitly at version 6.12.0 was creating issues with ember-cli test helpers.
Steps to reproduce the bug
$ ember new form-for-test
$ ember g test-component
$ ember serve

Navigate to localhost:4200/test & observe all tests passing.
Terminate the process.
$ ember install ember-form-for
$ ember serve

Navigate to localhost:4200/test & observe tests failing because of a compatibility problem with ember test helpers:
Integration | Component | test-component: it renders (4, 0, 4)Rerun173 ms
Promise rejected before "it renders": Cannot read property 'lookup' of undefined@ 37 ms
Source:
TypeError: Cannot read property 'lookup' of undefined
    at Object.initialize (http://localhost:4200/assets/form-for-test.js:1044:32)
    at _runInitializer (http://localhost:4200/assets/vendor.js:40833:21)
    at Vertices.each (http://localhost:4200/assets/vendor.js:54050:17)
    at Vertices.walk (http://localhost:4200/assets/vendor.js:53979:18)
    at DAG.each (http://localhost:4200/assets/vendor.js:53924:28)
    at DAG.topsort (http://localhost:4200/assets/vendor.js:53930:18)
    at Class._runInitializer (http://localhost:4200/assets/vendor.js:40861:13)
    at Class.runInitializers (http://localhost:4200/assets/vendor.js:40830:12)
    at Class._bootSync (http://localhost:4200/assets/vendor.js:39467:14)
    at Class.boot (http://localhost:4200/assets/vendor.js:39434:14)

To confirm this change fixes the issue
update package.json to read:

"ember-form-for": "https://github.com/sanctuarycomputer/ember-form-for.git"

Restart the application with ember serve again & observe all tests passing once more.
I'm sure there was probably a good reason for locking ember-cli-babel originally, but everything seems to be working with this dependency unlocked as expected!

$ ember new xz
$ ember g component foo-bar
$ ember g component-test foo-bar
$ ember server
CTRL-C
$ ember install ember-form-for
$ ember server

I expect that ember server should be ember test --server to really run tests. But both options work for me without any issues.


Begin migration from classic to universal Google Analytics

This PR puts a facade in front of the Google Analytics classic and universal APIs (GOVUK.analytics), so that we can track events, pageviews and dimensions identically in both (eg GOVUK.analytics.trackEvent, GOVUK.analytics.trackPageview, GOVUK.analytics.setDimension).

It manages the loading of analytics libraries and configuration of the tracker profiles from a file, rather than a template, avoiding repetition of this code on every page and allowing it to be minified and cached.
These files are bundled with our other JS and continues to be loaded at the foot of the page (a separate test will be conducted to assess the differences between tracking code placement at the top and bottom)
Slimmer is inserting custom variables into a script tag, while this isn't ideal a choice has been made to leave this as-is for now and tackle separately. To account for Slimmer using only the classic API a shim has been put in place.
All custom events, custom variables and pageviews within static are now tracked in both universal and classic
Any use of the analytics API within apps that hasn't been updated to use GOVUK.analytics should be unaffected, they just won't be tracking to Universal yet. There are stories to update them.
The GOVUK.sendToAnalytics method has been removed

An analysis of the state of analytics across GOV.UK is available as a Google Doc:
https://docs.google.com/a/digital.cabinet-office.gov.uk/document/d/1Tga2eA0uP2hiVuLQW6nyWOuOLmhdekGE6fs_DPec0BM/edit?usp=sharing

Is it worth changing the interface of GOVUK.analytics.trackEvent so that it takes an object rather than arguments?
So instead of:
GOVUK.analytics.trackEvent('browser-check', 'prompt-shown', '', 1, true);

Something like:
GOVUK.analytics.trackEvent('browser-check', {
  action: 'prompt-shown',
  label 'thing',
  value: 1,
  noop: true
});

And then have the label, value and noop to be optional. That way I can work out what the arguments mean without having to look them up.

@edds, yes, it is worth it. Updated in https://github.com/alphagov/static/commit/df477da852d5b69645e623c733486ce6166469b1
The first two parameters are required, category and action. Optional arguments are now passed in through an options object:
GOVUK.analytics.trackEvent('category', 'action', {
  label: 'label',
  value: 1,
  nonInteraction: true
});

Thank you for that @fofr. My only other concern is the interface to the Tracking object and the requirement to have both a universal and classic tracking codes in the initialisation. In theory if we start using this code for other projects that could be an issue. Though its probably beyond the scope of this and as all our instantiation is happening in this project I am happy for this to be merged as is.
Unless @dsingleton, @alicebartlett, @bradleywright et al. have any large concerns I am happy for this to get merged so we can start iterating.

I've commented on one thing, which @edds already referenced. Otherwise :+1:

We'll need to update spotlight with a similar change. I spoke to @fofr in the frontend meeting today about it.

I've updated the Tracker constructor to take an object with named parameters in ff058c2

Great work!

Very happy with the approach here. Great work @fofr


feat(labware-library): add alert to stacking offsets section

closes AUTH-511
Overview
This PR adds an alert banner to the stacking offsets section if one of the checkboxes is selected to let users know that App version 7.0.0 or higher is required.

Test Plan
Go to Labware creator and create a well plate. select 8 rows evenly spaced and 12 columns evenly spaced. Change the well shape to V-bottom. Then you should be able to see the stacking offset section. If you click any checkbox, the alert banner should appear saying app version 7.0.0 or higher is required.
Changelog

add alert to StackingOffsets
add test coverage

Review requests
see test plan
Risk assessment
low

completely unrelated to this PR 🤣
If we could have more space between input field and text for tc gen2, it might be good.

completely unrelated to this PR 🤣
If we could have more space between input field and text for tc gen2, it might be good.

@koji haha good call, it used to have too much padding but i made it too small. I'll do a quick design audit for labware creator and make sure to fix this then


Support for alternative encodings, :not selector, JSoup element extraction

Hello Kevin!
I really like your library and decided to use it in one of my projects. I much prefer it to the other kotlin wrappers of JSoup I found.
Anyway, I made some improvements to my fork of your lib, and thought you might want to pull those changes into your repo if you like.
Briefly, what I did is:

added support for character encodings other than UTF-8 (client can provide it as a parameter), though UTF-8 remains a default
added support for naked html and innerHtml attribute extraction
added support for naked JSoup Element(s) extraction
added support for :not css selector
fixed some nullable references
did a bunch of small refactorings

Thanks for creating this cool library!

LGTM

Could you deploy the version containing this PR into Maven Central, please? I'd like to ideally use that version in my projects.

Done

Great! Thanks a lot.