A CONFIG bug

Here is MWE for my SoS script:
[1]
samples = list(CONFIG.keys())
input: for_each = 'samples'
bash: expand = True
	echo {CONFIG[_samples]['name']}

and the CONFIG file:
sample:
        name: 'N666'

and the command & error message:
$ sos run test.sos -c config.yml
INFO: Running default_1:
N666
ERROR: [default_1]:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
script_8686010746599247775 in <module>
      bash(fr"""echo {CONFIG[_samples]['name']}
----> """)

TypeError: string indices must be integers

You see the name has been properly printed but there is an error genrated at the end.

My CONFIG contains a lot of host definitions so using all keys from CONFIG is not safe.
I changed the code to
[1]
samples = list(CONFIG['samples'].keys())
input: for_each = 'samples'
bash: expand = True
	echo {CONFIG['samples'][_samples]['name']}

with test.yml
samples:
    s1:
        name: 'N666'
    s2:
        name: 'N667'

and I do not see a problem with command
sos run test.sos -c test.yml

I see, the problem is keys in CONFIG. It has more stuff unrelated to local project. I keep forgetting this ...
I think I should better use yaml.load for project specific configuration? It is not as convenient but since we do not have the concept of local configurations it might be safer that way.
I'm okay to close this issue if you think there is little to improve on this.

Another option is to use subkeys like what my example uses.

Another option is to use subkeys like what my example uses.

Sure, but after re-realizing CONFIG is global I become hesitated doing that (what if my subkey happens to be, say, hosts ...)

The design allows users to specify hosts in local configurations, which is at least useful for sos tests where configurations for docker based hosts are defined in separate configuration files for tests.


表格首行会吞掉回车符

version
0.9.90
Link to minimal reproduction
No response
Steps to reproduce

What is expected?
第一列的1.和第二列的2.都被吞了一个回车符
What is actually happening?
表格首行回车符正常显示
Editor Value
No response
System Info
No response
Any additional comments?
No response

重复：#771


PKEY-method override no longer working with OpenSSL 3.0

I have an application that uses a PKEY-method override to perform HSM-based secure key signing.
In OpenSSL 1.1.1. this works well, but in OpenSSL 3.0 it does not work anymore.
I am aware that all the PKEY method functions are deprecated in OpenSSL 3.0, but I guess they 'should' still work the same as before....
However, it might be that my usage is somewhat unusual, and thus not covered by the OpenSSL 3.0 compatibility code. So it might be that you immediately tell me that this is no supposed to work anymore with OpenSSL 3.0. That would be totally OK for me, I do have a provider based solution for that use case that works with OpenSSL 3.0. However, maybe this situation is unintentionally not covered by the compatibility code and is worth to fix.
Here is what I do:
I setup my own PKEY method as follows. Note that this is not within an engine, but just within the application code.
pkey_meth = EVP_PKEY_meth_new(EVP_PKEY_id(pkey), 0);
EVP_PKEY_meth_set_init(pkey_meth, my_pkey_meth_init);
EVP_PKEY_meth_set_cleanup(pkey_meth, my_pkey_meth_cleanup);
EVP_PKEY_meth_set_copy(pkey_meth, my_pkey_meth_copy);
EVP_PKEY_meth_set_ctrl(pkey_meth, my_pkey_meth_ctrl, NULL);
EVP_PKEY_meth_set_sign(pkey_meth, NULL, my_pkey_meth_sign);
EVP_PKEY_meth_add0(pkey_meth);

Note that my_pkey_meth_ctrl() supports some own private control commands, i.e. EVP_PKEY_CTRL_MY_COMMAND.
Also note that the PKEY used in this application is a legacy PKEY, that has been produced via EVP_PKEY_assign_EC_KEY() (public key only, the private key is known to my PKEY method by other ways - i.e. is set via EVP_PKEY_CTX_ctrl() with a private command later on).
I then setup a digest sign context as follows:
EVP_PKEY_CTX *pctx = NULL;
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
EVP_DigestSignInit(ctx, &pctx, md, NULL, pkey);
EVP_PKEY_CTX_ctrl(pkey_ctx, -1, -1, EVP_PKEY_CTRL_MY_COMMAND, x, y);

The very last function (EVP_PKEY_CTX_ctrl()) fails.
I debugged this, and it seems that it is seeding the command to the (default) provider, and thus through the  ctrl to parms translation, which of course fails to translate that command since ist my private one.
So evp_pkey_ctx_ctrl_to_param() fails with EVP_R_COMMAND_NOT_SUPPORTED.
It goes that way, because in evp_pkey_ctx_ctrl_int() it calls evp_pkey_ctx_state() which returns EVP_PKEY_STATE_PROVIDER for that PKEY context.
I think that the error actually happend way before that. EVP_DigestSignInit() internally creates the PKEY context. do_sigver_init() creates a new PKEY context using EVP_PKEY_CTX_new_from_pkey() which calls int_ctx_new(). At the end of int_ctx_new() the created PKEY context looks as follows:
*ret = {operation = 0, libctx = 0x0, propquery = 0x0, keytype = 0x3fffddb1d68 "id-ecPublicKey", keymgmt = 0x1113690, op = {
    keymgmt = {genctx = 0x0}, kex = {exchange = 0x0, algctx = 0x0}, sig = {signature = 0x0, algctx = 0x0}, ciph = {cipher = 0x0,
      algctx = 0x0}, encap = {kem = 0x0, algctx = 0x0}}, cached_parameters = {dist_id_name = 0x0, dist_id = 0x0, dist_id_len = 0,
    dist_id_set = 0}, app_data = 0x0, pkey_gencb = 0x0, keygen_info = 0x0, keygen_info_count = 0, legacy_keytype = 408,
  pmeth = 0x10b9070, engine = 0x0, pkey = 0x10bba80, peerkey = 0x0, data = 0x10b9350, flag_call_digest_custom = 0, rsa_pubexp = 0x0}

Note that the pmeth field is set, and it is my own PKEY method, as expected. It got it via pmeth = evp_pkey_meth_find_added_by_application(id);
Later in do_sigver_init() it uses the created PKEY context and checks if it is a legacy context:
     if (evp_pkey_ctx_is_legacy(locpctx))
        goto legacy;

And here is the problem, evp_pkey_ctx_is_legacy() returns false, so it is treated as provider context, not legacy.
evp_pkey_ctx_is_legacy is a define as follows:
#define evp_pkey_ctx_is_legacy(ctx)                             \
    ((ctx)->engine != NULL || (ctx)->keytype == NULL)

I would assume that it should also check (ctx)->pmeth != NULL, because a context with an application PKEY method should also be treated as a legacy context.
The legacy code within do_sigver_init() would then use the PKEY method to perform the sign operation.

Hmm...yes, it does seem like a custom pkey method should be detectable and handled as legacy.

keytype isn't supposed to be set for legacy pkeys... Must be some code change that had an undesirable side effect... I'll try to remember to have a look tomorrow

I run this in the debugger again, and looked at the (legacy) PKEY itself:
1: *pkey = {type = 408, save_type = 408, ameth = 0x3fffde8ef20 <ossl_eckey_asn1_meth>, engine = 0x0, pmeth_engine = 0x0, pkey = {
    ptr = 0x10b8270, rsa = 0x10b8270, dsa = 0x10b8270, dh = 0x10b8270, ec = 0x10b8270, ecx = 0x10b8270}, legacy_cache_pkey = {
    ptr = 0x0, rsa = 0x0, dsa = 0x0, dh = 0x0, ec = 0x0, ecx = 0x0}, references = 2, lock = 0x10ba9c0, attributes = 0x0,
  save_parameters = 1, foreign = 0, ex_data = {ctx = 0x0, sk = 0x0}, keymgmt = 0x0, keydata = 0x0, dirty_cnt = 0,
  operation_cache = 0x0, dirty_cnt_copy = 0, cache = {bits = 0, security_bits = 0, size = 0}}

So for the PKEY keymgmt  is NULL, indicating that this PKEY is a legacy key.
Within int_ctx_new(), where the PKEY context is created, it sets the context's keytype pretty much unconditional via keytype = OBJ_nid2sn(id); when engine is NULL and the PKEY is not foreign. After that, it gets the application PKEY-method via pmeth = evp_pkey_meth_find_added_by_application(id);.
It then fetches the provider KEYMGMT if there is no engine, but keytype is set:
if (e == NULL && keytype != NULL) {
        keymgmt = EVP_KEYMGMT_fetch(libctx, keytype, propquery);

Maybe it should check for pmeth == NULL additionally here to not fetch the provider if an application PKEY-method is used? For me it looks like the existence of an application PKEY-method should be pretty much handled the same as the existence of an engine in this piece of code.
And maybe keytype should be set to NULL in the else case of above if, so that keytype is non-NULL only if a provider has been fetched. This would then let evp_pkey_ctx_is_legacy() return true for such a context, as expected.
So this would mean the following code changes in int_ctx_new():
    /*
     * If there's no engine and there's a name, we try fetching a provider
     * implementation.
     */
    if (e == NULL && pmeth == NULL && keytype != NULL) {      <------ changed here
        keymgmt = EVP_KEYMGMT_fetch(libctx, keytype, propquery);
        if (keymgmt == NULL)
            return NULL;   /* EVP_KEYMGMT_fetch() recorded an error */
        ...
    } else {
       keytype  = NULL;                  <------ added this
    }

To ease investigations into this issue, I wrote a fully standalone reproducer:
#include <openssl/evp.h>
#include <openssl/pem.h>

static EVP_PKEY_METHOD *custom_rsa;
static const EVP_PKEY_METHOD *rsa_orig;

#define EVP_PKEY_CTRL_MY_COMMAND 9999

static char data[] =
"-----BEGIN PRIVATE KEY-----\n"
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVXWBq3/xh7kiq\n"
"jBFIQ6VttlJdqphJsWGSNbH8OgQlDG15/7TVyelcHDvgq7O4faPebb3g3ddavxRH\n"
"EUJepoLQYcF/3RNG5gmFBw7y1PwaZNIKrSCrIGuW8K3MxBlTVdwBHaSz74q0SVNd\n"
"igUc8dzhRL/F1+J3GVdclwt17ohDcQ/KbMG0slCnd0ZsWA8Rv/F2JFquOUK3UWcp\n"
"4dBVMG8X5JHqrfgowkNvomSp+52YkmJIPusNT4JKiv8/cu6Wta6hwZi6732QdW3/\n"
"WlKeq/XAftCHQ9uFBwcPfTh6/dHT7mUd0+o5aoc37krT4A1u9XCswr3xbvOSlV6p\n"
"8KFllZONAgMBAAECggEADLTt7A+A2Vg2jamf0dztejY0e42QWjstI2b9PZc67fXq\n"
"gyx+WYkX07t+uWegYWliG/oPJ9guXiIpE/5sJHToL37S5kmFP2CtynVcJ4wVo4DD\n"
"nY0n9+kLX0bgIuS+2V6wpoRcbbbjXM9NHrH8kfe5ftT4UtEDlLI2qLX6IcDd7p4u\n"
"OYjILChR8GSGTw96yIy2Ws/1Uq9PMw64JoT4RcK5QqnkcPMDFRH1SeLOL+zXP2c4\n"
"nEl9yOy3HauZKxwl/Ry/XK1s3DdjopIAU29ut+hAuMiTb06kzZnumL9NoplKoZtU\n"
"otw/gVcCKhT+Ep+p6i8InLF0XEME8A0qUR0niWebgQKBgQD6vkxR49B8ZZQrzjw4\n"
"XKs1lI9cP7cgPiuWlDHMNjYou3WbOaGrMeScvbB1Ldh9A8pjAhxlw8AaV/xs4qcA\n"
"trmVmSISVMVyc1wSGlJXWi2nUzTNs9OE3vj22SyStihf8UUZtWwX2b5Y4JrYhA/V\n"
"+ThGGqHR03oLNLShNLtJc2c7YQKBgQDZ1nkibEyrepexw/fnwkw61IJKq9wRIh1G\n"
"PREakhbe9wU5ie0knuf9razt7awzQiwFmlixmWqsM7UEtLuXNnNPciwdrKhhbvrd\n"
"vD/rkbIEHEPllIhFlDtOzn3hRBWTzWmXFjpou/2LvHTSbVis4IYVZymTp2jb1ZLs\n"
"7VbiG9JTrQKBgQDc6n75g1szzpdehQT/r33U5j/syeJBUSU8NPMu9fB/sLHsgjlT\n"
"SNEf2+y1QSBE/Or6kmiMrIv7advn30W+Vj9qc5HWTsPrk4HiHTjA553jl2alebN5\n"
"lK4LZspjtIQcC8mS3goPdXPEgJdM/gWpwzr2YQ6DfOxBJT2j7n64NyoT4QKBgH7/\n"
"yx+GhCx1DHtXBPDZFhg2TL+78lEK0oZgk9gp06up2CHzh44SFq6O0oLkTcCUk5Ww\n"
"poTkLIy4mJBlzfgahp+KsK2cO46SZS9g0ONFzcMXt33hWpE2Gl2XhUwPpYTF/QlY\n"
"rDTjZK5S8Mi9dzVSsNlJi7PJphiEK2R1+nFYRwcBAoGBANWoIG85jpXAOnq/Kcgx\n"
"Rl3YivR0Ke6r1tFlP58rT7X3EkiboXyQl5vLIFCAwUte6RGrLl1dy3Qyh80B9ySL\n"
"Jx6vj42CK7vgv6A96TuVYhnXTnEI6ZvwAQ2VGaw4BizhjALs/kdSE/og9aSCs3ws\n"
"KQypwAFz0tbHxaNag/bSAN0J\n"
"-----END PRIVATE KEY-----\n";

EVP_PKEY *loadkey(void)
{
    BIO* bio = BIO_new_mem_buf(data, -1);
    EVP_PKEY *pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL);

    BIO_free(bio);
    return pkey;
}

