First bytes lost when using IncomingMessage & promise

I'm trying to create a Promise that resolves to a response stream, however, when I pipe the data to another stream the first bytes/chars are removed. Here is a simplified version of what I'm trying to accomplish:
var request = require('request');

new Promise(function(resolve, reject) {
	request.get('http://affenbits.com/').on('response', function(response) {
		resolve(response);
	});
}).then(function(response) {
	response.pipe(process.stdout);
});

Native http.ClientRequest doesn't strip anything:
var http = require('http');

new Promise(function(resolve, reject) {
	var req = http.request({
		hostname: 'affenbits.com'
	}, function(res) {
		resolve(res)
	});

	req.end();
}).then(function(response) {
	response.pipe(process.stdout);
});

Is there any way to avoid this behaviour?
I'm running node v0.12.9 & request 2.67.0

@request/promises any thoughts?

Hi @luissquall , request returns a stream object already. Thus you don't need to use .on(...). This code works as intended:
new Promise(function(resolve, reject) {
    resolve(request.get('http://affenbits.com/'));
}).then(function(response) {
    response.pipe(process.stdout);
});

Anyway, the code you use doesn't work with the stream but with an IncomingMessage instead. I wonder why it doesn't work with Request. Let me dig deeper...

Here is what I understand happened with the IncomingMessage in the case of request-promise versus http. Please handle the info with care because I don't know request's internals 100%.
request internally registers the .on('response', self.onRequestResponse.bind(self)) event of http.request(...). onRequestResponse serves the purpose of processing http's IncomingMessage by forwarding its data to the stream returned by request. Most importantly it forwards the IncomingMessage to the 'response' event of request to which the first code snippet registers to.
    request.get('http://affenbits.com/').on('response', function(response) {
        resolve(response);
    })

Thus the promise gets resolved but bear in mind that the .then(...) part is not executed immediately. In between the onRequestResponse function executes the following code:
    responseContent.on('data', function (chunk) {
      self._destdata = true
      self.emit('data', chunk)
    })

By that the IncomingMessage starts to get drained!
Since no one registered to the 'data' event and no one has called .pipe(...) yet, the streamed data gets lost. At least shortly after the streaming begun the .then(...) part gets executed:
.then(function(response) {
    response.pipe(process.stdout);
});

With that we got someone who is consuming the already streaming data. But only the last part - which streams in after .pipe(...) was called - is then printed to stdout.
As you can see the whole thing is pretty involved and not just a bug in request. IMHO .on('response', ...) is not designed to be used in this way by the user. The user should use the stream as suggested in my previous answer.

Thank you very much @analog-nico for the deep explanation, it makes sense.
resolve(request.get('http://affenbits.com/')); is not very helpful in my case because I would like to have more fine-grained control over the resolved promise: resolve when the response.statusCode is 200 else fail.
For instance:
request.get('http://affenbits.com/')
	.on('error', function(err) {
		reject(new Error(err));
	}).on('response', function(response) {
		if (response.statusCode == 200) {
			resolve(response);
		} else {
			reject(new Error(response.statusCode));
		}
	});

You are welcome @luissquall .
You may use this code:
var stream = request.get('http://affenbits.com/');
stream.on('error', function (err) {
    reject(err);
});
stream.on('response', function (incomingMessage) {
    if (incomingMessage.statusCode === 200) {
        resolve(stream); // <-- This should do the trick!
    } else {
        reject(new Error(incomingMessage.statusCode));
    }
});

Of course this becomes a lot of boilerplate for a general use case. That is why I created https://github.com/request/request-promise/issues/90 to cover this in Request-Promise as well. It will probably look like:
var rp = require('request-promise');

rp({ uri: 'http://affenbits.com/', resolveWithStream: true })
    .then(function (stream) {
        stream.pipe(process.stdout);
    })
    .catch(function (err) {
        /* Either non-2xx status code or technical error */
    });

Let me know if you would be interested in using Request-Promise with this new feature - namely the resolveWithStream option. Or maybe you would design the new feature a little different...

Couldn't make it work :/ Perhaps subscribing to 'response'  cancels the original stream, nothing is piped to stdout:
A simplified test:
new Promise(function(resolve, reject) {
	var stream = request.get('http://affenbits.com/');
	stream.on('error', function (err) {
		reject(err);
	});
	stream.on('response', function (incomingMessage) {
		resolve(stream);
	});
}).then(function(response) {
	response.pipe(process.stdout);
});

On the second matter...I think it would be awesome but I'm not sure what 'success' should mean in a generic solution: a 2xx message or network success. resolveWithStream might be a test function.

Sorry, you are right. When you call response.pipe(process.stdout); the stream emits an error with the message You cannot pipe after data has been emitted from the response. The problem is that .pipe(...) is not called synchronously.
All in all I would say streams don't work well together with promises. Proof me wrong but both are two competing approaches to handle asynchronous JavaScript programming. And both have of course their own areas where they are most useful.
I would suggest that you either don't do streaming and just work with promises - have a look at Request-Promise for that - or only use streaming without promises. I assume you are more familiar with promises so use them if you don't request megabytes of data. But if you really have to download megabytes in a single request then set up a clean stream chain so that you reduce the memory footprint of you node app - for what streams were designed for.

Since the 'response' event is emitted before the data starts to drain, an easy fix would be to pause the response stream immediately inside 'response' event callback and thus stop emitting 'data' events. But when you pipe the stream inside promise 'then' callback, the stream resumes to flowing mode.
new Promise(function(resolve, reject) {
    request.get('http://affenbits.com/')
    	.on('response', function(response) {
	        response.pause();
	        resolve(response);
    	});
}).then(function(response) {
    response.pipe(process.stdout);
});

Thank you @hassansin. Pausing the stream fixes the error.
I think the lib should cover this edge case, you might not want to consume the stream 'instantly', what do you think guys?

@luissquall This topic recently came up in #2075 and @simov suggested to implement that into Request-Promise rather than Request. I can't speak for Request but I already added the issue #90 for Request-Promise.

That's a good fix idd. Additional option for pausing the response stream would do it, but I want to see more use cases before adding it to request.

I can mention another use use where I needed to verify the fingerprint before starting the stream:
return new Promise(function(resolve, reject) {
    request(options)
    .on('response', function(response) {
      response.pause();
      try {
        verifyFingerprint(response);
        return resolve(response);
      }
      catch (err) {
        return reject(err);
      }
    })
    .on('error', function(err) {
      return reject(err);
    });
  });


schema merge should not be trying to alter calculated column

tested with manual schema merge app update on my machine


Create the phospho-react repo

This has become its own github repo instead : https://github.com/phospho-app/phospho-ui-react


Pandas integration bug: Python3 bytes saves to KDB as symbol

When reading from KDB to Python 3 pandas dataframe, as document says:
symbol (KDB) => numpy.bytes_ (python)
string (KDB) => bytes (python)
However, I found symbol is also read as bytes with pandas=True
More importantly, when write a pandas dataframe to KDB, I tested the type conversion:
str (python) => symbol (KDB)
numpy.bytes_(python) => symbol (KDB)
bytes (python) => symbol (KDB)
If in a list, the bytes (python) is correctly converted to string (KDB).
But the bug shows for pandas dataframe.

I'm also facing the issue. Probable cause is _pandas.py/line 163 casting QSTRING to QSYMBOL


Access Control: possibility to create not bidirectional rules (one direction) & port ranges in ACLs

Dear Team,
as an admin I want to create one-way / not bidirectional ACLs where I am allowed to:

ICMP ping everyone (I want to ping all machines but they shouldn't be allowed to ping all admin machines) < this works with stateful firewalls
access all machines with all ports for all protocols / or two rules for each proto (UDP / TCP)
define port ranges in ACL like 1433-1438 or 1-65535

Best regards, Flo.

+1 from my side. That's really an important feature.

Partial-duplicate of #1328

+1, otherwise following best practices in 'least privilege' setup is a faaar too tedious task.

Hmm, the API documentation is stating, that port RANGES can be specified.
see: Api-docu which states elemnts of "port_ranges - start - end'
So is this just a missing piece int the current UI and we could create port-ranges for TCP and UDP by API already?
Are there any plans to to have it in the UI soon?


⚠ Msite has degraded performance

In a964d19, Msite ($MSITE_URL) experienced degraded performance:

HTTP code: 200
Response time: 5490 ms

Resolved: Msite performance has improved in b2aeb0e.


Problem showing emojis in st and dmenu

I am having some problems with emojis in both st and dmenu, if i press Mod+~ to show the icon picker some emojis show an empty box next to them

and if i paste theme to st they look like this

as you can see there is <fe0f> at the right side of the emoji and if i remove it half of the emoji is gone, but strangely whether i remove that bit at the end or not if i press enter zsh will return that no command was found but it will always display the emoji correctly, so can this be fixed?

try installing ttf-dejavu to get rid of the boxes

try installing ttf-dejavu to get rid of the boxes

Installing ttf-dejavu does indeed remove the boxes and when i paste the emoji to the terminal it still shows the <fe0f> but if i delete it the emoji doesn't get chopped in half anymore, though I'm not sure if this is because of the font or because of the patch in the PR i made, anyways this is good enough for me thank you for your help.


tf.cond leads to memory leak?

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): conda
TensorFlow version (use command below): Tf=1.13.1
Python version: 3.6
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: 10.0
GPU model and memory: TITAN RTX 24G

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
2019-06-25 10:59:25.073825: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_true_34339
2019-06-25 10:59:25.073932: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_false_34340
2019-06-25 10:59:25.073977: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_1_true_34395
2019-06-25 10:59:25.074019: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_1_false_34396
2019-06-25 10:59:25.074057: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_2_true_34482
2019-06-25 10:59:25.074136: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_2_false_34483
2019-06-25 10:59:25.074170: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_3_true_34568
2019-06-25 10:59:25.074219: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_3_false_34569
2019-06-25 10:59:25.074256: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_3_true_34568_rewritten
2019-06-25 10:59:25.074353: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_3_false_34569_rewritten
2019-06-25 10:59:25.074425: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_3_true_34568_grad_34687
2019-06-25 10:59:25.074600: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_3_false_34569_grad_34755
2019-06-25 10:59:25.074654: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_2_true_34482_rewritten
2019-06-25 10:59:25.074817: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_2_false_34483_rewritten
2019-06-25 10:59:25.074884: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_2_true_34482_grad_34822
2019-06-25 10:59:25.075129: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_2_false_34483_grad_34926
2019-06-25 10:59:25.075177: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_1_true_34395_grad_34994
2019-06-25 10:59:25.075268: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_1_false_34396_grad_35015
2019-06-25 10:59:25.075303: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_true_34339_grad_35033
2019-06-25 10:59:25.075362: W tensorflow/core/common_runtime/eager/context.cc:371] Added two functions with the same name: cond_false_34340_grad_35044

