MSID: 101626 Version: 1 DOI: 10.1101/2<IP_ADDRESS>4187

MSID: 101626
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>4187
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=101626
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>4187

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/101626v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>4187
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/101626/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

Note: A second version of the assessment letter has been sent resolving the author-identified typos in the Public Reviews

WOS query sent

confirmed


Greasemonkey/Tampermonkey support

It would be nice to add support for greasemonkey/tampermonkey.
Love the idea of this but don't want to install yet another extension.

Thanks for the request - going to copy/paste my response on the hackernews comment:
The current implementation uses the WebExtension apis to perform an internal redirect. When you navigate to a Zoom meeting, before the browser opens a connection or sends a single network packet, the extension rewrites the url to navigate to their web client.
On the other hand tampermonkey/greasemonkey are content scripts that get injected into loaded pages.  This will be slower and depending on the timing of events you may even still get the Zoom file download prompt.
So I don't think tampermonkey/greasemonkey is a good fit here.

Valid points, but a tampermonkey script version does appear to work fine, if op insists.
https://gist.github.com/miraries/32dcd6581734137cee7e108a5e22790b


Hue dimmer switch repeat setting

If you're as old a me, you might remember your first analogue joystick had a normal/repeat switch.  Normally, you would have to press/release the trigger repeatedly in quick succession to fire a salvo, but in the repeat setting, you could keep the trigger pressed and the joystick would send press events repeatedly.  I'm thinking of a similar option for the Hue dimmer switch.
As you might know, the Hue dimmer switch generates the following events (buttonevent values):

x000: initial press;
x001: hold;
x002: release (after initial press);
x003: release (after hold).
As far as I know, the Hue dimmer switch is the only switch that sends a hold event every second (or so), while the button is held.

Currently homebridge-hue issues a HomeKit Single Press on the x002 event, and a Long Press on the first x001 or x003 event (the x000 and first x001 from the Hue bridge might be missed, due to polling).  With the "repeat" setting, homebridge-hue would issue a HomeKit Single Press on each x001 event and on the x002 and x003 event, while Long Press would no longer be issued.  Of course this would work best with deCONZ, issuing a web socket event for every button event.
This idea came to mind while controlling my Sonos speakers from an IKEA remote.  I would like to be able to hold a button for Volume Up, instead of having to press/release the Up button repeatedly.  However, neither HomeKit nor Sonos supports anything equivalent to the typical ZigBee Move to level and Stop commands, which map so well to the x001 and 0x003 events. With repeat, a HomeKit automation could simply do a Volume increase on each Single Press event.
Note that this still wouldn't allow for light dimming from HomeKit automations, as HomeKit lacks a bri_inc equivalent.
Help wanted:

Would you be interested in such an option?  What would you use it for?
Would you be interested in custom characteristics to increase/decrease the brightness, as I've created for volume and track in homebridge-zp?
How would you want to set repeat mode?

Using a resourcelink?  What about different settings per button?  Four resourcelinks?
Using another custom characteristic.  That would involve re-introducing a custom service for the switch to hold this characteristic.  LastUpdated, Enabled, and Resource would then also move there (they're actually still there in the Service Label service, but even Eve doesn't show this service).  Also this would require dynamic homebridge accessories (see issue #4) to persist the setting accross homebridge restarts.

I'm a bit confused by this. I have used this for the same reason you mentioned, Symfonisk sound controller vol up and down. I've noticed you have to move it slowly left and right and the repeats are quite slow.
Alternatively now I'm trying to use the Ikea TRADFRI on/off switch and long presses don't seem to ever repeat. I'm using deCONZ.  nativeHomeKitSensors  is on true, tried changing to false and it didn't seem to make a difference.


Add event monitor class for OpenStack

This class is defined in every Provider and is missing for OpenStack. That can lead to exceptional behaviour.
It is most probably a bug cause many places rely on that class being there, unless somebody
removed it for a reason. We need to dig up in the code history

@blomquisg @jrafanie moved the possible bug here from #2499 , we can discuss what is the desired state and search in history

@jrafanie CI needs to be restarted

Restarted @Ladas.  Note, if you close and re-open a PR, travis will restart the whole build automatically, so you don't need to wait for a committer to do it.

@jrafanie I think I don't have the rights to change the state of a PR, at least I don't see the option anywhere.

@Ladas you should be able to close and then re-open your own PR.

@jrafanie ah, there is a button 'close pull request' at the bottom, was it always there ? :-)


Spring Data JPA and Byte Buddy

Hi, I'm trying to build one of my projects that using Spring Data JPA and need to include byte-buddy to dependencty.

spring-graal-native 0.7.0.BUILD-SNAPSHOT
GraalVM Community Edition 20.1.0 (Java 8/11)

Using hybrid feature + agent mode
Error: Classes that should be initialized at run time got initialized during image building:
 net.bytebuddy.implementation.bind.annotation.Super$Instantiation was unintentionally initialized at build time. net.bytebuddy.implementation.bind.annotation.Super$Instantiation has been initialized without the native-image initialization instrumentation and the stack trace can't be tracked. Try marking this class for build-time initialization with --initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Super$Instantiation
net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1 was unintentionally initialized at build time. net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1 has been initialized without the native-image initialization instrumentation and the stack trace can't be tracked. Try marking this class for build-time initialization with --initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1

com.oracle.svm.core.util.UserError$UserException: Classes that should be initialized at run time got initialized during image building:
 net.bytebuddy.implementation.bind.annotation.Super$Instantiation was unintentionally initialized at build time. net.bytebuddy.implementation.bind.annotation.Super$Instantiation has been initialized without the native-image initialization instrumentation and the stack trace can't be tracked. Try marking this class for build-time initialization with --initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Super$Instantiation
net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1 was unintentionally initialized at build time. net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1 has been initialized without the native-image initialization instrumentation and the stack trace can't be tracked. Try marking this class for build-time initialization with --initialize-at-build-time=net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1

	at com.oracle.svm.core.util.UserError.abort(UserError.java:68)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.checkDelayedInitialization(ConfigurableClassInitialization.java:518)
	at com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.duringAnalysis(ClassInitializationFeature.java:187)
	at com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$8(NativeImageGenerator.java:720)
	at com.oracle.svm.hosted.FeatureHandler.forEachFeature(FeatureHandler.java:70)
	at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:720)
	at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:538)
	at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:451)
	at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Error: Image build request failed with exit status 1
com.oracle.svm.driver.NativeImage$NativeImageError: Image build request failed with exit status 1
	at com.oracle.svm.driver.NativeImage.showError(NativeImage.java:1541)
	at com.oracle.svm.driver.NativeImage.build(NativeImage.java:1299)
	at com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1260)
	at com.oracle.svm.driver.NativeImage.main(NativeImage.java:1219)
	at com.oracle.svm.driver.NativeImage$JDK9Plus.main(NativeImage.java:1722)
FAILURE: an error occurred when compiling the native-image.

have tried adding a few of these combinations to --initialize-at-build-time

net.bytebuddy.implementation.bind.annotation.Super.Instantiation
net.bytebuddy.implementation.bind.annotation.Super$Instantiation
net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1
net.bytebuddy.implementation.bind.annotation.Super$Instantiation, net.bytebuddy.implementation.bind.annotation.Super$Instantiation$1

but still error.

try to add the entire package for initialisation like so:
--initialize-at-build-time=net.bytebuddy.implementation.bind.annotation

Thanks @khengsdijk, helped me a lot figuring out how inner class done in native-image option.


Removes the deprecated call to NanSymbol

When building node-spellchecker as a native module it gives a deprecation warning on the use of NanSymbol that has been replaced with NanNew<String> since version 1.1.0 of nan

Great, thanks


Problem with manually updating matrix in a custom layer.

System information:

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution: MacOs 10.14.6
TensorFlow installed from: pip
TensorFlow version: 2.0

Describe the current behavior and expected behavior
I am really new to Tensorflow, so maybe this is quite obvious, but what I am trying to do is to basically create my own layer, where I introduce an additional matrix that I update manually each call. I started off with a copy of a SimpleRNNCell from recurrent.py and my idea was to simply extend this SimpleRNN (Layer) into what I need. This extensions would not be a lot of effort, since it would only include
a) Initialising a matrix when the cell is created (with zeros),
b) Manually updating this matrix in the call() function. (this is done by simple building the output product of the recurrent layers activation and adding it to the to the matrix in question),
c) Adding it onto the normal reservoir activity.
My Problem is that when trying to manually updating this matrix, I get presented the following error:
TypeError: An op outside of the function building code is being passed
a "Graph" tensor. It is possible to have Graph tensors
leak out of the function building context by including a
tf.init_scope in your function building code.
For example, the following function will fail:
  @tf.function
  def has_init_scope():
    my_constant = tf.constant(1.)
    with tf.init_scope():
      added = my_constant * 2