static int custom_rsa_init(EVP_PKEY_CTX *ctx)
{
    static int (*pinit)(EVP_PKEY_CTX *ctx);

    if (pinit == NULL)
        EVP_PKEY_meth_get_init(rsa_orig, &pinit);
    return pinit(ctx);
}

static void custom_rsa_cleanup(EVP_PKEY_CTX *ctx)
{
    static void (*pcleanup)(EVP_PKEY_CTX *ctx);

    if (pcleanup == NULL)
        EVP_PKEY_meth_get_cleanup(rsa_orig, &pcleanup);
    pcleanup(ctx);
}

static int custom_rsa_decrypt_init(EVP_PKEY_CTX *ctx)
{
    static int (*pdecrypt_init)(EVP_PKEY_CTX *ctx);

    if (pdecrypt_init == NULL)
        EVP_PKEY_meth_get_decrypt(rsa_orig, &pdecrypt_init, NULL);
    return pdecrypt_init(ctx);
}

static int custom_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *out,
                              size_t *outlen, const unsigned char *in,
                              size_t inlen)
{
    static int (*psign)(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
                        const unsigned char *tbs, size_t tbslen);

    if (psign == NULL)
        EVP_PKEY_meth_get_sign(rsa_orig, NULL, &psign);
    return psign(ctx, out, outlen, in, inlen);
}

static int custom_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
{
    static int (*pctrl)(EVP_PKEY_CTX *ctx, int type, int p1, void *p2);

    if (pctrl == NULL)
        EVP_PKEY_meth_get_ctrl(rsa_orig, &pctrl, NULL);

    if (type == EVP_PKEY_CTRL_MY_COMMAND) {
        printf("Success!\n");
        return 1;
    }

    return pctrl(ctx, type, p1, p2);
}

static int custom_rsa_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,
                               const char *value)
{
    static int (*pctrl_str)(EVP_PKEY_CTX *ctx, const char *type,
                            const char *value);

    if (pctrl_str == NULL)
        EVP_PKEY_meth_get_ctrl(rsa_orig, NULL, &pctrl_str);
    return pctrl_str(ctx, type, value);
}

int main(void)
{
    EVP_PKEY_CTX *pctx = NULL;
    EVP_MD_CTX *ctx = EVP_MD_CTX_new();
    EVP_PKEY *pkey = NULL;

    if ((rsa_orig = EVP_PKEY_meth_find(EVP_PKEY_RSA)) == NULL
        || (custom_rsa = EVP_PKEY_meth_new(EVP_PKEY_RSA, 0)) == NULL
        || ctx == NULL)
        return 0;
    EVP_PKEY_meth_set_init(custom_rsa, custom_rsa_init);
    EVP_PKEY_meth_set_cleanup(custom_rsa, custom_rsa_cleanup);
    EVP_PKEY_meth_set_sign(custom_rsa, NULL, custom_rsa_sign);
    EVP_PKEY_meth_set_ctrl(custom_rsa, custom_rsa_ctrl,
                           custom_rsa_ctrl_str);
    EVP_PKEY_meth_add0(custom_rsa);

    pkey = loadkey();
    EVP_DigestSignInit(ctx, &pctx, EVP_sha256(), NULL, pkey);
    EVP_PKEY_CTX_ctrl(pctx, -1, -1, EVP_PKEY_CTRL_MY_COMMAND, 0, NULL);
}

When compiled against 1.1.1 this application prints "Success!", but fails to do so against master.

I have a slightly different solution, which I hope will make things clearer too.  Gonna test @mattcaswell's reproducer against it, and submit a PR if it works the way I hope.

Er @mattcaswell?  In that reproducer, loadkey() returns a provided key.  That's not quite the same scenario

The following diff of the reproducer came closer:
@@ -1,5 +1,6 @@
 #include <openssl/evp.h>
 #include <openssl/pem.h>
+#include "crypto/evp.h"

 static EVP_PKEY_METHOD *custom_rsa;
 static const EVP_PKEY_METHOD *rsa_orig;
@@ -41,9 +42,13 @@
 EVP_PKEY *loadkey(void)
 {
     BIO* bio = BIO_new_mem_buf(data, -1);
-    EVP_PKEY *pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL);
+    EVP_PKEY *tmppkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL);
+    EVP_PKEY *pkey = EVP_PKEY_new();

     BIO_free(bio);
+
+    evp_pkey_copy_downgraded(&pkey, tmppkey);
+    EVP_PKEY_free(tmppkey);
     return pkey;
 }

Er @mattcaswell? In that reproducer, loadkey() returns a provided key. That's not quite the same scenario

Ah, good point  - thanks. Although the original producer should also work in master but doesn't - so both are valid scenarios.

Although the original producer should also work in master but doesn't - so both are valid scenarios.

Why?  With a provider key, ctrls of that sort are invalid.  Remember, we do not automagically downgrade pkeys, and the ctrl<->params translation only handles ctrl cmds and param keys that libcrypto knows.  Translating completely random cmds like EVP_PKEY_CTRL_MY_COMMAND are too big an ask.

Fix in #16111.  @ifranzki, if you wouldn't mind trying it out...?

Because the original reproducer worked perfectly well in 1.1.1 using public APIs. Under-the-covers it ends up creating a provided key in master. But end users should not need to know that this is the case - and there is nothing "special" in this reproducer which would mean an end user would expect a change in behaviour.

Translating completely random cmds like EVP_PKEY_CTRL_MY_COMMAND are too big an ask.

That should not be necessary. We just need to know that when we init the pctx, that it should be inited as legacy and therefore the pmethod will handle the ctrls.

So this implies call to EVP_PKEY_meth_add0() should implicitly downgrade all PKEY_CTX operations for keys to which the method applies? I suppose this is quite broad but probably ok.

So this implies call to EVP_PKEY_meth_add0() should implicitly downgrade all PKEY_CTX operations for keys to which the method applies?

Yes.

That should not be necessary. We just need to know that when we init the pctx, that it should be inited as legacy and therefore the pmethod will handle the ctrls.

The consequence is that we will have to do pkey downgrading under these conditions, since pmeths rightfully assume legacy keys.  That's something we have explicitly said we shouldn't have to do.
It's a bit late to change that perspective now!

Also re-reviewing the int_ctx_new() code with this in mind - this looks suspicious:
    if (pkey != NULL && evp_pkey_is_provided(pkey)) {
        /* If we have an engine, something went wrong somewhere... */
        if (!ossl_assert(e == NULL))
            return NULL;
        keytype = EVP_KEYMGMT_get0_name(pkey->keymgmt);
        goto common;
    }

What if I have a provided key and call EVP_PKEY_CTX_new(provided_key, engine) ? The assert above will fail.

The problem is the application authors have no way to forcibly create a downgraded copy as a workaround. Perhaps we need to make the EVP_PKEY_copy_downgraded() a public call?

The problem is the application authors have no way to forcibly create a downgraded copy as a workaround. Perhaps we need to make the EVP_PKEY_copy_downgraded() a public call?

We would immediately mark that as deprecated...  😉

The consequence is that we will have to do pkey downgrading under these conditions, since pmeths rightfully assume legacy keys.

No, they don't. Our pmeths assume this. We have no idea what application supplied pmeths assume. Most likely of course an application implementation will want to access the "low level" key data. If they are written properly then they should be using public APIs to do that. E.g. EVP_PKEY_get1_RSA(). We already have a working implementation of that which should work just fine for pmeth implementors.
There should be no need for an EVP_PKEY_copy_downgraded().

Fix in #16111. @ifranzki, if you wouldn't mind trying it out...?

Yes that fix in deed looks much clearer.
I ran my program with that fix and it gets much further.  It still fails but I guess the failure is unrelated to this issue.
It does call my PKEY-method, but it fails within my sign function, probably because tbs is NULL....
Is this to be expected for a sign call with sig = NULL, that also tbs is NULL? Well, yes, it should probably be able to return the signature size, even without having any data to sign..... My code just does not expect that, and it does not seem to be called that way in OpenSSL 1.1.1.
#0  sk_pkey_meth_sign (ctx=0x10b9b60, sig=0x0, siglen=0x3ffffffd940, tbs=0x0, tbslen=32) at utilities.c:2713
#1  0x000003fffdbcca24 in EVP_PKEY_sign (ctx=0x10b9b60, sig=0x0, siglen=0x3ffffffd940, tbs=0x0, tbslen=32)
    at crypto/evp/signature.c:596
#2  0x000003fffdbb6490 in EVP_DigestSignFinal (ctx=0x10bdce0, sigret=0x0, siglen=0x3ffffffd940) at crypto/evp/m_sigver.c:474
#3  0x000003fffdbb666e in EVP_DigestSign (ctx=0x10bdce0, sigret=0x0, siglen=0x3ffffffd940,
    tbs=0x10bcf80 "0\202\001\a\240\003\002\001\002\002\024H\335\347^R\366\347\225owh\017\006phJ>u\017\264\060\n\006\b*\206H\316=\004\003\002\060\017\061\r0\v\006\003U\004\003\f\004Test0\036\027\r210719154200Z\027\r210818154200Z0\017\061\r0\v\006\003U\004\003\f\004Test0\201\233\060\020\006\a*\206H\316=\002\001\006\005+\201\004", tbslen=267) at crypto/evp/m_sigver.c:502
