Use of --extendable/--no-extendable

Just looking for a confirmation...
From my understanding, if no passphrase is used, creating new backups with --no-extendable is equivalent to --extendable.
One has to use --extendable only when he is going to create a new backup for a master secret encrypted with a passphrase.

That is incorrect. No passphrase does not get any special treatment. It just means that an empty string is used for the passphrase. So --extendable and --no-extendable are not equivalent. Technical specification here.
One should always use --extendable. It has to do with the question of whether one wants to be able to create alternative backups of the same seed in the future.

I did this test.
Generated 1of1 shares for a master secret, e.g. shamir create  -S be278d88c624adb9dd59a25ba063fec8 -x 1of1
What I found is that shamir recover recovers the same master secret if I input two shares generated with -X. This does not happen when executing shamir recover -p inputting the same passphrase.
Instead, recovering using the same passphrase for two backups generated with -x returns the same secret.

$ shamir create  -S be278d88c624adb9dd59a25ba063fec8 -X 1of1
Using master secret: be278d88c624adb9dd59a25ba063fec8
Group 1 of 1 - 1 of 1 shares required:
bike senior academic academic axis thorn hazard process slap benefit thorn shaft jump sympathy crystal arcade dismiss eyebrow regular always
$ shamir create  -S be278d88c624adb9dd59a25ba063fec8 -X 1of1
Using master secret: be278d88c624adb9dd59a25ba063fec8
Group 1 of 1 - 1 of 1 shares required:
critical husband academic academic anxiety river smirk alpha duke inmate eclipse military dough express detailed device focus deadline hearing hamster
$ shamir recover -p
Enter a recovery share: bike senior academic academic axis thorn hazard process slap benefit thorn shaft jump sympathy crystal arcade dismiss eyebrow regular always

✓ 1 of 1 shares needed from group bike senior academic
Enter passphrase:
Repeat for confirmation:
SUCCESS!
Your master secret is: f59f4f309e88c5ce07f0880e004a7e4c
$ shamir recover -p
Enter a recovery share: critical husband academic academic anxiety river smirk alpha duke inmate eclipse military dough express detailed device focus deadline hearing hamster

✓ 1 of 1 shares needed from group critical husband academic
Enter passphrase:
Repeat for confirmation:
SUCCESS!
Your master secret is: 9b278255ca94e404aa43bbbc99f7754f

$ shamir create  -S be278d88c624adb9dd59a25ba063fec8 -x 1of1
Using master secret: be278d88c624adb9dd59a25ba063fec8
Group 1 of 1 - 1 of 1 shares required:
always describe academic academic cubic gravity segment priority nuclear liquid chemical merit numb easy class wits warmth species genre dominant
$ shamir create  -S be278d88c624adb9dd59a25ba063fec8 -x 1of1
Using master secret: be278d88c624adb9dd59a25ba063fec8
Group 1 of 1 - 1 of 1 shares required:
coding heat academic academic cubic gravity segment priority nuclear liquid chemical merit numb easy class wits warmth involve judicial worthy
$ shamir recover -p
Enter a recovery share: always describe academic academic cubic gravity segment priority nuclear liquid chemical merit numb easy class wits warmth species genre dominant

✓ 1 of 1 shares needed from group always describe academic
Enter passphrase:
Repeat for confirmation:
SUCCESS!
Your master secret is: 8183231e2bc294c20487be75cc1895ea
$ shamir recover -p
Enter a recovery share: coding heat academic academic cubic gravity segment priority nuclear liquid chemical merit numb easy class wits warmth involve judicial worthy

✓ 1 of 1 shares needed from group coding heat academic
Enter passphrase:
Repeat for confirmation:
SUCCESS!
Your master secret is: 8183231e2bc294c20487be75cc1895ea

One should always use --extendable. It has to do with the question of whether one wants to be able to create alternative backups of the same seed in the future.

Wasn't this possible even before the introduction of the ext bit? I understand the rationale at point 10 here, but I don't see why this wasn't achievable in the previous SLIP version without the ext flag. One alraedy could create a new backup with a different identifier.

One already could create a new backup with a different identifier, and now I still can create two backups with -X for the same master secret with different identifiers.

For the same master secret, yes, if the master secret is fixed.
I.e., if you start with a master secret that you encrypt by a passphrase (possibly empty) and split into shares, you can then regenerate that secret, encrypt it differently again with different passphrase, and recover it again.
The usage as a BIP32 wallet backup is different: here, the fixed value is the Encrypted Master Secret, and we consider any decryption with any passphrase to be valid.
IOW, for secret EMS and passphrase P0, result is wallet W0; for secret EMS and passphrase P1, result is wallet W1.
Without the ext bit, changing the identifier changes the decryption of the same EMS: passphrase P0 will give you wallet W3, passphrase P1 will give you W4.

generated 1of1 shares for a master secret, e.g. shamir create -S be278d88c624adb9dd59a25ba063fec8 -X 1of1
What I found is that shamir recover recovers the same master secret if I input two shares generated with -X. This does not happen when executing shamir recover -p inputting the same passphrase.
Instead, recovering using the same passphrase for two backups generated with -x returns the same secret.

Right, exactly.
Remember, passphrase is also the argument to shamir create. You are not specifying it, means empty passphrase is used.
Two invocations of shamir create -X <MS> (no passphrase) yield two different EMSs.
Two invocations of shamir create -x <MS> (no passphrase) yield the same EMS twice.

I see! So, simply put, you want the EMS to be fixed so that recovering from different backups (different ids) with the same passphrase will return the same wallet, e.g. decoy wallet and real wallet.


Proposer to propose multiple L2 blocks at once

#426 adds confirmations for processing L2 events. This will slow block assembly. We should be able to modify conditionalMakeBlock to create numberOfUnprocessedTransactions / TRANSACTIONS_PER_BLOCK blocks instead of just 1. This should allow us to build multiple blocks before having to process the events with their 12 confirmation wait in 0th queue.

Once the current proposer changes, the new current proposer can submit multiple blocks at once.

If there are not enough unprocessed transactions for more than 1 block: it is similar to proposing 1 block at a time -> for each L2 block proposal, it will have to wait for prior events in the queue to be processed with their 12 confirmation wait included.
If there are too many unprocessed transactions: an upper limit for maximum number of L2 blocks to propose is required such that the proposer does not lose gas on all the L2 blocks that did not make it to L1 when they were the current proposer. MAX_L2_BLOCKS_TO_PROPOSE = Number of L1 blocks a proposer gets * the number of L2 blocks can fit in each L1. This assumes that L1 blocks are completely filled with NF's L2 block proposed transactions, this might need to be corrected by a factor


HANGUL_CHARACTERS_BY_FIRST_INDEX, HANGUL_CHARACTERS_BY_MIDDLE_INDEX, HANGUL_CHARACTERS_BY_LAST_INDEX

          HANGUL_CHARACTERS_BY_FIRST_INDEX

HANGUL_CHARACTERS_BY_MIDDLE_INDEX
HANGUL_CHARACTERS_BY_LAST_INDEX
이것도 초,중,종으로 통일이 필요하지 않을까요?
Originally posted by @crucifyer in https://github.com/toss/es-hangul/issues/138#issuecomment-2227732099

제가 해당 PR을 맡았었는데, 추가적으로 작업하고 싶습니다 ! 👍


Private Repo not deploying

I have everything setup for a public repo but i cant deploy a private Repo even though the configured account on the server has access to the Repo.
pod-web-service-2 (err): Permission denied (publickey).
pod-web-service-2 (err): fatal: Could not read from remote repository.
pod-web-service-2 (err): Please make sure you have the correct access rights
pod-web-service-2 (err): and the repository exists.
pod-web-service-2 (err): error: Could not fetch origin

Do you have something in ~/.ssh/config like this?
Host github.com
  HostName github.com
  IdentityFile /root/.ssh/id_rsa_my_production_server_deploy_key
  IdentitiesOnly yes


[Extra Metadata Loader] Playnite Crash

Extension name
Extra Metadata Loader
Bug Description
Playnite crashes when viewing certain games.
I have a few games that do not have a video trailer available.  I disabled the "Enable video player" setting and went to the Extra Metadata directory for the game and there is no video file present.  This has happened on 3 games I have added today.
To Reproduce
Not entirely sure other than adding a game that has no video trailers available.
Logs
extensions.log
playnite.log
Screenshots
No response

Fixed in https://github.com/darklinkpower/PlayniteExtensionsCollection/commit/eba594e1bd302e572f07de1b43d94fa4465244ac


Add !important to .invisible (visibility:hidden) utility class

And once more, this is a utility class, so using !important makes sense; see

http://davidtheclark.com/on-utility-classes/
https://css-tricks.com/when-using-important-is-the-right-choice/

CC: @mdo for review

Approved by mdo via Slack conversation.


No longer seeing stdout from docker images via compose as of 1.1.0

It appears I'm no longer seeing logs from stdout/stderr logging from docker images running processes; I'm thinking it's akin to this configuration log line in the docker-compose job that was previous in 1.0.0, which was:
...
exec >>$LOG_DIR/compose.log 2>&1

That's a pure shot in the dark though, I'm sorry, I haven't looked too deep into it yet. Just wanted to log this first. With some time I'll do some further investigation. Thanks a lot for your time & attention 👌

Yeah, the problem is that compose is gone (as a job) and the post-start script does a compose -d; if you want logs you have to hit the docker daemon itself.


[Ingestion] Embed Data Stream Components add Data Stream Test

We need all of the components to live within the repo,
in case of catastrophic failure.
We also need tests that can assure the system is working.
Resolves: https://github.com/elastic/kibana-load-testing/issues/263

Passed in buildkite: https://buildkite.com/elastic/kibana-load-testing/builds/12

@dmlemeshko we can move this to a container later.  I gotta work on other stuff right now mate.


feat(directive): host listener using window:keydown

