my challenges using the library

I want to use the library to implement an access control using ABE. The process involves communication between two parties. I initiated the cpabe-setup at the receiver end and send the public key through a safe channel to the sender of the message. After receiving the public key and perform the encryption of the message with some sets of access structure and the public key, i sent the resulting ciphertext to the receiver but the decryption never possible, i get segmentation (core dumped) always. what could be the possible problems and how can i correct it?

Hi Emmanuel,
what you describe seems correct. It might be some problem when you change structs into something you can send and then change back. But it is hard to say, I am just guessing. Do you have the code in some public repository so I can have a look?

no, but i can share the part of the code that is not working with you.
FP12_BN254 msg;
FP12_BN254_one(&msg);

char bool_exp[] = "(5 OR 3) AND ((2 OR 4) OR (1 AND 6))";
size_t bool_exp_len = strlen(bool_exp);
cfe_msp msp;
cfe_error error;
error = cfe_boolean_to_msp(&msp, bool_exp, bool_exp_len, false);
printf("The cfe_boolean_to_msp error : %d\n", error);

cfe_fame_cipher cipher;
cfe_fame_cipher_init(&cipher, &msp);
cfe_fame_encrypt(&cipher, &msg, &msp, (cfe_fame_pub_key *)rec_pk->data, &fame);
np_send(ac, "sendmessage", (const unsigned char *)&cipher, sizeof(cfe_fame_cipher));
 the rec_pk is the public key received.

the cipher was published for decryption,
at the receiver,
FP12_BN254 decryption;
cfe_fame_decrypt(&decryption, (cfe_fame_cipher *)msg_cipher->data, &keys, &fame);
msg_cipher refers to the cipher

I think the problem is that you send the cipher as (const unsigned char *)&cipher while the struct cfe_fame_cipher also includes some arrays (pointers) so when you change it to a string, only pointers get sent, while data does not.
I accept that designing struct cfe_cipher did not anticipate this problem, so I will look into how to fix this in the next week. You can expect some general solution soon.

oh okay. Thanks for your timely reply. i look forward to your feedback.

Hi,
Please i have been waiting for the update. just a reminder. Thanks

Hi Emmanuel,
we are working on it. Like I said your problem is that you are changing a struct cipher into a string by just calling (const unsigned char *)&cipher. This is not ok. We are now working on writing a general solution for this by defining functions that change each struct into string and vice versa. This is not as simple as it sounds in C. We are currently testing this library to see if it works ok with our structures.
If you are in a hurry, you can try to do it for FAME scheme manually. Nevertheless, as soon as I have something that works for FAME, I will let you know (hopefully til the end of this week).

Thanks for your usual timely reply. I will wait till the end of the week. i understand it's not easy.

Just to let you know, I am finishing the implementation of the serialization of structs and should be finished for the FAME scheme today. Will let you know.

Great. Thanks for the update.

Hi Emmanuel,
if you want to use newly implemented functions please get this fork of the implementation in the branch "marshalling": https://github.com/tilenmarc/CiFEr/tree/marshalling
Since this needs to be reviewed and other thing will be added, it is not yet merged in master CiFEr.
To work you will need to install two libraries:

protobuf C++ version
protobuf-c
These are libraries for changing structs to string.
I implemented in CiFEr functions like cfe_fame_cipher_ser and cfe_fame_cipher_read. That will change cfe_fame_cipher into struct cfe_ser. cfe_ser is composed of two things: .ser gives you an array of bytes that you can send and ,len gives you the length of this array.
See in test/serialization/fame_ser.c an example of how to use it.
Please let me know if it works for you.

Thanks for the positive update. I will do the implementation and get back to you.

i modified the code as follows:
FP12_BN254 msg;
FP12_BN254_one(&msg);
char bool_exp[] = "(5 OR 3) AND ((2 OR 4) OR (1 AND 6))";
size_t bool_exp_len = strlen(bool_exp);
cfe_msp msp;
cfe_error error;
error = cfe_boolean_to_msp(&msp, bool_exp, bool_exp_len, false);
printf("The cfe_boolean_to_msp error : %d\n", error);

cfe_ser buf;
cfe_fame_pub_key pk;
cfe_fame_pub_key_read(&pk, (cfe_ser *)rec_pk->data);
cfe_fame_cipher cipher;
cfe_fame_cipher_init(&cipher, &msp);
cfe_fame_encrypt(&cipher, &msg, &msp, &pk, &fame);
cfe_fame_cipher_ser(&cipher, &buf);
np_send(ac, "sendmessage", (const unsigned char *)&buf, sizeof(buf));

and at the receiver ends:
cfe_fame_cipher cipher2;
cfe_fame_cipher_read(&cipher2, (cfe_ser *)msg_cipher->data);
error = cfe_fame_decrypt(&decryption, &cipher2, &keys, &fame);
but not working, maybe i am still getting something wrong.

Hi,
you are again sending a struct instead of a string. Like I wrote, cfe_ser is composed of two things: .ser gives you an array of bytes that you can send and .len gives you the length of this array. So don't send (const unsigned char *)&buf but (const unsigned char *) buf.ser, with length buf.len.
So it should be something like:
cfe_ser buf; cfe_fame_cipher cipher; cfe_fame_cipher_init(&cipher, &msp); cfe_fame_encrypt(&cipher, &msg, &msp, &pk, &fame); cfe_fame_cipher_ser(&cipher, &buf); np_send(ac, "sendmessage", (const unsigned char *)buf.ser, buf.len);
On the receiver end you should have something like:
cfe_fame_cipher cipher2; cfe_ser buf2; buf2.ser = (int8_t *)msg_cipher->data; buf2.len = ?? define length of received data, I am not familiar with functions that you are using ??; cfe_fame_cipher_read(&cipher2, &buf2);
Use the same procedure to also send the public key. Also note that in the code we are changing between int8_t and unsigned char, which should be both of the same size (1 byte) on usual platforms, but could also not be, so you might need to take care of this.

Thanks for the correction. making the necessary corrections, i will get back to you.

Thanks. it works fine. Thanks for your support. you are the best.

Great! No problem.

I found out about a msgpack for serialization and de-serialization.  Just a feedback or recommendation for a serialization and de-serialization. Maybe in might be useful for you.

hello @tilenmarc , first of all thanks for all your work on this library.
I'm trying to extend your work on serialization for GPSW as well.
For example to serialize the GPSW public key which has the following structure:
typedef struct cfe_gpsw_pub_key {
    cfe_vec_G2 t;
    FP12_BN254 y;
} cfe_gpsw_pub_key;

I have defined in include/cifer/serialization/data.proto:
message cfe_vec_g2_ser {
        repeated octet_ser vec = 1;
        required int64 size = 2;
}

message cfe_gpsw_pub_key_ser {
        required cfe_vec_g2_ser t = 1;
        required octet_ser y = 2;
}

and re-generated code using: protoc --c_out=. data.proto
Serializing FP12_BN254 y seems not to be a problem with octet_ser, but I struggle with cfe_vec_G2 t. I can't even create and set the pointer of the structure when serializing, for example with:
src/serialization/data_ser.c
void cfe_gpsw_pub_key_ser(cfe_gpsw_pub_key *a, cfe_ser *buf) {
    CfeGpswPubKeySer msg = CFE_GPSW_PUB_KEY_SER__INIT;

    // t
    CfeVecG2Ser vec_g2;
    // serializing `vec_g2` here
    msg.t = &vec_g2; // <-- comment this line to make `_get_packed_size` succeed

    // y
    OctetSer y = OCTET_SER__INIT;
    cfe_FP12_BN254_pack(&(a->y), &y);
    msg.y = &y;

    size_t msg_len = cfe_gpsw_pub_key_ser__get_packed_size(&msg); // <-- segfault

   // ...
}

and extending the test suite with:
test/serialization/data_ser.c
MunitResult test_gpsw_pub_key_ser(const MunitParameter *params, void *data) {
    cfe_ser buf;
    cfe_gpsw gpsw;
    cfe_gpsw_pub_key pk;
    cfe_vec sk;

    cfe_gpsw_init(&gpsw, 10);
    cfe_gpsw_master_keys_init(&pk, &sk, &gpsw);
    cfe_gpsw_generate_master_keys(&pk, &sk, &gpsw);

    cfe_gpsw_pub_key_ser(&pk, &buf);

    cfe_gpsw_free(&gpsw);
    cfe_vec_free(&sk);
    cfe_gpsw_pub_key_free(&pk);

    return MUNIT_OK;
}

MunitTest data_ser_tests[] = {
        {(char *) "/ec", test_ec_ser, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL},
        {(char *) "/mpz", test_mpz_ser, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL},
        {(char *) "/mat", test_mat_ser, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL},
        {(char *) "/msp", test_msp_ser, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL},
        {(char *) "/gpsw", test_gpsw_pub_key_ser, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL},
        {NULL, NULL,                                   NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL}
};

Am I doing something wrong? Is the vec_g2 protobuf definition lacks of something needed to be serialized correctly?
Thanks a lot!

Hi,
I would need to test your code, so I will look into it in the next days.

Thanks a lot.
I guess the main problem is coming from ECP2_BN254 *vec because a pointer is not serializable as is, so we must convert this pointer into a single flat array (or octet_ser) with a manual processing for ser and read.

If this can help, I came up with a working solution.
It flattens all the elements from ECP2_BN254 *vec pointer into an octet_ser.
Do you think this is a valid solution though?
include/cifer/serialization/data.proto:
message cfe_gpsw_pub_key_ser {
        required octet_ser t = 1;
        required octet_ser y = 2;
}

src/serialization/data_ser.c:
void cfe_vec_G2_pack(cfe_vec_G2 *a, OctetSer *msg) {
    uint32_t ecp2_size = (4 * MODBYTES_256_56) * sizeof(char);
    msg->len = ecp2_size * a->size;
    msg->val = cfe_malloc(msg->len);
    msg->n_val = msg->len;
    msg->max = msg->len;
    for (size_t i = 0, j = 0; i < a->size; i++) {
        OctetSer chunk = OCTET_SER__INIT;
        cfe_ECP2_BN254_pack(&a->vec[i], &chunk);
        for (int k = 0; k < chunk.len; j++, k++) {
            msg->val[j] = chunk.val[k];
        }
    }
}

void cfe_vec_G2_unpack(cfe_vec_G2 *a, OctetSer *msg) {
    cfe_vec_G2_init(a, msg->n_val);

    size_t ecp2_size = (4 * MODBYTES_256_56) * sizeof(char);
    a->size = a->size / ecp2_size;

    for (size_t i = 0, j = 0; i < a->size; i++) {
        OctetSer chunk = OCTET_SER__INIT;
        chunk.val = cfe_malloc(ecp2_size);
        chunk.len = ecp2_size;
        for (size_t k = 0; k < ecp2_size; j++, k++) {
            chunk.val[k] = msg->val[j];
        }

        ECP2_BN254 ecp;
        cfe_ECP2_BN254_unpack(&ecp, &chunk);
        a->vec[i] = ecp;

        free(chunk.val);
    }
}