#4  0x000003fffda401d0 in ASN1_item_sign_ctx (it=0x3fffdeae250 <local_it>, algor1=0x1112890, algor2=0x11128f8, signature=0x1112908,
    data=0x1112870, ctx=0x10bdce0) at crypto/asn1/a_sign.c:269
#5  0x000003fffdce517c in X509_sign_ctx (x=0x1112870, ctx=0x10bdce0) at crypto/x509/x_all.c:71

Is this to be expected for a sign call with sig = NULL, that also tbs is NULL?

There's a call like that in 1.1.1:
https://github.com/openssl/openssl/blob/c9d782d72f573045d0c09e1685a1125df58ecb03/crypto/evp/m_sigver.c#L154-L158
That code still exists in 3.0:
https://github.com/openssl/openssl/blob/d9c29baf1a23d2be17b9b4ab8f7b4fe43dd74454/crypto/evp/m_sigver.c#L477-L482

Well, yes, it should probably be able to return the signature size, even without having any data to sign..... My code just does not expect that, and it does not seem to be called that way in OpenSSL 1.1.1.

Interesting...  the condition for this is whether sctx is 0 or 1, and the code that check that is the same in 3.0:
https://github.com/openssl/openssl/blob/d9c29baf1a23d2be17b9b4ab8f7b4fe43dd74454/crypto/evp/m_sigver.c#L440-L443

Well, this is the call stack when running with OpenSSL 1.1.1k:
#0  sk_pkey_meth_sign (ctx=0x1073d20, sig=0x106eb40 "", siglen=0x3ffffffda20,
    tbs=0x3ffffffd920 "\030yN\230\362\036z\036\340\300\260\363ejIq;\302\313;6O\203\264\264\255/[\372e\311\022", tbslen=32)
    at utilities.c:2713
#1  0x000003fffdd1b5dc in EVP_PKEY_sign (ctx=0x1073d20, sig=sig@entry=0x106eb40 "", siglen=siglen@entry=0x3ffffffda20,
    tbs=0x3ffffffd920 "\030yN\230\362\036z\036\340\300\260\363ejIq;\302\313;6O\203\264\264\255/[\372e\311\022",
    tbs@entry=<error reading variable: value has been optimized out>, tbslen=tbslen@entry=32) at crypto/evp/pmeth_fn.c:66
#2  0x000003fffdd22fec in EVP_DigestSignFinal (ctx=0x1070260, sigret=0x106eb40 "", siglen=0x3ffffffda20) at crypto/evp/m_sigver.c:148
#3  0x000003fffdc87f7c in ASN1_item_sign_ctx (it=<optimized out>, algor1=0x1074060, algor2=0x10740c8, signature=<optimized out>,
    asn=<optimized out>, ctx=0x1070260) at crypto/asn1/a_sign.c:222
#4  0x000003fffdd95564 in X509_sign_ctx (x=x@entry=0x1074040, ctx=<optimized out>) at crypto/x509/x_all.c:53

As you can see tbs is non-NULL here, and also sig is non-NULL.
The difference is in ASN1_item_sign_ctx():
OpenSSL 1.1.1:
    inl = buf_len;
    outll = outl = EVP_PKEY_size(pkey);
    buf_out = OPENSSL_malloc(outll);
    if (buf_in == NULL || buf_out == NULL) {
        outl = 0;
        ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_MALLOC_FAILURE);
        goto err;
    }

    if (!EVP_DigestSign(ctx, buf_out, &outl, buf_in, inl)) {
        outl = 0;
        ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_EVP_LIB);
        goto err;
    }

OpenSSL 3.0:
    inl = buf_len;
    if (!EVP_DigestSign(ctx, NULL, &outll, buf_in, inl)) {
        outl = 0;
        ERR_raise(ERR_LIB_ASN1, ERR_R_EVP_LIB);
        goto err;
    }
    outl = outll;
    buf_out = OPENSSL_malloc(outll);
    if (buf_in == NULL || buf_out == NULL) {
        outl = 0;
        ERR_raise(ERR_LIB_ASN1, ERR_R_MALLOC_FAILURE);
        goto err;
    }

    if (!EVP_DigestSign(ctx, buf_out, &outl, buf_in, inl)) {
        outl = 0;
        ERR_raise(ERR_LIB_ASN1, ERR_R_EVP_LIB);
        goto err;
    }

So in OpenSSL 1.1.1. it gets the signature size via EVP_PKEY_size(pkey), but with OpenSSL 3.0 it performs a call to EVP_DigestSign() with a NULL output buffer.
Bottom line: The OpenSSL code is correct, and I need to fix my PKEY-method sign routine to allow such a size query call.

With a fix in my PKEY method sign function for the sig = NULL case it now works fine.
So I can confirm that your fix in https://github.com/openssl/openssl/pull/16111 fixes the problem.

No, they don't. Our pmeths assume this. We have no idea what application supplied pmeths assume.

Well, a pkey method might be OK to work with provided keys, but the point is that private control commands only get passed to the pkey method when the PKEY context is legacy. So at least the context initialization must 'know' to work in legacy mode when a PKEY method is present, even if a provided key is used.
I would guess this piece of code at the beginning of int_ctx_new() makes this impossible:
if (pkey != NULL && evp_pkey_is_provided(pkey)) {
        /* If we have an engine, something went wrong somewhere... */
        if (!ossl_assert(e == NULL))
            return NULL;
        keytype = EVP_KEYMGMT_get0_name(pkey->keymgmt);
        goto common;
    }

I guess this block is somewhat to early in int_ctx_new(). It should probably first check if a pkey method (or engine?) is available, and only if not, then this shortcut makes sense. If either a pkey method or an engine is present then the context should be operated in legacy mode regardless of the key being provided or legacy.
However, I cant tell what other consequences this might have to other places of the OpenSSL code....

My alternative fix for this issue is in #16118. Please give it a try. This fixes both the legacy key case and the provided key case.

My alternative fix for this issue is in #16118. Please give it a try. This fixes both the legacy key case and the provided key case.

I have reverted Richards fix and applied yours (only the one commit), and tested my application again. Your fix also fixes the problem.
Please note that I have tested only the legacy-PKEY case, since my application always uses legacy PKEYs. So I can't tell if it also works with provided PKEYs. However, your original reproducer should cover that case.
I was first a bit confused if your fix wouldn't also need the change from Richards fix about only setting keytype for provided keys, but I then realized that you also changed evp_pkey_ctx_is_legacy() to check for keymgmt only. So you fix looks good from my point of view.

So you fix looks good from my point of view.

Great! Thanks for testing.


Feedly(QoL changes): List Dropdown for Collections and Read Later

Description

Moved from using List.section to List.Dropdown
Add a Save to Read later form action.

Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Hi,
I don't see the actions that is in the video.
I was not able to reproduce it.

Hey @pernielsentikaer, Are we waiting for any changes on this?
As of the issue you mentioned, I wasn't able to repro it.

Try to run it with npm run dev and do as above, I can still reproduce it

Fixed it! 🕺
@pernielsentikaer, Please review it for any other changes


Unable to run with --drb option

I get the following error while running rspec with the --drb option:
https://gist.github.com/8c1eca09b0293ea7693d
Contents of .rspec:
--colour
--debugger
--drb
--format NyanCatFormatter

My gemfile:
https://gist.github.com/106cc4580686b714c32c

Merged pull request #13 to fix this issue.


ART: Prepare VRM avatars

We need to prepare a set of avatars for use in various capacities (in the world, promo materials, etc)

Finish retexturing grey/yellow blue haired avatar
retexture this one in a similar vein
https://hub.vroid.com/en/characters/9207116467873281386/models/2185787635578698415
make sure characters have correct blendshapes (add if they don't)
Plan other characters to add

References / inspiration:
https://hub.vroid.com/en/characters/3584359917051256331/models/5266838771505974684
https://hub.vroid.com/en/characters/5085524921842461136/models/2424900380462737064
https://hub.vroid.com/en/characters/336613518066779622/models/1645164713922268056
https://hub.vroid.com/en/characters/2857439350158494880/models/1256873476146834700
https://hub.vroid.com/en/characters/8091126400221849531/models/8795658192289288726
https://hub.vroid.com/en/characters/4446294434109815917/models/2504812665384570732
https://hub.vroid.com/en/characters/3036280241120217805/models/7699850259946557259
https://hub.vroid.com/en/characters/3582109135767760832/models/3051291826713567650
https://hub.vroid.com/en/characters/3857595944590487665/models/265693881831429600
https://hub.vroid.com/en/characters/4801228612599121667/models/688436609169640890
VRM emotions

angry
happy
funny
sad
scared

GDrive where we keep models: https://drive.google.com/drive/folders/1FeGV-BvdHAdkk7yZ3c0sseclRARhVIBw

For gear.vrm, it is missing eye bones and visemes.
The artist was less experienced when they made gear.vrm so they made similar avatars since with much higher quality. Unfortunately they also deviate from the style, but perhaps copy pasting parts can work. E.g. they can be used to get visemes on a new head.
https://booth.pm/en/items/1143753
https://booth.pm/en/items/1475849
https://booth.pm/en/items/1244494
I have all of these and they are in the GDrive.

Eyes and visemes work, although the materials are poorly optimized.


Edit README

Edit README
User Story
As a potential web developer
I want anyone viewing the readme file to get a good description of the application
So that they know what to expect when they use the application
Acceptance Criteria
Given the password generator's address,

When I view the README for the application
Then I can see a professional READMe that provides adequate information about the application

Added a professional README file that provides adequate information about the application and its usage


Not all Gateways have a local K8s Service

Our current gateway config assumes Gateways are running on cluster and have a K8s Service.
https://github.com/knative-extensions/net-gateway-api/blob/f925238dd29335307c791e3fca49c18dc6fcd806/config/config-gateway.yaml#L49
There are Gateways that are off cluster (eg. LB) - we should support those.
For probing I think the best thing we can do is to probe the IP that appears in the GatewayStatus.Addresses

Note: If we set the IP address in KIngress Status then serving will use it properly
https://github.com/knative/serving/pull/11843

/assign


Update the FluxHelmRelease CRD API version

Problem

The current FluxHelmRelease API version is the non standard v1alpha.

The Spec.Values format has changed, so we should bump up the version.

Current deploy helm-operator manifest refers to the helm-operator image tagged as alpha. This image is currently incompatible with the existing FluxHelmRelease definition.

A/C
a) helm-operator working after FluxHelmRelease API version change to  v1alpha2
b) helm-operator manifest for standalone deployment refers to 0.1.0-alpha

Change of the FluxHelmRelease API version in the apis/.. FHR definition
Update bin/helm/update_codegen.sh
Create new FHR client using update_codegen.sh
Update the helm integration codebase
Update documentation
Update the example user git repo weaveworks/flux-helm-test


Could not find com.danikula:videocache:2.7.1.