The graph tensor has name: add_1

Code to reproduce the issue

Initialisation of the matrix:

self.A = K.variable(value=tf.zeros((self.units, self.units)),
        dtype='float32', name='fast_weights')

Manual update

self.A = self.l * self.A + self.e * K.dot(K.transpose(h), h)

, where h is the activation of the hidden, recurrent layer. This is where the error is thrown.

Addition to update step:

h = self.activation(K.bias_add(K.dot(inputs, self.kernel), self.bias) + K.dot(h, self.recurrent_kernel)) + K.dot(h, self.A)

where K.dot(h, self.A) is what I added.
Thank you in advance.

@Devrim-Celik
Can you please help us with the minimal standalone code to reproduce the issue in our environment.It is easy for localizing the issue faster. Thanks!

Yes, of course:
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.python.keras.layers.recurrent import RNN, DropoutRNNCellMixin
from tensorflow.python.framework import ops
from tensorflow.python.framework import tensor_shape
from tensorflow.python.keras import activations
from tensorflow.python.keras import backend as K
from tensorflow.python.keras import constraints
from tensorflow.python.keras import initializers
from tensorflow.python.keras import regularizers
from tensorflow.python.keras.engine.base_layer import Layer
from tensorflow.python.keras.engine.input_spec import InputSpec
from tensorflow.python.keras.utils import tf_utils
from tensorflow.python.ops import array_ops
from tensorflow.python.util import nest
from tensorflow.python.util.tf_export import keras_export

class FastWeightRNNCell(DropoutRNNCellMixin, Layer):
  """Cell class for FastWeightRNN.
  Arguments:
    units: Positive integer, dimensionality of the output space.
    activation: Activation function to use.
      Default: hyperbolic tangent (`tanh`).
      If you pass `None`, no activation is applied
      (ie. "linear" activation: `a(x) = x`).
    use_bias: Boolean, whether the layer uses a bias vector.
    kernel_initializer: Initializer for the `kernel` weights matrix,
      used for the linear transformation of the inputs.
    recurrent_initializer: Initializer for the `recurrent_kernel`
      weights matrix, used for the linear transformation of the recurrent state.
    bias_initializer: Initializer for the bias vector.
    kernel_regularizer: Regularizer function applied to
      the `kernel` weights matrix.
    recurrent_regularizer: Regularizer function applied to
      the `recurrent_kernel` weights matrix.
    bias_regularizer: Regularizer function applied to the bias vector.
    kernel_constraint: Constraint function applied to
      the `kernel` weights matrix.
    recurrent_constraint: Constraint function applied to
      the `recurrent_kernel` weights matrix.
    bias_constraint: Constraint function applied to the bias vector.

  Call arguments:
    inputs: A 2D tensor.
    states: List of state tensors corresponding to the previous timestep.
    training: Python boolean indicating whether the layer should behave in
      training mode or in inference mode. Only relevant when `dropout` or
      `recurrent_dropout` is used.
  """

  def __init__(self,
               units,
               learning_rate,
               decay_rate,
               S,
               fast_weight=True,
               layer_norm=True,
               activation='tanh',
               use_bias=True,
               kernel_initializer='glorot_uniform',
               recurrent_initializer='orthogonal',
               bias_initializer='zeros',
               kernel_regularizer=None,
               recurrent_regularizer=None,
               bias_regularizer=None,
               kernel_constraint=None,
               recurrent_constraint=None,
               bias_constraint=None,
               **kwargs):
    super(FastWeightRNNCell, self).__init__(**kwargs)
    self.units = units

    self.l = decay_rate # for lambda
    self.e = learning_rate # for eta
    self.S = S

    self.layer_norm = layer_norm
    self.fast_weight = fast_weight

    self.activation = activations.get(activation)
    self.use_bias = use_bias

    self.kernel_initializer = initializers.get(kernel_initializer)
    self.recurrent_initializer = initializers.get(recurrent_initializer)
    self.bias_initializer = initializers.get(bias_initializer)

    self.kernel_regularizer = regularizers.get(kernel_regularizer)
    self.recurrent_regularizer = regularizers.get(recurrent_regularizer)
    self.bias_regularizer = regularizers.get(bias_regularizer)

    self.kernel_constraint = constraints.get(kernel_constraint)
    self.recurrent_constraint = constraints.get(recurrent_constraint)
    self.bias_constraint = constraints.get(bias_constraint)

    self.state_size = self.units
    self.output_size = self.units

    print("Learning rate {} and decay {}".format(self.e, self.l))

  @tf_utils.shape_type_conversion
  def build(self, input_shape):
    self.kernel = self.add_weight(
        shape=(input_shape[-1], self.units),
        name='kernel',
        initializer=self.kernel_initializer,
        regularizer=self.kernel_regularizer,
        constraint=self.kernel_constraint)
    self.recurrent_kernel = self.add_weight(
        shape=(self.units, self.units),
        name='recurrent_kernel',
        initializer=self.recurrent_initializer,
        regularizer=self.recurrent_regularizer,
        constraint=self.recurrent_constraint)
    self.bias = self.add_weight(
          shape=(self.units,),
          name='bias',
          initializer=self.bias_initializer,
          regularizer=self.bias_regularizer,
          constraint=self.bias_constraint)
    self.A = K.constant(0,
          shape=(self.units, self.units),
          name='fast_weight_matrix')
    self.built = True

  def call(self, inputs, states, training=None):
    prev_output = states[0]

    h = self.activation(K.bias_add(K.dot(inputs, self.kernel), self.bias) \
        + K.dot(prev_output, self.recurrent_kernel))

    if self.layer_norm:

        if self.fast_weight:
            # TODO PROBLEM
            self.A = self.l * self.A + self.e * K.dot(K.transpose(h), h)

            # S times
            for _ in range(self.S):
                h = self.activation(K.bias_add(K.dot(inputs, self.kernel), self.bias) \
                    + K.dot(h, self.recurrent_kernel)) + K.dot(h, self.A)

    return h, [h]

  def get_initial_state(self, inputs=None, batch_size=None, dtype=None):
    return _generate_zero_filled_state_for_cell(self, inputs, batch_size, dtype)

########################

class FastWeightRNN(RNN):
  """Fully-connected RNN where the output is to be fed back to input.
  Arguments:
    units: Positive integer, dimensionality of the output space.
    activation: Activation function to use.
      Default: hyperbolic tangent (`tanh`).
      If you pass None, no activation is applied
      (ie. "linear" activation: `a(x) = x`).
    use_bias: Boolean, whether the layer uses a bias vector.
    kernel_initializer: Initializer for the `kernel` weights matrix,
      used for the linear transformation of the inputs.
    recurrent_initializer: Initializer for the `recurrent_kernel`
      weights matrix,
      used for the linear transformation of the recurrent state.
    bias_initializer: Initializer for the bias vector.
    kernel_regularizer: Regularizer function applied to
      the `kernel` weights matrix.
    recurrent_regularizer: Regularizer function applied to
      the `recurrent_kernel` weights matrix.
    bias_regularizer: Regularizer function applied to the bias vector.
    kernel_constraint: Constraint function applied to
      the `kernel` weights matrix.
    recurrent_constraint: Constraint function applied to
      the `recurrent_kernel` weights matrix.
    bias_constraint: Constraint function applied to the bias vector.
    return_sequences: Boolean. Whether to return the last output
      in the output sequence, or the full sequence.
    return_state: Boolean. Whether to return the last state
      in addition to the output.
    go_backwards: Boolean (default False).
      If True, process the input sequence backwards and return the
      reversed sequence.
    stateful: Boolean (default False). If True, the last state
      for each sample at index i in a batch will be used as initial
      state for the sample of index i in the following batch.
    unroll: Boolean (default False).
      If True, the network will be unrolled,
      else a symbolic loop will be used.
      Unrolling can speed-up a RNN,
      although it tends to be more memory-intensive.
      Unrolling is only suitable for short sequences.
  Call arguments:
    inputs: A 3D tensor.
    mask: Binary tensor of shape `(samples, timesteps)` indicating whether
      a given timestep should be masked.
    training: Python boolean indicating whether the layer should behave in
      training mode or in inference mode. This argument is passed to the cell
      when calling it. This is only relevant if `dropout` or
      `recurrent_dropout` is used.
    initial_state: List of initial state tensors to be passed to the first
      call of the cell.
  """

  def __init__(self,
               units,
               learning_rate,
               decay_rate,
               S,
               fast_weight=True,
               layer_norm=True,
               activation='tanh',
               use_bias=True,
               kernel_initializer='glorot_uniform',
               recurrent_initializer='orthogonal',
               bias_initializer='zeros',
               kernel_regularizer=None,
               recurrent_regularizer=None,
               bias_regularizer=None,
               kernel_constraint=None,
               recurrent_constraint=None,
               bias_constraint=None,
               return_sequences=False,
               return_state=False,
               go_backwards=False,
               stateful=False,
               unroll=False,
               **kwargs):

    cell = FastWeightRNNCell(
        units,
        learning_rate,
        decay_rate,
        S,
        fast_weight=True,
        layer_norm=True,
        activation=activation,
        use_bias=use_bias,
        kernel_initializer=kernel_initializer,
        recurrent_initializer=recurrent_initializer,
        bias_initializer=bias_initializer,
        kernel_regularizer=kernel_regularizer,
        recurrent_regularizer=recurrent_regularizer,
        bias_regularizer=bias_regularizer,
        kernel_constraint=kernel_constraint,
        recurrent_constraint=recurrent_constraint,
        bias_constraint=bias_constraint,
        dtype=kwargs.get('dtype'))
    super(FastWeightRNN, self).__init__(
        cell,
        return_sequences=return_sequences,
        return_state=return_state,
        go_backwards=go_backwards,
        stateful=stateful,
        unroll=unroll,
        **kwargs)

    self.input_spec = [InputSpec(ndim=3)]

  def call(self, inputs, initial_state=None):
    return super(FastWeightRNN, self).call(
        inputs, initial_state=initial_state)