Describe the expected behavior
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

@tsing-cv In order to expedite the trouble-shooting process, please provide a code snippet to reproduce the issue reported here. Thanks!

training loop
        @tf.function
        def train_step(inputs):
            with tf.GradientTape() as tape:
                rpn_class_logits, rpn_bbox, mrcnn_box_outputs, mrcnn_mask, target_class_ids, target_bbox, target_mask, active_class_ids = ood_str(inputs)
                rpn_class_loss = losses.rpn_cla_loss(inputs[-2], rpn_class_logits)
                rpn_bbox_loss = losses.rpn_bbox_loss(inputs[-1], inputs[-2], rpn_bbox)
                mrcnn_class_loss = losses.mrcnn_cla_loss(target_class_ids, mrcnn_box_outputs["mrcnn_class_logits"], active_class_ids)
                mrcnn_bbox_loss = losses.mrcnn_bbox_loss(target_bbox, target_class_ids, mrcnn_box_outputs["mrcnn_bbox"])
                mrcnn_mask_loss = losses.mrcnn_mask_loss(target_mask, target_class_ids, mrcnn_mask)

                total_loss = rpn_bbox_loss+rpn_class_loss+mrcnn_class_loss+mrcnn_bbox_loss+mrcnn_mask_loss
                tf.get_default_graph().get_collection(tf.GraphKeys.LOSSES)
            grads = tape.gradient(total_loss, ood_str.trainable_variables)
            optimizer.apply_gradients(zip(grads, ood_str.trainable_variables))
            print("================",len(tf.get_default_graph().get_collection(tf.GraphKeys.LOSSES)))
            return total_loss,rpn_class_loss,rpn_bbox_loss,mrcnn_class_loss,mrcnn_bbox_loss,mrcnn_mask_loss

        def eval_step(inputs):
            with tf.GradientTape() as tape:
                detections, mask = ood_str(inputs)

        for epoch in range(start_epoch, 400):
            for (batch, inputs) in enumerate(train_generator):
                # print (inputs)
                print (f"batch num: {batch}")
                # rpn_class_logits, rpn_bbox, mrcnn_box_outputs, mrcnn_mask, target_class_ids, target_bbox, target_mask, active_class_ids = ood_str(inputs)
                total_loss,rpn_class_loss,rpn_bbox_loss,mrcnn_class_loss,mrcnn_bbox_loss,mrcnn_mask_loss = train_step(inputs)
                print (f"collection: {gc.collect()}")
                print (f"Total Loss: {total_loss.numpy():.6f}")
                print (f"RPN Loss:   class_loss={rpn_class_loss.numpy():.6f} \tbbox_loss={rpn_bbox_loss.numpy():.6f}")
                print (f"MRCNN Loss: class_loss={mrcnn_class_loss.numpy():.6f} \tbbox_loss={mrcnn_bbox_loss.numpy():.6f}\tmask_loss={mrcnn_mask_loss.numpy():.6f}")
                print (gc.collect())
                tf.keras.backend.clear_session()
            # ckpt_manager.save()

leak has nothing to do with tf.cond, because i replace all tf.cond. But gpu using increasing.

@tsing-cv Will it possible to provide the minimal code snippet to reproduce the reported issue here. Thanks!

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Can't turn off video stabilization

When changing the parameter "PictureSettingsVideoStabilizationModeMode", nothing happens. Normally if the parameter is 3, there shouldn't be any stabilization, but when reading "/bebop/image_raw" we saw that the video was still being stabilized.
The other modes of that parameter also do not visually change the image feed.

I saw this behaviour when I released v0.5.1. I think it is due a bug in the firmware and/or the SDK. I will update the driver soon to use the newest SDK and work with the latest firmware. Hopefully that will fix this issue. Could you please share the firmware version of your Bebop and its model?

Yes of course. We are using the Parrot Bebop 2 drone, firmware version is 3.1.0.


cleanup: remove ListGroupRelations and its usage

remove ListGroupRelations and its usage

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 9.529%

Totals

Change from base Build<PHONE_NUMBER>8:
-0.01%

Covered Lines:
10550

Relevant Lines:
110718

💛  - Coveralls


Parameters tab missing while creating Pipeline

Step 10 under - "Create the pipeline IterateAndCopySQLTables" section, I am unable to find Parameters tab under Copy Operation, while creating this pipeline. Could you provide JSON to be used here?
Also, what is the best way to locate JSON for any missing UI functionality?

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

ID: 125c8ae8-332f-8792-d81b-30bb0eb3976f
Version Independent ID: 2e2ac8cb-4208-6692-0f25-701e4906475a
Content: Copy data in bulk using Azure Data Factory
Content Source: articles/data-factory/tutorial-bulk-copy-portal.md
Service: data-factory
GitHub Login: @linda33wj
Microsoft Alias: jingwang

@vasivara-MSFT - While running the pipline, I am getting error related to missing parameter - which was supposed to be set in Parameters tab. I also ran into same issue as another open issue here #8819, where updated UI did not have the functionality and user was suggested to use XML as a work around. If XML is the way going forward, how can I detailed documentation on it?

@sbhuttan We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Answering mail doesn't respect Reply-To header

When answering emails which was sent with an "Reply-To:" header the composed answer is addressed to the From: and not the Reply-To Address.

Thanks :+1:
This behavior is intentional (and was introduced in 2010). The same happens when replying to a message sent by yourself  even when the message doesn't contain a Reply-To header.
According to the commit message that introduced the behavior the idea is that the user most likely wants to send a message to the other party when replying to a message they sent themselves.
I agree that this is most likely what a user wants to do when e.g. tapping "reply" on a message in the Sent folder. But maybe we can make this less confusing by using a different icon and/or name for the action. This would be an addition to #3738.


Ed25519/modm neg, sub added

Two new operations on ed25519 scalar values (modulo m) were added:

-x mod m
x-y mod m

I need this for Monero implementation. I am working another few which I will PR as they are finished and tested.

I will further optimize subtraction, reducing the op count.

Have you checked that upstream ed25519-donna doesn't provide these
operations and they indeed need to be created from scratch?

I've checked:

https://github.com/floodyberry/ed25519-donna
https://github.com/agl/curve25519-donna

They don't have constant time subtraction and inversion. The ops are implemented mod p=2^255-19 but not mod order of the generator, which I need for Monero signatures.
I am following the same principle as DJB used for arithmetics mod p + subtraction trick from:  https://www.imperialviolet.org/2010/12/04/ecc.html
Pls wait for the subtraction commit.

Pls wait for the subtraction commit.

Will do.

Limb constant computation for the Emilia Kasper trick: https://github.com/ph4r05/monero-agent/blob/master/monero_glue/misc/limbs.py

Nice, is this ready to be merged?

From my side I think this PR is ready. Thanks!

LGTM Thanks!


[Feature]: add JavaScript solution for reversing a string

JavaScript solution for reversing a string
Assign me this under hacktoberfest and gssoc-ext

@ajay-dhangar can you please assign me this issue.


Development backend enhancements, fix tests

Peter needs this PR to get merged, I merged it to setup the new environment then will open it again to fix tests and do any Backend enhancements.


⚠ Bofrost.de has degraded performance

In 957b7a5, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1106 ms

Resolved: Bofrost.de performance has improved in 4191ce8 after 6 minutes.


Add "rotation" feature for recurring tasks

⚠ Please check that this feature request hasn't been suggested before.

[X] I searched previous Ideas in Discussions didn't find any similar feature requests.
[X] I searched previous Issues didn't find any similar feature requests.

🔖 Feature description
Add a "rotation" feature to recurring tasks. It should, when an occurrence is ticked, simply rotate the "list" given. Example:

[ ] Clean the kitchen 🔁 every week 📅 2023-03-19 🔀 Alice Claire

When ticking this, the next occurrence would be created like this:

[ ] Clean the kitchen 🔁 every week 📅 2023-03-26 🔀 Claire Alice

This would allow for use-cases like filtering a list for stuff Alice needs to do easily, I could simply
not done
description includes 🔀 Alice

or, if implemented as a filter
not done
rotation next includes Alice

This would only make sense for recurring tasks. It might be good to render the first item of the list e.g. bold to make things clearer, but this could be up to theming in case we simply mark the first item.
✔ Solution
If you are not opposed to the feature in general, I would be there to implement it.
❓ Alternatives
N/A
📝 Additional Context
I'm using obsidian to list recurring tasks that we have to do in our household. We share the work in many areas: Sometimes I need to clean the kitchen, sometimes my wife needs to. We like to switch this "assignment" from occurrence to occurrence.
A few more ideas about how such a feature could be used besides household chores:

Doing sports and the train a different part of your body: 🔀 Legs Abs Arms
By allowing to set multiple rotation lists, you could do permutations of "what to cook tomorrow?" e.g. by 🔀 Noodles Rice 🔀 Curry Tomato 🔀 Chicken Pork Tofu

Interesting idea. Thank you for suggesting it.
Below are some thoughts and questions...
What should be behaviour be if the user adds the new field on a task which is not recurring.
If there are more than two values after the symbol, the order of rotation would be ambiguous. How would you specify it, and what words would you use in the user guide, to explain to users why the order is the way that it is?
What words would you use in the user guide to explain to users that the options cannot have any spaces, and don't try and be clever and use quotes to group words together in to single options, as that would make the parsing code way too complex?
I think I may have misunderstood the word next in your example - is it the same as current?

