tf.raw_ops.AssignSubVariableOp crash with abortion

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
2.13.0-dev20230208
Custom Code
Yes
OS Platform and Distribution
No response
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
tf.raw_ops.AssignSubVariableOp crash with abortion

Standalone code to reproduce the issue
import tensorflow as tf
from tensorflow.python.eager import context

input1 = tf.raw_ops.VarHandleOp(dtype=tf.int32, shape=[2, 3], shared_name=context.anonymous_name())
input2 = tf.constant([],dtype=tf.float32)

tf.raw_ops.AssignSubVariableOp(resource=input1, value=input2)

Relevant log output
2023-03-26 21:58:20.336369: F tensorflow/core/framework/tensor.cc:770] Check failed: dtype() == expected_dtype (3 vs. 1) float expected, got int32
Aborted (core dumped)

Related: #60121 https://github.com/tensorflow/tensorflow/issues/60121

@trickiwoo Could you please refer to this comment?
Thank you!


Is it normal to have the pub-cache inside project in a folder named "C:/src/flutter/.pub-cache/bin/hosted/pub.dartlang.org"

Flutter Doctor
[✓] Flutter (Channel stable, 3.3.1, on macOS 12.5.1 21G83 darwin-x64, locale en-FR)
 • Flutter version 3.3.1 on channel stable at /Users/bob/development/flutter
 • Upstream repository https://github.com/flutter/flutter.git
 • Framework revision 4f9d92fbbd (2 days ago), 2022-09-06 17:54:53 -0700
 • Engine revision 3efdf03e73
 • Dart version 2.18.0
 • DevTools version 2.15.0
                                                                                [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
 • Android SDK at /Users/bob/Library/Android/sdk
 • Platform android-32, build-tools 30.0.3
 • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
 • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
 • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
 • Xcode at /Applications/Xcode.app/Contents/Developer
 • Build 13F100
 • CocoaPods version 1.11.2

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

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

[✓] Android Studio (version 2020.3)
 • Android Studio at /Users/bob/iCloud Drive (Archive)/Documents/Existing files/Macintosh HD - Data/Applications/Android Studio.app/Contents
 • Flutter plugin can be installed from:
   🔨 https://plugins.jetbrains.com/plugin/9212-flutter
 • Dart plugin can be installed from:
   🔨 https://plugins.jetbrains.com/plugin/6351-dart
 • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.70.0)
 • VS Code at /Applications/Visual Studio Code.app/Contents
 • Flutter extension can be installed from:
   🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
 • macOS (desktop) • macos  • darwin-x64     • macOS 12.5.1 21G83 darwin-x64
 • Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.102

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

• No issues found!

Hi there,
I created a new flutter project with the last flutter version.
I was surprised to see this folder C:/src/flutter/.pub-cache/bin/hosted/pub.dartlang.org containing the pub-cache !!
I checked online if something was new about the pub-cache, and nothing !!
So my question why I have this folder in my new project ?
It feels strange especially when it's not mentioned in .gitignore file, which should be !!
See screenshot below:

Hello @mayouf. I couldn't reproduce this issue. Could you provide some reproducible steps?

Hi @exaby73 ,
I just basically created a new flutter project.
In case I missed something, here is below what I did and what I see on my IDE:

I cannot reproduce this issue. Can you reproduce it by running flutter create in a terminal?

Hi @exaby73 ,
I just did it with flutter create test_flutter :

And here is the new project directory :

If you cannot reproduce this issue, it confirms that it's not a normal.
I tried to :

reinstalled the Flutter from the official website: https://docs.flutter.dev/get-started/install/macos

I just created a new project using command line flutter create test_flutter

But none of it works !
I really wonder what is going on

Could you paste the entire output of flutter doctor -v. Could you also confirm the path you have Flutter installed?

**flutter doctor -v**
[✓] Flutter (Channel stable, 3.3.1, on macOS 12.5.1 21G83 darwin-x64, locale
    en-FR)
    • Flutter version 3.3.1 on channel stable at
      /Users/bob/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4f9d92fbbd (5 days ago), 2022-09-06 17:54:53 -0700
    • Engine revision 3efdf03e73
    • Dart version 2.18.0
    • DevTools version 2.15.0

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

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13F100
    • CocoaPods version 1.11.2

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

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

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/bob/iCloud Drive (Archive)/Documents/Existing
      files/Macintosh HD - Data/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.70.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 12.5.1 21G83 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 105.0.5195.102

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

My flutter is installed on: /Users/bob/development/flutter/

I cannot reproduce this issue. But I'll label it for further insights from the team.

@christopherfujino my first instinct was to look at the joining of the pub caches change but this is not available on 3.3.1 so right now I am looking at the create command. Also kind of odd that one folder is C and the other C: and both on mac

Did you have multiple systems installed on your disk? In this case, are macOS and Windows both installed on your device? If yes, are they sharing part of your disks? And can you check your environment with PUB_CACHE?

I just realized C:\src\flutter is an example destination suggested in the Windows install page. In this case, please remove the Flutter installation (including the Flutter root folder and .pub-cache) and remove the related configuration from your environments (PATH) (URL env can be excluded), then check whether the issue persists.
If the issue persists after a fresh start, consider submitting a new issue with the latest environment info.

Hi,
Bugs vanished
thank you for your answer.
It's been a while, I did not work on my flutter project, but I did and for some reason, the bug left !!
I upgraded my flutter version to this version:
Flutter 3.10.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f468f3366c (3 weeks ago) • 2023-07-12 15:19:05 -0700
Engine • revision cdbeda788a
Tools • Dart 3.0.6 • DevTools 2.23.1

I created a new Flutter project and the C/was not there 🥴...
Regarding the Windows installation, I did have Parallel (https://www.parallels.com/) installed on my macbook...
I thought about this issue from the start, so I uninstalled Parallel, but the issue was still here.
Now, my flutter project not running anymore !
Another strange behavior I notice:
I ran an old flutter project with the C/folder inside the project,
And I ran again without the C/ folder.
I figured out my flutter project does not run anymore as it used to use the C/ folder...
Result:
Launching lib/main.dart on sdk gphone64 x86 64 in debug mode...
Running Gradle task 'assembleDebug'...
lib/main.dart:3:8: Error: Error when reading 'C:/src/flutter/.pub-cache/bin/hosted/pub.dev/firebase_analytics-9.1.2/lib/firebase_analytics.dart': No such file or directory
import 'package:firebase_analytics/firebase_analytics.dart';
       ^
lib/main.dart:4:8: Error: Error when reading 'C:/src/flutter/.pub-cache/bin/hosted/pub.dev/firebase_crashlytics-2.5.3/lib/firebase_crashlytics.dart': No such file or directory
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
       ^
lib/main.dart:5:8: Error: Error when reading 'C:/src/flutter/.pub-cache/bin/hosted/pub.dev/firebase_core-1.13.1/lib/firebase_core.dart': No such file or directory
import 'package:firebase_core/firebase_core.dart';
       ^
lib/main.dart:8:8: Error: Error when reading 'C:/src/flutter/.pub-cache/bin/hosted/pub.dev/flutter_bloc-7.3.3/lib/flutter_bloc.dart': No such file or directory
import 'package:flutter_bloc/flutter_bloc.dart';
       ^
lib/nav_screen.dart:10:8: Error: Error when reading 'C:/src/flutter/.pub-cache/bin/hosted/pub.dev/flutter_bloc-7.3.3/lib/flutter_bloc.dart': No such file or directory
import 'package:flutter_bloc/flutter_bloc.dart';
...

QUESTION
So now I wonder why my project is using a virtually non-existent  folder called  'C:/src/flutter/.pub-cache/bin ??**
So I checked my Android Studio Settings below:

So, now i'm gonna figure it out, but I wanted to follow up on your answer.
in the meanwhile, here is my flutter doctor:

flutter doctor --verbose
[✓] Flutter (Channel stable, 3.10.6, on macOS 13.4.1 22F82 darwin-x64, locale en-FR)
• Flutter version 3.10.6 on channel stable at /Users/bob/development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision f468f3366c (3 weeks ago), 2023-07-12 15:19:05 -0700
• Engine revision cdbeda788a
• Dart version 3.0.6
• DevTools version 2.23.1
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/bob/Library/Android/sdk
• Platform android-33, build-tools 30.0.3
• Java binary at: /Users/bob/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/223.8836.35.2231.10406996/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14E300c
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
[✓] Android Studio (version 2020.3)
• Android Studio at /Users/bob/iCloud Drive (Archive)/Documents/Existing files/Macintosh HD - Data/Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
[✓] Android Studio (version 2022.3)
• Android Studio at /Users/bob/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/223.8836.35.2231.10406996/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 17.0.6+0-17.0.6b829.9-10027231)
[✓] VS Code (version 1.77.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 13 (API 33) (emulator)
• macOS (desktop)              • macos         • darwin-x64     • macOS 13.4.1 22F82 darwin-x64
• Chrome (web)                 • chrome        • web-javascript • Google Chrome 114.0.5735.198
[✓] Network resources
• All expected network resources are available.
• No issues found!


Document how rocketshare stream is setup and where

Using wnyu's aws to pay for the domain name https://www.wnyu-ice-cast-relay.com/wnyu.mp3 and then rocketshare is running on a digitalocean droplet.

Furthermore, we should drop this Domain name and move the stream to a subdomain of wnyu.org


Error when flashing FW

Whenever i flash the FW onto my Lolin ESP8266 NodeMcu 1.0m the flash goes through but the ESP doesnt connect to the wifi and if i open the serial monitor the ESP just keeps printing "⸮". I have tried the audio-reactive-led-strip-master by scottlawsonbc and it works perfectly. I would really like to get this fork running due to all the extra functionality

Could you provide some code so we can look through this one as well?
As for the serial monitor, try using different baud rates (always restart your ESP when you changed it). Only one baud rate will work properly most of the time, some might have some distortion but one should work completely. If the error keeps occuring then somehtign is of with the code or your board, but let's hope it's just a minor bug.

ws2812_controller  this is what i flashed to my ESP8266
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <WebSocketsServer.h>
#include <Hash.h>
#include <WiFiUdp.h>

#define FASTLED_ESP8266_DMA // better control for ESP8266 will output or RX pin requires fork https://github.com/coryking/FastLED
#include "FastLED.h"

/************ Network Information (CHANGE THESE FOR YOUR SETUP) ************************/
const char* ssid = "Anonymous";
const char* password = "My pass here i know";

const bool static_ip = true;
IPAddress ip(192, 168, 1, 212);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);