def _generate_zero_filled_state_for_cell(cell, inputs, batch_size, dtype):
  if inputs is not None:
    batch_size = array_ops.shape(inputs)[0]
    dtype = inputs.dtype
  return _generate_zero_filled_state(batch_size, cell.state_size, dtype)

def _generate_zero_filled_state(batch_size_tensor, state_size, dtype):
  """Generate a zero filled tensor with shape [batch_size, state_size]."""
  if batch_size_tensor is None or dtype is None:
    raise ValueError(
        'batch_size and dtype cannot be None while constructing initial state: '
        'batch_size={}, dtype={}'.format(batch_size_tensor, dtype))

  def create_zeros(unnested_state_size):
    flat_dims = tensor_shape.as_shape(unnested_state_size).as_list()
    init_state_size = [batch_size_tensor] + flat_dims
    return array_ops.zeros(init_state_size, dtype=dtype)

  if nest.is_sequence(state_size):
    return nest.map_structure(create_zeros, state_size)
  else:
    return create_zeros(state_size)

if __name__=="__main__":
    (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data(path='mnist.npz')

    eta = 0.5 # learning rate for A
    lamb = 0.95 # decay rate
    S = 1

    # transform int labels to one hot vectors
    y_train = tf.keras.utils.to_categorical(y_train)
    y_test = tf.keras.utils.to_categorical(y_test)

    # normalize input TODO why?
    x_train = x_train.astype('float32') / 255
    x_test = x_test.astype('float32') / 255

    # define model
    model = tf.keras.Sequential([

    FastWeightRNN(units=50, learning_rate = eta, S = S, decay_rate = lamb,
        layer_norm = True, input_shape=(28, 28)),
    layers.Dense(units=10, activation='softmax')])

    # compile model
    model.compile(optimizer=tf.keras.optimizers.Adam(0.01),
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])

    # fit model
    model.fit(x_train, y_train, epochs=1, batch_size=32)

    # evaluate model
    model.evaluate(x_test, y_test, verbose=0)

I solved the issue by initialising my matrix as a tf.Variable:
    self.A = tf.Variable(np.zeros((self.units, self.units)),
          shape=(self.units, self.units),
          name='fast_weight_matrix',
          dtype="float32",
          trainable=False)


Missing Assets A1953185209141994500 & A1953185209141994501

These are missing from stampchain.io and appear to be valid stamps.
Raw Data from CP API for reference
{"result": [{"asset": "A1953185209141994500", "asset_longname": null, "owner": "1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev", "divisible": false, "locked": true, "supply": 100, "description": "STAMP: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", "issuer": "1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev"}], "id": 0, "jsonrpc": "2.0"}

A1953185209141994501