If there are more than two values after the symbol, the order of rotation would be ambiguous. How would you specify it, and what words would you use in the user guide, to explain to users why the order is the way that it is?

The rotation order would always be "leftmost entry will be moved to the end of the list upon creation of the new occurrence": 1 2 3 4 -> 2 3 4 1. You would thus always see what's next in the list. I used the "shuffle" emoji 🔀, which may be misleading because I don't really want the list to be shuffled. I thought about using ⏭, but it also does not nail it. It might be better because it removes the thought of "it's random" that you had.

What words would you use in the user guide to explain to users that the options cannot have any spaces, and don't try and be clever and use quotes to group words together in to single options, as that would make the parsing code way too complex?

I like the simplicity of the space. I think it would solve most use-cases that come to my mind already. Explaining that "you cannot have options that have spaces" would be easy, but probably not satisfying for users that still want that. These are the options that come to my mind for situations where you would need spaces for options:

Use non-breaking spaces. They look like spaces, but we could simply not use them to break the list. I don't like it because not many people know about their existence and they are hard to use.
Use commas instead for the list - but then you can't use commas :upside_down_face: , and it reduces simplicity.

I think I may have misunderstood the word next in your example - is it the same as current?

I think current would be better than next :-).
Regarding the words in the user guide, this would be part of the recurrence documentation; something along the lines of:

Recurrence rotation
Recurring tasks can have a rotation that you can use to e.g. "assign different people for household chores", or change other aspects of a task like "do sports, but a different part of the body each time":

[ ] Clean the kitchen 🔁 every week 📅 2023-03-18 ⏭ Alice Bob
[ ] Do sports 🔁 every day 📅 2023-03-18 ⏭ Legs Arms Abs

Completing an entry will move the leftmost rotation list item to the right (1 2 3 4 -> 2 3 4 1). The above examples would, after completion, read like this:

[ ] Clean the kitchen 🔁 every week 📅 2023-03-25 ⏭ Bob Alice
[ ] Do sports 🔁 every day 📅 2023-03-19 ⏭ Arms Abs Legs

Filtering on recurrence rotation
This is the source list of tasks used in the examples below:

[ ] Walk the dog 🔁 every day 📅 2023-03-18 ⏭ Alice Bob
[ ] Grocery shopping 🔁 every week 📅 2023-03-18 ⏭ Bob Alice
[ ] Do the dishes 🔁 every day 📅 2023-03-18 ⏭ Alice Claire
[ ] Clean bathroom 🔁 every week 📅 2023-03-18 ⏭ Claire Alice

To find tasks that Claire needs to do:
rotation.current is Alice

Which would return

[ ] Walk the dog 🔁 every day 📅 2023-03-18 ⏭ Alice Bob
[ ] Do the dishes 🔁 every day 📅 2023-03-18 ⏭ Alice Claire

If you only are interested in tasks where Claire is in the rotation, you can do this:
rotation includes Claire

Which returns

[ ] Do the dishes 🔁 every day 📅 2023-03-18 ⏭ Alice Claire
[ ] Clean bathroom 🔁 every week 📅 2023-03-18 ⏭ Claire Alice

More complex filtering
You can also access the rotation by index. This allows for more complex use-cases. Example:
rotation.1 is Alice AND rotation.2 is Claire

to return

[ ] Do the dishes 🔁 every day 📅 2023-03-18 ⏭ Alice Claire

Gotchas
Rotation list items cannot have spaces. If you absolutely need a space for an item, you can insert a non-breaking space which will not be treated as a separating character for the items.

Non-breaking spaces would need more explanation for how to use them. I'm open for better ideas here.

What should be behaviour be if the user adds the new field on a task which is not recurring.

I think it does no harm if it's there, but does not do anything. An action would only occur when the rotation takes place, which only is when creating a new occurrence of the task upon completion of an older one. You could still query using the mentioned filters, though - which brings me to this thought:
As a by-product, this could be used for task assignees if you only add one item for the rotation :thinking: . In that case, it makes sense for non-recurring tasks as well, although, the naming of "rotation" is not a good fit anymore. I'm not sure whether I like the idea of that by-product, though :sweat_smile: . Do you have an idea for a name that would be a good umbrella for both concepts? If there is none, it's probably better to not mention that possibility in the docs?

Wow, thank you for that incredibly useful input! ❤ it really helps.
I quite like this one:
↩ - arrow curving left.
And I quite like making the values comma-separated, so that there is no ambiguity about the end of the suggestions and the beginning of any other values, as Tasks moves to supporting more different (non-emoji-based) task format.

I also thought about the arrow curving left. Maybe that's the best option.
Fine with comma-separated, I wasn't aware that tasks is moving into that direction. So far I liked it the way it was, although it's hard to input sometimes.

I also thought about the arrow curving left. Maybe that's the best option.

Sounds good.

Fine with comma-separated

OK

I wasn't aware that tasks is moving into that direction. So far I liked it the way it was, although it's hard to input sometimes.

In case what I said was ambiguous…
Tasks is keeping the current support for Emojis. That will remain the default way of specifying properties of tasks.
However, there have been a lot of requests to add the option to use non-emoji-based specifiers, and also to support various other formats used by various other plugins.
New features will add the latter flexibility, without taking away the current emoji format.

Awesome idea! What should happen if after the "rotation" emoji there is only one word? It should always just be there, "rotating" to self? Or we imagine some kind of warning? Or something else?

What should happen if after the "rotation" emoji there is only one word? It should always just be there, "rotating" to self? Or we imagine some kind of warning? Or something else?

It would be easier to make it not rotate than to generate a warning.
We don't have a built-in mechanism for warning users over task data validity currently.

Additionally, I think it makes more sense to not warn but simply accept that as "rotates on self". This is what I wrote in the post above:

As a by-product, this could be used for task assignees if you only add one item for the rotation :thinking: . In that case, it makes sense for non-recurring tasks as well, although, the naming of "rotation" is not a good fit anymore. I'm not sure whether I like the idea of that by-product, though sweat_smile . Do you have an idea for a name that would be a good umbrella for both concepts? If there is none, it's probably better to not mention that possibility in the docs?

In a way, the first entry of a rotation is an "assignee" anyways. Still looking for a name to unify this, and still unsure if it's a good idea to do so :sweat_smile: .

This is a neat idea @lenalebt!
I can't see how this feature could be implemented if -- as in your original "what to cook tomorrow?" example -- multiple "rotation" sets are included in a single task.
But I can think of a few uses for a "single rotation set" version of your proposed feature.
Did you ever get a chance to start working on developing this?

In view of this size of the backlog for this project, and the demotivating effect of a very long backlog on volunteer energy levels, I'm going through a slow process of reviewing tasks for things that are one or more of the following:

unlikely to be realistically achievable, from the design of the current code, and the planned future refactorings
not sufficiently high priority to a broad community of users, based on the feedback I receive from a variety of sources
do not fit the core purpose of the Tasks plugin
are better covered by a different plugin - to share the development and maintenance effort

So I'm marking this one as 'not planned'. This doesn't mean 'won't fix' - it means not likely to be done in the foreseeable future.


Update Maven repo to use new CommandAPI jar which fixes Brigadier dependancies

Hello, I did see you've updated CommandAPI to fix the import brigadier issues with this fix: https://github.com/JorelAli/1.13-Command-API/commit/af1911e8e6a9d9765838060e25b3d2dcd44aafb7.
Though this change has not been reflected on the maven repo, could you update the CommandAPI jar within the repo?

Released version 2.0.1 which contains this change:
https://github.com/JorelAli/1.13-Command-API/releases/tag/v2.0.1


Add optional author information

This PR adds the author's name under the title, if it is specified.

Thank you for contributing!


React-Leaflet 2 compatibility

I needed React-Leaflet 2 compatibility for a project I'm working on, so here is a PR with the required changes. I also cleaned up in the eslintrc as eslint was complaining about deprecated rules. I also had to change the export/import stuff a bit in index.js as I couldn't get it to work with the way it was.
Leaflet itself is now also explicitly imported. I very much prefer this but change it if you need to.

I tried this PR in our codebase, and it works perfectly!

I do confirm to: it worked perfectly! Looking forward so see it merged in the main repo


Add support for Azure DNS

Pricing details: https://azure.microsoft.com/en-us/pricing/details/dns/
Notice the bottom of the pricing page has a question with "Which Regions correspond to Zone 1, Zone 2, Zone 3, US Gov Zone 1 and Germany Zone?". All all the following resources, the resource_group_name param can be used to fetch the location and map that to the zone.
Terraform resources azurerm_dns_zone and azurerm_private_dns_zone should have:

"Hosted zone", units "months"

Each of the 9 azurerm_dns_..._record resources, and each of the 7 azurerm_private_dns_..._record should have:

"DNS queries (first 1B)", units "1M queries".
"DNS queries (over 1B)", units "1M queries".
Usage file params:

azurerm_dns_..._record.my_..._record:
    monthly_queries: 10000

azurerm_private_dns_..._record.my_private_..._record:
    monthly_queries: 10000

If monthly_queries is not present, show both. If it is present, only show the "over 1B" one if applicable.
Free resource:
azurerm_private_dns_zone_virtual_network_link

@alikhajeh1, Hey, I want to work on it!

@alikhajeh1 Just to confirm: Should we really show both usage tiers if the param is not present or just the (first 1B) tier?
If monthly_queries is not present, show both. If it is present, only show the "over 1B" one if applicable.

Good catch @tim775 - I updated the description (to say just the first tier).


[Feature]: Use exteranl vectorDB

Contact Details(optional)
No response
What feature are you requesting?
Currently we use milvus db  docker as our vectordb. We should able to use external vector db also. Update make file and have vector connections string configurable.

Close this issue since we already use lancedb as our vector db


Make administrator elevation optional

Can we make administrator elevation optional? A popup or parameter? If I run this script from a non-admin account and the script self-elevates (and I give it the password of an admin account), it doesn't actually remote the junk programs for the non-admin account.