void cfe_gpsw_pub_key_ser(cfe_gpsw_pub_key *a, cfe_ser *buf) {
    CfeGpswPubKeySer msg = CFE_GPSW_PUB_KEY_SER__INIT;

    // cfe_vec_G2 t
    OctetSer t = OCTET_SER__INIT;
    cfe_vec_G2_pack(&(a->t), &t);
    msg.t = &t;

    // FP12_BN254 y
    OctetSer y = OCTET_SER__INIT;
    cfe_FP12_BN254_pack(&(a->y), &y);
    msg.y = &y;

    buf->len = cfe_gpsw_pub_key_ser__get_packed_size(&msg);
    buf->ser = cfe_malloc(buf->len);

    cfe_gpsw_pub_key_ser__pack(&msg, buf->ser);

    free(msg.y->val);
}

cfe_error cfe_gpsw_pub_key_read(cfe_gpsw_pub_key *a, cfe_ser *buf) {
    CfeGpswPubKeySer *msg;
    msg = cfe_gpsw_pub_key_ser__unpack(NULL, buf->len, buf->ser);
    if (msg == NULL) {
        return 1;
    }

    cfe_vec_G2_unpack(&(a->t), msg->t);
    cfe_FP12_BN254_unpack(&(a->y), msg->y);

    cfe_gpsw_pub_key_ser__free_unpacked(msg, NULL);
    return 0;
}

and the following test passes:
test/serialization/data_ser.c
MunitResult test_gpsw_pub_key_ser(const MunitParameter *params, void *data) {
    cfe_ser buf;
    cfe_gpsw gpsw;
    cfe_gpsw_pub_key pk, pk2;
    cfe_vec sk;

    cfe_gpsw_init(&gpsw, 10);
    cfe_gpsw_master_keys_init(&pk, &sk, &gpsw);
    cfe_gpsw_generate_master_keys(&pk, &sk, &gpsw);

    cfe_gpsw_pub_key_ser(&pk, &buf);
    cfe_gpsw_pub_key_read(&pk2, &buf);

    munit_assert(pk.t.size == pk2.t.size);
    for (size_t i = 0; i < pk.t.size; i++) {
        int check = ECP2_BN254_equals(&pk.t.vec[i], &pk2.t.vec[i]);
        munit_assert(check == 1);
    }

    cfe_gpsw_free(&gpsw);
    cfe_vec_free(&sk);
    cfe_gpsw_pub_key_free(&pk);

    return MUNIT_OK;
}

Hi @ThibsG,
I prepared for you a serialization of cfe_vec_G2 struct. It changes the struct into a vector of octets, and then serialize it. Check the test_vec_octet_ser test in https://github.com/tilenmarc/CiFEr/blob/marshalling/test/serialization/data_ser.c (in the latest commit) to see how to use it (and track beck the functions to see how I implemented it).
I assume you know how to use it to build a serialization of stucts in GPSW. Let me know if you succeeded.
Best, Tilen

Thanks a lot @tilenmarc, your solution works fine and seems more generic than mine.
What do you think about opening a PR about serialization (based on your branch) so I can share with you upcoming work (ie: serialization of cfe_gpsw_pub_key and so on)?

@ThibsG, that would be great! I have a long term vision of doing it for all the schemes, but starting with ABE schemes is a good start!

Ok then, do you want to start opening the PR to merge your https://github.com/tilenmarc/CiFEr/tree/marshalling branch, and then I add my commits to it?
Or do you want to first merge marshalling branch into master,  then I open a second PR after I rebased?

I think you can simply pull my branch to your fork, add your stuff and open a PR with all. The problem is that I have to review my code, check for memory leaks, etc. before I merge. And in the next weeks I will not have time to do it. So don't wait for my PR, just build on top of my work.

This is totally fine, there is no urgency at all :wink:
I will also be quite busy in coming weeks too, so we keep in touch


Insert value in many to many connection

I am trying that query
new JPAUpdateClause(em, qA).where(qA.id.eq(id))
.set(qA.bs, new JPAQueryFactory(em).selectFrom(qB).where(qB.id.in(listWithIDs)).fetch())
.execute();
A and B have manyToMany connection.
This creates a sql query
update
B,
set
.=?
where
id=?
and i get this error Caused by: java.sql.SQLException: Missing IN or OUT parameter at index:: 2
How we handle many to many connection in create and insert cases with querydsl.
my database is oracle and i have querydsl 4.0.7

This creates a sql query

We don't generate SQL queries, could you post the JPQL query instead?


Implement function guards

Look in this documentation for guards: https://docs.rs/ic-cdk/latest/ic_cdk/attr.post_upgrade.html
We haven't yet implemented this functionality.
Possibly looks like this:
export function some_endpoint: Query<string, "guard_function"> {
   return "string"
}

export guard_function() {}

This is on hold pending decisions on https://github.com/demergent-labs/azle/issues/24

We are unblocked on this issue. We've tweaked how we'll implement them a little bit but our new custom "decorator" annotations will allow us to implement this.

Hey, can you please add tests for the system methods into your guard functions example?

Edge case to consider:
Consider the following two files:
a.ts
function commonlyNamedGuard(): GuardResult {
  return {ok: null}
}

$query({guard: commonlyNamedGuard});
export function methodA() {
  return true;
}

b.ts
function commonlyNamedGuard(): GuardResult {
  return {err: "This has the same name, but different functionality"}
}

$query({guard: commonlyNamedGuard});
export function methodB() {
  return true;
}

The expected behavior is that calling methodA would return true while calling methodB would return a level 4 error code. I.e., we need to check for method names within each file.
However, I think we would also like the following to work. If we have:
a.ts
import { guardFunction } from './b.ts';

$query({guard: guardFunction});
export function methodA() {
  return true;
}

b.ts
import { GuardResult } from "azle";

export function guardFunction(): GuardResult {
  return { ok: null }
}

We would also expect this to work.
These two behaviors seem at odds because we don't do anything dynamically...


Fly-Pie works only once per session

Describe the Bug
2023-11-07 02-57-07.webm
Fly-Pie works only once per session, to use it again you have to do one of the following:
restart Fly-Pie, restart your PC, log out, take a screenshot.
You can use it once, it works fine, try to use it again, it shows the menu, but it doesn't react, you can move the mouse over it, click on it, nothing happens, not even animations, and you can reopen it as many time as you want.
But if you open the Fly-Pie menu when it doesn't work and take a screenshot (Ctrl+PrtSc), the menu comes back to life again, but only for this one use, after that it stops working again, you can repeat the steps and it will work the same every time.
The issue didn't happen before, I used the extension for quite a while and it worked great.
Also tried using it without any extensions, nothing changes.
Steps to reproduce the behavior:

Open Fly-Pie
Use it one time
Try to use it again
Fly-Pie doesn't work

Expected Behavior
Expected to work every time, without restarting the extension.
System

GNOME Shell version: 44.6
Fedora Linux 38
OS Type 64-bit
Wayland
Linux 6.5.9-200.fc38.x86_64
Fly-Pie version: 22

I'm facing the same issue. Very very annoying, please rectify this ASAP.

Hi there! Thanks for the report. Can you please check the output of journalctl -f -o cat while opening and closing a Fly-Pie menu? Just run this in a terminal, leave it running and reproduce the issue. Maybe an error is printed.

Hi! Here is what it said:
Theme parser error: gtk.css:7814:21-28: Expected a valid color.
Theme parser error: gtk.css:7820:21-28: Expected a valid color.
Started<EMAIL_ADDRESS>Timelines with detached actors are not supported. [<Gjs_arcmenu_arcmenu_com_menuWidgets_ArcMenuPinnedAppsMenuItem>:0x563639559580] in animation of duration 150ms but not on stage.
Theme parser error: gtk.css:7791:21-28: Expected a valid color.
Theme parser error: gtk.css:7796:21-28: Expected a valid color.
Theme parser error: gtk.css:7814:21-28: Expected a valid color.
Theme parser error: gtk.css:7820:21-28: Expected a valid color.
gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
Started app-gnome-gnome\x2dextensions-7267.scope - Application launched by gnome-shell.
BPF prog-id=107 op=LOAD
BPF prog-id=108 op=LOAD
BPF prog-id=109 op=LOAD
Starting systemd-hostnamed.service - Hostname Service...
Started systemd-hostnamed.service - Hostname Service.
SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-hostnamed comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
[Gnome Email Notifications] Checking mail
Failed to get METAR data: HTTP/2 Error: NO_ERROR
meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed

Did any of this got printed at exactly the moment when you opened or closed the menu? Or when you clicked into the menu? Maybe you could create a screen cast (similar to the one above) where you reproduce the issue and show a terminal with this command running?

Sorry, my SSD broke down, so unfortunately I can't access that system anymore.
I installed Ubuntu and it works fine here, but I will get back to you if the issue happens again, maybe somebody else will come to help find this bug.
Also thanks for responding, and for all the work you are doing, you are helping a lot of people.

I'm having the same issue here. Fly pie only work one time.
after using the jounalctl stuff I got :
Window manager warning: last_user_time (8242452) is greater than comparison timestamp (8242450).  This most likely represents a buggy client sending inaccurate timestamps in messages such as _NET_ACTIVE_WINDOW.  Trying to work around... Window manager warning: W42 appears to be one of the offending windows with a timestamp of 8242452.  Working around... Window manager warning: last_user_time (8247827) is greater than comparison timestamp (8247825).  This most likely represents a buggy client sending inaccurate timestamps in messages such as _NET_ACTIVE_WINDOW.  Trying to work around... Window manager warning: W42 appears to be one of the offending windows with a timestamp of 8247827.  Working around...
the two last_user_time and W42 warnings popped at the exact time opening fly pie

I don't know if this could be related. Fly-Pie does not open any window but draws directly in GNOME Shell.

Have you tried this on X11?
Have you tried this with different menu configurations? Maybe you could create a very simple menu with just one action or maybe with nothing in it at all and try if it happens as well.

Same issue here


[UI improvement suggestion]Add some prompts and link to the explorer for swap tx

https://force-bridge-dev.ckbapp.dev/bridge/Nervos/Ethereum
Could we lead ppl to the ckb explorer to check their own tx on-chain or not when they completed the swap action(CKB -- > ETH)?

The UI has a History module that allows ppl to check completed swap actions on the explorer

Have found it.Thanks for your replying. I am just new for FB's UI

This issue have been resolved and I will be closing it. Feel free to new an issue when you getting stuck and we'll comment as soon


Game thumbnails don't display Handicap stones

Game thumbnails don't display Handicap stones and player colours are reversed

Player colours are reversed


Find a simple way to avoid invalid payment request

Relate to the abandoned issue: https://github.com/EasyAbp/PaymentService/issues/7

Resolved by https://github.com/EasyAbp/PaymentService/issues/9


Allow @updatedAt on composite types / type

Bug description
type Dates {
  createdAt DateTime? @default(now())
  updatedAt DateTime? @updatedAt
  viewedAt  DateTime?
  deletedAt DateTime?
}