{"result": [{"asset": "A1953185209141994501", "asset_longname": null, "owner": "1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev", "divisible": false, "locked": true, "supply": 100, "description": "STAMP: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", "issuer": "1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev"}], "id": 0, "jsonrpc": "2.0"

reference trx:
curl -X POST http://<IP_ADDRESS>:4000/api/ --user rpc:$PASSWORD -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{ "jsonrpc": "2.0", "id": 0, "method": "get_asset_info", "params": { "asset": "PEPEPARTY" } }'

A1953185209141994500
68d463c4d19f0fa8c58bcc4f1bf267650929fc678e8869280b316748ecb19afd

compare CP (above) to xchain data. was not able to
https://xchain.io/api/tx/68d463c4d19f0fa8c58bcc4f1bf267650929fc678e8869280b316748ecb19afd
{"asset":"A1953185209141994500","asset_longname":"","block_index":783260,"description":"STAMP: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","divisible":false,"fee":"0.00000000","issuer":"1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev","locked":true,"quantity":"100","reset":false,"source":"1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev","status":"valid","timestamp":1680225130,"transfer":false,"tx_hash":"68d463c4d19f0fa8c58bcc4f1bf267650929fc678e8869280b316748ecb19afd","tx_index":2275909,"tx_type":"Issuance"}
https://xchain.io/api/asset/A1953185209141994500
{"asset":"A1953185209141994500","asset_id":1953185209141994500,"asset_longname":"","description":"STAMP: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","divisible":false,"estimated_value":{"btc":"0.00000000","usd":"0.00000000","xcp":"0.00000000"},"issuer":"1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev","locked":true,"market_info":{"btc":{"floor":"0.00000000","price":"0.00000000"},"xcp":{"floor":"0.00000000","price":"0.00000000"}},"owner":"1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev","supply":100,"type":"numeric"}

The 500 stamp is here: https://stampchain.io/stamps/68d463c4d19f0fa8c58bcc4f1bf267650929fc678e8869280b316748ecb19afd.png

invalid base64 returned on 4501:
{'asset': 'A1953185209141994501', 'asset_longname': None, 'block_index': 783260, 'call_date': 0, 'call_price': 0.0, 'callable': False, 'description': 'STAMP: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', 'divisible': False, 'fee_paid': 0, 'issuer': '1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev', 'locked': True, 'quantity': 100, 'reset': False, 'source': '1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev', 'status': 'valid', 'transfer': False, 'tx_hash': 'f46a59c3c49b14e2bae3a64ff1a5e5c05ae8dbaf547237afe305f2f359e6f807', 'tx_index': 2275910} base64 False

A1953185209141994501 - Invalid base64 image string: Incorrect padding

the base64 or 501 was not properly encoding:
When decoding a base64 string in Python, you may encounter an "Incorrect padding" error if the input string is not properly padded. Base64 encoding requires that the input be padded with '=' characters to make its length a multiple of 4. You can fix the padding issue by adding the required number of '=' characters to the end of the input string before decoding it.
Now we are fixing up the padding, and stripping whitespaces from the string to include "stamp: BaSe64xxx" formats. This caused a renumbering but was prudent to include these minor decoding peculiarities.


Option to enforce authority check (mine=True)

Purpose
Currently, the API has no restriction to the data / endpoints available to users. All authenticated users have unlimited read and write access, through all endpoints. The purpose of this PR is to add an option to restrict data reading to "own" statements, thus enabling multi tenancy.
Proposal
It is proposed to add an environment variable named RUNSERVER_RESTRICT_BY_AUTHORITY (default False) which, if set to True , will enforce the use of the query parameter mine=True when fetching statements. This in effect forces all users to query only their own statements.
NB: this option relies on authority queries being properly implemented for each backend.
NB 2: in a future implementation, "scopes" and/or "roles" may be added. For "admin" type users or users with "all/read" scopes, the mandatory use of mine should be removed.

[x] enforce mine=True when RUNSERVER_RESTRICT_BY_AUTHORITY==True (return 400 if mine=True is not used)
[x] add test
[ ] check / add tests to all backends to ensure that authority querieis are properly implemented
[ ] if authority is left to a user to create. A user may choose the same authority as another and thus see all their statements. Should we leave this option open (the admin has responsibility to check), or disable duplicate authorities ?

if authority is left to a user to create. A user may choose the same authority as another and thus see all their statements. Should we leave this option open (the admin has responsibility to check), or disable duplicate authorities ?


Bug located in generic.constants.py: BasisOrder() is inconsistent with InsertSetup in the native API.

Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

Description of the bug
Should be (-1, 0, 1, 2, 3) instead of range(0,5)
Steps To Reproduce
I am not aware of any manifestation in existing code, however, if the BasisOrder were used with Analysis.create_setup() the wrong basis order would be created in the resulting solution setup.
Which Operating System are you using?
Windows
Which Python version are you using?
3.10
Installed packages
default packages in requirements.txt

requirements

cff1==1.15.0; python_version > '3.6' and sys_platform == 'linux'
https://github.com/tomerfiliba-org/rpyc
License: MIT
dotnetcore2==3.1.23; python_version > '3.6' and sys_platform == 'linux'
https://github.com/dotnet/core
License: MIT
pythonnet==3.0.1; python_version > '3.6'
https://github.com/pythonnet/pythonnet
License: MIT
pywin32>=301; python_version > '3.6' and sys_platform == 'windows'
https://github.com/mhammond/pywin32
License: PSF
rpyc==5.3.0; python_version > '3.6'
https://github.com/tomerfiliba-org/rpyc
License: MIT

optional

matplotlib==3.6.3; python_version > '3.6'
License: https://github.com/matplotlib/matplotlib/blob/master/LICENSE/LICENSE
License: PSF
numpy==1.24.1; python_version > '3.7'
License: BSD-3-Clause License
pandas==1.5.2; python_version > '3.7'
pandas==1.3.5; python_version == '3.7'
License: BSD-3-Clause License
psutil==5.9.4; python_version > '3.6'
License: BSD-3-Clause License
pyvista==0.37.0; python_version > '3.6'
License: MIT

Pushed in fix/issue_2356.


Updating an "enum" field through lambda does not work.

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v12.22.0
Amplify CLI Version
8.0.2
What operating system are you using?
Mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
No manual changes mad
Amplify Categories
api
Amplify Commands
Not applicable
Describe the bug
I have my whole application setup and working 100%.
I have a schema (which I will describe in its section) where I have a few fields, as well as a couple of enum fields.
I'm using React + typescript so, in the front-end, everything works fine. I am able to call graphql and create and update without any dramas.
Frontend example (uses typescript)
    const { data } = await API.graphql(
      graphqlOperation(createUser, { input: { name: 'Rafael', email<EMAIL_ADDRESS>membership: Membership.GOLD  } })
    ) as CreateUserResult;

The issue is, that now I need to make updates to the same model in the backend through a lambda. So I create the lambda function, added the graqphl auth, and the methods to make the graphql call in the backend.
So far so good, I made a couple of tests, and I am able to update different models using mutations. HOWEVER, when a mutation has ENUM properties, I cannot make it work.
In the backend I do not use typescript, so I can't use enums, since enums is really a translation of strings, I tried to send strings, and it wouldn't throw any error, it would just do NOT update.
   await graphQLRun(createUser, { input: { name: 'Rafael', email<EMAIL_ADDRESS>membership: 'GOLD' } });

PS: graphQLRun is the method I call for all my lambdas to make calls to graphql.
I have no idea what else to try.  This sounds to me like a bug since the value should really be translated to a string anyway, we should be able to just send a string to the enum property and this should work.
Expected behavior
I should be able to just use a string as the value and it should've worked.
Reproduction steps

Create the schema below
Create a new function
Create methods to send graphql requests
In the lambda, send a mutation request that contains an enum value but uses a string
Nada! Does not update.

GraphQL schema(s)

# Put schemas below this line
type User @model(subscriptions: null)
  @auth(
    rules: [
      { allow: owner, ownerField: "username" }
      { allow: private, operations: [read, update], provider: iam },
      { allow: groups, groups: ["Admin"] }
    ]
  )
{
  id: ID!
  email: String!
  name: String!
  membership: Membership!
}

enum Membership {
  ADMIN
  BRONZE
 SILVER
GOLD
}

Log output

# Put your logs below this line

Additional information
No response

Hey @rafaelfaria just wanted to follow up here and see if you were still experiencing this?

@josefaidt It seems to be working now. We can close the thread.

I am having the same exact problem with the Membership use case:
I do have a file to "abstract" my requests like so:
const https = require('https')
const AWS = require('aws-sdk')
const urlParse = require('url').URL
const appsyncUrl = process.env.API_SOL_GRAPHQLAPIENDPOINTOUTPUT
const region = process.env.REGION
const endpoint = new urlParse(appsyncUrl).hostname.toString()

exports.requestAppSync = async ({ variables, query, operationName }) => {
  console.log(`@appSync ${operationName} with`, {
    variables,
    query,
    operationName,
  })
  const req = new AWS.HttpRequest(appsyncUrl, region)

  req.method = 'POST'
  req.path = '/graphql'
  req.headers.host = endpoint
  req.headers['Content-Type'] = 'application/json'
  req.body = JSON.stringify({
    query,
    operationName,
    variables,
  })

  const signer = new AWS.Signers.V4(req, 'appsync', true)
  signer.addAuthorization(AWS.config.credentials, AWS.util.date.getDate())

  const response = await new Promise((resolve, reject) => {
    const httpRequest = https.request({ ...req, host: endpoint }, (result) => {
      let data = ''

      result.on('data', (chunk) => {
        data += chunk
      })

      result.on('end', () => {
        resolve(JSON.parse(data.toString()))
      })
    })

    httpRequest.write(req.body)
    httpRequest.end()
  })

  console.log(`@appSync ${operationName} resolved`, response)

  if (response.errors && response.errors.length > 0) {
    throw new Error(`@appSync ${operationName}: ${response.errors[0].message}`)
  }

  // operation name with first character to lowercase
  const gqlResultName = `${operationName[0].toLowerCase()}${operationName.slice(1)}`
  console.log(`@appSync ${operationName} return`, response.data[gqlResultName])
  return response.data[gqlResultName]
}

const crypto = require('@aws-crypto/sha256-js')
const { defaultProvider } = require('@aws-sdk/credential-provider-node')
const { SignatureV4 } = require('@aws-sdk/signature-v4')
const { HttpRequest } = require('@aws-sdk/protocol-http')
const fetch = require('node-fetch')
const { Request } = require('node-fetch')
const { Sha256 } = crypto

exports.requestAppSyncV2 = async ({ variables, query }) => {
  console.log(`@appSync V2 with`, {
    variables,
    query,
  })

  const endpoint = new URL(appsyncUrl)
  const signer = new SignatureV4({
    credentials: defaultProvider(),
    region,
    service: 'appsync',
    sha256: Sha256,
  })

  const requestToBeSigned = new HttpRequest({
    method: 'POST',
    headers: {
      host: endpoint.host,
    },
    hostname: endpoint.host,
    body: JSON.stringify({
      query,
      variables,
    }),
    path: endpoint.pathname,
  })

  const signed = await signer.sign(requestToBeSigned)
  const request = new Request(endpoint, signed)

  let body
  let response

  response = await fetch(request)
  body = await response.json()

  console.log(`@appSync V2 resolved`, response, body)

  if (body.errors && body.errors.length > 0) {
    throw new Error(`@appSync V2: ${body.errors[0].message}`)
  }

  console.log(`@appSync V2 return`, body.data)

  return body.data
}

And as I am working with Stripe subscriptions, membership receives a stripe subscription Id in a web-hook event and status update in another web-hook event. Like so: customer.subscription.created, customer.subscription.updated for subscription ID update and then payment_intent.succeeded for the status update.
    case 'customer.subscription.created':
    case 'customer.subscription.updated':
      const stripeSubscriptionId = event.data.object.id
      const trackingId = `subscription-${event.data.object.customer}`
      // THIS WORKS!!
      await updateMembershipByTrackingId(trackingId, {
        stripeSubscriptionID: stripeSubscriptionId,
      })
      break

    case 'payment_intent.succeeded':
    try {
        let order
        const trackingId = `subscription-${event.data.object.customer}`
        ...

        if (product.type === 'MEMBERSHIP') {
          // THIS GETS EXECUTED BUT IT DOES NOT WORK
          await updateMembershipByTrackingId(trackingId, {
            status: 'ACTIVE',
          })
        }

As you can see I am using the same method in two different times and the first works but the later does not.
const updateMembershipByTrackingId = async (trackingId, membershipData) => {
  const membership = (
    await findByAttribute({
      attrName: 'trackingID',
      attrValue: trackingId,
      table: 'Membership',
    })
  )[0]

  const response = await updateMembership({
    id: membership.id,
    ...membershipData,
  })

  return response
}

@rafaelfaria do you remember what you have done to arrive to a working state here?


Update to 'Draft Release 0.1'

Per outcome of 11/17/21 PGB session, the standards is now in 'Draft Release' state.

No longer relevant


js reference irrelevant file across open editors

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

VS Code Version: 1.79.2
OS Version: win10

Steps to Reproduce:

references is correct when only one file is open, but when the sercond one is open, things goes wrong.
is there a way to prevent this behavior?

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.79.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

remains

What's the deal?

Typescript and therefore VS Code treats files without imports/exports as in global scope.
And by default all open files would be added to same project, unless you provide jsconfig.json.
I'm more wondered why there is no error for duplicate const declaration.

Thank you,  jsconfig.json solved my problem.
jsconfig.json
{
    "compilerOptions": {
        "moduleDetection": "force"
    }
}

js references is correct now.
And I find out why there was no error, it's because checkJs is false by default, after setting it to true, the error occurred.
I actually noticed jsconfig.json when reading this vscode doc, but moduleDetection wasn't mentioned there. And an empty jsconfig.json did the opposite of what I want, it make all js in project share global scope, even without open them :upside_down_face:
I think this defult behavior is confusing, and caused some bug when I perform rename in my project.


Adding Bario Entertainment System to the /ecosystem

What changed? Why?
Bario Entertainment System added to the Explore/Apps directory
Notes to reviewers
How has it been tested?

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1

@panikadak
Thanks for this PR! Super cool. Can you please clarify how this is onchain on Base? I played a game but it seemed to be offchain.

hello @wbnns, bario entertainment system's dApp was recently launched. https://app.baes.so
i would be appreciated if you'd review again.

@wbnns this PR works, or I need to create new one? (Our onchain app is on)

Closing this since it was a duplicate of a newer PR 🙏

This was the main, and the correct one. This is the one that you can merge
actually.
I just re-did, you can see our dApp also here: app.baes.so
On Wed, Dec 18, 2024 at 22:39 wbnns @.***> wrote:

Closing this since it was a duplicate of a newer PR 🙏
—
Reply to this email directly, view it on GitHub
https://github.com/base-org/web/pull/1097#issuecomment-2552126672, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AASBCTOK3MP3VVDEHXJTXD32GHFODAVCNFSM6AAAAABQGZHVY2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJSGEZDMNRXGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

If it is closed, please close all of them. I will recreate that PR.
🥹
On Wed, Dec 18, 2024 at 22:40 Çağatay Öztürk @.***> wrote:

This was the main, and the correct one. This is the one that you can merge
actually.
I just re-did, you can see our dApp also here: app.baes.so
On Wed, Dec 18, 2024 at 22:39 wbnns @.***> wrote:

Closing this since it was a duplicate of a newer PR 🙏
—
Reply to this email directly, view it on GitHub
https://github.com/base-org/web/pull/1097#issuecomment-2552126672, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AASBCTOK3MP3VVDEHXJTXD32GHFODAVCNFSM6AAAAABQGZHVY2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJSGEZDMNRXGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


Problems with old iOS devices (again)

Context
It isn't possible anymore to connect with old iOS devices (better old iOS versions). The ones, where TLS_LEVEL=intermediate have to be set already.
Error from the log is:
dovecot: imap-login: Disconnected (disconnected before auth was ready, waited 0 secs): user=<>, rip=<IP_ADDRESS>, lip=<IP_ADDRESS>, TLS handshaking: SSL_accept() failed: error:1417D102:SSL routines:tls_process_client_hello:unsupported protocol, session=<xxx>
It was possible before the last fixes/version bump for the dovecot buffer overflow. Perhaps it has something to do with this fix, since going back form tvial/docker-mailserver:latest to tvial/docker-mailserver:release-v6.1.0 'fixed' the problem for now. But of course this is actually not what someone wants to do :wink:
Expected Behavior
Connection with iOS devices should work
Actual Behavior
Connection not working with
Your Environment

Mailserver version used: tvial/docker-mailserver:latest
Docker version used: 18.09.7, build 2d0083d
Environment settings relevant to the config:

TLS_LEVEL=intermediate
SSL_TYPE=manual

old iOS devices (better old iOS versions

How old are we talking?
I would guess the repo introduced a new config file forcing a certain minimal tls version.

I think it wants TLS 1.2 by default. We are doing some find & replace with sed in the startup script, it could be that we are hitting the wrong file or that the expression needs to be changed.

@fbartels I know about iOS 9 and also Mail on Mac OS X Sierra seems to have the same problem.
TLS_LEVEL=intermediate was working (on latest) before I made updates because of the dovecot buffer overflow.
@erik-wramner I will look into the startup script, if there were changes in the last weeks. In my opinion, the TLS_LEVELs should be stable (perhaps with different naming schema), so that a working configuration is also stable through updates.

@baxerus the startup script has not changed, but the Dovecot version has. It may be that the change, which had to be done for security reasons, have had the unintended consequence of breaking the fixes applied by the start script. We have not intentionally broken the configuration and will try to fix it.

@erik-wramner Sorry, I didn't meant to accuse you to have broke something intentionally!
I'm in this business myself and I know, that's not how it is and works 👍

#1253

Super cool! Thank you for the fast fix 👍


Update Open CLIP to use parsed Torch device

What changes are proposed in this pull request?
Fixes when a user does not define a device, sometimes the model will be gpu is some but not all places due to config.device not being updated
How is this patch tested? If it is not, please explain why.
Run openclip models on gpu without specifying the gpu. Can check with things like model._using_gpu and checking tensor devices.

Tested and LGTM


Multisignature transactions support

Description of the Change
Introduce multisignature transactions support.
That pr should be merged only after:

[x] merging of #1066
[x] adding type for MstExpired in shared model (#1279)
[x] reworking mst pipeline test with itf and enabling it (#1281)
[x] Runtime parameter for enabling mst support (#1286)
[ ] Add quorum fields for bindings (fix tests as well, if necessary)
[ ] Rework gossip propagation (?)

Possible Drawbacks
The main codebase maybe unstable after merging, as long as that branch is really long-living
Usage Examples or Tests
All tests related to transaction have been updated. So new transaction must contain quorum param, that by default is 1 (or bigger, if transaction should be multisig)

In fact, we have to wait until https://github.com/hyperledger/iroha/pull/1338 will be merged. After pull the develop and fix all tests.

@l4l @muratovv @lebdron we have merged #1338
^^

Please, add missing tasks for bindings and the rest of the current limitations of MST implementation.


Remove packedrow

When I refactored the SplitRowStore to handle partial inserts, I optimized the bulk insert algorithm to efficiently handle inserts where attributes are all fixed length. There is almost no difference between the runtime of SSB/TPCH with/without the packed row store. So, in the interest of keeping simple code, I've removed the now unnecessary splitrowstore.

@hbdeshmukh my new years resolution is to finish this PR. Want to review this with me?

Hi @cramja - Sure, we can close this PR. Looks like Travis is failing right now and the issue is not the OOM error we saw in some of the previous PRs. Once you fix the issues, please let me know. I can take a look.

@hbdeshmukh I fixed the problem, hopefully. Waiting for Travis to come back.
There's several Travis runs which I triggered (git commit --amend; git push --force) while testing. Did travis remove the kill build feature? I seem to remember being able to kill these sorts of things in the past by logging into their site...

Looks good to me.


feat: add more test cases for the project and community maintenance

Hi, guys. I want to contribute to this project. I am familiar with the Golang language and the test framework this project is using.
Is it ok that I add some test cases for the projects? I saw here we use ginkgo/v2 and gomega I am familiar with that style of test-cases development.
By the way, I have many years of open-source community maintenance experience. So, maybe I can help maintain the community, I mean not only contributing code. There are so many things like the works related to CI,  PR, creating labels, and classification for issues.

That sounds fantastic @Aisuko ! happy to have you onboard!
I really would appreciate the help, It has been mostly a solo-work up to now.
Feel free to add tests, that'd be very much wanted as it is an area that needs improvement!

Thank you, It is my pleasure to contribute to the community.


fix conflict from #105

This is PR  created by @jhsrennie and I applied changes in master branch to https://github.com/Microsoft/winfile/pull/105. also added few lines missing from master branch.

Make sense to separate out the basic #defines.  Can you includes KOREAJAPANBEGIN and *END as well?
Thanks also for making the files "DOS format"!

Thanks @mattn.  Any other comments before I commit these changes?


[Failure] TLS mint fails for aws-sdk-java

As reported by @harshavardhana
To get logs, run 'docker cp a3b64de4c733:/mint/log /tmp/mint-logs'
(1/13) Running aws-sdk-go tests ... done in 0 seconds
(2/13) Running aws-sdk-java tests ... FAILED in 2 seconds
{
  "name": "aws-sdk-java",
  "function": "downloadObject(String bucketName, String objectName, SSECustomerKey sseKey)",
  "args": "bucketName: aws-java-sdk-test-3f4t1cs, objectName: testobject, SSECustomerKey: com.amazonaws.services.s3.model.SSECustomerKey@18df8434",
  "duration": 491,
  "status": "FAIL",
  "error": "java.lang.Exception: downloadObject did not throw S3 Access denied Exception but it did throw: We encountered an internal error, please try again. (Service: Ama$on S3; Status Code: 500; Error Code: InternalError; Request ID: 1551C49756A27960; S3 Extended Request ID: 3L137) >>> [io.minio.awssdk.tests.FunctionalTests.downloadObjectEn$ryption_test1(Unknown Source), io.minio.awssdk.tests.FunctionalTests.runQuickTests(Unknown Source), io.minio.awssdk.tests.FunctionalTests.main(Unknown Source)]"
}

MINT_MODE=core
ENABLE_HTTPS=1

closing as duplicate of minio/minio#6431


Generate snapshot after reaching agreement in wen_restart.

After reaching agreement in wen_restart, generate snapshot and exit.

Codecov Report
Attention: Patch coverage is 86.08696% with 32 lines in your changes are missing coverage. Please review.

Project coverage is 82.2%. Comparing base (1cdaa6d) to head (e3690b0).
Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #1109    +/-   ##
========================================
  Coverage    82.2%    82.2%
========================================
  Files         880      880
  Lines      235618   235789   +171
========================================
+ Hits       193729   193870   +141
- Misses      41889    41919    +30

The snapshot logic looks good to me. Thanks for all your work on this!

Thanks for all your help! I feel I know a little more about snapshots now.


[Table]: Allow row actions to use custom components instead of Icon

Currently we set row actions using the following props...
export const RowActionPropTypes = PropTypes.arrayOf(
  PropTypes.shape({
    /** Unique id of the action */
    id: PropTypes.string.isRequired,
    /** icon ultimately gets passed through all the way to <Button>, which has this same copied proptype definition for icon */
    icon: PropTypes.oneOfType([
      PropTypes.shape({
        width: PropTypes.string,
        height: PropTypes.string,
        viewBox: PropTypes.string.isRequired,
        svgData: PropTypes.object.isRequired,
      }),
      PropTypes.string,
      PropTypes.node,
    ]),
    disabled: PropTypes.bool,
    labelText: PropTypes.string,
    /** Action should go into the overflow menu, not be rendered inline in the row */
    isOverflow: PropTypes.bool,
  })
);

While node is a valid option here, under icon, if you use a node that is NOT a carbon icon, then it does not work.   Ultimately it would be good to allow any kind of "node" there, OR mutally exclusive to icon we can set a node instead of an icon.  So something like...
export const RowActionPropTypes = PropTypes.arrayOf(
  PropTypes.shape({
    /** Unique id of the action */
    id: PropTypes.string.isRequired,

   /** node to render as an action */
  node: PropTypes.node,

    /** icon ultimately gets passed through all the way to <Button>, which has this same copied proptype definition for icon */
    icon: PropTypes.oneOfType([
      PropTypes.shape({
        width: PropTypes.string,
        height: PropTypes.string,
        viewBox: PropTypes.string.isRequired,
        svgData: PropTypes.object.isRequired,
      }),
      PropTypes.string,
      PropTypes.node,
    ]),
    disabled: PropTypes.bool,
    labelText: PropTypes.string,
    /** Action should go into the overflow menu, not be rendered inline in the row */
    isOverflow: PropTypes.bool,
  })
);

With this change, you could render custom components into the actions slot of the table.
rowActions: [
   {id: 'action1', node: <MyIcon tooltip="some text" onClick={this.onIconClicked}/>},
   {id: 'action2', node: <MyButton icon="more" tooltip="more text" onClick={this.onMoreIconClicked}/>, isOverflow: true},
   {id: 'action3', icon: 'add' ,isOverflow: true}
]

The general processing would be that

IF node and icon are both present we issue a warning but only render node.
IF node is present we render the node, as is, and do not wire up onclicks etc.  We have to assume that if you are rendering your own custom actions, then you are manageing your own events.
if icon is present we render as it does today.

I'm not opposed to this approach, but I'm curious what the UX use case is behind this change.
Carbon's documentation, as well as the spec from the IoT design team doesn't include anything beyond Buttons (or the OverflowMenu encapsulating Buttons) as the type of node for row actions. We've already deviated slightly with the running/error actions. @amymillett @JordanWSmith15 have you looked further into this? The documentation doesn't appear to have this piece or the running/error actions.
If there's a case out there for nodes other than Buttons for row actions, we should document those specific cases along with this implementation change. That documentation could influence the implementation here.
One thing that comes to mind is this vs. just exporting the component directly. We could consider that when a top level node proptype is added to a component, it could be a signal to us to re-evaluate if we should export the component for direct composition at the product level. If TableBodyRow was exported, you could roll your own RowActionsCell for the specific cases where a Button doesn't suffice.

@stuckless

While node is a valid option here, under icon, if you use a node that is NOT a carbon icon, then it does not work. Ultimately it would be good to allow any kind of "node" there, OR mutally exclusive to icon we can set a node instead of an icon. So something like...

When you tried to use something other than the carbon icon what was failing? I am able to add a custom element to this story

Sadly, I sort of left the table stuff due to the latest noise around potentially moving to an another version of the Table.   When it tried it, i used a custom button / button group (not a carbon button).  And it died terribly with a React type error.  When I troubleshooted it, it appeared to be expecting an Icon.  I can try to update to the latest and test again.
If I can add anything I want, and not have an overflow menu, then likely there is nothing I need to do, which is good.
@tay1orjones  the use case come from having a button bar in the table actions area that automatically collapses is there is not enough space to render.   This comes from a Maximo design.  That's all I know.  The current table design allows you to set a button on the row, or an overflow menu, but I need something that basically does that intelligently.

@davidicus Are you able to render a button and NOT the overflow menu?  And instead of a button, can you render "anything".  If so, then there is nothing I need to do, but you might want to share your story code, since I wasn't able to do that.

@stuckless Yes you can, I will add a sample to our table. I was thinking about doing this anyways but similarly thought of postponing until we discuss our table future. Our stories will need to be built out to better explain some of these features if they are not self explanatory.

@stuckless Instead of PropTypes.node we need to be more specific and use one of
// A React element (ie. <MyComponent />).
  optionalElement: PropTypes.element,

  // A React element type (ie. MyComponent).
  optionalElementType: PropTypes.elementType,

In the case of the table we should be using elementType. I am going to update the table to use this proptype.

Closing this issue as it is supported functionality.

In case someone goes looking it appears you need to set the 'custom content' in the labelText field of the rowActions configuration.  (that is not intuitive and took me having to look deep into the source code for where this was implemented to figure that out :()


Add check if security plugin exists in startup script

Description
There are certain cases when a distribution build is built without security plugin. In that case when opensearch-tar-install.sh script is run to start the OS process it fails at this line as there is no opensearch-security plugin present in the bundle.
To overcome this adding a simple condition to check whether opensearch-security plugin exists in the bundle.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks for fixing this @rishabh6788 Great step for making all RC candidates executable. 🙌


Added ability override breakpoints/container-width

If developer need to remove a breakpoint (for example: to make grid without xl breakpoint), he cannot overide it from another file, if we add !default in variables file everyting will be ok!
Next code will get xl from _variables.scss
(
sm: 540px,
md: 720px,
lg: 960px,
)

This isn't the right fix for the problem reported in #27927. Thanks though!


MS-Celeb-1M daset

Can you share MS-Celeb-1M dataset?
I cant find in the net

https://github.com/deepinsight/insightface/wiki/Dataset-Zoo

Thanks.
By the way what is the format of the faces_umd.zip file ?
how can i extract images ?


[FEATURE]  How to use it with an EditorWindow?

Feature destription
Use it with an EditorWindow?

Hi.
Since SubclassSelector is a feature using CustomPropertyDrawer, it can be drawn using the PropertyField method of EditorGUI or EditorGUILayout, just like standard property drawing.
When drawing in the EditorWindow, you can create a SerializedObject from the target Unity object, find the target property with FindProperty, and draw it with PropertyField.
https://docs.unity3d.com/ScriptReference/SerializedObject.html

Hi!
Seems like when using PropertyField in a custom editor, the property doesn't get updated properly in the inspector until you close and re-open the inspector.
MVP:
public class MyObject : ScriptableObject
{
    public ICommand command;
}

[CustomEditor(typeof(MyObject))]
public class MyCustomEditor : Editor
{
    public override void OnInspectorGUI()
    {
        var property = serializedObject.FindProperty("command");
        EditorGUILayout.PropertyField(property);
        serializedObject.ApplyModifiedProperties();
    }
}

Example:


Bug 2057495: Re-create StorageClass to change immutable parameters

Some StorageClass fields are immutable after creation, therefore we need to delete and re-create the StorageClass if an operator needs to change these fields.
cc @openshift/storage
This will help with Alibaba CSI driver, where we want to add volumeSizeAutoAvailable: true to the default storage class.

/cherry-pick release-4.10


feat: introduce way to select factory of path representation and LocalSensor in the incarnation

Close this PR because of #250


Target is es2015 but code generated in es5

TypeScript Version:  4.1.2
Config:
{
    "compilerOptions": {
      "target": "ES2015",
      "module": "es2015",
      "strict": true,
      "esModuleInterop": true,
      "skipLibCheck": true,
      "forceConsistentCasingInFileNames": true
    }
}

Search Terms: target es2015
Code
// @ts-ignore there are no type definitions
import z from 'z';
const { matches } = z;
const person = { name: "Maria" };
matches(person)(
  (x = { name: "John" }) => console.log("John you are not welcome!"),
  (x) => console.log(`Hey ${x.name}, you are welcome!`)
);

Expected behavior:
I expect it to be transpiled to (because target is es2015):
import z from 'z';
const { matches } = z;
const person = { name: "Maria" };
matches(person)(
  (x = { name: "John" }) => console.log("John you are not welcome!"),
  (x) => console.log(`Hey ${x.name}, you are welcome!`)
);

Actual behavior:
It is transpiled to:
"use strict";
exports.__esModule = true;
// @ts-ignore there are no type definitions
var z_1 = require("z");
var matches = z_1["default"].matches;
var person = { name: "Maria" };
matches(person)(function (x) {
    if (x === void 0) { x = { name: "John" }; }
    return console.log("John you are not welcome!");
}, function (x) { return console.log("Hey " + x.name + ", you are welcome!"); });

Playground Link: Can't reproduce in Playground
Related Issues: No

I have no idea, why but tsconfig is ignored. Using flag actually works yarn tsc --target ES6 index.ts

When you pass a file name, the tsconfig is intentionally ignored (passing files is how you tell tsc to not look at the tsconfig)


Improve using one channel only

concurrent.Execute is simplified to just use 1 channel for input and 1 channel for output for all goroutines.
Also adding usage example in README.

#1


Set the serviceCluster namespace based on env var, to also support sp…

…ecifying namespace on cli after kube-inject
If the user deploys the app by specifying the namespace on the command line,
kubectl apply -n test -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)

then currently this is after the sidecar injection config has been added, so the serviceCluster parameter has the wrong value (e.g. associated with default namespace).
By using the ${POD_NAMESPACE} env var it resolves the serviceCluster name (and namespace) at a later stage, taking into account namespace specified on the command line.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: objectiser
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sdake
If they are not already assigned, you can assign the PR to them by writing /assign @sdake in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@objectiser: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
86c88add8623914ff236be6b7563bbcc57f186b2
link
/test istio-unit-tests

prow/istio-pilot-multicluster-e2e.sh
86c88add8623914ff236be6b7563bbcc57f186b2
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: objectiser
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: greghanson
If they are not already assigned, you can assign the PR to them by writing /assign @greghanson in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS
pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@objectiser: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
86c88add8623914ff236be6b7563bbcc57f186b2
link
/test istio-pilot-multicluster-e2e

prow/istio-unit-tests.sh
0a353f13c17350949cebea8371e46e167bbde410
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Tested against bookinfo example, in a test namespace, both with manual and automatic sidecar injection.
@douglas-reid Should this be moved to 1.1 branch?

@objectiser good question. I don't have an answer, unfortunately. My guess is that this will have to wait until 1.1.1 or 1.2, but the details on the upcoming release cycle changes haven't been announced.
@wenchenglu any insight?

this sounds a nice enhancement. Will that env var set to "default" namespace by default?
@douglas-reid is there any particular concern this PR might break anything? otherwise I am fine to merge it into 1.1.

Can we merge this into Istio 1.1 branch too?

I don't believe this will break anything.

per chat with @douglas-reid, yes, we think that is a good change to go in 1.1
/lgtm
/approve

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: objectiser, wenchenglu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: greghanson
If they are not already assigned, you can assign the PR to them by writing /assign @greghanson in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS
pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wenchenglu @douglas-reid PR created on 1.1 branch https://github.com/istio/istio/pull/11587

@objectiser should we wait until the 1.1 changes are merged back and then close this?

Or could close now if you would prefer.
I have patchy network access for next two weeks in case you wonder why I am
not responding.
On Fri, 15 Feb 2019, 19:24 Douglas Reid<EMAIL_ADDRESS>wrote:

@objectiser https://github.com/objectiser should we wait until the 1.1
changes are merged back and then close this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/11521#issuecomment-464169063, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAKC0vuW4CkYOJKmIkbaSECIwscefOkMks5vNwlegaJpZM4ajFwm
.

@objectiser: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Resume Book 📚

Description
Every 1/2 year, ColorStack hosts a Resume Book which we share with our partnering companies (who pay for access). This has traditionally been an Airtable form in which members would upload their resume and answer questions such as ranking their favorite partners and more. Then, we grant partners access to a backend view of these Airtable submissions where they can filter for members/resumes that fit their criteria. We also store all resumes in a Google Drive in which partners have access to.
Though this process has worked, there are some small downsides to the existing workflow:

Members have to resubmit personal information that we should already have.
It's hard to resubmit resumes (I'm not sure if we just have duplicates or if members have to manually reach out to update resume on file).
Any information that is given in that process is not captured in our database, and thus is somewhat "lost" information.

To solve these issues, we're going to build the Resume Book directly in the Member Profile.
Acceptance Criteria
Here is the acceptance criteria for this feature:

[x] As an admin, I can create a Resume Book in the Admin Dashboard, which requires Airtable base/table information, as well as a start/end date for the Resume Book. The start date will default to the beginning of the day in PT and the end date will refer to the end of the day in PT.
[x] As an admin, I can view all Resume Books in the Admin Dashboard, including a link to the Airtable table! I should also be able to see how many submissions are in that book.
[ ] As an admin, I should be able to click into a Resume Book which shows me all the submissions.
[ ] As a member, I can submit my resume to the Resume Book.
[ ] As a member, when I submit my resume, it should be stored in a Cloudflare R2 bucket.
[ ] As a member, when I submit my resume, it should be added to the Google Drive for that Resume Book.
[ ] As a member, when I submit my resume, it should be added to the Airtable table for that Resume Book, along with all the other information in that submission.
[ ] As a member, I should be able to resubmit my resume to the Resume Book.
[ ] As a member, when I resubmit my resume, it should delete the old resume from the Cloudflare R2.
[ ] As a member, when I resubmit my resume, it should delete the old resume from the Google Drive.
[ ] As a member, when I resubmit my resume, it should delete the old resume from the Airtable.
[ ] As a member, I should be able to see my most-up-date resume in the profile page.
[ ] As a member, if I submit my resume to the Resume Book, I will get a confirmation email.
[ ] As a member, if I resubmit my resume to the Resume Book, I will get a different confirmation email.
[ ] As a member, if I submit my resume to the Resume Book, I will get points (gamification). I won't be able to get additional points if I resubmit.
[ ] As an admin, I will be able to create/edit/view partners in the Admin Dashboard.
[ ] As an admin, I will be able to specify if a partner has Resume Book access in the Admin Dashboard.

Key Dates:

Launch w/ Attendees: Monday, 7/15
Share w/ Partners: Friday, 7/19


add ci test against PR - ~15 min run

This PR contains:

Add PR Test CI [each PR push] - CI test against each PR that run only 15 minutes
Skip double tests
Split tests that didnt require benchmark-operator pod
Reduce the Test CI [merge to main] - run ~50 min instead of 60 min

/approve
/lgtm
Please merge.


Hide 591 subfield $9 in the notes field

Reported in Slack: https://wellcome.slack.com/archives/C8X9YKM5X/p1630925994004400
This is a barcode which we don't need to display publicly.

I've done a reindex for this.


Add support for the LTI Consumer XBlock

The LTI Consumer XBlock expects a couple of extra fields from the runtime, adding those fields so the XBlock can be run from the workbench.
This pull request is required for my work on the LTI Consumer XBlock: https://github.com/edx/xblock-lti-consumer/pull/44

Hi, sorry for the late reply; lost track of this.  We hit the same issue again on a newer pull request, I suggested a debugging approach in https://github.com/edx/xblock-sdk/pull/146#issuecomment-463032980 .

Thanks @jmbowman! I'll wait a bit and see what comes up of https://github.com/edx/xblock-sdk/pull/146#issuecomment-463032980 .

@OmarIthawi #146 has been merged, you should be clear to rebase and fix this up.

Thanks @jmbowman! Doing that soon.

Status: Just pushed the rebased branch, will wait for Travis report. I'll get back to it later and see if there are leftovers I should remove.

@jmbowman so this pull request is finally passing. Could you please take a look?

Thanks @jmbowman for the review. I've addressed both of your comments, please take another look.

@natabene I've addressed both of @jmbowman comments, please update the labels on this pull request.

@OmarIthawi 🎉 Your pull request was merged!
Please take a moment to answer a two question survey so we can improve your experience in the future.


vCenter Storage Policies

Implementation of vCenter Storage Policies - module, state and tests

Note: this requires #321 to be merged first (also the non-blocking comments should be addressed here)


Fuzzing add seed, new target and remove bloat

Thank you for contributing! I’m sorry I didn’t move faster on this. I’m closing the gap though :)


Dangling objects

There are a number of dangling and non-referenced objects in the Ecore model. Some are used inappropriately instead of references to concrete classes and some are not used at all. Example: “InputDataSource” in the wfDsl package.

Fixed in 0483c76


Draft and release comms for Prototype Kit v13.0.0

What
Tell users about GOV.UK Prototype v13.0.0 - major breaking release
Why
So users know what changes, features and fixes have been released and impact on prototypes
Who needs to work on this
Content designer
When
Done when:

[ ] Content designer drafts content for comms
[ ] comms has been reviewed by team
[ ] content designer releases comms

Draft notes: https://docs.google.com/document/d/1asp37lCjSbn8qN4CmF0BTxC1g5EcM_eeicl-PPrq89U/edit?pli=1

Comms in second part of this doc: https://docs.google.com/document/d/1asp37lCjSbn8qN4CmF0BTxC1g5EcM_eeicl-PPrq89U/edit#


Run listener in separate process

I want to run background jobs and I want them to be in separate process than the main web server itself.
How would I do it?

If you need to generate multiple processes you can use the pm2 package
https://pm2.keymetrics.io/
And regarding the package, the start/rabbit file is initialized when the app is launched and works in the background


Processing fails if Number of cores detected is 1

I'm trying to use this plugin but on 2 different machines I get the following failure
Benchmark plugin - Collection of results started. File pattern: tracking.json ERROR: Build step failed with exception java.lang.ArithmeticException: / by zero 	at org.jenkinsci.plugins.benchmark.core.BenchmarkPublisher.getRawResults(BenchmarkPublisher.java:344) 	at org.jenkinsci.plugins.benchmark.core.BenchmarkPublisher.perform(BenchmarkPublisher.java:199) 	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:79) 	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744) 	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690) 	at hudson.model.Build$BuildExecution.post2(Build.java:186) 	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635) 	at hudson.model.Run.execute(Run.java:1841) 	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 	at hudson.model.ResourceController.execute(ResourceController.java:97) 	at hudson.model.Executor.run(Executor.java:429) Build step 'Benchmark results' marked build as failure
Digging into the code it appears that it is calculating a value of cores as
int cores = Runtime.getRuntime().availableProcessors() - 1;
on these machines that is resolving to 0 and so the calculation is failing.
presumably this just needs a check for zero and then set cores=1 so the rest of the code works.

