[Feature] Node mirroring for GPU-memory reduction

In the paper Training Deep Nets with Sublinear Memory Cost Chen et al. introduced a very good idea to greatly reduce GPU memory requirements.
The idea bowls down to discarding the output of some nodes during the forward pass and recompute those values when they are needed again in the backward pass. Only the output of some key ops is kept in memory. During back-prop all forward computation from those key nodes are redone. They also describe how this can be implemented in a graph based computation model by mirroring non-key ops. This is depicted in figure 3 (see below).
Performing this kind of graph manipulation in MxNet is quite easy and I have played around with this myself. I am able to reduce the memory cost of a SotA segmentation model from 13504 MB to 3382 MB for the cost of about ~40% increase in computational time. (Given that we have plenty 1080 TI and view P100 GPUs, I am very happy to pay this cost).
For me as deep learning researcher this is a totally awesome killer feature. In most of my experiments I am limited by the amount of available GPU memory. Doing node mirroring allows me to try a whole bunch of new stuff, I was always wanting to do.

Is anything like this planned to be implemented in Tensorflow any time soon?
In the current API, is there already a way to build and / or manipulate the computational graph to perform node mirroring (like in figure 3)?

Regarding question two, I don't mind if it gets messy. Copying some nodes inside the graph is possible in tensorflow. Gradient flow can also be stopped for the first copy. What is missing is to utilize the second node for gradient computation. I don't know how I can archive this using the python API in tensorflow. Any ideas with this?

@prb12 can you comment or redirect? Thanks.

I'm not really the best person to answer this, but yes we are aware of this technique and similar things crop up in various places in TensorFlow:

XLA has an optimization pass that does selective rematerialization of HLO expressions when necessary to fit in a memory budget tensorflow/tensorflow/compiler/xla/service/hlo_rematerialization.h
Grappler has a rewriting pass that does this: tensorflow/tensorflow/core/grappler/optimizers/memory_optimizer.cc
Not strictly speaking recomputation, but the dynamic RNN classes support a 'swap_memory` flag that temporarily copies intermediate values required for backprop from the GPU back to host memory to allow very long sequence lengths without running out of GPU memory.

@benoitsteiner is the best person to answer Grappler questions, @ebrevdo for the RNN code, and @eliben or @meheffernan for the XLA work.

@sanjoy

Thanks for the answers. I had a short look through the gradient computation code in tensorflow. By now I am quite confident that node-mirroring can be be (fully) implemented in python. The whole think bowls done to manipulating the code which produces the gradient computation subgraph.
At the moment the intermediate results of each tensor are saved in GPU memory (if gradients are computed). This is an incredible wasteful behavior. I think this is the main reason why tensorflow is so extremly hungry for GPU memory.
As an example, I have recently implemented a (gaussian) crf model in tensorflow. When performing back-propagation through the CRF the memory requirement went up from 320MB to 10.45GB, compared to plain inference. The issue in this case is, that the different computation along the line of  tf.exp ( tf.reduce_sum(   -0.5 * tf.square( f_i - f_j ) * M ) ) are done very often. For each minor step in those kind of computations (i.e. -0.5 * sqr_diff ) the intermediate output is kept in memory.  The time it take to run the entire core of the CRF is only 347 μs. This is negligible, compared to the rest of the model.
So the bottom line of this example is: Recomputation during backward pass could save 10GB for a negligible amount of extra computation time.

Also, I had a short look at the other memory optimization projects mentioned. XLA and grapper implement good ideas. However those projects aim at performing memory optimization fully automated. I feel for advanced users it will be much more valuable to give them options for manual memory optimization. I think many users know the bottleneck of their model and manual optimization can archive much better results then automated memory optimization projects. [See the crf example].
The swap memory used for RNNs is a pretty cool idea. This can be used as an alternative to the recomputation approach. I think it would be great to have a function which could perform swap_memory on arbitrary (i.e. non-rnn) tensors.  There are long chain models even outside the rnn world and this can be very useful for those as well. [Btw. could someone point me to the line where swap_memory is implemented? I am not familiar with the rnn code. What I have seen so far most functions just pass this parameter on. What would it take to have the output of an arbitrary tensor t swapped to CPU memory?]
Overall I think it would be cool, if this could be pinged to the right person at the tensorflow team. I feel that the large memory usage is the biggest down-side of tensorflow. In all models I have debugged (including standard CNN ones), the majority of memory is blocked by tensors being kept in memory for gradient computation.
We know two solutions for this. Namely recomputation of some tensors during back-prop (i.e. via node mirroring) or memory swapping. Both can be implemented in pure python. So I don't see much reason for not tackling this. This kind of optimization will reduce the memory requirement of all very deep models (>= 16 layer) by an order of magnitude.

Thanks for the very fast reply, @prb12. I am very happy to learn about existing ways to recompute gradients instead of keeping them. This will allow me to use Tensorflow for my next CRF based project.
I will take a closer look at defun and how it might be used for gradient recomputation after I return from my conference. I am very happy about alternative suggestions in the meantime.

One other way to temporarily override gradient code is to use gradient_override_map
https://github.com/tensorflow/tensorflow/blob/2cfbd3347b943a389bb688125c2a90095b7735b5/tensorflow/python/framework/ops.py#L3773
 @tf.RegisterGradient("CustomSquare")
   def _custom_square_grad(op, grad):
   # ...

 with tf.Graph().as_default() as g:
   c = tf.constant(5.0)
   s_1 = tf.square(c)  # Uses the default gradient for tf.square.
   with g.gradient_override_map({"Square": "CustomSquare"}):
     s_2 = tf.square(s_2)  # Uses _custom_square_grad to compute the gradient of s_2.

Since the custom gradient function is passed the original Operation, it can recompute the op from the same inputs.
The main reason this doesn't get used for recomputation is that this mechanism is done at an op granularity, whereas most people probably want to do recomputation at a layer granularity.
The Defun trick is basically the same thing but applied to a larger subgraph.

We may be able to add a decorator/wrapper that just does this Defun trick.
Call it "@recompute_on_gradient" or something.
On Fri, Jul 7, 2017 at 9:18 AM, Paul Barham<EMAIL_ADDRESS>wrote:

One other way to temporarily override gradient code is to use
gradient_override_map
https://github.com/tensorflow/tensorflow/blob/
2cfbd3347b943a389bb688125c2a90095b7735b5/tensorflow/python/
framework/ops.py#L3773
@tf.RegisterGradient("CustomSquare")
def _custom_square_grad(op, grad):
...
with tf.Graph().as_default() as g:
c = tf.constant(5.0)
s_1 = tf.square(c)  # Uses the default gradient for tf.square.
with g.gradient_override_map({"Square": "CustomSquare"}):
s_2 = tf.square(s_2)  # Uses _custom_square_grad to compute the gradient of s_2.
Since the custom gradient function is passed the original Operation, it
can recompute the op from the same inputs.
The main reason this doesn't get used for recomputation is that this
mechanism is done at an op granularity, whereas most people probably want
to do recomputation at a layer granularity.
The Defun trick is basically the same thing but applied to a larger
subgraph.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/11171#issuecomment-313727272,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim1TG9PmZIC7cGgBeK-kmWYy09-YRks5sLlpqgaJpZM4OKdxb
.

[Btw. could someone point me to the line where swap_memory is implemented?

The swap_memory flags get passed through to tf.while_loop and into the WhileContext,  which pass flags to the stack related ops here.
StackPush operations have an attr to enable the functionality, and the actual swapping happens here.

Getting Chen's performance is too complicated for gradient decorator -- for a uniform chain of length n, you want to insert "checkpoints" every sqrt(n) nodes, which doesn't necessarily correspond to number of gradient calls. This kind of mirroring is indeed possible by using contrib.graph_editor to clone nodes. This enables a node execution order which uses less memory, and you can use control dependencies to force TensorFlow to use this schedule. In other words, if you have a node like "conv-forward", you could duplicate it and then disconnect one of them from the gradient. Since the original node is not connected to gradient computation, its value can be forgotten at the stage of forward prop.
TensorFlow default strategy will execute nodes as soon as possible, which is the opposite of what you want to do you in your scenario. Here's a utility that forces TensorFlow to execute nodes as late as possible, breaking ties by using estimate of memory usage.
Forgetting intermediate results to fit in memory budget is actually a pretty interesting general problem, studied in compiler literature as "one-shot pebbling". It can be solved exactly for chains, and I suspect can also be solved exactly for typical neural networks, since they tend to have small treewidth (ie, you can pick size-k subgraphs, and treat them as nodes with 2^k states such that resulting "merged" graph is a chain)).

Not sure I fully understand your checkpoints model, Yaroslav.  How is it
different from just using the Defun every sqrt(n) nodes - and the rest of
the time using the standard calls?
On Sat, Jul 8, 2017 at 11:01 AM, Yaroslav Bulatov<EMAIL_ADDRESS>wrote:

Getting Chen's performance is too complicated for gradient decorator --
for a uniform chain of length n, you want to insert "checkpoints" every
sqrt(n) nodes, which doesn't necessarily correspond to number of gradient
calls. This kind of mirroring is indeed possible by using
contrib.graph_editor to clone nodes. This enables a node execution order
which uses less memory, and you can use control dependencies to force
TensorFlow to use this schedule. In other words, if you have a node like
"conv-forward", you could duplicate it and then disconnect one of them from
the gradient. Since the original node is not connected to gradient
computation, its value can be forgotten at the stage of forward prop.
TensorFlow default strategy will execute nodes as soon as possible, which
is the opposite of what you want to do you in your scenario. Here's a
utility https://github.com/yaroslavvb/stuff/tree/master/linearize that
forces TensorFlow to execute nodes as late as possible, breaking ties by
using estimate of memory usage.
Forgetting intermediate results to fit in memory budget is actually a
pretty interesting general problem, studied in compiler literature as
"one-shot pebbling". It can be solved exactly for chains, and I suspect can
also be solved exactly for typical neural networks, since they tend to have
small treewidth (ie, you can pick size-k subgraphs, and treat them as nodes
with 2^k states such that resulting "merged" graph is a chain)).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/11171#issuecomment-313871515,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtimz_9lLTEe_QOPxaMVE8n7glMfIWBks5sL8PggaJpZM4OKdxb
.

@ebrevdo manually wrapping sqrt(n) nodes into defun would do the trick, I just didn't get how the decorator would do this.
There's some ambiguity in docs on whether Defun recomputes the values. There's noinline=True option to Defun, although when I tried on 1.1, it worked without having to set that attribute.
PS, swapping stuff to main memory is not that great for O(n) operations. I benchmarked it on TitanX, and recomputing large Mul from inputs on GPU was 7x faster than fetching it from main memory. Recomputing Concat was 10x faster

To do fw recomputation in the gradient with a defun you would do something
like:
def fw(x1, x2):  # x1 and x2 are tensors
...
return y1, y2  # y1 and y2 are tensors
def recalc_fw_grad(fw_op, dy1, dy2):
x1, x2 = fw_op.inputs
DON'T USE THESE: # y1, y2 = fw_op.outputs
y1, y2 = fw(x1, x2)
return tf.gradients(ys=[y1, y2], xs=[x1, x2], grad_ys=[dy1, dy2])
@Defun(python_grad_func=recalc_fw_grad, shape_func=...)
def fw_with_recalc_fw_grad(x1, x2):
return fw(x1, x2)
On Sun, Jul 9, 2017 at 5:34 AM, Yaroslav Bulatov<EMAIL_ADDRESS>wrote:

@ebrevdo https://github.com/ebrevdo manually wrapping sqrt(n) nodes
into defun would do the trick, I just didn't get how the decorator would do
this.
There's some ambiguity in docs on whether Defun recomputes the values.
There's noinline=True option to Defun, although when I tried on 1.1, it
worked without having to set that attribute.
PS, swapping stuff to main memory is not that great for O(n) operations. I
benchmarked it on TitanX, and recomputing large Mul from inputs on GPU
was 7x faster than fetching it from main memory. Recomputing Concat was
10x faster
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/11171#issuecomment-313917326,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtimz2q0GkE8o8g-scWStoufZ5lT4V5ks5sMMjpgaJpZM4OKdxb
.

You probably also want to add noinline=True to the Defun constructor.
On Sun, Jul 9, 2017 at 3:02 PM, Eugene Brevdo<EMAIL_ADDRESS>wrote:

To do fw recomputation in the gradient with a defun you would do something
like:
def fw(x1, x2):  # x1 and x2 are tensors
...
return y1, y2  # y1 and y2 are tensors
def recalc_fw_grad(fw_op, dy1, dy2):
x1, x2 = fw_op.inputs
DON'T USE THESE: # y1, y2 = fw_op.outputs
y1, y2 = fw(x1, x2)
return tf.gradients(ys=[y1, y2], xs=[x1, x2], grad_ys=[dy1, dy2])
@Defun(python_grad_func=recalc_fw_grad, shape_func=...)
def fw_with_recalc_fw_grad(x1, x2):
return fw(x1, x2)
On Sun, Jul 9, 2017 at 5:34 AM, Yaroslav Bulatov<EMAIL_ADDRESS>
wrote:

@ebrevdo https://github.com/ebrevdo manually wrapping sqrt(n) nodes
into defun would do the trick, I just didn't get how the decorator would do
this.
There's some ambiguity in docs on whether Defun recomputes the values.
There's noinline=True option to Defun, although when I tried on 1.1, it
worked without having to set that attribute.
PS, swapping stuff to main memory is not that great for O(n) operations.
I benchmarked it on TitanX, and recomputing large Mul from inputs on GPU
was 7x faster than fetching it from main memory. Recomputing Concat was
10x faster
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/11171#issuecomment-313917326,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtimz2q0GkE8o8g-scWStoufZ5lT4V5ks5sMMjpgaJpZM4OKdxb
.

Hi, I'd like to reopen this discussion on whether there is a better way to do this. I followed @ebrevdo suggestion and implemented a recompute_on_gradient decorator that uses Defun. I have included the decorator and sample usage below. It works as desired, but it has some major limitations:

I couldn't find a good way to pass in function parameters, e.g. reduction_dim in the example below.
The tensors being passed to the grad function are of unknown shape, so you can't figure out certain properties of the inputs, e.g. broadcast_dim_a and broadcast_dim_b in the example below.

For 1., I tried using a closure to pass in the parameters, but that significantly slows down the execution. I also tried using tf.name_scope, but that is not that useful since the grad function doesn't get the op.
In general, it would be really useful to have a way of defining a subgraph of ops as a single op so that you can define a gradient for that subgraph as a whole, and thus preventing tensorflow from storing the intermediate tensors (which can be really huge) of that subgraph for the backward pass.
I have looked into gradient_override_map and tf.py_func, but they don't seem to be applicable here. The former only seems to work for individual ops that have been defined in C++. The latter does group a subgraph of ops into a single one, however this is for numpy functions. What's needed is something like tf.tf_func for a subgraph of tensorflow ops.
def recompute_on_gradient(func_name, grad_func=None):
    """
    Assumes func takes in multiple inputs and returns a single output.
    """
    def _recompute_on_gradient(func):
        def _shape_func(op):
            try:
                return [output.shape for output in func(*op.inputs)]
            except TypeError:
                return [func(*op.inputs).shape]

        if grad_func is None:
            def _grad_func(*args):
                inputs = list(args[:-1])
                grad = args[-1]
                output = func(*inputs)
                return tf.gradients(ys=[output], xs=inputs, grad_ys=[grad])
        else:
            _grad_func = grad_func

        _grad_func = function.Defun(func_name=func_name + "_grad",
                                    noinline=True)(_grad_func)

        return function.Defun(grad_func=_grad_func,
                              shape_func=_shape_func,
                              func_name=func_name,
                              noinline=True)(func)
    return _recompute_on_gradient

def _multiply_sum_grad(a, b, grad_c):
    reduction_dim = -2
    broadcast_dim_a = -1
    broadcast_dim_b = 0

    grad_c = tf.expand_dims(grad_c, axis=reduction_dim)
    grad_a = grad_c * b
    grad_b = grad_c * a
    # sum over broadcast dimensions
    grad_a = tf.reduce_sum(grad_a, axis=broadcast_dim_a, keep_dims=True)
    grad_b = tf.reduce_sum(grad_b, axis=broadcast_dim_b, keep_dims=True)
    return grad_a, grad_b

@recompute_on_gradient("multiply_sum", _multiply_sum_grad)
def multiply_sum(a, b):
    reduction_dim = -2
    return tf.reduce_sum(a * b, axis=reduction_dim)

@recompute_on_gradient("multiply_sum_no_grad")
def multiply_sum_no_grad(a, b):
    reduction_dim = -2
    return tf.reduce_sum(a * b, axis=reduction_dim)

time = 3
batch = 16
in_height = 64
in_width = 64
in_channels = 1
kernel_size = [17, 17]
filters = 4
patches = tf.get_variable('a', [time, batch, in_height, in_width, kernel_size[0] * kernel_size[1] * in_channels])
kernel = tf.get_variable('b', [batch, in_height, in_width, kernel_size[0], kernel_size[1], in_channels, filters])
kernel_reshaped = tf.reshape(kernel, [batch, in_height, in_width, kernel_size[0] * kernel_size[1] * in_channels, filters])

output = tf.reduce_sum(patches[..., None] * kernel_reshaped[None, ...], axis=-2)  # uses more than 3GB to compute the gradient
output_mulsum = multiply_sum(patches[..., None], kernel_reshaped[None, ...])
output_mulsum_no_grad = multiply_sum_no_grad(patches[..., None], kernel_reshaped[None, ...])

It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Awaiting Response: It has been 14 days with no activityand the awaiting response label was assigned. Is this still an issue?

Nagging Awaiting Response: It has been 14 days with no activityand the awaiting response label was assigned. Is this still an issue?

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

/CC @prb12 any updates on this? @yaroslavvb package is very interesting. Should something similar be in TensorFlow itself?

@reedwm I think Grappler is eventually supposed to take over these things (@allenlavoie )

Maybe I'm doing something wrong, but the recompute grad decorator isn't seemingly saving myself any memory. I'm using it naively on every tf.layers.conv2d like so:
@recompute_grad
def _x(x):
    return tf.layers.conv2d(x, ...)

However, it uses the same amount of memory as standard TF 1.10 .
Also, I used to have gradient_checkpointing saving myself memory (back in april) however it now doesn't save any memory either.
@allenlavoie Any ideas why?

@joeyearsley recompute_grad needs to catch an intermediate activation which would otherwise feed into a gradient op in order to save memory. tf.layers.conv2d has a conv op and maybe a ReLU, and ReLU automatically recomputes, so if the model is just a sequence of _x calls then it's already saving only one activation per _x. To save memory, you could wrap a sequence of _x calls in recompute_grad (but include too many and the recomputation of the gradient will take as much memory as the model would have otherwise). If there's a batch norm layer I'd include that in the decorated function, since it isn't automatically recomputed like ReLU.

@MarvinTeichmann An lternative approaches for memory reduction would be as follows;

Gradient checkpointing: Saves intermediate activations during backpropagation, allowing reuse and reducing GPU memory footprint.
Mixed precision training: Uses lower precision formats like fp16 for calculations without significantly impacting accuracy.
Thank you!


Add mid-circuit measurement before conditional operation in random_circuit

Summary
New version of the PR https://github.com/Qiskit/qiskit-terra/pull/9207

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
8 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.02%) to 85.966%

Files with Coverage Reduction
New Missed Lines
%

crates/accelerate/src/sabre_swap/layer.rs
4
97.32%

crates/qasm2/src/lex.rs
4
90.63%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
71667

Relevant Lines:
83367

💛  - Coveralls


Image picker broken: No option to select image

I am using django-filer together with the django-cms plugins and ckeditor.
In 1.2.0, the image picker seems to be broken. Steps to reproduce:

Edit text plugin with ckeditor.
In the ckeditor menu, select CMS Plugins → Image
In the "Add CMS Plugin" dialog, click Upload File
The file browser view is opened, but there is no option to select the image and return to the plugin dialog. Previous versions (including 1.1.1) used to have this icon:

.

The screenshot shows the issue:

Hi @frederik-elwert Thank you for reporting this issue. We will let you know when the issue is fixed.

Hi @frederik-elwert
I couldn't reproduce the issue. See enclosed screenshot. Can you please clear cache or give me more information about your project and django and cms version? Thank you for your feedback.

Hm, strange. I now tried to reproduce it, but indeed it works. In the buggy version, the file picker didn’t even open a new window, but altered the content of the modal in place. Maybe some issue with cached files?
Anyway, sorry for the fuzz.


Rollup not reading signal types properly

Describe the bug
Hey guys, I am likely doing someting wrong, but thought it was worth mentioning. So please let me know if i need to pull in a plugin or something. But here it goes:
TLDR: solid-js fails when using rollup to build.
Created a new package using TSDX (Minimum Reproducible code here)
Stripped out the fluff and updated the index.ts file.
import { createSignal } from 'solid-js';

export const Test = () => {
  const [test, setTest] = createSignal(0);

  setTest(1);
  return test();
};

however when the i run npm run build
i get a build failure on this line: setTest(1);
TS2554: Expected 0 arguments, but got 1.
with follow up trace giving a throwPluginError
Looks like the call signature created for the setter isn't what the rollup compiler was expecting? Any ways to worko around this?
Your Example Website or App
https://github.com/dweng0/solid-peerjs/tree/rollup-build-failure
Steps to Reproduce the Bug or Issue

Pull down this branch
npm install
npm run build
???
profit (or loss)

Expected behavior
to build
Screenshots or Videos
Looks like it doesn't quite read

Platform

OS: [Windows]
Browser: CLI
Version: "solid-js": "^1.6.16"

Additional context
Error: /solid-peerjs/src/index.ts(6,11): semantic error TS2554: Expected 0 arguments, but got 1.
at error (~\node_modules\tsdx\node_modules\rollup\dist\shared\node-entry.js:5400:30)
at throwPluginError (~\node_modules\tsdx\node_modules\rollup\dist\shared\node-entry.js:11878:12)
at Object.error (~\node_modules\tsdx\node_modules\rollup\dist\shared\node-entry.js:12912:24)
at Object.error (~\node_modules\tsdx\node_modules\rollup\dist\shared\node-entry.js:12081:38)
at RollupContext.error (~\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:17237:30)
at ~\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:25033:23
at arrayEach (~\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:545:11)
at Function.forEach (~\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:9397:14)
at printDiagnostics (~\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:25006:12)
at Object.transform (~\node_modules\tsdx\node_modules\rollup-plugin-typescript2\dist\rollup-plugin-typescript2.cjs.js:29277:17)

