FIX: Locations max issue

For parts with many locations, setPartRanges was going one location more
than needed, resulting in sending more data than the content-length.

PR has been updated. Reviewers, please be cautious.

@ironman-machine try

Hello @alexandre-merle
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16526' with the following env. args:
{
    "SCALITY_INTEGRATION_BRANCH": "ultron/master",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

:broken_heart: :umbrella: circleCI test failed.

failed, but fixing the first issue

@ironman-machine
SCALITY_BACKBEAT_BRANCH=test/aws-sdk-version
try

Hello @alexandre-merle
"SCALITY_BACKBEAT_BRANCH=test/aws-sdk-version": Success
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16535' with the following env. args:
{
    "SCALITY_BACKBEAT_BRANCH": "test/aws-sdk-version",
    "SCALITY_INTEGRATION_BRANCH": "ultron/master",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

@ironman-machine try

Hello @alexandre-merle
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16537' with the following env. args:
{
    "SCALITY_BACKBEAT_BRANCH": "test/aws-sdk-version",
    "SCALITY_INTEGRATION_BRANCH": "ultron/master",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

:broken_heart: :umbrella: circleCI test failed.

@ironman-machine
SCALITY_INTEGRATION_BRANCH=test/backbeat-issue
try

Hello @alexandre-merle
"SCALITY_INTEGRATION_BRANCH=test/backbeat-issue": Success
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16539' with the following env. args:
{
    "SCALITY_BACKBEAT_BRANCH": "test/aws-sdk-version",
    "SCALITY_INTEGRATION_BRANCH": "test/backbeat-issue",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

@ironman-machine try

Hello @alexandre-merle
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16541' with the following env. args:
{
    "SCALITY_BACKBEAT_BRANCH": "test/aws-sdk-version",
    "SCALITY_INTEGRATION_BRANCH": "test/backbeat-issue",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

:broken_heart: :umbrella: circleCI test failed.

@ironman-machine try

Hello @alexandre-merle
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16542' with the following env. args:
{
    "SCALITY_BACKBEAT_BRANCH": "test/aws-sdk-version",
    "SCALITY_INTEGRATION_BRANCH": "test/backbeat-issue",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

:broken_heart: :umbrella: circleCI test failed.

@ironman-machine r+

Hello @alexandre-merle
"r+": Failure: You don't have permission to do this.

oups, miss command

@ironman-machine try

Hello @alexandre-merle
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16544' with the following env. args:
{
    "SCALITY_BACKBEAT_BRANCH": "test/aws-sdk-version",
    "SCALITY_INTEGRATION_BRANCH": "test/backbeat-issue",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

:broken_heart: :umbrella: circleCI test failed.

@ironman-machine
SCALITY_INTEGRATION_BRANCH=test/backbeat-wait-complete
try

Hello @alexandre-merle
"SCALITY_INTEGRATION_BRANCH=test/backbeat-wait-complete": Success
"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16546' with the following env. args:
{
    "SCALITY_BACKBEAT_BRANCH": "test/aws-sdk-version",
    "SCALITY_INTEGRATION_BRANCH": "test/backbeat-wait-complete",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "fix/locations-max-issue"
}

:broken_heart: :umbrella: circleCI test failed.

How did this come up as an issue?

@LaurenSpiegel i have done a lot of tests this week end, and this is an issue i see in the container 5 of backbeat, this PR fix the issue.
For the context, backbeat was requesting a location start: 11, size: 11 and get back 12 character from S3, which leads to instable connections, 'data backend' econnreset, and other stuff

@LaurenSpiegel the related integration tests you can look into is http://ci.ironmann.io/gh/scality/Integration/16518#artifacts, you have a network trace inside it showing the bug

Please review https://github.com/scality/S3/pull/974, if that's ok and passes the tests it should replace this PR.


release: not found when I do helm install on a chart with some weird properties

Came across this while doing some mad science on directories that are both Helm charts and Javascript modules. Minimal repro case is here. The end result is that Helm successfully deploys a chart and immediately forgets that it did, like so:
> helm install --name test .
NAME:   test
Error: getting deployed release "test": release: not found

It does actually create the relevant Deployment object, but it doesn't know anything about the test release. I have to manually go in and delete the Deployment with kubectl.
I'm sure the problem is related to the node_modules directory -- it contains a zillion files and directories for all of my Javascript dependencies. Potentially I'm exceeding some hidden limit for files allowed within a Helm chart? Obviously I should be putting node_modules in .helmignore, but presumably Helm should also be doing something more coherent upon this failure case.

Can you get the output of Tiller's logs using kubectl? Also, if you do kubectl get configmap --namespace kube-system, do you see a config map with that release name (e.g. test)? THat's where it stores its deployment record.

Ah, looks like you got it, Tiller complains that it can't create the ConfigMap:
2017/02/22 01:58:57 storage.go:133: Getting release history for 'test'
2017/02/22 01:58:57 release_server.go:913: Executing pre-install hooks for test
2017/02/22 01:58:57 release_server.go:940: Hooks complete for pre-install test
2017/02/22 01:58:57 storage.go:133: Getting release history for 'test'
2017/02/22 01:58:57 release_server.go:913: Executing post-install hooks for test
2017/02/22 01:58:57 release_server.go:940: Hooks complete for post-install test
2017/02/22 01:58:57 storage.go:45: Create release "test" (v1) in storage
2017/02/22 01:58:57 cfgmaps.go:316: configmaps: create: failed to create: ConfigMap "test.v1" is invalid: data: Too long: must have at most 1048576 characters
2017/02/22 01:58:57 release_server.go:817: warning: Failed to record release "test": ConfigMap "test.v1" is invalid: data: Too long: must have at most 1048576 characters
2017/02/22 01:58:59 storage.go:133: Getting release history for 'test'

Ah! So the chart is too large to get stored. IIRC, there's a limit in Kubernetes 1.5 that no resource can be larger than (approximately) 1M. We do gzip the chart, but it probably still pushed beyond that limit.

Would it be possible to have a better error message for this? I had the same error release: not found, and it took me a while to figure out that the problem was that there was too much data to fit in a ConfigMap.
I'm not familiar with the design of Helm and Tiller, but maybe there's an easy way for Tiller to return this as a clear error message which Helm would show to the user?

I'd like to +1 the error message part. Ran into the same problem and had to figure out that the issue is a configmap (in my case one that didn't get delete with --purge for whatever reason).

This should be updated to be a bug.  When this issue happens the user gets a bad error message and the chart installs get orphaned.  If possible it would also be great to catch this prior to any kubernetes objects being installed or even by helm lint.
helm install .
NAME:   ugly-newt
Error: getting deployed release "ugly-newt": release: "ugly-newt" not found

helm delete --purge ugly-newt
Error: Unable to lock release "ugly-newt": release not found

kubectl get pods | grep ugly
ugly-newt-prometheus-alertmanager-2167339090-2tf56          2/2       Running            0          1m
ugly-newt-prometheus-kube-state-metrics-2256588538-w98gm    1/1       Running            0          1m
ugly-newt-prometheus-server-3612114810-flv8f                2/2       Running            0          1m

+1 for updating this to a bug.
I ran into the same problem. The charts were orphaned and i had to manually delete all the resources helm created and couldnt do a helm delete --purge
[storage/driver] 2017/10/02 15:25:43 create: failed to create: ConfigMap "mangy-hog.v1" is invalid: data: Too long: must have at most 1048576 characters
[tiller] 2017/10/02 15:25:43 warning: Failed to record release mangy-hog: ConfigMap "mangy-hog.v1" is invalid: data: Too long: must have at most 1048576 characters

-> % kubectl get statefulset
NAME                                    DESIRED   CURRENT   AGE
hardy-camel-mongodb-replicaset          3         1         16m
innocent-pronghorn-mongodb-replicaset   3         1         21m
loping-boxer-mongodb-replicaset         3         1         19m
mangy-hog-mongodb-replicaset            3         1         9m
mongo-log-rec-mongodb-replicaset        3         1         23m
veering-whippet-mongodb-replicaset      3         1         10m
volted-dragonfly-mongodb-replicaset     3         1         15m

I ran into this as well and it took quite a while to realize it's because I had a scratch file in the chart directory. A better error message would be greatly appreciated.

This looks like more than just bug relating to the error message.  We have ConfigMaps that are nearly 1MB on their own and already contain compressed data.  Kubernetes handles these without issue, but when helm combines them into a single ConfigMap it hits the Kubernetes limit.
The issue is magnified with sub-charts.

hi @dtirer what's the release name?

Just for others reference, you should just untar the chart to debug why its so big.  My problem is that my charts stored previous versions of themselves.

+1
Maybe helm can have an option leave out the contents of the charts' configmaps when storing the tiller configmap (for managing the chart). That way helm would still be able to know about all the properties/metadata in order to manage the chart but without the added storage need for cm-contentes. A nice tradeoff for people with many and large configmaps in the chart.

I realize this is an old post and closed issue, but I wanted to share what I discovered as the cause of the over-sized configmap. Each time I issued a helm package ./ command, any previous versions of the package (*.tzg files) was included in the current one. The tgz package file kept growing, exponentially. The cure was to add *.tgz to the .helmignore file.

maybe name issue,
[tiller] 2018/12/04 06:15:25 warning: Failed to record release k8s_service: ConfigMap "k8s_service.v1" is invalid: metadata.name: Invalid value: "k8s_service.v1": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is 'a-z0-9?(.a-z0-9?)*')
[kube] 2018/12/04 06:15:25 building resources from manifest

$ helm upgrade --install my-release http://utilities.hcldevopscoe.com:30323/repository/myhelmrepo/deploy-0.1.0.tgz --set image.repository=http://docker.gitops.hcldevopscoe.com/docker-repo/my-docker-image,image.tag=${CI_COMMIT_SHORT_SHA}
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /builds/fmohamm/java-container-based-deploymet.tmp/KUBECONFIG_FILE
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /builds/fmohamm/java-container-based-deploymet.tmp/KUBECONFIG_FILE
Release "my-release" does not exist. Installing it now.
Error: failed to fetch http://utilities.hcldevopscoe.com:30323/repository/myhelmrepo/deploy-0.1.0.tgz : 404 Not Found
Does anyone aware of this issue, I need help on this. Thanks!


Question: Is the server externally accessible too?

The possibility to push files to the device from another, by letting them share credentials and port numbers would open up for some interesting use cases for multi device file sharing on a local network.

The server is not accessible to the local network, see #12.
Allowing one app to write to another's filesystem directly would tightly couple them. If an app needs to receive information from another app, it should expose a well defined interface, which is not the purpose of this plugin.


[Feature] You can unclick after clicking any of the search box.

Problem

you can be able to unclick after clicking on any of the search box by mistake
Description

Alternatives

Additional context

Implementation

[x] I would be interested in implementing this feature.

@possumbilities @TimidRobot @VictoriaAjala please I'm interested in collaborating on this project , i'll be so excited to be assigned this project .Thanks so much


FR: sync --if-diff-only ?

Hi,
I would like to use the helmfiles feature (glob way) to sync multiple helmfile deployments, in GitOps model, which would run every x minutes and on push to the infra-git-repo.
The bash equivalent script, from the doc, seems to resync only if the definition have changed:
for d in apps/*; do helmfile -f $d diff; if [ $? -eq 2 ]; then helmfile -f $d sync; fi; done

But, helmfile sync on the parent folder is not doing this. This result in revision of the release (on the tiller side) bumps every time we resync.
Would it be possible to implement an option to resync only if detected diff?
Thank you.

Does helmfile apply do what you want? Be aware that unlike helmfile sync it always prints out the diff which might include sensitive information

Yes, I would recommend using apply for this case.  We could add a flag to apply to not print out the diff.

John... RTM
apply     apply all resources from state file only when there are changes
Thanks what I was after, thank you guys!


Project submission: Fabric JSON Library

I've written a very fast and reliable JSON library that I'd like to be subsumed under Typelevel if it meets the proper criteria: https://github.com/outr/fabric
It is arguably the fastest JSON library in Scala and offers immutable internal types as opposed to uPickle and is far easier to use than Circe. It is published for JVM, JS, and Native with 2.13 and 3 support.

Excited to see this & looking forward to taking a look!

@mpilquist thanks! I've got a few projects I'd like to potentially consider bringing over, just testing the waters with this one. Let me know if there's anything I can do or provide to help you all out.

Just to make sure we're all on the same page -- are you looking for this to be an "Organization" project (managed by TL), or an "Affiliate" project (associated with TL)?  Definitions can be found in the Charter.

@jducoeur thanks for clarifying, I'm looking for it to be an "Organization" project.

@typelevel/steering, you know the drill: :+1: to approve, :-1: to reject, :eyes: to count toward quorum.  We'll close it Monday if there's a quorum, or earlier if the outcome is clinched.

There's already an http4s-fabric module.  I also like seeing new approaches with different tradeoffs.  I think it's a neat project, and I'm in favor.

The vote passes with a quorum (9/13 > 50%) and at least a three-quarters vote (unanimous).
I created a fabric team and added @darkfrog26 as the admin.  When the repo gets transferred, we'll need to assign it to that team.  And we can add the project here to get it on the website.

Just to be clear, the next step for me is to transfer the repository to typelevel?

@rossabaker I'm ready to migrate fabric but need confirmation about the repository I'm moving to. :)

:wave: hi @darkfrog26, yes, transfer ownership to the typelevel organization.
I believe you should now have permissions to create repos under typelevel and can therefore complete the transfer.

@valencik thanks! The transfer is complete. Is there a checklist of next steps?

I don't know if we have a checklist, we likely should.
Just some thoughts on what we could do next:

[ ] Add fabric to the site by opening a PR here
[ ] Write a blog post announcing the change
[ ] Tweet about it

@darkfrog26 Would you be interesting in writing up a brief blog post that perhaps introduces fabric a bit?

Yes, a checklist would be great!
We could/should capture earlier steps as well:

[ ] create a team for the repo with maintainer as team member
[ ] after repo transfer, add repo with write permissions to the created team

Ross already handled the team creation and I just added the repo to the team perms, so I think in terms of github org management we're done??

Is there any documentation on doing releases and switching to the SBT plugin for Typelevel?

Do I just submit a PR here to submit a blog post? https://github.com/typelevel/typelevel.github.com/tree/development/collections/_posts

Is there any documentation on doing releases and switching to the SBT plugin for Typelevel?

https://typelevel.org/sbt-typelevel/

Closing as completed :)
The remaining announcement endeavors we can followup on in https://github.com/typelevel/governance/issues/67


Uncompatible API of base64 for dependency sequoia-openpgp

As https://github.com/confidential-containers/enclave-cc/issues/72, the problem is caused by dependency sequoia-openpgp who use abondoned APIs of the newly published crate base64.

Related issue for sequoia-pgp https://gitlab.com/sequoia-pgp/sequoia/-/issues/961
Let's use a new version of sequoia-pgp when it is fixed

Now the upstream issue has been fixed. I've tried locally and the build process passed. This issue can be closed now.


Add the Hebrew language to the software

Description of the new feature / enhancement
I ask for thousands of users in Israel to add Hebrew language to software
The software is excellent and perfect
What should be done for that will happen?
Scenario when this would be used?
Thousands of users of the State of Israel
Supporting information
No response

/dup #12468


./gradlew buildLib --info失败，不清楚原因，求助。

t]}.
bogon:ChinahrSmall liuzhao$ ./gradlew buildLib --info
Connected to daemon DaemonInfo{pid=13383, address=[36412a5a-7465-4a7f-890f-85ed35abba69 port:58371, addresses:[/0:0:0:0:0:0:0:1, /<IP_ADDRESS>]], idle=true, context=DefaultDaemonContext[uid=d7a636d2-311d-46d8-860f-980f4b5f065d,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home,daemonRegistryDir=/Users/liuzhao/.gradle/daemon,pid=13383,idleTimeout=10800000,daemonOpts=-Xmx2048m,-Dfile.encoding=UTF-8,-Duser.country=CN,-Duser.language=zh,-Duser.variant]}. Dispatching request Build{id=661b12c6-38af-48f1-93b2-6d5d4fcba488.1, currentDir=/Users/liuzhao/Documents/ChinahrSmall}.
The client will now receive all logging from the daemon (pid: 13383). The daemon log file: /Users/liuzhao/.gradle/daemon/2.4/daemon-13383.out.log
Starting 5th build in daemon [uptime: 5 mins 18.418 secs, performance: 100%, memory: 45% of 1.9 GB]
Executing build with daemon context: DefaultDaemonContext[uid=d7a636d2-311d-46d8-860f-980f4b5f065d,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home,daemonRegistryDir=/Users/liuzhao/.gradle/daemon,pid=13383,idleTimeout=10800000,daemonOpts=-Xmx2048m,-Dfile.encoding=UTF-8,-Duser.country=CN,-Duser.language=zh,-Duser.variant]
Starting Build
Settings evaluated using settings file '/Users/liuzhao/Documents/ChinahrSmall/settings.gradle'.
Projects loaded. Root project using build file '/Users/liuzhao/Documents/ChinahrSmall/build.gradle'.
Included projects: [root project 'ChinahrSmall', project ':app', project ':app.main', project ':lib.im']
Parallel execution is an incubating feature.
Evaluating root project 'ChinahrSmall' using build file '/Users/liuzhao/Documents/ChinahrSmall/build.gradle'.
Evaluating project ':app' using build file '/Users/liuzhao/Documents/ChinahrSmall/app/build.gradle'.
Creating configuration compile
Creating configuration apk
Creating configuration provided
Creating configuration wearApp
Creating configuration androidTestCompile
Creating configuration androidTestApk
Creating configuration androidTestProvided
Creating configuration androidTestWearApp
Creating configuration testCompile
Creating configuration testApk
Creating configuration testProvided
Creating configuration testWearApp
Creating configuration debugCompile
Creating configuration debugApk
Creating configuration debugProvided
Creating configuration debugWearApp
Creating configuration testDebugCompile
Creating configuration testDebugApk
Creating configuration testDebugProvided
Creating configuration testDebugWearApp
Creating configuration releaseCompile
Creating configuration releaseApk
Creating configuration releaseProvided
Creating configuration releaseWearApp
Creating configuration testReleaseCompile
Creating configuration testReleaseApk
Creating configuration testReleaseProvided
Creating configuration testReleaseWearApp
Evaluating project ':app.main' using build file '/Users/liuzhao/Documents/ChinahrSmall/app.main/build.gradle'.
Creating configuration compile
Creating configuration apk
Creating configuration provided
Creating configuration wearApp
Creating configuration androidTestCompile
Creating configuration androidTestApk
Creating configuration androidTestProvided
Creating configuration androidTestWearApp
Creating configuration testCompile
Creating configuration testApk
Creating configuration testProvided
Creating configuration testWearApp
Creating configuration debugCompile
Creating configuration debugApk
Creating configuration debugProvided
Creating configuration debugWearApp
Creating configuration testDebugCompile
Creating configuration testDebugApk
Creating configuration testDebugProvided
Creating configuration testDebugWearApp
Creating configuration releaseCompile
Creating configuration releaseApk
Creating configuration releaseProvided
Creating configuration releaseWearApp
Creating configuration testReleaseCompile
Creating configuration testReleaseApk
Creating configuration testReleaseProvided
Creating configuration testReleaseWearApp
[NewLens] NetworkBench NewLens plugin loaded.
[NewLens] Added tingyun instrumentation tasks
[NewLens] Added tingyun instrumentation tasks
[NewLens] Added tingyun instrumentation tasks
Evaluating project ':lib.im' using build file '/Users/liuzhao/Documents/ChinahrSmall/lib.im/build.gradle'.
Creating configuration compile
Creating configuration apk
Creating configuration provided
Creating configuration wearApp
Creating configuration androidTestCompile
Creating configuration androidTestApk
Creating configuration androidTestProvided
Creating configuration androidTestWearApp
Creating configuration testCompile
Creating configuration testApk
Creating configuration testProvided
Creating configuration testWearApp
Creating configuration debugCompile
Creating configuration debugApk
Creating configuration debugProvided
Creating configuration debugWearApp
Creating configuration testDebugCompile
Creating configuration testDebugApk
Creating configuration testDebugProvided
Creating configuration testDebugWearApp
Creating configuration releaseCompile
Creating configuration releaseApk
Creating configuration releaseProvided
Creating configuration releaseWearApp
Creating configuration testReleaseCompile
Creating configuration testReleaseApk
Creating configuration testReleaseProvided
Creating configuration testReleaseWearApp
Creating configuration instrumentTestCompile
Creating configuration instrumentTestApk
Creating configuration instrumentTestProvided
Creating configuration instrumentTestWearApp
When unzipping library ':WChatLib-release:, either group, name or version is empty
When unzipping library ':WChatLib-release:, either group, name or version is empty
When unzipping library ':WChatWrap-release:, either group, name or version is empty
When unzipping library ':WChatWrap-release:, either group, name or version is empty
When unzipping library ':WChatLib-release:, either group, name or version is empty
When unzipping library ':WChatLib-release:, either group, name or version is empty
When unzipping library ':WChatWrap-release:, either group, name or version is empty
When unzipping library ':WChatWrap-release:, either group, name or version is empty
No apt dependencies for configuration androidTestApt
No apt dependencies for configuration testApt
No apt dependencies for configuration testApt
All projects evaluated.

Executing task ':lib.im:preBuild' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
Executing task ':app:preBuild' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
[Small] building library 1 of 2 - app (0x7f)
:app:preBuild (Thread[Task worker Thread 2,5,main]) completed. Took 0.003 secs.
:buildLib (Thread[Task worker,5,main]) completed. Took 0.002 secs.
:app:preReleaseBuild (Thread[Task worker Thread 4,5,main]) started.
[Small] building library 1 of 2 - app (0x7f)
[Small] building library 2 of 2 - lib.im (0x31)
:app:preReleaseBuild
Skipping task ':app:preReleaseBuild' as it has no actions.
:app:preReleaseBuild (Thread[Task worker Thread 4,5,main]) completed. Took 0.001 secs.
:app:checkReleaseManifest (Thread[Task worker Thread 5,5,main]) started.
:app:checkReleaseManifest
Executing task ':app:checkReleaseManifest' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
:app:checkReleaseManifest (Thread[Task worker Thread 5,5,main]) completed. Took 0.001 secs.
:app:preDebugBuild (Thread[Daemon worker Thread 2,5,main]) started.
:app:preDebugBuild
Skipping task ':app:preDebugBuild' as it has no actions.
:app:preDebugBuild (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:app:prepareComAndroidSupportAnimatedVectorDrawable2340Library (Thread[Task worker Thread 5,5,main]) started.
:app:prepareComAndroidSupportAnimatedVectorDrawable2340Library
:lib.im:preBuild (Thread[Task worker Thread 3,5,main]) completed. Took 0.006 secs.
:lib.im:preReleaseBuild (Thread[Task worker,5,main]) started.
:lib.im:preReleaseBuild
Skipping task ':lib.im:preReleaseBuild' as it has no actions.
:lib.im:preReleaseBuild (Thread[Task worker,5,main]) completed. Took 0.0 secs.
:lib.im:checkReleaseManifest (Thread[Task worker Thread 4,5,main]) started.
:lib.im:checkReleaseManifest
Executing task ':lib.im:checkReleaseManifest' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
:lib.im:checkReleaseManifest (Thread[Task worker Thread 4,5,main]) completed. Took 0.001 secs.
:lib.im:preDebugBuild (Thread[Daemon worker Thread 2,5,main]) started.
Skipping task ':app:prepareComAndroidSupportAnimatedVectorDrawable2340Library' as it is up-to-date (took 0.001 secs).
:lib.im:preDebugBuild UP-TO-DATE
Skipping task ':lib.im:preDebugBuild' as it has no actions.
:app:prepareComAndroidSupportAnimatedVectorDrawable2340Library (Thread[Task worker Thread 5,5,main]) completed. Took 0.002 secs.
:app:prepareComAndroidSupportAppcompatV72340Library (Thread[Task worker Thread 4,5,main]) started.
:lib.im:preDebugBuild (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:lib.im:prepareComAndroidSupportAnimatedVectorDrawable2340Library (Thread[Task worker Thread 7,5,main]) started.
:app:prepareComAndroidSupportAppcompatV72340Library
:lib.im:prepareComAndroidSupportAnimatedVectorDrawable2340Library
Skipping task ':lib.im:prepareComAndroidSupportAnimatedVectorDrawable2340Library' as it is up-to-date (took 0.001 secs).
:lib.im:prepareComAndroidSupportAnimatedVectorDrawable2340Library UP-TO-DATE
:lib.im:prepareComAndroidSupportAnimatedVectorDrawable2340Library (Thread[Task worker Thread 7,5,main]) completed. Took 0.001 secs.
:lib.im:prepareComAndroidSupportAppcompatV72340Library (Thread[Task worker Thread 2,5,main]) started.
:lib.im:prepareComAndroidSupportAppcompatV72340Library
Skipping task ':lib.im:prepareComAndroidSupportAppcompatV72340Library' as it is up-to-date (took 0.02 secs).
:lib.im:prepareComAndroidSupportAppcompatV72340Library UP-TO-DATE
Skipping task ':app:prepareComAndroidSupportAppcompatV72340Library' as it is up-to-date (took 0.022 secs).
:lib.im:prepareComAndroidSupportAppcompatV72340Library (Thread[Task worker Thread 2,5,main]) completed. Took 0.022 secs.
:lib.im:prepareComAndroidSupportSupportV42340Library (Thread[Task worker Thread 2,5,main]) started.
:app:prepareComAndroidSupportAppcompatV72340Library UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72340Library (Thread[Task worker Thread 4,5,main]) completed. Took 0.023 secs.
:lib.im:prepareComAndroidSupportSupportV42340Library
:app:prepareComAndroidSupportDesign2340Library (Thread[Daemon worker Thread 2,5,main]) started.
:app:prepareComAndroidSupportDesign2340Library
Skipping task ':lib.im:prepareComAndroidSupportSupportV42340Library' as it is up-to-date (took 0.002 secs).
:app:prepareComAndroidSupportDesign2340Library UP-TO-DATE
:lib.im:prepareComAndroidSupportSupportV42340Library (Thread[Task worker Thread 2,5,main]) completed. Took 0.002 secs.
:lib.im:prepareComAndroidSupportSupportVectorDrawable2340Library (Thread[Task worker Thread 2,5,main]) started.
:lib.im:prepareComAndroidSupportSupportVectorDrawable2340Library
Skipping task ':app:prepareComAndroidSupportDesign2340Library' as it is up-to-date (took 0.002 secs).
:lib.im:prepareComAndroidSupportSupportVectorDrawable2340Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2340Library (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.003 secs.
:app:prepareComAndroidSupportRecyclerviewV72340Library (Thread[Daemon worker Thread 2,5,main]) started.
:app:prepareComAndroidSupportRecyclerviewV72340Library
Skipping task ':app:prepareComAndroidSupportRecyclerviewV72340Library' as it is up-to-date (took 0.001 secs).
:app:prepareComAndroidSupportRecyclerviewV72340Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72340Library (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.002 secs.
Skipping task ':lib.im:prepareComAndroidSupportSupportVectorDrawable2340Library' as it is up-to-date (took 0.002 secs).
:app:prepareComAndroidSupportSupportV42340Library (Thread[Task worker,5,main]) started.
:lib.im:prepareComAndroidSupportSupportV42340Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42340Library
:lib.im:prepareComAndroidSupportSupportVectorDrawable2340Library (Thread[Task worker Thread 2,5,main]) completed. Took 0.004 secs.
:lib.im:prepareWChatLibReleaseLibrary (Thread[Task worker Thread 2,5,main]) started.
:lib.im:prepareWChatLibReleaseLibrary
Skipping task ':app:prepareComAndroidSupportSupportV42340Library' as it is up-to-date (took 0.001 secs).
:lib.im:prepareWChatLibReleaseLibrary UP-TO-DATE
:app:prepareComAndroidSupportSupportV42340Library (Thread[Task worker,5,main]) completed. Took 0.004 secs.
:app:prepareComAndroidSupportSupportVectorDrawable2340Library (Thread[Task worker,5,main]) started.
:app:prepareComAndroidSupportSupportVectorDrawable2340Library
Skipping task ':lib.im:prepareWChatLibReleaseLibrary' as it is up-to-date (took 0.002 secs).
:app:prepareComAndroidSupportSupportVectorDrawable2340Library UP-TO-DATE
Skipping task ':app:prepareComAndroidSupportSupportVectorDrawable2340Library' as it is up-to-date (took 0.001 secs).
:app:prepareComAndroidSupportSupportV42340Library UP-TO-DATE
:app:prepareComAndroidSupportSupportVectorDrawable2340Library (Thread[Task worker,5,main]) completed. Took 0.002 secs.
:app:prepareNetWequickSmallSmall110Beta5Library (Thread[Task worker,5,main]) started.
:app:prepareNetWequickSmallSmall110Beta5Library
Skipping task ':app:prepareNetWequickSmallSmall110Beta5Library' as it is up-to-date (took 0.001 secs).
:app:prepareNetWequickSmallSmall110Beta5Library UP-TO-DATE
:app:prepareNetWequickSmallSmall110Beta5Library (Thread[Task worker,5,main]) completed. Took 0.001 secs.
:app:prepareReleaseDependencies (Thread[Task worker,5,main]) started.
:app:prepareReleaseDependencies
Executing task ':app:prepareReleaseDependencies' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
:app:prepareReleaseDependencies (Thread[Task worker,5,main]) completed. Took 0.0 secs.
:app:compileReleaseAidl (Thread[Task worker,5,main]) started.
:app:compileReleaseAidl
:lib.im:prepareWChatLibReleaseLibrary (Thread[Task worker Thread 2,5,main]) completed. Took 0.007 secs.
:lib.im:prepareWChatWrapReleaseLibrary (Thread[Daemon worker Thread 2,5,main]) started.
:lib.im:prepareWChatWrapReleaseLibrary
Skipping task ':lib.im:prepareWChatWrapReleaseLibrary' as it is up-to-date (took 0.002 secs).
:lib.im:prepareWChatWrapReleaseLibrary UP-TO-DATE
:lib.im:prepareWChatWrapReleaseLibrary (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.002 secs.
:lib.im:prepareReleaseDependencies (Thread[Task worker Thread 5,5,main]) started.
:lib.im:prepareReleaseDependencies
Executing task ':lib.im:prepareReleaseDependencies' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
Skipping task ':app:compileReleaseAidl' as it is up-to-date (took 0.003 secs).
:lib.im:prepareReleaseDependencies UP-TO-DATE
:app:compileReleaseAidl (Thread[Task worker,5,main]) completed. Took 0.003 secs.
:app:compileReleaseRenderscript (Thread[Task worker Thread 6,5,main]) started.
:app:compileReleaseRenderscript
:lib.im:prepareReleaseDependencies (Thread[Task worker Thread 5,5,main]) completed. Took 0.002 secs.
:lib.im:compileReleaseAidl (Thread[Task worker Thread 7,5,main]) started.
:lib.im:compileReleaseAidl
Skipping task ':app:compileReleaseRenderscript' as it is up-to-date (took 0.002 secs).
:lib.im:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript (Thread[Task worker Thread 6,5,main]) completed. Took 0.003 secs.
Skipping task ':lib.im:compileReleaseAidl' as it is up-to-date (took 0.002 secs).
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig (Thread[Task worker Thread 4,5,main]) started.
:app:generateReleaseBuildConfig
:lib.im:compileReleaseAidl (Thread[Task worker Thread 7,5,main]) completed. Took 0.003 secs.
:lib.im:compileReleaseRenderscript (Thread[Task worker Thread 5,5,main]) started.
:lib.im:compileReleaseRenderscript
Skipping task ':app:generateReleaseBuildConfig' as it is up-to-date (took 0.001 secs).
:lib.im:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig (Thread[Task worker Thread 4,5,main]) completed. Took 0.003 secs.
:app:generateReleaseAssets (Thread[Task worker Thread 6,5,main]) started.
:app:generateReleaseAssets
Skipping task ':app:generateReleaseAssets' as it has no actions.
:app:generateReleaseAssets UP-TO-DATE
:app:generateReleaseAssets (Thread[Task worker Thread 6,5,main]) completed. Took 0.001 secs.
:app:mergeReleaseAssets (Thread[Task worker Thread 3,5,main]) started.
:app:mergeReleaseAssets
Skipping task ':lib.im:compileReleaseRenderscript' as it is up-to-date (took 0.002 secs).
:app:mergeReleaseAssets UP-TO-DATE
:lib.im:compileReleaseRenderscript (Thread[Task worker Thread 5,5,main]) completed. Took 0.003 secs.
:lib.im:generateReleaseBuildConfig (Thread[Task worker Thread 5,5,main]) started.
:lib.im:generateReleaseBuildConfig
Skipping task ':app:mergeReleaseAssets' as it is up-to-date (took 0.002 secs).
:lib.im:generateReleaseBuildConfig UP-TO-DATE
:app:mergeReleaseAssets (Thread[Task worker Thread 3,5,main]) completed. Took 0.003 secs.
:app:generateReleaseResValues (Thread[Task worker Thread 3,5,main]) started.
:app:generateReleaseResValues
Skipping task ':app:generateReleaseResValues' as it is up-to-date (took 0.001 secs).
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResValues (Thread[Task worker Thread 3,5,main]) completed. Took 0.001 secs.
:app:generateReleaseResources (Thread[Task worker Thread 3,5,main]) started.
:app:generateReleaseResources
Skipping task ':app:generateReleaseResources' as it has no actions.
:app:generateReleaseResources UP-TO-DATE
:app:generateReleaseResources (Thread[Task worker Thread 3,5,main]) completed. Took 0.001 secs.
:app:mergeReleaseResources (Thread[Daemon worker Thread 2,5,main]) started.
:app:mergeReleaseResources
Skipping task ':lib.im:generateReleaseBuildConfig' as it is up-to-date (took 0.003 secs).
:app:mergeReleaseResources UP-TO-DATE
:lib.im:generateReleaseBuildConfig (Thread[Task worker Thread 5,5,main]) completed. Took 0.007 secs.
:lib.im:generateReleaseAssets (Thread[Task worker Thread 5,5,main]) started.
:lib.im:generateReleaseAssets
Skipping task ':lib.im:generateReleaseAssets' as it has no actions.
:lib.im:generateReleaseAssets UP-TO-DATE
:lib.im:generateReleaseAssets (Thread[Task worker Thread 5,5,main]) completed. Took 0.001 secs.
:lib.im:mergeReleaseAssets (Thread[Task worker Thread 5,5,main]) started.
:lib.im:mergeReleaseAssets
Skipping task ':lib.im:mergeReleaseAssets' as it is up-to-date (took 0.002 secs).
:lib.im:mergeReleaseAssets UP-TO-DATE
:lib.im:mergeReleaseAssets (Thread[Task worker Thread 5,5,main]) completed. Took 0.004 secs.
:lib.im:generateReleaseResValues (Thread[Task worker Thread 5,5,main]) started.
:lib.im:generateReleaseResValues
Skipping task ':lib.im:generateReleaseResValues' as it is up-to-date (took 0.001 secs).
:lib.im:generateReleaseResValues UP-TO-DATE
:lib.im:generateReleaseResValues (Thread[Task worker Thread 5,5,main]) completed. Took 0.001 secs.
:lib.im:generateReleaseResources (Thread[Task worker Thread 5,5,main]) started.
:lib.im:generateReleaseResources
Skipping task ':lib.im:generateReleaseResources' as it has no actions.
:lib.im:generateReleaseResources UP-TO-DATE
:lib.im:generateReleaseResources (Thread[Task worker Thread 5,5,main]) completed. Took 0.0 secs.
:lib.im:mergeReleaseResources (Thread[Task worker Thread 2,5,main]) started.
:lib.im:mergeReleaseResources
Skipping task ':app:mergeReleaseResources' as it is up-to-date (took 0.053 secs).
:lib.im:mergeReleaseResources UP-TO-DATE
:app:mergeReleaseResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.054 secs.
:app:processReleaseManifest (Thread[Task worker,5,main]) started.
:app:processReleaseManifest
Skipping task ':app:processReleaseManifest' as it is up-to-date (took 0.002 secs).
:app:processReleaseManifest UP-TO-DATE
:app:processReleaseManifest (Thread[Task worker,5,main]) completed. Took 0.003 secs.
:app:processReleaseResources (Thread[Task worker Thread 7,5,main]) started.
:app:processReleaseResources
Skipping task ':lib.im:mergeReleaseResources' as it is up-to-date (took 0.066 secs).
:app:processReleaseResources UP-TO-DATE
:lib.im:mergeReleaseResources (Thread[Task worker Thread 2,5,main]) completed. Took 0.066 secs.
:lib.im:processReleaseManifest (Thread[Task worker Thread 4,5,main]) started.
:lib.im:processReleaseManifest
Skipping task ':app:processReleaseResources' as it is up-to-date (took 0.023 secs).
:lib.im:processReleaseManifest UP-TO-DATE
:app:processReleaseResources (Thread[Task worker Thread 7,5,main]) completed. Took 0.023 secs.
:app:generateReleaseSources (Thread[Task worker Thread 6,5,main]) started.
:app:generateReleaseSources
Skipping task ':app:generateReleaseSources' as it has no actions.
:app:generateReleaseSources UP-TO-DATE
:app:generateReleaseSources (Thread[Task worker Thread 6,5,main]) completed. Took 0.0 secs.
:app:compileReleaseJavaWithJavac (Thread[Task worker Thread 3,5,main]) started.
Skipping task ':lib.im:processReleaseManifest' as it is up-to-date (took 0.005 secs).
:app:compileReleaseJavaWithJavac UP-TO-DATE
:lib.im:processReleaseManifest (Thread[Task worker Thread 4,5,main]) completed. Took 0.006 secs.
:lib.im:processReleaseResources (Thread[Task worker Thread 5,5,main]) started.
:lib.im:processReleaseResources
Skipping task ':app:compileReleaseJavaWithJavac' as it is up-to-date (took 0.017 secs).
:lib.im:processReleaseResources UP-TO-DATE
:app:compileReleaseJavaWithJavac (Thread[Task worker Thread 3,5,main]) completed. Took 0.019 secs.
:app:jarReleaseClasses (Thread[Task worker Thread 3,5,main]) started.
:app:jarReleaseClasses
Skipping task ':app:jarReleaseClasses' as it is up-to-date (took 0.004 secs).
:app:jarReleaseClasses UP-TO-DATE
:app:jarReleaseClasses (Thread[Task worker Thread 3,5,main]) completed. Took 0.005 secs.
:app:buildLib (Thread[Task worker Thread 3,5,main]) started.
:app:buildLib
Executing task ':app:buildLib' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
Executing task ':lib.im:processReleaseResources' (up-to-date check took 0.038 secs) due to:
Value of input property 'aaptOptions.additionalParameters' has changed for task ':lib.im:processReleaseResources'
All input files are considered out-of-date for incremental task ':lib.im:processReleaseResources'.
Starting process 'command '/Users/liuzhao/Downloads/adt-bundle-mac-x86_64-20140702/sdk/build-tools/android-5.1/aapt''. Working directory: /Users/liuzhao/Documents/ChinahrSmall/lib.im Command: /Users/liuzhao/Downloads/adt-bundle-mac-x86_64-20140702/sdk/build-tools/android-5.1/aapt package -f --no-crunch -I /Users/liuzhao/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platforms/android-6.0/android.jar -M /Users/liuzhao/Documents/ChinahrSmall/lib.im/build/intermediates/manifests/full/release/AndroidManifest.xml -S /Users/liuzhao/Documents/ChinahrSmall/lib.im/build/intermediates/res/merged/release -A /Users/liuzhao/Documents/ChinahrSmall/lib.im/build/intermediates/assets/release -m -J /Users/liuzhao/Documents/ChinahrSmall/lib.im/build/generated/source/r/release -F /Users/liuzhao/Documents/ChinahrSmall/lib.im/build/intermediates/res/resources-release.ap_ --custom-package com.android.gmacs -0 apk --output-text-symbols /Users/liuzhao/Documents/ChinahrSmall/lib.im/build/intermediates/symbols/release --output-text-symbols /Users/liuzhao/Documents/ChinahrSmall/lib.im/build/intermediates/symbols/release
Successfully started process 'command '/Users/liuzhao/Downloads/adt-bundle-mac-x86_64-20140702/sdk/build-tools/android-5.1/aapt''
:app:buildLib (Thread[Task worker Thread 3,5,main]) completed. Took 0.058 secs.
[lib.im] split library res files...                      [  OK  ]
:app:generateReleaseBuildConfig FAILED
:lib.im:processReleaseResources (Thread[Task worker Thread 5,5,main]) completed. Took 1.391 secs.
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':lib.im:processReleaseResources'.

java.io.EOFException (no error message)

Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED
Total time: 2.637 secs
Stopped 0 compiler daemon(s).
Received result CommandFailure[value=org.gradle.launcher.exec.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':lib.im:processReleaseResources'.] from daemon DaemonInfo{pid=13383, address=[36412a5a-7465-4a7f-890f-85ed35abba69 port:58371, addresses:[/0:0:0:0:0:0:0:1, /<IP_ADDRESS>]], idle=true, context=DefaultDaemonContext[uid=d7a636d2-311d-46d8-860f-980f4b5f065d,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home,daemonRegistryDir=/Users/liuzhao/.gradle/daemon,pid=13383,idleTimeout=10800000,daemonOpts=-Xmx2048m,-Dfile.encoding=UTF-8,-Duser.country=CN,-Duser.language=zh,-Duser.variant]}.
以上log能看出来可能是哪里的错误吗？谢谢

问题解决了吗？java.io.EOFException (no error message)这错误是什么原因

也是懵逼，buildBundle出现相同问题


[$1000] Using backtick in the description in send/request money changes to '&#x60' in the report

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to web chrome
Go to any chat
Send/Request money and in the description , type backticks
Send/request money
Notice that in the report, it displays &#x60 for backticks.
Follow the same steps in the chat box, and see that we don't get such problem. Also, use other special characters, problem is not seen.

Expected Result:
Using backtick in the description in send/request money should not change to '&#x60' in the report
Actual Result:
Using backtick in the description in send/request money changes to '&#x60' in the report (works well for other special characters)
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.3-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/233723623-ef7ae3f5-cc86-49e9-86c1-d6f79323eccc.mp4
https://user-images.githubusercontent.com/43996225/233723662-a96cd92b-294a-4202-8428-0ad2242e4ac8.mp4
Expensify/Expensify Issue URL:
Issue reported by: @priya-zha
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1682056771077709
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010020e818c61501ab
Upwork Job ID:<PHONE_NUMBER>779108864
Last Price Increase: 2023-04-25

Triggered auto assignment to @bfitzexpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Reproduced

Job added to Upwork: https://www.upwork.com/jobs/~010020e818c61501ab

Current assignee @bfitzexpensify is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @mollfpr (External)

Triggered auto assignment to @alex-mechler (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Proposal
Please re-state the problem that we are trying to solve in this issue.
There're 2 problems that I see here:

Using backtick in the description in send/request money changes to '&#x60' in the report (works well for other special characters)
Some markdown character pairs like _ _, * *, when sending in IOU Description, will disappear. This also happens to backtick if sending it in offline mode (6 consecutive backticks will become 2 backticks).

What is the root cause of that problem?

This is likely a back-end issue where specifically for backticks, they send HTML-encoded character (&#x60) back to the front-end rather than backtick characters. This doesn't happen for other special characters like & so we need to look in the back-end to resolve it.
This is due to we're stripping the markdown tags for the IOU message as can be seen in https://github.com/Expensify/App/blob/604c759196e520fe93003d25d2c7ed092d5ae174/src/libs/ReportUtils.js#L1080

We parse the IOU to html, so _italic_ will become italic
Then strip it so that it becomes italic
So the _ _ is lost while it should be kept as is, same for the backticks.

Also the data sent to the back-end also seems to be wrong here https://github.com/Expensify/App/blob/55761dd3e6f50acfe0916125ac91163c3526a491/src/libs/actions/IOU.js#L196, we encode the comment to italic before sending while we should only escape it before sending.
This logic comes from https://github.com/Expensify/App/pull/16055 where we're trying to encode the message to avoid WAF strips the HTML tags, but the function used (getParsedComment) is not correct since it will parse the markdown.
What changes do you think we should make in order to solve the problem?

A back-end fix is required
We need to remove the markdown stripping logic in https://github.com/Expensify/App/blob/604c759196e520fe93003d25d2c7ed092d5ae174/src/libs/ReportUtils.js#L1080, and show the comment as is in the optimistic data.
In https://github.com/Expensify/App/blob/604c759196e520fe93003d25d2c7ed092d5ae174/src/libs/ReportUtils.js#L1080 we also need to remove the encode to html logic and only escape the comment (using _.escape) before sending to the back-end, some back-end changes might be required to process the message correctly as well.

What alternative solutions did you explore? (Optional)
NA

This is likely a back-end issue where specifically for backticks, they send HTML-encoded character (&#x60) back to the front-end rather than backtick characters. This doesn't happen for other special characters like & so we need to look in the back-end to resolve it.

The backend actually returns & for & as well, we are just parsing that correctly

Looks like have the same cause - https://github.com/Expensify/App/issues/17658

Thanks, looking into this

Looks like have the same cause - https://github.com/Expensify/App/issues/17658

This appears to be similar, but with that fix applied, I am still able to reproduce this issue

Proposal
Problem Statement:
When using a backtick in the description while sending or requesting money, the backtick is displayed as '`' (the HTML entity representation) in the report, instead of the expected backtick.
Root Cause:
The issue lies in the text parsing logic (i.e., ExpensiMark()), which converts backticks to their HTML entity representation (`) when rendering the report. This conversion is unnecessary for backticks in this case and leads to the undesired behavior.
Proposed Solution:
To address this issue, we need to update the parsing function getParsedComment() to handle backticks differently. Specifically, we should ensure that backticks are not removed or changed during the parsing process. The implementation needs to be precise enough to fix the problem without affecting other components or causing unforeseen side effects.
Alternative Solutions:
An alternative solution would be to modify the parser itself. However, this approach would be more complex and challenging to predict how it may affect other components that rely on the parser. Adjusting the parsing function getParsedComment() as proposed would provide a more focused and safer solution to the problem.

📣 @AngelNBazan! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~0189d2d1b473ae382d

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

The backend actually returns & for & as well, we are just parsing that correctly

@alex-mechler thanks for the feedback! I think we're not using the data returned in your screenshot for the report comment.
We're using the text field of the reportAction instead, see below where I sent a description of "&&&&&& ``````". The & is returned as is while the "`" is encoded before returning.
Can see below in the OpenReport command.

We send ` from the front end. In the back end, it strips out the HTML tag.

hi @mollfpr in this line https://github.com/Expensify/App/blob/f8acfae37e181c66ab9dbf232772bb293c9b159b/src/libs/actions/IOU.js#L196, if we change to const parsedComment = _.escape(comment); to avoid adding the incorrect  html tag to the comment. It will send the `````` to the back-end and back-end returns as is in the text field rather than convert back to "``````" (this is different from, say, & character), so I think there's still something wrong with the back-end.

@dukenv0307 Why we send to the backend ``````?

Some markdown character pairs like _ _, * *, when sending in IOU Description, will disappear. This also happens to backtick if sending it in offline mode (6 consecutive backticks will become 2 backticks).

@alex-mechler @bfitzexpensify Are we on purpose striping the HTML tag in the backend?

Proposal Updated https://github.com/Expensify/App/issues/17798#issuecomment-1522519111

@alex-mechler @bfitzexpensify Are we on purpose striping the HTML tag in the backend?

Hmmm, it might be getting caught up in xss filters. I'll take a look next week. I'll be OOO monday so I'll take a look tuesday

@alex-mechler, @mollfpr, @bfitzexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@alex-mechler, @mollfpr, @bfitzexpensify Whoops! This issue is 2 days overdue. Let's get this updated quick!

Will be checked later Melv

Sorry for the delay, was sick and unexpectedly OOO, looking today

So it is getting caught up in XSS filters, but even with those disabled locally, we are not rendering the html at all in the IOU request.

Still waiting on proposals

Proposal
Please re-state the problem that we are trying to solve in this issue.
Using backtick in the description in send/request money changes to '&#x60' in the report
What is the root cause of that problem?
Let's say you write this in the description when requesting money.
'Backticks ````` less <<<'

The IOU comment sent to the back end is being parsed first when requesting and sending money.
https://github.com/Expensify/App/blob/c81f361a7c54dcb707ec8597e3053fda31a0272a/src/libs/actions/IOU.js#L230-L243
https://github.com/Expensify/App/blob/c81f361a7c54dcb707ec8597e3053fda31a0272a/src/libs/actions/IOU.js#L798-L805
In addition, when building the optimistic IOU report action, the comment is also parsed.
https://github.com/Expensify/App/blob/2c1dfe94ce5d69a44af4a8d384903bc85a7c2e00/src/libs/ReportUtils.js#L1138
At this point, the comment is first escaped, turning all the backticks to `, and any other HTML entities are encoded. This happens inside the replace() method found in ExpensiMark.js.

Screenshot of comment during debug session

This escaped text is then run through all the rules, and when it reaches the inlineCodeBlock rule, a match is found, and the string is replaced with '$1<code>$2</code>$3'.

Screenshot of comment after 'inlineCodeBlock' rule applied

The htmlToText() method is then applied to this comment which runs it through the htmlToTextRules, one of which strips out the <code> tag.
https://github.com/Expensify/App/blob/2c1dfe94ce5d69a44af4a8d384903bc85a7c2e00/src/libs/ReportUtils.js#L1139-L1140
This is what is decoded and finally used to build the optimistic IOU report action.
// This is what is used to optimistically create the IOU report action
// and what is being sent to the back end
'Backticks ``` less <<<'

https://github.com/Expensify/App/blob/2c1dfe94ce5d69a44af4a8d384903bc85a7c2e00/src/libs/ReportUtils.js#L1172

Screenshot of what is finally sent to the back end

What changes do you think we should make in order to solve the problem?
If we want the backticks to be displayed as is, then we can optimistically build the IOU report action with an unparsed comment.

Replace textForNewComment in the following line with comment - the original unparsed one.

https://github.com/Expensify/App/blob/2c1dfe94ce5d69a44af4a8d384903bc85a7c2e00/src/libs/ReportUtils.js#L1143

The same goes for textForNewCommentDecoded here.

https://github.com/Expensify/App/blob/2c1dfe94ce5d69a44af4a8d384903bc85a7c2e00/src/libs/ReportUtils.js#L1172

We'll also need to ensure the comment given to the back end is unparsed when making a request which means replacing parsedComment with comment here.

https://github.com/Expensify/App/blob/2c1dfe94ce5d69a44af4a8d384903bc85a7c2e00/src/libs/actions/IOU.js#L235

Given this issue is also there when sending money, we can use an unparsed comment there as well.

https://github.com/Expensify/App/blob/2c1dfe94ce5d69a44af4a8d384903bc85a7c2e00/src/libs/actions/IOU.js#L803

Short demo of requesting money with changes applied
https://github.com/Expensify/App/assets/79470910/0358803a-1b23-4682-afaf-e769b0336714

Please Note: If you send money with a description that has more than one < symbol e.g. Backticks ``` << some text, everything to the right of the two symbols is deleted along with the symbols. There was an issue opened maybe 2-3 weeks ago about how the description was being deleted after sending/requesting money by the back end, but I couldn't find it.
That being said, I'd like to hear from the back-end folks if this is indeed something that happens over there as opposed to the front end.
Similarly, ending the description with a < results in that symbol being removed. This is after the changes I've suggested are applied, by the way.
What alternative solutions did you explore?
None yet.

Submitted a proposal for this issue two weeks ago. https://github.com/Expensify/App/issues/17798#issuecomment-1522519111

Sorry for the delay. I'll review the proposals again in the morning.

Hey @mollfpr or @alex-mechler would you be able to take a peek at this GH and see if it's related to this (I think so?)

Yup, that looks to be related

@alex-mechler Do we still want to keep the stripping HTML in the IOU description?

Hmm, I'm not sure. I think this is a larger behavior question on if we should allow expensimark in the IOU field. I'll get a discussion started on slack for this

Thanks for the update! We are still working out if we want to support markdown in ious

Okay, based on the slack discussion, lets keep this issue moving forward by not supporting markdown in the description field

Reviewing again the proposals...

@mollfpr I just tested my proposal's changes on the IOU details and it works as expected(displays backticks correctly). Regarding not supporting markdown in the description field, my proposal was built around this idea as it was the markdown causing the bug, so no changes need to be made to my proposal. Below I added screenshots of my proposal working, I would like to note that because of the recent IOU/MoneyRequest update I reverted to previous version to show my changes. However, I have also included what it looks like at time I am writing this.

Most Up to Date

Still waiting on proposals for not supporting markdown in the description field

@alex-mechler to confirm, so the expected proposal will be removing the parsing comment to markdown from IOU (Send money, request money, and split bill) and send the comment to API as is?

Correct. We do not want to parse markdown for those fields

Thanks for confirming it @alex-mechler
I think we can go with @AngelNBazan proposal where it first proposing to remove the parser.
🎀 👀 🎀 C+ reviewed!

Thanks! Assigning @AngelNBazan!

Applied to Upwork and Submitted PR. https://github.com/Expensify/App/pull/19207

PR is in review Melvin

Hey @sonialiap - I'm heading OOO this week. This one will need hiring/payment in a couple of days so assigning a BZ buddy. Thank you for the help!

[@mollfpr] The PR that introduced the bug has been identified. Link to the PR:
[@mollfpr] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

No PR in E/App is causing the regression. We decide not to parse the message when send it to BE.

[@mollfpr] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

The regression step will cover this.

[@mollfpr] Determine if we should create a regression test for this bug.

👍

[@mollfpr] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Create an action(Request money, Send money, Split bill)
In the comment/description section and add backticks(`) to text
Verify the correct amount of backticks are displayed, all text in between backticks is present, and backticks are displayed properly and not as html representation('&#x60')
👍 or 👎

All payments issued and contracts ended.

Agreed with regression steps, steps proposed in https://github.com/Expensify/Expensify/issues/291252

We're all done here, so closing this out - thanks for the work everyone!


Integrate September Monthly EIA923 Data

Annual Updates Docs: https://catalystcoop-pudl.readthedocs.io/en/dev/dev/annual_updates.html

[ ] Add the new Zenodo archive DOI values to pudl/workspace/datastore.py.
[ ] Run the datastore script to download the new data: pudl_datastore --dataset eia923. The new raw data will appear in pudl_input/eia923/<ZENODO_DOI>/...
[ ] Update the information in pudl/package_data/eia923 if necessary:

[ ] file maps
[ ] column maps
[ ] page maps
[ ] skip footer
[ ] skip rows

[ ] Launch dagit and refresh the code location (run in your terminaldagster-webserver -m pudl.etl and then open http://<IP_ADDRESS>:3000/locations/pudl.etl/jobs/etl_full in a browser)
[ ] Materialize the raw_eia923 asset group. Look out for warnings in the logs about missing or extra columns. If they appear, check and update the package_data accordingly.
[ ] Materialize the _core_eia923 asset group. Look out for warnings and fix accordingly.
[ ] Materialize the norm_eia and then denorm_eia asset groups. You'll may see some errors related to encoding. Take a look at which column it's talking about and look at metadata/resources/eia.py to see which encoder in CODE_METADATA to tweak.
[ ] Map missing plant and utility ids from EIA: https://catalystcoop-pudl.readthedocs.io/en/latest/dev/annual_updates.html#a-ferc-1-eia-plants-utilities
[ ] Run the full ETL on dagster
[ ] Run integration and unit tests with make pytest-integration-full in the terminal
[ ] Run the validation tests with make pytest-validation in the terminal
[ ] Update the documentation: https://catalystcoop-pudl.readthedocs.io/en/latest/dev/annual_updates.html#update-the-documentation

@robertozanchi

Lumping into next quarterly update process in early Feb 2024


support --profile argument or AWS_PROFILE env var

The code just uses the AWS Javascript SDK.  Does the SDK support the AWS_PROFILE env variable?  If so this should just work.

Just validated the AWS Javascript SDK does pay attention to this environment variable.
https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html
Please use this.


Dynamic imports throwing madge off

I've got some fancy footwork importing these modules:
const listSpecifier = './route-list.js';
const restSpecifier = './route-restaurant.js';

const list = [
  './restaurant-card.js',
  './restaurant-filters.js',
  './view-list.js',
  './map-marker.js',
];

const rest = [
  './review-card.js',
];

const imports = ({ list, rest });

const importSpecifier = specifier => import(specifier);

const runDefault = ({ app }) =>
  module => module.default({ app });

const router = async location => {
  const page = location.pathname === '/' ? 'list' : 'rest';
  if (page === 'rest') app.classList.add('restaurant');
  else app.classList.remove('restaurant');
  // Parallelize loading to speed up critical path render
  Promise.all(imports[page].map(importSpecifier));
  return import(page === 'list' ? listSpecifier : restSpecifier)
    .then(runDefault({ app }));
};

Madge pukes on that ternary in the import statement:
  tree traversing /Users/bennyp/Documents/mws-restaurant-stage-1/js/main.js +0ms
  precinct options given:  { includeCore: false, type: undefined } +3ms
  precinct module type:  es6 +4ms
  tree extracted 8 dependencies:  [ './db/cacheRequest.js',
  './router.js',
  undefined,
  undefined,
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>  '/bower_components/good-map/good-map.js' ] +5ms
  cabinet found a resolver for .js +6ms
  cabinet reusing the given ast +0ms
  cabinet using commonjs resolver for es6 +0ms
  cabinet adding /Users/bennyp/Documents/mws-restaurant-stage-1/js/node_modules to the require resolution paths +0ms
  cabinet resolved path: /Users/bennyp/Documents/mws-restaurant-stage-1/js/db/cacheRequest.js +0ms
  cabinet resolved path for ./db/cacheRequest.js: /Users/bennyp/Documents/mws-restaurant-stage-1/js/db/cacheRequest.js +0ms
  cabinet found a resolver for .js +0ms
  cabinet reusing the given ast +0ms
  cabinet using commonjs resolver for es6 +0ms
  cabinet adding /Users/bennyp/Documents/mws-restaurant-stage-1/js/node_modules to the require resolution paths +0ms
  cabinet resolved path: /Users/bennyp/Documents/mws-restaurant-stage-1/js/router.js +0ms
  cabinet resolved path for ./router.js: /Users/bennyp/Documents/mws-restaurant-stage-1/js/router.js +0ms
  cabinet found a resolver for .js +0ms
  cabinet reusing the given ast +0ms
  cabinet using commonjs resolver for es6 +1ms
  cabinet adding /Users/bennyp/Documents/mws-restaurant-stage-1/js/node_modules to the require resolution paths +0ms

✖ TypeError: Cannot read property '0' of undefined
    at commonJSLookup (/Users/bennyp/.config/yarn/global/node_modules/filing-cabinet/index.js:208:14)
    at jsLookup (/Users/bennyp/.config/yarn/global/node_modules/filing-cabinet/index.js:163:14)
    at cabinet (/Users/bennyp/.config/yarn/global/node_modules/filing-cabinet/index.js:60:16)
    at Function.module.exports._getDependencies (/Users/bennyp/.config/yarn/global/node_modules/dependency-tree/index.js:105:20)
    at traverse (/Users/bennyp/.config/yarn/global/node_modules/dependency-tree/index.js:149:37)
    at module.exports (/Users/bennyp/.config/yarn/global/node_modules/dependency-tree/index.js:34:19)
    at files.forEach (/Users/bennyp/.config/yarn/global/node_modules/madge/lib/tree.js:116:27)
    at Array.forEach (<anonymous>)
    at Tree.generateTree (/Users/bennyp/.config/yarn/global/node_modules/madge/lib/tree.js:111:9)
    at <anonymous>

Thanks for the cool module!

Thanks for reporting the issue. I'm afraid that the fancy footwork is defeating static analysis here :) The only way for dependency-tree to recognize those imports is to evaluate the code to inline the assignments. Maybe facebook's prepack could be a good prepass filter for dependency-tree; not sure if anyone has tried that.

So... work-arounds... simplest that has worked for me is to temporarily re-write code so that it does not use dynamic imports... Maybe there could be a codemod that does this for you just before madge receives it... but, sure is hard if the dynamic imports are determined at runtime. All the dynamic code may need to be commented out/undone, which shouldn't really take all that long.
The webpack chunk names don't really map to the import paths...
What do people think of a codemod?

Of course, a codemod might work best if the arguments to import( are static (not determined at runtime)
This is a lot easier to handle:
const FooPage = () => import('./page/Foo')

Than:
// some crazy stuff happens
pages[page] = import(page)

The first snippet I'd think mostly anyone could write some code to find import( and work some magic, although it'd be ugly, obviously a codemod is the way to go, I'd imagine that's absolutely a do-able thing. For now, I'm fine with hand-converting the few imports that I have, stashing that change in git, generating an svg, and when I want to re-generate that svg, I can just git stash pop.

Looks like it was fixed in detective-typescript v7.0.0:
https://github.com/pahen/detective-typescript/commit/5977a3932d7e8a7168c9a3a4b0ab0c5334d9a9ee

I think that just upgrading precint dependency to version 8 might fix this issue.

I found a workaround (https://www.npmjs.com/package/npm-force-resolutions) but ideally, precinct should be upgraded to upgrade detective-typescript to version 7.0.0

@vidal7 @bennypowers does this issue still exist on the latest version?

Guys here is the solution for this I found:
in your .madgerc config file you include
{ 	"detectiveOptions": { 		"ts": { 			"skipTypeImports": true, 			"skipAsyncImports": true 		}, 		"tsx": { 			"skipTypeImports": true, 			"skipAsyncImports": true 		} 	} }
this way it will ignore the type imports and async imports, works for me :) hope this helps.
My personal opinion is that the point for checking circular dependency, skipping types (since they don't compile to actual code), and skipping async import (people might disagree on the cleanliness or if we are "supposed" to use async import to fix circular dependency, regardlessly, it will fix circular dependency caused issues); maybe these two should be on by default.


donut binary vmprotect packing not support

donut.zip
Old donuts were able to load packed windows binary shellcode (version 0.9.3) -> Possible
but last update 1.0 version donut -> packing binary dobut build -> Fatal Error Initialization error 1 Message
Latest donuts cannot load binaries packed with VMPROTECT
You probably changed the entry point reference in the source.
how do i solve this?

I have the same problem, in version 0.9.3 the direct execution of donut followed by an exe program can be packaged directly into a bin file, but not in version 1.0.


Set up newsletter

Brevo looks like a good provider. Comparison to Mailchimp for example: https://www.emailtooltester.com/en/blog/sendinblue-vs-mailchimp/

Created account with access for me and Ari: https://account-app.brevo.com/account/login. I'll send a quick test email to see how that works.

continuing to fix bugs here


Tests for Greedy Algorithms, General Problems, Divide and Conquer and DP

Write tests using JUnit5 for the following sections:

Greedy Algorithms (3 test files)
General Problems (2 test files)
Divide and Conquer (2 test files)
Dynamic Programming (1 test file)

I am interested in this work.
Please assign it to me.

You can start the work, @MrJayendra.

@Diptonil , Do we have to make files in a different folder or just in one folder ?

Here are the steps that you need to make to contribute:

Here are the steps that you need to contribute:

Fork the repo.
Clone your fork and create a branch.
Notice we have a test and a main directory under the src folder. You need to create folders in the test directory.
The folders in test should be named just like the folders in main. For that, refer to an example of the tests for sorting or strings.
Work on the tests and you're pretty much done. Make the PR after pushing the changes to the branch that you created.

Hey @Diptonil i am interested in this task can you assign me

If @MrJayendra leaves this task and is no longer interested, I can assign you, @Ashpreetwadhwa. Do feel free to browse through the other issues, in any case.

Can you assign me for this issue?

If @MrJayendra and @Ashpreetwadhwa both are no longer interested in this, then sure. Do feel free to check out the other issues of the repo as well, in the meantime, if you wish to.

Ok


[Localization] Incorrect Korean translations in "Light Theme" related strings

Describe the bug

There're wrong translations in ko-KR resource file.
https://github.com/microsoft/calculator/blob/6a34a31ec6c072fb593c877ae81a070739f44a2f/src/Calculator/Resources/ko-KR/Resources.resw#L4025-L4028
https://github.com/microsoft/calculator/blob/6a34a31ec6c072fb593c877ae81a070739f44a2f/src/Calculator/Resources/ko-KR/Resources.resw#L4037-L4040
The values above should be "항상 밝게".
Steps To Reproduce

None
Expected behavior

As described above.
Screenshots

Device and Application Information

OS Build: 10.0.19042.0
Architecture: X64
Application Version: 10.2012.21.0
Region: ko-KR
Dev Version Installed: False

Additional context

None

Thanks, @Coding-Young! We are unable to make localization fixes in GitHub directly, but I will pass this bug along to one of our internal partners to help address.


NO-TICKET: Improve logs consistency.

Closes https://github.com/casper-network/casper-node/issues/2093

bors r+

bors r-

bors r+


Lb/provider show page for support user

Context
As a support user, I should be able to click on any the name of any onboarded organisation and view the details
Changes proposed in this pull request

Refactored contact details for organisations (used for both claims and placements, schools and providers)
Refactored organisation details (used for both claims and placements, schools and providers)
Refactored the support secondary navigation for placements
Added the show page (which uses all of the above)

Guidance to review
Login as a placement support user
Click on an organisation that is a provider (not a school)
View the provider details
Also, please click around a lot and make sure I haven't broken anything with the refactoring -- fingers crossed our test coverage is good enough to have picked up any problems, but good to check things manually as well.
Link to Trello card
https://trello.com/c/FHlaGUxg
Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated or added to the Azure KeyVault

Screenshots

 Provider show page for placement support user


Misleading link

Looking for details on firewall requirements for Azure Backup (URLs/IPs/Ports) this link looked ideal (https://docs.microsoft.com/en-us/azure/backup/backup-azure-backup-faq#what-firewall-rules-should-be-configured-for-azure-backup-br) but I see no firewall rule details mentioned.

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

ID: efe1b860-8d24-1742-4f20-c3e75cacbba3
Version Independent ID: 2ac226c0-df97-f729-fe09-3d51d61b9083
Content: Azure Backup FAQ
Content Source: articles/backup/backup-azure-backup-faq.md
Service: backup
Product: unspecified
GitHub Login: @markgalioto
Microsoft Alias: markgal;arunak;trinadhk;sogup;

@ntramaseur Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@ntramaseur My apologies for the misleading link. The Azure Backup FAQ's have been re-organized, and the link you found/referenced, was removed from this article. The information on firewall details, and whitelisting IP ranges is available in the article on Preparing to back up VMs. There is also information on using service tags!

#please-close

We will now close this issue. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Scale for everyone!

This is quite the Pull Request, but it introduces scale into the whole application. Here are the core elements:

Blobs will now be fetched in paged lists (currently 200 at a time). Should we have more blobs available for download, we'll show a button at the bottom of the blob list, allowing the user to fetch another 200 blobs.
While blobs are loading, we now display an animated loading indicator.
Welcome -> Explorer transition is now properly handled by the loading spinner.
Minor bug fixes and performance improvements

I don't see a single functional test for this feature.

@sedouard: We were always paginating (at 5000, the current maximum) - and crashing if we did fetch 5000 records. This is basically a bugfix, there's no new functionality - except for the loading animations, but those are entirely handled by HTMLBars.
Most of the code changes are fixing existing code, but I'd be the last one to vote against more tests ;-)

Got it -- didn't read the issue at first I thought this was little buttons to go past 5000 but clearly I just didn't read.


Bulk download in UI

Right now it is possible to download individual files in the UI. Could we add the following bulk download methods?

Groups of files that are simultaneously selected
Directories
Groups of directories that are simultaneously selected

@bendichter - bulk download will only be supported via cli, not the Web UI. We may have a local UI that does this/manages this.
you should be able to do individual directories via cli. we have currently lost the option of simultaneously selected files and groups of directories. but all of this should be cli enabled in the next few months (especially as we publish the dataset and link it with DataLad).

Hi @satra. It was me who asked Ben about this. It's just the Web GUI very easily allows to select entire folders using checkboxes, and there is even "select all" checkbox that allows to select all folders in the entire archive. So I absolutely expected to see a "download" link that would allow me to download the selection as a zip archive. But there is no such link. I found that non-intuitive.
Also - what is cli?

@dkobak - we will provide some form of a ui. the thing that makes the Web ui download difficult is that we have to pull the data together into a zip file (and this can get very large in general).
the CLI (command line interface) is the same tool that is used to upload data to dandi. the CLI can be installed in a Python 3.6+ environment with pip install dandi
for example to download this folder (https://gui.dandiarchive.org/#/file-browser/folder/5e9f9588b5c9745bad9f58fe)
you can simply do:
dandi download https://gui.dandiarchive.org/#/file-browser/folder/5e9f9588b5c9745bad9f58fe

your point about giving easy ways to download sub components is well taken, and we will work on it. just that the general problem across datasets is a bit complicated and we need to provide easier to use tools that works across these different use cases.

Thank you! This makes sense. I wasn't so much complaining about bulk download not available through GUI, but rather about the GUI being not entirely intuitive. It does offer an easy way to select groups of files or groups of folder. But it seems this does not serve any useful purpose (apart from displaying the total size of the selection). That's why I was confused.

@dkobak - aha - we are working on the next version of the file navigator, so this feedback is much appreciated.

This relates to https://github.com/dandi/dandiarchive/issues/325, that is, though bulk download would be supported via the CLI, what help can the UI be to make it easy to download in bulk selected resources that are determined via the UI. e.g., select a handful of resources in the UI, and have the UI tell you the exact CLI command to run to get those.
There could be a path to bulk download through the GUI (perhaps not synchronously for the reasons that @satra mentions), but that would take some additional infrastructure engineering, and the CLI path can be realized much nearer term.

Re bulk download in web UI from URLs without channeling through the server: some overview of currently used approaches and possible implementations see https://github.com/con/jsdownloader and feedback on https://github.com/con/jsdownloader/issues/1

Update: The GUI now describes how to download a Dandiset using the CLI.
We still have more work and clarification for downloading selected subsets of a Dandiset in bulk.

I think this can be closed.
@dkobak and @bendichter, if you have more thoughts on this topic, please do continue to post on this thread.
And FWIW, to manage the problem of downloading a huge file via the web, perhaps an approach like the big data brokers (i.e., Google, Facebook et al.) use when you ask to exfiltrate all of your data would be good: you ask for the specific thing, you receive an email sometime later with some sort of pre-signed URL which is valid for several days, then you do the download at your leisure (either through a web browser, or a tool like curl, etc.). I don't know if this fits in well with how we use S3, but just an idea.


np.flip probably wants in some versions necessarily an axis specification.

no idea why the pull request now contains so many commits.
But should not have any impact with a squash merge.

Thanks! Indeed, some versions of NumPy require an axis specification.


Theoryforge as a cobaya theory component

This PR modifies theoryforge_mflike and makes it a cobaya theory component.
TheoryForge_MFLike calculates the theory dictionary containing cmb, foreground and systematic effects. This dictionary is required by the likelihood component MFLike.
TheoryForge_MFLike requires the cmb theory to be calculated by the theory component camb/class. It explicitly depends on foreground parameters and systematic parameters.
TheoryForge_MFLike must be added in the theory block specified via input yaml (see tests).
Implementation will continue with the aim of further breaking theoryforge into multiple theory components, possibly sharable with other likelihood components. As an example, the foreground model can be made a standalone theory block; the bandpass construction can be part of a sharable theory component dealing with instrumental effects.

@mgerbino is this PR still good to go for review?


Button TitleView shows quesionmark

I installed the pod with:
pod 'FontAwesome.swift', :git => 'https://github.com/thii/FontAwesome.swift'
I'm importing:
import FontAwesome_swift;
...and I am setting the titleview. The 'cell.addButton' is a common UIButton:
cell.addButton.setTitle(String.fontAwesomeIcon(name: FontAwesome.plus), for: .normal);
This is showing me a questionmark. I added FontAwesome.otf to the project and to my plist to be sure, but according to the documentation this shouldn't be necessary.
I'm using Swift 3.0 and I'm running the project with an iPhone SE.

You have to update the font of the label. Setting the font will display the correct character. Keep in mind that every character is just an hex-code represented within an font. If that code doesn't exist, the character can not be represented.
See: https://developer.apple.com/reference/uikit/uilabel/1620532-font


Time converter

Describe the solution you'd like
User should be able to convert any time to the time zone he is in.

The issue has been resolved and the PR has been linked.


Bug: Templating in LLM Scorer doesn't seem to work

Hi 👋 , thanks for creating a nice piece of software!
I was following instructions from the documentation to rate some LLM responses.
It looks like templating isn't working as expected. Tried various options but no avail. Could you tell me if I'm doing something wrong or there is really a bug?

Hi, it could be that it didn’t remove the spaces you have around topic. Try removing the spaces and try. If it still doesn’t work lmk.

wow yes, it was the reason :) maybe spaces could be trimmed from variables to prevent such errors in the future?


AddOn/FeatureRequest: Protect from fake accounts creation

While this security feature might not be obvious or of use to everyone, it will be an important thing to many:
In order to avoid people creating (automated or not) mass fake accounts (to reserve a nick name, to run multiple site scrapers simultaneously, redeem multiple vouchers for something,... whatever reasons those people might have) it would be great to add a functionality that allows limiting account creation from IPs already attached to an user (really limited to account creation as for non static IP addresses a backlist could quickly lead into other issues) that occurs within a specifc timeframe.
Maybe you can think about adding it.

Hi @frankis
as I mentioned in the comment to other issue, Sorcery does not provide features for user registration, it's focused on authentication.


Release Google.Cloud.LifeSciences.V2Beta version 2.0.0-beta04

Changes in this release:
No API surface changes; just dependency updates.

Created release for Google.Cloud.LifeSciences.V2Beta-2.0.0-beta04


Background colors not matching (with GFM?)

My browser renders it as white 🤔
What is your browser / os you are using?

Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0

Thank you! not reproduced with osx + firefox + darkmode. still looking for way to reproduce it

Close with https://github.com/denoland/dotland/pull/2708


Fix/is fetching strikes again

- Summary
This is a follow-up to a bug introduced with #1570.
I didn't realize you were referencing the UUID from isFetching in RelationControl.js, which caused a constant loading spinner in the editor when a boolean was passed (it compared this.controlID to isFetching).
In some places isFetching was a boolean propType and in others is was a node propType. It seems to me that it should consistently be a boolean still, so I've created a new prop fetchID, in addition to isFetching and passed it to RelationControl.js the same way isFetching is passed.
This appears to solve the issue, but you may want to check in other components that might use this prop to be certain. If you don't accept this pull request, you can simple revert the previous that I linked above.

Deploy preview for netlify-cms-www ready!
Built with commit f2a6833b09e8ea3dca0f23ab845b830df079d7e6
https://deploy-preview-1572--netlify-cms-www.netlify.com

Deploy preview for cms-demo ready!
Built with commit f2a6833b09e8ea3dca0f23ab845b830df079d7e6
https://deploy-preview-1572--cms-demo.netlify.com

No problem, sorry for troubling you with the previous bug. You are all doing killer stuff, we are looking forward to what's next.


fromEntries corner cases

Don't think this is very important in practice, since it is mostly just an inverse of entries, but for completeness sake...

fromEntries(`null`) throws a TypeError instead of returning an empty object. With the current type coercion rules this is unexpected and might be something to keep in mind.

Incomplete array pairs are silently skipped: fromEntries([["a", `null`], ["b"], `[]`]) -> {"a": null}. Having an error in such cases, I think, would make sense.

On the other hand, having a bigger pair is also silent: fromEntries([["a", 1, 2]]) -> {"a": 1}. Not sure, if it makes sense to be strict here, but might be worth-wile to mention, that this is supported.

Key in the pair is converted to string somewhat unexpectedly (JS leaking):

fromEntries([[`null`, "value"]]) -> {"null": "value"}
fromEntries([[[1, 2, 3], "val"]]) -> {"1,2,3": "val"}
fromEntries([[{a: 1}, "val"]]) -> {"[object Object]": "val"}

fromEntries() wants a very specific structure: an array of arrays where the nested arrays have a key (string) and value (any).

Where there's extra data -- or missing values, I think I'm ok with the current behavior -- just make sure it's documented (and tested).
As for Key in the pair is converted to string somewhat unexpectedly... Clearly the keys must be converted to string.  But you're right that leaving the conversion to JS isn't the best outcome. Should result in:

fromEntries([[[1, 2, 3], "val"]]) -> {"[1,2,3]": "val"}
fromEntries([[{a: 1}, "val"]]) -> {"{\"a\": 1}": "val"}

Changed my mind on coercing key values to string.  I've opted for a strict interpretation:

The nested arrays must have exactly two values, where the first value is a string.
If a key is specified more than once, the last occurrence will override any previous value.


Updated the example on implementation of PSR-15

I noticed the example that was written was outdated. I have pasted an example that works for me with the latest version of RoadRunner

Hi! I hope I have complied with the requirements, if not please, don't hesitate to tell me anything


Implement new setup for code snippets

In the past, we had a couple of issues involving code snippets:

https://github.com/FuelLabs/fuels-ts/issues/1960

They can be missing imports, have invalid syntax, etc. We must improve our handling of these to ensure that the code chunks we provide in the docs are 100% reliable.
I outlined a proposal for it in this discussion — https://github.com/FuelLabs/fuels-ts/discussions/2159#discussioncomment-9219003.
Here's a quick PoC for it — https://github.com/arboleya/docs-widgets.

Blocked by:

https://github.com/FuelLabs/fuels-ts/issues/2712


won't boot up

it just stays white and i cannot use it. I installed all I need too. I have windows

What GPU do you have or CPU if your computer doesn't have one? A white screen normally means it can't initialize the graphics required to draw the user interface. The program should be using OpenGL and be able run on most systems. Even newer systems can sometimes have trouble due to driver issues.

If you're still experiencing this on the latest version, please make a new issue as the application has changed significantly.


fix phone number and description validators

What issues does this PR close?
closes #161 Form validators need to be fixed
### Checklist
- [x] The PR title is short and expressive.
- [x] I have updated the CHANGELOG.md. See [changelog_update.md](https://github.com/sovity/authority-portal/tree/main/docs/dev/changelog_updates.md) for more information.
- [ ] I have updated the Deployment Migration Notes Section in the CHANGELOG.md for any configuration / external API changes.
- [x] I have performed a **self-review**

Now that we allow spaces at the end of the phone number, wouldn't it make sense to strip them on submit? Either in FE before sending it to the BE or in the BE itself before persisting it in a database.
I can't imagine persisting potentially 15 whitespaces at the end of the string would be great - imagine how'd that look when displayed in FE @illfixit

Now that we allow spaces at the end of the phone number, wouldn't it make sense to strip them on submit? Either in FE before sending it to the BE or in the BE itself before persisting it in a database.
I can't imagine persisting potentially 15 whitespaces at the end of the string would be great - imagine how'd that look when displayed in FE @illfixit

I'm not sure anyone will add 15 whitespaces even if they copy paste but I'd imagine it to be made best in one place in backend because otherwise it's 10 places in FE and imo BE solution is more consistent


Multiple abap2UI5 versions with FLP connector

Regarding automagically renaming abap2UI5 and install multiple versions in one system as described here
https://www.linkedin.com/pulse/renaming-abap-artifacts-power-abaplint-github-actions-development-kqede/?trackingId=ZfuwHYWrGeZKkDGsXXwLCA%3D%3D
Is it possible to use FLP connector with multiple abap2UI5 versions? Last time I checked it was not and tried some dynamic programming but didn't come far. Another option would to automagically rename FLP connector and run multiple instances of that too. But AFAIK BSP isn't supported.

mhh good point! it is not! i think also renaming is the correct way for this but abaplint renaming just supports classes and interfaces afaik.
created a little script here to copy & rename ui5 files to bsp:
https://github.com/abap2UI5/abap2UI5/blob/main/ci/app2bsp/run.js
but its very very basic, no dynamic creation of mapping etc. but it might be possible to also change the namespace, will give it a try and come back.

i was able to install the bsp renamed to z2ui6., feel free to give a try to:
https://github.com/abap2UI5-connectors/fiori-launchpad-connector-onpremise/tree/renamed
some notes:

i am not sure how long the names are allowed to be, from a certain length abapgit breaks when pulling the icf nodes of the bsp
replace the values in the yaml to the namespace etc. you need
no idea how stable this is, created the whole script with copilot without writing a single line by myself, so everyting experimental and room for further improvements  :)
directly calling the bsp runs without problems but i am not sure how it behaves on launchpads, maybe there is the need to also rename the app.id: https://github.com/abap2UI5-connectors/fiori-launchpad-connector-onpremise/blob/renamed/src/02/z2ui6.wapa.manifest.json#L4

for a consistent approach we need to be able to rename all abap2Ui5 repositories, therefore created:
https://github.com/abap2UI5-renamed
i can install frontend and frontend-renamed separately but when installing both in parallel some icf issues come up. seems there is some magic left with the generated numbers for the icf nodes. will take a look to it again.

Updated the frontend renaming repository again.
Added a script which generates new hash values for the icf nodes and now it runs stable on my side. I can install it multiple times and also with different lenght of the names, here z2ui5, z2ui7, zabap2ui9

Feel free to give it a try.
the only thing which is not so nice, that the bsp has always some diffs with invisible charactes, but i will not put effort into solving this:

Thx a lot for your effort. Seems it doesn't work yet with namespaces. I'll try to submit some improvements.


Add Mastodon to social links

Is your feature request related to a problem? Please describe.
Missing Mastodon from Social links.
Describe the solution you'd like
Could you add Mastodon to the social links with the SVG-icon please?
Describe alternatives you've considered
I have a fork of your repo where I made the change for myself but would rather follow your main repo.
https://github.com/wjh18/hugo-liftoff/compare/master...riussi:hugo-liftoff:master
Additional context

Will do. You can also override social-links.html in your own project's layouts in the meantime if that's easier. I'll update the SVGs sometime next week, been meaning to add more anyway.


Ray.s functions

_.ray.rayIntersectionFactors using _.Space
Adjustments in test routines and related methods.:

rayIntersectionPoints : rayIntersectionPoints
rayIntersectionPoint : rayIntersectionPoint
rayIntersectionPointAccurate : rayIntersectionPointAccurate

_.ray.pointContains method and test routine ( + some CC corrections in Box.test.s )
_.ray.getFactor method and test routine ( + some CC corrections in Box.test.s )
_.ray.pointDistance method and test routine
_.ray.pointClosestPoint method and test routine
_.ray.boxIntersects method and test routine
_.ray.boxDistance method and test routine
_.ray.boxClosestPoint method and test routine
_.ray.sphereIntersects method and test routine
_.ray.sphereDistance method and test routine
_.ray.sphereClosestPoint method and test routine
_.ray.planeIntersects method and test routine
_.ray.planeDistance method and test routine
_.ray.planeClosestPoint method and test routine

very good!


Try fixing CI intermittent

This change is

If we want to work around this, we'll need to pin our Travis CI images to an older version. I believe the inverse of this diff should work: https://github.com/freeipa/freeipa/pull/1056/files


WatsonTcpServer v6.0.3 throws ArgumentException when disposed: "An item with the same key has already been added"

Hello!
Not sure if it's relevant to issue #303, but sometimes I get another exception from the code below:
var server = new WatsonTcpServer("<IP_ADDRESS>", 9000);
server.Events.MessageReceived += (s, e) => Console.WriteLine("srecv");
server.Start();

var client = new WatsonTcpClient("<IP_ADDRESS>", 9000);
client.Events.MessageReceived += (s, e) => Console.WriteLine("crecv");
client.Connect();

await client.SendAsync("aaa");
await Task.Delay(100);
server.Dispose();

System.AggregateException : One or more errors occurred.
---- System.ArgumentException : An item with the same key has already been added. Key: be8924c2-0945-4b7f-be64-2996d62d9b56

Stack Trace:
Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
Task.Wait()
WatsonTcpServer.Dispose(Boolean disposing)
WatsonTcpServer.Dispose()
RegressionTests.WatsonTcpThrowsCanceledExceptionOnDispose() line 29
<>c.<ThrowAsync>b__128_0(Object state)
----- Inner Stack Trace -----
Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
Dictionary`2.Add(TKey key, TValue value)
ClientMetadataManager.AddClientKicked(Guid guid)
WatsonTcpServer.DisconnectClientAsync(Guid guid, MessageStatus status, Boolean sendNotice, CancellationToken token)
WatsonTcpServer.DisconnectClientsAsync(MessageStatus status, Boolean sendNotice, CancellationToken token)

The error originates here: WatsonTcpServer.cs, line 572
if (!_ClientManager.ExistsClientTimedout(guid)) _ClientManager.AddClientKicked(guid);

The problem is introduced in this commit: NuGet v6.0.3, internal refactor e.g. ClientManager).
Older versions use ConcurrentDictionary instances for clients, last seen, kicked, etc:
private ConcurrentDictionary<Guid, DateTime> _UnauthenticatedClients = new ConcurrentDictionary<Guid, DateTime>();
private ConcurrentDictionary<Guid, ClientMetadata> _Clients = new ConcurrentDictionary<Guid, ClientMetadata>();
private ConcurrentDictionary<Guid, DateTime> _ClientsLastSeen = new ConcurrentDictionary<Guid, DateTime>();
private ConcurrentDictionary<Guid, DateTime> _ClientsKicked = new ConcurrentDictionary<Guid, DateTime>();
private ConcurrentDictionary<Guid, DateTime> _ClientsTimedout = new ConcurrentDictionary<Guid, DateTime>();

New refactored version use ordinal Dictionary instances protected by locks in ClientMetadataManager.cs:
private readonly object _ClientsKickedLock = new object();
private Dictionary<Guid, DateTime> _ClientsKicked = new Dictionary<Guid, DateTime>();
...
internal void AddClientKicked(Guid guid)
{
    lock (_ClientsKickedLock)
    {
        _ClientsKicked.Add(guid, DateTime.UtcNow);
    }
}

Older versions use _ClientsKicked.TryAdd which is thread-safe by design:
if (!_ClientsTimedout.ContainsKey(guid)) _ClientsKicked.TryAdd(guid, DateTime.UtcNow);

Can we revert it back to ConcurrentDictionary?

Occurs from time to time in our unit tests here on Github Actions
since we updated WatsonTcp dependency to the latest version:

Added checks for this inside of lock statements within ClientMetadataManager, will post 6.0.8 in a few moments with the fix.


List changes element too fast

List changes element too fast when pressing right or left, causes bug on small lists like "gender selection" that have few options as it ends up skipping options very frequently.

LemonUI fixes this problem. Please check #136 for more information.