const int udp_port = 7777;

/*********************************** FastLED Defintions ********************************/
#define NUM_LEDS      250
#define DATA_PIN      5
//#define CLOCK_PIN   2
#define CHIPSET       WS2812B
#define COLOR_ORDER   GRB

/*********************************** Globals *******************************************/
WiFiUDP port;
CRGB leds[NUM_LEDS];

/********************************** Start Setup ****************************************/
void setup() {
  Serial.begin(115200);

  // Setup FastLED
  #ifdef CLOCK_PIN
    FastLED.addLeds<CHIPSET, DATA_PIN, CLOCK_PIN, COLOR_ORDER>(leds, NUM_LEDS);
  #else
    FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
  #endif

  // Setup the wifi connection
  setup_wifi();

  // Initialize the UDP port
  port.begin(udp_port);
}

void setup_wifi() {

  Serial.println();
  Serial.print("Connecting to ");
  Serial.print(ssid);

  if (static_ip) {
    WiFi.config(ip, gateway, subnet);
  }

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected!");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  int packetSize = port.parsePacket();
  if (packetSize == sizeof(leds)) {
    port.read((char*)leds, sizeof(leds));
    FastLED.show();
  } else if (packetSize) {
    Serial.printf("Invalid packet size: %u (expected %u)\n", packetSize, sizeof(leds));
    port.flush();
    return;
  }
}

This is the config.py file that i edited
"""Default settings and configuration for audio reactive LED strip"""
from __future__ import print_function
from __future__ import division
import os

use_defaults = {"configuration": True,                           # See notes below for detailed explanation
                "GUI_opts": False,
                "devices": True,
                "colors": True,
                "gradients": True}

settings = {                                                      # All settings are stored in this dict

    "configuration":{  # Program configuration
                     'USE_GUI': True,                             # Whether to display the GUI
                     'DISPLAY_FPS': False,                        # Whether to print the FPS when running (can reduce performance)
                     'MIC_RATE': 48000,                           # Sampling frequency of the microphone in Hz
                     'MIC_NAME': '',                              # Set input name or keep empty to use default input
                     'FPS': 60,                                   # Desired refresh rate of the visualization (frames per second)
                     'MAX_BRIGHTNESS': 250,                       # Max brightness sent to LED strip
                     'N_ROLLING_HISTORY': 4,                      # Number of past audio frames to include in the rolling window
                     'MIN_VOLUME_THRESHOLD': 0.001                # No music visualization displayed if recorded audio volume below threshold
                    #'LOGARITHMIC_SCALING': True,                 # Scale frequencies logarithmically to match perceived pitch of human ear
                     },

    "GUI_opts":{"Graphs":True,                                    # Which parts of the gui to show
                "Reactive Effect Buttons":True,
                "Non Reactive Effect Buttons":True,
                "Frequency Range":True,
                "Effect Options":True},

    # All devices and their respective settings. Indexed by name, call each one what you want.
    "devices":{"Desk Strip":{
                      "configuration":{"TYPE": "ESP8266",                           # Device type (see below for all supported boards)
                                        # Required configuration for device. See below for all required keys per device
                                       "AUTO_DETECT": False,                         # Set this true if you're using windows hotspot to connect (see below for more info)
                                       "MAC_ADDR": "YOUR MAC ADDRESS HERE",             # MAC address of the ESP8266. Only used if AUTO_DETECT is True
                                       "UDP_IP": "<IP_ADDRESS>",                   # IP address of the ESP8266. Must match IP in ws2812_controller.ino
                                       "UDP_PORT": 7777,                            # Port number used for socket communication between Python and ESP8266
                                       "MAX_BRIGHTNESS": 250,                       # Max brightness of output (0-255) (my strip sometimes bugs out with high brightness)
                                         # Other configuration
                                       "N_PIXELS": 300,                             # Number of pixels in the LED strip (must match ESP8266 firmware)
                                       "N_FFT_BINS": 24,                            # Number of frequency bins to use when transforming audio to frequency domain
                                       "MIN_FREQUENCY": 20,                         # Frequencies below this value will be removed during audio processing
                                       "MAX_FREQUENCY": 18000,                      # Frequencies above this value will be removed during audio processing
                                       "current_effect": "Scroll"                   # Currently selected effect for this board, used as default when program launches
                                      },

                      # Configurable options for this board's effects go in this dictionary.
                      # Usage: config.settings["devices"][name]["effect_opts"][effect][option]
                      "effect_opts":{"Energy":    {"blur": 1,                       # Amount of blur to apply
                                                   "scale":0.9,                     # Width of effect on strip
                                                   "r_multiplier": 1.0,             # How much red
                                                   "mirror": True,                  # Reflect output down centre of strip
                                                   "g_multiplier": 1.0,             # How much green
                                                   "b_multiplier": 1.0},            # How much blue
                                     "Wave":      {"color_wave": "Red",             # Colour of moving bit
                                                   "color_flash": "White",          # Colour of flashy bit
                                                   "wipe_len":5,                    # Initial length of colour bit after beat
                                                   "decay": 0.7,                    # How quickly the flash fades away
                                                   "wipe_speed":2},                 # Number of pixels added to colour bit every frame
                                     "Spectrum":  {"r_multiplier": 1.0,             # How much red
                                                   "g_multiplier": 1.0,             # How much green
                                                   "b_multiplier": 1.0},            # How much blue
                                     "Wavelength":{"roll_speed": 0,                 # How fast (if at all) to cycle colour overlay across strip
                                                   "color_mode": "Spectral",        # Colour gradient to display
                                                   "mirror": False,                 # Reflect output down centre of strip
                                                   "reverse_grad": False,           # Flip (LR) gradient
                                                   "reverse_roll": False,           # Reverse movement of gradient roll
                                                   "blur": 3.0,                     # Amount of blur to apply
                                                   "flip_lr":False},                # Flip output left-right
                                     "Scroll":    {"lows_color": "Red",             # Colour of low frequencies
                                                   "mids_color": "Green",           # Colour of mid frequencies
                                                   "high_color": "Blue",            # Colour of high frequencies
                                                   "decay": 0.995,                  # How quickly the colour fades away as it moves
                                                   "speed": 4,                      # Speed of scroll
                                                   "mirror": True,                  # Reflect output down centre of strip
                                                   "r_multiplier": 1.0,             # How much red
                                                   "g_multiplier": 1.0,             # How much green
                                                   "b_multiplier": 1.0,             # How much blue
                                                   "blur": 0.2},                    # Amount of blur to apply
                                     "Power":     {"color_mode": "Spectral",        # Colour gradient to display
                                                   "s_count": 20,                   # Initial number of sparks
                                                   "s_color": "White",              # Color of sparks
                                                   "mirror": True,                  # Mirror output down central axis
                                                   "flip_lr":False},                # Flip output left-right
                                     "Single":    {"color": "Purple"},              # Static color to show
                                     "Beat":      {"color": "Red",                  # Colour of beat flash
                                                   "decay": 0.7},                   # How quickly the flash fades away
                                     "Bars":      {"resolution":4,                  # Number of "bars"
                                                   "color_mode":"Spectral",         # Multicolour mode to use
                                                   "roll_speed":0,                  # How fast (if at all) to cycle colour colours across strip
                                                   "mirror": False,                 # Mirror down centre of strip
                                                   "reverse_roll": False,           # Reverse movement of gradient roll
                                                   "flip_lr":False},                # Flip output left-right
                                     "Gradient":  {"color_mode":"Spectral",         # Colour gradient to display
                                                   "roll_speed": 0,                 # How fast (if at all) to cycle colour colours across strip
                                                   "mirror": False,                 # Mirror gradient down central axis
                                                   "reverse": False},               # Reverse movement of gradient
                                     "Fade":      {"color_mode":"Spectral",         # Colour gradient to fade through
                                                   "roll_speed": 1,                 # How fast (if at all) to fade through colours
                                                   "reverse": False},               # Reverse "direction" of fade (r->g->b or r<-g<-b)
                                     "Calibration":{"r": 100,
                                                    "g": 100,
                                                    "b": 100}
                                     }
                                  }
              },

    # Collection of different colours in RGB format
    "colors":{"Red":(255,0,0),
              "Orange":(255,40,0),
              "Yellow":(255,255,0),
              "Green":(0,255,0),
              "Blue":(0,0,255),
              "Light blue":(1,247,161),
              "Purple":(80,5,252),
              "Pink":(255,0,178),
              "White":(255,255,255)},

    # Multicolour gradients. Colours must be in list above
    "gradients":{"Spectral"  : ["Red", "Orange", "Yellow", "Green", "Light blue", "Blue", "Purple", "Pink"],
                 "Dancefloor": ["Red", "Pink", "Purple", "Blue"],
                 "Sunset"    : ["Red", "Orange", "Yellow"],
                 "Ocean"     : ["Green", "Light blue", "Blue"],
                 "Jungle"    : ["Green", "Red", "Orange"],
                 "Sunny"     : ["Yellow", "Light blue", "Orange", "Blue"],
                 "Fruity"    : ["Orange", "Blue"],
                 "Peach"     : ["Orange", "Pink"],
                 "Rust"      : ["Orange", "Red"]
                 }

}