gives
error: Attribute not known: "@updatedAt".
  -->  schema.prisma:194
   |
193 |   createdAt DateTime? @default(now())
194 |   updatedAt DateTime? @updatedAt

though the docs are not prohibiting this explicitly.
https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#updatedat
How to reproduce
read Bug description
Expected behavior
No response
Prisma information
type Dates {
  createdAt DateTime? @default(now())
  updatedAt DateTime? @updatedAt
  viewedAt  DateTime?
  deletedAt DateTime?
}

Environment & setup

OS: win11
Database: MongoDb
Node.js version: node18

Prisma Version
prisma                  : 4.7.1
@prisma/client          : 4.7.1
Current platform        : windows

This is currently not supported. We should update the documentation for now, and then see what the use cases for it would be.

I honor your decision but the use case here is pretty straightforward.
consider
``
model User {
name String
dates? Dates
}
type Dates {
createdAt DateTime? @default(now())
updatedAt DateTime? @updatedAt
viewedAt  DateTime?
deletedAt DateTime?
}

how should I tackle this?

You can't right now, unless you hand write the update of the updatedAt value. This issue now tracks this feature request.

Any news on when this feature will be available?

No, this has not been prioritized. This issue is used to collect demand and additional use cases which might lead to use deciding to implement this.

This issue is used to collect demand and additional use cases

Not supporting this could cause mongodb users to follow some antipatterns if they want to take advantage of the feature. There's a "accessed together, stored together" paradigm that's pushed pretty heavily since the alternative is just issuing more queries - either making additional .find queries or needing some $lookup stage in an aggregation pipeline.
Take this basic implementation for a simple day-tracker application that allows users to create daily planning entries that include a todo-list per day. I don't want todos to roll over into the next day, so it would actually be pretty reasonable to store todos as a subdocument array on the individual day entry documents, especially if you always need both the day entry data and the todolist data together.
model User {
  name String
  email String @unique
}

model DayEntry {
  userId String @db.ObjectId
  summary String
  todos Todo[]
  createdAt DateTime @default(now())
}

type Todo {
  uuid String @default(uuid())
  title String
  isComplete boolean
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  lastCompletedAt DateTime?
}

It would be a very different design to need to create a separate Todo model and use relations in this case to get the updatedAt support, and could end up being much less efficient in terms of db load. i.e. one query to get a set of entries and their corresponding todos vs. >1 if they were a relation that needed to be queried.
There are definitely real-world cases where subdocuments or subdocument arrays could benefit from use of the @updatedAt feature beyond sharing a Dates type that you can use across your models (although this would be nice to prevent duplication in the prisma schema if many of your models will need these kinds of timestamps). The ability to combine the "normalized" relationships like between User and DayEntry with embedded relationships like the Todo array here where each is appropriate is a strength of MongoDB.

I agree, I think that to properly support mongodb patterns this is important


Support for newer versions of mb-wrapper and stream-decorators

I noticed you now have newer version of stream-decorators and mb-wrapper that only support PHP 8.0 and higher!  Big YES here!
But mail-mime-parser is still requiring the older versions. Are the new versions compatible with the 2.4 version?  If so, do you want a PR to update the composer.json?
I was just doing a composer outdated and noticed this.

Hi @phpfui
I'm working on a v3 release that'll be updated soon to include them.  There's a small change I mostly finished working on to support them because they now throw an exception for unsupported charsets.  It's been a very busy period so progress has been slow, sorry to you and anyone waiting!  It's super close now :)
Because they throw exceptions and require php8, I will not be including them in 2.4.
Thanks again :)

Awesome! Let me know if you need any help or testing.

Oh wow, yes, testing would be amazing.  I'll do a beta release in a bit if you feel like playing around :)

Yes, let me know.

Well that was a bit longer than expected, sorry!
Finally got a beta out there.  I put some basic notes in 3.0.0-beta but honestly I don't know how helpful they are.
I still need to:

write some more tests for HeaderParts
add tests for some missing new HeaderPart classes and consumer classes

I'll add more to that list if something else comes up.

I'll try this on a branch and see if I can set up a live server to test against.  Will let you know of any issues, but might not be till next week.


How buildah identify image in use

The problem may occurred occasionally,  it suddenly cannot remove the image redis. It said image is in use by a container, but buildah containers shows no container is running.
[root@fedora buildah]# ./buildah  mount
[root@fedora buildah]# ./buildah  containers
[root@fedora buildah]# ./buildah  images
IMAGE ID     IMAGE NAME
b812babf7f65 docker.io/library/redis:latest
b812babf7f65 docker.io/gouyang/redis:latest
b812babf7f65 docker.io/testing/redis:latest
b812babf7f65 docker.io/foo/redis:latest
5965adf86a6e docker.io/library/nginx:latest
223c6ba7409d docker.io/kubernetes/pause:latest
e236280e3ef7 docker.io/library/redis:alpine
a9a3ca121508 registry.access.redhat.com/rhel7/rhel:latest

[root@fedora buildah]# ./buildah  rmi docker.io/library/redis
error removing image "docker.io/library/redis": image is in use by a container
ERRO[0000] image is in use by a container
[root@fedora buildah]# ./buildah  rmi b812babf7f65
ERRO[0000] reference "[overlay2@/var/lib/containers/storage]docker.io/library/b812babf7f65:latest" does not resolve to an image ID
error removing image "b812babf7f65": image is in use by a container
ERRO[0000] image is in use by a container

@gouyang could you try the latest code and see if this is fixed or at least gives up more information with the updated error message.

Didn't see the problem in the latest code.  I actually don't know how it happened so I can't say it's fixed.
But we can close the issue at the time and reopen it if it happen again.


Add ConsumeBatch

This is a more optimized way of getting messages from the consumer, if
you are willing to handle the batches yourself.

Tentative -- this is for the https://github.com/zorkian/marshal higher level consumer. We want to implement batch functionality for better consumption speed (instead of getting mutexes every message, they can be got every batch).
Thoughts?

Pull request seem to be stale, assigning @PragmaticCypher as the responsible developer.

I really like the idea. I was thinking about it for a long time, but I could never find proper solution to this because of backward compatibility problem. I cannot accept what you're proposing, because at least we have a lot of code that relies on Consumer interface to have only Consume method. The functionality is good, but no change can break existing code.
There are several other ways this could be done that I can think of:

extend consumer with ConsumeBatch method and add BatchConsumer method to Broker (not Client interface) that will return consumer as new BatchConsumer interface
extend consumer with ConsumeBatch method and always check if returned by broker consumer implements ConsumeBatch
Use channel instead of locking, although this will be way slower and does not make much sense.

I like first solution most, but it's still not completely clear to me what should be BatchConsumer interface notation. I would also love to see some benchmarks first, what can be gained by using BatchConsume instead of Consume

@zorkian are you going to work on this pull request? If so, no matter what will be final implementation, please provide some benchmarks first to justify the change.
Otherwise I will close the pull request. I spend some time on it doing experimental implementation and thinking how it could be used and I ended up (again) with no good solution.

I will still work on this; was traveling.
I don't yet have a benchmark but will try to pull something together to see whether or not it makes sense.

No worries, take your time then.

I'd like to avoid long living PRs without any updates.  (Rule of thumb: 14 days)
@zorkian when we're closing this, it does not mean rejected. Please feel free reopen it again when you have more data. Thanks for your time and effort!

Yeah, that's a reasonable policy. I haven't found a good test case that proves that batch consumption is flat out faster. Even with the current code we're able to get 50,000 messages per second via our Marshal library given enough partitions claimed and that's faster than it's possible to do useful work.
So, for now, I'm going to abandon the effort. I'll reopen/open something new in the future if I actually come up with something that proves it.


Extend a timeout to create a bt cluster.

attempt to fix #23613

Verified that timeout specified in seconds:  https://github.com/googleapis/python-api-core/blob/ddcc2499fa756f98268eb552edba6f25ddbe0c26/google/api_core/future/polling.py#L121

R: @Abacn


Add incompat: Inferred return type of an override method

Fixes #181
class Foo

class RichFoo(foo: Foo) extends Foo {
  def show: String = ""
}

class Parent {
  def foo: Foo = new Foo
}

class Child extends Parent {
  override def foo = new RichFoo(super.foo)
}

object Test {
  (new Child).foo.show // Scala 3 error: value show is not a member of Foo
}

@smarter Is the Scala 3 behavior intentional?

Yes this is intended, the base methods determine the public API, if you want a different API you need to write the type down.


Support more fine grained permissions

Support bpfd permissions per BPF program type.

Already taken care of via K8s RBAC


FMOD/SteamAudio/Unity Integration Issues

Hello, if you have experience successfully setting up FMOD w SteamAudio as a plug-in, which is then integrated into a Unity Project which also has SteamAudio as a plug in, I’d appreciate your assistance.
If I add FMOD or SteamAudio Listener or Emitter Components, I keep getting this error:
SystemNotInitializedException: [FMOD] Initialization failed : Loading plugin 'phonon_fmod' from 'C:/x/x/x/x/Assets/Plugins/FMOD/lib/win/X86_64/phonon_fmod.dll' : ERR_FILE_NOTFOUND : File not found.
FMODUnity.RuntimeManager.get_Instance () (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:113) FMODUnity.RuntimeManager.get_StudioSystem () (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:127) FMODUnity.RuntimeManager.AddListener (FMODUnity.StudioListener listener) (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:330) FMODUnity.StudioListener.OnEnable () (at Assets/Plugins/FMOD/src/Runtime/StudioListener.cs:18)
Placing the .dll file in the location that is listed above results in an additional error about there being a duplicate

This seems to be because of a change in FMOD Studio 2.0 and onwards. These newer versions of FMOD Studio expect phonon_fmod.dll to be in a different location (under Plugins/FMOD/lib/) as compared to older versions (which expected the DLL to be under Plugins/).
Can you try the following:

Move Plugins/x86_64/phonon_fmod.dll to Plugins/FMOD/lib/win/x86_64.
Copy Plugins/x86_64/phonon.dll to Plugins/FMOD/lib/win/x86_64.

Let us know if this resolves the issue. If it doesn't, provide us with the complete console/log output so we can see what's going on.

This seems to be because of a change in FMOD Studio 2.0 and onwards. These newer versions of FMOD Studio expect phonon_fmod.dll to be in a different location (under Plugins/FMOD/lib/) as compared to older versions (which expected the DLL to be under Plugins/).
Can you try the following:

Move Plugins/x86_64/phonon_fmod.dll to Plugins/FMOD/lib/win/x86_64.
Copy Plugins/x86_64/phonon.dll to Plugins/FMOD/lib/win/x86_64.

Let us know if this resolves the issue. If it doesn't, provide us with the complete console/log output so we can see what's going on.