Good find. Will fix the initialization and return to you.

New version 1.0.9 was pushed and should become available inside Jenkins.

Thanks for the quick fix :)


chore: add llama-2-13b chat

@n0w0f do you need a review here?

@n0w0f do you need a review here?

yes, would be good to merge this. then we can merge your PR as well.


Member testing using sets

Description
When testing for membership in a static sequence, it is better to use a set literal over a list or tuple, as Python optimizes set membership tests.
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[x] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (bd4265b) 96.09% compared to head (d915549) 94.60%.
Report is 28 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #438      +/-   ##
==========================================
- Coverage   96.09%   94.60%   -1.50%
==========================================
  Files          32       32
  Lines        1075     1093      +18
==========================================
+ Hits         1033     1034       +1
- Misses         42       59      +17

Files
Coverage Δ

ols/app/models/config.py
97.75% <100.00%> (+0.03%)
:arrow_up:

ols/src/query_helpers/query_docs.py
100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes

Right!
/lgtm

/approve


Failed to create the WebView control

Hi, I have Windows 10 and dl power toys yesterday and get this message:
Failed to create the WebView control. Please report the bug to http://gihub.com/microsoft/PowerToys/issues
Any suggestions?
Thank you!

issue #243, we'll be fixing this in 0.18


Use of nodeflux for given flux and not only predefined one