I'm getting the below issue in Android using react-native-video-cache-control. I've mentioned my package.json file.
Could not determine the dependencies of task ':app:processDebugResources'.

Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
Could not find com.danikula:videocache:2.7.1.
Searched in the following locations:
- https://oss.sonatype.org/content/repositories/snapshots/com/danikula/videocache/2.7.1/videocache-2.7.1.pom
- https://repo.maven.apache.org/maven2/com/danikula/videocache/2.7.1/videocache-2.7.1.pom
- file:/Users/mac/Documents/SVDev/insta_story_view/node_modules/jsc-android/dist/com/danikula/videocache/2.7.1/videocache-2.7.1.pom
- https://dl.google.com/dl/android/maven2/com/danikula/videocache/2.7.1/videocache-2.7.1.pom
- https://www.jitpack.io/com/danikula/videocache/2.7.1/videocache-2.7.1.pom
Required by:
project :app > project :react-native-video-cache-control

Possible solution:

Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

"@react-navigation/native": "^6.1.17",
"@react-navigation/native-stack": "^6.9.26",
"@shopify/flash-list": "^1.6.4",
"react": "18.2.0",
"react-native": "0.74.1",
"react-native-flexible-grid": "^0.1.8",
"react-native-gesture-handler": "^2.16.2",
"react-native-modal": "^13.0.1",
"react-native-reanimated": "^3.11.0",
"react-native-safe-area-context": "^4.10.1",
"react-native-screens": "^3.31.1",
"react-native-story-view": "^3.1.0",
"react-native-video": "^5.2.1",
"react-native-video-cache-control": "^1.2.2",
"react-native-vision-camera": "^4.0.3"

Add the following line to the dependencies block inside your project's android/app/build.gradle file: implementation 'com.danikula:videocache:2.7.1'. For more information just follow the installation steps carefully. https://github.com/SimformSolutionsPvtLtd/react-native-story-view?tab=readme-ov-file#android-cache-control-dependency-mandatory
Example link: https://github.com/SimformSolutionsPvtLtd/react-native-story-view/blob/main/example/android/app/build.gradle#L232

It's Working, Thank you


Dapper.SimpleSave - in 1:N relationships where parent exists INSERTed child rows should have parent row key set

As above - this is only working where the parent row is INSERTed at the moment. Spotted by Tom.

Bart Read added a comment - 6 days ago
I've added another script generation test for this but can't seem to reproduce the problem. The script is correctly built with a parameter whose value is a Func that when evaluated returns the PK value of the parent row so I'm not sure what's going on here.
Will wait until Tom returns then ask him to walk me through what he's seeing.