It really works best when used with administrator permissions but I can add this in.

It's not really optional, there's major parts of the code that won't work if you don't run it as admin

When I get a fresh Windows 10 computer, I:

Create a temporary user account and login
Run the Sysprep script with all flags
Create a local admin user account
Delete the temporary user account
Create the final non-admin user account and login

For this non-admin user account:

All junk programs are gone (never installed) thanks to the sysprep script
Cortant is enabled
Start suggestions are enabled
The People icon on the taskbar is showing
Some tracking is enabled
Edge wants to take over as the PDF reader

To fix the above, I run the Windows10Debloater.ps1 script as the current (non-admin) user. Yes, the system-level changes that the script tries to make fail, but all of the above points are fixed.
If the script self-elevates, then the above points will not be fixed, as the script will be running as the wrong user account (the separate admin account).

Temporary solution there is to just comment out the few lines of code about the admin check, it's the first bit of code in both scripts.
That is until we can make that optional

It is now optional to run as an Administrator @Gray-0men


Batch hidden sample in hmm example

Hi - I'm new to Pyro, iarange etc. but I was wondering if the hmm example might have a bug in the way the hidden state is sampled. Does it?
If so, the bug might also be in the other model_{2,3,4} functions too.

I can't sign the CLA right now, but if this is legit and someone else doesn't mind making the fix throughout this file, they can go for it and consider this a bug report rather than a contribution.

Thanks for reading the example in detail! In fact x = 0 is a valid initial value due to Pyro's broadcasting semantics. Note that we're never storing or sampling from the initial value of x; the only place it is used is in line 81
x = pyro.sample("x_{}".format(t), dist.Categorical(probs_x[x]),
                infer={"enumerate": "parallel"})

in this case
probs_x.shape == (hidden_dim, hidden_dim)
probs_x[0].shape == (hidden_dim,)
``
and using [`@poutine.broadcast`](http://docs.pyro.ai/en/0.2.1-release/poutine.html#pyro.poutine.broadcast) Pyro knows to expand the `Categorical` distribution up to `batch` shape.

This may seem too clever. Maybe it is. But the subsequent `probs_x[x]` indexing really make use of broadcasting.

Hi @fritzo ,
I'm not sure this case is closed...
posterior = pyro.infer.Importance(model_1, guide, num_samples=10)
#sequences, lengths are TEST DATA
post = posterior.run(sequences, lengths, args)
assert list(post.exec_traces[0].nodes['y_0']['value'].shape) == [sequences.shape[0], sequences.shape[2]]
assert list(post.exec_traces[0].nodes['x_0']['value'].shape) == [sequences.shape[0]]

Importance sampling is admittedly not the best way to do HMM inference, but the two assertions should pass right?  What happens in the example is that the second assertion fails because there isn't a different value for x for every sequence in the batch.  When running the code with the change I made, the log probabilities are also in a very different range, which I thought was consistent with there being more sampled variables (one for each sequence in the batch).
The two assertions you mention in your reply are correct, but the potential issue here is with x, not probs_x.

Thanks for taking the time to explain. It's still blowing my mind. Any insight you can provide will be appreciated as I wrap my head around pyro's iaranges, broadcasting, etc.

Is it the case that each exec_trace[i] is a [ancestral] sample from the model?
A HMM calls for a different progression of hidden states for each visible sequence in a batch, is that what's expressed in model_1?
If that is what's expressed by model_1, where can those samples for x be found, if they are not in exec_trace[i].nodes['x_0']['value'] tensor ?
why would you want to broadcast log prob values up to the batch_shape?  Again I can see that you'd want to broadcast the probability of the whole probs_x matrix (under the dirichlet), but I can't see wanting to broadcast the probability of any of the x[t] values (sampled from the various categoricals).
Is replacing x = 0 with x = 0 * batch unnecessary or actually inducing a wrong model? The training code runs both ways, and it seems to lead two different behaviours, in terms of the range of log probs and the dimensions of what ends up in exec_trace.

Could you ask these questions on http://forum.pyro.ai so that others may benefit from extended conversations? I feel like closed github comments are difficult to discover.

Certainly, thanks!
On Mon, Oct 1, 2018, 9:54 PM Fritz Obermeyer<EMAIL_ADDRESS>wrote:

Could you ask these questions on http://forum.pyro.ai so that others may
benefit from extended conversations? I feel like closed github comments are
difficult to discover.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/uber/pyro/pull/1422#issuecomment-426120646, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAKdDDpETi71Q4LmGD0pj1mkzcDlb4awks5ugsdjgaJpZM4W_4Ne
.


hubble/peer: handle burst of change notifications

When a client calls Notify, a change notification is sent for every node
in the cluster which allows the client to discover all nodes in the
cluster. Subsequently, only changes are notified (when a node is updated
or deleted or a new node is added to the cluster).
With a sufficiently large cluster, the initial burst of notifications
can be massive and the previous implementation did not accommodate for
this as it used a default buffer of size 10, assuming it would be large
enough to serialize notifications and send them to the client before
new notifications are being pushed by the node manager. It appears that
the node manager iterates over a hash map while holding a lock when it
calls the notification handler and this process is much faster than
serializing and sending these notifications over to the remote client
via gRPC.
However, as the initial buffer implementation used a channel, increasing
the buffer size to a very large value would dramatically increase memory
usage and most of it would be unused in most cases (in Go, a buffered
channel allocates enough memory to hold every element it has be able to
buffer).
This PR fixes this problem by using a concurrent safe buffer
implementation backed by a slice that is only allowed to grow to a
predefined maximum size. This size defaults to 65_536 entries, which
should be enough to accommodate bursts of notifications for large
clusters in cluster-mesh.

Coverage increased (+0.04%) to 37.056% when pulling f1abeb03a1369ee22361ea8e6b8429a857756e5d on pr/rolinh/hubble-fix-cn-burst-handling into 20c092c94928b63334695f32c9a7ec32d717b5c1 on master.

test-me-please

test-me-please

will there be a corresponding change in command line option / helm template?

This option has never been made configurable.

2. i'm always curious to see the actual difference in resource usage whenever we introduce optimization.

Good question! The memory allocation for a channel of this type and size would have been in the order of ~1M (verified using pprof). It may not seem like much but this memory would be allocated per request to Notify.

K8s-1.17-Kernel-4.19  failure is a known flake (IPv4 fragments)
K8s-1.18-kernel-4.9  failures seem to be a vagrant cache issue
Marking the PR as ready to merge.


Android 12 system font support

Resolves https://github.com/tangrams/tangram-es/issues/2303
Despite the availability of a new SystemFonts API in Android API level 29 and above, it turned out to be easier and faster to modify the FontConfig XML parsing code to handle the format of fonts.xml in versions before and after Android 12. As mentioned in the issue though, we will still need to add support for font variation axes to render the bold or italic versions of many system fonts.

With more and more people upgrading to Android 12, this is becoming more and more of a problem. My app has mostly users from the EU and US and I see now that 17% of users use Android 12, as opposed to 10% when the issue was first reported. As this is already fixed, are you planning to do a release soon?
Or were you waiting on feedback from the issue reporter or me whether the fix works correctly? I do have an Android 12 phone now, but I have no tangram-es development environment set up.

@westnordost I can confirm that it is foxed with this pull request.

I actually hadn't realized that this change had not been included in a release yet. I'll prioritize making a new release so that this becomes available to downstream users. Sorry to make you wait so long for this fix!

I have pulled this source. Now the fonts rendering was slow in some android 12 devices. @matteblair any ideas?


Meta Issue: Image-space analysis

Describe the new feature or enhancement
With the release of MNE-Python 0.24 and MNE-NIRS v0.1.2 the core sensor space functionality will be complete (many improvements still required, but the API and minimum functionality is present). Next, development will be focused on implementing fNIRS specific image-space analysis. This meta issue will track the high level progress toward this goal.
An fNIRS specific solution is required, rather than simply applying the EEG/MEG techniques in MNE-Python. The analysis should be based on methods from these researchers:

Eggebrecht, Adam T., Silvina L. Ferradal, Amy Robichaux-Viehoever, Mahlega S. Hassanpour, Hamid Dehghani, Abraham Z. Snyder, Tamara Hershey, and Joseph P. Culver. "Mapping distributed brain function and networks with diffuse optical tomography." Nature photonics 8, no. 6 (2014): 448-454.
Arridge, S. R., & Schotland, J. C. (2009). Optical tomography: forward and inverse problems. Inverse problems, 25(12), 123010.
Cooper, Robert J., Matteo Caffini, Jay Dubb, Qianqian Fang, Anna Custo, Daisuke Tsuzuki, Bruce Fischl, William Wells III, Ippeita Dan, and David A. Boas. "Validating atlas-guided DOT: a comparison of diffuse optical tomography informed by atlas and subject-specific anatomies." NeuroImage 62, no. 3 (2012): 1999-2006.
The DOT-HUB Matlab toolbox by @RJCooperUCL

Describe your proposed implementation
This will be expanded as a more concrete plan emerges, but some high level steps are:

[ ] Calculate Jacobian. Use an existing specialised tool, do not want to implement this from scratch

Possible tools to integrate with:

ToastPP: Used in DOT-HUB, but what is the maintenance status?
NIRFASTER: What is the maintenance status? Does this replace NIRFAST?

[ ] Invert Jacobian

See DOT-HUB

[ ] Reconstruction

See DOT-HUB

[ ] Export image space analysis in a standard format for analysis/visualisation etc in any other program

https://github.com/mne-tools/mne-python/issues/9286
Collaborate with the NIpy community on a cross platform API

Topics that need further thought

How to do statistics correctly in image space?

Useful resources:

https://github.com/MICA-MNI/BrainStat
https://www.math.mcgill.ca/keith/surfstat/
How does nilearn do this?
What are some nice fNIRS papers on this topic?

At what stage in the pipeline is it most appropriate to move to image space? E.g. some groups do stats at sensor level (GLM) and then project result to image space, other groups transition to image space earlier then run the stats on the image space.

If we move to image space earlier in the pipeline then we can probably lean more heavily on nilearn, which has well established analysis procedures we can leverage and modify to be fNIRS specific (this is the approach I tool for the GLM analysis and am very happy with the choice)

Plotting

https://github.com/danjgale/surfplot
nilearn obviously

DOT specific visualisations and quality checks

What extra plots etc are required?

Additional comments
Please add comments below with specific requirements that you may have for image-space analysis, or useful resources, relevant papers or source code, use-case examples, etc. I will spend quite some time reading and formulating a plan before diving in to coding (code is the easy part).
Note: There is likely to be several API and possibly backend changes on this path (for context, the GLM API took about 3-4 iterations before I was happy). So please provide feedback at any stage, as I am always happy to improve all aspects of the project.

See DOT-HUB

This is GPL 3, so we'd have to ask permission to relicense under BSD 3-Clause. I didn't check other libs but keep this is mind

Export image space analysis in a standard format for analysis/visualisation etc in any other program￼

By "image space" do you mean "on the brain surface" and/or "in brain volumetric space"? Either of these are considered "source spaces" in MNE-Python, and what we're really talking about at this point is "source space analysis", and we already have lots tools for this sort of stuff (e.g., label extraction, spatio-temporal clustering, etc.).
In other words, to me the high-level view is that:

In MEG/EEG, you compute a forward and inverse to go from sensor to source space data
In sEEG/ECoG you should do the same thing, but a lot of times people just use some simple spatial proximity to go from sensor to source space data (e.g., stc_near_sensors)
In fNIRS you don't compute a forward and inverse (reasons unknown to me, haven't read anything about why), but instead use some photon migration / jacobian business to go from sensor to source space data