Hey @j-fu!
As we discussed in person, it would be nice to have a nodeflux method, where we can pass an input function, similarly as for the integrate method. Currently, nodeflux depends on the system via using ResEvaluator().
The motivation for this is:
Suppose you have a drift-diffusion current density $j =  j_{\mathrm{drift}} +  j_{\mathrm{diff}}$, where $j$ is discretized via the flux method.
Currently, we can only reconstruct the whole flux via nodeflux but not the two components.
As way around, one can set up a whole new system with a new flux.
However, this is inconvenient, since it is not possible to copy a System nor overwrite the flux ...
I have written an example for this which I cannot attach unfortunately, but can e-mail you!

Will be available in v2.6 in a couple of minutes.

thanks @j-fu. I just checked it and compared it with the work around. Works perfectly fine!


Log working repo

I'm getting an error but the log does not show for which repository. Is there a setting or could you update so it logs the repo it is working on?
'''
{"message":"Publicly visible package versions with more than 5000 downloads cannot be deleted. Contact GitHub support for further assistance.","documentation_url":"https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization","status":"400"}
'''

Ps. I'm running this on an organization so multiple repos are targeted.
In addition (an afterthought) maybe this error should not be a fail but a warn?

I'm getting an error but the log does not show for which repository. Is there a setting or could you update so it logs the repo it is working on?
''' {"message":"Publicly visible package versions with more than 5000 downloads cannot be deleted. Contact GitHub support for further assistance.","documentation_url":"https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization","status":"400"} '''