I have the same problem but in the built version. In editor it works fine, as I followed the steps you suggested.
In the built version I am getting the following error:
SystemNotInitializedException: [FMOD] Initialization failed : Loading plugin 'phonon_fmod' from 'C:/BUILD/GameClientAdmin/GameClientAdmin_Data/Plugins/phonon_fmod.dll' : ERR_FILE_NOTFOUND : File not found.   at FMODUnity.RuntimeManager.get_Instance () [0x0010e] in <80f8846ee694421f89d7d68280d28801>:0    at FMODUnity.RuntimeManager.PathToGUID (System.String path) [0x0001e] in <80f8846ee694421f89d7d68280d28801>:0    at FMODUnity.RuntimeManager.GetEventDescription (System.String path) [0x00000] in <80f8846ee694421f89d7d68280d28801>:0    at FMODUnity.StudioEventEmitter.Lookup () [0x00000] in <80f8846ee694421f89d7d68280d28801>:0    at FMODUnity.StudioEventEmitter.Play () [0x0002c] in <80f8846ee694421f89d7d68280d28801>:0    at FMODUnity.StudioEventEmitter.HandleGameEvent (FMODUnity.EmitterGameEvent gameEvent) [0x00009] in <80f8846ee694421f89d7d68280d28801>:0    at FMODUnity.EventHandler.OnEnable () [0x00000] in <80f8846ee694421f89d7d68280d28801>:0
The problem is that FMOD expects the file to be in C:/BUILD/GameClientAdmin/GameClientAdmin_Data/Plugins/phonon_fmod.dll but it is in fact in C:/BUILD/GameClientAdmin/GameClientAdmin_Data/Plugins/x86_64/phonon_fmod.dll
Please advise.

Which specific version of FMOD Studio are you using? And which version of the FMOD Studio Unity integration? This will help us repro the issue exactly. Thanks.

Sorry. I talked with someone from FMOD, and they suggested upgrading FMOD Unity integration. Then the problem was fixed.

This issue should be fixed in the latest release, available here: https://github.com/ValveSoftware/steam-audio/releases/tag/v4.0.0.


fix(connlib): be resilient against network-partitioned relays

When a relay disconnects from the portal, either during deployment or because of a network partition, the portal sends us a relays_presence event. This allows us to discontinue use of a relay. Any connections that currently use that relay get cut and the next packet reestablishes a new one.
In the case of relays being re-deployed, their state is gone entirely and we will receive new relays to use. In the case of a network partition, the relay would have retained its state but we have already discarded ours locally. Only one allocation per client (identified by its 3-tuple) is allowed, so making a new allocation on that relay would fail.
In order to sync up this inconsistency, we delete our current allocation and make a new one if we detect this case. To test this, we introduce a new state transition to tunnel_test that simulates such a network partition.
In addition, we also remove the "upsert" behaviour of relays. The credentials of a relay can only change if it reboots. Rebooting would trigger a relays_presence event and tell us to disconnect from that relay. Thus, receiving a relay that we already know is guaranteed to use the same credentials.
Removal of this upserting behaviour is essentially the fix for #6067. Due to a portal bug (#6099), we may receive a relay as connected that is in fact shutting down. In case a channel needs to be refreshed on exactly that relay - whilst we are trying to refresh the allocation it as part of upserting - causes a busy loop of attempting to queue a message but failing to do so because we haven't chosen an active_socket yet for that relay.
Fixes: #6067.

I think the connlib should not see presence events from the portal as the ultimate truth, as I understand once we receive the presence event we clear out the state right away? This will cause a downtime on network split between portal and relays which hurts overall architecture where we are trying to give everything ~15m grace period if one of the system component has issues. Would it be possible to use presence as a "hint" that relay might be down and have client to test it (refresh allocation or do something else with low timeout) and if relay is still up - it should safe to keep using it. WDYT?

A question: do we care with this PR if relay is present both in connected and disconnected lists?

A question: do we care with this PR if relay is present both in connected and disconnected lists?

Yes we do care. We first remove it and would then re-add it so it would be as if we hadn't received the event at all.

I think the connlib should not see presence events from the portal as the ultimate truth, as I understand once we receive the presence event we clear out the state right away? This will cause a downtime on network split between portal and relays which hurts overall architecture where we are trying to give everything ~15m grace period if one of the system component has issues. Would it be possible to use presence as a "hint" that relay might be down and have client to test it (refresh allocation or do something else with low timeout) and if relay is still up - it should safe to keep using it. WDYT?

Interesting point. We would need to drastically reduce our backoff to ensure that this has any effect and continue testing it. To make sure it doesn't break soon after.
Channel data messages are not acknowledged so we would need to wait for an ICE timeout to detect a broken relay otherwise. The idea of relays-presence was to be faster than an ICE timeout (~10 sec).
It seems like a catch-22 to me: Either we rely on the portal connectiviy to see if the relays are up and act on it quickly or we don't. Given that we talk to the relays over UDP, any form of detecting a partition can only be as quick as any keep-alive heartbeat type of message. We could run TURN over TCP and detect stuff sooner perhaps? But then we'd have two flow-control algorithms fight each other in case where TCP gets tunnelled.
If we build our own partition-detection in connlib, any kind of hint is almost superflous. What am I meant to do with the hint? Ping more aggressively to quicker detect a timeout? For how long until we decide that the hint was a false-positive?

@thomaseizinger the way how I would implement this is to send an one-off heartbeat to the relay with much smaller timeout (2s for example). The presence is there to speed up switching between relays but I believe this improvement should not come at a cost of completely taking all our product down in case portal has a network split, because in any other case existing connections will keep working right now for ~15 minutes.

@thomaseizinger the way how I would implement this is to send an one-off heartbeat to the relay with much smaller timeout (1-2s for example). The presence is there to speed up switching between relays but I believe this improvement should not come at a cost of completely taking all our product down in case portal has a network split, because in any other case existing connections will keep working right now for ~15 minutes.

For how often would you send the heartbeat? When we roll relays, they are still online for a bit but show as offline in the portal. So a single heartbeat wouldn't be enough. We'd have to implement something like a "high-alert" mode where we burst ping (every few seconds) the relay for a minute(?) to confirm that the relay is going down. Data plane connections have a timeout of ~10s. If that is acceptable, then we don't have to implement any detection and we can just have the STUN messages - which are already relayed via data channel messages - time out. Do you see what I mean? Any proactive down detection of relays needs to be quicker than 10s, otherwise it is not actually an improvement over not having it all.
We can design an extension to TURN that notifies clients directly when a relay is going down, then we don't need relays-presence at all. We'll have to make sure those are authenticated though, otherwise we can't trust it on the client.
That is what I mean with catch-22: Either we act on the message from the portal or we don't. A mere hint isn't really an improvement over the actual liveness detection that we have for the connection, be it relayed or not.

To paraphrase a conversation from Slack here: I think this is a strict improvement and safe to merge. Improving on the design to be less reliant on network partitions between relay and portal can be done in the future. Most connections are not relayed so an outage there doesn't impact every customer.


APM: Remove writer channels + perf improvements

What does this PR do?
Removes some extraneous goroutines / asynchronous operations. Namely, serialization via trace writer and stats writer are now synchronous operations as part of the normal "Processing" goroutine pool. This makes it easier to reason about how many traces are currently in memory as well as simplifies the interface of these components.
Additionally there are some performance improvements here where some frequently allocated objects are now shared and reused via sync.Pool this resulted in solid cpu and memory improvements when the trace-agent is under high load and should reduce OOMs for trace-agents under high load + restrictive memory limits.

Motivation
Performance improvements are always nice! The separate goroutine processing steps here do not actually provide any performance benefits so by removing them we simplify this area of the code a bit (and some of the tests)

Additional Notes

Possible Drawbacks / Trade-offs
This is a breaking change for any users of this API (aka OTEL Collector), but thanks to the new interfaces this should provide a cleaner way to get access to "just metrics" by providing a noop trace writer.

Describe how to test/QA your changes
We've done benchmarking in our trace-agent benchmarking environment as well as in staging, both of which have shown success. To further QA this:

verify performance overall has not regressed - See the trace-agent dashboard
verify correct behavior - no changes in stats / traces, this should be a transparent change

/merge


n-tabs show-divider prop is not implemented

TuSimple/naive-ui version (版本)
2.16.5
Vue version (Vue 版本)
3.2.6
Browser and its version (浏览器及其版本)
chrome
System and its version (系统及其版本)
windows
Node version (Node 版本)
Reappearance link (重现链接)
https://codesandbox.io/s/elated-morse-1r2fh?file=/src/Demo.vue:85-97

Yes, it's useless. I have removed it.
Type line and bar is enough to distinguish the divider.


Crosswalk "dc:Is Part Of" from ISO metadata or GeoNetwork Category

added from ISO element collectiveTitle


ArrayBuffer -> Blob?

Hello!
I was wondering if there's any way to turn an ArrayBuffer into a Blob.  If I understand correctly, the JavaScript implementation of new Blob(...) allows for passing an array of blob parts, which can include ArrayBuffer (js) and ArrayBufferView (js).  I don't see anything similar in the Web.File.Blob docs though, so I was wondering if there's a recommended way to do this.
My use case, in case of XY problems:  I'm downloading an encrypted file using purescript-fetch, then decrypting it using purescript-subtlecrypto, which yields an ArrayBuffer (which I have a known image/* MIME for) that I want to display to the user.  I know I could use data urls, but I'd like to avoid the memory/cpu overhead if possible.
Also, I'm a bit of a purescript novice, so apologies in advance if I've missed something that's obvious to more experienced users.
Thanks for your help!

No, I don't think you've missed anything - or if you have, I have too :smile: - I think we are indeed lacking a constructor for that case.
There's probably a couple of variations that are missing - if we wanted to support creating a Blob from multiple parts we'd have to introduce a BlobPart type and some coercion functions. Would also need to change the FFI implementation a bit if we wanted to support the endings option.


Cannot Place Hanging Pot

Attempting to place hanging pot does nothing, but it can be placed on the ground. When installed alongside Supplementaries, it will place a hanging pot labeled "Wall lantern" and it has lantern physics but can not be used to plant plants.
Minecraft 1.20.1 w Fabric Loader 0.14.21
Beautify 1.0.0-1.20
Cloth Config 11.1.106
Fabric API 0.85.0+1.20.1

Nevermind, just realized hanging pots can only be placed on the underside of blocks, not the side of blocks.


latest code failed in webpack build because of lack of dependencies

What package(s) are you using?
    "@carbon/ibm-cloud-cognitive": "^0.1.63",
    "@carbon/ibm-cloud-cognitive-cdai": "1.1.1",

Detailed description
here is parts of my devDependencies
    "@carbon/charts": "^0.29.1",
    "@carbon/ibm-cloud-cognitive": "^0.1.63",
    "@carbon/ibm-cloud-cognitive-cdai": "1.1.1",
    "@carbon/icons-react": "^10.9.2",
    "@carbon/layout": "^10.7.3",
    "@carbon/themes": "^10.9.3",
    "@carbon/type": "^10.8.3",
    "@carbon/grid": "^10.20.0",

while do webpack build, it turns out with error (firstly call for @crabon/grid, now @carbon/motion):
ERROR in ./scss/common.scss
Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):

