Excel crashes when selecting protected chart

Excel 2016 crashes when clicking in a Chart that is protectec with ProtectSelection = true.  Anybody knows how to fix this? (This doesn't happen in Excel 2010)

Detalhes do documento
⚠ Não edite esta seção. É necessário para a vinculação do problema do docs.microsoft.com ➟ GitHub.

ID: 3aa249b1-784b-54aa-07e0-5bc014a3908d
Version Independent ID: e1e5f403-62a8-c7bf-8239-c11495da656b
Content: Chart.ProtectSelection Property (Excel)
Content Source: api/Excel.Chart.ProtectSelection.md
Product: excel
GitHub Login: @o365devx
Microsoft Alias: o365devx

@lckufner Thanks for your feedback. We use Github issues for documentation bugs, not for developer support. Please try the VBA developer community on Stack Overflow (https://stackoverflow.com/questions/tagged/vba) where you can get help from actual developers. If you find a bug in our documentation, please let us know! Thanks!


Add support for building qcow images with Dockerfile syntax

The plan for this is essentially:
Suppose the user has a Imagefile like:

FROM scratch
DISK 4GB
PARTITION 0 SIZE 256MB MOUNT /boot
PARTITION 1 MOUNT /
ADD rootfs /
RUN apt-get install grub
RUN grub-install --target=i386-pc /dev/sda

This builds a disk with two partitions, one that is 256MB and the other that
is the rest of the 4GB disk. It adds the contents of the directory 'rootfs'
to the partition mounted at / and then instlal grub. This assumes that the
contents of 'rootfs' are a minimal ubuntu root file system.
To do this (without root) we follow these

Create a squashfs of the build directory. This doesn't require root,
and docker does a similar copy when you docker build ., so that should
be fine.

Create an empty disk of the requested size via dd or qemu-img

Spawn QEMU with a kernel/initramfs we have built. And pass the empty
disk as drive 0, and the squashfs as drive 1

Connect to the VM (probably via ssh)

Inside the VM, use parted (or similar) to partition the empty disk
as requested.

Perform the ADD by copying from the squashfs to the newly partitioned
drive

chroot in to the partitioned drive and execute the RUN command

When all commands are completed, shutdown the VM. The previously empty
disk is now the built image.

Once a 'base' image like this has been built. Other Imagefile files can
be made that just:
FROM ubuntu:18.04
RUN apt-get install emacs

Just like docker

Inside the VM, use parted (or similar) to partition the empty disk as requested.

It would be cool to provide something close to "raw" parted and dd commands. This would be particularly useful if you were to target something "non-standard" like -machine orangepi-pc see http://www.orangepi.org/Docs/Settingup.html
That being said we could keep PARITION simple and then allow some sort of "advanced" configuration with the parted with something like
# RK3399-pc image flash
RUN parted $DISK mklabel gpt
RUN parted -a optimal $DISK unit b mkpart idbloader 32768 4128767
RUN parted -a optimal $DISK unit b mkpart uboot 8388608 12582911
...
RUN dd if=./idbloader.img of=${DISK}1 && sync
RUN dd if=./uboot.img of=${DISK}2 && sync


Adjust PrecacheEntry type to allow null revisions

This allows the revision to be set to null, which is necessary when the revisioning information is in the URL itself.
R: @jeffposnick @philipwalton
Fixes #2644

Thanks! I remember finding that annoying once and then forgot to make the change 😄


Offline.on() -> Offline.addEventListener()?

I'm ignorant as to the underlying implementation, but I thought that the .on syntax (as in document.onload) was frowned upon because you could only register a single event handler.  Is this latter method supported and (if so) shouldn't it be used instead?

Not sure it was related but there was a pull request to change the remaining instances of addEventListener to on() syntax to support IE8.

The on function is implemented in Offline, it is unrelated to the browser's API.  onload is bad because you can only bind one function that way, this is obviously not the case with our implementation.


Refactor vertical scrollbar to only be visible when text content overflows

Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[x] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[ ] I am making a fix / change for the macOS implementation of react-native
[ ] I am making a change required for Microsoft usage of react-native

Summary
#1366 Added a vertical scrollbar to all Multiline TextInputs. This change caused some visual regression since it was showing scrollbars even if the text content did not overflow the view.

There are also instances where we don't want the vertical scrollbar to be visible. For this edge case we can pass hideVerticalScrollIndicator to always hide the scrollbar.
NOTE #1244 Adds support for disabling scrollview. Once that PR is merged, I will update this to also not show the vertical scrollbar when scrolling is disabled.
Fixes  #1368
Changelog

Only show the vertical scrollbar if the text content overflows bounds of containing view.
Hide the scrollbar when hideVerticalScrollIndicator is passed as prop

[Fixed] [macOS] - Optionally hide the vertical scrollbar & only display when text overflows containing view
Test Plan
Pasting text that overflows container view
https://user-images.githubusercontent.com/96719/192408998-18be73ef-5f5e-4b29-902b-d4d5cd7db763.mp4
Input has pre-populated value that overflows container view
https://user-images.githubusercontent.com/96719/192409043-8452c8c4-ced3-4dd8-9f1a-208b3781bb86.mp4
Input has pre-populated value that does not overflow container view
https://user-images.githubusercontent.com/96719/192409152-78cba1d4-5f0c-45f1-bb5a-a70aba39a31c.mp4
passing hideVerticalScrollIndicator prop as true will always hide the vertical scrollbar
https://user-images.githubusercontent.com/96719/192409423-69abc9c1-f72f-4d41-a64b-2f4f134ddb5d.mp4

@Saadnajmi Just tested against master & this is ready to be merged.


checkov: 2.0.605 -> 2.0.606

Motivation for this change
Update to latest upstream release 2.0.606
Change log: https://github.com/bridgecrewio/checkov/releases/tag/2.0.606
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 147815 run on x86_64-linux 1

1 package built:

checkov


Resize feature in the datasets

The resize feature for images seems to be visually a bit strange (attaching screenshots below from two different samples)

Original Image

Resized Image

This issue is now fixed at https://github.com/constantinpape/torch-em/pull/332. I'll go ahead and close this.


Allow core.filemode to be configured by platform

Fixes #302

@jamill Since Nick is also making some changes for this same method in a different place, I will leave this to match what he has for now and we can change both places in a later PR.


"incompatible types" error when sending a tuple literal from one worker to another

Description:
Getting "incompatible types" error when sending a tuple literal from one worker to another.
The error goes away if the tuple is assigned to a variable before sending.
Steps to reproduce:
function name() {
    worker w1 {
        [1, 1.1] -> w2;
    }

    worker w2 {
        [int, float] value = <- w1;
    }
}

No errors for this code.
[int, float] sentValue = [1, 1.1];
sentValue -> w2;

According to the spec [1, 1.1] should be inferred to a (int|float)[] as there is no contextually expected type.

like @rdhananjaya mentioned, since there's no contextually expected type[1, 1.1] will get inferred as (int|float)[]. To overcome, you'll have to explicitly define the type;
function workerTest() {
    worker w1 {
        [int, float] x = [1, 1.1];
        x -> w2;
    }

    worker w2 {
        [int, float] value = <- w1;
        io:println(value);
    }
}


conf_logging.cfg is not picking format

I have updated the format to my own format but it's not picked
What I need to set to env var to picked here
https://github.com/hrcorval/behavex/blob/40fa2aa9da5b7349ad548866f1450ee1be1d6642/behavex/environment.py#L219C4-L219C74

I found the fix


Added fix for Sample_Usage not being ingested in Local docker

Describe your changes :

Worked on fixing the ingestion of sample usage on local docker setup.
fix #3647

Type of change :

[x] Bug fix
[x] Improvement

Frontend Preview (Screenshots) :
For frontend related change, please link screenshots of your changes preview! Optional for backend related changes.

Checklist:

[x] I have read the CONTRIBUTING document.
[x] I have performed a self-review of my own.
[x] I have tagged my reviewers below.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers

@harshach @pmbrull

error still persists in #3648, not sure if it's backend or UI
cc: @harshach @darth-coder00
Steps to reproduce:

Run run_local_docker.sh
Start server
Explore
Go to one of the tables
Change description
Go to Explore

Expected Output:
Description Changes according to latest change
Actual Output:
Description doesn't change and stays the same whereas we see the activity feed having latest changes

@ayush-shah why are we doing this again? We discussed this not to turn on the sample data ingestion by default in the image itself. Instead we can make curl calls as part of selenium test to enable and trigger these pipelines right? if we do this and all the work we did for skipping ingestion pipeline will be undone

Based on the comments by @vivekratnavel - https://github.com/open-metadata/OpenMetadata/pull/3590#discussion_r832485651 I added this

@ayush-shah My suggestion was only about the flag and not the implementation.


automatic/1/3 phase charging switch

Hi,
In the app there is the opportunity to sitch between 1 phase, 3 phase charging or automatic switch. It would be great if this feature could also be added to the Home Assistant integration. Thank you!
PS: Of course, this works for 3 phase Zappis only.

Reder to this post:

Greetings,
Heiko

Thank you!-- Diese Nachricht wurde von meinem Android Mobiltelefon mit WEB.DE Mail gesendet.Am 22.06.24, 18:47 schrieb Heiko Neuberger @.***>:
Reder to this post:
Greetings, Heiko
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Fixed in 0.0.28, thanks!


pop goes the weasel link

The first song sung in the video linked here is pop goes the weasel, followed by row, row, row, your boat, B.I.N.G.O., ...
Twinkle Star is at https://youtu.be/bW0E_sncNic?t=8m33s
Perhaps replace Twinkle with Pop in the text

Fixed with pull request


Pool alert

I see some alert info in banner :
We are investigating issues in the backend. Your shares and hashrate are safe and we will fix things ASAP.
Findblocks disabled, new blocks will currently not show up in the frontend
Blockupdate disabled, blocks and transactions confirmations are delayed
Payouts disabled, you will not receive any coins to your offline wallet for the time being
what's happening here?  how to fix it .

Mostly happens if either your coin daemon isn't reachable when the crons tried to run or the server was rebooted before disabling all cronjobs and waiting a bit for running ones to finish.
Force a cron run, see wiki how to do that (Crons).


admin UI: add ability to toggle between default right vs left mapping

Not urgent for v1, but adding for future rounds

since we can change directionality for mapping on the street, this is not a high priority... esp until a left-side driving location wants to use the app and likes to walk in the direction of traffic

closed - issue addressed as part of app overhaul


Added test case for todo/delete-item

Cool! Having fun? We actually have some really cool ideas around testing the queries and mutations full stack (which are undocumented but implemented).  If interested, take a look at the protocol-support namespaces in Untangled client and server. The basic ideas are outlined in this doc I wrote as an outline before we implemented it:
https://github.com/awkay/protocol-testing/blob/master/ProtocolTesting.md


Upgrade containerd to latest

Description
Changes proposed in this pull request:

Remove unnecessary replace statement for containerd

/retest


ASCII border

On CJK, the width of borders are drawn as two cells.

Because those characters are East Asian Ambiguous Widths. It will be rendered as two cells in the future. But currently, most of terminal doesn't use Unicode9 character widths. This is workaround until the support of terminals.
See also https://github.com/jroimartin/gocui/issues/49
Below is after applying this patch.

Thanks for the PR. I think it's a good idea to support ASCII line art, however I would prefer it to be configurable by the user and not only enabled when runewidth.IsEastAsian() returns true.
So, I created #93 to support this use case. What do you think? It allow gocui users to decide how they want to draw the interface. For instance, depending on runewidth info.


Extend "Only SELECT statements could produce execution plan"

Is your feature request related to a problem? Please describe.
On newer versions of MySQL/MariaDB one can get EXPLAIN details for UPDATE/DELETE clauses.
DBeaver says "Only SELECT statements could produce execution plan".
Describe the solution you'd like
DBeaver should not interfere and send "EXPLAIN Query" (or even better in MariaDB "EXPLAIN EXTENDED Query") to the server and let the server decide if the query is acceptable or not.
Describe alternatives you've considered
As an alternative you can add UPDATE/DELETE statement on the whitelist for EXPLAIN.
Additional context
In MySQL you can issue EXPLAIN for UPDATE starting MySQL 5.6 (but not in 5.5) and for SELECT/DELETE/INSERT/REPLACE/UPDATE.
Given the relation w/ MariaDB I would allow it starting from any MariaDB 10.x

Thank you for request


Add get_statistics to python SDK

Adding the implementation on the python SDK side. I was considering doing aggregation at the SDK level but nixed that idea in favour of doing it server-side, so the python get_statistics method only wraps the GetFeatureStatistics grpc call.

/lgtm


already registered, but cannot add-feature Math

hi, I have new problem. I tried to add-feature Math , but the bot said I dont have sufficient permission. please help.

I already replaced supbot.jar with the one at https://github.com/adsau59/supbot/blob/master/build/supbot.jar?raw=true .

You need admin or Co admin role in order to add feature to the bot you can either increase your role by runing this command in console
run <groupid> promote <client-name>

ok, adam. I will try it. if the issue resolved I will immediately close this issue. thanks for your info.
I think you should update your video or write info about this somewhere. about this "promote" feature

sure np, I was think about creating a faq page

hi adam. finally I understand, the problem with Math feature. in latest supbot.jar you provide, there is no Math Feature. I resolved this issue by creating a new jar myself, containing Math Feature & its command (solve). thanks for your help. cheers

oh yes, math feature wasn't a part of core features, so I removed it


genact: init at 0.11.0

Motivation for this change
genact is a nonsense activity generator
https://github.com/svenstaro/genact
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 135735 run on x86_64-linux 1

1 package built:

genact


[Question] How can I use emmet plugin with this component?

How can I use emmet plugin with this componenent?
Plugin link: https://github.com/emmetio/codemirror

@BrunoQuaresma check out react-codemirror2

@scniro nice job. In this version is there Emmet? In the docs, I don't see anything about it.

@BrunoQuaresma I have no idea nor have I heard of Emmet, but if you open up and issue over there you'll at least get some attention on it 😄 Please include a little bit of detail and I'll be sure to work it in if it's indeed something we'll want.


How to truncate the joining line at the last cell.

Please set Timeline.backColor as UIColor.clear.
You can see the line 31 and 89 at the TimelineTableViewController.swift in the demo.

@kf99916  Ok Thanks.


In case of build-only layers, look for base layers in OCIDir before looking into layer-bases

Fix bug introduced in: https://github.com/anuvu/stacker/commit/dce7c10c86b4c67f5cd54ce2c7e8da43227420c1
If a build-only layer depended on a non-build-only layer which was previously built (not downloaded), it would try to copy the base image from 'layer-bases' instead of the OCIDir where stacker places it

I believe this is fixed by the very recently merged #64


Investigate supporting multiple Atlas credentials per broker deployment

Users trying to manage many Atlas clusters (for example ~200) need a better way to segregate these clusters into different Atlas Projects. There are technical as well as usability issues with using only 1 project (e.g automation update rollouts, Atlas supports only 25 clusters per project).
This ticket tracks the investigation of a possible integrated solution for the Cloud Foundry platform using Cloud Foundry CredHub.
References:
https://github.com/cloudfoundry/secure-credentials-broker
https://tanzu.vmware.com/content/blog/need-to-secure-credentials-for-off-platform-services-in-pcf-try-the-credhub-service-broker-now-in-beta-we-take-an-inside-look

Documenting how this will work, user docs
https://github.com/jasonmimick/atlas-osb/wiki/Multiple-Atlas-project-per-broker

We've moved the latest docs over into the current dev branch:
https://github.com/jasonmimick/atlas-osb/blob/ymlplans/docs/custom-plans.md
This is in order to support better usability by being able to clone all the docs and code from one repository. The wiki pages will be deprecated.

We are doing this in YMLPLANS


multi output sparse GP with different kernels but same inducing points

I have only recently started working with GPFlow, so my knowledge is limited.
I read that instantiating a GP with a multidimensional output will yield an independent GP for each output dimension, but with the same kernel across the GPs. Also, I could define a completely new GP for each output dimension, and that would allow me to have different kernels with different parameters. But this wouldn't allow me to have the same trainable inducing points (if using SGPR for instance) across all GPs (to my understanding).
So, is there any way I can have independent GPs (one for each output dim) with different kernel parameters but the same inducing points?

Hi @gabrielnan
You are describing one of the use-cases of the new multi-output GP framework we have been working on lately. You can find the code in the "multidispatch_featureconditionals" branch and an explanatory notebook in doc/source/notebooks/multioutput.ipynb.
I assume you will need to do something very similar to this:
import gpflow
import gpflow.multioutput.kernels as mk
import gpflow.multioutput.features as mf

D = 1  # input dimension
P = 2  # output dimension
M = 20  # number of inducing inputs
X, Y = data()   # input and output data

kern_list = [gpflow.kernels.RBF(D) + gpflow.kernels.Linear(D) for _ in range(P)]
kernel = mk.SeparateIndependentMok(kern_list)
feature = mf.SharedIndependentMof(gpf.features.InducingPoints(X[:M,...].copy()))

model = gpflow.models.SVGP(X, Y, kernel, gpflow.likelihoods.Gaussian(), feat=feature)

The mk.SeparateIndependentMok is a multi-output kernel class which accepts a different kernel for each output (Separate). The mf.SharedIndependentMof class is a multi-output feature class that will use the same inducing inputs for every output dimension (Shared).
Hope this helps,
Vincent

This is exactly what I was looking for. Thanks a lot @vdutor!

Hi @vdutor,
I checked out the branch, but I think it's broken. When I import gpflow I get the following:
Traceback (most recent call last):
  File "/home/gan9/src/packages/GPflow/gpflow/_settings.py", line 32, in __getattr__
    return self._cur_settings[name]
KeyError: 'logger'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/gan9/src/packages/GPflow/gpflow/__init__.py", line 27, in <module>
    from . import conditionals
  File "/home/gan9/src/packages/GPflow/gpflow/conditionals.py", line 26, in <module>
    logger = settings.logger()
  File "/home/gan9/src/packages/GPflow/gpflow/_settings.py", line 34, in __getattr__
    raise AttributeError("Unknown setting.")
AttributeError: Unknown setting.

Yes, the "multidispatch_featureconditionals" branch is currently under development and not very stable, my apologies. The missing Logger class is already in master, so merging in master will solve the issue.

Perfect. Thanks again!

Okay, so I got it to work with SVGP, but I've been getting the following error when I run opt.minimize(m) on an SGPR model:
InvalidArgumentError (see above for traceback): In[0] and In[1] has different ndims: [3,20,100] vs. [100,3]
	 [[Node: SGPR-569f204a-18/MatMul_7 = BatchMatMul[T=DT_DOUBLE, adj_x=false, adj_y=false, _device="/job:localhost/replica:0/task:0/device:CPU:0"](SGPR-569f204a-18/truediv_9, SGPR-569f204a-18/sub)]]

here are some relevant dimensions of the data I ran:
X is 100x2
y is 100x3
M = 20 (number of inducing points)

Hi, at this point we only support multi-output features and kernels for the SVGP class. Feel free to make SGPR compatible with the multi-output framework, happy to review your code.


Spanner pretend() is 100x slower than the mysql driver pretend()

As the title suggests, for some reason when I run the same exact code within a DB::pretend() with this driver vs the standard mysql driver, I am seeing around 100x slower speed to run it and get back the result of the queries that would be run.
A pretend() callback that takes around 2 seconds with a mysql driver connected to a mysql instance running on google cloud, takes over 210 seconds when run with the spanner driver connected to a spanner instance.
I am not sure why pretend() would be taking so incredibly long? Shouldn't every query being done within the callback not require touching the database connection, rather simply be calculated in memory/locally via the Grammar/Builder etc?

Shouldn't every query being done within the callback not require touching the database connection

AFAIK https://github.com/laravel/framework/blob/10.x/src/Illuminate/Database/Connection.php#L775 indicates that it does connect to the database. Even though it doesn't send any queries. Also, creating a session takes ~1 second per session so if you're creating a connection each time, that might cause problems.
I suggest you check your system insights / query insights to see if there are any calls being made.

I found the solution, its really simple.
In affectingStatement(), here https://github.com/colopl/laravel-spanner/blob/6f2448363736768edfe547294c4589adf86025e6/src/Connection.php#L334 - if its in a transaction we just return $runQueryCall(); - however if its not it creates a single use transaction.
None of this needs to happen when pretending(), since inside the body of $runQueryCall, the first line simply returns 0 if its pretending, here https://github.com/colopl/laravel-spanner/blob/6f2448363736768edfe547294c4589adf86025e6/src/Connection.php#L317
The solution was to simply add an additional check at the end of affectingStatement() like so:
// Add this to make pretending lightning fast
if($this->pretending()) {
    return $runQueryCall();
}

if ($this->inTransaction()) {
    return $runQueryCall();
}

// Create a temporary transaction for single affecting statement
return $this->transaction($runQueryCall);

Created PR #191


Two Rust rules 16Oct2024

Summary by CodeRabbit

New Features

Introduced a rule to detect empty passwords in PostgreSQL configurations for Rust applications.
Added a rule to identify hard-coded secrets in Rust applications using the reqwest library.

Tests

Implemented test cases for validating PostgreSQL connections, including scenarios with empty passwords.
Created tests to evaluate authentication methods in HTTP requests, contrasting valid dynamic authentication with invalid hardcoded credentials.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: ESS-ENN:x: petrisorcoderabbitYou have signed the CLA already but the status is still pending? Let us recheck it.


Update directive.ngdoc

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
correct some spelling errors
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change?
Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Other information:

The changes are invalid. I assume this was opened by accident.
(If not, please reopen once fixed.)


Fix Trivy version

The latest Trivy might break compatibility. The version should be fixed.
https://github.com/aquasecurity/trivy-action/blob/master/Dockerfile#L1

The latest Trivy might break compatibility. The version should be fixed.
https://github.com/aquasecurity/trivy-action/blob/master/Dockerfile#L1

Oh I see. --skip-dirs is the one change that comes to my mind, are there others you can think of? In any case we should pin it as you said.

Filed an issue https://github.com/aquasecurity/trivy-action/issues/40

v0.17.0 had some bugs and it affected fs scanning.
https://github.com/aquasecurity/trivy/issues/983
https://github.com/aquasecurity/trivy/issues/968

Thanks for the heads up! We have pinned it going forwards https://github.com/aquasecurity/trivy-action/pull/41


Add ARM64 Support for Alpine JDK 11 and 17 - Inbound Agent

What feature do you want to see added?
As we now have JDK21 Alpine ARM64 for Master and Inbound Agent it would be nice if we can get the same for JDK 11 and 17.
This is currently the only thing which holds me back to fully migrate my Cluster to ARM64 Nodes. Would be nice if we can see some progress here.
Upstream changes
No response
Are you interested in contributing this feature?
No response

Hi @Slyrc , thanks for opening this feature request.
Alas the Adoptium project does not provide any JDK under the JDK21 which supports Alpine Linux on arm64 architectures:

https://adoptium.net/temurin/releases/?os=alpine-linux&arch=aarch64&version=11

https://adoptium.net/temurin/releases/?os=alpine-linux&arch=aarch64&version=17

If I may: is there any reason preventing you from using the existing JDK11 or JDK17 arm64 images built on top of Debian? (For instance the latest JDK17: https://hub.docker.com/layers/jenkins/jenkins/jdk17/images/sha256-7c02c1d24079eb067541949238e60daed3eaec18c6d5dd24131007fad3190775?context=explore)

Is there a reason that you stick to this JDK? There are a lot of vendors Supporting ARM64 and Alpine Linux. Like BellSoft JDK or ZuluJDK?

Using temurin, the descendent OpenJDK, has been a community choice. I'll need other community member such as @MarkEWaite or @basil to help me reminding the rationale behind this choice to be transparent.
Changing a key component such as the JDK distribution is not something that can be done in a blink of an eye. The Jenkins project would need to add a lot of work to validate that not only the core but also the numerous plugins are working without anything weird. I don't say we should not: having this kind of discussion is always healthy. But it is a LOT of effort on an Open Source community (and I don't even mention the infrastructure costs due to all the validation builds). Achieving such a request would require committed involvement (not only of course !).
Of course, if your use case looks simple you can build your own Alpine arm64 image  and install the OpenJDK distribution they provide through their APK distribution packages and benefit from a native and tested JDK in Alpine context: the risk of meeting a Jenkins regression could be low.
But as a matter of providing an official artifact such as a Docker image for agent, the project stick to what it can sustain: hence a single distribution.
I have a feeling that the best effort in your case would be to migrate to JDK21 on controller + agents as soon as possible: you would benefit from the official images and it would be supported (and it is an LTS image). WDYT?

Using temurin, the descendent OpenJDK, has been a community choice. I'll need other community member such as @MarkEWaite or @basil to help me reminding the rationale behind this choice to be transparent.

Eclipse Temurin was chosen in Sep 2020.  It supports the platforms that we need, is open source, and is well supported by industry leaders.  Bellsoft does not seem to support s390x mainframes,  Zulu does not seem to support s390x mainframes.
Java 11 support by Jenkins will end in Oct 2024.  I don't think it makes sense to add more Java 11 configurations.
I think that we should avoid the added maintenance burden of additional JDKs.  As noted by @dduportal , users can define their own container images if they wish.

To add to the above, Eclipse Temurin is another open source community with which our community has a long-standing positive relationship. Eclipse Temurin also uses Jenkins. We look forward to continuing this positive collaboration in the future.

For what its worth you can run your agents on Java 21, and then your actual Java builds can use whatever version of Java you want. You don't need to tie your agents Java version to what version is used to run Maven / Gradle / etc

@Slyrc how do you feel about using JDK21 as base (as @timja mentioned)? I'm member of the Jenkins infra and we are currently planning to migrate from JDK17 to JDK21 (while keeping our agent with JDK8, JDK11, JDK17 and JDK21 for Jenkins developers) so we could share tips. If that is the case, I propose that you open a community.jenkins.io forum topic and mention me (same handle as in GitHub) so we can share our tips and trick for such an upgrade (we did JDK11 -> JDK17 last year).


add importmap to build.html

Some more imports normalization requested.

Import maps have been removed in main.


Updated: thunderbird 68.1.2

Newer version of thunderbird (68.2.1) is now available in master. 4ddaef3072eb9dc98d565ffdc2cabe9f0f45003d

Newer version of thunderbird (68.2.1) is now available in master. 4ddaef3072eb9dc98d565ffdc2cabe9f0f45003d


Running geneshot using singularity

Hi,
I'm new to both singularity and nextflow. If I understand correctly, the preferred way of running geneshot on a HPC cluster is like so:
nextflow run Golob-Minot/geneshot -with-singularity [singularity image file]
But where can I find the required singularity image file? Or if this is something I need to create myself, could you give an example?
Best,
Sam

Hi Sam,
Each task has its own image defined, so you don't need to specify it at runtime. Just set up singularity in the nextflow.config and you should be set!
Cheers,
Sam


Is echo a complete quic protocol？

I mean, does stream run a complete quick protocol process? Do they have congestion control and packet loss retransmission modules?

The echo example runs a full QUIC connection, which comes with congestion control and packet loss recovery.


jalali support

do you plan to support jalali calendar for this library ?

jalali calendar? never heard of it tbh, this only supports the stock android pickers.

your library use Gregorian calendar,
read more from jalali calendar
https://en.wikipedia.org/wiki/Jalali_calendar


[Bug]: Async tag of a particular function keeps turning off when app is loaded and only recognizes it as async after an edit

Is there an existing issue for this?

[X] I have searched the existing issues

Description
A JS function keeps loosing it's async tag when app is loaded and on editing the object, the async tag reappears.
Steps To Reproduce

Go to JS object at this location

Observe the state of the function - if in async - clear cache and reload the app

Observe the async tag no longer present on the function

If the function does not have an async tag, edit to reparse the function and observe the async tag reappear

Public Sample App
No response
Version
Cloud

Sample app to reproduce
Happens only when a JsObject refers another JSObject


Improve Web view for Climate components

This (together with the relevant changes in web_server code in ESPHome) fixes esphome issue #3479 . See the issue for before / after comparison and trial run results.
This was tested with Chrome and Firefox on desktop and with Safari on iPadOS and iOS. Looks consistent and good. Small screens require Zoom to 50% for the best experience, font is too large. But this is a generic statement not related to Climate components.
I'm completely new to web development, so please don't beat me too strong :)

Are there corresponding changes to the webserver c code?


Implement ViolationUtils lib

Details
This PR implements the ViolationUtils lib, as specified in this issue.
Notes on Implementation
Created possibleViolationByField for use in `get
I found it easier to reason about the filtering of the violations by field when it was organized
as a map from field to possible violations. But it's much easier to maintain the list of
relationships when it's defined as a map from violation to field.
To resolve this I created an intermediate variable possibleViolationByField
that inverts the mapping using lodash/invertBy and then use that for the lookup.
This lets us keep the maintainability of the single list, while also letting us use the more readable form in code.
Performance isn't a significant concern with lists this small, but creating the lookup once is more performant nonetheless.
Changes to Onyx Types
Added PolicyCategories type

needed for getViolationsOnyxData
used PolicyTags as an example

Added TRANSACTION_VIOLATIONS to ONXYKEYS.COLLECTION

used transactionViolations_ to follow the pattern

Created TransactionViolation and related types

Created the TransactionViolation type and string literal unions for the various types as discussed here

Fixed Issues
$ https://github.com/Expensify/App/issues/31083
Tests
This code is not called yet by the application, so there is no way to test it.

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

Offline tests
This code is not called yet by the application, so there is no way to test it.
QA Steps
This code is not called yet by the application, so there is no way to test it.

[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(themeColors.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 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
No visible changes

I have read the CLA Document and I hereby sign the CLA

I see that there is no way to test it but is is possible to have temporary test by manually changing some code locally?

For instance this issue relies on this code and will call it: https://github.com/Expensify/App/issues/31084

@cead22  -- I wanted to get your opinion on moving the logic from getViolationsForField into a useViolations() hook.
It's a more idiomatic approach in react and offers a couple key benefits:

It lets us call useLocalize in the hook itself so we don't need to pass the translate function in. (The useLocalize hook needs to be inside its provider so can't be called in ViolationUtils)
It lets us memoize the index of violations per field, so we don't need to iterate over it every time we want to check if a field has a violation, and then again when we want to get the violations for each field
It makes the component itself more readable because the function calls in-line can be much shorter (hasViolation(field) or getViolations(field) vs getViolationsForField(field, violations, translate)
It removes the need for the whole possibleViolationsForField thing entirely

In the component it would look like this:
const {getViolations, hasViolations} = useViolations(transactionViolations);

where getViolations and hasViolations are functions that take a single argument (the name of the field).
Then in a component we could use it like this:
<View>
    { hasViolations('amount') && <ViolationMessages messages={getViolations('amount') /> }
</View>

The hook itself would be something like this:
type ViolationsMap = Map<ViolationField, TransactionViolation>;

export default function useViolations(violations: TransactionViolation[]) {
    const {translate} = useLocalize();

    const violationsByField = useMemo((): ViolationsMap => {
        const violationGroups = new Map<ViolationField, TransactionViolation[]>();

        for (const violation of violations) {
            const field = violationFields[violation.name];
            const existingViolations = violationGroups.get(field) ?? [];
            violationGroups.set(field, [...existingViolations, violation]);
        }

        return violationGroups;
    }, [violations]);

    const hasViolations = useCallback(
        (field: ViolationField) => {
            const fieldViolations: TransactionViolation[] = violationsByField.get(field) ?? [];
            return Boolean(fieldViolations.length > 0);
        },
        [violationsByField],
    );

    const getViolationsForField = useCallback(
        (field: ViolationField) => {
            const fieldViolations: TransactionViolation[] = violationsByField.get(field) ?? [];
            return fieldViolations.map((violation) => translate(`violations.${violation.name}`));
        },
        [translate, violationsByField],
    );

    return {
        hasViolations,
        getViolationsForField,
    };
}

Can you add unit tests for getViolationForField and getViolationsOnyxData?

Yeah, will do.

Also @cead22, I had to complete the violationFields for the complete list of ViolationNames. I made educated guesses about which violation goes with which field (I didn't see it in the design doc)
Can you look over the list and let me know if I've made wrong guesses? The ones with // <--  are the ones I guessed at.
Also how do you want to handle fieldRequired?
const violationFields: Record<ViolationName, ViolationField> = {
    allTagLevelsRequired: 'tag', // <--
    autoReportedRejectedExpense: 'amount', // <--
    billableExpense: 'billable',
    cashExpenseWithNoReceipt: 'receipt', // <--
    categoryOutOfPolicy: 'category',
    conversionSurcharge: 'amount', // <--
    customUnitOutOfPolicy: 'amount', // <--
    duplicatedTransaction: 'amount', // <--
    fieldRequired: 'category', // <-- seems like it would be on every field?
    futureDate: 'date', // <--
    invoiceMarkup: 'amount', // <--
    maxAge: 'date',
    missingCategory: 'category',
    missingComment: 'comment',
    missingTag: 'tag',
    nonExpensiworksExpense: 'merchant', // <--
    overAutoApprovalLimit: 'amount', // <--
    overCategoryLimit: 'amount',
    overLimit: 'amount',
    overLimitAttendee: 'amount',
    perDayLimit: 'amount',
    receiptNotSmartScanned: 'receipt', // <--
    receiptRequired: 'receipt',
    rter: 'merchant', // <--
    smartscanFailed: 'receipt', // <--
    someTagLevelsRequired: 'tag', // <--
    tagOutOfPolicy: 'tag',
    taxAmountChanged: 'tax', // <--
    taxOutOfPolicy: 'tax',
    taxRateChanged: 'tax', // <--
    taxRequired: 'tax',
};```

There are some that relate to fields that are marked out of scope or deprecated in the design doc as well:

Out of scope fields:

* `allTagLevelsRequired`
* `customUnitOutOfPolicy`
* `invoiceMarkup`
* `nonExpensiworksExpense`
* `someTagLevelsRequired`

Deprecated Fields:

* `conversionSurcharge`

@cead22 -- I wanted to get your opinion on moving the logic from getViolationsForField into a useViolations() hook.

I like it, but I'll admit it's a bit over my head, so let me tag @luacmartins and @mountiny to get their opinions (here's the proposal).
That being said, I'd like to get this PR merged ASAP since it blocks other issues, so if that change isn't super straightforward we can do it in a follow up PR

Can you look over the list and let me know if I've made wrong guesses? The ones with // <-- are the ones I guessed at.

allTagLevelsRequired: 'tag', // <-- this is good for now
autoReportedRejectedExpense: 'amount', // <-- merchant
cashExpenseWithNoReceipt: 'receipt', // <-- good
customUnitOutOfPolicy: 'amount', // <-- merchant
duplicatedTransaction: 'merchant', // <-- good
fieldRequired: 'category', // <-- seems like it would be on every field? -- No this is for report fields which isn't currently supported in new dot, so let's set this to merchant for now
futureDate: 'date', // <-- good
invoiceMarkup: 'amount', // <-- good
nonExpensiworksExpense: 'merchant', // <-- good for now
overAutoApprovalLimit: 'amount', // <-- good
receiptNotSmartScanned: 'receipt', // <-- good
smartscanFailed: 'receipt', // <-- good
someTagLevelsRequired: 'tag', // <-- good for now
taxAmountChanged: 'tax', // <-- good
taxRateChanged: 'tax', // <-- good
conversionSurcharge: 'amount', // added this one since it was missing

I think we should prefer hooks solution if we can as thats more in line with functional react style we are using now

I like the hook approach and as the proposal shows it's mostly a wrapper around getViolationsForField and hasViolations. I think we should go with it!

OK it's up and ready -- The only thing missing is the Spanish translations of the strings.

Spanish translations are in -- will post to slack to get them proofread:
violations: {
        allTagLevelsRequired: 'Se requieren todos los niveles de etiquetas',
        autoReportedRejectedExpense: 'Gasto rechazado informado automáticamente',
        billableExpense: 'La opción facturable ya no existe',
        cashExpenseWithNoReceipt: ({amount}: CashExpenseWithNoReceiptParams) => `Se requiere recibo para montos superiores a ${amount}`,
        categoryOutOfPolicy: 'La categoría ya no existe',
        conversionSurcharge: ({percentGreater}: ConversionSurchargeParams) => `Cantidad ${percentGreater}% mayor que el recibo escaneado`,
        customUnitOutOfPolicy: 'Unidad personalizada fuera de la política',
        duplicatedTransaction: 'Transacción duplicada detectada',
        fieldRequired: 'Descripción requerida para la categoría seleccionada',
        futureDate: 'No se permite fecha futura',
        invoiceMarkup: 'Recargo de factura',
        maxAge: ({dayOverdue}: MaxAgeParams) => `Fecha más antigua que el límite del espacio de trabajo de ${dayOverdue} días`,
        missingCategory: 'Falta categoría',
        missingComment: 'Falta comentario',
        missingTag: ({tagName}: MissingTagParams) => `Falta ${tagName}`,
        modifiedAmount: 'Cantidad mayor que el recibo escaneado',
        modifiedDate: 'La fecha difiere del recibo escaneado',
        nonExpensiworksExpense: 'Gasto no Expensiworks',
        overAutoApprovalLimit: 'Sobre el límite de aprobación automática',
        overCategoryLimit: 'Cantidad sobre el límite para la categoría seleccionada',
        overLimit: ({amount}: OverLimitParams) => `Cantidad sobre el límite del espacio de trabajo de ${amount}`,
        overLimitAttendee: 'Asistente sobre el límite',
        perDayLimit: ({category}: PerDayLimitParams) => `Cantidad sobre el límite diario para la ${category} seleccionada`,
        receiptNotSmartScanned: 'Recibo no verificado a través de Auditoría de Recibos. Por favor, verifique los detalles.',
        receiptRequired: 'Se requiere recibo para la categoría seleccionada',
        rter: 'RTER',
        smartscanFailed: 'Falló Smartscan',
        someTagLevelsRequired: 'Se requieren algunos niveles de etiquetas',
        tagOutOfPolicy: ({tagName}: MissingTagParams) => `${tagName} ya no existe`,
        taxAmountChanged: 'El monto del impuesto fue modificado',
        taxOutOfPolicy: ({taxName}: TaxOutOfPolicyParams) => `${taxName} ya no existe`,
        taxRateChanged: 'La tasa de impuesto fue modificada',
        taxRequired: 'Falta tasa de impuesto',
    },
    ```

@trevor-coleman per the issue, feel free to add dummy translations to the EN and ES files for now for the violations, and don't block this PR on that

Alright dummies are back! This should be ready to go.

One final change -- discussed it with @cdanwards and I think it would be better to return the entire TransactionViolation object from the getViolationsForField() rather than the translated name.
There are two reasons for this:

best practice in React development to translate things at the last possible moment, and keep them as strings all the way along until the end. that allows for the most flxibility (if we wanted to style them differently based on category or tag or something)
as it is we’re not actually returning violations, so it should really be called getTranslatedViolationNamesForField or something, which feels unwieldy.

The end result looks like this:
// MoneyRequestView.tsx
const {getViolationsForField, hasViolations} = useViolations(transactionViolations)

// ...

<FieldViolationMessages violations={getViolationsForField('amount')} />

// FieldViolationMessages.tsx

violations.map(({name}:TransactionViolation) => (
    <View key={`${field}.${name}`}>
        <Text style={[styles.ph5, styles.textLabelError]}>{translate(name)}</Text>
    </View>
))}

So it's all very legible. It simplifies and improves isolation in the tests as well because we no longer need to mock useLocalize.

@cead22 This is ready to go -- let me know if there's anything else you need so we can get it merged!

OK reverted package-lock.json, simplified the tests, let  me know if there's anything else @cead22

Fixed up ViolationUtilsTest as per your suggestions.

All my comments can be addressed in a followup PR so we can merge this and unblock other work. I'll create a new issue for addressing those comments
@situchan can you please re-review and fill out the reviewer checklist when you get a chance? Thanks

sure, will do during weekend

@situchan do you think you'll be able to review today?

yes on it now

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(themeColors.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 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

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/108292595/cfd0c9c6-732a-4936-8ca7-47ecacc9b249

MacOS: Desktop

Applied prettier and merged main.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Cherry-picked to staging by https://github.com/yuwenmemon in version: 1.4.7-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to staging by https://github.com/cead22 in version: 1.4.8-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.4.8-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.4.8-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Implement a name method for job applications

Review app deployed to https://teaching-vacancies-review-pr-3392.london.cloudapps.digital


hyprpm update failed with error 4

System Info and Version
 System/Version info
Hyprland, built from branch main at commit 358e59e69d27a69381bc0872b5b8d1184bc6b6a1  (layout: fix centering of new floating windows).
Date: Mon Jun 3 02:11:55 2024
Tag: v0.40.0-150-g358e59e6, commits: 4756

flags: (if any)

System Information:
System name: Linux
Node name: basit-arch
Release: 6.9.3-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 31 May 2024 15:14:45 +0000

GPU information:
0a:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070 Ti] [10de:2482] (rev a1) (prog-if 00 [VGA controller])```

Bug or Regression?
Regression
Description
hyprpm update fails with

✖ failed to install headers with error code 4
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Failed

✖ Headers version mismatch. Please run hyprpm update to fix those.
sh: -c: line 1: unexpected EOF while looking for matching `''

How to reproduce
hyprpm update -n -v

Crash reports, logs, images, videos
 Complete logs
❯ hyprpm update -n -v
[v] version returned: Hyprland, built from branch main at commit 358e59e69d27a69381bc0872b5b8d1184bc6b6a1  (layout: fix centering of new floating windows).
Date: Mon Jun 3 02:11:55 2024
Tag: v0.40.0-150-g358e59e6, commits: 4756

flags: (if any)

[v] parsed commit 358e59e69d27a69381bc0872b5b8d1184bc6b6a1 at branch main on Mon Jun 3 02:11:55 2024, commits 4756

 ╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  0 / 5  Cloning the hyprland repo! Cloning https://github.com/hyprwm/hyprland, this might take a moment.
 ╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  0 / 5  Cloning the hyprland repo[v] will shallow since: Mon May 27 02:11:55 2024

 ╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  0 / 5  Cloning the hyprland repo✔ cloned
 ╍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  0 / 5  Cloning the hyprland repo[v] git returned (co): Already on 'main'
Your branch is up to date with 'origin/main'.

[v] git returned (rs): rm 'subprojects/tracy'
fatal: Could not parse object '358e59e69d27a69381bc0872b5b8d1184bc6b6a1'.

✔ checked out to running ver
! configuring Hyprland
[v] setting PREFIX for cmake to /home/basit/.local/share/hyprpm/headersRoot
[v] cmake returned: CMake Warning (dev) at /usr/share/cmake/Modules/GNUInstallDirs.cmake:253 (message):
  Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
  target architecture is known.  Please enable at least one language before
  including GNUInstallDirs.
Call Stack (most recent call first):
  CMakeLists.txt:5 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.
Not searching for unused variables given on the command line.

-- The C compiler identification is GNU 14.1.1
-- The CXX compiler identification is GNU 14.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Gathering git info
fatal: No names found, cannot describe anything.
-- Found Python3: /usr/bin/python3.12 (found version "3.12.3") found components: Interpreter
Building itab.c/itab.h...
-- Setting up wlroots
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Found WaylandScanner at /usr/bin/wayland-scanner
-- Found wayland-protocols at //usr/share/wayland-protocols
-- Configuring Hyprland in Release with CMake
-- Checking deps...
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found OpenGL: /usr/lib/libOpenGL.so  found components: GLES3
-- Checking for modules 'xkbcommon;uuid;wayland-server;wayland-client;wayland-cursor;wayland-protocols;cairo;pango;pangocairo;pixman-1;libdrm;libinput;hwdata;libseat;libdisplay-info;libliftoff;libudev;gbm;hyprlang>=0.3.2;hyprcursor>=0.1.7'
--   Found xkbcommon, version 1.7.0
--   Found uuid, version 2.40.1
--   Found wayland-server, version 1.23.0
--   Found wayland-client, version 1.23.0
--   Found wayland-cursor, version 1.23.0
--   Found wayland-protocols, version 1.36
--   Found cairo, version 1.18.0
--   Found pango, version 1.52.2
--   Found pangocairo, version 1.52.2
--   Found pixman-1, version 0.43.4
--   Found libdrm, version 2.4.120
--   Found libinput, version 1.25.0
--   Found hwdata, version 0.382
--   Found libseat, version 0.8.0
--   Found libdisplay-info, version 0.1.1
--   Found libliftoff, version 0.4.1
--   Found libudev, version 255
--   Found gbm, version 24.1.0-arch1.1
--   Found hyprlang, version 0.5.1
--   Found hyprcursor, version 0.1.9
-- Looking for execinfo.h
-- Looking for execinfo.h - found
-- Configuration supports execinfo
-- Looking for backtrace in execinfo
-- Looking for backtrace in execinfo - not found
-- Looking for sys/timerfd.h
-- Looking for sys/timerfd.h - found
-- Checking for module 'epoll-shim'
--   Package 'epoll-shim', required by 'virtual:world', not found
-- XWAYLAND Enabled (NO_XWAYLAND not defined) checking deps...
-- Checking for modules 'xcb;xwayland;xcb-util;xcb-render;xcb-xfixes;xcb-icccm;xcb-composite;xcb-res;xcb-ewmh;xcb-errors'
--   Found xcb, version 1.17.0
--   Found xwayland, version 24.1.0
--   Found xcb-util, version 0.4.1
--   Found xcb-render, version 1.17.0
--   Found xcb-xfixes, version 1.17.0
--   Found xcb-icccm, version 0.4.2
--   Found xcb-composite, version 1.17.0
--   Found xcb-res, version 1.17.0
--   Found xcb-ewmh, version 0.4.2
--   Found xcb-errors, version 1.0.1
-- SYSTEMD support is requested (NO_SYSTEMD not defined)...
-- Setting precompiled headers
-- Setting link libraries
-- Checking for module 'tomlplusplus'
--   Found tomlplusplus, version 3.4.0
-- Configuring done (1.2s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/hyprpm/hyprland-basit/build

[v] meson returned: The Meson build system
Version: 1.4.1
Source dir: /tmp/hyprpm/hyprland-basit/subprojects/wlroots-hyprland
Build dir: /tmp/hyprpm/hyprland-basit/subprojects/wlroots-hyprland/build
Build type: native build
Project name: wlroots
Project version: 0.18.0-dev
C compiler for the host machine: cc (gcc 14.1.1 "cc (GCC) 14.1.1 20240522")
C linker for the host machine: cc ld.bfd 2.42.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Winit-self: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wimplicit-fallthrough=2: YES
Compiler for C supports arguments -Wendif-labels: YES
Compiler for C supports arguments -Wstrict-aliasing=2: YES
Compiler for C supports arguments -Woverflow: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Walloca: YES
Compiler for C supports arguments -Wno-missing-braces: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -fmacro-prefix-map=/prefix/to/hide=: YES
Found pkg-config: YES (/usr/bin/pkg-config) 2.1.1
Run-time dependency wayland-server found: YES 1.23.0
Run-time dependency libdrm found: YES 2.4.120
Run-time dependency xkbcommon found: YES 1.7.0
Run-time dependency pixman-1 found: YES 0.43.4
Library m found: YES
Library rt found: YES
Run-time dependency wayland-protocols found: YES 1.36
Build-time dependency wayland-scanner found: YES 1.23.0
Program /usr/bin/wayland-scanner found: YES (/usr/bin/wayland-scanner)
Has header "linux/dma-buf.h" : YES
Run-time dependency egl found: YES 1.5
Run-time dependency gbm found: YES 24.1.0-arch1.1
Run-time dependency glesv2 found: YES 3.2
Program ./embed.sh found: YES (/tmp/hyprpm/hyprland-basit/subprojects/wlroots-hyprland/render/gles2/shaders/./embed.sh)
Dependency pixman-1 found: YES 0.43.4 (cached)
Dependency gbm found: YES 24.1.0-arch1.1 (cached)
Checking for function "gbm_bo_get_fd_for_plane" with dependency gbm: YES
Run-time dependency libudev found: YES 255
Run-time dependency libseat found: YES 0.8.0
Build-time dependency hwdata found: YES 0.382
Run-time dependency libdisplay-info found: YES 0.1.1
Run-time dependency libliftoff found: YES 0.4.1
Run-time dependency libinput found: YES 1.25.0
Run-time dependency xcb found: YES 1.17.0
Run-time dependency xcb-dri3 found: YES 1.17.0
Run-time dependency xcb-present found: YES 1.17.0
Run-time dependency xcb-render found: YES 1.17.0
Run-time dependency xcb-renderutil found: YES 0.3.10
Run-time dependency xcb-shm found: YES 1.17.0
Run-time dependency xcb-xfixes found: YES 1.17.0
Run-time dependency xcb-xinput found: YES 1.17.0
Run-time dependency wayland-client found: YES 1.23.0
Run-time dependency xwayland found: YES 24.1.0
Dependency xcb found: YES 1.17.0 (cached)
Run-time dependency xcb-composite found: YES 1.17.0
Run-time dependency xcb-ewmh found: YES 0.4.2
Run-time dependency xcb-icccm found: YES 0.4.2
Dependency xcb-render found: YES 1.17.0 (cached)
Run-time dependency xcb-res found: YES 1.17.0
Dependency xcb-xfixes found: YES 1.17.0 (cached)
Run-time dependency xcb-errors found: YES 1.0.1
Checking for function "xcb_xfixes_set_client_disconnect_mode" with dependencies xcb, xcb-composite, xcb-ewmh, xcb-icccm, xcb-render, xcb-res, xcb-xfixes, xcb-errors: YES
Configuring config.h using configuration
Configuring version.h using configuration
Configuring config.h using configuration
Message: Patches found. Applying...
NEW: 'patches/nvidia-hardware-cursors.patch'
NEW: 'patches/surface-nondivisible-by-scale.patch'
Build targets in project: 136

wlroots 0.18.0-dev

    drm-backend     : YES
    x11-backend     : YES
    libinput-backend: YES
    xwayland        : YES
    gles2-renderer  : YES
    vulkan-renderer : NO
    gbm-allocator   : YES
    session         : YES
    xcb-errors      : YES
    egl             : YES
    libliftoff      : YES

  User defined options
    examples        : false
    renderers       : gles2

Found ninja-1.12.1 at /usr/bin/ninja

✔ configured Hyprland
[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/basit/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-basit/Makefile && cd /tmp/hyprpm/hyprland-basit && make installheaders
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━  4 / 5  Installing sources[v] installer returned: # remove previous headers from hyprpm's dir
rm -fr /home/basit/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/basit/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/basit/.local/share/hyprpm/headersRoot/include/hyprland/protocols
mkdir -p /home/basit/.local/share/hyprpm/headersRoot/include/hyprland/wlr
mkdir -p /home/basit/.local/share/hyprpm/headersRoot/share/pkgconfig
cmake --build ./build --config Release --target generate-protocol-headers
[0/2] Re-checking globbed directories...
[1/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-screencopy-unstable-v1-protocol.h
[2/39] Generating /tmp/hyprpm/hyprland-basit/protocols/hyprland-global-shortcuts-v1-protocol.h
[3/39] Generating /tmp/hyprpm/hyprland-basit/protocols/hyprland-toplevel-export-v1-protocol.h
[4/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-gamma-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/wlr-gamma-control-unstable-v1.hpp
[5/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-foreign-toplevel-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/wlr-foreign-toplevel-management-unstable-v1.hpp
[6/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-output-power-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/wlr-output-power-management-unstable-v1.hpp
[7/39] Generating /tmp/hyprpm/hyprland-basit/protocols/linux-dmabuf-unstable-v1-protocol.h
[8/39] Generating /tmp/hyprpm/hyprland-basit/protocols/text-input-unstable-v1-protocol.h
[9/39] Generating /tmp/hyprpm/hyprland-basit/protocols/virtual-keyboard-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/virtual-keyboard-unstable-v1.hpp
[10/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-virtual-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/wlr-virtual-pointer-unstable-v1.hpp
[11/39] Generating /tmp/hyprpm/hyprland-basit/protocols/input-method-unstable-v2.cpp, /tmp/hyprpm/hyprland-basit/protocols/input-method-unstable-v2.hpp
[12/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-output-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/wlr-output-management-unstable-v1.hpp
[13/39] Generating /tmp/hyprpm/hyprland-basit/protocols/kde-server-decoration.cpp, /tmp/hyprpm/hyprland-basit/protocols/kde-server-decoration.hpp
[14/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-data-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/wlr-data-control-unstable-v1.hpp
[15/39] Generating /tmp/hyprpm/hyprland-basit/protocols/hyprland-focus-grab-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/hyprland-focus-grab-v1.hpp
[16/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wlr-layer-shell-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/wlr-layer-shell-unstable-v1.hpp
[17/39] Generating /tmp/hyprpm/hyprland-basit/protocols/tearing-control-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/tearing-control-v1.hpp
[18/39] Generating /tmp/hyprpm/hyprland-basit/protocols/fractional-scale-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/fractional-scale-v1.hpp
[19/39] Generating /tmp/hyprpm/hyprland-basit/protocols/xdg-output-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/xdg-output-unstable-v1.hpp
[20/39] Generating /tmp/hyprpm/hyprland-basit/protocols/cursor-shape-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/cursor-shape-v1.hpp
[21/39] Generating /tmp/hyprpm/hyprland-basit/protocols/idle-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/idle-inhibit-unstable-v1.hpp
[22/39] Generating /tmp/hyprpm/hyprland-basit/protocols/relative-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/relative-pointer-unstable-v1.hpp
[23/39] Generating /tmp/hyprpm/hyprland-basit/protocols/xdg-decoration-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/xdg-decoration-unstable-v1.hpp
[24/39] Generating /tmp/hyprpm/hyprland-basit/protocols/ext-foreign-toplevel-list-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/ext-foreign-toplevel-list-v1.hpp
[25/39] Generating /tmp/hyprpm/hyprland-basit/protocols/alpha-modifier-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/alpha-modifier-v1.hpp
[26/39] Generating /tmp/hyprpm/hyprland-basit/protocols/pointer-gestures-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/pointer-gestures-unstable-v1.hpp
[27/39] Generating /tmp/hyprpm/hyprland-basit/protocols/keyboard-shortcuts-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/keyboard-shortcuts-inhibit-unstable-v1.hpp
[28/39] Generating /tmp/hyprpm/hyprland-basit/protocols/text-input-unstable-v3.cpp, /tmp/hyprpm/hyprland-basit/protocols/text-input-unstable-v3.hpp
[29/39] Generating /tmp/hyprpm/hyprland-basit/protocols/pointer-constraints-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/pointer-constraints-unstable-v1.hpp
[30/39] Generating /tmp/hyprpm/hyprland-basit/protocols/xdg-activation-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/xdg-activation-v1.hpp
[31/39] Generating /tmp/hyprpm/hyprland-basit/protocols/ext-idle-notify-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/ext-idle-notify-v1.hpp
[32/39] Generating /tmp/hyprpm/hyprland-basit/protocols/ext-session-lock-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/ext-session-lock-v1.hpp
[33/39] Generating /tmp/hyprpm/hyprland-basit/protocols/presentation-time.cpp, /tmp/hyprpm/hyprland-basit/protocols/presentation-time.hpp
[34/39] Generating /tmp/hyprpm/hyprland-basit/protocols/primary-selection-unstable-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/primary-selection-unstable-v1.hpp
[35/39] Generating /tmp/hyprpm/hyprland-basit/protocols/tablet-v2.cpp, /tmp/hyprpm/hyprland-basit/protocols/tablet-v2.hpp
[36/39] Generating /tmp/hyprpm/hyprland-basit/protocols/xdg-shell.cpp, /tmp/hyprpm/hyprland-basit/protocols/xdg-shell.hpp
[37/39] Generating /tmp/hyprpm/hyprland-basit/protocols/xwayland-shell-v1.cpp, /tmp/hyprpm/hyprland-basit/protocols/xwayland-shell-v1.hpp
[38/39] Generating /tmp/hyprpm/hyprland-basit/protocols/wayland.cpp, /tmp/hyprpm/hyprland-basit/protocols/wayland.hpp
find src -name '*.h*' -print0 | cpio --quiet -0dump /home/basit/.local/share/hyprpm/headersRoot/include/hyprland
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/basit/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/basit/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cp ./protocols/*.h* /home/basit/.local/share/hyprpm/headersRoot/include/hyprland/protocols
cp ./build/hyprland.pc /home/basit/.local/share/hyprpm/headersRoot/share/pkgconfig
if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi
chmod -R 755 /home/basit/.local/share/hyprpm/headersRoot/include/hyprland
chmod 755 /home/basit/.local/share/hyprpm/headersRoot/share/pkgconfig

✖ failed to install headers with error code 4
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Failed

✖ Headers version mismatch. Please run hyprpm update to fix those.
sh: -c: line 1: unexpected EOF while looking for matching `''

Can you check whether make installheaders works in the cloned repo?

It does.

i have the same issue the verbose update log gives me this
v] version returned: Hyprland, built from branch main at commit 358e59e69d27a69381bc0872b5b8d1184bc6b6a1  (layout: fix centering of new floating windows).
Date: Sun Jun 2 21:11:55 2024
Tag: v0.40.0-150-g358e59e6, commits: 4756

flags: (if any)

[v] parsed commit 358e59e69d27a69381bc0872b5b8d1184bc6b6a1 at branch main on Sun Jun 2 21:11:55 2024, commits 4756

! Cloning https://github.com/hyprwm/hyprland, this might take a moment.
[v] will shallow since: Sun May 26 21:11:55 2024

✔ cloned
[v] git returned (co): Already on 'main'
Your branch is up to date with 'origin/main'.

[v] git returned (rs): rm 'subprojects/tracy'
fatal: Could not parse object '358e59e69d27a69381bc0872b5b8d1184bc6b6a1'.

✔ checked out to running ver
! configuring Hyprland
[v] setting PREFIX for cmake to /home/Haku/.local/share/hyprpm/headersRoot
[v] cmake returned: CMake Warning (dev) at /usr/share/cmake/Modules/GNUInstallDirs.cmake:253 (message):
  Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
  target architecture is known.  Please enable at least one language before
  including GNUInstallDirs.
Call Stack (most recent call first):
  CMakeLists.txt:5 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.
Not searching for unused variables given on the command line.

-- The C compiler identification is GNU 14.1.1
-- The CXX compiler identification is GNU 14.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Gathering git info
fatal: No names found, cannot describe anything.
-- Found Python3: /usr/bin/python3.12 (found version "3.12.3") found components: Interpreter
Building itab.c/itab.h...
-- Setting up wlroots
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Found WaylandScanner at /usr/bin/wayland-scanner
-- Found wayland-protocols at //usr/share/wayland-protocols
-- Configuring Hyprland in Release with CMake
-- Checking deps...
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found OpenGL: /usr/lib/libOpenGL.so  found components: GLES3
-- Checking for modules 'xkbcommon;uuid;wayland-server;wayland-client;wayland-cursor;wayland-protocols;cairo;pango;pangocairo;pixman-1;libdrm;libinput;hwdata;libseat;libdisplay-info;libliftoff;libudev;gbm;hyprlang>=0.3.2;hyprcursor>=0.1.7'
--   Found xkbcommon, version 1.7.0
--   Found uuid, version 2.40.1
--   Found wayland-server, version 1.23.0
--   Found wayland-client, version 1.23.0
--   Found wayland-cursor, version 1.23.0
--   Found wayland-protocols, version 1.36
--   Found cairo, version 1.18.0
--   Found pango, version 1.52.2
--   Found pangocairo, version 1.52.2
--   Found pixman-1, version 0.43.4
--   Found libdrm, version 2.4.120
--   Found libinput, version 1.25.0
--   Found hwdata, version 0.382
--   Found libseat, version 0.8.0
--   Found libdisplay-info, version 0.1.1
--   Found libliftoff, version 0.4.1
--   Found libudev, version 255
--   Found gbm, version 24.1.0-arch1.1
--   Found hyprlang, version 0.5.2
--   Found hyprcursor, version 0.1.9
-- Looking for execinfo.h
-- Looking for execinfo.h - found
-- Configuration supports execinfo
-- Looking for backtrace in execinfo
-- Looking for backtrace in execinfo - not found
-- Looking for sys/timerfd.h
-- Looking for sys/timerfd.h - found
-- Checking for module 'epoll-shim'
--   Package 'epoll-shim', required by 'virtual:world', not found
-- XWAYLAND Enabled (NO_XWAYLAND not defined) checking deps...
-- Checking for modules 'xcb;xwayland;xcb-util;xcb-render;xcb-xfixes;xcb-icccm;xcb-composite;xcb-res;xcb-ewmh;xcb-errors'
--   Found xcb, version 1.17.0
--   Found xwayland, version 24.1.0
--   Found xcb-util, version 0.4.1
--   Found xcb-render, version 1.17.0
--   Found xcb-xfixes, version 1.17.0
--   Found xcb-icccm, version 0.4.2
--   Found xcb-composite, version 1.17.0
--   Found xcb-res, version 1.17.0
--   Found xcb-ewmh, version 0.4.2
--   Found xcb-errors, version 1.0.1
-- SYSTEMD support is requested (NO_SYSTEMD not defined)...
-- Setting precompiled headers
-- Setting link libraries
-- Checking for module 'tomlplusplus'
--   Found tomlplusplus, version 3.4.0
-- Configuring done (2.1s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/hyprpm/hyprland-Haku/build

[v] meson returned: The Meson build system
Version: 1.4.1
Source dir: /tmp/hyprpm/hyprland-Haku/subprojects/wlroots-hyprland
Build dir: /tmp/hyprpm/hyprland-Haku/subprojects/wlroots-hyprland/build
Build type: native build
Project name: wlroots
Project version: 0.18.0-dev
C compiler for the host machine: cc (gcc 14.1.1 "cc (GCC) 14.1.1 20240522")
C linker for the host machine: cc ld.bfd 2.42.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Winit-self: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wimplicit-fallthrough=2: YES
Compiler for C supports arguments -Wendif-labels: YES
Compiler for C supports arguments -Wstrict-aliasing=2: YES
Compiler for C supports arguments -Woverflow: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Walloca: YES
Compiler for C supports arguments -Wno-missing-braces: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -fmacro-prefix-map=/prefix/to/hide=: YES
Found pkg-config: YES (/usr/bin/pkg-config) 2.1.1
Run-time dependency wayland-server found: YES 1.23.0
Run-time dependency libdrm found: YES 2.4.120
Run-time dependency xkbcommon found: YES 1.7.0
Run-time dependency pixman-1 found: YES 0.43.4
Library m found: YES
Library rt found: YES
Run-time dependency wayland-protocols found: YES 1.36
Build-time dependency wayland-scanner found: YES 1.23.0
Program /usr/bin/wayland-scanner found: YES (/usr/bin/wayland-scanner)
Has header "linux/dma-buf.h" : YES
Run-time dependency egl found: YES 1.5
Run-time dependency gbm found: YES 24.1.0-arch1.1
Run-time dependency glesv2 found: YES 3.2
Program ./embed.sh found: YES (/tmp/hyprpm/hyprland-Haku/subprojects/wlroots-hyprland/render/gles2/shaders/./embed.sh)
Dependency pixman-1 found: YES 0.43.4 (cached)
Dependency gbm found: YES 24.1.0-arch1.1 (cached)
Checking for function "gbm_bo_get_fd_for_plane" with dependency gbm: YES
Run-time dependency libudev found: YES 255
Run-time dependency libseat found: YES 0.8.0
Build-time dependency hwdata found: YES 0.382
Run-time dependency libdisplay-info found: YES 0.1.1
Run-time dependency libliftoff found: YES 0.4.1
Run-time dependency libinput found: YES 1.25.0
Run-time dependency xcb found: YES 1.17.0
Run-time dependency xcb-dri3 found: YES 1.17.0
Run-time dependency xcb-present found: YES 1.17.0
Run-time dependency xcb-render found: YES 1.17.0
Run-time dependency xcb-renderutil found: YES 0.3.10
Run-time dependency xcb-shm found: YES 1.17.0
Run-time dependency xcb-xfixes found: YES 1.17.0
Run-time dependency xcb-xinput found: YES 1.17.0
Run-time dependency wayland-client found: YES 1.23.0
Run-time dependency xwayland found: YES 24.1.0
Dependency xcb found: YES 1.17.0 (cached)
Run-time dependency xcb-composite found: YES 1.17.0
Run-time dependency xcb-ewmh found: YES 0.4.2
Run-time dependency xcb-icccm found: YES 0.4.2
Dependency xcb-render found: YES 1.17.0 (cached)
Run-time dependency xcb-res found: YES 1.17.0
Dependency xcb-xfixes found: YES 1.17.0 (cached)
Run-time dependency xcb-errors found: YES 1.0.1
Checking for function "xcb_xfixes_set_client_disconnect_mode" with dependencies xcb, xcb-composite, xcb-ewmh, xcb-icccm, xcb-render, xcb-res, xcb-xfixes, xcb-errors: YES
Configuring config.h using configuration
Configuring version.h using configuration
Configuring config.h using configuration
Message: Patches found. Applying...
NEW: 'patches/nvidia-hardware-cursors.patch'
NEW: 'patches/surface-nondivisible-by-scale.patch'
Build targets in project: 136

wlroots 0.18.0-dev

    drm-backend     : YES
    x11-backend     : YES
    libinput-backend: YES
    xwayland        : YES
    gles2-renderer  : YES
    vulkan-renderer : NO
    gbm-allocator   : YES
    session         : YES
    xcb-errors      : YES
    egl             : YES
    libliftoff      : YES

  User defined options
    examples        : false
    renderers       : gles2

Found ninja-1.12.1 at /usr/bin/ninja

✔ configured Hyprland
[v] installation will run: sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/Haku/.local/share/hyprpm/headersRoot#" /tmp/hyprpm/hyprland-Haku/Makefile && cd /tmp/hyprpm/hyprland-Haku && make installheaders
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍━━━━━━━━━  4 / 5  Installing sources[v] installer returned: # remove previous headers from hyprpm's dir
rm -fr /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland/protocols
mkdir -p /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland/wlr
mkdir -p /home/Haku/.local/share/hyprpm/headersRoot/share/pkgconfig
cmake --build ./build --config Release --target generate-protocol-headers
[0/2] Re-checking globbed directories...
[1/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/hyprland-global-shortcuts-v1-protocol.h
[2/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-gamma-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wlr-gamma-control-unstable-v1.hpp
[3/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-foreign-toplevel-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wlr-foreign-toplevel-management-unstable-v1.hpp
[4/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-screencopy-unstable-v1-protocol.h
[5/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/hyprland-toplevel-export-v1-protocol.h
[6/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/linux-dmabuf-unstable-v1-protocol.h
[7/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/text-input-unstable-v1-protocol.h
[8/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-output-power-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wlr-output-power-management-unstable-v1.hpp
[9/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/virtual-keyboard-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/virtual-keyboard-unstable-v1.hpp
[10/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-virtual-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wlr-virtual-pointer-unstable-v1.hpp
[11/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/input-method-unstable-v2.cpp, /tmp/hyprpm/hyprland-Haku/protocols/input-method-unstable-v2.hpp
[12/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-output-management-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wlr-output-management-unstable-v1.hpp
[13/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/kde-server-decoration.cpp, /tmp/hyprpm/hyprland-Haku/protocols/kde-server-decoration.hpp
[14/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-data-control-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wlr-data-control-unstable-v1.hpp
[15/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/hyprland-focus-grab-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/hyprland-focus-grab-v1.hpp
[16/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wlr-layer-shell-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wlr-layer-shell-unstable-v1.hpp
[17/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/tearing-control-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/tearing-control-v1.hpp
[18/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/xdg-output-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/xdg-output-unstable-v1.hpp
[19/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/fractional-scale-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/fractional-scale-v1.hpp
[20/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/cursor-shape-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/cursor-shape-v1.hpp
[21/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/idle-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/idle-inhibit-unstable-v1.hpp
[22/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/relative-pointer-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/relative-pointer-unstable-v1.hpp
[23/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/xdg-decoration-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/xdg-decoration-unstable-v1.hpp
[24/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/alpha-modifier-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/alpha-modifier-v1.hpp
[25/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/ext-foreign-toplevel-list-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/ext-foreign-toplevel-list-v1.hpp
[26/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/pointer-gestures-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/pointer-gestures-unstable-v1.hpp
[27/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/keyboard-shortcuts-inhibit-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/keyboard-shortcuts-inhibit-unstable-v1.hpp
[28/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/text-input-unstable-v3.cpp, /tmp/hyprpm/hyprland-Haku/protocols/text-input-unstable-v3.hpp
[29/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/pointer-constraints-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/pointer-constraints-unstable-v1.hpp
[30/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/xdg-activation-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/xdg-activation-v1.hpp
[31/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/ext-idle-notify-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/ext-idle-notify-v1.hpp
[32/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/ext-session-lock-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/ext-session-lock-v1.hpp
[33/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/tablet-v2.cpp, /tmp/hyprpm/hyprland-Haku/protocols/tablet-v2.hpp
[34/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/presentation-time.cpp, /tmp/hyprpm/hyprland-Haku/protocols/presentation-time.hpp
[35/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/xdg-shell.cpp, /tmp/hyprpm/hyprland-Haku/protocols/xdg-shell.hpp
[36/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/primary-selection-unstable-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/primary-selection-unstable-v1.hpp
[37/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/wayland.cpp, /tmp/hyprpm/hyprland-Haku/protocols/wayland.hpp
[38/39] Generating /tmp/hyprpm/hyprland-Haku/protocols/xwayland-shell-v1.cpp, /tmp/hyprpm/hyprland-Haku/protocols/xwayland-shell-v1.hpp
find src -name '*.h*' -print0 | cpio --quiet -0dump /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland/wlr && cd ../../../..
cp ./protocols/*.h* /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland/protocols
cp ./build/hyprland.pc /home/Haku/.local/share/hyprpm/headersRoot/share/pkgconfig
if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi
chmod -R 755 /home/Haku/.local/share/hyprpm/headersRoot/include/hyprland
chmod 755 /home/Haku/.local/share/hyprpm/headersRoot/share/pkgconfig

✖ failed to install headers with error code 4
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Failed

✖ Headers version mismatch. Please run hyprpm update to fix those.

can you explain a bit more on how you did this exactly and how i can repeat what you did im a bit confused

It seems like it's fixed with the latest update.

Can you check whether make installheaders works in the cloned repo?

Looked more carefully at the logs and your comment and tried to run this in the cloned repo,
sed -i -e "s#PREFIX = /usr/local#PREFIX = /home/basit/.local/share/hyprpm/headersRoot#" Makefile
make installheaders

This worked without any issues and running hyprpm -n -v updated all the plugins as well.

I have this repository cloned in a directory and I ran the above commands in there.

make installheaders

Looks like a missed path in home folder, cuz I'm not the basit
`make installheaders
remove previous headers from hyprpm's dir
rm -fr /home/basit/.local/share/hyprpm/headersRoot/include/hyprland
mkdir -p /home/basit/.local/share/hyprpm/headersRoot/include/hyprland`