@basz
https://github.com/Chizkiyahu/delete-untagged-ghcr-action/pull/41
it is look good ?

Ps. I'm running this on an organization so multiple repos are targeted.
In addition (an afterthought) maybe this error should not be a fail but a warn?

you can change the #41 to look better
and check if is solve the problem
I don't tested this

fixed #41
new tag: v4.0.1


Add alias for release_path

@halo can you review and release a new version?

Sorry, didn't see this earlier. Will do soon!

Merged and bumped to 0.0.3


Can't load GPT3_XL

Hi All,
I downloaded the model from
https://the-eye.eu/public/AI/gptneo-release/GPT3_XL/
after which i changed model_path in config.json to:
"model_path" : "C:\Users\GPT_NEO_2\GPT3_XL"
Whenever i run the following code:
model = GPTNeoForCausalLM.from_pretrained("C:\Users\GPT_NEO_2\GPT3_XL")
i get an error:
f"Error no file named {[WEIGHTS_NAME, TF2_WEIGHTS_NAME, TF_WEIGHTS_NAME + '.index', FLAX_WEIGHTS_NAME]} found in "
OSError: Error no file named ['pytorch_model.bin', 'tf_model.h5', 'model.ckpt.index', 'flax_model.msgpack'] found in directory C:\Users\GPT_NEO_2\GPT3_XL or from_tf and from_flax set to False.
and while running :
generator = pipeline('text-generation', model="C:\Users\GPT_NEO_2\GPT3_XL")
i get following error:
f"Unrecognized model in {pretrained_model_name_or_path}. "
I have the latest TF and torch (both cpu).
Thanks
I have aloso attached my config.json