@import '~@carbon/motion/scss/motion';
^
      File to import not found or unreadable: ~@carbon/motion/scss/motion.
      in<EMAIL_ADDRESS>(line 15, column 1)
    at /Users/yuecchen/projects/automation-saas/sre-console-ui/node_modules/webpack/lib/NormalModule.js:316:20
    at /Users/yuecchen/projects/automation-saas/sre-console-ui/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Users/yuecchen/projects/automation-saas/sre-console-ui/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/Users/yuecchen/projects/automation-saas/sre-console-ui/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at Object.callback (/Users/yuecchen/projects/automation-saas/sre-console-ui/node_modules/sass-loader/dist/index.js:89:7)
    at Object.done [as callback] (/Users/yuecchen/projects/automation-saas/sre-console-ui/node_modules/neo-async/async.js:8069:18)
    at options.error (/Users/yuecchen/projects/automation-saas/sre-console-ui/node_modules/node-sass/lib/index.js:294:32)
 @ multi ./scss/common.scss common[0]

if @carbon/ibm-cloud-cognitive-cdai has dependencies, it should be added in to it's package.json
Steps to reproduce the issue

Step one
add following to devDependencies:

    "@carbon/charts": "^0.29.1",
    "@carbon/ibm-cloud-cognitive": "^0.1.63",
    "@carbon/ibm-cloud-cognitive-cdai": "1.1.1",
    "@carbon/icons-react": "^10.9.2",
    "@carbon/layout": "^10.7.3",
    "@carbon/themes": "^10.9.3",
    "@carbon/type": "^10.8.3",
    "@carbon/grid": "^10.20.0",

Step two
install dependencies

npm install

Step three
begin to do webpack build

npm run build

@asfordmatt / @vladbalanescu Any thoughts on this one?

@yuecchen @asfordmatt @vladbalanescu can we close this issue?

@yuecchen @asfordmatt @vladbalanescu closing, please reopen if still relevant.


Differentiate descriptions of Address and Endpoint

As discussed with @davidesalerno and @ricardozanini these two fields need better differentiation for users to understand.

How to backport a pull request to a different branch?

In order to automatically create a backporting pull request please add one or more labels having the following format backport-<branch-name>, where <branch-name> is the name of the branch where the pull request must be backported to (e.g., backport-7.67.x to backport the original PR to the 7.67.x branch).

NOTE: backporting is an action aiming to move a change (usually a commit) from a branch (usually the main one) to another one, which is generally referring to a still maintained release branch. Keeping it simple: it is about to move a specific change or a set of them from one branch to another.

Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.
If something goes wrong, the author will be notified and at this point a manual backporting is needed.

NOTE: this automated backporting is triggered whenever a pull request on main branch is labeled or closed, but both conditions must be satisfied to get the new PR created.

Done. One question though. Why do we have to repeat it? The description is then unnecessarily repeating the field in the yaml. Other fields like RecoverFailureAttempts don't repeat it.

Done. One question though. Why do we have to repeat it? The description is then unnecessarily repeating the field in the yaml. Other fields like RecoverFailureAttempts don't repeat it.

It is a best practice https://github.com/kiegroup/kogito-serverless-operator/pull/179#issuecomment-1615122364
About the other fields, we could aligning them slowly :)


Fix github link from 'Operating the Foundry'

Not sure whether being part of the Pivotal org is sufficient or whether I need to sign an individual CLA
/cc @mikegehard

Being part of the Pivotal org publically should be enough...sometimes to bot misses that. Closing/reopening sometimes helps.


Feature: quick action support for covers

I just noticed that the quick actions do not support covers yet. I am already getting used to this feature for lights, so this would be a nice addition.

Will do :)

Hi @ipd-otto, I've added support in the latest beta. I don't have any covers, could you please test it?

Sorry, that release was incomplete, please use this one:
https://github.com/LAB02-Research/HASS.Agent/releases/tag/b2022.2.14

Just got some time to test: I've added a quick-action toggle for my cover and it's working just fine. If I encounter any issues, I'll get back to you.


Fix fail while posting results

Coverage remained the same at 91.902% when pulling e08eab69541b9739de42f17d8eaa6723b296dd01 on VDigitall:a441365652921964_fix_fail_post_results into 95dc9ddf83a9bb9247decea59f86636ef4a24154 on openprocurement:sandbox.


Prepare to release spring cloud azure: 4.3.0

Description
As title, prepare to release spring-cloud-azure:4.3.0.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


QuickLogic: upstream new qlf k6n10 device

This PR is based on top of #2137 and #2139 it requires a rebase once they are merged.
This PR adds the new qlf k6n10 device

We should not be using git lfs in the symbiflow-arch-defs repository.

@mithro lfs is only used in the QL flow to get the RR graph, which is externally generated and stored with git lfs. It will be used only during the ql.sh script run to pull it.
A different solution might be to upload those as artifacts and pull them instead of using git lfs.


FSP ResetReload testcases

Test the FSP resetReload testcases by below two methods.
Host initiated RR---> putmemproc 300000f8 0x00000000deadbeef
FSP initated RR ----> smgr resetReload
Once it finishes wait for FSP to come up and check below interafaces resumes back or not
ipmi
nvram
sensors
console
surveillance
fsp dumps

Closing this issue as it is implemented and merged https://github.com/open-power/op-test-framework/commit/20e1f1ecc8a4d64450546125afa0bd3e8dcd9cc1


docs: update getAll example in documentation

Help users avoid getting error messagegetAll() no longer accepts an array as its first argument. Please unpack your array and call getAll() with individual arguments.
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕

@googlebot I signed it!

I figured getAll will also error if documentRefs is an empty array. If y'all think it's a good idea I can try to update it to make it return an empty array if it is called without arguments.

@n370 Thanks for this!


Issue 86 - Updated bastion-instance-principal policy to use compartment id

Updated bastion-instance-principal policy to use compartment id instead of compartment name, and removed the compartment_name variable.

already fixed in #94. can you please test the 91-admin-host branch?


Added option to summarize numeric columns

One big problem I see with this is that you have to set items per page to ALL, or it won't show summary for whole table but just for current page. (Which can be feature)

#228 - Possible source of conflicts if merged.


Unable to make ds9 region subcube extraction work

I'm trying to extract a spectra from a cube from a ds9 region and the code keeps bombing. I've included some test code below with error messages. I've attached the catalog file I've been using (ic10_regions.reg.txt).
I've also tried doing this in degrees rather than hms and dms and still get errors (although they are new and different).
import pyregion
from astropy import units as u
from astropy.coordinates import Angle
from astropy.coordinates import SkyCoord
from spectral_cube import SpectralCube

fitsFile = '../data/iram/ic10_emir_co10_30as_2kms.fixed.fits'
regionFileName = 'ic10_regions.reg'

cube = SpectralCube.read(fitsFile)

regionList =  pyregion.open(regionFileName)

regionCube = cube.subcube_from_ds9region(regionList[0])

# TypeError                                 Traceback (most recent call last)
# <ipython-input-98-e980a3e577c5> in <module>()
# ----> 1 regionCube = cube.subcube_from_ds9region(regionList[0])

# /Users/amanda/anaconda/lib/python2.7/site-packages/spectral_cube/spectral_cube.pyc in subcube_from_ds9region(self, ds9region)
#    1729             shapelist = ds9region
#    1730
# -> 1731         if shapelist[0].coord_format not in ('physical','image'):
#    1732             # Requires astropy >0.4...
#    1733             # pixel_regions = shapelist.as_imagecoord(self.wcs.celestial.to_header())

# TypeError: 'Shape' object does not support indexing

# Okay let's put this in as all the regions.
regionCube = cube.subcube_from_ds9region(regionList)

# ---------------------------------------------------------------------------
# AttributeError                            Traceback (most recent call last)
# <ipython-input-99-fa886ce6f02d> in <module>()
# ----> 1 regionCube = cube.subcube_from_ds9region(regionList)

# /Users/amanda/anaconda/lib/python2.7/site-packages/spectral_cube/spectral_cube.pyc in subcube_from_ds9region(self, ds9region)
#    1734             # convert the regions to image (pixel) coordinates
#    1735             celhdr = self.wcs.sub([wcs.WCSSUB_CELESTIAL]).to_header()
# -> 1736             pixel_regions = shapelist.as_imagecoord(celhdr)
#    1737         else:
#    1738             # For this to work, we'd need to change the reference pixel after cropping.

# /Users/amanda/anaconda/lib/python2.7/site-packages/pyregion/__init__.pyc in as_imagecoord(self, header)
#      39         r = RegionParser.sky_to_image(zip(self, comment_list),
#      40                                       header)
# ---> 41         shape_list, comment_list = zip(*list(r))
#      42         return ShapeList(shape_list, comment_list=comment_list)
#      43

# /Users/amanda/anaconda/lib/python2.7/site-packages/pyregion/ds9_region_parser.pyc in sky_to_image(l, header)
#     210                 nn2 = len(cl)-(len(fl) - n2)
#     211                 cl2, fl2 = cl[n1:nn2], fl[n1:n2]
# --> 212                 cl20, xy0 = convert_to_imagecoord(cl2, fl2, wcs_proj, sky_to_sky, xy0)
#     213
#     214                 cl3, fl3 = cl[nn2:], fl[n2:]

# /Users/amanda/anaconda/lib/python2.7/site-packages/pyregion/wcs_converter.pyc in convert_to_imagecoord(cl, fl, wcs_proj, sky_to_sky, xy0)
#      18
#      19             ll = sky_to_sky([cl[0]], [cl[1]])
# ---> 20             x0, y0 = wcs_proj.topixel(ll)
#      21             xy0 = [x0[0], y0[0]]
#      22             new_cl.extend(xy0)

# /Users/amanda/anaconda/lib/python2.7/site-packages/pyregion/wcs_helper.pyc in topixel(self, xy)
#     316
#     317         # somehow, wcs_sky2pix does not work for some cases
# --> 318         xy21 = [self._pywcs.wcs_sky2pix([xy11], 1)[0] for xy11 in xy1]
#     319         #xy21 = self._pywcs.wcs_sky2pix(xy1, 1)
#     320

# AttributeError: 'WCS' object has no attribute 'wcs_sky2pix'

You need to pass in a pyregion.ShapeList, not a single shape.  Just change:
regionCube = cube.subcube_from_ds9region(regionList[0])
to
regionCube = cube.subcube_from_ds9region(pyregion.ShapeList([regionList[0]]))
This is an unfortunate limitation of pyregion.  I hope a GSOC student will fix that this summer...

Oh, and the second error... that's different. Umm.

You probably need to update pyregion.  wcs_sky2pix is deprecated and has been replaced with wcs_world2pix in the latest version of pyregion.

Ended up having to install and reinstall pyregion to get it to upgrade, but it works now. Thanks! Happy to add this code as an example to the docs if you'd like.

Yeah, I think that's a great idea - I do this kind of thing all the time, so it would be good if it showed up in our gallery.

Will do! I've put it on my list for this week.