In all of these cases, at the end of this process you should end up with a STC object in MNE-Python. Then you can use all of our tools for visualization, processing, and statistics as you wish. With this in mind, I think many of the question above are immediately answered:

How to do statistics correctly in image space?

See any tutorial / function we have for this sort of thing already. Spatio-temporal clustering, FDR, label extraction then FDR, etc. are all (non-exhaustive) options. Basically you have all established fMRI and M/EEG statistical tools to choose from at this point I think (subject to meeting the assumptions of those methods, which is likely especially for something with very few assumptions like spatio-temporal clustering).

At what stage in the pipeline is it most appropriate to move to image space?

If the sensor-to-source space transformation is linear (fingers crossed?) then it doesn't matter. If it's nonlinear, then you probably need to do the sensor-to-source space transformation, then apply your GLM :(

Plotting

Look at our M/EEG source space examples and in particular things like

mne.viz.Brain: https://mne.tools/dev/generated/mne.viz.Brain.html
https://mne.tools/dev/auto_tutorials/inverse/60_visualize_stc.html
https://mne.tools/dev/generated/mne.SourceEstimate.html#mne.SourceEstimate.plot
https://mne.tools/dev/generated/mne.VolSourceEstimate.html#mne.VolSourceEstimate.plot

It would also be great if the source space / image space data were in units of Am like you get from M/EEG inverse models. But even if this isn't what you get (e.g., you get some other "activation" measure) we can still consider using all the existing fMRI and M/EEG tools as above I think.

Hi-
Just to provide a brief response- I am happy for any code from our toolbox to be used if this is acknowledged in the source code somewhere. Happy to do what is needed on the license front.
the jacobian @rob-luke describes is a linearized forward operator, which is then inverted, completely analogously to EEG. The jacobian is calculated using a model of light transport in an FEM or voxel space.
We talk about ‘image’ space rather than source space because there are not discrete sources that generate our measurements, but a distributed, continuous image of haemoglobin concentrations. Perhaps this is just nomenclature. Images are in molar concentration, so definitely not in Am units.
Statistical handling in the image/source space is somewhat complicated by the spatially varying sensitivity of fNIRS measurements. This means different locations in the image have different statistical properties. This is likely a solved problem, however, I am just not sure what the best solution is.

We talk about ‘image’ space rather than source space because there are not discrete sources that generate our measurements, but a distributed, continuous image of haemoglobin concentrations. Perhaps this is just nomenclature. Images are in molar concentration, so definitely not in Am units.

At least on the viz front I don't think it will matter much. "(Time-varying) values defined on surfaces / volumetric grids" is what all of our 3D viz is geared toward, whether that be currents, noise-normalized estimates, statistical t-values, or any other arbitrary color-mappable thing.

the jacobian @rob-luke describes is a linearized forward operator, which is then inverted, completely analogously to EEG... different locations in the image have different statistical properties. This is likely a solved problem, however, I am just not sure what the best solution is.

In M/EEG forward sensitivity varies as a function of space as well. To some extent different the inverse methods (depth weighting, noise normalization, etc.) help account for this in different ways. Maybe similar techniques could be used with fNIRS data. I assume people have thought about this sort of thing, though. It would certainly be cool if we could just pack this jacobian into a mne.Forward object and have it work with our suite of inverse methods. TBD whether or not it's a valid thing to do :)
But in any case, even with the techniques to combat sensitivity differences I doubt for M/EEG we ever totally achieve statistical uniformity anyway, so we're at least in a somewhat similar boat!

Hi @RJCooperUCL and @larsoner thank you both for your comments (and I am quite pleased you two have now [at least virtually] met). I expect I will lean on both of you quite heavily while on the next steps to implement fNIRS image/source space analysis. There is a very nice complementary skill set involved here.

Just to provide a brief response- I am happy for any code from our toolbox to be used if this is acknowledged in the source code somewhere. Happy to do what is needed on the license front.

Thanks @RJCooperUCL! And we will definitely have this acknowledged. Before we merge any code I will highlight to you where the acknowledgment will be (in the code and in the documentation and website etc, details not figured out yet) and get your feedback/approval before moving forward.

We talk about ‘image’ space rather than source space

I have found that many similar concepts (of course with nuances) in different fields use domain specific terminology. I will attempt to use the fNIRS-specific language where possible and also refer the M/EEG analogs at first definition. Hopefully this will then be correct for the fNIRS researchers, but also facilitate findability for M/EEG users and google searches etc.

At least on the viz front I don't think it will matter much. "(Time-varying) values defined on surfaces / volumetric grids" is what all of our 3D viz is geared toward, whether that be currents, noise-normalized estimates, statistical t-values, or any other arbitrary color-mappable thing.

This is the news I wanted to hear! The plan is to utilise as much core MNE-Python code as possible. We may need to do some tweaking along the way for small domain specific details, but based on our previous fNIRS integration, I am certain we can do this with a minimum-touch approach.

It would certainly be cool if we could just pack this jacobian into a mne.Forward object and have it work with our suite of inverse methods

This is where I am planning to start once I have figured out how to generate the Jacobian from the toast or nirfast. I will ping you when I have made some progress (I go on leave today, so probably not much progress in the next few weeks).

@dboas @sstucker @mayucel please see above for initial thoughts on this topic. Of particular interest may be the discussion between MNE and fMRI developers on a consistent surface data api format: https://nipy.discourse.group/c/surface-api/10


Implement the error handling for API resource requesets for compendia

Context
We currently configured error handling in _app using Sentry-integrated React.js ErrorBoundry with our custom error component which handles server-side errors 500 and 504 and a runtime error 404 at the page level. We'll also need to implement error handling for API resource requests and display an appropriate error view in a page based on the status code returned by the server.
This issue is to implement error handling for the compendia endpoint.
Problem or idea
We should implement error handling for compendia resource and render the error view when error occurred, as shown below:

Solution or next step
(*due to frequent PR merges, the most recent PR's feature branch will be used as the base branch to reduce merge conflicts)

Create or reuse a component for the compendia endpoint error handling
Create any helpers as necessary
Update the existing error handling logic if required

Closing - Merged #273


test: DNM - test kernel security features

test kernel security features
depends-on: github.com/kata-containers/packaging#639
fixes #1234567
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

/test

Finally, a fix for 1234567!

/test

I appreciate the authors efforts, but this PR cannot be merged.
This still needed @devimc ?

@egernst nop


Trim the key/value when calling set command

Failed to execute set execution.parallelism = 10 because error occurs Property 'parallelism' must be an integer value but was:  10. The reason the ' 10' can't converted to integer.

merging


Sized.equals fails in 2.3.1

scala> Sized(1, 2, 3) == Sized(1, 2, 3)
res4: Boolean = false

This returned true in 2.2.5 but returns false in 2.3.1.

@alissapajer were you looking at this?

Looks like this was introduced by removing the extends AnyVal. We can override equals/hashCode for now since we can't extend AnyVal in the 2.10 build.

Yup, that was what we discussed a couple of weeks back.

The fix for this will break binary compatibility so we'll have to punt this to 2.4.0.

Maybe Ordering Eq typeclass instances can also be added if those are available for the generic Repr parameter.

@aborg0 could you explain how your comment relates to this ticket?

Probably it is related only in my head. :)
You are right, it is not closely related. I was also hit by this issue and was thinking about reporting it with also requesting Ordering and Eq type class instances when found this.
Sorry for not creating a new issue/commenting here. (Adding these implicit methods can be done in user code, so no need for them in shapeless as opposed to the equals/hashCode implementations/or extending AnyVal.)


Calculator.py

Please merge or specify any issues related to the code I had submitted for it not to be accepted. Thank you.


rpcv05 implement broadcast txn types

closes https://github.com/NethermindEth/starknet.go/issues/403

I carefully reviewed the types and ensured they matched the spec. Unless I missed something, they should match exactly.
The only read method that accepts the broadcasted txn types appears to be starknet_estimateFee. starknet.go's EstimateFeeInput is an interface{} that will accept any type, so we can't enforce that users pass the correct type. If that is ok, I think we can merge this PR.

You are right that starknet_estimateFee method should be updated in order to use BroadcastedTxn. I will do this in a separate PR, as this one is just for implementing the types


nixos: run parted with --script option

-s, --script: never prompts for user intervention
Sometimes the NixOS installer tests fail when they invoke parted, e.g.
https://hydra.nixos.org/build/62513826/nixlog/1. But instead of exiting
right there, the tests hang until the Nix builder times out (and kills
the build). With this change the tests would instead fail immediately,
which is preferred.
While at it, use "parted --script" treewide, so nobody gets build
timeout due to parted error (or misuse). (Only nixos/ use it.)
A few instances already use the short option "-s", convert them to long
option "--short".
Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

When parted hangs, it has prompted the user for input and is waiting for a reply. Why isn't the prompt seen in the log? Doesn't the NixOS testing framework log stdout?

Doesn't the NixOS testing framework log stdout?

Confirmed. Only stderr is logged.
Is that intentional/desired?

Applied to master (0ff4bb5f875afe8eb208bbabb3f52dc29539d2bc). Waiting a bit with backporting.


[Feature] Improve the footer of the landing page

Improve the footer of the landing page by enhancing its styling and making it responsive

I can do it

Already an issue is assigned to you

Already an issue is assigned to you

A, okay. Can i take another one? or i need complete to complete previous task?

Can I Work on This Issue?

i want to contribute to this issue and this will help me in learning and contributing with the team
@ArnabChatterjee20k .
please assign this issue to me

I am this issue to @Baburao-sanivada as he asked first
Before raising the pr please read the contributing guidelines and attach a screenshot with the pr
Also update us within every 3days

@ArnabChatterjee20k I raised a PR Could you Verify It?

Hii Bro I Could Find what the Conflict is ? Can You Help me to How To create a New Pull Request?

Hii Bro I Could Find what the Conflict is ? Can You Help me to How To create a New Pull Request?

Sorry I was inactive. I hope you solved that merging issue

@ArnabChatterjee20k Could you Please Check the New PR?

merged


feat: add supported keys for keyDown step.

This PR adds support for the keyDown step type. It enables support for special sequences found in both DevTools Recorder and the cy.type documentation.
Fixes #14.

This closes #13

Nice! Thank you.


Set to HUB theme

Update timeline CSS to HUB theme:

The initial work for this has been done as viewed in https://bgmapp.github.io/P4TP-Timeline/timeline-proto/timeline-horizontal.html and https://bgmapp.github.io/P4TP-Timeline/timeline-proto/timeline-vertical.html. Separate enhancements can be added as needed.


Update config

Selected config commits from #19:
Updates Stylelint to v14, and makes the following rule changes:
By extending stylelint-config-standard-scss, the GDS config duplicates the following 6 rules:

scss/at-else-closing-brace-newline-after
scss/at-else-closing-brace-space-after
scss/at-else-empty-line-before
scss/at-if-closing-brace-newline-after
scss/at-if-closing-brace-space-after
scss/at-mixin-argumentless-call-parentheses

stylelint-config-standard-scss itself extends stylelint-config-recommended-scss, meaning the GDS config duplicates these 6 additional rules:

at-rule-no-unknown
scss/at-extend-no-missing-placeholder
scss/at-import-no-partial-leading-underscore
scss/at-import-partial-extension
scss/at-rule-no-unknown
scss/operator-no-unspaced

Therefore, I have removed these 12 rules from the GDS config. The first project goal states:

Lean on community standards over defining our own rules as much as possible

This change appears to follow that goal, making the config leaner and focused only on the specific linting rules GDS cares about.

@kevindew Not sure why this still failing… any ideas?
Rejected to value: [TypeError: [configExtends].flat is not a function]

Have run tests locally and not getting any errors.

At a guess, Is it the node engine? Stylelint specifies a minimum of 12.20 but this is set to 12.16 - we could bump this to 12.22 (or even 14.18)

Hmmm, doesn’t look like it. Tried v12.22 and v14.18 and still get the same error. 🤔 (Have left Node updated to v12.22)

Huzzah! Need to specify Node version in the GitHub actions CI workflow. Tests now pass 🎉

Huzzah! Need to specify Node version in the GitHub actions CI workflow. Tests now pass 🎉

Oh great, nice job. Yes I can see past versions were using Node 10 🤔  I'll try find some time to see why .nvm isn't used.

Hey @paulrobertlloyd, I've fixed the node version to use the .nvmrc file in https://github.com/alphagov/stylelint-config-gds/pull/23 (and cherry picked your version change) - do you want to rebase this against main?

I've fixed the node version to use the .nvmrc file

Ooh, nice! Didn’t know you could do that. Anyway, all rebased 🙂

Just picking up this again - now Christmas over, hope you had a good break if you took one.
I've experimented with applying this config to govuk-frontend (which is the exemplar for GDS CSS styling) and there's quite a few violations to look into and see whether they represent either: a problem in this config; a preference/limitation in how GOV.UK Frontend style that should be represented here; a change that GOV.UK Frontend (and all other users) of this config should adapt to. I'll plan to dig into that in the coming weeks.
 I've done some work building on top of the foundation you've created here and it now feels a distinctly different PR.


Add an export command

We're currently deploying Credhub alongside Concourse as our primary CI credential store. It's been largely fantastic - thanks so much. There's one thing we've missed so far, which is export.
The ability to mass-export credentials from Credhub would solve two helpful use-cases for us.

Backup; we can export the credentials, and store them in an additional encrypted location for backup purposes. As Concourse has a "disposable" setup philosophy (Pipelines and resources are all stored externally), we would like to not have a specific Postgres backup strategy in place (that, indeed, would not prove robust as the Credhub schema changes over time).
Mass update; we have a fair number of credentials in Credhub, and did not always store them at the ideal keys. Mass-moving credentials between paths would be much easier if they could be exported, updated in the export, then re-imported.

To facilitate these scenarios, we've created an export command, that mirrors the extant import command. By default, it exports all credentials to stdout in YAML that is credhub import compatible. The CLI flag -p can restrict the paths being exported; the flag -f will redirect the output directly to a file.
It would be really useful to us if this could be upstreamed. If there are changes in style or approach that might help this, we're happy to make them. All suggestions and feedback are most welcome.

Thanks @archgrove! Looks good.

@benmoss I probably need to provide the documentation linked to in the flag (https://credhub-api.cfapps.io/#export-credentials). Is that in a repo somewhere I can PR to?

@archgrove nice catch. i think of those as being our API documentation, but we documented import there too, which also isn't really an API feature but just a CLI abstraction. if you want to you can send a PR to https://github.com/cloudfoundry-incubator/credhub-api-site

@benmoss Done; see https://github.com/cloudfoundry-incubator/credhub-api-site/pull/6. Thanks!


[Tour of Beam] [Task] Improve user experience when solving ToB challenges

What needs to happen?
Create learning content and challenge for "Tour of Beam"::"Basic Transforms" module consisting of following unit:
We need to allow user to switch between challenge assignment and challenge solution and see what is currently displayed -  challenge or solution. Let's change button caption Solution/Assignment. Also we need to show a "we encourage you to solve all challenges by yourself" warning before showing solution. Let's use following text for warning:
""Before revealing the solution, try solving the challenge on your own. Remember, the more you practice, the better you will become. Give it a shot and see how far you can get.""
Issue Priority
Priority: 3
Component
tour-of-beam

.take-issue


[IOS/Android] Pose Tracking Freezing when moving quickly offscreen or during faster movements occasionally

System information
Platform and Distribution: IOS 14 - Tested on iPhone 7 and current Gen iPad. Android 10 on Sony Xperia XZ3

MediaPipeUnityPlugin version or commit id: https://github.com/homuler/MediaPipeUnityPlugin/commit/a754416741d4a16ce8b49c2adee77196bd762a47
Android NDK version (if the target platform is Android): r21d bundled with Unity 2021.1.17f1
Xcode version (if the target platform is iOS): 12.5.1 (12E507)

Describe the current behavior
Using just the Pose tracking graph in the Desktop Demo build to run on IOS/Android in builds we are noticing sometimes the app is prone to crashing when the user moves off screen quickly or it is intermittently crashing during fast hand/body movements on occasion. Even just picking the phone up and wobbling it around can sometimes crash. During this time, observed memory and CPU usage isn't spiking or anything crazy, and Xcode/Logcat give us no crash logs and don't even register it as a crash. To the logs it just thinks the app is still running but it is frozen.
This is not reproducible in the Editor on Windows or mac which makes me suspect this behaviour is mobile only, as well as this I noticed most people on the github issues here aren't doing much on-device testing anyway so I would assume to most it appears that mediapipe pose detection is running fine always because it does so in the Editor, but not on device when deployed.
Describe the expected behavior
The pose detection graph should run as expected on mobile and run without any crashing like it does in Editor.
Steps to reproduce the issue

Build mediapipe for android on windows docker and build mediapipe for ios on Mac
Build and run the Desktopdemo scene on IOS iphone or an Android phone, choose the pose detection graph, switch to front camera and wave the phone around + move in and out of the camera view quickly to create a crash/freeze

I am happy to share the example project we are using privately with you if this helps.

I remember that we had similar issues with the 0.6.2 release of the plugin. The problem came from mediapipe itself. At some point mediapipe was trying to invert an empty matrix which produces an error. Errors in mediapipe cause the whole plugin to crash. We had to recompile the plugin with a fix in mediapipe that checks if the matrix is not empty before inverting it.


set a high z-index to the control panel so it is always on top

@adbenitez I think you should push directly to master for changes like this.

ok, will do next time, but I am a noob hope I don't mess something :D

ok, will do next time, but I am a noob hope I don't mess something :D

We're all monkeys with keyboards. If you feel you need a review on something you are unsure of, or if it's a more major change, then a PR makes more sense.


Quickly choosing a context menu option will not close the context menu.

If you right click to open the context menu and quickly select an option, the option will execute but the menu will remain open.

That's because of the solution I put in place for issue #1 .  Basically the context menu can't close for 400 ms after it opens - this is in order to support Firefox on Mac.  If you have an idea for a solution that won't reopen that issue, I'll listen.

Interesting.
Is it possible to record if an option is clicked before the time out ends, and then after time out execute the option (if any) that was selected and close the menu?
I don't know what the click event is firing on for the mac issue, depending on that this might be a possible solution.

That's true.  I could set up 2 different click listeners.  One for outside clicks that won't do anything for 400 ms and another for item clicks that will close the context menu any time.  That's a good idea.  Removing the won't fix label.

Fixed in 0.1.11


[SPARK-34392][SQL][3.0] Support ZoneOffset +h:mm in DateTimeUtils. getZoneId

What changes were proposed in this pull request?
To support +8:00 in Spark3 when execute sql
select to_utc_timestamp("2020-02-07 16:00:00", "GMT+8:00")
This is the backport of #31624 and the original author is @Karl-WangSK .
Why are the changes needed?
+8:00 this format is supported in PostgreSQL,hive, presto, but not supported in Spark3
https://issues.apache.org/jira/browse/SPARK-34392
Does this PR introduce any user-facing change?
no
How was this patch tested?
unit test

cc: @srowen

Test build #135799 has started for PR 31755 at commit b27ca75.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/40381/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/40381/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/40381/

Test build #135799 has finished for PR 31755 at commit b27ca75.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/135799/

LOL I just tried to merge this as well. Hope it worked.

Oh. :)

I was late. Thanks. :)