Interesting. I use rollup to build all of Solid's libraries and demos but never see this. That being said I usually use babel to do the TS conversion along with our JSX transform and  not a seperate plugin.

Yeah this isn't a Rollup bug as much as TSDX. It hasn't been touched in a year and looks like it uses stuff from years ago. For typescript isn't even using the official rollup plugin but rollup-plugin-typescript2. I used to use that library back in the day too. I suspect it is just really out of date. Like it uses Rollup 1.32 from 3 years ago.
It's complaining about our setter not taking an argument. Types appear fine here: https://github.com/solidjs/solid/blob/main/packages/solid/src/reactive/signal.ts#L177-L180
Only possibility where it doesn't take an argument if is the generic is undefined and it clearly isn't in this case. I wonder if it doesn't know how to properly handle the tuple return type of createSignal.
But don't see what can be done on our side.

@dweng0  Why use Rollup to build a Solid app when you should just use Vite?

@ryansolid we'd usually just recommend tsup (https://github.com/solidjs-community/tsup-preset-solid) or Rollup (https://github.com/solidjs-community/rollup-preset-solid) since TSDX is pretty much abandonware

Yeah I guess just close this one as won't fix. Not much to be done here.


Limited display number of rectangle with Graphics.drawRect()

Hi, I'm new to pixi.js. I'm doing a data visualization work with it. But there's a problem when I draw rects in canvas.
Expected Behavior
Draw 40000 rects in canvas with Graphics.drawRect()
Current Behavior
Maximum number of rects displayed on the screen is 16384(2^14), if use drawCircle(), 4096(2^12) circles at most. No log dispalyed in console.
Possible Solution
I didn't know why there is a limitation of the display number of rects, intentionally set or just a bug. But if I create another instance of PIXI.Graphics, I can draw another 2^14 rects. It's verbose, isn't it? So I hope you can fix this issue.
Environment

pixi.js version: 5.1.5
Browser & Version: chrome 77.0.3865.120
OS & Version: macOS 10.15 (19A602)

Running Example
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
</head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/5.1.5/pixi.min.js"></script>

<body>
    <script type="text/javascript">
        let app = new PIXI.Application({
            width: 800,
            height: 800
        });
        document.body.appendChild(app.view)
        let graphics = new PIXI.Graphics();
        app.stage.addChild(graphics);

        graphics.beginFill("0xff0000");
        // hope 40000 rects, but got 2^14 rects at most.
        for (var i = 0; i < 40000; i++) {
            let x = (i % 200) * 4;
            let y = parseInt(i / 200) * 4;
            //let r = 1
            let w = 2
            let h = 2
            graphics.drawRect(x, y, w, h)
            //graphics.drawCircle(x, y, r); // 2^12 circles at most.
        }

        /* If I create another instance of Graphics, I can draw more rects */

        // let graphics2 = new PIXI.Graphics();
        // app.stage.addChild(graphics2);
        // graphics2.beginFill("0x0000ff");
        // for (var i = 0; i < 40000; i++) {
        //     let x = (i % 200) * 4;
        //     let y = parseInt(i / 200) * 4 + 400;
        //     //let r = 1
        //     let w = 2
        //     let h = 2
        //     graphics2.drawRect(x, y, w, h)
        //     //graphics.drawCircle(x, y, r);
        // }
    </script>
</body>

</html>

Duplicate of #6047 and many others.
https://github.com/pixijs/pixi.js/wiki/v5-Hacks#removing-65k-vertices-limitation
Closing.


Checkout branch, corresponding to opening different files

Checkout 'A' branch, opened A.js, xxx.js ,
Now checkout 'B' branch. Do not keep opening A.js, xxx.js .
When I check out 'a' branch, open A.js, xxx.js .

Is this a feature request to open certain files when certain branches are checked out?

Is this a feature request to open certain files when certain branches are checked out?

@joaomoreno  Yes, different branches need to open corresponding opened files
This is very useful for large projects when checkout branches frequently,
Because different branches solve different issues, the files that need to be opened are different when checkout branches.
Thank you for your reply. I'm sorry. I'm from China. This is machine translation. It may not be accurate

Hopefully this should be an optional option,
Whether the file in the current window remains open when chcekout,
When other branches of chcekout, close the current window file and automatically open the new branch corresponding to the opened file


Code Comments

class PointRecuder(nn.Module):
"""
Point Reducer is implemented by a layer of conv since it is mathmatically equal.
Input: tensor in shape [B, C, H, W]
Output: tensor in shape [B, C, H/stride, W/stride]
"""
def __init__(self, patch_size=16, stride=16, padding=0,
             in_chans=3, embed_dim=768, norm_layer=None):
    super().__init__()
    patch_size = to_2tuple(patch_size)
    stride = to_2tuple(stride)
    padding = to_2tuple(padding)
    self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size,
                          stride=stride, padding=padding)
    self.norm = norm_layer(embed_dim) if norm_layer else nn.Identity()

def forward(self, x):
    x = self.proj(x)
    x = self.norm(x)
    return

The dimension of the output written in the comment seems to be inconsistent with the one in the code, I checked the code and the output dimension in the code is
[B, embed_dim, H/stride, W/stride], not is the [B, C, H/stride, W/stride].
I hope the author can answer this question, thanks！

Sry I didn't understand your question. "embed_dim" and "C" share same meaning, the number of channels.

Sry I didn't understand your question. "embed_dim" and "C" share same meaning, the number of channels.

I mean that the number of input channels and the number of output channels are different. But the code comments use the same symbol for both input and output channels, so I think the number of input and output channels are equal.

Ohhh, got it. Let me update the comments now. Thanks for the kind reminder.


it is possible to use on ios?

This application is developed only for Linux platform. Yes , it is possible to follow the program sequence(taking this source code as reference) and apply it in your application by downloading FFMPEG wrapper version or something suitable for iOS platform.


Synchronize lint rules across repositories

I recently went through and disabled the most commonly ignored linters in beats: https://github.com/elastic/beats/pull/31683
This PR updates the lint configuration used in this repository with those that were removed in beats. Let's keep the lint rules consistent across our repositories.

:grey_exclamation: Build Aborted

Either there was a build timeout or someone aborted the build.

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-06-07T20:30:31.569+0000

Duration: 62 min 53 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
710

Skipped
5

Total
715

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

/test

/test


newlines subtitle not work, How to newlines show subtitles?

this is my vtt file, but newlines show subtitles, not work.
WEBVTT

00:01.000 --> 00:04.000
line1
line2

00:05.000 --> 00:09.000
line1
line2

00:10.000 --> 00:14.000
line1
line2

Can I have a working vtt demo?

sorry, It's solved after changing the latest version


Change the "no results found" message of ListingBlock to something customizable

A client has asked us to change the "no results found" message that the ListingBlock shows when there is no results with something else like "No events found" or "No tenders found" or "There are no documents in this listing".
I think that this should be something customizable, but how?
Right now the No results message is rendered before entering the variations dance so there is no way to do it in a variation. But in any case does it make sense to add it in a variation? You may use this variation for Events and News but want to have different "No results found" message on each one.
On the other hand, adding yet another schema field to the ListingBlock just to add the "no results found" seems an overkill.
Opinions?

I would add a noResultsComponent key to the listing block configuration with the default message. This way we can modify it with a React component. I would also give the option to add a noResultsTemplate key to each variation so we can modify the message separately.
Somehow, the inital config can be something like this:
listing: {
    id: 'listing',
    title: 'Listing',
    icon: listBulletSVG,
    group: 'common',
    view: ViewListingBlock,
    edit: EditListingBlock,
    schema: BlockSettingsSchema,
    blockSchema: ListingBlockSchema,
    restricted: false,
    mostUsed: true,
    sidebarTab: 1,
    showLinkMore: false,
    security: {
      addPermission: [],
      view: [],
    },
    variations: [
      {
        id: 'default',
        isDefault: true,
        title: 'Default',
        template: DefaultListingBlockTemplate,
      },
      {
        id: 'imageGallery',
        title: 'Image gallery',
        template: ImageGalleryListingBlockTemplate,
        noResultsTemplate: MyImageNoResultsComponent,
      },
      {
        id: 'summary',
        title: 'Summary',
        template: SummaryListingBlockTemplate,
      },
    ],
    noResultsComponent: DefaultNoResultsComponent,
    getAsyncData: getListingBlockAsyncData,
  },

I think there should be two levels of noResultsComponent: a default one and one optional for each variation.
I like the idea, I wonder if we should connect it to the components registry.


cf4k8s: POST /v3/builds gives a weird error message

Thanks for submitting an issue to cloud_controller_ng. We are always trying to improve! To help us, please fill out the following template.
Issue
Creating a package failed with an unexpected error message
Context
We're exploring how much of CATs will be runnable on cf4k8s
Steps to Reproduce
Focus https://github.com/cloudfoundry/cf-acceptance-tests/blob/7f4027c7a0b2c00f8e56a6d40904b8f65b4ed485/v3/deployment.go#L84
Modify https://github.com/cloudfoundry/cf-acceptance-tests/blob/7f4027c7a0b2c00f8e56a6d40904b8f65b4ed485/helpers/v3_helpers/v3.go#L412 to not specify a list of buildpacks when no buildpacks are passed in
Expected result
We were hoping this would just work
Current result
We got this error:
  "errors": [
      {
         "detail": "Package guid can't be blank, Package guid must be a string, Package guid must be between 1 and 200 characters, Lifecycle data must be an object",
         "title": "CF-UnprocessableEntity",
         "code": 10008
      }
   ]

Pertinent logs:
\"backtrace\"=>[\"/cloud_controller_ng/app/controllers/v3/application_controller.rb:18:in
`unprocessable!'\",
\"/cloud_controller_ng/app/controllers/v3/builds_controller.rb:32:in
`create'\",

plan:

[ ] follow repro instructions
[ ] make lifecycle: buildpack invalid on cf-for-k8s (it never works anyways)
[ ] investigate space_manifests_spec test cruft

when trying to repro, I found that this bug doesn't exist in this exact form any more. There is a similar class of errors that occur when a cf-for-k8s CC tries to handle build requests with "lifecycle":{ "type": "buildpack" }. To mitigate that, I'm adding some validation that will error if the default app lifecycle is kpack but a user requests a buildpack lifecycle.
the new, undesirable errors look roughly like this:
cf curl /v3/builds -X POST -d {"lifecycle":{ "type": "buildpack", "data": { "buildpacks": ["paketo-community/ruby"] } }, "package": { "guid" : "3516e484-e4bc-4e57-adcd-1f6c873f3fa0"}}
{
   "errors": [
      {
         "detail": "Buildpack \"paketo-community/ruby\" must be an existing admin buildpack or a valid git URI",
         "title": "CF-UnprocessableEntity",
         "code": 10008
      }
   ]
}