Documentation updated (#287)


docs: persist editor state in url

URLs
Doc site URLs now include the state of the editor controls.  Here's an exploded view of the button url with the default state when opened:
/components/button/definition

?showCode=true & showRtl=false & showTransparent=false & showVariables=false

#types-button

This is leading to shareable playground URLs.
Editor Menu
I also fixed editor menu's to show the menu item as active when the option is on.  The styles are still ugly, another PR...

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS


DELHOOK always returning true even if hook doesn't exist

I just recognized that Tile38 is always returning a true message when trying to delete a non-existing HOOK via
<IP_ADDRESS>:9851> DELHOOK sodifhsoif
{"ok":true,"elapsed":"2.909µs"}

I'd like to suggest to change that to sending an "not found" error. Would that make sense?

It does makes sense but I'm worried that changing at this point might break existing client implementations.

Ok, that makes sense to me.


Cookbook uses pre 12.5.1 resource style

Is there a necessity with the cookbook to maintain compatibility with Chef 11.6.0? Switching to the new style of creating custom resources would change the minimum version to 12.5.1 but that's a fairly easy upgrade from 11.6.0.

For now, yes (I'm still mainly running Chef 11 and while an upgrade is overdue it won't happen in the near future).
Is there any problem with using the legacy style of creating custom resources with newer versions of Chef?

No, I don't think there is an issue with using the legacy style custom resources currently. However I'm wondering if the compat_resource cookbook could be used to make this work with the new resource style. Though I'm not sure if any version of the cookbook supports anything < Chef 12.

And in my experience moving from Chef 11 to Chef 12 was a passive change, I don't recall having to make any updates to my cookbooks or roles to make the switch, just in case that's what you are worried about with upgrading. 😄

I was setting up Chef Server at work and ran into issues when attempting to upload some of our cookbooks with knife from Chef 12, so unfortunately it's not a passive change for us :).
Currently I don't see any immediate benefit in dropping support for Chef 11, but it might be something to consider for the next major version.


[docs] Apply mode-base color for default-theme  label

[x] I have followed (at least) the PR section of the contributing guide.

Before: the label's color on page Default theme viewer doesn't sync with whole site's color theme.

After: use theme.palette.text.primary for FormControlLabel.sx.label.color to apply color from theme.

Test with these 2 browsers on the m1 MacBook, with page hard-reload:

Chrome Version 109.0.5414.119 (Official Build) (arm64)
Firefox Version 109.0.1 (64-bit)

Dark theme was loaded around 22-second in the screen record, but I still get #1A2027 (the color for light mode text) for the switch label after the theme loaded 🤔
https://user-images.githubusercontent.com/47290304/216543511-61bd0fba-be0e-4bd9-ad7a-b5d88af533da.mp4

Open the same page on an Intel chip MacBook and find the label color is synced with the site theme; maybe this problem is related to the browsers on different chips 🤔 ?

I am closing this PR, please open an issue so that we can investigate the issue before proposing a solution. At this moment, I can't reproduce this with the steps above.


Update ctr shim subcommand to task v3

Fix ctr shim command.
The shim command is broken due to task API version upgrade.

Before change

$ sudo bin/ctr shim --id test state
ctr: rpc error: code = Unimplemented desc = service containerd.task.v2.Task

After change

$ sudo bin/ctr shim --id test state
{
    "id": "test",
    "bundle": "/run/containerd/io.containerd.runtime.v2.task/default/test",
    "pid": 285466,
    "status": 2,
    "stdin": "/run/containerd/fifo/3865965001/test-stdin",
    "stdout": "/run/containerd/fifo/3865965001/test-stdout",
    "terminal": true,
    "exited_at": {
        "seconds": -62135596800
    }
}

/retest

LGTM but needs rebase after the API change merged

LGTM but needs rebase after the API change merged

Rebased.


Add keywords

The gatsby and gatsby-plugin keywords will add this package to Gatsby's Plugin Library.

thanks @m-allanson


[#995] Fix bug when generating notifications for cases w/o contracts

Coverage remained the same at 31.744% when pulling 5dd1aa0c64ad559858f4bfad6052add43038b0c4 on 995-mod-notif-missing-contract-bug into 6eca0f933482c206aee7b124137baa76532faad3 on master.


BUG: Uninitialized PyCFunctionObject name, which could potentially be a security issue

Description
I have not figure the whole picture out, but there's an uninitialized PyCFunctionObject name, which might be introduced by _ods_cext.register_operation. That created a PyCFunctionObject with PyCapsule and the name is not properly initialized.
It's not super easy to show all the aspects, but you can confirm it with the following code:
import sys

def profile_func(frame, event, arg):
    if event == "c_call":
        if "PyCapsule" in str(arg):
            print(arg)

sys.setprofile(profile_func)

import jaxlib.mlir.dialects.builtin

The code above registers a callback for all the python function calls(including the ones to C API). You will see that there will be print out like <built-in method  of PyCapsule object at 0x7fd522c8d1b0>, which means the name of this method is empty.
I'm not sure if you can get more information from Python side, but if you use the similar callback in C API, you can tell that the printed PyCFunctionObject is the same one, but the cfunc->m_ml keeps changing. I guess it was never properly initialized so it's pointing to a random stack address. However, I believe Python assumes any PyCFunctionObject has it's m_ml->ml_name initialized, and it will try to access the address when you print the PyCFunctionObject through __repr__.
Unfortunately, I was not able to locate the code to build the PyCFunctionObject, that's probably done in mlir, which is part of llvm, so I don't know where did the bug happen.
Please let me know if you need more information about this.
What jax/jaxlib version are you using?
jax v0.3.5 jaxlib v0.3.5
Which accelerator(s) are you using?

[X] CPU
[ ] GPU
[ ] TPU

Additional System Info
Python 3.9.12, WSL Ubuntu

This module is actually just a vendored copy of code from upstream MLIR: we don't do anything special in its jaxlib build. I'd suggest filing the issue the LLVM issue tracker since the code owners live there.
I'm not convinced from what you have said that there actually is a memory issue: while it might be nice to make sure we have a non-empty name, is it actually illegal to leave it empty? I'm not convinced it's dangling as you suggest: I ran your reproduction under an AddressSanitizer instrumented Python+jaxlib and it didn't find any problems. So I suspect this is simply a case of an empty name.


Consider put evil-surround in evil.el

A bit better organization.
Problem I met was I used HTTPS clone and didn't set up SSH, so for this git: submodule git yelled Fatal at me.

@louy2 FWIW - I switched to cask for managing all dependencies here (and removed evil packages)


Add endpoint option to Builder

Resolves #9, alternate approach to #10
endpoint can be useful for eg local minio, or perhaps other S3 clones.
Here is a section of the docs that explains this option:
:endpoint (String, URI::HTTPS, URI::HTTP) — Normally you should not configure the :endpoint option directly. This is normally constructed from the :region option. Configuring :endpoint is normally reserved for connecting to test or custom endpoints. The endpoint should be a URI formatted like:
'http://example.com'
'https://example.com'
'http://example.com:123'

https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Client.html
Thanks @BenKanouse , I could not have done this without your specs and working implementation to comapre to!
It may just be an issue of aesthetics -- your appraoch was a nice OO design, but I just prefer doing it this way, where all calculations happen once at object initialization, and thereafter it's just simple string concatenation of the things we pre-calced.  To me this is simpler and easier to follow, although I could see an argument either way.
Do you want to review and/or test this and see if it meets your needs?  If so, I'll merge, and do a release soon.

Are you worried that this could impact performance at all?

I'm not because of:
A) Your tests on your own code, and
B) ALL the new logic (including instantiation of URI objects) happens in the constructor, the rest of the code is about the same as it was (a few more strings involved in concatenation, no big deal).  High performance use of this class really involves creating one and re-using it many times (it is thread safe), so I liked that anything new was kept in construtor.
But best practice prob would be to run the benchmarks... not sure how motivated i am to do it though!

Eh, I'm going to make the executive decision to just merge and release without benchmark, I'm not worried at all.
Release coming through!
Thanks for getting in touch with PR's, and for your patience getting through this all @BenKanouse !


List concatenation not working

In python, when you add two lists together you get a list with all elements of both. This doesn't seem to work on Transcrypt. I tested the following code:
test_array = [-1] + [-1]
print(test_array)

In Python that returns:
[-1, -1]

In Transcrypt it is:
-1-1

If I modify the print to display more details in Transcrypt:
print("!".join(map(str, test_array)), type(test_array))

The output show that test_array is treated as string instead of an array of ints:
-!1!-!1 function str(stringable){if(typeof stringable==="number")return stringable.toString();else try{return stringable.__str__()}catch(exception){try{return repr(stringable)}catch(exception){return String(stringable)}}}

You need to enable operator overloading in transcrypt.


two presentations in one project?

It would be nice to have two (or more) presentations in one project. Is this possible?
E.g. index.jade is the main presentation, but another-one.jade could be accessible through /another-one.html.

I'm sure it's possible, but beyond the scope of what this project is aiming to achieve. I'm closing this issue, but please add a comment with a link to your repo if you manage to achieve this.


Debounce requests in ServerDataSource

Discussed in https://github.com/dj-fiorex/angular2-smart-table/discussions/141
The goal is to reduce the number of HTTP requests when the filter is changed.

The topic seems to be a bit more complicated than just debouncing the request.
First observation is, that events are not fired on every key stroke when typing text in a filter. So the number of requests is already not immediately problematic.
However, when the change is recognized, the whole process results in resetting the filter to the state it had before firing the event.
Example: let's say you have a column and type in the text "foobar".

f is entered, nothing happens
o is entered, nothing happens
o is entered, nothing happens
b is entered, change is fired (text is currently foob)
a is entered, change is processed, query is running
result is received, table is updated, filter is reset to foob
a is entered, but because of the reset, the filter text is now foobr instead of the intended foobar

I don't have a clue how to fix this easily. You can always have bad timing, even when you add some waiting times. Therefore, I guess, the whole thing would need a major rework.


Automatic creation of finding lists

HardeningKitty is a great tool and has been very helpful for creating gold images etc.
Do you have a scripted method for creating the finding lists from the STIG xml or pol files? It looks as though it might be possible, but not sure if all the required information is there.
Perhaps you could provide a short description of how you go about generating the finding lists from a STIG, this would  be helpful for those looking to add new lists of keep theirs up to date.
thanks in advance.

I use a sqlite database to manage all findings and lists and to generate csv lists. I don't have any automation process to create a new list. The sources are all different as CIS has PDFs, MSFT has an Excel file, BSI has another Excel and so on. If I have already a similar list like CIS Benchmark for Windows 10, then I can copy this list and I'm looking for changes by hand.
For automation I need how to configure the recommendation, the easiest way would be a registry key. If this bit is missing and the automation process must look for a matching finding name/text, which would be doable as well. However, it would be necessary to create for each source it's own script. So if somebody likes to help creating script, please ping me


Node crashes node-red with uncaught exception