Bart Read added a comment - 6 days ago
(Worth pointing out that I could write an integration test against a database in localdb, however this is quite a bit of work and would distract me from working on user management for the rest of the afternoon, which I really don't want.)

bart.read Bart Read added a comment - 6 days ago
Moving to BLOCKED pending a sit down with Tom.

Chatted with Tom - looks like this is no longer extant.


Fix getErrors issue when field has not error

Maybe I am missing something, but if I try to get all errors for all input, sometime field has not property errors.
Before checking field.errors.length I add a check if field.errors is set.
Otherwise there is an error in console.

+1 for this, just hit this with using ```
const inputs = $page.querySelectorAll('input, select, textarea');
pristine.validate(inputs)


Lost all my account settings

Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10
Bug description
On my personal computer, I use runelite with the account plugin enabled, and logged into my runelite account, and has been doing so for a long time. I assume that my settings have always been saved to the cloud.
Today I downloaded runelite client on my wife's computer. I logged into my runelite account on my wife's computer. My settings didn't sync up. I thought it was strange, so I went back to my own computer, and opened up runelite client. All my settings are gone and went back to the default.
I clearly remember the settings used to be stored under .runelite/profiles/<email>/settings.properties, however, when I checked, it seems that my last sync time was Feb 18, 2023, which is incorrect because I play everyday.

and somehow there appears to be a second folder named profile2 under my .runelite folder, with settings updated. the new files look like these:

Is my data lost? can I recover what I changed from Feb 18 to today (March 9)?
Screenshots or videos
No response
RuneLite version
RuneLite version: 1.9.12
Launcher version: 2.3.0
(my computer)
Logs
No response

Github is for technical issues with the client/launcher - join the discord for support

thanks.
I just checked something. I logged into my runelite account on the web, and my settings are indeed saved to the cloud. This barbarian assault tag is something i created after Feb 18:

I"ll make a post in #support channel and link it back to this issue.

resolved. I found my settings in my second config profile. Closing.


[Cosmos] Update cosmos-sdk-client.yml

Trying to re-enable the emulator tests in our ci pipeline for reliability purposes.
Changes in our Cosmos samples are just so I can run the ci pipelines in this PR.

/azp run python - cosmos - ci

/azp run python - cosmos - ci

/azp run python - cosmos - ci

/azp run python - cosmos - ci


error: src refspec master does not match any.

Hello, I was trying to deploy an addon using the CLI but the got this error:
> git push beamup master
error: src refspec master does not match any.
error: failed to push some refs to 'dokku@<HOST>/<PROJECT'S NAME>'

The workaround I found is to push and indicate the refspec like so:
git push dokku@<HOST>/<PROJECT'S NAME> HEAD:master

I don't believe it's a problem with the cli but with git. Just wanted to help anyone else who encounters this problem.

Thank you for reporting it, that's an interesting find, what OS are you running, and what git version are you using? (you can find the git version by using git --version)

Beamup version: 1.1.4
Git version: 2.19.0.windows.1
Windows version: Windows 10 x64

Btw, the error you got "failed to push some refs to ..." can also happen (if i'm not mistaken) if you are trying to redeploy (update) a project and did not make any new commits since the last time you deployed. this happens because of the underlying use of git, the server can only accept new deployments if the commit history changed.
I'm planning to check against this situation in the future, and make the cli ask if you want to create a new commit if the commit history did not change.
Are you sure this was not the case for your attempt to deploy also?

can also happen (if i'm not mistaken) if you are trying to redeploy (update) a project and did not make any new commits since the last time you deployed.

This happened on first deployment so I don't this is the case. But just to be sure I made a new commit and redeployed and got the same result.

What are the chances that this is caused by this:
https://www.zdnet.com/article/github-to-replace-master-with-main-starting-next-month/
GitHub changed the default branch name from master to main, maybe git push beamup master fails because your primary branch is actually called main now.

Try using git push beamup HEAD:master

It works!
I knew it was something silly that caused it... 😅
Maybe change master to main? in:
https://github.com/Stremio/stremio-beamup-cli/blob/ac346e486e736bd65b2f6b423aa223dabd219d7a/lib/deploy.js#L22
Or even better, run git branch --show-current and read the output?

Or we could just use git push beamup HEAD:master, this command should work regardless of if the primary branch is called master or main

@maormagori I released beamup-cli v1.1.5 with the change, please test it when you can

Flawlessly! 👍


[App]: "The operation is insecure. An application error occurred." randomly appears when watching a plot in full screen.

Current Behavior
I keep seeing the following screen when watching a full-screen plot of the loss. It happens randomly, sometimes right after opening the plot, sometimes after 10-20s.

Example of full-screen plot:

Expected Behavior
No error while watching full-screen plots.
Steps To Reproduce
Open a plot in full-screen mode.
Screenshots
No response
Environment
OS: Windows 11 Pro
Browsers: Firefox 120.0.1 (64-bit)
Version:
Additional Context
No response

Hi @hkproj I wanted to follow up with you here and see if you're still experiencing this issue.

Hi @hkproj  since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!


add shard status page

Currently not added to the menubar (available at /status directly). I don't really know how to make a proper hover item, so right now this is using a simple "click on - click off" to open extended shard info.

@Spectralitree just updated the PR with the changes you requested on discord ^^


Catch metrics errors

Catch metrics errors arising for low quality input.
Not tested yet

I think I would go deeper to catch these errors. Especially a ValueError is probably something that is quite generic and so should be caught closer to the source. That being said... we might just set a threshold for the connectivity of the subsetted knn graph.

I think I would go deeper to catch these errors. Especially a ValueError is probably something that is quite generic and so should be caught closer to the source. That being said... we might just set a threshold for the connectivity of the subsetted knn graph.

I'm not sure if that's possible, this is the error message that is raised:
raise ValueError(f'could not find {k} nearest neighbors in {max_iterations}'
ValueError: could not find 70 nearest neighbors in 26diffusion steps.
 Please increase max_iterations or reduce k.

Super nice solution now. Very elegant!

Done!

tested and it works?


Document xvfb usage

Just banged together some instructions for headless use via xvfb.
It doesn't cover Windows; I have no idea what Windows users do. They probably just Don't.

LGTM, thanks.

Nice, thanks


Ensure that handshake is sent back even in case of back-pressure

I found this issue when debugging the test failure in https://github.com/paritytech/substrate/pull/6975
Since https://github.com/paritytech/substrate/pull/6821, when the legacy substream opens, the node switches to a state where it waits for all notification substreams opening to either succeed or fail.
Consequently, the node also intentionally stops polling the incoming notification substreams in order to not receive notifications in this state.
Unfortunately, incoming notification substreams also need to send a handshake, and this is being done in the implementation of Stream::poll. Not polling a incoming notification substream unfortunately has the side-effect that its handshake isn't being sent either.
A typical buggy situation is: as the listening side of a connection, a node we're connected to sends a legacy substream handshake and at the same time handshakes for the various notification substreams. When the local node processes the legacy substream handshake, it switches to this mode and therefore doesn't send handshakes back.
This PR fixes this by introducing two poll_process methods that are called even in that mode and that send back the handshakes anyway.

Note that the consequence of this bug is that opening a notification substream fails after the 10 seconds timeout, and we fall back to using the legacy substream. This is problematic in the prospect of removing the legacy substream, and is why I've only detected this as part of https://github.com/paritytech/substrate/pull/6975.

Note that the consequence of this bug is that opening a notification substream fails after the 10 seconds timeout, and we fall back to using the legacy substream. This is problematic in the prospect of removing the legacy substream, and is why I've only detected this as part of #6975.

To expand on this:
A node without #6975+#6979 should still be able to talk to a node with #6975+#6979 because #6979 ensures that the opening will not timeout.
As such, there is no backwards compatibility issue involved as long as #6975 is merged after #6979.

I'd like to merge this PR only when the CI of https://github.com/paritytech/substrate/pull/6975 passes. Currently it doesn't pass.
I think I've identified another problem, which is that even in the "pending mode" where we don't pull from inbound substreams, we still need to receive and process OpenRequest events from inbound substream for the logic to be correct.

bot merge


[ISSUE #1139] add plugin module

Fixes #1139 .
Motivation
add plugin module
Modifications

the plugin module has been added to the eventmesh-go project, and log/naming/database has been implemented.
replacing the existing log module, adding a rolllwrite component based on zap, providing better write performance, and asynchronously discarding logs when the disk is full, so that the service will not be blocked.
add server/main file to facilitate verification of new functions.

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

Move the code in internal into pkg package,  as eventmesh is an opensource project, code in the pkg package maybe better instead in the internal
Move the main.go into cmd/workflow/main.go as workflow is a single process, we will start another process in the cmd/runtime
I see you are using yaml configuration, then delete toml in the configs directory
Move the event-mesh-server.yaml into configs directory

Move the code in internal into pkg package,  as eventmesh is an opensource project, code in the pkg package maybe better instead in the internal
Move the main.go into cmd/workflow/main.go as workflow is a single process, we will start another process in the cmd/runtime
I see you are using yaml configuration, then delete toml in the configs directory
Move the event-mesh-server.yaml into configs directory

agree
It is not recommended to move the server.go and main.go files to the cmd directory. cmd is generally used to start programs based on the command line, and different configuration parameters can be passed in based on this. The server.go and main.go files here are the entry points for the eventmesh-server service. Personally, it is recommended to put them in the root directory or create a new server directory. Subsequent workflow/catalog will have a separate directory.
3/4 The current function of config package is to parse the configuration file when the service is running. If the configuration file is placed in this package, the responsibility of the package will be different (you can create a conf directory and put the configuration file in this directory when the service is running). ), the practice of etcd is also referred to here (the configuration file is placed directly in the root directory of the source code)


4 input tests failing on OS X

Steps to Reproduce
./dev/bots/test.sh

Logs
00:36 +558 ~2: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart: - Can drag handles to change selection in multiline
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
00:36 +559 ~2: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart: - Can drag handles to change selection in multiline
The following TestFailure object was thrown running a test:
Expected: <138.0>
  Actual: <0.0>

When the exception was thrown, this was the stack:
#3      main.<anonymous closure>.<<anonymous closure>_async_body> (///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart:545:5)
#17     AutomatedTestWidgetsFlutterBinding.asyncBarrier (package:flutter_test/src/binding.dart:520:16)
#18     TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:366:5)
#19     AutomatedTestWidgetsFlutterBinding.runTest.<anonymous closure> (package:flutter_test/src/binding.dart:506:24)
#25     AutomatedTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:504:16)
#26     testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:54:50)
#27     Declarer.test.<anonymous closure>.<<anonymous closure>_async_body>.<anonymous closure>.<<anonymous closure>_async_body> (package:test/src/backend/declarer.dart:106:19)
#39     Declarer._runSetUps.<_runSetUps_async_body> (package:test/src/backend/declarer.dart:183:3)
(elided 65 frames from class _FakeAsync, package dart:async, package dart:async-patch, and package
stack_trace)
00:36 +560 ~2: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart: - Can drag handles to change selection in multiline

This was caught by the test expectation on the following line:
  ///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart line 545

════════════════════════════════════════════════════════════════════════════════════════════════════
00:36 +560 ~2 -1: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart: - Can drag handles to change selection in multiline
  Test failed. See exception logs above.

00:36 +562 ~2 -1: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart: - Can scroll multiline input
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure object was thrown running a test:
Expected: <225.0>
  Actual: <0.0>

When the exception was thrown, this was the stack:
#3      main.<anonymous closure>.<<anonymous closure>_async_body> (///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart:636:5)
#17     AutomatedTestWidgetsFlutterBinding.asyncBarrier (package:flutter_test/src/binding.dart:520:16)
#18     TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:366:5)
#19     AutomatedTestWidgetsFlutterBinding.runTest.<anonymous closure> (package:flutter_test/src/binding.dart:506:24)
#25     AutomatedTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:504:16)
#26     testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:54:50)
#27     Declarer.test.<anonymous closure>.<<anonymous closure>_async_body>.<anonymous closure>.<<anonymous closure>_async_body> (package:test/src/backend/declarer.dart:106:19)
#39     Declarer._runSetUps.<_runSetUps_async_body> (package:test/src/backend/declarer.dart:183:3)
(elided 65 frames from class _FakeAsync, package dart:async, package dart:async-patch, and package
stack_trace)

This was caught by the test expectation on the following line:
  ///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart line 636

════════════════════════════════════════════════════════════════════════════════════════════════════
00:36 +562 ~2 -2: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/input_test.dart: - Can scroll multiline input
  Test failed. See exception logs above.

00:47 +676 ~2 -2: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart: - fling and tap to stop
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure object was thrown running a test:
Expected: ['tap 18']
  Actual: ['tap 17']
   Which: was 'tap 17' instead of 'tap 18' at location [0]

When the exception was thrown, this was the stack:
#3      main.<anonymous closure>.<<anonymous closure>_async_body> (///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart:73:5)
#17     AutomatedTestWidgetsFlutterBinding.asyncBarrier (package:flutter_test/src/binding.dart:520:16)
#18     TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:366:5)
#19     AutomatedTestWidgetsFlutterBinding.runTest.<anonymous closure> (package:flutter_test/src/binding.dart:506:24)
#25     AutomatedTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:504:16)
#26     testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:54:50)
#27     Declarer.test.<anonymous closure>.<<anonymous closure>_async_body>.<anonymous closure>.<<anonymous closure>_async_body> (package:test/src/backend/declarer.dart:106:19)
#39     Declarer._runSetUps.<_runSetUps_async_body> (package:test/src/backend/declarer.dart:183:3)
(elided 65 frames from class _FakeAsync, package dart:async, package dart:async-patch, and package
stack_trace)

This was caught by the test expectation on the following line:
  ///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart line
  73

════════════════════════════════════════════════════════════════════════════════════════════════════
00:47 +676 ~2 -3: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart: - fling and tap to stop
  Test failed. See exception logs above.

00:49 +689 ~2 -3: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart: - fling and wait and tap
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure object was thrown running a test:
Expected: ['tap 18']
  Actual: ['tap 17']
   Which: was 'tap 17' instead of 'tap 18' at location [0]

When the exception was thrown, this was the stack:
#3      main.<anonymous closure>.<<anonymous closure>_async_body> (///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart:96:5)
#17     AutomatedTestWidgetsFlutterBinding.asyncBarrier (package:flutter_test/src/binding.dart:520:16)
#18     TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:366:5)
#19     AutomatedTestWidgetsFlutterBinding.runTest.<anonymous closure> (package:flutter_test/src/binding.dart:506:24)
#25     AutomatedTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:504:16)
#26     testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:54:50)
#27     Declarer.test.<anonymous closure>.<<anonymous closure>_async_body>.<anonymous closure>.<<anonymous closure>_async_body> (package:test/src/backend/declarer.dart:106:19)
#39     Declarer._runSetUps.<_runSetUps_async_body> (package:test/src/backend/declarer.dart:183:3)
(elided 65 frames from class _FakeAsync, package dart:async, package dart:async-patch, and package
stack_trace)

This was caught by the test expectation on the following line:
  ///Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart line
  96

════════════════════════════════════════════════════════════════════════════════════════════════════
00:49 +689 ~2 -4: /Users/lukechurch/GitRepos/flutter/packages/flutter/test/widgets/scrollable_fling_test.dart: - fling and wait and tap
  Test failed. See exception logs above.

Flutter Doctor
[✓] Flutter (on Mac OS, channel unknown)
    • Flutter at /Users/lukechurch/GitRepos/flutter
    • Framework revision 39872e7df1 (47 minutes ago), 2016-11-21 11:49:35
    • Engine revision cea5ed2b9b
    • Tools Dart version 1.21.0-dev.6.0

[✓] Android toolchain - develop for Android devices (Android SDK 23.0.2)
    • Android SDK at /Users/lukechurch/Library/Android/sdk
    • Platform android-23, build-tools 23.0.2
    • Java(TM) SE Runtime Environment (build 1.8.0_91-b14)

[✓] iOS toolchain - develop for iOS devices (Xcode 8.1)
    • XCode at /Applications/Xcode.app/Contents/Developer
    • Xcode 8.1, Build version 8B62

[✓] IntelliJ IDEA Ultimate Edition (version 2016.2.5)
    • Dart plugin installed
    • Flutter plugin installed

[✓] Connected devices
    • None

This is related to a similar Linux issue we saw on Travis earlier. We depend on the desktop shell to do font resolution for us. So some of these tests are sensitive to fonts installed on the users machine. I am working on making the desktop test runners use a font set we specify. Though I think I may need @jason-simmons help once he gets back.

Oh that makes sense.
We really should fix our tests to not depend on the specific fonts involved.

@mpcomplete this isn't the exact same failure as the internal issue you're looking into, but FYI in case they're related.

This looks like the same issue. We're trying to query the position of a specific letter, and it's always returning (0,0).

Doesn't seem to have healed packages/flutter/test/widgets/scrollable_fling_test.dart  I'll file a separate bug.


New lidar intensity

Description
This PR improves the LiDAR raycast sensor with two major new features:

A value associated to each point cloud with an approximation of the intensity, right now only based on distance
The addition of drop off lidar points to increase the realism. The percentage of points dropped can be modeleed
in two different ways:
- A general value method: this way also improves performance because the points are dropped before even been raycasted.
- A intensity-based method: with two new parameters we can linearly drop points based in the intensity in the proportion that             we are interested.

Where has this been tested?

Platform(s): Ubuntu 18.04
Python version(s): 3.6
Unreal Engine version(s): 4:24

Possible Drawbacks
With this change, the output of the sensor changes to incorporate the intensity to each cloud point.
Any script that uses this sensor needs to change to accommodate to this. You can check manual_control.py or
raycast_sensor_testing.py examples to see an example of this small but needed change.

This change is

The new LiDAR looks awesome:

This function seems not been called by any other function?


Using Preferred automatically causes an Error

I made sure to copy my Nox ADB as usual and it seems to run fine when it comes to booting up AnkuLua
It just doesn't work for some reason.
Any ideas?

I did some tests and it seems like my the main problem ended up in my Notepad settings as doing some quick tests shows that if I leave the settings unchanged and update everything then it works.
I'll have to try modifying it again tomorrow when I have more time but at least everything fixed.  Thanks for the Mona Lisa.
These were the failed settings
--Default, I suggest you not to modify them
dir = scriptPath()
setImagePath(dir)
GameRegion = "EN"
StageCountRegion = Region(1722,25,46,53)
--Temp solution, https://github.com/29988122/Fate-Grand-Order_Lua/issues/21#issuecomment-357257089
NotJPserverForStaminaRefillExtraClick = 1
--[[Experimental https://github.com/29988122/Fate-Grand-Order_Lua/issues/55
UnstableFastSkipDeadAnimation = 1]]
--StaminaRefill
Refill_or_Not = 0
Use_Stone = 0
How_Many = 0
--Support selection possible options: "first"; "preferred"; "manual"
--Please check the details here https://github.com/29988122/Fate-Grand-Order_Lua/blob/master/README.md#autosupportselection
Support_SelectionMode = "preferred"
Support_SwapsPerRefresh = 10
Support_MaxRefreshes = 5
Support_FallbackTo = "manual"
Support_PreferredServants = "Any" --Any number of images separated by commas, if set to "Any" will pick any servant
Support_PreferredCEs = "maid_in_halloween.png" --Any number of images separated by commas, if set to "Any" will pick any craft essence
--[[
AutoSkill:
',' = Turn counter
',#,' = Battle counter
'0' = Skip 1 turn
Servant skill = a b c	d e f	g h i
Master skill = j k l
Target Servant = 1 2 3
Activate Servant NP = 4 5 6
Please insert your command in between the "".
eg:
Skill_Command = "bce,0,f3hi,#,j2d,#,4,a1g3"
Battle 1:
Turn 1 - Servant 1 skill b, c, Servant 2 skill e
Turn 2 - No skill
Turn 3 - Servant 2 skill f on servant 3, Servant 3 skill h, i
Battle 2:
Turn 1 - Master skill j on servant 2, Servant 2 skill d
Battle 3:
Turn 1 - Activate NP servant 1
Turn 2 - Servant 1 skill a on self, Servant 3 skill g on self
Skill_Confirmation: OFF = 0
(When you need to confirm skill use) ON = 1
]]
Enable_Autoskill = 1
Skill_Confirmation = 0
Skill_Command = ""
--When Enable_Autoskill_List = 1, the script starts with a dialogue for you to choose Autoskill setting from one of the predefined list
Enable_Autoskill_List = 1
Autoskill_List = {}
--The folllowing are predefined settings by user
Autoskill_List[1] = "ad,ef,0,0,bc,456"
Autoskill_List[2] = ""
Autoskill_List[3] = ""
Autoskill_List[4] = ""
Autoskill_List[5] = ""
Autoskill_List[6] = ""
Autoskill_List[7] = ""
Autoskill_List[8] = ""
Autoskill_List[9] = ""
Autoskill_List[10] = ""
--You can change card selection priority. For example, BAQ stands for: weak buster->buster->resist buster->weak arts->arts->resist arts->weak quick->quick->resist quick
Battle_CardPriority = "BAQ"
--Whenever there's additional event point reward window to be clicked through, isEvent = 1. Please check the details on github.
isEvent = 1
dofile(dir .. "regular.lua")

It was probably an encoding issue then.

Yeah, could be something like cr / crlf
On Thu, Nov 22, 2018, 09:03 potchy<EMAIL_ADDRESS>wrote:

It was probably an encoding issue then.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/29988122/Fate-Grand-Order_Lua/issues/99#issuecomment-440874294,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFOJlePS5BswDQRHS7soKdZK_BFRtbp3ks5uxff7gaJpZM4YteyD
.

Found out that it has something to do with the Support Selection
This isn't working
Support_SelectionMode = "preferred"
Support_SwipesPerUpdate = 10
Support_MaxUpdates = 10
Support_FallbackTo = "first"
Support_FriendsOnly = 0
Support_PreferredServants = "Any"
Support_PreferredCEs = "*mona_lisa.png"

Not really sure what to edit to get it to work, there aren't any significantly changed symbols in there.  I'll try removing the _ and see if that helps at all

For some reason whenever I change it to Preferred it automatically starts failing.
I have no idea, even if the only thing I do is change it to preferred and not edit anything else.

I tried that setting and it worked fine. 🤔

You should really upload the file to let us check if it's really a CR/CRLF
or other editor related issues. Both the working one and the not working
one.
Or it could be an Ankulua / Lua interpreter issue about how strings are
handled.
potchy<EMAIL_ADDRESS>於 2018年11月23日 週五 上午1:51寫道：

I tried that setting and it worked fine. 🤔
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/29988122/Fate-Grand-Order_Lua/issues/99#issuecomment-441094760,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFOJlUGvOZYDsFjOpd22dBvzLLKoOrIYks5uxuQygaJpZM4YteyD
.

Got it, I'll upload both to MediaFire now.
So this is the normal Fate_EN Regular that comes with the download of a few days ago
http://www.mediafire.com/file/ml3s2sfyl1d9m9k/FGO_EN_REGULAR.lua/file
I have changed nothing and it works fine
But the moment I change it to Preferred and change nothing else the error occurs
Here is a Text File which using causes the error to pop up
http://www.mediafire.com/file/xe4obob0z64r69d/FGO_EN_REGULAR.lua/file
I edited it to Preferred and changed it to Mona Lisa, Any.
I'm currently using Nox, but when I was experimenting with my phone earlier several days ago the error also popped up.  I just assumed it was because it was Android 8.1

Interesting, I've always edited it with Normal Notepad so I'm guessing it always happened but Anka Lua must have accepted it before.
Well I've just installed Notepad++ and I'll edit it the fresh working one and give it a shot using only Notepad++ and making sure it's encoded in UTF-8.
That fixed the problem.
Thank you for the help, and thank you for asking for the files.  If you hadn't we wouldn't have discovered the problem.


Ensure proper CCW remains upon shape fracturing

Shape.decompose_to_triangles() may create shapes with inverted face orientations, this should not happen

Function seems to be okay, that issue probably arises either due to #issue5 or mishandling during clipping

Fixed in recent commit, closing


Tests UI Update - Home Screen edits part 1

Description
https://www.notion.so/joinzoe/COVID-Test-Screen-UI-update-Home-Screen-5bcfc074fa42440c8d6cfad875543e64

Only show intro copy if user has not logged any tests
Changed button copy
Converted to functional component

Partially completed ticket, but I think it makes sense to merge into feature branch now whilst I wait for certain points to be clarified (as noted in notion ticket above).
On what platform have you tested the change?

[ ] Android - Emulator
[ ] Android - Physical device
[x] iOS - Emulator
[ ] iOS - Physical device

Screenshots
Checklist (for submission)

[ ] Analytics/tracking events have been added (if relevant)
[ ] Added new screen(s) to src/features/screens.ts and new Redux slice(s) to mocks/mockedInitialState.ts (if relevant)

Checklist (for reviewers)

[ ] Checked against Figma designs (if relevant)
[ ] Checked that data has been successfully saved to the backend (if relevant)

Out of scope and potential follow-up

Looks good! Had a small comment but besides that it's good to go 👌


feat: unsplit wrapException with improved types & runtime

Proposal: have only one exported member for wrapException.
Pros: only one function to care about for consumers
Downsides: as there are "unlimited crazy" ways for making promises run, our type guard might not be very safe and accurate. Which might cause issues during runtime (e.g. unhandled promises, etc)

Which might cause issues during runtime (e.g. unhandled promises, etc)

Can you elaborate? Can you give any examples?

Which might cause issues during runtime (e.g. unhandled promises, etc)

Can you elaborate? Can you give any examples?

I can't give any examples as I don't really know any other edge cases. I tried covering the most common scenarios in the test cases.
By reading multiple forums, I noticed people tend to say that is not very safe to assert promises most of the times, as there are more implementations than the native one that can be used and so on.
From promise's docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

Promise.resolve()
[...]
Generally, if you don't know if a value is a promise or not, Promise.resolve(value) it instead and work with the return value as a promise.

I made it as safe as possible, but executing the "non async" function to check if it's return is "PromiseLike" or not, but who knows what else is possible haha /shrug


Remove unused Vulkan icon

This icon was likely added to be used in the renderer selection dropdown, but now that the GLES2 and GLES3 icons have been removed in favor of just using text, it'll probably never be used.
(Of course, Vulkan support is still coming to 4.0.)

Thanks!


M2 Ultras support，please！

120gb or 188gb vram，amazing！

Hi @lin16303 , thanks for your issue. We are still working on further model performance improvement so I am afraid M2 ultra won't be supported in the near future. If you are interested in working on this, please feel free to send a PR to this repo. :)


Make 'name' string field sortable during typesense schema creation

In this PR
Per Atlas, allow sorting on the name and name_facet fields.
Notes

This only applies during collection creation at the schema definition stage, so existing collections will need to be recreated or manually modified.
Consuming clients will need to specify the sort field and direction in order to take advantage of it.

Tested locally and it works! My collection created from this task now has the options to sort on name:asc and name:desc.


Get rid of Docker dependency for Swarm token creation

Hey @errordeveloper thanks for this. I think on balance it is better for us to stay aligned with Docker's published documentation, even if it means you need a docker instance lying around in order to get started.


[Question] Will the "trailingstoploss_tp.py" work with Futures Long and Short leveraged bots?

Hey!
I'm running long and short leveraged bots. I was using trailingstoploss_tp for spot bots but will it work with the leveraged bots? I see that there is a "Futures trailing stoploss bot helper named trailingstoploss.py", but it is not as flexible as trailingstoploss_tp.py, right? You can't configure multiple "activation-percentage" and "initial-stoploss-percentage".

Not sure, to be honest. I've written the script and only used it on the spot market.
However, trailingstoploss_tp.py is based on trailingstoploss.py and the very core of the code (behaviour) is the same; calculate SL percentage and update deal at 3Commas. As far as I know leverage it's still a deal with an opening price, on which you can calculate SL and TP level (which is what the script does).
So my guess would be that it should work. Would recommend you to first run it on paperaccount before switching to real, to make sure my guess is right.

Hi @amargedon!
I'm running it on my real account with small amounts - as of now, looks ok.
Thanks for answering and thanks for sharing this script!


Feature 67 event card design

What is the change?
Added an event component as described in the issue description #67 using the Figma design
Before / After Change Screenshots

@Martijn0405 , We would be updating the template where we have mandated to add unit test cases for the PR that would be raised since we are observing event card components that could be used in multiple areas of the product.
We need to ensure it is properly tested.
Please look into that.
Good work on building this component

@harshith-venkatesh I added the test cases. @isVivek99 I reverted the changes done to tailwind.config file.

@Martijn0405 , sorry for the delay.
The test cases are failing due to addition of styles which are not been used or created

Could you please resolve this from your end and commit the changes.
I tried from my end as it has been delayed.
However, it is creating the issue

Closing the PR, thanks for the contribution


Can't log into Microsoft To Do

Testing #229414
Trying to log into my personal account. I am logged out of my work account in this browser

Oh, I just realized that all of my settings sync experiments got rid of my useMSAL setting so this isn't happening in the MSAL scenario anyway

Same thing with the MSAL setting set anyway

oops, this should be good now. I forgot to update the configuration of my To Do app.

This doesn't really need verification. It was just an issue with my to do extension


scheduler: fix panic when NUMANode equals -1

Ⅰ. Describe what this PR does

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/approve

/approve


MPI-INF-3DHP

Hi, I am very interested in your work, how can I get the processed 3DHP dataset and how can I evaluate the 3DHP dataset, thanks!

You can use the MPI-INF-3DHP code in https://github.com/paTRICK-swk/P-STMO.


Different results generated by v1.15 and v1.20

Hi,
Thank you for creating and maintaining this great package.
I recently upgraded pywgcna from 1.15.0 to 1.20.3, however, I got different results analyzing the same data. Version 1.15.0 resolved 50 modules and v1.20.3 67 modules. Do you have any insights on what factors causing the changes?
This is the code I ran:
wgcna_obj = PyWGCNA.WGCNA(
        name="rna_scaled",
        geneExp=geneExp,
        minModuleSize=50,
    )
wgcna_obj.findModules()

Thank you very much for your help,
Hanbin

Hi,
Thank you for your kind comments :)
there was a minor issue when I assigned modules to genes. it didn’t change stuff much in my test data so I didn’t think it should be making that huge changes.
One thing I would do is compare these PyWGCNA objects using Compare two PyWGCNA objects, so it will give you some insight into how the modules change


Add NegotiationCard entity

We want to start using and storing the NegotiationCard entity with MLTE. Add it as a first-level entity, that can be handled, stored and retrieved similarly to Spec.
Details of the Negotiation Card can be found here: https://github.com/mlte-team/mlte-framework/blob/master/framework/resources/process/negotiation_card.md

Closing as a duplicate of #151.


Support BackendConstructor in configure

As the title says, using a BackendConstructor in configure should be supported, and the recommended way to use configure. For example:
import { configure, fs } from '@browserfs/core';
import { StorageFileSystem } from '@browserfs/fs-dom';

// you can also add a callback as the last parameter instead of using promises
await configure({ fs: StorageFileSystem });

if (!fs.existsSync('/test.txt')) {
	fs.writeFileSync('/test.txt', 'This will persist across reloads!');
}

const contents = fs.readFileSync('/test.txt', 'utf-8');
console.log(contents);

Resolved in 2a4da56


chore: cleanup to reflect proofs from lean3 for OuterMeasure

Can you explain a bit what's going on here? If this is the mathport output, why does it not already reflect Lean 3?

Can you explain a bit what's going on here? If this is the mathport output, why does it not already reflect Lean 3?

I fixed OuterMeasure.lean three weeks ago when I was new to Lean. I used whatever means necessary to get it working, even if it wasn't the most elegant way of doing things.
Since then, I've become more familiar with Lean. I've revised my fix to make it look more like the proofs from outermeasure.lean in Lean3.

To make it easier to review, I've pushed some commits so that this can be reviewed against the mathport output.
The first three commits are generated with start_port.sh, the fourth was some annoying regex to remove thousands of lines of mathport garbage, and the last one is exactly your original file.

@MonadMaverick, could you please click "Resolve" on the conversations above if you're happy with them? If you've made changes that make conversations obsolete, it's best to click resolve, so other reviewers arriving don't have to work out what they are about / why they are obsolete.


can't get tierpsy tracker to work on mac or pc, possibly can't get good install?

Hi Folks,
We would love to be able to use (and cite!!) your tool tierpsy tracker to analyze locomotion defects in our C. elegans mutants, but can't seem to get in to work.  We've followed instructions for installation and at first, tierpsy would crash instantly when trying to open a test video to set parameters.  When that didn't work, we tried following instructions in some of the past issue posts.  This got us to be able to set parameters, and we could run the batch processing.  Batch processing would create the folders, but no analysis files ever appear.  The progress bar in the window that opens reaches 100% but the window never closes, so maybe it is not finishing.
We suspect that there is now some incompatibility of the different versions of anaconda, python, etc with tierpsy.  However, I am not a programmer and can't troubleshoot this very well.  If possible, we would love help!  Perhaps you could update the installation to use only compatible versions?   My apologies for my shortcomings in computer science--I'm mostly a geneticist who would love to be able to use this tool without knowing so much about what's "under the hood."   Thanks very much!!!

Hi @ohaganr,
sorry for such a late response but github did not notify me that an issue was opened!
Try following the "install from source" instructions, they are the most up to date and should work (at least on mac, we do know that installation on windows is a bit more involved). I'll be happy to help you further if you have any problem.

Thanks for your reply, I did finally get Tierpsy tracker working on both mac and pac by the install from source instructions. However, in both cases, the tracker does not finish analysis until I stop the processing and then start it again.  Then, depending on how many videos it has to process, it basically quickly finishes the analysis and puts the analysis files into the appropriate folders.  It seems to me that it had finished the analysis even in the first attempt at processing, but then is waiting for something to finish the process.  Unless I do this, it does not put the analysis files in the folder at all and just keeps “thinking”.  This is actually mostly why I thought it was not working at all—the analysis files don’t show up until stopping and starting the analysis the second time (or even 3rd or 4th if there are lots of videos).  It could be left processing for 24 hours or more but not finish until I stop and start.
Not sure what I have done wrong or if operating system updates have caused problems.  I’m far from a programmer, mostly an “end user.” But I appreciate your development of this excellent tool!
Bob O’Hagan, PhD
Assistant Professor
Biology Department
Montclair State University
@.***

On Apr 19, 2021, at 11:52 AM, Luigi Feriani @.***> wrote:
Hi @ohaganr https://github.com/ohaganr,
sorry for such a late response but github did not notify me that an issue was opened!
Try following the "install from source" instructions, they are the most up to date and should work (at least on mac, we do know that installation on windows is a bit more involved). I'll be happy to help you further if you have any problem.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Tierpsy/tierpsy-tracker/issues/49#issuecomment-822577327, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARIAPS2FOLU5OJWKPDKOZO3TJRGSFANCNFSM4SD2TJRQ.

Hi Bob,
thank you, that's helpful. I appreciate it is a confusing behaviour!
Do you see it happen both on Mac and PC? I've had other users flag a similar behaviour on PC, but never on Mac.
On PC, we've seen it happen especially if the raw videos were already in a local folder. In this case, my suggestion is not to use the temporary folder at all (by unticking it in the Batch Processing GUI): it is most useful when the raw videos are on a remote location, e.g. a network share.


Issue with Ubuntu encrypted home folder + patch

https://github.com/SublimeText/Issues/issues/209
Thanks!

Hi there just a friendly ping, on the linked issue above there also patch, you may wish to check with time, regards

Yeah, sorry, I forgot about it. I commented in the issue.

Some of the items in the linked issue, should be resolved in recent work.  Encrypted home might still be an issue, but have not verified.


Ngadou 2539 plot and show in the context menu

Code for #2539

[x] Remove Plot
[x] Rename Plots and Show to Plot
[x] The context menu in case of a single EXP should have a Plot option.
[x] This also needs to work if the user just right-clicks on the EXP (without selecting it).
[x] Add unplot option (was https://github.com/iterative/vscode-dvc/issues/2448)

To do

[ ] The right-click on EXP does not need to remove the row hover style (if possible).
[ ] If more than 7 EXPs are selected grey out Plot (always grey out the inactive options. For education the menu can show what is available).

Hi @math-alpha,
Thanks for the contribution.
You're our first-ever open-source contributor 🎉!
Please give us a little bit of time to set up the repository correctly so that you can run the CI.
Thanks

@mattseddon any other recommended issue I can focus on?

Hey, @mattseddon I am on the fixes. Thanks for raising them.

hey, @math-alpha any updates on this by chance?

Hey @math-alpha, it would be good to get this contribution fixed up and merged.
Please LMK if there is anything at all that I can do to help you. Please also LMK if you not longer intend to work on this.
🙏🏻

LMK

I have this issue with styling the "greying out" button when more than 7 experiments are selected

LMK

I have this issue with styling the "greying out" button when more than 7 experiments are selected

To get started why not remove the option from the context menu under those circumstances?

LMK

I have this issue with styling the "greying out" button when more than 7 experiments are selected

To get started why not remove the option from the context menu under those circumstances?

Okay I will try that.


fix cyccnt extension based on cortex-m change

Closes #3. Need to wait on https://github.com/rust-embedded/cortex-m/pull/367

Blocked by https://github.com/rust-embedded/cortex-m/issues/368

Also needs rust-embedded/cortex-m#377


Controller object doesn't implement an "on" function, causing connection issues

In the examples, it shows to run a snippet like: controller.on('connected', () => { ....... But when I have installed the library via npm, the IDE warns that there is an unresolved reference to "on".
Furthermore, when attaching a Launchkey, it is unable to connect to the device.

Hi @nate-droid, I can't reproduce your issues locally. Regarding the missing on function, did you instantiate the controller object according to the following code example?
const { Launchkey } = require('@vliegwerk/novation')
const controller = new Launchkey()

controller.on('connected', () => {
	controller.on('NoteOn', (message) => {
		console.log('NoteOn event:',message)
	})
}

And what Launchkey model are you trying to connect? I've only implemented support for the Launchkey Mini Mk2. The library will only connect to the device if it finds MIDI-ports for this specific model.


Updated Chinese version of README

Sorry, we do not support puml files with Chinese character, you may leave the puml file with English version, and the Chinese version README should be README.md and the English version should be README_en.md, can you modify it?

Sure

Codecov Report

Merging #52 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #52   +/-   ##
======================================
  Coverage    29.8%   29.8%
======================================
  Files          17      17
  Lines         406     406
  Branches       19      19
======================================
  Hits          121     121
  Misses        285     285

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 160ed14...cf0a765. Read the comment docs.

Thanks


feat: add back the influxql repl

Closing #331

I just tried:
./influx v1 repl
InfluxQL Shell dev
Connected to InfluxDB OSS 2.2.0
InfluxQL Shell
> ls
Query failed.
401 Unauthorized: Unauthorized
> ^C^C^Cquit

It would be nice if it detected unauthorized errors up front and quit out automatically with a message about setting the token.

Also influx used to drop direct into the repl with no arguments (in 1.x), so it might be worth displaying some hint about influx v1 repl if someone runs a bare influx.

@samhld it would also be cool if we auto-mapped buckets to v1 databases instead of having users set that up manually - thoughts on that as a follow-up? Otherwise you get, by default:
./influx v1 repl
InfluxQL Shell dev
Connected to InfluxDB OSS 2.2.0
InfluxQL Shell
> show databases
name,tags,name

@candrewlee14 +1 for making the table view the default.

@candrewlee14 this looks bad:
> show databases
name,tags,name
databases,,monitoring
databases,,telegraf

> use telegraf
Unable to check databases: expected a single array in values array

@candrewlee14 this looks bad:

> show databases

name,tags,name

databases,,monitoring

databases,,telegraf

> use telegraf

Unable to check databases: expected a single array in values array

Oh interesting. I didnt expect there to be multiple arrays in values, I thought there was a single array that just had the database names. What does the json look like?

Is history expected to work?

When I took out go-prompt for autocompletion, it had the support for arrow keys for history, keybindings, etc.
I can re-implement that here, but it might just be worth seeing that in the autocompletion PR.

@candrewlee14 on the note of the table, I think we do have to go back to copy the original table view as it handled many columns more readably. That's a case I overlooked and one that won't be that uncommon.

When I took out go-prompt for autocompletion, it had the support for arrow keys for history, keybindings, etc.

That's perfect, just wanted to make sure it was planned in the upcoming PR. Happy to keep this one smaller.

@candrewlee14 @samhld the horizontal scroll is actually really nice for wide tables.
Here's a proposal: let's bring back the 'column' format from 1.x for this PR. I'd like to push table format off to a follow-up PR - we need the column format for command line tools and backward-compatibility anyway. I'd call table something like column-pretty, but I'd like to really review it in detail from a product perspective, separately from the base functionality of getting InfluxQL back in the CLI.
But the table / column-pretty format could be really nice.

Don't have much else to add, code looks good and everything I could think to test works great! I'll leave it to @lesam to give it another look-through


Problems to run airbyte-module on OpenShift

When we deployed airbyte-module on OpenShift we have faced with a number of issues:

The security context was not accepted by the OpenShift
In order to run dind container, the pod has privilege: true  property, which was not acceptable by OpenShift.
Without the privilege: true  property, the docker demon container cannot run.

helm chart mysql deployment also fails on openshift due to security context:
 securityContext:
     fsGroup: 1001


"MIT" License mentioned in README.md

Not sure whether the last sentence in the README mentioning the "MIT" licence is wrong or whether it is supposed to express that either the Apache-2.0 and/or the MIT licence applies. The referenced LICENSE file definitely only contains the former.

Thanks for the hint, that's a copy and paste issue.


Sync Manager

This PR adds a 'sync manager' to the Timer Controllers library. It goads the OrbitDB into syncing with other peers if a period of time (10 minutes) goes by without a sync event occurring. This fixes an issue that was regularly seen in the wild, where new nodes would simply stop syncing.
libp2p has been reverted to v0.46.21. v1 has issues with persisting the nodes IPFS ID to disk.

:tada: This PR is included in version 5.2.0 :tada:
Your semantic-release bot :package::rocket:


Changing Title of the header that is created by React-navigation

couldn't find anywhere in the docs to apply a style to those titles
This is the Router.js
  LoginPage: {
    screen: LoginPage,
    navigationOptions: {
      header: { visible:false },
    },
   },
  Create: {
    screen: CreateAcc,
     navigationOptions: {
       title: 'Create Account',
     }
   },
  Log:  {
    screen: Login,
    navigationOptions: {
       title: 'Log in',
     }
  },
  Forgot: {
     screen: ForgotPass,
     navigationOptions: {
       title: 'Account Recovery',
     }
   },
   Feed: {
     screen: Feed,
     navigationOptions: {
       title: 'Mentor'
     }
   },
   Settings: {
     screen: Settings,
      navigationOptions: {
        title: 'settings'
      }
   },
  },
  {
    headerMode: 'screen'

  });

I think you can change the title style, title tint and header style, see here: https://reactnavigation.org/docs/navigators/stack#Screen-Navigation-Options


Autograd UPDATES weight and bias that DOESN'T CONTRIBUTE to the output of the module!

Dear Friends,
I am using the following code:
function units.agSReLU(input, weight, bias)
  local y = 0*weight+0*bias
  local output = torch.mul(torch.abs(input)+input, 0.5)
  return output
end

I am calling the above function from:
local autogradFunc = autograd.nn.AutoModule('AutoGradSReLU')
    (units.agSReLU, initialWeight:clone(), initialBias:clone())
model:add(autogradFunc)

And the autograd is UPDATING the weight and bias!
Could anybody please axpleaning me what is going on?
David

Probably due to the optimization that you are using. If you are using 'weightDecay` (also known as L2 regularization) in SGD, it adds a contribution to the gradients which are a function of the weights.


How to force WebSocket transport?

I do not see in the API how to force WebSocket transport. When I connect I see that it sends a GET request as follows:
https://DOMAIN/socket.io/?EIO=3&transport=polling&t=1423826616188-5252

and there is no "Upgrade: websocket" header.

Why would you want to force websockets?

On Feb 13, 2015, at 12:25, Iñaki Baz Castillo<EMAIL_ADDRESS>wrote:
I do not see in the API how to force WebSocket transport. When I connect I see that it sends a GET request as follows:
https://DOMAIN/socket.io/?EIO=3&transport=polling&t=1423826616188-5252
and there is no "Upgrade: websocket" header.
—
Reply to this email directly or view it on GitHub.

I've read about using io.connect("http://your.domain.com", {transports: ['websocket']}); but such a connect() API does not exist (not in the API exposed in the README).

Why would you want to force websockets?

I'm trying to make this library to work with an already running (and very old) version of socket.io server which I think just supports WebSocket. But not sure. The fact is that I receive a "connect_error" event when the above GET is sent:
"Error: server error
    at Socket.117.Socket.onPacket (http://test.local:3000/myBundle.js:38672:19)
    at XHR.<anonymous> (http://test.local:3000/myBundle.js:38496:10)
    at XHR.113.Emitter.emit (http://test.local:3000/myBundle.js:38060:20)
    at XHR.118.Transport.onPacket (http://test.local:3000/myBundle.js:39103:8)
    at 122.Polling.onData.callback (http://test.local:3000/myBundle.js:39943:10)
    at Object.129.exports.decodePayload (http://test.local:3000/myBundle.js:40900:12)
    at XHR.122.Polling.onData (http://test.local:3000/myBundle.js:39947:10)
    at Request.<anonymous> (http://test.local:3000/myBundle.js:39531:10)
    at Request.113.Emitter.emit (http://test.local:3000/myBundle.js:38060:20)
    at Request.121.Request.onData (http://test.local:3000/myBundle.js:39679:8)"

Even if you were to able to force websockets, your idea would still not work because this latest version uses a different protocol encoding. So you wouldn't be able to connect

On Feb 13, 2015, at 12:36, Iñaki Baz Castillo<EMAIL_ADDRESS>wrote:
Why would you want to force websockets?
I'm trying to make this library to work with an already running (and very old) version of socket.io server which I think just supports WebSocket. But not sure. The fact is that I receive a "connect_error" event when the above GET is sent:
"Error: server error
at Socket.117.Socket.onPacket (http://test.local:3000/myBundle.js:38672:19)
at XHR. (http://test.local:3000/myBundle.js:38496:10)
at XHR.113.Emitter.emit (http://test.local:3000/myBundle.js:38060:20)
at XHR.118.Transport.onPacket (http://test.local:3000/myBundle.js:39103:8)
at 122.Polling.onData.callback (http://test.local:3000/myBundle.js:39943:10)
at Object.129.exports.decodePayload (http://test.local:3000/myBundle.js:40900:12)
at XHR.122.Polling.onData (http://test.local:3000/myBundle.js:39947:10)
at Request. (http://test.local:3000/myBundle.js:39531:10)
at Request.113.Emitter.emit (http://test.local:3000/myBundle.js:38060:20)
at Request.121.Request.onData (http://test.local:3000/myBundle.js:39679:8)"
—
Reply to this email directly or view it on GitHub.

opps, nice to know! So thanks!


Unknown entry types get empty entry types

From https://tex.stackexchange.com/q/520657/35864
Consider the following MWE with an unknown entry type @unknowntype
\documentclass{article}
\usepackage{biblatex}

\begin{filecontents*}[overwrite]{\jobname.bib}
@unknowntype{sigfridsson,
  author       = {Sigfridsson, Emma and Ryde, Ulf},
  title        = {Comparison of methods for deriving atomic charges from the
                  electrostatic potential and moments},
  journaltitle = {Journal of Computational Chemistry},
  date         = 1998,
  volume       = 19,
  number       = 4,
  pages        = {377-395},
  doi          = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}

The .bbl file will contain
\refsection{0}
  \datalist[entry]{nty/global//global/global}
    \entry{sigfridsson}{}{}
      \name{author}{2}{}{%
        {{hash=484061f383fb3b729627e12ab42c1963}{%
           family={Sigfridsson},
           familyi={S\bibinitperiod},
           given={Emma},
           giveni={E\bibinitperiod}}}%
        {{hash=b7e299b632e5db12681c2decc8ce023f}{%
           family={Ryde},
           familyi={R\bibinitperiod},
           given={Ulf},
           giveni={U\bibinitperiod}}}%
      }
      \strng{namehash}{d9015d9f08448ab0cb194bd964d7b44b}
      \strng{fullhash}{d9015d9f08448ab0cb194bd964d7b44b}
      \strng{bibnamehash}{d9015d9f08448ab0cb194bd964d7b44b}
      \strng{authorbibnamehash}{d9015d9f08448ab0cb194bd964d7b44b}
      \strng{authornamehash}{d9015d9f08448ab0cb194bd964d7b44b}
      \strng{authorfullhash}{d9015d9f08448ab0cb194bd964d7b44b}
      \field{sortinit}{S}
      \field{sortinithash}{c319cff79d99c853d775f88277d4e45f}
      \field{labelnamesource}{author}
      \field{labeltitlesource}{title}
      \field{journaltitle}{Journal of Computational Chemistry}
      \field{number}{4}
      \field{title}{Comparison of methods for deriving atomic charges from the electrostatic potential and moments}
      \field{volume}{19}
      \field{year}{1998}
      \field{dateera}{ce}
      \field{pages}{377\bibrangedash 395}
      \range{pages}{19}
      \verb{doi}
      \verb 10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P
      \endverb
    \endentry
  \enddatalist
\endrefsection
\endinput

i.e. it will give the entry type as an empty string. This is a counter-intuitive result.
I suppose this behaviour comes from the implementation of the case-folding for entry types implemented for https://github.com/plk/biber/issues/278.
Given the discussions in https://github.com/plk/biber/issues/242 I'm not sure which of the following two solutions I would prefer, but I'd say either is preferable to just nulling the entry type

Remap unknown types to @misc.
Keep unknown types.
Keep unknown types but normalise the capitalisation of the entry type field.

Fixed in DEV branch. Unknown types are retained as-is. I never liked the "normalise to @misc" as the chances of that giving the desired output were always slim.

Thank you very much. It looks much better now.


[SUGGESTION] Door Management, VoiceChatManager support

These are just ideas, I think they would be pretty cool.

Add configs to automatically lock all doors in the facility open a few seconds after the Omega Warhead is started, this way people can escape easier, and add an option to close all doors 3-5 seconds before detonation
Add support with the VoiceChatManager plugin to play custom audio as the Omega Warhead is activated. This way people who have custom audios for the warhead sequence don't have to manually play it right after starting the warhead

(Bonus) Pls updoot when 12.0 comes out

when 12.0 comes out, i will probably do it. thanks


ES6 method overriding leads to JSC_HIDDEN_SUPERCLASS_PROPERTY_MISMATCH

i have two classes:
class Object3D {
    constructor() {}
    /**
     * @param { Object3D } source
     * @return { Object3D }
     */
    copy(source) {

        return this;
    }
}
export { Object3D };

import { Object3D } from './Object3D.js';
class Mesh extends Object3D {
    constructor() {
        super();
    }

    /**
     * @param { Mesh } source
     * @return { Mesh }
     */
    copy(source) {
        return this;
    }
}
export { Mesh };

During compilation i see the following warning:
Mesh.js:13:4: WARNING - [JSC_HIDDEN_SUPERCLASS_PROPERTY_MISMATCH] mismatch of the copy property type and the type of the property it overrides from superclass Object3D$$module$Object3D
original: function(this:Object3D$$module$Object3D, (Object3D$$module$Object3D|null)): (Object3D$$module$Object3D|null)
override: function(this:Mesh$$module$Mesh, (Mesh$$module$Mesh|null)): (Mesh$$module$Mesh|null)
  13|     copy(source) {
          ^^^^^^^^^^^^^^
  14|         return this;
      ^^^^^^^^^^^^^^^^^^^^
  15|     }

Looks like i missed something, how could it be fixed ?

The parameter of Mesh.prototype.copy needs to be a supertype of Object3D|null. (i.e. parameters are contravariant)
Imagine that the compiler allowed the above class definition and then you had the following code:
/** @type {!Object3D} */
const obj3d = new Mesh();
obj3d.copy(new Object3D());

obj3d.copy, at runtime, refers to Mesh.prototype.copy. That method has declared it can take a Mesh but not an Object3D. Passing it a non-Mesh instance of Object3D could cause a runtime bug. However, because obj3d.copy has the same type as Object3D.prototype.copy and can accept all Object3Ds, the compiler can't warn you about this potential bug.
So instead the compiler requires that Mesh.prototype.copy must accept Object3Ds.


new tests to visualizers

added a tests for capacity_diagram_generator.py
modified capacity_diagram_generator to be unit testable and accept path to csv as input

Pull Request Test Coverage Report for Build 3184

32 of 35 (91.43%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.4%) to 88.901%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

flow/visualize/capacity_diagram_generator.py
19
22
86.36%

Totals

Change from base Build 3177:
0.4%

Covered Lines:
7874

Relevant Lines:
8857

💛  - Coveralls


SW-4747 Use updated web-components with updated styling for table enhanced selection top bar. Implement singular vs plural and 1 page vs > 1 page text rendering within the enhanced selection top bar

Use updated web-components with updated styling for table enhanced selection top bar.
Implement singular vs plural and 1 page vs > 1 page text rendering within the enhanced selection top bar

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #2107

PR #2108   👈

This stack of pull requests is managed by Graphite.

Merge activity

Feb 2, 10:59 AM EST: @nickgraz started a stack merge that includes this pull request via Graphite.


Add ocamlformat support

See https://github.com/ocaml-ppx/ocamlformat and https://dune.readthedocs.io/en/stable/formatting.html.

The source code reformatted: c860a055e12af1988625ac1d39028201bf5852c0. Linting added to CI:<PHONE_NUMBER>afbfc5edbe7a7e1fc2380d68ee810b.