device_req_config = {"Stripless"   : None, # duh
                     "BlinkStick"  : None,
                     "DotStar"     : None,
                     "ESP8266"     : {"AUTO_DETECT": ["Auto Detect",
                                                      "Automatically detect device on network using MAC address",
                                                      "checkbox",
                                                      True],
                                      "MAC_ADDR"   : ["Mac Address",
                                                      "Hardware address of device, used for auto-detection",
                                                      "textbox",
                                                      "aa-bb-cc-dd-ee-ff"],
                                      "UDP_IP"     : ["IP Address",
                                                      "IP address of device, used if auto-detection isn't active",
                                                      "textbox",
                                                      "xxx.xxx.xxx.xxx"],
                                      "UDP_PORT"   : ["Port",
                                                      "Port used to communicate with device",
                                                      "textbox",
                                                      "7778"]},
                     "RaspberryPi" : {"LED_PIN"    : ["LED Pin",
                                                      "GPIO pin connected to the LED strip RaspberryPi (must support PWM)",
                                                      "textbox",
                                                      "10"],
                                      "LED_FREQ_HZ": ["LED Frequency",
                                                      "LED signal frequency in Hz",
                                                      "textbox",
                                                      "800000"],
                                      "LED_DMA"    : ["DMA Channel",
                                                      "DMA channel used for generating PWM signal",
                                                      "textbox",
                                                      "5"],
                                      "LED_INVERT" : ["Invert LEDs",
                                                      "Set True if using an inverting logic level converter",
                                                      "checkbox",
                                                      True]},
                     "Fadecandy"   : {"SERVER"     : ["Server Address",
                                                      "Address of Fadecandy server",
                                                      "textbox",
                                                      "localhost:7890"]}
                     }

"""
    ~~ NOTES ~~

[use_defaults]

For any dicts in this file (config.py), you can add them into the use_defaults
dict to force the program to use these values over any stored in settings.ini
that you would have set using the GUI. At runtime, settings.ini is used to update
the above dicts with custom set values.

If you're running a headless RPi, you may want to edit settings in this file, then
specify to use the dict you wrote, rather than have the program overwrite from
settings.ini at runtime. You could also run the program with the gui, set the
settings that you want, then disable the gui and the custom settings will still
be loaded. Basically it works as you would expect it to.

[DEVICE TYPE]

Device used to control LED strip.

'ESP8266' means that you are using an ESP8266 module to control the LED strip
and commands will be sent to the ESP8266 over WiFi. You can have as many of
these as your computer is able to handle.

'RaspberryPi' means that you are using a Raspberry Pi as a standalone unit to process
audio input and control the LED strip directly.

'BlinkStick' means that a BlinkstickPro is connected to this PC which will be used
to control the leds connected to it.

'Fadecandy' means that a Fadecandy server is running on your computer and is connected
via usb to a Fadecandy board connected to LEDs

'DotStar' creates an APA102-based output device. LMK if you have any success
getting this to work becuase i have no clue if it will.

'Stripless' means that the program will run without sending data to a strip.
Useful for development etc, but doesn't look half as good ;)

[REQUIRED CONFIGURATION KEYS]

===== 'ESP8266'
 "AUTO_DETECT"            # Set this true if you're using windows hotspot to connect (see below for more info)
 "MAC_ADDR"               # MAC address of the ESP8266. Only used if AUTO_DETECT is True
 "UDP_IP"                 # IP address of the ESP8266. Must match IP in ws2812_controller.ino
 "UDP_PORT"               # Port number used for socket communication between Python and ESP8266
===== 'RaspberryPi'
 "LED_PIN"                # GPIO pin connected to the LED strip pixels (must support PWM)
 "LED_FREQ_HZ"            # LED signal frequency in Hz (usually 800kHz)
 "LED_DMA"                # DMA channel used for generating PWM signal (try 5)
 "BRIGHTNESS"             # Brightness of LED strip between 0 and 255
 "LED_INVERT"             # Set True if using an inverting logic level converter
===== 'BlinkStick'
 No required configuration keys
===== 'Fadecandy'
 "SERVER"                 # Address of Fadecandy server. (usually 'localhost:7890')
===== 'DotStar'
 No required configuration keys
===== 'Stripless'
 No required configuration keys (heh)

[AUTO_DETECT]

Set to true if the ip address of the device changes. This is the case if it's connecting
through windows hotspot, for instance. If so, give the mac address of the device. This
allows windows to look for the device's IP using "arp -a" and finding the matching
mac address. I haven't tested this on Linux or macOS.

[FPS]

FPS indicates the desired refresh rate, or frames-per-second, of the audio
visualization. The actual refresh rate may be lower if the computer cannot keep
up with desired FPS value.

Higher framerates improve "responsiveness" and reduce the latency of the
visualization but are more computationally expensive.

Low framerates are less computationally expensive, but the visualization may
appear "sluggish" or out of sync with the audio being played if it is too low.

The FPS should not exceed the maximum refresh rate of the LED strip, which
depends on how long the LED strip is.

[N_FFT_BINS]

Fast Fourier transforms are used to transform time-domain audio data to the
frequency domain. The frequencies present in the audio signal are assigned
to their respective frequency bins. This value indicates the number of
frequency bins to use.

A small number of bins reduces the frequency resolution of the visualization
but improves amplitude resolution. The opposite is true when using a large
number of bins. More bins is not always better!

There is no point using more bins than there are pixels on the LED strip.
"""

for board in settings["devices"]:
    if settings["devices"][board]["configuration"]["TYPE"] == 'ESP8266':
        settings["devices"][board]["configuration"]["SOFTWARE_GAMMA_CORRECTION"] = False
        # Set to False because the firmware handles gamma correction + dither
    elif settings["devices"][board]["configuration"]["TYPE"] == 'RaspberryPi':
        settings["devices"][board]["configuration"]["SOFTWARE_GAMMA_CORRECTION"] = True
        # Set to True because Raspberry Pi doesn't use hardware dithering
    elif settings["devices"][board]["configuration"]["TYPE"] == 'BlinkStick':
        settings["devices"][board]["configuration"]["SOFTWARE_GAMMA_CORRECTION"] = True
    elif settings["devices"][board]["configuration"]["TYPE"] == 'DotStar':
        settings["devices"][board]["configuration"]["SOFTWARE_GAMMA_CORRECTION"] = False
    elif settings["devices"][board]["configuration"]["TYPE"] == 'Fadecandy':
        settings["devices"][board]["configuration"]["SOFTWARE_GAMMA_CORRECTION"] = False
    elif settings["devices"][board]["configuration"]["TYPE"] == 'Stripless':
        settings["devices"][board]["configuration"]["SOFTWARE_GAMMA_CORRECTION"] = False
    else:
        raise ValueError("Invalid device selected. Device {} not known.".format(settings["devices"][board]["configuration"]["TYPE"]))
    settings["devices"][board]["effect_opts"]["Power"]["s_count"] =  settings["devices"][board]["configuration"]["N_PIXELS"]//6
    # Cheeky lil fix in case the user sets an odd number of LEDs
    if settings["devices"][board]["configuration"]["N_PIXELS"] % 2:
        settings["devices"][board]["configuration"]["N_PIXELS"] -= 1

# Ignore these
# settings["configuration"]['_max_led_FPS'] = int(((settings["configuration"]["N_PIXELS"] * 30e-6) + 50e-6)**-1.0)

These where the only 2 files i edited.

I will try the baud rate trick as you explained but i had the same baud rate selected as the code for the controller specifies = 115200

@nullTakuro I don't know if that is the final solution but you should first match the LED count in your firmware and config. Currently you have set the amount of LEDs on the ESP to 250 (is this correct?) and in the config (see N_PIXELS) to 300.

Oh yeah i had missed that. This still doesn't affect the issue I'm having with the ESP as it still does not connect to the wireless network and spits out the backwards "?". I have tried selecting different baud rates both in the code and then monitor and vice versa no luck. I've also tried with the 2 other ESPs that i have and no luck either. They all work with the audio-reactive-led-strip-master by scottlawsonbc, so im puzzled why they don't work here

did you download the esp library for the arduino ide?


dts: arm: Remove label property from devicetrees

Label properties are not required.
Signed-off-by: Kumar Gala<EMAIL_ADDRESS>

Since labels are being removed, let's make sure there's a big warning on the release notes. I imagine there'll be many people that still use device_get_binding.


Create API endpoint for game information

Create an endpoint that returns text information about a game.
Endpoint: /games/{gamename}
{gamename} is the name of the game being looked up. For example 7 days to die would be /games/7%20days%20to%20die
First pass at a response object is
{
  "name" : "7 days to die",
   "description": "The description",
  "images": []
   "videos": []
}

This story is not responsible for actually pulling the data from an API. That will be handled in a later story.


Add PKCE Support

@liggitt PTAL

Hash is a byte array. We need a byte slice. That's how you get that.

@liggitt Any other comments?

nope, LGTM

@RangelReale please merge if you are satisfied.


Computing qubit costs for QROM is very slow

I need the following code to run in 3-4 seconds; not 10+ minutes on a Google colab instance.
%%time
from qualtran.resource_counting import get_cost_value, QubitCount

data = [*range(2**12)]
log_block_sizes = [*range(1, 9)]

qroam_clean = SelectSwapQROM.build_from_data(data, use_dirty_ancilla=False)
qroam_dirty = SelectSwapQROM.build_from_data(data, use_dirty_ancilla=True)

costs_cache = {}
qroam_t_costs_clean, qroam_t_costs_dirty = [], []
qroam_qubit_costs_clean, qroam_qubit_costs_dirty = [], []
for b in log_block_sizes:
  print(f'{b=}')
  qroam_clean_curr = qroam_clean.with_log_block_sizes(log_block_sizes=[b])
  qroam_dirty_curr = qroam_dirty.with_log_block_sizes(log_block_sizes=[b])
  qroam_t_costs_clean.append(qroam_clean_curr.t_complexity().t)
  qroam_t_costs_dirty.append(qroam_dirty_curr.t_complexity().t)
  qroam_qubit_costs_clean.append(get_cost_value(qroam_clean_curr, QubitCount(), costs_cache=costs_cache))
  qroam_qubit_costs_dirty.append(get_cost_value(qroam_dirty_curr, QubitCount(), costs_cache=costs_cache))

qrom_t_cost = QROM.build_from_data(data).t_complexity().t
qrom_qubit_cost = get_cost_value(QROM.build_from_data(data),  QubitCount(), costs_cache=costs_cache)

Hers is the timing from my current run -

I want to generate a plot like this

On current main