Hi,
first of all: many thanks for the really good implementation of the node to perfectly integrate my AlphaESS storage into my smart home.
However, in some cases the node seems to crash my nodered instance.
Today it was the case again. Luckily I was at the computer at the same time and directly checked logging into "cloud.alphaess.com" which did not work as well -> response from the website in Chinese: "Network issue (502)"
Please find the error log for the node from my nodered instance attached:
12 Jul 13:51:59 - [red] Uncaught Exception:
12 Jul 13:51:59 - [error] SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)
    at Request._callback (/data/node_modules/node-red-contrib-alphaess/alphaess-monitoring.js:386:21)
    at Request.self.callback (/data/node_modules/request/request.js:185:22)
    at Request.emit (events.js:400:28)
    at Request.<anonymous> (/data/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:400:28)
    at IncomingMessage.<anonymous> (/data/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:519:28)
    at IncomingMessage.emit (events.js:412:35)
    at endReadableNT (internal/streams/readable.js:1334:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: `node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data"`
npm ERR! Exit status 1

npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /data/.npm/_logs/2022-07-12T13_51_59_826Z-debug.log

Would it possible to catch the exception so that nodered will not crash the next time this happens?
Please let me know if I can support with any more details or be a help with testing.
Many thanks
Andreas
P.S. This is my first reported GitHub issue. Hope I am doing it right ;-)

Thanks for reporting this. A new package version has been published.


Fix auto round trip when one place is selected

Round trip is automatically activated when one place is selected and the user changes the profile or reorder the place inputs.

Fixed


0.9.0.zip has lots of unwanted stuff

katex.zip on the 0.9.0 release page is 2.5 to 3x the normal zipped size, and contains stuff such as:
FOLDERS
contrib
dist
dockers
...
FILES
.arcconfig
.arclint
.babelrc
...
This would be confusing for first-timers.
However, katex.tar.gz contains the usual needed files and folders.

@mbourne I checked the .zip file and it contains the same thing as the .tar.gz.  Can you paste the URL?

This looks like the source ZIP as opposed to the distribution ZIP. Maybe you're comparing an old distribution ZIP to the new source ZIP?

@mbourne, There are two links on the release page:

katex.zip
Source code (zip)