[Oracle] Behaviour filter on top differs from filter in navigation tree (per object type)

Describe the solution you'd like
If you set the result set size to f.e. 250 records, the filter on top does not show objects that you want to filter that are not in the first fetched 250 records of the object types. If you click on the "More" option under f.e. the object type tables, then the object with the filtered name is shown correctly.

However, if you use the direct filter on an object type, the object is shown regardless of the result set size. Would it be possible to also show the object using the filter on top, regardless of the result set size?

Unfortunately, it is not really possible. It could take too much time to load the whole tree in DB navigator.
You could use e.g. Tables folder filter instead
It could be found in connection properties

or in the Connection context menu in DB navigator

This change would probably require you to redesign the DB Navigator, so I understand this would be difficult.
At the moment I already use the suggested object filter to filter the results, so I will keep using this filter in the future.
The option to increase the default result set size using the preferences could also be a solution. However, this would probably cause performance to drop sincerely because of the increased result set size? (especially since we have +- 6000 tables in our database)
Thanks.


Dotnet runtime security update may cause certificate validation failures

Team

[X] I've assigned a team label to this issue

What happened?
On June 13, 2023, Microsoft released a security update to .NET Framework and .NET which impacts how the runtime imports X.509 certificates. These changes may cause X.509 certificate import to throw CryptographicException in scenarios where import would have succeeded prior to the update.
https://support.microsoft.com/en-us/topic/kb5025823-change-in-how-net-applications-import-x-509-certificates-bf81c936-af2b-446e-9f7a-016f4713b46b
Reproduction
Anyone running Octopus Server or Tentacle on certain versions of these dotnet runtimes:
.NET Framework 2.0
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2
.NET Framework 4.8
.NET Framework 4.8.1
.NET 6.0.18+
.NET 7.0.7+
Operations that may trigger this issue include:
Installing or using a Tentacle or Server
Error and Stacktrace
System.Security.Cryptography.CryptographicException : PKCS12 (PFX) without a supplied password has exceeded maximum allowed iterations.