Hello,
I change the host listener to window, and it started to work just fine with Angular 9.
Cheers,
Andrej

Thanks!


Add Dark and Light Mode

I would like to add Dark And Light Mode to the Website, it will enhance its look.

Sure, go ahead!


Bug: application window does not appear

After installing via snap, I receive the following error
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module<EMAIL_ADDRESS>Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:360:19)
    at Module._findPath (node:internal/modules/cjs/loader:573:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:926:27)
    at n._resolveFilename (node:electron/js2c/browser_init:249:1105)
    at Module._load (node:internal/modules/cjs/loader:785:27)
    at c._load (node:electron/js2c/asar_bundle:5:13339)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/snap/bruno/2/resources/app.asar/node_modules/@usebruno/js/src/utils.js:2:17)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)

(bruno:104853): Gtk-WARNING **: 14:47:47.412: Theme parsing error: gtk.css:3536:25: 'font-feature-settings' is not a valid property name
Gtk-Message: 14:47:47.426: Failed to load module "colorreload-gtk-module"
Gtk-Message: 14:47:47.426: Failed to load module "window-decorations-gtk-module"

For context, I am using Pop OS with KDE desktop environment and bspwm window manager.
Happy to provide additional details to help with debugging.

I have the same issue when installing via snap. Gnome desktop (X11), Ubuntu 22.04.

The problem persists on latest snap 0.25.0, under Ubuntu 22.04
bruno              0.25.0                      3      latest/stable    helloanoop     -

A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module<EMAIL_ADDRESS>Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:360:19)
    at Module._findPath (node:internal/modules/cjs/loader:573:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:926:27)
    at n._resolveFilename (node:electron/js2c/browser_init:249:1105)
    at Module._load (node:internal/modules/cjs/loader:785:27)
    at c._load (node:electron/js2c/asar_bundle:5:13339)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/snap/bruno/3/resources/app.asar/node_modules/@usebruno/js/src/utils.js:2:17)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)

(bruno:26639): Gtk-WARNING **: 14:39:36.940: Theme parsing error: gtk.css:3536:25: 'font-feature-settings' is not a valid property name
Gtk-Message: 14:39:36.958: Failed to load module "colorreload-gtk-module"
Gtk-Message: 14:39:36.958: Failed to load module "window-decorations-gtk-module"
/usr/share/libdrm/amdgpu.ids: No such file or directory

I attempted to build from source as well as run from source in dev mode and received an identical error.

I have the same issue when installing via snap. Gnome desktop (X11), Ubuntu 22.04.

I second that, bruno does not start when installed via snap.
Installing it via http://debian.usebruno.com bruno/stable (apt) works fine tho, see the "Apt" section below if you are in dire need to make it work:
https://www.usebruno.com/downloads


Add default value for YesNo

YesNo, as it is, is generated as two empty radio buttons. It would be nice to be able to select a default value, to streamline the UX, or at least push  helping nudge users down the right pathways.

Hi @jierdin, thank you for placing this back on our radar; we agree with you - we would like to include it in the language. Not sure when this work will kick-off.
cc: @craigwblake @adridadou

now that we have the constants true/false, it should be pretty easy to do

it is done in our dev env. It will be released soon!


Workspace edits with metadata do not show labels that docs say are rendered prominently

In WorkspaceEditEntryMetadata, the label field says this:
/**
 * A human-readable string which is rendered prominent.
 */
label: string;

In LSP, it's slightly expanded:
	/**
	 * A human-readable string describing the actual change. The string
	 * is rendered prominent in the user interface.
	 */
	label: string;

This makes it seem like these labels will be visible in the UI by default. Yet if you run:
const doc = await vs.workspace.openTextDocument(vs.Uri.parse("untitled:foo.txt"));
const editor = await vs.window.showTextDocument(doc);
const edit = new vs.WorkspaceEdit();
edit.insert(doc.uri, new vs.Position(0, 0), "test1", { label: "This is my label", needsConfirmation: true });
edit.insert(doc.uri, new vs.Position(0, 0), "test2", { label: "This is my label2", needsConfirmation: true });
vs.workspace.applyEdit(edit, { isRefactoring: false });

It is rendered like this without the labels:

You have to right-click and tick "Group change by type" to see the labels:

I think it would be better if the items were grouped by default (since the server went to lengths to provide the labels, which are not optional if they want to prompt for confirmation), but if not I think the API comments could be a little clearer (or even the label made optional).

@jrieken any thoughts on adding a flag to WorkspaceEditMetadata to allow the server/extension to control the default here?
interface WorkspaceEditEntryMetadata {
  // ...

  // Signal to the editor that changes with the same metadata should be presented grouped by default.
  groupChanges?: boolean;
}