The one you want is katex.zip. The contents you describe are in Source code (zip).

 I was sure I grabbed katex.zip - my bad. :-(


Correct dbname to database in example profiles.yml code

What are you changing in this pull request and why?
Updating one word to be correct.
Checklist

[x] Review the Content style guide and About versioning so my content adheres to these guidelines.
[x] Add a checklist item for anything that needs to happen before this PR is merged, such as "needs technical review" or "change base branch."

I'm not exactly sure why this PR is picking up a bunch of other commits when the PR is supposed to be for only the last commit listed. Which literally changes one word. If I can do something to make them go away please let me know. I tried PR-ing dbt current to my fork but it started running the dbt CI checks.


Styling selector to look like a native android component

Hi,
I really like the component and don't want to use anything else because it has a wealth of accessible functionality, which my application requires. However, the component does not fit with the rest of my application. Is there a way to drop the styling so it looks like a native component? It's ok on iOS but on Android it looks like an iOS component. Thanks

There are a number of styling props to make it look the way you prefer, though admittedly there are quite a lot to change:
https://github.com/peacechen/react-native-modal-selector#props
Making the default an Android style would disrupt iOS apps.  Ideally this library would support themes, possibly with default styles for Android vs iOS.  The app uses a typical stylesheet that could be overridden by a prop:
https://github.com/peacechen/react-native-modal-selector/blob/master/index.js#L17
It could also check the platform OS and select between Android vs iOS default stylesheets.
Would you be interested in submitting a PR?

So, there aren't specific style props I can 'reset', I would have to re-style the whole thing?

It probably wouldn't look like "Android" if all the styling was removed.  If you'd like to try, pass in an empty array [] to all the style props.
This a community supported open source library.  Your contributions would help not only yourself but others who use this.


Ollama response freeze and get stuck midway in generation on Windows WSL Ubuntu 22.04

Bug Report
Record for an annoying response freezing issue on Window WSL that took me days to solve.
Description
Responses sometimes work and sometimes get stuck midway.
Fix
Simply add '\wsl.localhost\Ubuntu-22.04' to your antivirus exclusion
https://github.com/microsoft/WSL/issues/8824#issuecomment-1253204941
Environment
OS: Windows 11, WSL 2, Ubuntu 22.04
Reproduction Details
Standard installation of everything + run:
sudo apt update
sudo apt upgrade
Confirmation:

[x] I have read and followed all the instructions provided in the README.md.
[x] I have reviewed the troubleshooting.md document.
[ ] I have included the browser console logs.
[ ] I have included the Docker container logs.

Additional Information
Not an actual fix and does not get to the root of the issue, but it works, so maybe a fix can be made in the future.
Note
If the bug report is incomplete or does not follow the provided instructions, it may not be addressed. Please ensure that you have followed the steps outlined in the README.md and troubleshooting.md documents, and provide all necessary information for us to reproduce and address the issue. Thank you!

Thanks for reporting this issue, I'll move this post to discussion for better visibility!


BrokerageSetupHandler should not clear CashBook with BacktestingBrokerage

Expected Behavior
BrokerageSetupHandler should only clear the CashBook when used with real brokerages.
It should not do this with PaperBrokerage and BacktestingBrokerage.
Actual Behavior
BrokerageSetupHandler is also clearing the CashBook when used with BacktestingBrokerage.
Potential Solution
In BrokerageSetupHandler.Setup update this check to also exclude BacktestingBrokerage:
// if (liveJob.Brokerage != "PaperBrokerage")
if (liveJob.Brokerage != "PaperBrokerage" && liveJob.Brokerage != "BacktestingBrokerage")
{
    //Zero the CashBook - we'll populate directly from brokerage
    foreach (var kvp in algorithm.Portfolio.CashBook)
    {
        kvp.Value.SetAmount(0);
    }
}

Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues
[x] I have provided detailed steps to reproduce the issue

Given the resolution of https://github.com/QuantConnect/Lean/pull/2913 I believe this issue can be closed.


How is max image size determined?

How is the maximum size before downsampling applies set?
I'm currently trying to look at 7 different channels, each of which are 5-15 MBs.
However, they are getting downsampled. It seems like these could all pretty comfortably fit into memory. Is there a way to increase the amount of available memory? Alternatively, what is the current max? That way I can split the file into pieces that are as large as can fit.

Right now, downsampling kicks in whenever the width or height of an image is at or over 10k pixels, and then it gets downsampled to 8k pixels on the largest dimension. The problem that I was running into is that even if the image is small on disk, it ends up getting decompressed into a byte array, which can be too large to fit into memory. Unfortunately the limitation is a part of Javascript as it currently exists. It's a 32-bit language, so the largest chunk of memory that it can reserve is 2 GB.
I can add a feature to configure the max image size in this next release so that you can play around with it with your images. You might be able to push it a little higher!

Okay that make sense. Do you think you could change to 10.3k pixels? Our
images are 1024 x1024, so a row of 10 is 10240 pixels.
On Mon, Apr 13, 2020 at 6:04 PM Robert Schiemann<EMAIL_ADDRESS>wrote:

Right now, downsampling kicks in whenever the width or height of an image
is at or over 10k pixels, and then it gets downsampled to 8k pixels on the
largest dimension. The problem that I was running into is that even if the
image is small on disk, it ends up getting decompressed into a byte array,
which can be too large to fit into memory. Unfortunately the limitation is
a part of Javascript as it currently exists. It's a 32-bit language, so the
largest chunk of memory that it can reserve is 2 GB.
I can add a feature to configure the max image size in this next release
so that you can play around with it with your images. You might be able to
push it a little higher!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ParkerICI/mantis-viewer/issues/24#issuecomment-613170180,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADJB47M6L4ZQFEM3GIBHEA3RMOZCLANCNFSM4MDHZ6OQ
.

Yup, can do! I'll make a pre-release with the bumped downsampling threshold tomorrow. Long term, I think I have an idea that might do away with downsampling altogether that I'm going to try to fit into this release.

Awesome! I think 100 images will cover our bases for the foreseeable
future, but for stitched images with a set shape we may have less
flexibility for how it needs to be displayed.
On Tue, Apr 14, 2020 at 7:40 PM Robert Schiemann<EMAIL_ADDRESS>wrote:

Yup, can do! I'll make a pre-release with the bumped downsampling
threshold tomorrow. Long term, I think I have an idea that might do away
with downsampling altogether that I'm going to try to fit into this release.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ParkerICI/mantis-viewer/issues/24#issuecomment-613782265,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADJB47L3XJF6BDLCHZWK74TRMUNDPANCNFSM4MDHZ6OQ
.

@ngreenwald just published a pre-release that has the threshold set to 10.3k!
https://github.com/ParkerICI/mantis-viewer/releases/tag/v1.1.0-alpha.1

Hey Rob, thanks for the lightning fast turnaround!
Did the file format specifications change? I can't seem to load an image set. If I try the attached (unstitched) folder that I've used in the past, nothing happens after selecting it. Is it expecting some metadata now?
16_31773_4_8.zip

Nope! Good catch, I introduced a bug that broke loading individual image sets (but not projects). Just pushed a new build that fixes that.
https://github.com/ParkerICI/mantis-viewer/releases/tag/v1.1.0-alpha.2
Thanks for the example dataset! It helped!


Update page header to match OCP

I think we may need a bit of time to adjust to this... CC @richiepiya

https://user-images.githubusercontent.com/6277895/111548428-14714380-8751-11eb-8175-978e1b6387fa.mov


Support for "multipicklist" field type

Data containing this field type causes the following error:
unsupported field type (multipicklist)
Fixing this just requires adding
case 'multipicklist':
on line 275 of Replicator.php thus...
switch($field->type) {
case 'id':
case 'reference':
case 'string':
case 'picklist':
case 'multipicklist':
case 'textarea':
case 'phone':
case 'url':
case 'url':
The data appears to be presented by SalesForce as a semicolon separated text field e.g.
Presenting;Jury
so handling this in the same way as picklist looks OK to me.
Just in case it helps here is a print_r of the $field object for a multipicklist field...
[215] => stdClass Object
    (
        [autoNumber] =>
        [byteLength] => 4099
        [calculated] =>
        [caseSensitive] =>
        [createable] => 1
        [custom] => 1
        [defaultedOnCreate] =>
        [deprecatedAndHidden] =>
        [digits] => 0
        [filterable] => 1
        [groupable] =>
        [idLookup] =>
        [label] => Talent Support Interest
        [length] => 4099
        [name] => Talent_Support_Interest__c
        [nameField] =>
        [namePointing] =>
        [nillable] => 1
        [permissionable] => 1
        [picklistValues] => Array
            (
                [0] => stdClass Object
                   (
                        [active] => 1
                        [defaultValue] =>
                        [label] => Presenting
                        [value] => Presenting
                    )

                [1] => stdClass Object
                    (
                        [active] => 1
                        [defaultValue] =>
                        [label] => Hosting
                        [value] => Hosting
                    )

                [2] => stdClass Object
                    (
                        [active] => 1
                        [defaultValue] =>
                        [label] => Mentoring
                        [value] => Mentoring
                    )

                [3] => stdClass Object
                    (
                        [active] => 1
                        [defaultValue] =>
                        [label] => Events
                        [value] => Events
                    )

                [4] => stdClass Object
                    (
                        [active] => 1
                        [defaultValue] =>
                        [label] => Jury
                        [value] => Jury
                    )

            )

        [precision] => 0
        [restrictedPicklist] =>
        [scale] => 0
        [soapType] => xsd:string
        [sortable] =>
        [type] => multipicklist
        [unique] =>
        [updateable] => 1
    )

)

I've made the change and pushed it into the repo.
Thanks for your help.


503 errors when reviewing reportbacks

when editors are reviewing reportbacks (example https://www.dosomething.org/node/5459/rb) they are intermittently getting 503 errors. this has happened for several different campaign leads.

cc: @sheydari-ds

another example:

we've seen the errors in the Reportback Review Bugs milestone happening with this error and also without this error occurring, but just adding it to the milestone so that everything is together so that we have the full picture
cc: @sheydari-ds

I'd be curious to see if this continues to happen after #4858 is deployed.

Haven't heard reports of this happening after we switched the order of the inbox from oldest -> newest

we just got a new one @angaither @sheydari-ds

another one reported @sheydari-ds @angaither

Just had an intern report another error appearing. The RBs she reviewed seem to have been saved though. Is there a status update on this?

Today Jess reviewed a page of 25 reportbacks, submitted, and encountered a 503 error. Then, she found one of the photos in this batch (RBID: 96549) still in the inbox, but also appearing in the "reviewed" bank of RBs. (I need to gain access to prod DB to figure out status according to SQL).

 503 Error While Reviewing RBs

@namimody @mikefantini I've upped the timeouts in Fastly (which had the lowest settings). Let's see if we can re-create/see if this still happens on large data reportback pages.

@namimody Can you confirm testing on this, and close if it's looking good?

@sheyd we just got this error again on node 15. Jess reviewed reportbacks, clicked save, and waited about 1 minute and this error popped up
Even though the error occurred, all report backs saved properly

@mshmsh5000 Do you think it's potentially work re-visiting the code logic on approving/saving RB's? We've upped the timeouts at multiple layers of our stack. Our bottleneck is about 60 seconds at this point, raising this value further is likely not the best idea as it introduces some scenarios for cascading failures, or resource starvation with lots of simultaneous requests. Thoughts?

I'd look at an approach like this for now:
https://www.varnish-cache.org/lists/pipermail/varnish-misc/2011-July/020813.html

A similar approach for HAProxy (a "slow back-end" definition) should work: http://serverfault.com/a/324731

Fastly backend timeouts increased to seconds beyond the count of two hands and and two feet (human). Also put in some pass Varnish logic around "/rb" URL's to see if the bottleneck exists on our origin servers.

A few more screenshots for additional reference:
Cookin' It Old School: 21 in inbox, 503 error occurred, all were saved properly

Senior Story Swap: 105 in queue, 503 error occurred, all went through

80 in queue:
Before this, Jess reviewed Past Picture Perfect: 5 in queue, no 503 error, all went through

@sheyd we can decrease the amount of reportbacks a reviewer can submit at one time pretty easily, would that help?
it's currently at 25, maybe 10?
for context:
The code that runs has to check every reportback item thats attached to the reportback and check the status on each to apply the correct status to the reportback as a whole
cc @mikefantini

going to pose the question to the campaigns team.
also this just happened with Jess reviewing reportbacks, and she disproportionately creates the 503 errors. the good news is that all reportbacks she reviewed went from the inbox to the reviewed tab so everything worked properly:

Looking at this in New Relic, it's clear that Northstar response time is a significant part of the problem:

Almost 2/3 of the time is spent talking to Northstar.

Removing blocker from this issue. @mshmsh5000 @angaither given the comment about Northstar response time who should this issue be assigned to?

@chloealee is looking into this with her pr #5616

@mikefantini have people still seen this? I haven't heard about it in a while. no news is good news

Not that I've heard. Let's close it out.


Use "//go:embed" directive when our minimum supported Go is 1.16

When Go 1.17 is released, and our minimum supported version becomes 1.16, we should replace the embedded Elvish source with the //go:embed directive. Moving the embedded Elvish source into files with a .elv extension. That will make it easier to edit the embedded Elvish source and easier to spot where such instances are present.

Closing since commit ab59ef90627389bdeb7c035f123968706dac1c03 implemented this idea. Thanks, @xiaq.

For anyone searching for a match to an error, I believe if you are not using go 1.16, you'll see this error:

build src.elv.sh/cmd/elvish: cannot load embed: malformed module path "embed": missing dot in first path element

Upgrade and it'll go away.


UI upgrade for donation form registration page

Here’s the text with emojis added to enhance engagement and clarity:
Here are the enhancements made to the HTML and CSS for the donation form:
HTML Enhancements
Semantic Structure: Organized the form elements with clear labels and placeholders for better accessibility and user experience. 📋
Form Elements: Added appropriate input types (e.g., number for donation amount, email for email address) to enhance validation and user input. 🔢✉
Checkbox for Anonymity: Included a checkbox option for users to choose to donate anonymously. 🤫
Button: Used a  element for form submission for better semantics and accessibility. ✅
CSS Enhancements
Background Image: Set a full-screen background image with properties to cover and center it, creating a visually appealing backdrop. 🌅
Container Flexbox: Used Flexbox to center the form vertically and horizontally within the viewport, improving layout responsiveness. 📐
Form Container Styling: Applied a semi-transparent black background to the form container, enhancing readability against the background. 🖤
Padding and Margins: Added padding and margins to elements for better spacing and improved visual hierarchy. 📏
Input and Button Styles: Styled input fields and buttons for a modern look, including rounded corners, consistent sizing, and hover effects on the button. 🎨
Text Color: Ensured text is white for contrast against the dark background, improving readability. ⚪
Overall Impact
The enhancements improve usability, accessibility, and aesthetics, making the donation form more inviting and easier to navigate for users. 🌟 The design is responsive and visually appealing, encouraging users to complete their donations. 💖
Let me know if you need any further adjustments!

Merge it and add tag hacktoberfest accepted

@Ash914027 Great contribution to Hacktoberfest 2024! 😊 Please include the issue number next time to improve tracking. Thanks for your effort! 🙌


Extra newline on exit code is improperly accounted

Example output of parallel linter commands:
❯ smush -v
0.1.0
2f39c07e3fdbd108b86458cd90c3166cd8cd6e0b
go1.20.3
❯ smush -c ci/lint.yaml
   prettier |> cd frontend && npm run prettier
      black |> poetry run black --check --diff --preview --color .
 migrations |> cd backend && poetry run ./manage.py makemigrations --check --dry-run
       ruff |> poetry run ruff --show-source .
        tsc |> cd frontend && npm run tsc
     eslint |> cd frontend && npm run eslint
   prettier |>
   prettier |> ><EMAIL_ADDRESS>prettier
   prettier |> > prettier --check ..
   prettier |>
        tsc |>
        tsc |> ><EMAIL_ADDRESS>tsc
        tsc |> > tsc
        tsc |>
     eslint |>
     eslint |> ><EMAIL_ADDRESS>eslint
     eslint |> > eslint --max-warnings 0 'src/**/*.{jsx,tsx,js,ts}'
     eslint |>
       ruff |> >>> exited 0
       ruff |>    prettier |> Checking formatting...
 migrations |> No changes detected
 migrations |> >>> exited 0
 migrations |>       black |> All done! ✨ 🍰 ✨
      black |> 137 files would be left unchanged.
      black |> >>> exited 0
      black |>         tsc |> >>> exited 0
        tsc |>      eslint |> >>> exited 0
     eslint |>    prettier |> [warn] ../infrastructure/accounts/staging/app/.terraform/modules/modules.json

Seems like the last line of a given command ends up with an extra logging prefix, and that line ends up doubled up by a different command.

4645048 somewhat fixes it such that there is always newline printed at the end. Not perfect, but kind of works?
Leaving this open for now until either I have a better idea or it goes stale.

I think it still doesn't work.


Idempotency on --debug doesn't help much

Issue Type

Bug report

Molecule and Ansible details
ansible 2.9.9
  config file = /var/home/yajo/mydevel/mando/ansible.cfg
  configured module search path = ['/var/home/yajo/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /var/home/yajo/mydevel/mando/.venv/lib64/python3.8/site-packages/ansible
  executable location = /var/home/yajo/mydevel/mando/.venv/bin/ansible
  python version = 3.8.3 (default, May 29 2020, 00:00:00) [GCC 10.1.1 20200507 (Red Hat 10.1.1-1)]
molecule 3.0.4
   ansible==2.9.9 python==3.8

Molecule installation method (one of):

pip

Ansible installation method (one of):

pip

Detail any linters or test runners used:
Desired Behavior
When idempotency fails with --debug, it should display the full log of the failed tasks.
Actual Behaviour
I have some idempotency failure, but this is what molecule --debug test --all prints:
ERROR: Idempotence test failed because of the following tasks:
* [basic] => base : start traefik container
* [basic] => nextcloud : start nextcloud container

Not much helpful to debug...

Please use forum for support https://github.com/ansible-community/molecule/discussions

Thank you but this is a bug... When passing --debug, molecule should print the failed idempotency tasks with -vvv --diff


Force close on shortcut to non-existent file

Describe the bug
A clear and concise description of what the bug is.
I right-clicked on a shortcut file and clicked properties. The file that the shortcut pointed to had been moved, so the shortcut was invalid. Files force closed.
To Reproduce
Steps to reproduce the behavior:

Create a shortcut to a file
Move or delete the file
Right click on the shortcut
Click properties

Expected behavior
Properties window opens
Desktop (please complete the following information):

OS Version: [e.g. Windows 10 10.0.19042 Build 19042]
App version: <IP_ADDRESS>

Log file
Please upload the log file here so that we can understand your issue better. You can access it from Settings->About->Open log location. You can also find this file by going to %localappdata%\Packages\49306atecsolution.FilesUWP_et10x9a9vyk8t\LocalState, you should see a file in this directory called
debug.txt
debug.txt or/and debug_fulltrust.txt.

@gavinayling thanks for this report. This issue has been fixed in version1.3 which is releasing on the store in a few days.


go.mod: bump x/tools

On Go 1.18, gcassert fails with e.g.:
internal error: package "github.com/cockroachdb/cockroach/pkg/base" without types was imported from "github.com/cockroachdb/cockroach/pkg/storage"

Upgrading x/tools fixes this.
Thanks for gcassert btw, it's really neat!

Thanks!


Error: Cannot read properties of undefined (reading 'message')

I entered my API key, but it doesn't work.
Sorry if I sound like a total newbie (which I am), but I really have no expertise in solving this kind of problems, so pls help.
Thanks.

Thanks for reporting the bug! I'll take a look.

v1.8.4 should show the full error message from OpenAI now. I suspect there is something wrong with the API key that you entered (maybe it's out of quota, or there was a typo and it's invalid).

@all-contributors please add @RatoGBM for bug report

Yes it displayed the whole error message, it was out of quota. Thank you