By making a series of trivial fixes to the cirq interop (like replacing CNOT().on(a, b) in the cirq-style decomposition with cirq.CNOT(a, b) (the former is not needed), adding cache to total_qubits and `extract_bloq_from_cirq), we get

The cirq interop is still contributing about 50% to the total time, so if we rewrite the bloq natively without any cirq interop, we should be able to get another 2x speedup.
However, it is still going to be fairly slow (a few minutes at least for 2**12 example) for any reasonable system size; and this is not due to recursive implementation of QROM, but rather due to the fact that the size of the composite graph (product of gates x width) becomes large quickly.
Ideally, for common cost metrics like QubitCount, we should try to avoid having to decompose the entire bloq at all (xref https://github.com/quantumlib/Qualtran/issues/957)

Ideally, we'd be able to do one level of decomposition of each bloq with relevant parameters in a small amount of time. So I think it's worthwhile seeing exactly what's the limiting factor of being able to decompose a N=4000 qrom.
One double-win (better pedagogy/abstraction) would be to group the CNOTs into a ctrled-XOR or ctrled-SET operation that can operate directly on a single bitsize=n_target register
Otherwise, I can try profiling a decomposition with roughly 10,000 subbloqs. Last time I did this, there was a huge contribution from tracking whether each soquet has been used exactly once. That's something we can futz around with easily.


ruby course (changes made)

What does this PR do?
Add resource(s)
For resources
Description
Why is this valuable (or not)?
Any resource to learn the Ruby language are valuable, even if it is a few years old.
How do we know it's really free?
It is on Youtube, and not hidden behind one of its paywalls.
For book lists, is it a book? For course lists, is it a course? etc.
Yes, this is a course, a 4 hour long instructional Youtube video on the Ruby language.
Checklist:

[X] Read our contributing guidelines.
[X] Search for duplicates.
[X] Include author(s) and platform where appropriate.
[X] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

I have changed the shortened link. However, although a "playlist" link is preferred, this video is not in a playlist and is a video that is more than an hour and is structured like a course.


Helm importer

Description of changes:
Allows to import helm charts into a registry reading tarball from a
folder in local disk.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/retest


Remove old-style Action and Resource services

Replace all services under these packages (at least those that are still used by Designer and have no current equivalent):

com.centurylink.mdw.service.action
com.centurylink.mdw.service.resource

Also remove compatibility code in ServiceRequestHandler.java.
Related Designer issue:
https://github.com/CenturyLinkCloud/mdw-designer/issues/60

Naveena, I'm going thru all these services and documenting what would need to be changed in Designer to retrieve the same information for server >= 6.1.

DocumentValue:   For this, Designer needs to change path to DocumentValues/{documentId}

ExternalMessageInstance:  Designer would change to call Requests rest service.  If you have an eventInstId, then Designer would call Requests/{eventInstId}.   If eventInstId is null, Designer would call Requests?ownerId=activityInstId&type=outboundRequests.  Designer would then have to build the expected JSONObject to feed into ExternalMessageVO contructor.

AuditLog:  Designer should not be calling this service at all.  Responsibility/decision to auditLog for a particular action should rest with service, not designer.  Designer should remove all calls to AudiLog.

RefreshCache:  Designer should call WorkflowCache service instead of ActionRequestDocument in method RestfulServer.refreshCache().

UnitTests:  Designer should call AutomatedTests service instead of using ActionRequestDocument in method GroovyTestCaseRun.run()

Rest of them....to be continued....

Hi Jack,
The below are being used by designer as direct server calls with authentication.
a) <_mdw_document_content>
b) <_mdw_refresh>
c) <_mdw_property>
d) <_mdw_peer_server_list>
<_mdw_update_variable> used to be called depending on the isUpdateable value (true/false) of the DocumentValue service response. I think DocumentValues service for 6.1 is not returning isUpdateable. Even 55 code is just setting this value to the json object and i dont see the same is being returned. So I think <_mdw_update_variable> can be removed for 6.

Naveena, I have now checked in the code changes that will enforce Authentication is needed (if not in dev mode) for external event handlers, plus the special handler for <_mdw_*> messages.   This would include the ActionRequest messages where Action has Name=RegressionTest attribute.  Up until now, the compatibility stuff was still there and no authentication/authorization took place for these.


Protobuf 3.21.4 can lead to a denial of service attack

Do we need to upgrade protobuf version to 3.21.7?
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-3171

CC: @kgpai @raulcd

cc : @spershin
Thanks for bringing this to our notice @zhejiangxiaomai ,
I will create a PR incrementing protobuf to a safer version.


Add timeout option & optimize the process of install and uninstall

add timeout option to control the timeout of the entire process
fix some defer bugs
split the Knative Serving uninstallation process
split the Shipwright uninstallation process
update docs

Signed-off-by: laminar<EMAIL_ADDRESS>

After this pr merged, can we release an initial version? like v0.1.0?

After this pr merged, can we release an initial version? like v0.1.0?

Maybe after solve the component version problem?


Add account docs

Describe your changes

This PR adds example usages of the Account module to docs.
Linked issues

Breaking changes

[ ] This issue contains breaking changes

Codecov Report
Base: 62.73% // Head: 62.73% // No change to project coverage :thumbsup:

Coverage data is based on head (591b6fe) compared to base (6d5b3ee).
Patch has no changes to coverable lines.

Additional details and impacted files
@@                  Coverage Diff                   @@
##           feat/account-refactor     #120   +/-   ##
======================================================
  Coverage                  62.73%   62.73%
======================================================
  Files                         47       47
  Lines                       1162     1162
  Branches                      68       68
======================================================
  Hits                         729      729
  Misses                       414      414
  Partials                      19       19

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


disable Add button and provide red error message if user try to spiffe…

…_id and assign_public_ip

can you align the red text to the above texts?  also may want to use the same dark red color as other error/exception msg in teletraan UI.

can you align the red text to the above texts? also may want to use the same dark red color as other error/exception msg in teletraan UI.

Thanks for reminding this:
Please review:

can you align the red text to the above texts? also may want to use the same dark red color as other error/exception msg in teletraan UI.

Can I address this part" also may want to use the same dark red color as other error/exception msg in teletraan UI."  in separate PR?


cmd: link c++ explicitly

What is changed and how it works?
Issue Number: Close #12144
What's Changed:
In the past, we rely on librocksdb-sys to include the required stdc++
library. This is not reliable after upgrading grpcio, which also needs
the same library. I suspect it doesn't include all the required symbols.

Anyway, this PR chooses to link to stdc++ explicitly in binary.

Check List
Tests

Manual test (add detailed scripts or steps below)

Release note
None

/merge


Crashed: com.google.firebase.crashlytics.ios.exception SIGABRT ABORT 0x00000001d715d334

Please provide all the information requested. Issues that do not follow this format are likely to stall.
Description
I have got a Crashed: com.google.firebase.crashlytics.ios.exception
SIGABRT ABORT 0x00000001d715d334
React Native version: 061.1
Expected Results

Closing as this is just a crash log dump. Please follow the issue template and fill out each section so collaborators can help you get to a solution.


Complete Committee Features

The Committee Processing is pending the functionality to work update (rename) and merge committees. Actual specifications has not yet been completed.

Since IAESTE has not been answering my communication about this feature, it is put on hold. If no communication has been received until the end of August, the task will be closed.

There has been no reaction from IAESTE on this matter. Will close as invalid.


[ci/cd]: Fix CHANGELOG.md and CONTRIBUTORS.md generation action

Issue
The current cd workflow to generate the changelog and contributors file on pushes to main is not working.
This workflow should allow easy generation of a CHANGELOG.md and CONTRIBUTORS.md file to track changes and
contributions to this project.
Expected Behavior
On pushes to the main branch, the workflow should generate a CHANGELOG.md and CONTRIBUTORS.md file and
commit those to the main branch.
Actual Behavior
The workflow runs, but no changes or contributors are detected thus no CHANGELOG.md and CONTRIBUTORS.md file
are created and committed.

I believe the changelog is building now. I still don't know if the contributors file is building as the build fails before that. The build fails with protected branch statuses. I need to figure out a way to have the action be able to commit to the main branch without removing any branch protections.
I also need to make sure the contributors file builds properly.
I also need to ensure that it generates the changelog for all tags, starting at v1.0.0.

[ ] Fix push error on main branch from GitHub branch protection rules.
[ ] Ensure contributors file is building correctly.
[ ] Ensure changelog contains entries for all tags starting from v1.0.0.


Read-only mode is no longer enforced

I have an app hooked up to git. When going to ‘develop’, I correctly get the message “Read only - because you have started editing with source control, this view is read only”. However, I’m still able to edit the code.
I'm pretty sure it used to enforce this. Maybe a recent regression?

Are you using prod or next?  Can you check if it repros on next?

It was in Prod. But it's odd: I can no longer repro it on Prod or Next. Did something change since yesterday in Prod?

@ahmelsayed Has anything changed?

This is likely a navigation issue from selecting a different app from the ibiza selector. Closing since this scenario will go away in the new navigation.


Non sentient player controlled mobs can use LOOC

Description

player controlled sentient mobs would include stuff like mice, monkeys, kobolds and mothroaches.
generally using LOOC as these mobs bypasses chat restrictions which is a rule break, so removing it would reduce the need for an admin to deal with it.

i'm pretty sure using LOOC for its intended purpose as these mobs doesn't break any rules. what is against the rules is conveying current-round information in LOOC

mice etc can also emote which breaks rules, not an argument to remove it as its useful for mouse rp

mice etc can also emote which breaks rules, not an argument to remove it as its useful for mouse rp

yes, bypassable countermeasures only hurt lawful people

mice etc can also emote which breaks rules, not an argument to remove it as its useful for mouse rp

Mouse RP incident. :mistake:

mice generally don't have a reason to use LOOC except for the few times on discord where i've heard of mice malding in LOOC about spacelaw or some shit

mice generally don't have a reason to use LOOC except for the few times on discord where i've heard of mice malding in LOOC about spacelaw or some shit

Guy keeps suicing when being revived in medbay
me and team get tired of their shit and morgue them
mouse looc: Why did you not revive me???

Not an issue, plus animals can already bypass chat restrictions via emotes.


Added Maemo and Fennec to detected mobile browsers

Hi,
Please could you merge this change to add Maemo and Fennec to detected mobile browsers? Maemo is the Linux mobile operating system by Nokia and Fennec is the code name for Mozillas mobile version of Firefox (at least on old builds still circulating within the community). I have checked all related applications and adding neither should harm any desktop browsers.
I am doing this pull request on behalf of the Diaspora* community where many users have complained the lack of mobile support for the N900 which is Maemo based and also has stable Fennec builds in popular use. Diaspora* uses mobile-fu as the library for determining what browsers are on mobile devices.
As Diaspora* is currently going to a critical beta launch I am wondering if at all possible you could merge asap and cut a new gem to RubyGems? We would be very grateful.
If you want more information about Diaspora*, please check here: http://diasporafoundation.org/
And if you would like an invite to the official pod, I can supply one :)
Thanks!
Br,
Jason

Hi, any chance of getting this? Or we will have to use our own build of this library which is fine too :)


RsaManager improvements, French for nUpdate library, German for nUpda…

…te Administration

Obsolete, see new PullRequest.


Execute tasks with elevated privileges from non-elevated VS Code

Yes, this is a duplicate of https://github.com/Microsoft/vscode/issues/64157#issue-386602877
No, it has nothing to do with extensions.
In tasks.json under "runOptions" add the option "runAsAdmin" or "runElevated", enabling the execution of a command which needs to be elevated, e.g. installing/deploying into the /usr/local directory on Linux systems, the default install directory for cmake and generally considered the go to directory for third-party and self-compiled software.
Some reference:
http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s09.html
https://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html

I have found a workaround:

I have found a workaround:
{
    "label": "run task elevated",
    "type": "shell",
    "presentation": {
        "focus": true,
    },
    "problemMatcher": [],
    "command": "sudo",
    "args": [
        "<command-to-run-elevated>",
        "<options-and arguments-to-elevated-command>",
    ],
}

This focuses the terminal for credential input and executes the command with elevated privileges when the password is correct.

Given that there is a reasonable work around and this issue hasn't gotten any upvotes I'm going to call it out of scope since there will never be any action on it.


proposal: testing: way to list tests and benchmarks without running them

Proposal feature enhancement for discussion:
Proposal is to add two new flags: 'test.list' and 'test.listbench'.  When executed from the test binary it will list all tests (including examples with output set) or benches
The tests will be printed to stdout with one test per line and then exit with a exit code of 0.  No tests would be ran or any other operation.  It would be nice to include maybe some filering, but it's not nessisary for my use case.  This would probably be easiest just be added at the top of M.Run()
Use case.  We have a custom test runner that unifies all languages test output and part of the procedure is test discovery.  Right there is isn't a great way to get a list of tests that are included in a test binary.
Not included in this feature enhancement is any modifications to the 'go test' tool to map through the setting .

I would like this too for Go's distributed build system. It would make its test sharding more efficient.

I propose this:
we add -test.dryrun or something like this to the testing package,
and it will output the list of matched tests and benchmarks.
I think it's more useful than simply listing all tests/benchmarks/
examples.

@minux, I'm not sure I see the difference.
Why is that more useful? It sounds like you're just proposing a different flag name.

the key difference is it displays only matched names, so
it will help debugging -test.run/-test.bench problems too.

I see. That's fine. I like the proposed behavior, at least, even if I'm not crazy about the name "dry run". But I suppose dryrun is consistent with a bunch of other tools.

I agree being able to do filtering would be nice and I agree dryrun seems a bit off but as long as the functionality is there I am ok.
If it is implemented with the filering I guess the best place to try to implement it would be in the RunTests, RunExamples  and runBenchmarkInternal then?

One complication is subtest and subbenchmarks.
In general, we can't know if a test has any subtests without
running the test. Similarly for subbenchmarks, but at least it
should be faster to probe for subbenchmarks with b.N = 1.
That is, to query all the tests, we basically have to run all
the tests once. I think this drawback negates all the benefit
of querying for a list of tests in the binary (because we can
always parse the test output if we are allowed to run the
tests.)
One compromise solution is this:
-test.dryrun: it only outputs a list of top-level tests and
benchmarks that will be run if -test.dryrun is not given.
subtests and subbenchmarks for included tests are not
included.
Any opinions on this?

cc @mpvl
Agree that this can't work with subtests. Otherwise I think it makes sense.

Indeed it won't work with subtests and only partially with benchmarks. I thus think that they "-dryrun" flag is a bit misleading. You can now achieve the same by using "-benchtime=1ns".  This also more accurately indicates what is going on in reality.  BTW, we actually thought for a moment to have the trial be N=0 instead of N=1, which would have made this more feasible, but it caused too many incompatibilities.
Having a feature that just lists top-level tests, benchmarks, and examples without running might still make sense, but adding -dryrun for displaying either matched subtests or sub-benchmarks doesn't make sense to me, especially as you can't do anything more than what you can do today.
I could imagine doing something like only "probing" tests/benchmarks if static analysis shows that it will call Run. This will go a long way in providing the wanted functionality , but I'm not sure that we want to go there.

I don't understand why adding -dryrun doesn't do anything that you can't do
today. If that's the case, we might as well just close this issue because
one can always run the test binary with -test.v -test.bench=.
-test.benchtime=1ns and parse the output to see which
tests/benchmarks/examples are run.

Maybe I misunderstood, to just show the the top-level tests/benchmarks yes, it make sense, but not to list sub-benchmarks.  I find it misleading to start running tests/bencmarks as soon as the pattern includes a '/', for example.  It is not a dryrun anymore at that point and you can simulate the same by using the --benchtime=1ns.

@minux Well that still runs the tests which is not wanted.  A test that takes more than a trivial amount of time will block.
./test_bin -test.v -test.bench=. -test.benchtime=1ns === RUN   TestSleep --- PASS: TestSleep (30.00s) PASS
For my use case no filtering is needed and if filtering is required I think grep or other unix utilities would be just fine.  Like you said filtering for subtests really is just showing the match for the top anyway.  I think a simple loop around testing M.tests, m.Benchmarks and m.Examples is all that is really needed.
Here is all i was originally imagining in m.Run()
	if *listTests {
		for _, test := range m.tests {
			fmt.Println(test.Name)
		}
		for _, example := range m.examples {
			if example.Output != "" {
				fmt.Println(example.Name)
			}
		}
		os.Exit(0)
	}

	if *listBench {
		for _, bench := range m.benchmarks {
			fmt.Println(bench.Name)
		}
		os.Exit(0)
	}

I am not sure I see anything more than this is really nessisary.
There are examples in other languages / test packages:
In Gtests: https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#listing-test-names
Boost Tests: http://www.boost.org/doc/libs/1_61_0/libs/test/doc/html/boost_test/utf_reference/rt_param_reference/list_content.html
This is just used our internal the test runner, which is only passed the compiled binary, to get a list of tests to run.

The problem is not about filtering. It's that it's impossible to list
subtests/subbenchmarks without running the top-level tests, and benchmarks.
Just listing top-level tests is not that useful because it's a matter of go
list -f "{{.TestGoFiles}} {{.XTestGoFiles}}" and grep to achieve the same
without any new code.

Except my test runner doesn't actually interact with source code. It interacts with the test binary.

You can also use nm(1) on the test binary and look for proper text symbols
if you only need top-level tests and benchmarks.

Subtests make this impossible to do at subtest granularity, but we could still have -list=pattern list all the tests - Test*, Benchmark*, and Example* that match. That seems fine.

code:  https://go-review.googlesource.com/41195


Rush update issue

When doing rush update, it gives me the following error:
...:/mnt/c/Users/Lenovo/Documents/origin$ rush update
Rush Multi-Project Build Tool 5.40.5 - https://rushjs.io
Node.js version is 14.21.2 (LTS)
Starting "rush update"
Validating package manager shrinkwrap file.
Found files in the "common/git-hooks" folder.
Successfully installed these Git hook scripts: pre-commit
Trying to acquire lock for pnpm-5.18.1
Acquired lock for pnpm-5.18.1
Found pnpm version 5.18.1 in /home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1
Symlinking "/mnt/c/Users/Lenovo/Documents/origin/common/temp/pnpm-local"
--> "/home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1"
Copying /mnt/c/Users/Lenovo/Documents/origin/common/config/rush/.npmrc --> /mnt/c/Users/Lenovo/Documents/origin/common/temp/.npmrc
Updating /mnt/c/Users/Lenovo/Documents/origin/common/temp/pnpmfile.js
Updating temp projects in /mnt/c/Users/Lenovo/Documents/origin/common/temp/projects
Your shrinkwrap file is missing the project "@energyweb/issuer".
Your shrinkwrap file references a project "@rush-temp/issuer-irec-api" which no longer exists.
Finished creating temporary modules (0.21 seconds)
The shrinkwrap file contains the following issues:
Missing dependency "@energyweb/utils-general" (11.2.1) required by "@energyweb/issuer"
Missing dependency "@ethersproject/abi" (5.3.1) required by "@energyweb/issuer"
Missing dependency "@ethersproject/abstract-signer" (5.3.0) required by "@energyweb/issuer"
Missing dependency "@ethersproject/contracts" (5.3.0) required by "@energyweb/issuer"
Missing dependency "@ethersproject/providers" (5.3.1) required by "@energyweb/issuer"
Missing dependency "@ethersproject/wallet" (5.3.0) required by "@energyweb/issuer"
Missing dependency "@openzeppelin/contracts" (4.4.2) required by "@energyweb/issuer"
Missing dependency "@openzeppelin/contracts-upgradeable" (4.4.2) required by "@energyweb/issuer"
Missing dependency "@openzeppelin/truffle-upgrades" (1.11.0) required by "@energyweb/issuer"
Missing dependency "@typechain/ethers-v5" (7.0.1) required by "@energyweb/issuer"
Missing dependency "@types/chai" (4.3.0) required by "@energyweb/issuer"
Missing dependency "@types/dotenv" (6.1.1) required by "@energyweb/issuer"
Missing dependency "@types/mocha" (9.0.0) required by "@energyweb/issuer"
Missing dependency "@types/node" (14.18.10) required by "@energyweb/issuer"
Missing dependency "@types/supertest" (2.0.11) required by "@energyweb/issuer"
Missing dependency "chai" (4.3.4) required by "@energyweb/issuer"
Missing dependency "dotenv" (10.0.0) required by "@energyweb/issuer"
Missing dependency "ethers" (5.3.1) required by "@energyweb/issuer"
Missing dependency "ethlint" (1.2.5) required by "@energyweb/issuer"
Missing dependency "ew-precise-proofs-js" (1.1.0) required by "@energyweb/issuer"
Missing dependency "ganache-cli" (6.12.2) required by "@energyweb/issuer"
Missing dependency "mocha" (9.1.3) required by "@energyweb/issuer"
Missing dependency "moment" (2.29.2) required by "@energyweb/issuer"
Missing dependency "shx" (0.3.3) required by "@energyweb/issuer"
Missing dependency "solc" (0.8.4) required by "@energyweb/issuer"
Missing dependency "solc-0.8"<EMAIL_ADDRESS>required by "@energyweb/issuer"
Missing dependency "solidity-docgen" (0.5.16) required by "@energyweb/issuer"
Missing dependency "truffle" (5.4.26) required by "@energyweb/issuer"
Missing dependency "truffle-typings" (1.0.8) required by "@energyweb/issuer"
Missing dependency "ts-node" (9.1.1) required by "@energyweb/issuer"
Missing dependency "typechain" (6.1.0) required by "@energyweb/issuer"
Missing dependency "typescript" (4.5.4) required by "@energyweb/issuer"
Missing dependency "winston" (3.3.3) required by "@energyweb/issuer"
Missing dependency "winston-transport" (4.4.1) required by "@energyweb/issuer"
Deleting files from /mnt/c/Users/Lenovo/Documents/origin/common/temp/node_modules
Running "pnpm install" in /mnt/c/Users/Lenovo/Documents/origin/common/temp
Using hooks from: /mnt/c/Users/Lenovo/Documents/origin/common/temp/pnpmfile.js
readPackage hook is declared. Manifests of dependencies might get overridden
 WARN  deprecated<EMAIL_ADDRESS>ganache-cli is now ganache; visit https://trfl.io/g7 for details
Downloading registry.npmjs.org/ganache-cli/6.12.2: 5.8 MB/5.8 MB, done
Downloading registry.npmjs.org/solc/0.8.4: 7.25 MB/7.25 MB, done
 WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
 WARN  @rush-temp/issuer<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but version 6.1.0 was installed.
 WARN  @rush-temp/issuer<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
 WARN  @rush-temp/issuer > ethlint<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
 WARN  @rush-temp/issuer > truffle > @truffle/preserve-to-buckets > @textile/hub > @textile/buckets<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
Packages: +1556
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 WARN  9 other warnings
Packages are hard linked from the content-addressable store to the virtual store.
Content-addressable store is at: /mnt/c/Users/Lenovo/Documents/origin/common/temp/pnpm-store/v3
Virtual store is at:             node_modules/.pnpm
Downloading registry.npmjs.org/truffle/5.4.26: 11 MB/11 MB, done
Downloading<EMAIL_ADDRESS>10.7 MB/10.7 MB, done
Downloading registry.npmjs.org/typescript/4.5.4: 11.3 MB/11.3 MB, done
Downloading registry.npmjs.org/solc/0.6.12: 6.63 MB/6.63 MB, done
Progress: resolved 1559, reused 415, downloaded 1144, added 1556, done
<EMAIL_ADDRESS>Running install script, done in 336ms
<EMAIL_ADDRESS>Running postinstall script, done in 446ms
node_modules/.pnpm/@apollo/protobufjs@1.2.6/node_modules/@apollo/protobufjs: Running postinstall script, done in 356ms
node_modules/.pnpm/@apollo/protobufjs@1.2.7/node_modules/@apollo/protobufjs: Running postinstall script, done in 465ms
<EMAIL_ADDRESS>Running postinstall script, done in 320ms
<EMAIL_ADDRESS>Running install script, done in 961ms
<EMAIL_ADDRESS>Running install script, done in 1s
<EMAIL_ADDRESS>Running install script, done in 956ms
<EMAIL_ADDRESS>Running install script, done in 974ms
<EMAIL_ADDRESS>Running install script, failed in 24.3s
<EMAIL_ADDRESS>install$ node-pre-gyp install --fallback-to-build
│ node-pre-gyp info it worked if it ends with ok
│ node-pre-gyp info using<EMAIL_ADDRESS>│ node-pre-gyp info using<EMAIL_ADDRESS>| linux | x64
│ node-pre-gyp WARN Using request for node-pre-gyp https download
│ node-pre-gyp info check checked for<EMAIL_ADDRESS>│ node-pre-gyp http GET https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.2.0/node-v83-linux-x64.tar.gz
│ node-pre-gyp http 403 https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.2.0/node-v83-linux-x64.tar.gz
│ node-pre-gyp WARN Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.2.0/node-v83-linux-x64
│ node-pre-gyp WARN Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v83 ABI, glibc) (falling back t
│ node-pre-gyp http 403 status code downloading tarball https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.2.0/node-v
│ gyp info it worked if it ends with ok
│ gyp info using<EMAIL_ADDRESS>│ gyp info using<EMAIL_ADDRESS>| linux | x64
│ gyp info ok
│ gyp info it worked if it ends with ok
│ gyp info using<EMAIL_ADDRESS>│ gyp info using<EMAIL_ADDRESS>| linux | x64
│ gyp info find Python using Python version 3.8.5 found at "/usr/bin/python3"
│ gyp info spawn /usr/bin/python3
│ gyp info spawn args [
│ gyp info spawn args   '/home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1/node_modules/pnpm/dist/node_modules/node-gyp/gyp/g
│ gyp info spawn args   'binding.gyp',
│ gyp info spawn args   '-f',
│ gyp info spawn args   'make',
│ gyp info spawn args   '-I',
│ gyp info spawn args<EMAIL_ADDRESS>│ gyp info spawn args   '-I',
│ gyp info spawn args   '/home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1/node_modules/pnpm/dist/node_modules/node-gyp/addon
│ gyp info spawn args   '-I',
│ gyp info spawn args   '/home/marcelo/.cache/node-gyp/14.21.2/include/node/common.gypi',
│ gyp info spawn args   '-Dlibrary=shared_library',
│ gyp info spawn args   '-Dvisibility=default',
│ gyp info spawn args   '-Dnode_root_dir=/home/marcelo/.cache/node-gyp/14.21.2',
│ gyp info spawn args   '-Dnode_gyp_dir=/home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1/node_modules/pnpm/dist/node_modules
│ gyp info spawn args   '-Dnode_lib_file=/home/marcelo/.cache/node-gyp/14.21.2/<(target_arch)/node.lib',
│ gyp info spawn args   '-Dmodule_root_dir=/mnt/c/Users/Lenovo/Documents/origin/common/temp/node_modules/.pnpm/sqlite3@4.
│ gyp info spawn args   '-Dnode_engine=v8',
│ gyp info spawn args   '--depth=.',
│ gyp info spawn args   '--no-parallel',
│ gyp info spawn args   '--generator-output',
│ gyp info spawn args   'build',
│ gyp info spawn args   '-Goutput_dir=.'
│ gyp info spawn args ]
│ internal/modules/cjs/loader.js:905
│   throw err;
│   ^
│ Error: Cannot find module 'nan'
│ Require stack:
│ -<EMAIL_ADDRESS>│     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
│     at Function.Module.load (internal/modules/cjs/loader.js:746:27)
│     at Module.require (internal/modules/cjs/loader.js:974:19)
│     at require (internal/modules/cjs/helpers.js:101:18)
│     at [eval]:1:1
│     at Script.runInThisContext (vm.js:134:12)
│     at Object.runInThisContext (vm.js:310:38)
│     at internal/process/execution.js:81:19
│     at [eval]-wrapper:6:22
│     at evalScript (internal/process/execution.js:80:60) {
│   code: 'MODULE_NOT_FOUND',
│   requireStack: [
│<EMAIL_ADDRESS>│   ]
│ }
│ gyp: Call to 'node -e "require('nan')"' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
│ gyp ERR! configure error
│ gyp ERR! stack Error: gyp failed with exit code: 1
│ gyp ERR! stack     at ChildProcess.onCpExit (/home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1/node_modules/pnpm/dist/node
│ gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
│ gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12)
│ gyp ERR! System Linux <IP_ADDRESS>-microsoft-standard-WSL2
│ gyp ERR! command "/home/marcelo/.nvm/versions/node/v14.21.2/bin/node" "/home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1/no
│ gyp ERR! cwd<EMAIL_ADDRESS>│ gyp ERR! node -v v14.21.2
│ gyp ERR! node-gyp -v v7.1.2
│ gyp ERR! not ok
│ node-pre-gyp ERR! build error
│ node-pre-gyp ERR! stack Error: Failed to execute '/home/marcelo/.nvm/versions/node/v14.21.2/bin/node /home/marcelo/.rus
│ node-pre-gyp ERR! stack     at ChildProcess. (/mnt/c/Users/Lenovo/Documents/origin/common/temp/node_modules/
│ node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
│ node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1088:16)
│ node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:296:5)
│ node-pre-gyp ERR! System Linux <IP_ADDRESS>-microsoft-standard-WSL2
│ node-pre-gyp ERR! command "/home/marcelo/.nvm/versions/node/v14.21.2/bin/node" "/mnt/c/Users/Lenovo/Documents/origin/co
│ node-pre-gyp ERR! cwd<EMAIL_ADDRESS>│ node-pre-gyp ERR! node -v v14.21.2
│ node-pre-gyp ERR! node-pre-gyp -v v0.11.0
│ node-pre-gyp ERR! not ok
│ Failed to execute '/home/marcelo/.nvm/versions/node/v14.21.2/bin/node /home/marcelo/.rush/node-v14.21.2/pnpm-5.18.1/nod
└─ Failed in 24.3s
<EMAIL_ADDRESS>Running install script, done in 4.2s
<EMAIL_ADDRESS>Running install script, done in 3.1s
<EMAIL_ADDRESS>Running postinstall script, done in 80ms
<EMAIL_ADDRESS>Running postinstall script, done in 73ms
<EMAIL_ADDRESS>Running install script, done in 833ms
 ERROR  Command failed with exit code 1.
The command failed:
/mnt/c/Users/Lenovo/Documents/origin/common/temp/pnpm-local/node_modules/.bin/pnpm install --store /mnt/c/Users/Lenovo/Documents/origin/common/temp/pnpm-store --no-prefer-frozen-lockfile
ERROR: Error: The command failed with exit code 1

The rush.json doc is :
/**

This is the main configuration file for Rush.

For full documentation, please see https://rushjs.io
*/
{
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json",
/**

(Required) This specifies the version of the Rush engine to be used in this repo.
Rush's "version selector" feature ensures that the globally installed tool will
behave like this release, regardless of which version is installed globally.

The common/scripts/install-run-rush.js automation script also uses this version.

NOTE: If you upgrade to a new major version of Rush, you should replace the "v5"
path segment in the "$schema" field for all your Rush config files.  This will ensure
correct error-underlining and tab-completion for editors such as VS Code.
*/
"rushVersion": "5.40.5",

/**

The next field selects which package manager should be installed and determines its version.
Rush installs its own local copy of the package manager to ensure that your build process
is fully isolated from whatever tools are present in the local environment.

Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion".  See the Rush documentation
for details about these alternatives.
*/
"pnpmVersion": "5.18.1",

// "npmVersion": "4.5.0",
// "yarnVersion": "1.9.4",
/**

Options that are only used when the PNPM package manager is selected
/
"pnpmOptions": {
/*

Specifies the location of the PNPM store.  There are two possible values:

"local" - use the "pnpm-store" folder in the current configured temp folder:

"common/temp/pnpm-store" by default.

"global" - use PNPM's global store, which has the benefit of being shared

across multiple repo folders, but the disadvantage of less isolation for builds
(e.g. bugs or incompatibilities when two repos use different releases of PNPM)

RUSH_PNPM_STORE_PATH will override the directory that will be used as the store

In all cases, the store path will be overridden by the environment variable RUSH_PNPM_STORE_PATH.

The default value is "local".
/
// "pnpmStore": "local",
/*
If true, then Rush will add the "--strict-peer-dependencies" option when invoking PNPM.
This causes "rush install" to fail if there are unsatisfied peer dependencies, which is
an invalid state that can cause build failures or incompatible dependency versions.
(For historical reasons, JavaScript package managers generally do not treat this invalid
state as an error.)

The default value is false to avoid legacy compatibility issues.
It is strongly recommended to set strictPeerDependencies=true.
/
// "strictPeerDependencies": true,
/*
Configures the strategy used to select versions during installation.

This feature requires PNPM version 3.1 or newer.  It corresponds to the "--resolution-strategy" command-line
option for PNPM.  Possible values are "fast" and "fewer-dependencies".  PNPM's default is "fast", but this may
be incompatible with certain packages, for example the "@types" packages from DefinitelyTyped.  Rush's default
is "fewer-dependencies", which causes PNPM to avoid installing a newer version if an already installed version
can be reused; this is more similar to NPM's algorithm.

After modifying this field, it's recommended to run "rush update --full" so that the package manager
will recalculate all version selections.
/
"resolutionStrategy": "fewer-dependencies"
/*
If true, then rush install will report an error if manual modifications
were made to the PNPM shrinkwrap file without running "rush update" afterwards.

This feature protects against accidental inconsistencies that may be introduced
if the PNPM shrinkwrap file ("pnpm-lock.yaml") is manually edited.  When this
feature is enabled, "rush update" will append a hash to the file as a YAML comment,
and then "rush update" and "rush install" will validate the hash.  Note that this does not prohibit
manual modifications, but merely requires "rush update" be run
afterwards, ensuring that PNPM can report or repair any potential inconsistencies.

To temporarily disable this validation when invoking "rush install", use the
"--bypass-policy" command-line parameter.

The default value is false.
/
// "preventManualShrinkwrapChanges": true,
/*
If true, then rush install will use the PNPM workspaces feature to perform the
install.

This feature uses PNPM to perform the entire monorepo install. When using workspaces, Rush will
generate a "pnpm-workspace.yaml" file referencing all local projects to install. Rush will
also generate a "pnpmfile.js" which is used to provide preferred versions support. When install
is run, this pnpmfile will be used to replace dependency version ranges with a smaller subset
of the original range. If the preferred version is not fully a subset of the original version
range, it will be left as-is. After this, the pnpmfile.js provided in the repository (if one
exists) will be called to further modify package dependencies.

This option is experimental. The default value is false.
*/
// "useWorkspaces": true
},

/**

Older releases of the Node.js engine may be missing features required by your system.
Other releases may have bugs.  In particular, the "latest" version will not be a
Long Term Support (LTS) version and is likely to have regressions.

Specify a SemVer range to ensure developers use a Node.js version that is appropriate
for your repo.

LTS schedule: https://nodejs.org/en/about/releases/
LTS versions: https://nodejs.org/en/download/releases/
*/
"nodeSupportedVersionRange": ">=12.13.0 <13.0.0 || >=14.15.0 <15.0.0",

/**

Odd-numbered major versions of Node.js are experimental.  Even-numbered releases
spend six months in a stabilization period before the first Long Term Support (LTS) version.
For example, 8.9.0 was the first LTS version of Node.js 8.  Pre-LTS versions are not recommended
for production usage because they frequently have bugs.  They may cause Rush itself
to malfunction.

Rush normally prints a warning if it detects a pre-LTS Node.js version.  If you are testing
pre-LTS versions in preparation for supporting the first LTS version, you can use this setting
to disable Rush's warning.
*/
// "suppressNodeLtsWarning": false,

/**

If you would like the version specifiers for your dependencies to be consistent, then
uncomment this line. This is effectively similar to running "rush check" before any
of the following commands:

rush install, rush update, rush link, rush version, rush publish

In some cases you may want this turned on, but need to allow certain packages to use a different
version. In those cases, you will need to add an entry to the "allowedAlternativeVersions"
section of the common-versions.json.
*/
// "ensureConsistentVersions": true,

/**

Large monorepos can become intimidating for newcomers if project folder paths don't follow
a consistent and recognizable pattern.  When the system allows nested folder trees,
we've found that teams will often use subfolders to create islands that isolate
their work from others ("shipping the org").  This hinders collaboration and code sharing.

The Rush developers recommend a "category folder" model, where buildable project folders
must always be exactly two levels below the repo root.  The parent folder acts as the category.
This provides a basic facility for grouping related projects (e.g. "apps", "libraries",
"tools", "prototypes") while still encouraging teams to organize their projects into
a unified taxonomy.  Limiting to 2 levels seems very restrictive at first, but if you have
20 categories and 20 projects in each category, this scheme can easily accommodate hundreds
of projects.  In practice, you will find that the folder hierarchy needs to be rebalanced
occasionally, but if that's painful, it's a warning sign that your development style may
discourage refactoring.  Reorganizing the categories should be an enlightening discussion
that brings people together, and maybe also identifies poor coding practices (e.g. file
references that reach into other project's folders without using Node.js module resolution).

The defaults are projectFolderMinDepth=1 and projectFolderMaxDepth=2.

To remove these restrictions, you could set projectFolderMinDepth=1
and set projectFolderMaxDepth to a large number.
*/
// "projectFolderMinDepth": 2,
"projectFolderMaxDepth": 4,

/**

Today the npmjs.com registry enforces fairly strict naming rules for packages, but in the early
days there was no standard and hardly any enforcement.  A few large legacy projects are still using
nonstandard package names, and private registries sometimes allow it.  Set "allowMostlyStandardPackageNames"
to true to relax Rush's enforcement of package names.  This allows upper case letters and in the future may
relax other rules, however we want to minimize these exceptions.  Many popular tools use certain punctuation
characters as delimiters, based on the assumption that they will never appear in a package name; thus if we relax
the rules too much it is likely to cause very confusing malfunctions.

The default value is false.
*/
// "allowMostlyStandardPackageNames": true,

/**

This feature helps you to review and approve new packages before they are introduced
to your monorepo.  For example, you may be concerned about licensing, code quality,
performance, or simply accumulating too many libraries with overlapping functionality.
The approvals are tracked in two config files "browser-approved-packages.json"
and "nonbrowser-approved-packages.json".  See the Rush documentation for details.
/
// "approvedPackagesPolicy": {
//   /*
//    * The review categories allow you to say for example "This library is approved for usage
//    * in prototypes, but not in production code."
//    *
//    * Each project can be associated with one review category, by assigning the "reviewCategory" field
//    * in the "projects" section of rush.json.  The approval is then recorded in the files
//    * "common/config/rush/browser-approved-packages.json" and "nonbrowser-approved-packages.json"
//    * which are automatically generated during "rush update".
//    *
//    * Designate categories with whatever granularity is appropriate for your review process,
//    * or you could just have a single category called "default".
//    /
//   "reviewCategories": [
//     // Some example categories:
//     "production", // projects that ship to production
//     "tools",      // non-shipping projects that are part of the developer toolchain
//     "prototypes"  // experiments that should mostly be ignored by the review process
//   ],
//
//   /*
//    * A list of NPM package scopes that will be excluded from review.
//    * We recommend to exclude TypeScript typings (the "@types" scope), because
//    * if the underlying package was already approved, this would imply that the typings
//    * are also approved.
//    */
//   // "ignoredNpmScopes": ["@types"]
// },

/**

If you use Git as your version control system, this section has some additional
optional features you can use.
/
"gitPolicy": {
/*

Work at a big company?  Tired of finding Git commits at work with unprofessional Git
emails such as<EMAIL_ADDRESS> Rush can validate people's Git email address
before they get started.

Define a list of regular expressions describing allowable e-mail patterns for Git commits.
They are case-insensitive anchored JavaScript RegExps.  Example<EMAIL_ADDRESS>
IMPORTANT: Because these are regular expressions encoded as JSON string literals,
RegExp escapes need two backslashes, and ordinary periods should be "\.".
/
// "allowedEmailRegExps": [
//   "[^<EMAIL_ADDRESS>//<EMAIL_ADDRESS>// ],
/*
When Rush reports that the address is malformed, the notice can include an example
of a recommended email.  Make sure it conforms to one of the allowedEmailRegExps
expressions.
/
// "sampleEmail"<EMAIL_ADDRESS>/*
The commit message to use when committing changes during 'rush publish'.

For example, if you want to prevent these commits from triggering a CI build,
you might configure your system's trigger to look for a special string such as "[skip-ci]"
in the commit message, and then customize Rush's message to contain that string.
/
// "versionBumpCommitMessage": "Applying package updates. [skip-ci]",
/*
The commit message to use when committing changes during 'rush version'.

For example, if you want to prevent these commits from triggering a CI build,
you might configure your system's trigger to look for a special string such as "[skip-ci]"
in the commit message, and then customize Rush's message to contain that string.
*/
// "changeLogUpdateCommitMessage": "Applying package updates. [skip-ci]"
},

"repository": {
/**
* The URL of this Git repository, used by "rush change" to determine the base branch for your PR.
*
* The "rush change" command needs to determine which files are affected by your PR diff.
* If you merged or cherry-picked commits from the master branch into your PR branch, those commits
* should be excluded from this diff (since they belong to some other PR).  In order to do that,
* Rush needs to know where to find the base branch for your PR.  This information cannot be
* determined from Git alone, since the "pull request" feature is not a Git concept.  Ideally
* Rush would use a vendor-specific protocol to query the information from GitHub, Azure DevOps, etc.
* But to keep things simple, "rush change" simply assumes that your PR is against the "master" branch
* of the Git remote indicated by the repository.url setting in rush.json.  If you are working in
* a GitHub "fork" of the real repo, this setting will be different from the repository URL of your
* your PR branch, and in this situation "rush change" will also automatically invoke "git fetch"
* to retrieve the latest activity for the remote master branch.
/
// "url": "https://github.com/microsoft/rush-example",
/*
* The default branch name. This tells "rush change" which remote branch to compare against.
* The default value is "master"
/
// "defaultBranch": "master",
/*
* The default remote. This tells "rush change" which remote to compare against if the remote URL is
* not set or if a remote matching the provided remote URL is not found.
*/
// "defaultRemote": "origin"
},
/**

Event hooks are customized script actions that Rush executes when specific events occur
/
"eventHooks": {
/*

The list of shell commands to run before the Rush installation starts
*/
"preRushInstall": [
// "common/scripts/pre-rush-install.js"
],

/**

The list of shell commands to run after the Rush installation finishes
*/
"postRushInstall": [],

/**

The list of shell commands to run before the Rush build command starts
*/
"preRushBuild": [],

/**

The list of shell commands to run after the Rush build command finishes
*/
"postRushBuild": []
},

/**

Installation variants allow you to maintain a parallel set of configuration files that can be
used to build the entire monorepo with an alternate set of dependencies.  For example, suppose
you upgrade all your projects to use a new release of an important framework, but during a transition period
you intend to maintain compatibility with the old release.  In this situation, you probably want your
CI validation to build the entire repo twice: once with the old release, and once with the new release.

Rush "installation variants" correspond to sets of config files located under this folder:

common/config/rush/variants/<variant_name>

The variant folder can contain an alternate common-versions.json file.  Its "preferredVersions" field can be used
to select older versions of dependencies (within a loose SemVer range specified in your package.json files).
To install a variant, run "rush install --variant <variant_name>".

For more details and instructions, see this article:  https://rushjs.io/pages/advanced/installation_variants/
/
"variants": [
// {
//   /*
//    * The folder name for this variant.
//    /
//   "variantName": "old-sdk",
//
//   /*
//    * An informative description
//    */
//   "description": "Build this repo using the previous release of the SDK"
// }
],

/**

Rush can collect anonymous telemetry about everyday developer activity such as
success/failure of installs, builds, and other operations.  You can use this to identify
problems with your toolchain or Rush itself.  THIS TELEMETRY IS NOT SHARED WITH MICROSOFT.
It is written into JSON files in the common/temp folder.  It's up to you to write scripts
that read these JSON files and do something with them.  These scripts are typically registered
in the "eventHooks" section.
*/
// "telemetryEnabled": false,

/**

Allows creation of hotfix changes. This feature is experimental so it is disabled by default.
If this is set, 'rush change' only allows a 'hotfix' change type to be specified. This change type
will be used when publishing subsequent changes from the monorepo.
*/
// "hotfixChangeEnabled": false,

/**

(Required) This is the inventory of projects to be managed by Rush.

Rush does not automatically scan for projects using wildcards, for a few reasons:

Depth-first scans are expensive, particularly when tools need to repeatedly collect the list.

On a caching CI machine, scans can accidentally pick up files left behind from a previous build.

  The value must be one of the
//    * strings from the "reviewCategories" defined above.
//    /
//   "reviewCategory": "production",
//
//   /*
//    * A list of local projects that appear as devDependencies for this project, but cannot be
//    * locally linked because it would create a cyclic dependency; instead, the last published
//    * version will be installed in the Common folder.
//    /
//   "cyclicDependencyProjects": [
//     // "my-toolchain"
//   ],
//
//   /*
//    * If true, then this project will be ignored by the "rush check" command.
//    * The default value is false.
//    /
//   // "skipRushCheck": false,
//
//   /*
//    * A flag indicating that changes to this project will be published to npm, which affects
//    * the Rush change and publish workflows. The default value is false.
//    * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both.
//    /
//   // "shouldPublish": false,
//
//   /*
//    * Facilitates postprocessing of a project's files prior to publishing.
//    *
//    * If specified, the "publishFolder" is the relative path to a subfolder of the project folder.
//    * The "rush publish" command will publish the subfolder instead of the project folder.  The subfolder
//    * must contain its own package.json file, which is typically a build output.
//    /
//   // "publishFolder": "temp/publish",
//
//   /*
//    * An optional version policy associated with the project.  Version policies are defined
//    * in "version-policies.json" file.  See the "rush publish" documentation for more info.
//    * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both.
//    */
//   // "versionPolicyName": ""
// },
//
// {
//   "packageName": "my-controls",
//   "projectFolder": "libraries/my-controls",
//   "reviewCategory": "production"
// },
//
// {
//   "packageName": "my-toolchain",
//   "projectFolder": "tools/my-toolchain",
//   "reviewCategory": "tools"
// }
]
}

I am doing a progressive installation, adding the packages one by one. The first one I installed was: @energyweb/issuer-irec-api-wrapper, which came out ok (run rush update and rush build).
Then uncomment the package: @energyweb/issuer and doing rush update again showed those errors.
I appreciate a help

I was finally able to run the rush update by following the directions at: https://rushjs.io/pages/advanced/incremental_builds/. The ticket also helped me: https://github.com/energywebfoundation/origin/issues/3342


Status bar content color in IOS (dark mode)

Description
Status bar content color is white in the app in IOS (dark mode)
I set the configurations in XCode for status bar to be hidden and with light and dark theme and both did not work
When the status bar have a white content , the clock / battery info and these stuff looks hidden (white color on white background)
info.plist file
```<key>UIStatusBarHidden</key>
<true/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleDefault</string>```

reference to similar issues
26619
React Native version:
    OS: macOS 10.15.7
    CPU: (8) x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
    Memory: 1.23 GB / 16.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 10.15.1 - ~/.nvm/versions/node/v10.15.1/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 6.14.9 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.8.4 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.0, DriverKit 20.0, macOS 11.0, tvOS 14.0, watchOS 7.0
    Android SDK:
      Android NDK: 20.0.5594570
  IDEs:
    Android Studio: 4.1 AI-201.87<IP_ADDRESS>42882
    Xcode: 12.0/12A8189h - /usr/bin/xcodebuild
  Languages:
    Java: 9.0.1 - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: ^16.13.1 => 16.14.0
    react-native: ^0.63.4 => 0.63.4
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found```

## Expected Results
I want the status bar to have a dark content (dark text color)

## Snack, code example, screenshot, or link to a repository:

There was a suggestion change in the issue you linked here. Did you try that? Did it work?

There was a suggestion change in the issue you linked here. Did you try that? Did it work?
It'd be helpful to have more detail on your repro.

I tried to try it , I got this RCTStatusBarManager.m file , but it was in a different location and the Swift codes are different from the codes which inside the comment (looks because of a change in react-native version)
To reproduce the issue
just create a new project with react-native: 0.63.4 and make your status bar light
then test it on IOS device (with iOS version more than 13 and enable the dark mode)

We too are facing the same issue.
The solution shared doesn't work as the filepath has changed.
Any help would be great!


[WIP] Update MKL-DNN submodule to v0.19

Description
This PR updates the MKL-DNN submodule to v0.19. Currently it's still a release candidate. Will update to the final release commit once it's released.
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[ ] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[ ] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

Hi @iblis17, may I have you comments on the failure of Julia tests?

Hi @TaoLv ,
please consider rebase your PR, there is a related patch merged recently: https://github.com/apache/incubator-mxnet/pull/14776

Thank you @iblis17 . Will try!

@mxnet-label-bot add[MKLDNN, pr-work-in-progress]

What's the pending item for this PR?

@eric-haibin-lin Finally MKL-DNN 0.19 was just released today. This PR is updated accordingly.

@TaoLv please rebase the code since the TRT failure is disabled now.

Merging now, thanks for your contribution.


(Bug) dashboard not updating

@sirpy the data is displayed for the current day for all charts/boxes

@sirpy dashboard isn't updated - all charts and boxes are empty


Some test for require

This is test for https://travis-ci.org/phalcon/cphalcon/jobs/215182360#L2132

@sjinks well this is correctly creating same issue as in phalcon repository, though for some reason error message is different than in phalcon though i tried to make a same code

@sjinks just to make sure - i checked the similar code with plain php and it works fine without issue so it's not some php 7.1 change


Update # of tests, # cities, add Google Analytics

This PR adds Google Analytics code.

@georgiamoon While we discuss the total number of tests and cities, I've modified the branch in this PR to just include the GA code. PTAL?

LGTM to me but I see you tagged @georgiamoon, so I'll let her give the final ok