Please double check that you have downloaded all the files from the eye. There is a .index file on the eye.

Please double check that you have downloaded all the files from the eye. There is a .index file on the eye.

Yes, that is there along with config. Json and several checkpoints..
Also, how do I make use of the checkpoints?

Please double check that you have downloaded all the files from the eye. There is a .index file on the eye.

There is no .index files. I have attached the files that i got

Also, how do I make use of the checkpoints?

Please double check that you have downloaded all the files from the eye. There is a .index file on the eye.

There is no .index files. I have attached the files that i got

In that case it seems like you failed to download everything. If you visit this link you'll see that there is a .index file there.

Please double check that you have downloaded all the files from the eye. There is a .index file on the eye.

There is no .index files. I have attached the files that i got

In that case it seems like you failed to download everything. If you visit this link you'll see that there is a .index file there.

I re downloaded everything.
While running the model i get following error now:
https://github.com/EleutherAI/gpt-neo/issues/227#issuecomment-860830169

Great! You are now officially out of our hands... this is a GPU configuration issue on your end. I recommend checking out multiGPU training documentation for whatever framework you are using. This issue may also be helpful.


Fix bug in NARM

Issue:
location: ReChorus/src/models/sequential/NARM.py line 61
Reason: #18
Fix Solution: add .cpu() to sort_his_lengths.
history_packed = torch.nn.utils.rnn.pack_padded_sequence(sort_his_vectors, sort_his_lengths.cpu(), batch_first=True)

Thanks for pointing it out. Fixed it.