More Information
Octopus Server GitHub issue here
Dotnet Runtime GitHub issue here
Tentacle Fix
Workaround
Suppress the additional validation by setting environment variable COMPlus_Pkcs12UnspecifiedPasswordIterationLimit=-1
More workarounds available in the Microsoft Advisory

Fixed in https://github.com/OctopusDeploy/OctopusTentacle/pull/521

Fixed in https://github.com/OctopusDeploy/OctopusTentacle/pull/521

Fixed in 6.4.41


Undefined behavior with strncpy when source and destination buffer overlap

It seems there is UB present this code base:
https://github.com/wrpearson/fasta36/blob/06b92debafe797651f62fa1da2b524bf842ace8e/src/dropfx.c#L2128-L2130
Accoding to https://www.cplusplus.com/reference/cstring/strncpy/
char * strncpy ( char * destination, const char * source, size_t num );
destination and source shall not overlap (see memmove for a safer alternative when overlapping).

As is pointed out in the source code of the function have concerns about -- this code is not used by the FASTX program.  It is left over from the original description of the translated alignment code, and is potentially useful for testing.
I agree that it seems to have issues, but it is not used, and I am not the author, so I prefer to leave it as is.
Bill Pearson
Begin forwarded message:
From: orbitcowboy<EMAIL_ADDRESS>Subject: [wrpearson/fasta36] Undefined behavior with strncpy when source and destination buffer overlap (#32)
Date: July 29, 2021 at 3:41:32 PM MDT
To: wrpearson/fasta36<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Reply-To: wrpearson/fasta36<EMAIL_ADDRESS>It seems there is UB present this code base:
https://github.com/wrpearson/fasta36/blob/06b92debafe797651f62fa1da2b524bf842ace8e/src/dropfx.c#L2128-L2130
Accoding to https://www.cplusplus.com/reference/cstring/strncpy/
char * strncpy ( char * destination, const char * source, size_t num );
destination and source shall not overlap (see memmove for a safer alternative when overlapping).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/wrpearson/fasta36/issues/32, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABQYNP6CURU23MNSDP3NUZDT2HDIZANCNFSM5BHJTUNA.

Ok. As long as it exits, somebody will use it and experience undefined behaviour. A possible solution is to remove this function, since it is obviously not used. In addition the removal should be stated in the changelog.


Ln/jumio

see https://github.com/bitclout/backend/issues/101 for bug requiring users that already own their own creator coin to buy it again.


Model forgets instructions: Just resend system prompt

Is your feature request related to a problem? Please describe:
The use of custom models sometimes leads to problems with prompt adherence and context size. The model then forgets how to create files and what the system commands for starting the web server should look like. When the source code is only displayed in the chat window and no longer appears in the code area, you don't have many chances to bring back your model into life.
Describe the solution you'd like:
But in my experience the following solution often works: Write the system prompt ("You are Bolt, an expert of...") again in the chat window and ask the model to follow these instructions. And suddenly the file creation works again. Of course, there is no 100% guarantee, but in my experience this is a good workaround if you are running models that quickly forget their instructions due to small context windows. I could imagine a “Resend System Prompt” button which you could automate this refresh (only the area up to the examples section is actually needed).
Describe alternatives you've considered:
With a shorter system prompt, you could of course delay the problematic moment. This approach should therefore also be pursued.
Additional context:
Before (model only quotes source code to the chat window):

After resending system prompt (model again uses the artifacts and creates the files in the workbench):

Warning
If the model becomes forgetful, you should definitely download or sync the files. There is then a great risk of losing all progress. In this case, it may be necessary to reinsert content manually. This is of course unacceptable in a production environment, but as long as ottodev does not provide a backup, snapshot or caching function, there is no other solution.

this is an outdated version please try the latest and start a new issue if the problem persists


Additional Sensor Ideas/Info

Hi,
Firstly, great work!
I thought I'd share the details of some other AudioBookShelf sensors I've added to HA as rest sensors, in case you wanted to add them to this integration also. Some of which I have found really useful, especial being able to track when a new podcast episode is available and when the size of my podcasts is getting too big and I should think about pruning them.
Using the api path http(s)://[URL]/api/libraries/[LIBRARY_ID]/stats gets you stats on a library as detailed below.
The [LIBRARY_ID] is in the format "abcdef12-4567-890a-bcdef1234567". I originally found it by taking it from the URL when viewing the library in the AudioBookShelf UI so you could get users to add them as part of the config flow but ideally you can list them from the API using http(s)://[URL]/api/libraries which would obviously be better.
Audiobooks
Number of books - value_json.totalItems
Number of authors - value_json.totalAuthors
Total Duration (hours) - ( value_json.totalDuration / 60 / 60 ) | round(0)
Total Size (GB) - ( value_json.totalSize / 1024 / 1024 / 1024 ) | round(2)
Podcasts
Number of podcasts (not episodes) - value_json.totalItems
Number of podcast episodes - value_json.numAudioTracks
Total Duration (hours) - ( value_json.totalDuration / 60 / 60 ) | round(0)
Total Size (GB) - ( value_json.totalSize / 1024 / 1024 / 1024 ) | round(2)
Hope that's useful!
Matt

Amazing thanks! When I have some time I’ll sit down and take a proper look at this but I’d be keen to add these

I'm excited to start using ABS and this home assistant integration looks great.  I haven't read too far into the API documents so I'm not sure what's possible and what's not.
I think it would be really cool if you could call a Service to "Continue playing last audio book".
On top of that I'm looking forward to using this kind of stuff with Voice commands in home assistant.

Okay folks, I did not know what I was doing so I have basically rewritten the integration from scratch to do it a bit better. I have push v0.1.1-pre which is a pre-release version to add some library sensing stuff.
To actually add dynamically created and removed library sensors was proving too difficult for my small non-pythonic brain so I have opted to add the details in an attribute on the Library sensor instead. I'm still going to clean it up and improve the attributes but this is what it looks like on that release:

The re-implementation does not support adding the integration from the UI (I hope to get to that) so for now it is from configuration.yaml as follows:
audiobookshelf:
  api_url: 'http(s)://<your ip>:<your port>'
  api_key: <your key>
  scan_interval: <optional refresh speed in seconds defaulting to 300 if not set>

Y'all are welcome to give it a go and let me know if there are any major problems but no stress if not. I'll post here again when I have something more complete.

Just curious if this is still being actively developed.

@lhassell I would like to continue but haven't found time or motivation for it in a while unfortunately

Oops, I didn't mean to close this. I have finally had some time to sit down and rewrite how I do the sensors and included a way to add sensors for libraries. It's far from perfect so I'll reopen this issue and if there are any specific things missing I can track them in here.


thanos-query: Wrong dropping store, external labels are not unique

Thanos, Prometheus and Golang version used:
Version 0.8.0
Revision https://github.com/thanos-io/thanos/commit/7b60b210e4c4b06da91a4fdfd257e10602de6b54
Branch HEAD
BuildUser  circleci@32eb15a80c51
BuildDate 20191010-17:26:35
GoVersion go1.13.1
Object Storage Provider:
n/a
What happened:
thanos-query does not distinguish same labels from sidecar and store. When we run one sidecar and one store query shows error dropping store, external labels are not unique on sidecar.
What you expected to happen:
Error will not appear
How to reproduce it (as minimally and precisely as possible):

Run thanos-sidecar with external labels and configured storage.
Run thanos-store
Run thanos-query with configured storages on sidecar and store.
Look at the stores UI in thanos-query

Full logs to relevant components:
Anything else we need to know:
After restart thanos-store when thanos-query already running the problem not reproduce. But wen we restart thanos-query we see dropping store, external labels are not unique again.

Duplicate: https://github.com/thanos-io/thanos/issues/1632


[tabs] How to stop re-rendering it?

What's the problem?
Hi, I send my parameters to child component to render information in a tab,  However every time i switch between tabs the content gets re-rendered but the information I pass down data has not changed.   I believe the problem is some other prop is changing...possible value?
example

meaning the value possible is changing ?
i can swtich between the tabs 1000 times...and data is not changed... but keeps re-rendering.
What are the requirements?
a Tabs functionality that does not re-render.
What are our options?
I guess I could use own labels (buttons) this is possible a work around and only display the element depending on last switch of button.
Proposed solution
No response
Resources and benchmarks
No response
Search keywords:

Did you by any chance forgot to add an example or a link ?


DEV: Minor additions and change the API of dev hooks

DevHooks
The main point o this PR is to change the API of dev hooks from using the globalThis namespace to storing them in a new DEV.hooks object that has to be explicitly imported.
The number of dev hooks will probably only increase and I don't like how they are polluting the global namespace with something that concerns almost none of the users.

Here I get autocomplete to _$afterCreateRoot hook, instead of createRoot in the playground...
So the behavior is the same, it just has to be imported.
import { DEV } from "solid-js"

if (DEV) {
  DEV.hooks.afterUpdate = () => {
    console.trace("after update")
  }
}

afterCreateOwner
I've removed the previous afterCreateRoot hook, which enabled me to attach the debugger to any root in the app without the user needing to do anything, and replaced it with a more general afterCreateOwner which extends on afterCreateRoot to allow me to:

monkey-patch computations right as they are created—which means that doing a flame chart of creation/execution time of computations as the app loads will be possible.
listen to computation updates from the very beginning, instead of waiting for the next time, I walk the tree. This means that I won't miss any updates that could happen in that time window.
capture effects or memos created outside of roots (which some seem to like doing for some reason, and this also seems like something semi-planned for 2.0)

registerGraph graph property
Since signals have no concept of ownership, they have no owners. They are added to the soureceMap property if created synchronously under an owner, so there is a way to get signals from the owner, but there is no way to get an owner from a signal. Well, at least not without keeping a separate map after walking the tree.
So I've added a new graph property to the value object that is added to sourceMap. Which adds it to anything passed to registerGraph, signals included.

Since this is mainly for you and the dev tools.. I will ask. This is breaking right? Is this a wait for 1.7 thing?

Yup, it'll break existing devtools.
Changes to hooks can wait.
I can create a separate PR for adding the graph property to values, because this one I'll need for visualizing the dependency graph and is not breaking.

We can get rid of this in 1.7 too right? https://github.com/solidjs/solid/issues/1322

Sure, I can try to tackle this again.
I was waiting because there was a innitiative from @lxsmnsyc to achieve state preservation with HMR, and I didn't want to prevent it with my changes. But it seems that now he has doubts about the reliability of the approach.
My original plan was to just use a counter incremented id for signals/computations, so that it is unique rather then "regeneratable": https://github.com/solidjs/solid/pull/1255

What's the timeline for 1.7 btw?

I see.. Yeah I remember there being an issue. Didn't realize using what I had done was desired.
I have no timeline for 1.7 yet. Not quite sure what goes in yet. I'm sure there will be one as work on 2.0 has started and I'm sure we will learn stuff we want to get into at least one 1.x version.

Didn't realize using what I had done was desired.

I don't know if it's desired either, so I wanted to see the implementation to see what's necessary.
So if I'm to proceed with the change, what exactly can I remove?
Using hashValue produces names that aren't unique, too random to give any insight for the user and can take a lot of cpu time if a lot of them are queued.
As you know serializeGraph has no use because devtools would have their way of traversing the tree to get the data relevant to them.
If serializeGraph is gone there is no need to even have ids/names for each signal/computation at all as the only place they are used at is serializeGraph.
User-provided names would remain as they are.
The sourceMap property could just be an array of values (SignalMapValue[]) instead of a record.
So creating ids would be in toolings domain entirely.
But if serializeGraph and hashValue were to be kept exported, even if not used, all signals, owners, roots would need an id to be serializable. Which means there still needs to be a method of generating them. But generated ids should probably kept separate from user-provided names.


Baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions

Follow https://github.com/opensearch-project/.github/issues/125 to baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions.
Close this issue when:

MAINTAINERS.md has the correct list of project maintainers.
CODEOWNERS exists and has the correct list of aliases.
Repo permissions only contain individual aliases as collaborators with maintain rights, admin, and triage teams.
All other teams are removed from repo permissions.

If this repo's permissions was already baselined, please confirm the above when closing this issue.

https://github.com/opensearch-project/opensearch-dashboards-test-library/blob/main/MAINTAINERS.md has correct list of maintainers

@CCongWang has been granted to admin permission

checking

@dblock i'm not sure i'm following.
the request is to baseline CodeOwner and Maintainer not Admin right?

@seraphjiang That is incorrect. Only members of "admin" should be granted admin permissions. And the functional-test-admin group should be deleted.

@dblock Is the admin part a must have to close the issue per @seraphjiang 's question above?

@seraphjiang There should be no other team apart from opensearch-project/admin and triage team. Everyone else should be added as individual users.

@seraphjiang There should be no other team apart from opensearch-project/admin and triage team. Everyone else should be added as individual users (with appropriate access but cannot be admin).

@bbarani Step 7 in https://github.com/opensearch-project/.github/issues/125 says that you could help sync the repo permissions. Could you please help?
Also if I do not have admin permission, I may loose access to "Settings" tab. This means that we will need your (or other org admin) help to grant permissions for a new maintainer.

Updated admins as well.

verified, thanks.


[Keyboard, Android] Modifier key_down can have 0 modifier, leading to crash (key 0x200000105, not SHIFT)

Steps to Reproduce

Use a Chromebook with Android 11 (not sure how necessary this step is)
Focus a TextField
Press the Swedish letter 'ä' on the physical keyboard

Expected results: That the letter 'ä' is added to the text field text.
Actual results: Instant crash of application
Flutter version
This can probably affect different versions of Flutter but I have this frequently reported from end users on Flutter 3.3.1 stable on Chromebooks with Android 11 with the CPU "Intel Jasper Lake".
Related issues
This issue is practically the same as #108124 but the fix for that issue seems to be specific to the SHIFT key (0x200000102). My crash happens for the Swedish letter 'ä' and I'm not sure if the fix in #108124 only affects SHIFT or if it includes other keys too. The crash does not happen for the other two Swedish letters: 'å' and 'ö', these works as expected. I'm not sure what Flutter stable version includes the fix for #108124. Any tips on how I can see what Flutter version includes the fix would be greatly appreciated.
This crash is also very similar to #110653 but that is also shift key (0x200000102) where there is a video of the issue. That crash is exactly the same that I get but I get it with another key (0x200000105, swedish 'ä').
Another similar issue is #110640 that also addresses the shift key (0x200000102).
Chrome OS version
I'm not sure if this is relevant but I do mention it here. We see this crash today (18th of October 2022) and it's 100% reproducible on the affected devices. I did test it on another Chromebook and we could reproduce the bug 100%. After updating that ChromeOS to 107.0.5083.0 (64 bit official build) the error went away on that device. I'm not sure which ChromeOS version the device had before, when the error was reproducible.
To summarize: The app is built on Flutter 3.3.1 stable and it crashed 100% of the time when we pressed 'ä'. Then I updated ChromeOS to 107.0.5083.0 and after that the crash cannot be reproduced anymore (I did not update the app).

Crash log (from Firebase Analytics)
Fatal Exception: java.lang.AssertionError: Unexpected metaState 0 for key 0x200000105 during an ACTION_down event.
       at io.flutter.embedding.android.KeyEmbedderResponder.synchronizePressingKey(KeyEmbedderResponder.java:127)
       at io.flutter.embedding.android.KeyEmbedderResponder.handleEventImpl(KeyEmbedderResponder.java:50)
       at io.flutter.embedding.android.KeyEmbedderResponder.handleEvent(KeyEmbedderResponder.java)
       at io.flutter.embedding.android.KeyboardManager.handleEvent(KeyboardManager.java:31)
       at io.flutter.embedding.android.FlutterView.dispatchKeyEvent(FlutterView.java:42)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
       at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1959)
       at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:476)
       at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1861)
       at android.app.Activity.dispatchKeyEvent(Activity.java:4095)
       at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:390)
       at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:5990)
       at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5858)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5353)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5410)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5376)
       at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5528)
       at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5384)
       at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5585)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5357)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5410)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5376)
       at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5384)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5357)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5410)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5376)
       at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5561)
       at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:5719)
       at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3179)
       at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2721)
       at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2712)
       at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3156)
       at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:143)
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:335)
       at android.os.Looper.loop(Looper.java:183)
       at android.app.ActivityThread.main(ActivityThread.java:7737)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)

Hi @mikeesouth
As far as I can see, the patch fix for #110640 is available from 3.3.3 onwards, please see https://github.com/flutter/flutter/wiki/Hotfixes-to-the-Stable-Channel#333-sept-28-2022.
So, please try to upgrade to the latest Flutter stable channel (3.3.4) and retry.

@huycozy thanks, I missed that issue number on the hotfixes page! I will try a new build with 3.3.4 (it's already on the way to end users). I will update with results here later this week.