the new ones should look roughly like:
{
>    "errors": [
>       {
>          "detail": "this installation does not support the "buildpack" lifecycle, try "kpack" instead",
>          "title": "CF-UnprocessableEntity",
>          "code": 10008
>       }


It seems that error doesn't handle error properly

I found some wield behavior when I introduced .error into my promise chain.
Here is the simplified example:
it 'should fail but passed', ->
   Promise.try ->
     Promise.reject new Error()
  .error console.log

I expect this test to fail in mocha, but it passed with nothing printed to console.
But the test failed immediately after I removed the .error handler
it 'should fail', ->
   Promise.try ->
     Promise.reject new Error()

Or it also fails if I throw the exception instead of calling .reject.
it 'should fail', ->
   Promise.try ->
     throw new Error()
  .error console.log

So I assume it is some kind of bug.

.error only catches OperationalError and not all regular Errors, this is useful in order to avoid silencing programmer errors. It is recommended that all your business logic errors extend OperationalErrors.
This is pretty clear in the first line of the documentation of Error.

Just to add, using Promise.reject results with the error being modified to have the operational error flag, while throw doesn't do that.
This is legacy behaviour and will be fixed with 3.0


To avoid large allocations create SegmentedStreams and use in graph.

This mostly pulls in code that Marco wrote a while back (some small tweeks).   Bascially instead
of using MemoryStream we use a new SementedMemoryStream.
Marco. Please build this locally and test that it performs well and does what you want.
Note that we don't use MemoryMappedFileStreamWriter anymore so I have #ifdefed it out for now.
Also to avoid dependency of MemoryMappedFileStreamReader on MemoryMappedFileStreamWriter I cloned the BlockCopyCapacity constant into  MemoryMappedFileStreamReader
@mpeyrotc  @sharwell

@mpeyrotc telle me this passes testing


Wrong open namespace suggestion in case of FS0043

@cartermp it looks like it's been introduced by your last PR.

Repro'd.  Good catch, thanks!

My only idea is to special case FSharp.Core in the CreateEntity function in ServiceAssemblyContext.  I can try that out this evening.

Is it related to [<AutoOpen>]?

@smoothdeveloper Doesn't seem like it.  Code like this:
[<AutoOpen>]
module Foo =
    let (>.>) x y = x + y

[<EntryPoint>]
let main argv =
    let y = 2 >.> 12.

    0 // return an integer exit code

won't trigger a lightbulb.  In @vasily-kirichenko's repro, FSharp.Core is actually pulled up from tryFindInsertionContext.

Fixed in https://github.com/Microsoft/visualfsharp/pull/2515


Fix for infinite loop when combining Stack and Tree navigation

This fixes #2288

I'm happy to add some tests for this, but would need some pointers on where they should go. Maybe extending NavigationStackTestCaseView?

Hi @benlings, thanks for the PR! This looks like a great fix, and we'd definitely like to take you up on your offer to write a test. We actually have a slim (but growing) integration test suite in the project:
https://github.com/pointfreeco/swift-composable-architecture/tree/main/Examples/Integration/Integration
How do you feel about adding a new "…TestCase.swift" file to the project that demonstrates the problem? You can even just get it most of the way and then we can do any last bits of clean up.
Thanks!

Thanks for the pointers @mbrandonw .  I looked at creating a new test case, but it would have duplicated most of the existing 'NavigationStackTestCasefor the initial setup. I've instead added thenavigationDestination` alongside the existing alert presentation. I'm happy to separate it if you prefer through 🙂.

Hi @benlings, thanks for taking a stab at the test. However, if I revert your NavigationDestinationView change and run the integration app, the drill down works fine. I open the nav stack sheet, then tap "Go to counter", then tap "Open navigation destination", and it drills down. No infinite loop.
Is there something else that needs to be done to trigger the bug?

@mbrandonw I think the bug is fixed in iOS 17, but if you try in Xcode 14.3/iOS 16, it should happen.

Ahhh right ok. Will take another look in a minute.

Ok, I was able to confirm the bug in 14.3 and confirm that the test passes with the change. Will merge once it's green!

Thanks @mbrandonw and @stephencelis! I hadn’t tested this on iOS 17, so wasn’t aware of the fix there. I had seen the bug on 16.2-16.4.


Test extension engine compatibility

Test for #11573

[ ] Any OS

Complexity - 3
Here you verify if VS Code lets you install / update the extension version compatible to the current VS Code.
Set up

Make sure you can publish an extension. Ref - http://code.visualstudio.com/docs/tools/vscecli
Use the sample test extensions
This repo has 3 extension packs (1, 2, 3) which are already published
Use these extensions for testing following scenarios (You can also come up with your own if you want to  :) )
Do play around with following property for testing different scenarios

"engines": {
        "vscode": "^1.0.0"
    }

Note: Publishing the extension takes a while to get reflected in the market place.
Installing the compatible version

Make sure the latest version of extension you are installing is not compatible with current VS code version. And one of the older versions is compatible. Use the above engines-->vscode property and publish accordingly.
Installing this extension should install the version compatible to the current VS Code.

Installing the compatible version

Make sure that Extensions view does not show the above extension as outdated even if it has a newer version which is not compatible.
If there a new version which is compatible then this should be shown as outdated (Update action is enabled).
Updating this extension, updates to the latest version compatible

@chrmarti FYI


Database connection time included in query execution time

Laravel Version: 8.16.0
PHP Version: 8
Database Driver & Version: MySQL 8.0.19

Description:
MySQL/database connection time is included in first db query time stat.
Steps To Reproduce:
Perform select query e.g:
use App\User;

DB::listen(function($q) {
	var_dump($q->time);
});

User::first(); // 15ms
User::first(); // 0.68ms
User::first(); // 0.66ms

Notice how the first query time logged is much slower than the second and third. This is because Laravel has to connect to mysql, which is included in the time.
This has implications on things like Debugbar:

This is the very first query that runs and it says it takes 15ms - it doesn't. It takes 0.6ms. It's good to bring awareness of how long db takes to connect, but should it be doing it through a particular query? Is this intended behaviour?

Yeah, this has been the behavior for a while now. I agree it's not ideal but I don't think there's much we can do in the framework for this. Appreciating a PR if you discover an improvement here though.


ColumnPresenceChecker is incompatible with Rails' new default belongs_to validation behavior

Starting in the next major release of Rails, thanks to rails/rails#46522, the validation behavior of belongs_to has changed to include an :if, to only validate if the underlying foreign key attribute has changed. This does not play well with the way ColumnPresenceChecker analyzes whether a particular column is consistent with its AR model:
https://github.com/djezzzl/database_consistency/blob/18e4aec9bb33f71f7de1d61ee906774a10c987b3/lib/database_consistency/checkers/validators_fraction_checkers/column_presence_checker.rb#L56-L68
https://github.com/djezzzl/database_consistency/blob/18e4aec9bb33f71f7de1d61ee906774a10c987b3/lib/database_consistency/checkers/validators_fraction_checkers/column_presence_checker.rb#L36-L38
https://github.com/djezzzl/database_consistency/blob/18e4aec9bb33f71f7de1d61ee906774a10c987b3/lib/database_consistency/checkers/validators_fraction_checkers/column_presence_checker.rb#L7
I'm not sure off-hand what the ideal change is here to make this continue to work, but wanted to raise the issue now while the next major release of Rails is still in active development!

HI @djezzzl Unfortunately this checker fails in rails 7.1 ( which was released about a week ago )

@djezzzl  @agrobbin I made this little "quick fix" which made all my belongs_to pass with rails 7.1 defaults
https://github.com/chaadow/database_consistency/commit/22707383848851005e910b25dcc18e22262374af
haven't tested backward compatibility. but if you can take a look maybe I can create a PR with this change

At first glance it seems like a reasonable guess, but I'll defer to @djezzzl here, as I'm not sure if that's "safe enough".

Hi there 👋
First, thank you both for using the gem and reporting the issue!
The idea that @chaadow has suggested seems reasonable here. Even though it may bring false positives (in cases with custom if: :something), at least we will have less noise now. Also, it's worth adding that covering this case is "nice to have" rather than a critical issue (like missing unique indexes).
There is also a way to patch ActiveRecord to "mark" those presence validators with this optimized "if" condition. As the database_consistency runner is expected to run as a separate process on demand, we can do that without affecting other environments (development/production/test, etc). However, maintaining it could be slightly more complicated and unwelcome.
With that said, I would go with this proposal by chaadow.
Would you mind creating a PR? I would be happy to merge it and release it ASAP.
P.S. It would be good to add one more check to your condition that the ActiveRecord's version is 7.1+

Released in 1.7.21!
Thank you again! Have a great week!


[NFC] Add ImportSet::dump() + fix module dumpRef

Some tiny debug utility improvements I'm pulling out of #34556, which is only tangentially related.

@swift-ci smoke test

@swift-ci please smoke test

clang-10: error: unable to execute command: Killed: 9

@swift-ci please smoke test macOS platform


⚠ Cioos Pacific CKAN Sitemap has degraded performance

In b5e28fc, Cioos Pacific CKAN Sitemap (https://catalogue.cioospacific.ca/sitemap/sitemap-1.xml) experienced degraded performance:

HTTP code: 200
Response time: 7708 ms

Resolved: Cioos Pacific CKAN Sitemap performance has improved in 9c99a35 after 1 hour, 4 minutes.


I do not hear a sound notification when the focus session ends (Promodoro)

IOS 16:

🐛 Describe the bug
There is no sound notification when the focus session ends
Expected behaviour
A ringtone
Steps to reproduce

Steps to reproduce the behaviour:

Start time
When it ends then play a ringtone

Heya @VerdantStartup ! I'm seeing that you marked your OS as being iOS; this repo is for our browser extension for Chrome and Firefox. Is your issue pertaining to the iOS app?

Yes :) in all apps


(1) use openvisualcloud dockerhub images (2) certificate moves under …

…deployment (3) remove sudo

the PR65 is same as (1) .
update the CI as the ffmpeg folder is removed.

image/ffmpeg is no longer needed.


Ray update

Aims to address #164.  PR necessary to see if GH Actions will be satisfied.
Requires ray 1.0.0 or greater, setup.py is modified accordingly.

@pgbrodrick I'm fine with merging this, if you think it's ready to go?

There are still some issues with the multi-node operation that I'm working through / waiting on updates on the ray-side for.  Let's hold this as a PR for a bit yet, and I'll keep rechecking the status and post back when things look good.

Closing and re-initializing for catchup.


GeolocatorPlugin doesn't ask permission

Bug Information
When using "CrossGeolocator.Current.StartListeningAsync" or "locator.GetPositionAsync" I exptect the library to ask the user for permission if the user has not given the permission yet.
Version Number of Plugin:<IP_ADDRESS>
Device Tested On:
Simulator Tested On: Iphone 11 IOS 13.4 and Android A70
Version of VS: Visual Studio 2019 16.5.4
Version of Xamarin: latest
Versions of other things you are using:
Steps to reproduce the Behavior
Ask for location or use the Listen StartListeningAsync method
Expected Behavior
When there is no location permission, a popup should be displayed asking the user for location permission
Actual Behavior
It doesn't show the popup to ask the user for location permission
Code snippet
`            if (!_crossGeolocatorService.IsGeolocationAvailable())
{
_userDialogs.Alert("Geolocation is not available on this device!");
return;
}
        // Ask user to enable location, and still start listening so that when location is on, we start listening
        if (!_crossGeolocatorService.IsGeolocationEnabled())
        {
            _userDialogs.Alert("Please enable your location!");
        }

        if (!_crossGeolocatorService.IsSupported() || _crossGeolocatorService.IsListening())
        {
            return;
        }

        CrossGeolocator.Current.DesiredAccuracy = 1;
        CrossGeolocator.Current.PositionChanged += PositionChanged;

        var result = await CrossGeolocator.Current.StartListeningAsync(TimeSpan.FromSeconds(5), 1, false, new ListenerSettings
        {
            ActivityType = Plugin.Geolocator.Abstractions.ActivityType.Other,
            AllowBackgroundUpdates = true,
            DeferLocationUpdates = false,
            DeferralDistanceMeters = 1,
            DeferralTime = TimeSpan.FromSeconds(1),
            ListenForSignificantChanges = false,
            PauseLocationUpdatesAutomatically = false
        });`

you are crazy wanting a location plugin to do permissions for many reasons, most notable being a very poor user experience as you are not controlling when the user gets interrupted to give permission.
I would recommend implementing a proper UI flow and use this plugin to request permissions and only start the part of the app that uses location once granted.
https://docs.microsoft.com/en-us/xamarin/essentials/permissions?tabs=ios

@chrisfoulds  But I reed this in the documentation of geolocator plugin "Before making any calls to the geolocator that requires the permissions, you should consider checking that the user has granted proper permission. The geolocator plugin will attempt to ask for permission, but it is not guaranteed."
So it should handle it for me right? If not, I can indeed use the link you just gave me, but what happens if the user is asked permission twice (once by my code using the link you send and once by geolocator).
hope you can help me out!

As it says not guaranteed, as in might not happen.
Why in the world would they be asked twice?
Do you know how permissions work ?
Once the user has granted them it is for the entire app.

@chrisfoulds you are right, thank you.

@chrisfoulds Do you perhaps know why the the permissions packge (in xamarin essentials) always grants me Granted while it shouldn't, just curious because you seem to know a lot about this library.

@programmingworld1 no sorry, both libraries used in conjunction work perfectly for me straight away.
It is probably best you raise a issue on xamarin essentials with as much detail as possible.
Android/iOS etc. etc.
but there dozens of threads of similar issues just a google away with solutions
https://forums.xamarin.com/discussion/179666/xamarin-essentials-permissions-failing-to-grant-permission

@chrisfoulds I make use of the latest xamarin essentials, geolocator plugin and make use of the xamarin essentials permissions instead of the jamesmontemagno permission library. Is it a problem doing that?


[BugFix] Use MockUp to mock SystemInfoService

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Problem Summary(Required) ：

The FE UT testHandleResourceUsageReport fails sometimes.
The reason is that, it uses Expectations to mock SystemInfoService, but some daemon threads such as SystemHandler also uses SystemInfoService::getInstance, which causes it fails when they call some not mocked methods of SystemInfoService.
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

@Mergify backport branch-2.5

run starrocks_fe_unittest

run starrocks_fe_unittest

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)

run starrocks_admit_test

run starrocks_admit_test


Provide executor for raw scheduler API instead of using default command line executor

A few importance features could be implemented by using the customized executor
(1) progress report
(2) consolidated and nice formatted log
(3) reliable outputURL for job
(4) expose outputURL to Spark executor and thus the Spark UI in the driver for easy debugging.

I agree, we should move to this.
What do you mean by (2)?

For (2), I meant merge stderr, stdout and possible other logs into one single file for ease of browsing and adding timestamp etc.

Another feature could be to capture and send back the exit code of the job. The mesos status update currently doesn't provide this.

Many users have also requested SFv1-like email notification options for failed, completed jobs.
This is very helpful if you have a long-running job and only want to know if it has broken or it has completed.

Could this also incorporate the functionality of the task proxy (http://dft-task-proxy.app.twosigma.com:28880) which flattens the raw output into human-readable form?

The current plan with the custom executor:

Provide progress update messages to the scheduler
Send the exit code of the job to the scheduler
Send the sandbox location of the job to the scheduler

The Cook Executor is being successfully used as the default executor.


Draft: #3344 Created a local glossary for volto

See #3344
Status

[x]  Create a local Glossary for Volto

[x]  Convert the 3 local glossaries in configuration/settings-reference.md to definition lists.

The glossary was sorted alphabetically?  How to do the same for the definition list?

Not sure how to implement

[ ] When terms are added to the local Glossary, they should also be added to the global one in plone/documentation.
[ ] Configure plone/documentation's conf.py to igore Volto's local glossary.

Sorry, I made a mistake. I realized that we actually do not require a local glossary.md in the volto docs, because we use Intersphinx to pull the glossary references from plone/documentation.
https://github.com/plone/volto/blob/3b3af5ebf8ddc7e8f73aba6bc5abe68bd9b301ef/docs/source/conf.py#L155-L156
I made a test on the main branch in Volto to confirm that this is so.
Here's the revised checklist:

[ ] Create a local Glossary for Volto Remove
[x] Convert the 3 local glossaries in configuration/settings-reference.md to definition lists.
[ ] Manually sort the definition lists. Definition lists do not have a sort option.
[ ] Make sure that the terms that are inline literals are surrounded by backticks so that they render correctly.
[ ] When a new term is desired, it should also be added to the global one in plone/documentation.
[x] Configure plone/documentation's conf.py to igore Volto's local glossary. Not needed

I apologize for my mistake.
As a side note, this page should eventually be replaced by something that can automatically document the docstrings of these modules, similar to autodoc for Python code. See https://github.com/plone/volto/issues/3672

Hi, @stevepiercy is this pull request still required?

Yes. There are unfinished items in the checklist.

Closing as abandoned.


GPU mode RuneLite Vibrant color change

This is about the vibrant color change that was made to Runelite today,
could we get an option to get the more vibrant colors back?
Make it an optional option maybe, i already see alot people really wanting it back as it was on the GPU mode.

Fixed in <IP_ADDRESS>

Fixed in <IP_ADDRESS>


MES: unable to swap rune pouch configure option

Type
Incorrect behavior
Operating System
Windows
OS Version
W10 x64
Bug description
The update on 2024-02-21 added the option to configure the rune pouch while in the bank. It's currently not possible to swap the shift-click option to configure.
Screenshots or videos
https://github.com/runelite/runelite/assets/7929021/cb5b6b7d-7d64-4ee1-9860-0db159518519
RuneLite version
RL master aka 1.10.24-SNAPSHOT, revision number 6e98a61d83b8d310e4a69e398d711a02b8f92693
Logs
client.log

Can you check if you have the 'Bank Deposit Shift-Click' under 'UI Swaps' set to 'Eat/Wield/Etc.'

RL master
https://github.com/runelite/runelite/assets/7929021/d6d1dab2-d581-4b1a-b45b-cd14a6beadc0

But I think that's the same behavior as with any item?

In this scenario, I replaced shift click with 'wear' (not by setting the config to 'eat/wield/etc..', but by manually swapping). So the 'Reset' option for the 'Swap shift click' is the default option 'Deposit-1'.
Same thing for the rune pouch, the default option is configure, so whenever you 'Swap left click' to something different, you can use the 'Reset' to switch it back to 'Configure'.
However, I do feel like it would be nice to make this work (left click = deposit, shift left click = configure and still have 'Eat/wield/etc..' enabled)

https://github.com/runelite/runelite/assets/7929021/fa1473c8-362a-423d-969f-ae39a0de805c


test/eperm-stat.js should be ignored on win32

test/eperm-stat.js has symlinks in its result, so it should be ignored, like in other tests, on Windows.

https://github.com/isaacs/node-glob/pull/303

No longer an issue on v9


suggestion - user media control buttons in bottom bar

in my experience users are not able to find the controls button inside their box.
we should follow the common pattern that already exists with similar software (Google Meet, Jitsi..):
a fixed bottom bar with controls button always visible, including a red "hang up" button
they could also be placed in the top bar, but on mobile there will not be enough orizontal space for everythng

Hi - in my opinion, horizontal media control buttons are preferable. It’s the norm. However, in Jitsi and other systems these buttons by default are not always visible. In Jitsi you can configure the bottom bar to be always visible I think. Otherwise by default when the user moves the cursor, it becomes visible.
In the new branch these buttons are always visible like you want. Check letsmeet.no

that's an improvement!

No only always visible, the user can decide in setting if they should be always visible or only on cursor over his video.

I will make a setting available to have a separate control button bar

You have killed the advance box on Me. It stopped to show the resolution and codecs.

Fixed! You are quick to test!

In Mobile when screen shared the button overlaps on the top of video. by adding this button on left made the video window becoming small. However we have option to not enable separate media controls.
I would suggest the buttons can be in buttom , but film strip video will block the controls.
I am attaching some screenshot of google meet how the layout looks

One more bug. If the controls are in the separate toolbar, the translation is not working. On the video it is working.

Would you fix the translations please.


.clr generated from Zeplin not translated well in XCode

When defining colors in Zeplin and exporting it to .clr file , the R.swift isn't creating the right colors.
e.g : i have created a color from RGB 77 217 180 which is 4DD9B4. it was translated to 43D4A5

This may be related to https://github.com/mac-cain13/R.swift/issues/301
R.swift currently always assumes the colors defined in a .clr are in the sRGB color profile.
If the .clr file is in a different color profile, R.swift converts the color incorrectly. This is a bug.
Do you know in what color profile the .clr file is that was exported from Zeplin?

All i know is that the Color Representation of the project is automatic. As for the exporting option , it doesn't allow me to choose a profile

I've merged the PR that checks the colorspace so the next release of R.swift should at least warn you if the color space is not correct. Hope that at least makes this problem clearer.
@YotamGolomb could you share a problematic clr file so we can check if the color profile in your clr is indeed the problem?

Also; Support for P3 colors in CLR files would be nice!

I'm going to assume this is fixed with PR #312, P3 support has its own ticket now: https://github.com/mac-cain13/R.swift/issues/317


[BUG][Storage mgmt Track2] RestoreBlobRanges' output TimeToRestore is always 1/1/0001 12:00:00 AM +00:00

Library name and version
Azure.ResourceManager.Storage 1.0.0-beta.9
Describe the bug
In RestoreBlobRanges' output, no matter what the user input of TimeToRestore is, the output TimeToRestore's value is always 1/1/0001 12:00:00 AM +00:00. This happens no matter if we put WaitUtil.Started or WaitUtil.Completed when calling the method.
Expected behavior
For RestoreBlobRanges, the TimeToRestore in the output BlobRestoreStatus object should be the same as the TimeToRestore value specified in BlobRestoreContent object when calling RestoreBlobRanges. Say the input is 1/1/2022 15:23:03 AM +00:00, then the output should be the same.
Actual behavior
RestoreBlobRanges' output TimeToRestore is 1/1/0001 12:00:00 AM +00:00, but the input is not.

The response returned by the server seems to be correct and has the right time:
GET https://management.azure.com/subscriptions/***/providers/Microsoft.Storage/locations/eastus2euap/asyncoperations/97cea899-6954-400d-8ac0-5bbbc547ff10?monitor=true&api-version=2021-08-01 HTTP/1.1
CommandName: Restore-AzStorageBlobRange
ParameterSetName: AccountName
x-ms-client-request-id: ea2a7a0a-d3aa-4912-b4ac-ce1169dc6363
x-ms-return-client-request-id: true
Authorization: Bearer ***
Host: management.azure.com

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 277
Content-Type: application/json
Expires: -1
x-ms-client-request-id: ea2a7a0a-d3aa-4912-b4ac-ce1169dc6363
x-ms-request-id: 0818c420-1797-4b42-af4e-c0fd775fc311
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 11990
Server: Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0
x-ms-correlation-request-id: 81c45bec-795f-490f-9564-a2463e1e3e6f
x-ms-routing-request-id: SOUTHEASTASIA:20220609T080208Z:81c45bec-795f-490f-9564-a2463e1e3e6f
X-Content-Type-Options: nosniff
Date: Thu, 09 Jun 2022 08:02:07 GMT

{"status":"Complete","restoreId":"97cea899-6954-400d-8ac0-5bbbc547ff10","parameters":{"timetoRestore":"2022-06-09T07:57:41.3435008Z","blobRanges":[{"startRange":"container1/blob1","endRange":"container2/blob2"},{"startRange":"container3/blob3","endRange":"container4/blob4"}]}}

Reproduction Steps
var restoreLro = account.RestoreBlobRanges(
                        WaitUntil.Started,
                        new Track2Models.BlobRestoreContent(
                            this.TimeToRestore,
                            PSBlobRestoreRange.ParseBlobRestoreRanges(this.BlobRestoreRange))
                        );

// Wait for result to be returned and check for TimeToRestore value.
var result = restoreLro.WaitForCompletion().Value;

This is the code we use to reproduce the bug - first call the method with WaitUtil.Started, and then WaitForCompletion. However, if we use WaitUtil.Completed, the bug still exists. Thus it can also be reproduced by
// Wait for it to return and check for TimeToRestore value
var restoreLro = account.RestoreBlobRanges(
                        WaitUntil.Completed,
                        new Track2Models.BlobRestoreContent(
                            this.TimeToRestore,
                            PSBlobRestoreRange.ParseBlobRestoreRanges(this.BlobRestoreRange))
                        );

Environment
No response

Hi @yifanz0, I have double checked this issue. The root cause is that in swagger the name of this property is timeToRestore, but the name of this property in response is timetoRestore, you can see that the second t is not capital in response so our deserialization code can't find the corresponding key value pair.
I think the best fix is to unify the behavior between backend service response and swagger spec. However, we can also consider introducing some customized code from SDK side as a temporary workaround. Feel free to leave your comments, thanks.

@Yao725
Thanks for the investigation!
This works in Track1 SDK, so hope there can be some way to make this also works in Track2.
Besides that, we will inform SRP server team about this unalignement.

@blueww, this can work in track 1 SDK because in track 1 we use Newtonsoft.Json, which is case-insensitive by default. We have changed the SDK code to use timetoRestore in serialization and deserialization and the test record prove it can work. Hope we can resolve this issue in swagger side ASAP.


bump sqfluff version; move snowflake private key to env variable

Fixes #31
Updated package versions as requested as well as moved snowflake private keys from a file into an environment variable.

Thank you James!


windows rancher-compose not looking for environments under project

It looks like the rancher-compose is looking for envronments as a root resource as opposed to under projects (e.g /v1/projects/{proj_id}/environments/{env_id}).
D:\src\elk_stack>rancher-compose up
←[34mINFO←[0m[0000] Creating environment elk_stack
←[31mERRO←[0m[0000] Failed to open project elk_stack: Bad response from [http://<IP_ADDRESS>:8080/v1/environments], statusCode [422]. Status [422 status code 422]. Body: [{"id":"0fc03e8b-9863-4185-94b1-9df47142fb42","type":"error","links":{},"actions": },"status":422,"code":"InvalidCharacters","message":null,"detail":null,"fieldName":"name"}]
2015/09/03 16:41:54 Failed to read project: Bad response from [http://<IP_ADDRESS>:8080/v1/environments], statusCode [422]. Status [422 status code 422]. Body: [{"id":"0fc03e8b-9863-4185-94b1-9df47142fb4 2","type":"error","links":{},"actions":{},"status":422,"code":"InvalidCharacters","message":null,"detail":null,"fieldName":"name"}]
This is on v0.2.5 for windows

We need to report errors better but barried in that blob of json is InvalidCharacters.  Basically an Stack/project should be alphanumeric and - only.

roger that, thanks that worked.


[CI] - Renarde + Quarkus main

This issue will be opened and closed depending on the state of https://github.com/quarkiverse/quarkus-renarde build against Quarkus main SNAPSHOT.
If you are interested in being notified, please subscribe to this issue.

@FroMage any chance you could have a look? AFAICS, it has never been green.

I had a look, and it's a Codestart bug that @ia3andy is looking at.

I opened https://github.com/quarkiverse/quarkus-renarde/pull/35 and https://github.com/quarkiverse/quarkiverse-parent/pull/53

@FroMage 👆

@mkouba should I be expecting these sorts of issues with the latest Qute changes?
Caused by: java.lang.NullPointerException
	at io.quarkus.qute.deployment.QuteProcessor$Match.getTypeParameters(QuteProcessor.java:2281)
	at io.quarkus.qute.deployment.QuteProcessor.resolveType(QuteProcessor.java:2004)
	at io.quarkus.qute.deployment.QuteProcessor.validateNestedExpressions(QuteProcessor.java:1246)
	at io.quarkus.qute.deployment.QuteProcessor.validateExpressions(QuteProcessor.java:858)

@mkouba should I be expecting these sorts of issues with the latest Qute changes?
Caused by: java.lang.NullPointerException
	at io.quarkus.qute.deployment.QuteProcessor$Match.getTypeParameters(QuteProcessor.java:2281)
	at io.quarkus.qute.deployment.QuteProcessor.resolveType(QuteProcessor.java:2004)
	at io.quarkus.qute.deployment.QuteProcessor.validateNestedExpressions(QuteProcessor.java:1246)
	at io.quarkus.qute.deployment.QuteProcessor.validateExpressions(QuteProcessor.java:858)

I have no idea. It could be a regression caused by https://github.com/quarkusio/quarkus/pull/26826.
io.quarkiverse.renarde.it.RenardeBackofficeTest is the test that failed. I can take a look next week.
CC @michalvavrik.

@mkouba It could be, but I won't know till I have closer look. Will let you know.

@mkouba Oh yeah, it's related. I'll fix this.

@mkouba Oh yeah, it's related. I'll fix this.

Thanks!

Thanks.

@FroMage are you watching this?

This is a Qute bug, isn't it @mkouba ?
Caused by: java.lang.NullPointerException: Cannot invoke "org.jboss.jandex.ClassInfo.isInterface()" because "classInfo" is null
	at io.quarkus.qute.deployment.Types$AssignableInfo.from(Types.java:146)
	at io.quarkus.qute.deployment.Types.isAssignableFrom(Types.java:194)
	at io.quarkus.qute.deployment.Types.isAssignableFrom(Types.java:140)
	at io.quarkus.qute.deployment.QuteProcessor.findTemplateExtensionMethod(QuteProcessor.java:2377)
	at io.quarkus.qute.deployment.QuteProcessor.validateNestedExpressions(QuteProcessor.java:1246)
	at io.quarkus.qute.deployment.QuteProcessor.validateExpressions(QuteProcessor.java:860)

No it was removed. See https://github.com/quarkusio/quarkus/pull/32186#issuecomment-1489788799
It must have been logging warnings for quite awhile to update the artifactId.

@FroMage under control?

@FroMage are you on it?

No time yet, but it's on my list.

I haven't been able to reproduce it with jdk 17 and graalvm 23.1. This only happens on jdk 21 and graalvm 23.1.

OK, found a fix for the latest graalvm on jdk 21, but this is going to break for another reason now, which is that Quarkus main introduced a new build item that I must use otherwise it fails the build (the one that verifies usage of @Blocking etc) and this is not available in any released version, so I can't commit its usage to git, so I can't run against Quarkus main.
Not sure how to make CI work in such a case, do you know @gastaldi ?

@FroMage in this case you may need to create a new branch for the current version and bump main to the newly released Quarkus version (when it happens). Until then the ecosystem-ci will remain broken, I'm afraid.
It worries me that main introduced a breaking change, can we somehow change something in Quarkus main to avoid this extra headache?

Not sure how we could do that, frankly.

@FroMage with the CR1 you should be able to fix the main right?

@FroMage it's the htmx test, I will have a look..

Weird It works locally, let's rerun it

This time it's your test @FroMage :)

Ah yeah, Quarkus changed the case of that cookie, I saw a PR fly by. I'll make it case-insensitive.

Well, it's hard to make it case-sensitive, so it'll be broken in main until Quarkus makes a release 🤷

This is due to the Big Rename, don't know how to fix it.

This is due to the Big Rename, don't know how to fix it.

@FroMage can you clarify what the problem is? I wouldn't expect it to cause any issue. At least not if you are using a consistent stack.

I had a long discussion about this on Zulip. Turns out it's because the CI builds didn't build Quarkus with relocations, and I never managed to change the deps to the new ones in a way that tests passed. I think it was because I had overlooked the CSRF module.
I've now updated main to the new module names, so hopefully it will pass. But when I tried it locally on Quarkus main I had OIDC test failures, so… not sure.

OK, ping me on Zulip if you need help with these renames. I'm always available to smooth things up.

I think I got the renames under control. Now I have these failures:
2024-05-02T06:57:33.0838575Z [ERROR]   RenardeCodestartTest.buildAllProjects:29 [Run project return status is zero]

2024-05-02T06:57:32.6115591Z [ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:999-SNAPSHOT:build (default) on project test-codestart: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
2024-05-02T06:57:32.6118733Z [ERROR] 	[error]: Build step io.quarkus.qute.deployment.QuteProcessor#collectTemplates threw an exception: java.lang.IllegalArgumentException
2024-05-02T06:57:32.6120574Z [ERROR] 	at jdk.zipfs/jdk.nio.zipfs.ZipPath.relativize(ZipPath.java:242)
2024-05-02T06:57:32.6122078Z [ERROR] 	at io.quarkus.qute.deployment.QuteProcessor.lambda$scanTemplateRootSubtree$12(QuteProcessor.java:3394)
2024-05-02T06:57:32.6123621Z [ERROR] 	at io.quarkus.paths.FilteredPathTree.lambda$walk$0(FilteredPathTree.java:35)
2024-05-02T06:57:32.6124850Z [ERROR] 	at io.quarkus.paths.PathTreeVisit.walk(PathTreeVisit.java:25)
2024-05-02T06:57:32.6125977Z [ERROR] 	at io.quarkus.paths.ArchivePathTree.walk(ArchivePathTree.java:98)
2024-05-02T06:57:32.6127387Z [ERROR] 	at io.quarkus.paths.FilteredPathTree.walk(FilteredPathTree.java:33)
2024-05-02T06:57:32.6128812Z [ERROR] 	at io.quarkus.qute.deployment.QuteProcessor.scanTemplateRootSubtree(QuteProcessor.java:3391)
2024-05-02T06:57:32.6130503Z [ERROR] 	at io.quarkus.qute.deployment.QuteProcessor.lambda$scanPathTree$7(QuteProcessor.java:2171)
2024-05-02T06:57:32.6132039Z [ERROR] 	at io.quarkus.paths.PathTreeVisit.consume(PathTreeVisit.java:47)
2024-05-02T06:57:32.6174713Z [ERROR] 	at io.quarkus.paths.ArchivePathTree.accept(ArchivePathTree.java:147)
2024-05-02T06:57:32.6176122Z [ERROR] 	at io.quarkus.qute.deployment.QuteProcessor.scanPathTree(QuteProcessor.java:2168)
2024-05-02T06:57:32.6177631Z [ERROR] 	at io.quarkus.qute.deployment.QuteProcessor.collectTemplates(QuteProcessor.java:2152)
2024-05-02T06:57:32.6179062Z [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2024-05-02T06:57:32.6180716Z [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2024-05-02T06:57:32.6182519Z [ERROR] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2024-05-02T06:57:32.6184021Z [ERROR] 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2024-05-02T06:57:32.6185177Z [ERROR] 	at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
2024-05-02T06:57:32.6186364Z [ERROR] 	at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
2024-05-02T06:57:32.6187528Z [ERROR] 	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
2024-05-02T06:57:32.6188881Z [ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
2024-05-02T06:57:32.6190378Z [ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
2024-05-02T06:57:32.6191834Z [ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
2024-05-02T06:57:32.6192989Z [ERROR] 	at java.base/java.lang.Thread.run(Thread.java:840)
2024-05-02T06:57:32.6193915Z [ERROR] 	at org.jboss.threads.JBossThread.run(JBossThread.java:483)
2024-05-02T06:57:32.6194788Z [ERROR] -> [Help 1]

Which appears to be a bug in Qute, WDYT @mkouba ?
The following 3 are caused by the same issue:
2024-05-02T06:57:33.0842319Z [ERROR]   RenardeBackofficeTest.testBackofficeCustomIdEntityUpdate » Runtime java.lang.RuntimeException: Failed to start quarkus
2024-05-02T06:57:33.0844512Z [ERROR]   RenardeHtmxPlaywrightTest.testOpenAndEditJoeAndBar » Runtime java.lang.RuntimeException: Failed to start quarkus
2024-05-02T06:57:33.0846604Z [ERROR]   RenardeOidcTest.microsoftLoginTest » Runtime java.lang.RuntimeException: Failed to start quarkus

2024-05-02T06:57:01.9810141Z 	[Exception 0] io.quarkus.runtime.configuration.ConfigurationException: UserInfo is required but the OpenID Provider UserInfo endpoint is not configured. Use 'quarkus.oidc.user-info-path' if the discovery is disabled.

So this must be a recent change in OIDC, no, @sberyozkin ?

Ah, thanks. Hope the fix doesn't break the Windows issue that this was added for.

So, the OIDC issue is due to https://github.com/quarkusio/quarkus/issues/40473 and the Qute bug has already been fixed in main. I'll add a workaround for https://github.com/quarkusio/quarkus/issues/40473 until we figure out how to solve it.
Damnit, now I get this error:
	[error]: Build step io.quarkus.webjar.locator.deployment.WebJarLocatorStandaloneBuildStep#findWebjarsAndCreateHandler threw an exception: java.lang.NoSuchFieldError: Class io.quarkus.deployment.Feature does not have member field 'io.quarkus.deployment.Feature WEBJARS_LOCATOR'
	at io.quarkus.webjar.locator.deployment.WebJarLocatorStandaloneBuildStep.findWebjarsAndCreateHandler(WebJarLocatorStandaloneBuildStep.java:92)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
	at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
	at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
	at java.base/java.lang.Thread.run(Thread.java:1583)
	at org.jboss.threads.JBossThread.run(JBossThread.java:483)

Which may or may not be related to relocations not being built. I did not build them on purpose, in order to find out if any issue existed.
Did the webjars extension get relocated, @ia3andy ?

@FroMage yes, but the question is why do you need webjar locator?

Ok for the tests, then let me fix it

https://github.com/quarkusio/quarkus/pull/40066

So, I suppose I can only fix this once it's released.

Build failed with:
2024-05-29T06:40:23.3104775Z [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.15.0:install-node-and-npm (install node) on project quarkus-renarde-backoffice: Could not download Node.js: Could not download https://nodejs.org/dist/v20.12.2/node-v20.12.2-linux-x64.tar.gz: Premature end of Content-Length delimited message body (expected: 46,672,067; received: 4,620,288) -> [Help 1]

So it looks transient.

Again this one:
Error:  Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.15.0:install-node-and-npm (install node) on project quarkus-renarde-backoffice: Could not download Node.js: Could not download https://nodejs.org/dist/v20.12.2/node-v20.12.2-linux-x64.tar.gz: Connection reset -> [Help 1]

@ia3andy this appears to be a bit fragile :(

I will have a look, I have an idea on how to make it less fragile

Issue is:
2024-10-02T06:49:18.7936768Z com.oracle.svm.core.util.UserError$UserException: Unsupported features in 2 methods
2024-10-02T06:49:18.7937704Z Detailed message:
2024-10-02T06:49:18.7940393Z Error: Discovered unresolved method during parsing: java.time.chrono.ChronoLocalDateTime.toEpochSecond(java.time.ZoneOffset). This error is reported at image build time because class io.quarkus.qute.LocalDateTime_ValueResolver$$function$$14 is registered for linking at image build time by command line and command line.
2024-10-02T06:49:18.7944042Z Error encountered while parsing io.quarkus.qute.LocalDateTime_ValueResolver$$function$$14.accept(Unknown Source)
2024-10-02T06:49:18.7945197Z Parsing context:
2024-10-02T06:49:18.7946832Z    at io.quarkus.qute.CompletedStage.whenComplete(CompletedStage.java:285)
2024-10-02T06:49:18.7947754Z    at root method.(Unknown Source)
2024-10-02T06:49:18.7948125Z
2024-10-02T06:49:18.7950660Z Error: Discovered unresolved method during parsing: java.time.chrono.ChronoLocalDateTime.toInstant(java.time.ZoneOffset). This error is reported at image build time because class io.quarkus.qute.LocalDateTime_ValueResolver$$function$$45 is registered for linking at image build time by command line and command line.
2024-10-02T06:49:18.7954542Z Error encountered while parsing io.quarkus.qute.LocalDateTime_ValueResolver$$function$$45.accept(Unknown Source)
2024-10-02T06:49:18.7955743Z Parsing context:
2024-10-02T06:49:18.7956495Z    at io.quarkus.qute.CompletedStage.whenComplete(CompletedStage.java:285)
2024-10-02T06:49:18.7957399Z    at root method.(Unknown Source)

Any idea @mkouba ?

Any idea @mkouba ?

Hm, it could be related to https://github.com/quarkusio/quarkus/pull/43602 because both ChronoLocalDateTime#toEpochSecond() and ChronoLocalDateTime.toInstant() are interface default methods. We have an integration test for value resolver with default methods but it's not using JDK types. I will try to dig deeper...

Thanks :)

Thanks :)

This should fix the problem: https://github.com/quarkusio/quarkus/pull/43653
(we did not have a test for a default method with params :facepalm:)

Haha, just business as usual 😅 Thanks for the quick fix!

Haha, just business as usual 😅 Thanks for the quick fix!

Yep, we would need 4000 tests instead of 400 :shrug:

Well, don't worry, I'm sure we'll get there 😱

Due to:
2024-10-24T06:44:22.2849021Z [ERROR] /home/runner/work/quarkus-renarde/quarkus-renarde/current-repo/runtime/src/main/java/io/quarkiverse/renarde/util/I18N.java:[96,55] incompatible types: bad type in conditional expression
2024-10-24T06:44:22.2851273Z     java.util.Optional<java.util.Locale> cannot be converted to java.util.Locale
2024-10-24T06:44:22.2854104Z [ERROR] /home/runner/work/quarkus-renarde/quarkus-renarde/current-repo/runtime/src/main/java/io/quarkiverse/renarde/util/I18N.java:[125,31] incompatible types: java.util.Optional<java.util.Locale> cannot be converted to java.util.Locale

Due to https://github.com/quarkusio/quarkus/commit/7f7d3d0859eb50d4e1182b0d20d26120f129e440
I suppose I can only fix it once it's released.

@FroMage this has been failing for a while, are you aware?

See

@FroMage this has been failing for a while, are you aware?

https://github.com/quarkiverse/quarkiverse/issues/74#issuecomment-2435370434


Add private key to propagate anchors

Add a private key to font.lib to propagate here instead of in glyphsLib. Either before or in markFeatureWriter.
See https://github.com/googlei18n/glyphsLib/pull/237#issuecomment-338153409

Should we do this with a filter or in the markFeatureWriter?

yes, a filter can also do this


Alert unregistered players when they sign on.

When a player signs on, if they are not currently registered on the forum, alert them and tell them of the proper commands to do so.

Whenever you get around to adding this, I think it will be a great feature. :)


Rename Debug.h -> Debug_Espfc.h for windows build

Project didn't build on Windows platform because Debug.h clashed with debug.h from the esp8299 library.
Giving the project Debug.h file a custom name fixed this issue.
Fixes #25

Hi @benvdbergh,
thanks for your contribution. There are few references to this header in code, and all of them need to be updated
grep -R Debug.h .
./lib/Espfc/src/Logger.h:#include "Debug.h"
./lib/Espfc/src/Device/BusSPI.h:#include "Debug.h"
./lib/Espfc/src/Device/GyroMPU6050.h:#include "Debug.h"
./lib/Espfc/src/Device/BaroBMP085.h:#include "Debug.h"
./lib/Espfc/src/Device/GyroMPU9250.h:#include "Debug.h"
./lib/Espfc/src/Device/BaroBMP280.h:#include "Debug.h"
./lib/Espfc/src/Model.h:#include "Debug.h"

Oh okay, thanks! I just made it buildable for the default setup when cloned.
In these cases I guess a simple rename will also do the job?

Modified other files too


Do not bundle source code before publishing

Is your feature request related to a problem? Please describe.
Tinyspy library bundles using tsup before publishing.
The package.json scripts for reference
https://github.com/tinylibs/tinyspy/blob/0ac4b76a6b17626bd2e587392f6f621de69f3fd9/package.json#L7-L9
This reduces the install size of the published package, but affects readability and usability significantly.
$ tinyspy> pnpm build

$ tinyspy> du -sh dist
 12K    dist

$ tinyspy> ls dist
index.cjs  index.d.ts index.js

$ tinyspy> ./node_modules/.bin/tsc -p tsconfig.json --outDir dist

$ tinyspy> du -sh dist
 20K    dist

$ tinyspy> ls dist
index.js      restoreAll.js spy.js        spyOn.js      utils.js

For example, I was debugging a fix for https://github.com/vitest-dev/vitest/issues/2821, and noticed that tinyspy source code is bundled, making it difficult to read through.
Describe the solution you'd like
Just transpile the tinyspy package before publishing, so that it's still readable for someone debugging through the source code.
Describe alternatives you've considered
Look at the source code on GitHub, and attempt to guess equivalent code in bundle

Tinyspy started minifying after 1.0 because it hit stable (notice the word "tiny" in the name). We don't minify everything (for example, white spaces are left out for readability). I don't see any real reason to not bundle it now, your use case affects 0,01% usages (the number is from my head, the point is that it's small). So if we are going with the 80/20 rule I don't think it makes sense to remove bundle/minification step.


Updates to V1 History plugin to support FIO

Tracks various updates to the V1 history plugin to support FIO.

Here is the initial import of the light history implementation for FIO from Aaron:

18-Mar-2020 - From Eric Butz
Issue where the initial transaction does not show up for the

On Testnet Monitor, create a new key pair
Use the faucet to fund the account using the public key. Copy the transaction ID number.
Go to a block explorer ( https://explorer.testnet.fioprotocol.io ) and search on the account name. You will see that no transactions are listed for that account.
If you enter the txn ID into the explorer, you see the details in the Blockchain Raw Data.
If you search on the "fio.token" account in the block explorer, you will see the "newaccount" action.
We are wondering if there may not be an update to the history plugin code that could serve as a short term solution to somehow capture that action.

Greymass response:
So, a heads up on my thoughts for this:
the function that determines who gets "notified" in history is here:
https://github.com/fioprotocol/fio/blob/master/plugins/history_plugin/history_plugin.cpp#L186-L205
This creates a set of accounts which will contain effectively a pointer to the corresponding action/transaction. Because the account doesn't exist during its creation during the pub key, it wouldn't be a part of that set.
What I suggest is inside that function do the following;
Check  if (at.act.name == N(newaccount)) in that function, and if so, decode the corresponding action, decode the account name from the pubkey, and then add that account name to the set. ( result.insert(blah))

1-May-2020 Issue with duplicate transactions for trnsfiopubkey showing up in history and the block explorer. Tracked in Issue #106

Code has been merged into Develop. Any remaining issues will be tracked separately. Closing.


Selecting directory of JPGs, viewer is just blank

Hi!
Thanks for developing this tool - I have tried it out on videos.  Making training data sets for YOLO quite a bit more efficient!
I wanted to try a directory of JPGs as well, didn't have the same success.  When I selected the directory, the viewer just shows a blank screen.  I know the app is aware of the JPGs, because the file names in the directory show up in the lower part of the window.
Is there a filename convention, or some other reason this isn't working?
Thanks again,
Rob

I figured out the issue.  JPG filenames that have either spaces or non-standard characters (like '(' or ')') are ignored.  I can work around this issue now that I know what it is.  Thanks.
Rob

Thanks for bringing this to my attention i will try to find a way of doing path validation in the next release.


Enhnaced the style of contact from context section

Fixes Issue🛠

Closes #1390
Description👨💻

in this pr i have added some styled in contact from the context part at the top left side added hover effect and animation and also aligned their posiiton.
Type of Change📄

[ ] Bug fix (non-breaking change which fixes a bug)
[ ] New feature (non-breaking change which adds functionality)
[x] Style (non-breaking change which improves website style or formatting)
[ ] Documentation (non-breaking change which updates or adds documentation)
[ ] Responsiveness (non-breaking change which improves UI/UX on different screen sizes)

Checklist✅

[x] I am an Open Source contributor
[x] I have performed a self-review of my code
[x] My code follows the style guidelines of this project
[x] I have commented on my code, particularly in hard-to-understand areas

Screenshots/GIF📷

https://github.com/user-attachments/assets/e3d69d31-94f0-437d-9715-814e5ddd5c4a

Please avoid adding unnecessary extra codes, go through the codebase properly and then add your LOC @biswajit-sarkar-007


doc enhancement - discuss 'func kubernetes deploy', github actions and azure devops

[Enter feedback here]
kudos for detaching the functions funtime from azure datacenter deployment via

keda
kubernetes
azure core tools - func kubernetes deploy

now for the last mile
obviously one wants to integratiethis deploymenent scenario with the rest of one's ci/cd pipeline
as discussed in the documentation referenced by this issue, a series of command line step are required to deploy functions to kubernets on linux let's say. the fact is that to accomplish this today would require a pipeline that

authenticates to the target kubernetes deployment cluster
applys the appropriate kubernetes registry secrets to

pull a previously built image
apply the functions deployment
validate resulting kubernetes manifest

however the documentation for this scenario ignores the ci/cd aspect entirely, but i cannot, and the omission of these details in the associated documentation has impaired my ability to quickly review and understand this feature
thanks
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 2cbf4053-0a3d-a803-3e0d-8cf28db358e8
Version Independent ID: 782efd9c-beea-249c-f8e8-4ee4389bfb07
Content: Azure Functions on Kubernetes with KEDA
Content Source: articles/azure-functions/functions-kubernetes-keda.md
Service: azure-functions
GitHub Login: @eamonoreilly
Microsoft Alias: eamono

@vigouredelaruse
Thanks for your feedback! We will investigate and update as appropriate.


fix : codegen:ios command

in react native 0.74.x can't generate ios build file without targetPlatform cli

Hey @jiunshinn, thx for the PR 🚀 . Do you know when that --targetPlatform option was introduced? If it's only available from 0.74.x, could you add a note that the old version of yarn codegen:ios works up to 0.73.x and the new is from 0.74.x?

Thanks for answer. @mateusz1913
Works regardless of version. It works the same for the current project's react native version, 0.71.1 and works in this repo.

If it worked for older versions, that's fine. Thx for your contribution!


Use IHostedService to migrate database instead of using dotnet ef command

Problem:

Before firing up CoolStore.ProductCatalogApi, it needs to run dotnet ef database update mannually.

Solution:

By using IHostedService we call DbContext.Migration automatically

Resources:
https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-3

Cheers!


Design UX/UI for resource managment in Altinn Studio

Description
We need to define the UI/UX for resource registry management.
Users belonging to a Service Owner organization can create and update resources.
The resource itself has many properties.
The UI needs to include the possibility of setting most of this.
When a Resource is fully defined, it can be published to test or production environments.
Additional Information
This is a new concept. The closes scenario now is lenketjenester in TUL.
Tasks

[ ] Create design for resource registry management.

Acceptance Criterias

[ ] Possible to create new resources or modify existing
[ ] All relevant attributes can be set for existing and new resources created
[ ] Possible to publish resource to a environment
[ ] Possible to navigate to policy admin from UI

@MetteGrytten driver å rydder i backlog. Dette er vel den orignale issuen.  Det er kanskje naturlig du eier den. Men den er kanskje ferdig


[Bug][Deploy Preview] The update fails in s3 generate page when the user tries to update an image for the file which is of a different file type

Description
[What happened] The update fails in s3 generate page when the user tries to update an image for the file which is of a different file type
Neither image nor file name are updated and user cannot change file name during update (feature not allowed)
When user updates a different file type and tries to download, the app crashes and any attempt to open the file fails (second loom video)
Steps to reproduce the behaviour:
https://www.loom.com/share/07caa849225446f9aed58cc138d3868a
https://www.loom.com/share/2d837a253a0a41d9a01b38c5a0199019
Important Details

Version: [Cloud ]
OS: [MacOS]
Browser [chrome]
Environment [deploy preview]

@RakshaKShetty this works perfectly for me. Can you try with 0 files selected by default

@Nikhil-Nandagopal Didn't get you there, do you mean to try an empty upload?

@ramsaptami try when there are no files previously selected in the filepicker

Saptami Ram is inviting you to a scheduled Zoom meeting.
Topic: [appsmithorg/appsmith] [Bug][Deploy Preview] The update fails in s3
generate page when the user tries to update an image for the file which is
of a different file type (#6530)
Time: Aug 12, 2021 06:30 PM India
Join Zoom Meeting
https://zoom.us/j/94881529861?pwd=ZUUzY1c3Y1RDcDdKTXJqUk9HcE4vZz09
Meeting ID: 948 8152 9861
Passcode: GxaLm6xlOk

@Nikhil-Nandagopal So if I update an .xlsx with a .png then the thumbnail changes to the image but on download, the file extension and file name remains as .xlsx so the file fails to open. And user is not given an option to change file name during update

@ramsaptami so that is expected because S3 treats the file name as the identifier to know when to update an existing file and when to add a new file. So the exact name including extension has to remain. I don't think there's a need to replace a file but change it's name, that seems like we should just delete the file and upload a new one.

@Nikhil-Nandagopal I'm new to S3 so the functionality call is something you'll need to pitch in with. But would a case where user has a docx and replaces it with pdf so expects to view and download a pdf - which can be handled the way you suggested perhaps?


Module '"@egoist/tipc/renderer"' has no exported member 'createHandlers'.

it seems tipc does not support "Calling renderer from main" on the latest release
or I missed something?
https://github.com/egoist/tipc/tree/main?tab=readme-ov-file#calling-renderer-from-main

There are some errors in the docs. I've opened a PR #6 to fix it.
import { createEventHandlers } from "@egoist/tipc/renderer"


format do 'simplify' and check via CI

let linter check if code can be simplified

ok I'll have to add --timeout ...


logs being pushed into OMS but having trouble replicating screenshots in Log Analytics

able to see logs in portal, just having problems with queries to replicate screenshot views posted in this repo.

Figured it out, views for import where in the tiles folder.


Open Data - General Notifications around new datasets and updated datasets. https://data.louisvilleky.gov/data.json

From @mgottholsen on June 28, 2017 17:34
Copied from original issue: mgottholsen/IFTTT-Smart-Louisville#8

New Feature Description:
As an IFTTT user, I want to receive a time-based (daily, weekly, monthly, quarterly) notifications of when new Open Data datasets are published and/or when existing datasets are updated.

From @aplannersguide on July 5, 2017 13:22
We set something up for this on our open data portal twitter account here in Chattanooga. Since we update datasets every night it can get kind of spammy. We would like for it to only show when a new dataset is created but so far haven't figured out how to do this with the json data feed. If you can figure it out we would love to replicate it.

Perhaps it makes more sense to just focus on new datasets, as opposed to when things are getting consistently updated...

From @aplannersguide on July 5, 2017 18:2
That would be my recommendation. Let me know if you figure out how to set it up as we would like to replicate your IFTTT.

As we utilize DKAN, please reference https://dkan.readthedocs.io/en/latest/introduction/index.html for interfacing with the Open Data Portal.

New Feature Description:
As an IFTTT user, I want to receive a time-based (daily, weekly, monthly, quarterly) notifications of when new Open Data datasets are published.


Add compatibility for defer option for old browsers

Hi, I just wanted to use the defer option in our project but noticed that it does not change the script execution behavoir. Then i saw that the script gets both async and defer attributes set. There should only be one at a time if you do not want to have old browser compability for parallel script loading. Please check this out: https://html.spec.whatwg.org/multipage/scripting.html#attr-script-defer

ok will check this tomorrow

Will merge/release it, when I have less meetings (anytime today) 😅

@cartok Thank you for contributing to this plugin and the vue-eco-system :slightly_smiling_face:
I have now released both versions 3.1.0 and 3.1.0-vue2
Would be nice if you could report when everything is working as expected