I'm trying to build on this but the flag list of changes isn't a great user experience (nor is having everything unticked by default, so I'd also be interested in a way to control that).
I could try sending a PR if we could agree on the right solution (and potentially get some pointers). Thanks!


Error Container-init binary not found on the host

When using the --init flag on podman run I get the following error.
Error: container-init binary not found on the host: stat /usr/libexec/podman/catatonit: no such file or directory
It looks like your repo installs catatonit into /usr/bin/catatonit rather than the expected /usr/libexec/podman/catatonit.

Debian sid install as /usr/bin/catatonit: https://debian.pkgs.org/sid/debian-main-amd64/catatonit_0.1.7-1_amd64.deb.html
openSUSE Tumbleweed as install as /usr/bin/catatonit: https://opensuse.pkgs.org/tumbleweed/opensuse-oss-x86_64/catatonit-0.1.7-1.4.x86_64.rpm.html
Only Fedora Rawhide install as /usr/libexec/podman/catatonit: https://fedora.pkgs.org/rawhide/fedora-x86_64/catatonit-0.1.7-7.fc37.x86_64.rpm.html
Personally my Docker image packaging will depends on my Ansible Role for catatonit and gosu, which normally expect it could find from PATH, which is also /usr/bin/catatonit
IMHO we should update our containers-common deb/rpm packaging, so set the default as /usr/bin/catatonit accordingly, see https://github.com/containers/common/blob/main/pkg/config/containers.conf#L149
Any idea?

I temporarily fix this by hard code the path for our package: https://github.com/alvistack/containers-common/commit/4629dfac44a9f5accbdbabe42ae6bab6342368e4#diff-f38944fdd6507cc37badbde5c66785bdebb77bd6fa2ea0674cd8117f89e95676R152
Reinstall the newly build containers-common could fix the problem.

I get the following errors when trying to update:
Get:65 http://download.opensuse.org/repositories/home:/alvistack/Debian_11  containernetworking 100:1.1.2-1 [1,089 kB]
Err:65 http://download.opensuse.org/repositories/home:/alvistack/Debian_11  containernetworking 100:1.1.2-1
  File has unexpected size (1062836 != 1089332). Mirror sync in progress? [IP: <IP_ADDRESS> 80]
  Hashes of expected file:
   - SHA256:e63073beafbf96af70c8a35d68468a5c2278615e95b095fb59babfdba550e7bb
   - SHA1:2fc2a946da71ca56e3a043f1c678c0d784a51d14 [weak]
   - MD5Sum:add9a16e7ea61037765b72b75bceb52b [weak]
   - Filesize:1089332 [weak]
Get:66 http://download.opensuse.org/repositories/home:/alvistack/Debian_11  containernetworking-plugins 100:1.1.1-1 [7,330 kB]
Err:66 http://download.opensuse.org/repositories/home:/alvistack/Debian_11  containernetworking-plugins 100:1.1.1-1
  File has unexpected size (7128344 != 7329992). Mirror sync in progress? [IP: <IP_ADDRESS> 80]
  Hashes of expected file:
   - SHA256:c6bd58ce735fc64482af27aca1e4600ddfa152b758b09dd4231a21ea04f36e99
   - SHA1:26f0f3ab81928af94061d376d21f3a7fb5433fdb [weak]
   - MD5Sum:2af66aca391ca0469c9fa49f8a104b4f [weak]
   - Filesize:7329992 [weak]
E: Failed to fetch http://provo-mirror.opensuse.org/repositories/home:/alvistack/Debian_11/all/vim-common_8.2.5069-1_all.deb  File has unexpected size (71596 != 72100). Mirror sync in progress? [IP: <IP_ADDRESS> 80]
   Hashes of expected file:
    - SHA256:be6cefffe402995ff7d049a46988e8b8c5875760c56d4ee89cbc0437c3f21721
    - SHA1:55f2ecb04bd475179030078a68107c5ba58ce81e [weak]
    - MD5Sum:59db4c2ae354d58469081f401d95aaab [weak]
    - Filesize:72100 [weak]
E: Failed to fetch http://provo-mirror.opensuse.org/repositories/home:/alvistack/Debian_11/amd64/containernetworking_1.1.2-1_amd64.deb  File has unexpected size (1062836 != 1089332). Mirror sync in progress? [IP: <IP_ADDRESS> 80]
   Hashes of expected file:
    - SHA256:e63073beafbf96af70c8a35d68468a5c2278615e95b095fb59babfdba550e7bb
    - SHA1:2fc2a946da71ca56e3a043f1c678c0d784a51d14 [weak]
    - MD5Sum:add9a16e7ea61037765b72b75bceb52b [weak]
    - Filesize:1089332 [weak]
E: Failed to fetch http://provo-mirror.opensuse.org/repositories/home:/alvistack/Debian_11/amd64/containernetworking-plugins_1.1.1-1_amd64.deb  File has unexpected size (7128344 != 7329992). Mirror sync in progress? [IP: <IP_ADDRESS> 80]
   Hashes of expected file:
    - SHA256:c6bd58ce735fc64482af27aca1e4600ddfa152b758b09dd4231a21ea04f36e99
    - SHA1:26f0f3ab81928af94061d376d21f3a7fb5433fdb [weak]
    - MD5Sum:2af66aca391ca0469c9fa49f8a104b4f [weak]
    - Filesize:7329992 [weak]

I get the following errors when trying to update:

Because OBS repo getting update when new packages comes, you could check the status from https://build.opensuse.org/project/show/home:alvistack

Yup, I was able to update now, I updated my Ansible Podman role to reference this URL for the repo as well.
Seems to be working.


Custom DatePicker Library used with X-Editable?

Has anyone been able to use a custom Date Picker library (any of the available open source ones besides jQueryUI and Bootstrap)?

yes @jasondavis, ii used it with KendoUI, just had to write proper x-editable plugins and works like a charm:
KendoDateTimePicker:
https://gist.github.com/mihael/c90202b6663f379e4e63
KendoDatePicker:
https://gist.github.com/mihael/07c74157c8bec88fa861

@mihael Thanks for the response and code examples!  I am building a fairly advanced Project Management app in which every "Task" for a Project will be opened in the same HTML DOM window.
So each time a new Task is opened, it is using the HTML in the DOM to re-use the Modal window.  So each time a Task is closed and a new one opened, I have to kill all my x-editable fields and then re-assign/build them with new data.
It's turning out pretty good so far but some of this stuff is tricky for me so this should help me a lot, thanks again for sharing!


Getting a list of unused styles, or invert the output?

Howdy - I was wondering if there was an option to get a list of unused styles, essentially the inverse of what uncss currently creates.  I'm trying to clean out a lot of old styles in our code, and it's pretty tedious to verify each one is not coming out in the results from uncss.
Thanks!

This should do what you want:
uncss(
[files],
{
report: true,
...
},
function (err, output, report) {
var all = report['selectors']['all'];
var used = report['selectors']['used'];
// var unused = all - used; (using some set subtraction, don't recall how to do this in js offhand)
}
);

Great, thanks for the response and the nifty module!

var all = report['selectors']['all'];
var used = report['selectors']['used'];
var unused = all.length - used.length;

@mikelambert Any reason to keep this open?

can you please tell me how to run this through grunt


How to use precompiled libsnopt.so in dairlib ?

I would like to use snopt. I have got a student version license of it and lib files( .so, .a ).
However, the way dairlib provides to set the path for snopt in the README.md is
export SNOPT_PATH=/snopt7.6.tar.gz .
How to use snopt in dairlib in case of having snopt7.lic, libsnopt7_cpp.a, and libsnopt7_cpp.so files ? Or could you update the Complete Build Instructions in README.md ?

Great question--unfortunately, I'm not sure whether or not the student version is compatible. We are mimicking Drake's use of snopt. From a quick search over there, it looks as if this may not be possible: https://github.com/RobotLocomotion/drake/issues/8836
For what it's worth, SNOPT is not strictly required. While we use it for our trajectory optimization, it would be fairly easy to remove all SNOPT-specific calls and instead use something open source, like IPOPT.

Thank you so much for your guide.


space and colon

Hey can your model able to detect space and colon or if not how can i make it possible.

Why you need to detect space? I think it has no meaning in this task. For colon, you can refer to small_satrn.

space because sometimes i am getting roi of word with one char like word w .
so when i run your model it will give me wordw so how can i make this correct.

Sorry, I don't understand what you mean. Please give me some examples using image.

you can see highlighted part in image.
so like i am getting image INSURER A:
and model predict insurera

small_satrn by this you mean i have to train new model with sensitive is equal to true.
your u have case sensitive model so i can change parameter and it will work.

I think space is a pseudo-proposition in this task. How do you define space in a image? For example, if you resize a image to a bigger size, how many spaces it will have？

ok i don't have a whole idea but you can refer this https://github.com/clovaai/deep-text-recognition-benchmark/issues/97
also https://github.com/zzzDavid/ICDAR-2019-SROIE/tree/master/task2 in this they are saying "We add the blank space between words to the alphabet for LSTM prediction and thus improve the network from single word recognition to multiple words recognition" so i think it can be done.

If it possible, you can add it to the character set.

small_satrn by this you mean i have to train new model with sensitive is equal to true.
your u have case sensitive model so i can change parameter and it will work.

what about this?

This model is trained without space. If you want to recognize space, you have to train or finetune the model.

@ChaseMonsterAway I tried adding space in the character set and changed it in following way
('--character',  default='0123456789,.:(%$!^&-/);<~|`>?+=_[]{}"'@#*ABCDEFGHIJKLMNOPQRSTUVWXYZ\ ')
but still the code id not considering the space.

@Aishwarya-0606 Can you make sure that the way you add space is right? Could you please show me you config file？

@ChaseMonsterAway there is no config file as such. I have put the required character list and space in train.py file.
I have specified the space at the end with prefix symbol \ .
train.txt
parser.add_argument('--character', type=str,
default='0123456789,.:(%$!^&-/);<~|`>?+=_[]{}"'@#ABCDEFGHIJKLMNOPQRSTUVWXYZ*** ',
help='character label')

@Aishwarya-0606
The code you used is deep-text-recognition-benchmark, not vedastr. And what is dataset you used? I'm not sure the meaning 'not considering the space', encoding step? or performance not changed? And here is the encoding result by vedastr:

The space is encoded succesfully.

@ChaseMonsterAway thanks for the quick reply.
I am using ICDAR 2019 SROIE dataset.
By 'not considering the space' - I mean encoding step.
I have given 51,000 images for training but training is happening on 26,000 images only as the code is filtering the images containing spaces.

I'm not sure what is the reason. You should check the filter step in dataset of their repo. It has no relation with encoding, they filter the samples in dataset phase.
By the way, you can try our repo, i have tested that the space will encoded.

@Aishwarya-0606 Have you enlarge the batch_max_length?

@Aishwarya-0606 You should check the character. I think it has some problem.

@Aishwarya-0606 You should check the character. I think it has some problem.

Try to seperate the brackets as follows:

][}{

@Aishwarya-0606 Have you enlarged the batch_max_length?

Yes I have enlarged batch_max_length to 75, according to my dataset.

I'm not sure what is the reason. You should check the filter step in dataset of their repo. It has no relation with encoding, they filter the samples in dataset phase.
By the way, you can try our repo, i have tested that the space will encoded.

@ChaseMonsterAway I will try implementing this using your repo. Thanks :)

@Aishwarya-0606 You should check the character. I think it has some problem.

@ChaseMonsterAway All the characters(including brackets) are getting trained. I am getting the below Trainable parameter list, but space is not included in this list.
character:<PHONE_NUMBER>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[]^_`{|}~
sensitive: True

@Aishwarya-0606 Have you enlarged the batch_max_length?

Yes I have enlarged batch_max_length to 75, according to my dataset.

Including space? Then it will not filter by length, right? And i checked your character, it does no effect. For me,
import re
character = '0123456789,.:(%$!^&-/);<~|`>?+=_[]{}"\'@#*ABCDEFGHIJKLMNOPQRSTUVWXYZ\ '
re.search(f'[^{character}]', ' 我') # has no output, this is caused by bracket in character '[]'
# change the character as follows
character = '0123456789,.:(%$!^&-/);<~`>?+=_[\\]{|}"\'@#*ABCDEFGHIJKLMNOPQRSTUVWXYZ\ '
re.search(f'[^{character}]', ' 我') # the output is 我

@Aishwarya-0606 Have you enlarged the batch_max_length?

Yes I have enlarged batch_max_length to 75, according to my dataset.

Including space? Then it will not filter by length, right? And i checked your character, it does no effect. For me,
import re
character = '0123456789,.:(%$!^&-/);<~|`>?+=_[]{}"\'@#*ABCDEFGHIJKLMNOPQRSTUVWXYZ\ '
re.search(f'[^{character}]', ' 我') # has no output, this is caused by bracket in character '[]', you should check the grammar of regex.
# change the character as follows
character = '0123456789,.:(%$!^&-/);<~`>?+=_[\\]{|}"\'@#*ABCDEFGHIJKLMNOPQRSTUVWXYZ\ '
re.search(f'[^{character}]', ' 我') # the output is 我

Yes, it will not filter by length.
And also, I changed the character list as suggested by you.
But still the model is not getting trained for space.

@Aishwarya-0606
I mean it will have no effect, which means it will not filter samples.  You can debug the dataset with a few samples.

@ChaseMonsterAway I tried debugging the dataset. It is filtering all the images having spaces.

@Aishwarya-0606 Where's the code segment?

log_dataset.txt
@ChaseMonsterAway for debugging I took 10 images for training out of which 4 images have spaces. So for training it filtered out those 4 images and considered only 6 images. PFA the log file.

@Aishwarya-0606
I mean which code filter these samples, have you find it?

@Aishwarya-0606
I mean which code filter these samples, have you find it?
@ChaseMonsterAway No, I am still looking for this code segment.

@Aishwarya-0606
I mean which code filter these samples, have you find it?

@ChaseMonsterAway Now I am able to train my model on the entire dataset having spaces, (i.e. on all 51,000 images).
But the issue now is with the label, code is removing the spaces in the label (eg: 'the label' ----is changed to----> 'thelabel').
I tried debugging the code. Label in getting changed in dataset.py file.
85        for i, data_loader_iter in enumerate(self.dataloader_iter_list):
86            try:
87                image, text = data_loader_iter.next()
88                print(text)
89                balanced_batch_images.append(image)
90                balanced_batch_texts += text
CASHCHANGE (it should be - cash change)
TOTALINCLUSIVEGST (it should be - total inclusive gst)

@Aishwarya-0606
I mean which code filter these samples, have you find it?

@ChaseMonsterAway Now I am able to train my model on the entire dataset having spaces, (i.e. on all 51,000 images).
But the issue now is with the label, code is removing the spaces in the label (eg: 'the label' ----is changed to----> 'thelabel').
I tried debugging the code. Label in getting changed in dataset.py file.
85        for i, data_loader_iter in enumerate(self.dataloader_iter_list):
86            try:
87                image, text = data_loader_iter.next()
88                print(text)
89                balanced_batch_images.append(image)
90                balanced_batch_texts += text
CASHCHANGE (it should be - cash change)
TOTALINCLUSIVEGST (it should be - total inclusive gst)

@Aishwarya-0606
I mean which code filter these samples, have you find it?

@ChaseMonsterAway Now I am able to train my model on the entire dataset having spaces also (i.e. on all 51,000 images).
But the issue now is with the label, the spaces in the label is being removed (eg: 'the label' ----is changed to----> 'thelabel').
I tried debugging the code. Label in getting changed in dataset.py file.
85        for i, data_loader_iter in enumerate(self.dataloader_iter_list):
86            try:
87                image, text = data_loader_iter.next()
88                print(text)
89                balanced_batch_images.append(image)
90                balanced_batch_texts += text
CASHCHANGE (it should be - cash change)
TOTALINCLUSIVEGST (it should be - total inclusive gst)

@aish0606 did you solved this issue? Could you please share your solution?


Dart Inject vs Injector

Google's Inject repo has been archived.
It's been in preview for the past 3 years and there is no active support or bug fixing.
Looking at alternatives, I have come across Injector.
Any thought on that?

Hello @gc-robotics, I saw the same thing on google's repo. It should be replaced by a better one. Can you please update all the dependencies to the latest version with solving that issue by replacing inject.dart with the best one?
Then please fork the repository for your account and upload all the updates. It will be a very helpful thought. I'm so new that I cannot figure out what's going on in this project.

Hi,
Currently, we have been in a process of migrating inject to flutter 2.0 to make it work with our boilerplate. We will also push a new branch with an alternative DI.
Thanks.

Hi @zubairehman ,
Could you please share the url to the inject-related work as the Google one has been archived.
Could you also share what's the progress status at the moment?
Thanks,
GC

Hi @zubairehman ,
I have spotted this repo: https://github.com/zubairehman/inject.dart/tree/develop
Checked also the original/forked one. It seems that the ugrade to 2 has been completed.
Am I wrong? have you tried it?
Thanks.

Hi @all,
I have updated the DI library for this boilerplate template, please go through feature/null-safety branch for more details. Feel free to reach out to me if you find any issues.
Note: I will merge the changes into master as soon as I am done testing and implementing other features.
Thanks.


Teleop marker

This tool is based on the teleop tool in the executive package, but uses an rviz interactive marker instead of CLI. It currently supports (un)docking, movements, and stopping. All commands are preempted by new commands.

@rsoussan Thanks for the feedback! I think we're ready for another check.

@rsoussan Thanks for the feedback! I think we're ready for another check.

Nice work, left some more small comments but you can merge when they're addressed if you agree with them

@marinagmoreira or @bcoltin Good to merge when you are ready!


lostPeers that don't come back

On occasion, rarely, we see lose a peer and it doesn't come back, despite knowing the other side is definitely still advertising. Look into workarounds.

Resolution is likely to restart advertising periodically.. suggest after 30 seconds of not seeing any invites.

Fixes for this and https://github.com/thaliproject/Thali_CordovaPlugin/issues/262 are in PR 272.


unit testing can use very small dataset but test identity of results

The point of unit test is not to check that the estimation algorithms provide reasonable outputs for reasonable inputs, but to check that when rail calls any of them with a specific input, the result is identical or close (in case of numerical uncertainties) to an expected output

@sschmidt23 I think we are there, so closing. Feel free to reopen if I missed smthg.


Appstudio update test-component-pac-ymeq

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-ymeq-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
29 seconds
clone-repository

✅ Succeeded
36 seconds
build-container

✅ Succeeded
25 seconds
deprecated-base-image-check

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
59 seconds
inspect-image

✅ Succeeded
21 seconds
sbom-json-check

✅ Succeeded
6 seconds
label-check

✅ Succeeded
1 minute
optional-label-check

✅ Succeeded
14 seconds
show-summary

✅ Succeeded
9 seconds
show-sbom

Pipelines as Code CI/test-component-pac-ymeq-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
29 seconds
clone-repository

✅ Succeeded
36 seconds
build-container

✅ Succeeded
59 seconds
inspect-image

✅ Succeeded
25 seconds
deprecated-base-image-check

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
21 seconds
sbom-json-check

✅ Succeeded
1 minute
optional-label-check

✅ Succeeded
6 seconds
label-check

✅ Succeeded
9 seconds
show-sbom

✅ Succeeded
14 seconds
show-summary

Pipelines as Code CI/test-component-pac-ymeq-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
12 seconds
clone-repository

✅ Succeeded
36 seconds
build-container

✅ Succeeded
10 seconds
clair-scan

✅ Succeeded
10 seconds
deprecated-base-image-check

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
12 seconds
inspect-image

✅ Succeeded
24 seconds
sbom-json-check

✅ Succeeded
35 seconds
optional-label-check

✅ Succeeded
15 seconds
label-check

✅ Succeeded
6 seconds
show-sbom

✅ Succeeded
6 seconds
show-summary

Pipelines as Code CI/test-component-pac-ymeq-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
12 seconds
clone-repository

✅ Succeeded
36 seconds
build-container

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
12 seconds
inspect-image

✅ Succeeded
10 seconds
deprecated-base-image-check

✅ Succeeded
10 seconds
clair-scan

✅ Succeeded
24 seconds
sbom-json-check

✅ Succeeded
35 seconds
optional-label-check

✅ Succeeded
15 seconds
label-check

✅ Succeeded
6 seconds
show-summary

✅ Succeeded
6 seconds
show-sbom


change name of cpp client to 'aktualizr'

+1, the patch looks good to me.
Best regards,
Leon

Review score: 11/11


Use !isFile() instead of !(state.file instanceof Blob) when det…

…ermining if a file has loaded, since in my testing, Edge is presenting a File object at this stage, rather than the Blob that Chrome etc are presenting (fixes #507).

If createFileProcessorFunction is presented with a file object that is not of type Blob (such as File, as seen in Edge browser), it attempts to iterate over it using forEach as if it were an iterable object, however File objects do not have a forEach method. Resolve this by treating all file object input into this function as though they are a singular, non-iterable object (fixes #507).

Fix comment typo.

I've npm run test with no change on test success rate (100% before and after these changes.)


[crypto] Speed up multiplication and squaring mod 2^255 - 19.

This change speeds up Ed25519 and X25519 by about 30%. The core algorithm is the same, but by using OTBN's particular interface slightly more cleverly and combining the multiply with the reduce, we can save quite a few instructions, ending up with only 24 instructions per multiply and 22 per square.
I proved both the multiply and square algorithms correct in Coq here against a simplified OTBN model, just for my peace of mind:
https://gist.github.com/jadephilipoom/41bb78778ddffdcd3f9e17ae5be26c73

Thanks to @cryptojedi for showing me this technique on a whiteboard almost a year ago! :grinning:


Installation problem

Hi! I am new to linux and using ubuntu 14.04. Can you please explain how to set path on point number 7 of installation instructions.
I have tried adding to bashrc and bashrc_profile, but in both the cases, it gives the same error:
"FAILED!
/home/vivek/.vimpkg/bin not found in PATH
Please ensure that /home/vivek/.vimpkg/bin is in your PATH"

Depending on your particular setup, each shell has a slightly different way of setting up user preferences. In Ubuntu, default shell is likely bash.  You can confirm this by running echo $SHELL in a terminal window (you can open terminal with ctrl + alt + t). You should see something like /bin/bash.
If that's the case, run the following to edit your bash config file (.bashrc):  gedit ~/.bashrc (or other editor of your choice).  Scroll to the bottom of the file and add the following:  export PATH=$PATH:/home/<YOUR_USERNAME>/.vimpkg/bin (be sure to use your actual user name here).  Close and re-open terminal.
To verify that it's worked, run echo $PATH.  You should see /home/<YOUR_USERNAME>/.vimpkg/bin in the output.
Let me know that does it for you :-)

Yeah, it worked. Thank you!

Awesome! Let me know if you have any other troubles. I won't close this ticket until you're up and running.

Any updates? Is apt-vim up and running for you? If so, I'll close the issue.

It's running fine. Thank you.

Great :)


Add comprehensive .form-control example(/testcase) to docs

Put all the textual input types right next to each other for easy visual comparison.
Basically adds a testcase for #17308, #18763.
CC: @patrickhlauke @mdo

:+1:


Headings have huge content areas, covering up interactive areas above them

This is not a feature request.
Steps to Reproduce
Edit: This seems to not be reproducible on Chrome/Chromium. Not sure what others, but is reproducible on Firefox.

Navigate to https://webpack.js.org/plugins/terser-webpack-plugin/#options
Scroll to the bottom of the options table
Try to scroll the options table horizontally
Notice you cannot do it, because the next heading covers it.

Additional information
This seems to be site-wide, though the issue only pops up here and there.
[] I am willing to work on this issue and submit a pull request.

Unfortunately this is a workaround for the fixed navbar, otherwise when we click the header or access the header anchor, the header would be hidden under the fixed navbar.

Ah, gotcha! Yep, that makes sense. However, portions of the site are unusable at the moment (usually with horizontal scrolls, so tables like this, code snippets, etc), so if there's no cross-browser solution, a different navbar setup might be needed?
React's documentation also having poor UX doesn't really help things here.

I can confirm React doc has the same problem under firefox:

You can try to select the text from right to left, firefox won't let you do it while other browsers like Edge has no problem.
There're two options here:

use scroll-margin-top, however we can run into another problem under Safari
Do not use fixed header.

But I did notice that there's no problem on nextjs https://nextjs.org/docs/basic-features/font-optimization#usage. I'll see how to make it.

@rschristian Hi, can you check https://webpack-js-org-git-fork-chenxsan-bugfix-fix-467aee-webpack-docs.vercel.app/plugins/terser-webpack-plugin/#test? I've filed a pull request to workaround the problem. Will merge it once I clean up the code.


Implement Speed Detection

This is nearly ready to go to be merged.
Adds in a lot of fixes to "everything" and adds in a speed detection to kick off testing for future features such as the punishment system. This should make the project in a state where people can start making their own detections.

So much excitement.

Close this elderly PR.

👵⭕👴


Expose onNext() and onBackClicked() as public APIs

Make sure these boxes are checked before submitting your issue - thank you!

[ Done ] Check in the issue tracker whether
this issue wasn't already reported.
[ ] Feature requests contain a description of the feature
you're requesting as well as a brief scenario explaining
under what circumstances this might be useful.

Thank you for such a beautiful library. It's very flexible but I was caught up in an issue which I thought would be a common use case. But it seems, to the best of my findings on internet, no one came across it.
I have a requirement in which I have to take the user to previous step on back click (Android system back button). I have gone through the docs and also the code and I cannot figure out how to implement it.
I can see that onNext and onBackClicked are private methods.
What if I want to invoke these methods on some custom events?
With latest version of library, is it possible to do so?
Also, I don't have back button in my wireframe and the next button takes the full width at the bottom styled in line with my app theme. I was able to achieve that partially by hiding back button and providing the next button app theme using attributes provided in the doc. But still it doesn't fit perfectly. For instance, the text on the button is not at the vertical centre of the button (and I have tried applying the textAlignment and other properties to the button but it doesn't seem to work).
I was hoping Next and Back might be more open to client specific styling.
I am not sure, but can this be enhancement?

Hi, any updates on this? Or work arounds?

Regarding your first comment, StepperLayout.onBackClicked() is public.


Fix task_management_detail sporadic failure

(moving out of https://github.com/ansible/ansible-hub-ui/pull/1863)
Task detail "before all" hook for "contains correct headers and field names.":
CypressError: Timed out retrying after 5000ms: `cy.wait()` timed out waiting `5000ms` for the 1st request to the route: `remotes`. No request ever occurred.

I think this might fix it :)

(backporting first, to backport https://github.com/ansible/ansible-hub-ui/pull/1990 as well)


Fix CNF issue in JDK9

Purpose
This commit resolves throwing CNF exception for org.omg.PortableServer.ThreadPolicyOperations.
In JDK9 onwards this package is exposed through the dynamic package of java.corba.
This commit resolves https://github.com/ballerina-platform/ballerina-lang/issues/9184

:white_check_mark: Build ballerina-lang 150 completed (commit https://github.com/ballerina-platform/ballerina-lang/commit/80e8e6861d by @rasika)


Shutdown Button in UI

To shutdown the pi gracefully one should be able to trigger that from ui. So solution would be to implement that.

864c5d72ae093c685b88c80dcada9e1150088ae3 will introduce a shutdown button


dragonfly-reverb: 0.9.4 -> 1.0.0

Motivation for this change
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Changelogs: https://github.com/michaelwillis/dragonfly-reverb/releases

@GrahamcOfBorg build dragonfly-reverb

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: dragonfly-reverb
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: dragonfly-reverb
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: dragonfly-reverb
Partial log (click to expand)
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/21rv5dgb32s0ljjhcj8cip89jh5v6r9y-dragonfly-reverb-1.0.0
shrinking /nix/store/21rv5dgb32s0ljjhcj8cip89jh5v6r9y-dragonfly-reverb-1.0.0/lib/lv2/DragonflyReverb.lv2/DragonflyReverb_dsp.so
shrinking /nix/store/21rv5dgb32s0ljjhcj8cip89jh5v6r9y-dragonfly-reverb-1.0.0/lib/lv2/DragonflyReverb.lv2/DragonflyReverb_ui.so
strip is /nix/store/n4hb93w6j076xcjw5pm09rdmc09s075b-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/21rv5dgb32s0ljjhcj8cip89jh5v6r9y-dragonfly-reverb-1.0.0/lib
patching script interpreter paths in /nix/store/21rv5dgb32s0ljjhcj8cip89jh5v6r9y-dragonfly-reverb-1.0.0
checking for references to /build in /nix/store/21rv5dgb32s0ljjhcj8cip89jh5v6r9y-dragonfly-reverb-1.0.0...
/nix/store/21rv5dgb32s0ljjhcj8cip89jh5v6r9y-dragonfly-reverb-1.0.0


[Perf] Regression in Storage Blob Download 10KB

There appears to be a 5% regression in Storage Blob Download 10KB between 12.15.0 and 12.16.0.  Results:

azure-storage-blob
Ops/Sec

12.15.0
15,140

12.16.0
14,006

12.17.0-beta.1
13,967

main
14,283

Results are from this run.  Search for OperationsPerSecondMax.
https://dev.azure.com/azure-sdk/fadad8ea-1e34-4d7a-9016-fd29b14e8b94/_apis/build/builds/1567496/logs/21

Also seeing this regression in storage-file-share:

azure-storage-blob
Ops/Sec

12.12.0
12,256

12.2.2
11,638

12.13.0-beta.1
11,780

main
11,711

https://dev.azure.com/azure-sdk/playground/_build/results?buildId=1587038&view=results

Verified fixed:

Blob: https://dev.azure.com/azure-sdk/playground/_build/results?buildId=1604041&view=results
DataLake: https://dev.azure.com/azure-sdk/playground/_build/results?buildId=1604054&view=results
FileShare: https://dev.azure.com/azure-sdk/playground/_build/results?buildId=1604055&view=results


Interoperability with python's keyboard library

Hi there!
Just wondering what it would take for this to work with python's keyboard library?
I want to be able to send keystrokes via the library and have keycastr display them. But what is actually happening is that the library is sending the keystrokes correctly but keycaster is displaying just an a for every keystroke, regardless of what I type. Is this something on the libraries side or on keycastr's side?

Thanks for opening an issue. I would expect this to be supported if the events generated by this library are like any others passed to keycastr in its event tap. It could also be something on keycastr's side, if we're not observing enough input event types in the event tap (see KCKeyboardTap.m)
Do you have a simple example you could share which demonstrates the issue? Pull requests are also welcome if you happen to figure out what adjustments are needed.

Assuming this is a problem with the events generated by the library you mentioned. Please reopen and/or share any interesting learnings.


Development fork - move Bake and related features into a new plugin

Figured I should drop a PR just to make it easier to look over before I properly merge it.
This moves the following features into a new plugin available at https://github.com/feilen/tuxedo-blender-plugin:

Bake
Smart Decimation
Twistbone generation
Second Life/Gmod bone translation
Optimize Static Shapekeys
Fit Clothes
Repair Broken Shapekeys

It also enables unit testing via Github Actions! It'll automatically grab blender(s) 2.93 - 3.4 as well as whatever's the latest 'stable' on Ubuntu Snap and install them, running the tests over each version (both when new code is added and once a week, in case a new blender quietly drops that breaks things).

Apologies for the test runs, there's some rare situations where Blender will segfault in headless mode when it wouldn't in the UI. Annoying but doesn't affect users


[5.3] Added weak date validation

Fixed according to feedback from #16342

Closing this PR for an implementation by @themsaid

@taylorotwell Can you give a reference (link) to where it has been implemented?

No worries, found it https://github.com/laravel/framework/pull/16490/files


Disable compression if Kafka is configured to compress log segments

What is currently missing?
Currently with this plugin, compression is forcefully enabled even if it doesn't make sense in certain cases
How could this be improved?
The plugin should detect if Kafka has compression enabled for a specific topic and if so not to compress within the plugin. This can also help deal with the current ongoing issue in fetching specific byte ranges (see https://github.com/aiven/tiered-storage-for-apache-kafka/issues/127)
Is this a feature you would work on yourself?

[ ] I plan to open a pull request for this feature

Implemented by #230


[idea] bring back show for commit

/projects/project_name/commits/commit_sha
Scenario: I got an answer comment in a commit and want to accept/pass/reject it in the app, but I can't find it in the commits list.
Solution: I could just paste commit sha and find the commit that way.

makes sense


Is there any type of this library for iOS?

Markwon version: {REQUIRED}

Please specify expected/actual behavior
Please specify conditions/steps to reproduce (layout, code, markdown used, etc)

Hello @Chomroeun ,
I'm pretty sure there are plenty iOS libraries of this type available. You need to be more specific if you are looking for an actual answer

Thanks @noties for reply!
Yes it has many libraries on iOS but most of them is WebView base and also did not support Latex plugin

Hello @Chomroeun ,
there are multiple iOS libraries that render markdown as NSAttributedString (similar to spans on Android). But I'm not aware of one that supports LaTeX. Maybe someone else here can recommend you a way to go.
By the way, have you already tried WebView based library on iOS? In my experience WebView works much better on iOS, and overall performance is much better than on Android


Manual clustering info

Hi, I am trying to create the clustered regions manually because I have a bed file with predefined regions but I also want to use your R script to find DMRs. My only question is: How do I manually calculate the "CpG" field of the combined regions?
Thanks

Thanks for the question.  To manually calculate the CpG field, you would need to query the genome sequence for CG dinucleotides in the regions of interest.  But, if you are not actually interested in using this field for downstream purposes, you could probably get away with just setting a large value for the field (say, 10) and not using the -c parameter of findDMRs.r.

Thank you very much for your help :)


⚠ Bofrost.lu has degraded performance

In 56efcf5, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1903 ms

Resolved: Bofrost.lu performance has improved in 66a30bc after 17 minutes.


Consul release name check

What this PR does / why we need it:
When releasing these charts, service name will be prefixed with the release name, resulting in name-name. This also impacts DNS resolutions.
Special notes for your reviewer:
From my research, looks like the default chart template was changed (i.e., when running helm create locally), this function was just not added here

/assign @mattfarina

@mattfarina ok to move forward with testing?

/assign @unguiculus

Can do @unguiculus

@unguiculus to confirm, your request is for updating the resource (ingress etc,) to their latest versions?

No, you added the chart partial (https://github.com/kubernetes/charts/pull/5769/files#diff-a36b57d5b978075541e1493fbbcd535aR30), but don't use it in any resource. You should update chart labels.

Apologies, now I understand. Have added their usage @unguiculus , thanks.

/retest

I'll sort this out, looks like the changing of the name of the chart has broken the cluster join, should be an easy fix.

Ready to go with this one now @unguiculus , only the test was broken, not the actual cluster join

/lgtm


clippy

Codecov Report

Merging #1452 (def9faf) into main (ce45889) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main    #1452   +/-   ##
=======================================
  Coverage   94.20%   94.20%
=======================================
  Files         237      237
  Lines       44405    44406    +1
=======================================
+ Hits        41830    41831    +1
  Misses       2575     2575

Impacted Files
Coverage Δ

src/lib.rs
96.48% <ø> (ø)

src/query/union.rs
98.78% <ø> (ø)

bitpacker/src/blocked_bitpacker.rs
95.12% <100.00%> (-0.78%)
:arrow_down:

query-grammar/src/lib.rs
100.00% <100.00%> (ø)

src/query/query_parser/query_parser.rs
95.00% <100.00%> (ø)

src/postings/stacker/expull.rs
98.57% <0.00%> (-0.48%)
:arrow_down:

src/store/index/mod.rs
98.37% <0.00%> (+0.54%)
:arrow_up:

bitpacker/src/bitpacker.rs
97.02% <0.00%> (+0.99%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


chore: Remove feature flag for git import

Description

Remove feature flag for git import

Type of change

New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

/ok-to-test sha=d6e0ad9

/ok-to-test sha=2413745


Add provided/inject support for Composition API components

It looks like with the new composition api components that the provider changed from vm.provide to vm._provided.  This PR adds both so that composition apis that use injection can be tested.

The latest build fail is flow issues in wrapper.  Looks to be an issue with the dev branch

The tests are failing due to some prettier issue on dev that has since been fixed. Can you rebase and re-push?

Should be good now @JessicaSachs

I think the flow upgrade also caused a failure... Lemme revert the flow bin locally and test what happens

Looks like flow errors?

Yeah, pin the version to 0.66.0 and re-run yarn install. That fixes the errors for me.

Yeah, pin the version to 0.66.0 and re-run yarn install. That fixes the errors for me.

^0.66.0?

^0.66.0 Will be fine for now. I'm probably going to pin it at 0.66.0 after the merge, until we have a chance to fix the Element issues so someone doesn't accidentally upgrade it.


[MAISTRA-1744] Route annotation propagation

Backport for version 1.2
This adds route annotation propagation to generated Openshift routes from Istio gateways. currently only excluding annotations from kubectl.kubernetes.io to reduce confusion. Could be more keys we would want to ignore, I'm open to discuss.
Changes allow use of https://github.com/tnozicka/openshift-acme specific annoations within Istio generated routes.
https://issues.redhat.com/browse/MAISTRA-1744
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Hello @dgn! Thanks 😄
I'm not familiar with how the documentation repo branches are managed. But I've created two PRs based on the version of Maistra.
One for the Maistra 2.0 with that PR branch here:  https://github.com/maistra/maistra.github.io/pull/158
One for the Maistra 1.1 Backport Here: https://github.com/maistra/maistra.github.io/pull/159
Each of the PRs point to their corresponding PR change based on version.
Let me know if that makes sense. If you only need one, feel free to close the other one.

I've also updated JIRA to have links to all the PRs here. https://issues.redhat.com/browse/MAISTRA-1744

closing as the ior component has been moved into maistra/istio


dockerfile: Add appstream-glib

Since appstream-glib is no longer a dependency of flatpak in fedora 37, it isn't in the built image. It is useful to be able to run appstream-util to verify metainfo after the flatpak build, so explicitly install appstream-glib which provides appstream-util.

It's libappstream-glib not appstream-glib on Fedora 37

It's libappstream-glib not appstream-glib on Fedora 37

Thanks, fixed.


NavigationWindow integration

I use NavigationWindow for navigation but MaterialWindow doesn't allow me to use it.

@zalnaRs Do you mean NavigationWindow from WPF? I never used it, so I need to figure out how it works with templating. MaterialWindow inherits from the standard window and thus it does not have any navigation features.

@zalnaRs Do you mean NavigationWindow from WPF? I never used it, so I need to figure out how it works with templating. MaterialWindow inherits from the standard window and thus it does not have any navigation features.

@zalnaRs Do you mean NavigationWindow from WPF? I never used it, so I need to figure out how it works with templating. MaterialWindow inherits from the standard window and thus it does not have any navigation features.

Yes


Add a script that can be used to run CI jobs for bazel

Also, fix an(other) issue with update-codegen by explicitly setting the --extra-peer-dirs and ensuring that they are fetched before the generation command is run.
cc @madhusudancs @font

/assign @madhusudancs

cf #23

Thanks, PTAL.


Setting to ignore or specify configuration file?

At present, it seems as if linter-flake8 looks for a configuration file in the CWD (or higher) and tries to use this to configure flake8. If it finds one, then the options entered in the editor settings panel are ignored in favour of the file. The files searched for are 'setup.cfg', 'tox.ini', and '.pep8', in that order.
I have projects where there is a setup.cfg in the root of the project, but this file is for a different purpose. Its presence seems to cause linter-flake8 to ignore the settings I've provided in favour of that, but I can't use this filename for actually configuring flake8, and because it is the first filename in the search order, it seems I can't provide something else (e.g. '.pep8') instead. At present, I can't use the linter for those projects because I need to ignore some rules.
Am I missing some simple workaround for this? If not, it might be nice to allow users to either (1) specify that they want to ignore all configuration files; or (2) that they want a particular search order; or (3) that they have a particular name for their configuration files.

@pjuren There is no simple workaround for this right now. I think I'll implemented option (3) before next release.
Thanks for your time.


feat(Table): add bordered, striped and compact props

FX-1472
Description
Design

Changed

font-size
line-height
striped rows' background-color
footer's font-weight and color

Added props

compact
bordered
striped
narrow

How to test

FIXME: Add the steps describing how to verify your changes

Screenshots
Striped

Bordered

Clear

Narrow

Compact

Review

[ ] Read CONTRIBUTING.md and Component API principles
[ ] Annotate all props in component with documentation
[ ] Create examples for component
[ ] Ensure that deployed demo has expected results and good examples
[ ] Ensure that tests pass by running yarn test
[ ] Ensure that visuals tests pass by running yarn test:visual. If not - check the documentation how to fix visual tests
[ ] Ensure the changed/created components have not caused accessibility issues. How to use a11y plugin in storybook.

PR commands

List of available commands:

@toptal-bot run all - Run whole pipeline
@toptal-bot run build - Check build
@toptal-bot run visual - Run visual tests
@toptal-bot run deploy:documentation - Deploy documentation
@toptal-bot run package:alpha-release - Release alpha version

/rebase

@toptal-bot run all

@toptal-bot run deploy:documentation

did you check line-height in header?

Table.Cel, Table.Row change text style to:
line-height: 20px;

seems 18px is a valid value

@havenchyk good catch. I've fixed the line-height for header cells.

@toptal-bot run deploy:documentation


How to use the new orderByDistance?

I have a collection of objects that happens to have geographic coordinates. I want to sort them by distance and used this method before, and mapped the output to restore the properties, adding distance:
import { orderByDistance } from 'geolib';

import { IStation } from '~/state/station';

export const sortStationsByProximity = (
  stations: IStation[],
  latitude: number,
  longitude: number,
): IStation[] =>
  orderByDistance({ latitude, longitude }, stations).map(
    ({ distance, key }) => ({
      ...stations[Number(key)],
      distance,
    }),
  );

The 3.0 version changes the input for that method so that the only relevant properties are the coordinates. I couldn't find an example of what a code that uses this method achieves now.
Is the purpose of orderByDistance different? Should I sort my collection myself using getDistance as orderByDistance does internally?

Same problem here. Almost all of our use cases of orderByDistance use the actual distance values so this method becomes redundant.
Another problem with the new changes is that the output is typed as GeolibInputCoordinates[] even though it outputs the original objects passed in to coords. Even if you don't want to use the actual distance values, you wont be able to reference any other values in your original object without casting it back. A better type would be something like
orderByDistance<T[] extends GeolibInputCoordinates[]>(point: GeolibInputCoordinates, coords: T[], distanceFn?: DistanceFn | undefined): T[]


added configuration benchmark files

Motivate of the pull request

[ ] To address an existing issue. If so, please provide a link to the issue:
[X] Breaking new feature. If so, please describe details in the description part.

Describe the technical details
What is currently done? (Provide issue link if applicable)
We currently have a suite of verilog testbenches for verification.

What does this pull request change?
This pull request adds more testbenches to the suite.

Which part of the code base require a change

[ ] VPR
[ ] Tileable routing architecture generator
[X] OpenFPGA libraries
[ ] FPGA-Verilog
[ ] FPGA-Bitstream
[ ] FPGA-SDC
[ ] FPGA-SPICE
[ ] Flow scripts
[ ] Architecture library
[ ] Cell library
[ ] Documentation
[ ] Regression tests
[ ] Continous Integration (CI) scripts

Impact of the pull request

[ ] Require a change on Quality of Results (QoR)
[ ] Break back-compatibility. If so, please list who may be influenced.

@apond308 Can you added the new test cases to the micro benchmark regression tests? For example,
https://github.com/lnis-uofu/OpenFPGA/blob/4ca805b5d587ec024211f76d4ce3c6bac07e957d/openfpga_flow/regression_test_scripts/micro_benchmark_reg_test.sh#L9-L12


Request headers and content negotiation

Is it possible with hug to retrieve request headers? I see it's possible to retrieve the request body, but nothing about the headers. I ask in the context of wanting to set up endpoints which perform content negotiation based upon the ACCEPT header. Is this a pattern you've considered as a use case for hug at all?

Hi @jonathanunderwood,
You can indeed get the accept headers on a request and within output for matters off of the request object, and there is a pre-built {accept: output_format} enabling output format defined here: https://github.com/timothycrosley/hug/blob/develop/hug/output_format.py#L274, you can see example usage defined in its test case here: https://github.com/timothycrosley/hug/blob/develop/tests/test_output_format.py#L217, note that every hug request object, is using a Falcon request object to power it, so you can get a pretty good definition of what to expect here: http://falcon.readthedocs.io/en/stable/api/request_and_response.html#falcon.Request.
Hopefully this is helpful,
Thanks!
~Timothy


Suggestion: Restore window to size it was minimised and console colour

Is it possible that when the app is minimised, it can be restored to the same size and position?
And could I suggest two things for the console -

Set a background colour so it's easy to differentiate between the console and browser panel above?  (like dark grey or something).

Add a clear console option.

Another suggestion to the console -

Allow the user to PAUSE the console - it's shooting past just now and I can't copy/see the messages clearly!

It is already restored to the same size and position after being minimized.
I guess more console controls would be nice. In the meantime, you can just ctrl-a, ctrl-c to copy the console, and paste it into a normal text editor for viewing at your leisure.

Hmmm, maybe I wasn't clear - I want to resize and move the window and when I minimise and restore, the new size and position I set is restored.
I've just tried again here and when I minimise to tray, on restore, the window is back to the middle of the screen at a reduced, default size.

Yes, that should be the current behaviour. So something's bugged with your setup.
The window size and position are stored in SyncTrayzor's config.xml, in %APPDATA%/SyncTrayzor. Can you confirm whether or not they're being correctly written here?

Hi there .... just checked this ... I'm afraid there's no WindowPlacement section in my config.xml

What the... Can you paste the entire contents of SyncTrayzor's config.xml? Let's make sure we've got the right file...

Hehe, sure!
Here you go -
<?xml version="1.0"?> <Configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="5">   <ShowTrayIconOnlyOnClose>false</ShowTrayIconOnlyOnClose>   <MinimizeToTray>true</MinimizeToTray>   <CloseToTray>true</CloseToTray>   <ShowDeviceConnectivityBalloons>true</ShowDeviceConnectivityBalloons>   <ShowSynchronizedBalloonEvenIfNothingDownloaded>false</ShowSynchronizedBalloonEvenIfNothingDownloaded>   <SyncthingAddress>localhost:8384</SyncthingAddress>   <StartSyncthingAutomatically>true</StartSyncthingAutomatically>   <SyncthingApiKey>YAH0TDQQawYx1rpNBucgv9yi4q5YSsXyyTYxZ9Pj</SyncthingApiKey>   <SyncthingCommandLineFlags />   <SyncthingEnvironmentalVariables />   <SyncthingUseCustomHome>false</SyncthingUseCustomHome>   <SyncthingDenyUpgrade>false</SyncthingDenyUpgrade>   <SyncthingPriorityLevel>Normal</SyncthingPriorityLevel>   <Folders>     <Folder>       <ID>LogicSpot</ID>       <IsWatched>true</IsWatched>       <NotificationsEnabled>true</NotificationsEnabled>     </Folder>     <Folder>       <ID>default</ID>       <IsWatched>true</IsWatched>       <NotificationsEnabled>true</NotificationsEnabled>     </Folder>   </Folders>   <NotifyOfNewVersions>true</NotifyOfNewVersions>   <ObfuscateDeviceIDs>true</ObfuscateDeviceIDs>   <UseComputerCulture>true</UseComputerCulture>   <SyncthingConsoleHeight>336</SyncthingConsoleHeight>   <SyncthingWebBrowserZoomLevel>-0.4</SyncthingWebBrowserZoomLevel>   <LastSeenInstallCount>0</LastSeenInstallCount>   <SyncthingPath>%APPDATA%\SyncTrayzor\syncthing.exe</SyncthingPath>   <SyncthingCustomHomePath>%LOCALAPPDATA%\SyncTrayzor\syncthing</SyncthingCustomHomePath>   <DisableHardwareRendering>false</DisableHardwareRendering> </Configuration>

So, the call to the winapi's GetWindowPlacement function is failing in some way, but we're not currently logging this.
Would you be able to download a build from here https://ci.appveyor.com/project/canton7/synctrayzor/build/<IP_ADDRESS>/artifacts in about 5 minutes, and try again? SyncTrayzor will behave the same, but when minimize it to the tray it should log a message to its log file which looks something like Call to SetWindowPlacement failed: <stack trace>. Could you paste that in here?

Hey hey .... hmm, so I downloaded and am running it here (not sure how to tell if it's the build you just gave me but I installed and ran the setup-64 from the artifacts) ....
The log file is up to date/to the second .... but there's no lines as you mention.

You can see the version in Help -> About. Are you definitely closing SyncTrayzor to the tray, rather than just minimizing it?

Running 1.0.29
And yes, I am closing to the tray (I've been doing both as I've also got minimise to tray enabled) ... but just done close to tray a few times after resizing - still nothing in the log.

Ah, oops, Help -> About shows a truncated version. The full version is shown in the log when SyncTrayzor starts, e.g. 2015-11-12 09:20:33.3346 [Debug] SyncTrayzor.Bootstrapper: SyncTrazor version <IP_ADDRESS> (Amd64) started at C:\Program Files\SyncTrayzor\SyncTrayzor.exe.
Right, new version with a ton more logging: https://ci.appveyor.com/project/canton7/synctrayzor/build/<IP_ADDRESS>/artifacts. Please paste everything that appears in the log when you close it to the tray.

OK, installed and lots more info in the log.
Should I send direct to you?  Is there nothing confidential there?

Sure, send direct if you want. My email's on my github profile page.

Aah bugger. Got it. Thanks for your help!
New build available here shortly: https://ci.appveyor.com/project/canton7/synctrayzor/build/<IP_ADDRESS>/artifacts


WALRUS!

Previous code:
if spicy_vcf := query_for_spicy_vcf(cohort.analysis_dataset.name) is None:
   ...

result - if a file was returned, spicy_vcf is set to False, instead of the file name
Changed to:
if (spicy_vcf := query_for_spicy_vcf(cohort.analysis_dataset.name)) is None:
    ...

result - if a file was returned, spicy_vcf will, in fact, be the spicy vcf 🌶

Semi on-hold, the query to find this VCF file is currently killing metamist, so we may have some debugging to do


will it work for other configurations?

@josh-authy
requirements.txt mentions Django==1.11.6 and python <3 will it beokay if i use it for djanog 2.+
and python 3.+
if not then what are alternatives

We have updated Django to 2.2.3 and to Python 3.


[Question]: any way to make a "vnext" and/or "current" version api

What are you wanting to achieve?
I want to make a /swagger/current/swagger.json or /swagger/current/swagger.yaml with the last APIVersion from Asp.Versioning
currently It's making

v1
v2
v2.1

but when I try to add a document based on "v2.1" or "v2" it will render with empty paths
I think this is case some people already have had before and I need a pointer where to look
What code or approach do you have so far?
builder.Services.AddApiVersioning(options =>
{
    options.DefaultApiVersion = new ApiVersion(2.1); // <-- for v2.1
    options.ReportApiVersions = true;
    options.AssumeDefaultVersionWhenUnspecified = true;
    options.ApiVersionReader = ApiVersionReader.Combine(
        new UrlSegmentApiVersionReader());
    options.UnsupportedApiVersionStatusCode = StatusCodes.Status400BadRequest;
})
.AddMvc()
.AddApiExplorer(options =>
{
    options.GroupNameFormat = "'v'VVV";
    options.SubstituteApiVersionInUrl = true;
});

 List<string> versions = ["v1", "v2", "v2.1"];
foreach (var version in versions)
{
    options.SwaggerDoc(version, new OpenApiInfo { Title = $"API {version.ToUpper()}", Version = version });
}

var latestVersion = versions.Last();
options.SwaggerDoc("current", new OpenApiInfo { Title = "Current Version", Version = latestVersion }); // Creates empty paths

openapi: 3.0.1
info:
  title: Current Version
  version: v2.1
servers:
  - url: https://localhost:7114
    description: Local server
  - url: https://--
    description: Test server
  - url: https://--
    description: Production server
paths: { }
components:
  securitySchemes:
    Bearer:
      type: apiKey
      description: 'The Token to access restricted content, request a token at /api/Authorization/GetAuthApiKey'
      name: Authorization
      in: header
security:
  - Bearer: [ ]

Additional context
No response

Could you just make endpoint that is a redirect?


Remove two removed modules from reference manual

Follow-up to #665: remove the corresponding modules (drawings, animations.specialized) from the reference manual as well.
Acknowledgement

[x] I have read the Contributing Guidelines

/cc @leotrs @kilacoda @kolibril13


Add TR-FC1-ULAKBIM to vo.usegalaxy.eu

Summary
@hbayindir I am adding here the info about vo.usegalaxy.eu at TR-FC1-ULAKBIM.
I initially requested the mapping of this entitlement:
urn:mace:egi.eu:group:vo.usegalaxy.eu:role=member#aai.egi.eu

But instead I realised it should be this one:
https://github.com/EGI-Federation/fedcloud-catchall-operations/blob/b852bd6ced9f03d6fbfda4a637753c4d34400cba/vo-mappings.yaml#L91
Could you please update it?
Many thanks!
Sebastian

Related issue :

@sebastian-luna-valero, the new entitlement is in place. You can continue as desired.
Cheers,
Hakan

Thank you very much @hbayindir
Let's then wait for an approval from the EGI team to get this merged.


sync over lan with udp

is it possible to sync playback over LAN?

Well, as far as I know, it is possible to run your own server inside your LAN and have all the clients connect to it.
I would like to point out something though, in view of this and of the other issue you opened (#189): Syncplay does not synchronize the players with high precision, and it is not designed to do that. Hence, a delay of 1 or 2 seconds between clients is perfectly normal for Syncplay. So, if you are planning to synchronize video players in the same room, Syncplay might not be the best tool.

Okay, thanks for clarifying!

Which player can play synchronously without delay in LAN?


Fix a new group is always created on creating a split scan request

Details

When creating a new split scan request, a new group is created even though there is already an existing group chat.
Fixed Issues

$ https://github.com/Expensify/App/issues/34060
PROPOSAL: https://github.com/Expensify/App/issues/34060#issuecomment-1879274077
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Create a new group chat with any user (if you don't have one)
Create a split scan request from FAB with the participants from the group chat above
Verify the request is added to the group chat above and not create a duplicate group chat
Create a split scan request from the group chat composer add (+) button
Verify the request is added to the group chat above and not create a duplicate group chat

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/50919443/e023a559-2292-48e8-8065-c2e9f247c7d8

Android: mWeb Chrome

https://github.com/Expensify/App/assets/50919443/0b9e2f0f-6143-4a46-865d-74dbdd788888

iOS: Native

https://github.com/Expensify/App/assets/50919443/b8cdac7b-7909-4d33-90a8-236571e92bbd

iOS: mWeb Safari

https://github.com/Expensify/App/assets/50919443/14385761-2bc6-46ca-aba7-433cf72d35fb

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/50919443/cc62c967-06d8-4243-811f-accfd5a3aa56

MacOS: Desktop

https://github.com/Expensify/App/assets/50919443/a06277f1-1f0c-4287-b07b-9a50362b72f1

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/85645967/484268f2-f0cf-4fdf-8ba2-2c663ebc8dc5

Android: mWeb Chrome
https://github.com/Expensify/App/assets/85645967/0ad63a82-17e6-4a22-8e70-1d8d254430f4

iOS: Native
https://github.com/Expensify/App/assets/85645967/ee665dea-9861-43f5-8786-103bd09c573d

iOS: mWeb Safari
https://github.com/Expensify/App/assets/85645967/3b675b80-017c-4834-8fb1-ebfcb68fb0c5

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/85645967/442d2387-f10e-4ed0-b216-77b002ef4574

MacOS: Desktop
https://github.com/Expensify/App/assets/85645967/756a22a2-60f5-4e11-b7aa-bd371346da70

🚀 Deployed to staging by https://github.com/stitesExpensify in version: 1.4.27-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.4.27-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Cite jax-dataloader

Hi @HMUNACHI ,
Your dataloader code is heavily referred to the jax-dataloader repository, which is totally okay. But could you kindly cite the repository for reference?
Thank you!

Hi @BirkhoffG, NanoDL's dataloader indeed simplifies jax-dataloader and the repository has been appropriately referenced, was only noted in the readthedocs before. Your project is great btw, I use it so much, check out my FBNET project.


Signficantly improve inhibitor performance via new cache datastructure

This PR improves or matches performance of the existing inhibitor in almost all benchmark cases. When each inhibition rule has many inhibiting alerts, performance is improved by several orders of magnitude. No change to the inhibitor interface is necessary.
                                                     │    main.txt    │    icache-for-upstream-final.txt    │
                                                     │     sec/op     │    sec/op     vs base               │
Mutes/1_inhibition_rule,_1_inhibiting_alert-4            1.865µ ±  4%   1.597µ ±  7%  -14.35% (p=0.002 n=6)
Mutes/10_inhibition_rules,_1_inhibiting_alert-4          2.007µ ±  7%   1.464µ ±  5%  -27.04% (p=0.002 n=6)
Mutes/100_inhibition_rules,_1_inhibiting_alert-4         1.941µ ±  7%   1.447µ ± 16%  -25.46% (p=0.002 n=6)
Mutes/1000_inhibition_rules,_1_inhibiting_alert-4        1.884µ ±  3%   1.422µ ± 10%  -24.55% (p=0.002 n=6)
Mutes/10000_inhibition_rules,_1_inhibiting_alert-4       1.879µ ± 13%   1.419µ ±  4%  -24.49% (p=0.002 n=6)
Mutes/1_inhibition_rule,_10_inhibiting_alerts-4          1.973µ ±  8%   1.404µ ±  4%  -28.86% (p=0.002 n=6)
Mutes/1_inhibition_rule,_100_inhibiting_alerts-4         3.726µ ± 10%   1.348µ ± 13%  -63.84% (p=0.002 n=6)
Mutes/1_inhibition_rule,_1000_inhibiting_alerts-4       21.485µ ±  5%   1.411µ ±  3%  -93.43% (p=0.002 n=6)
Mutes/1_inhibition_rule,_10000_inhibiting_alerts-4     184.245µ ±  9%   1.489µ ±  6%  -99.19% (p=0.002 n=6)
Mutes/100_inhibition_rules,_1000_inhibiting_alerts-4    20.453µ ± 14%   1.409µ ±  5%  -93.11% (p=0.002 n=6)
Mutes/10_inhibition_rules,_last_rule_matches-4           2.226µ ±  8%   1.912µ ±  8%  -14.13% (p=0.002 n=6)
Mutes/100_inhibition_rules,_last_rule_matches-4          6.959µ ±  2%   6.293µ ±  5%   -9.57% (p=0.002 n=6)
Mutes/1000_inhibition_rules,_last_rule_matches-4         55.08µ ±  4%   48.42µ ±  3%  -12.10% (p=0.002 n=6)
Mutes/10000_inhibition_rules,_last_rule_matches-4        534.1µ ±  7%   488.9µ ±  4%   -8.45% (p=0.002 n=6)
geomean                                                  8.267µ         3.181µ        -61.52%                                            8.267µ         3.364µ        -59.31%

The new implementation replaces the InhibitRule's scache with an icache (meaning "intersection cache") which pre-calculates the equal label values a target alert would need to be inhibited by each inhibitor alert. Practically, this is implemented by calculating a fingerprint for just the equalLabels of each inhibiting alert and storing that alert in a map keyed by the equalLabels fingerprint. This allows O(1) access to the set of inhibiting alerts for an InhibitRule in the Inhibitor.Mutes method.  The new data structure is essentially just:
map[model.Fingerpint]map[model.Fingerprint]*types.Alert
// equaLabelsFp -> fp -> alert

To insert a new inhibitor alert "A":

does "A" match the source labels? If not, exit
make a LabelSet of just the subset of A's labels which are in the InhibitRule's equal_labels. Compute the fingerpint for this LabelSet and call it "E"
find the entry in the icache for E and insert A into it using A's fingerprint

To check if an alert "T" is inhibited:

does T match the target labels? If not, exit. T is not inhibited
make a LabelSet of just the subset of T's labels which are in the InhibitRule's equal_labels. Compute the fingerpint for this LabelSet and call it "E"
does an entry exist in the InhibitRule's icache for E? If not, exit. T is not inhibited
Find the first non-resolved alert in the icache entry and return it. T is inhibited by this alert.

The new implementation has a few other minor improvements which help performance: it reduces the number of time an inhibitor alert's fingerprint is calculated by caching it in the icache, it pre-calculates whether an inhibitor matches the source and target matchers for an inhibit rules, it calls time.Now() less frequently (similar to #4119), and it avoids checking if a target alert matches the source matchers unless necessary.
In the real world, this change helps most when an inhibit rule covers many inhibitors and target alerts. For example, a rule where all critical alerts inhibit all warning alerts with the same instance and alertname can result in many possible inhibitors attached to a rule where each inhibitor alert only inhibits one target alert. The old implementation of the inhibitor is extremely inefficient in this case: assuming N inhibiting alerts and a fixed number of equalLabels, it performs O(N) string comparisons per target. The new implementation is effectively O(1) in this case (except in a pathological case where all alerts in the inhibitor are resolved, since the new implementation still has to iterate past resolved alerts).
The new implementation does require slightly more memory per inhibiting alert than the old one: we store the alert's fingerprint and a boolean to check if the inhibitor matches both the source and the target. This works out to be about 16 extra bytes per cached inhibitor alert after accounting for padding. For 10,000 alerts, that's about 160KB. I think this is a totally acceptable increase in memory requirements.
We've been running a very similar patch in our production environment which adds all inhibiting alerts to the marker for more than a month. In our environment this still results in a more then 4x reduction in time spent in the Inhibitor.Mutes method.
This change was motivated by observations which show a large amount of CPU spent doing string comparisons in the inhibitor. It seems like we're not the only ones who have been looking for this, and I think this might be a good alternative to #3933.

cc @grobinson-grafana or @gotjosh is there any interest in this PR? Or something I can do to make this easier to review?


(PUP-7423) Make Pcore loader available for relevant CLI commands

This PR ensures that a Puppet::Pops::Loaders instance is created and adapted to the current environment when executing the apply, device or resource command. This enables subsequent ruby code to access the instance and load Pcore types dynamically.

CLA signed by all contributors.

For those looking at this PR; this is an enabler for features that use pcore/puppet data types on the agent. This PR does not solve the larger feature of also making sure that data types are available and can be loaded using the "agent" command - it assumes that data types are laid out on disk the same way as for a compilation.

I've tested the changes with the acceptance tests under 'agent', 'apply', and 'resource'. They all run without errors. I found no acceptance tests for 'device'.


chore(tests): Avoid mocking internal compiler state to test phase actions

Rewire ScapegoatPhaseTest to run Dotty instead of trying to mock the internal state of the compiler well enough to be able to test it directly. This will fix the errors caused by upgrading to 3.6.2 in #904

@saeltz Please help review this one. I've tested it locally with 3.6.2 but didn't include that part to keep the change isolated.

Would you please revert the unrelated formatting changes in the inspection file?

Would you please revert the unrelated formatting changes in the inspection file?

Done. Probably worth to add scalafmtCheck into the additional checks job as that file got reformatted from an scalafmtAll to clean up my change.

Thanks! Created #911.