[SPARK-17091] Add rule to convert IN predicate to equivalent Parquet filter.

What changes were proposed in this pull request?
Add a new optimizer rule to convert an IN predicate to an equivalent Parquet filter.
How was this patch tested?
Tested using unit tests, integration tests, and manual tests.

Can one of the admins verify this patch?

Is it a duplicate of https://github.com/apache/spark/pull/14671? cc @a10y.

Indeed it appears to be. The resolution from my previous PR was that per @HyukjinKwon's benchmarks, performing the disjunction in Spark was slightly more performant than pushing it down to Parquet.
I haven't been following Spark closely these past 12 months so things may have changed.
@ptkool did you do any profiling that would lead you to believe pushing the filter to Parquet leads to perf improvements?

@a10y Yes. Please have a look at my comments in https://issues.apache.org/jira/browse/SPARK-21218.

(I would like to suggest fix the JIRA in the PR title to point out SPARK-17091)

Have you done actual benchmarks to validate that this is a perf improvement?

@rxin Yes, I have.
https://issues.apache.org/jira/browse/SPARK-21218?focusedCommentId=16064608&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16064608

ok to test

Now we will have this for row group filtering in most cases after #15049. I believe it makes sense in this case.

Test build #83844 has started for PR 18424 at commit 8c443a7.

Test build #83844 has finished for PR 18424 at commit 8c443a7.

This patch fails some tests.
This patch does not merge cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/83844/
Test FAILed.

I believe I need to cc @jiangxb1987 and @viirya too who activiely reviewed my PR.

cc @liancheng too who I know is insightful in this.

Please rebase this PR to the latest master. Thanks!

I guess this is inactive now.

Can one of the admins verify this patch?

@ptkool are you still tracking this at all?

@a10y Yes, I'm still tracking this.

Can one of the admins verify this patch?

ok to test

Test build #85573 has started for PR 18424 at commit 62f273b.

Test build #85573 has finished for PR 18424 at commit 62f273b.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/85573/
Test FAILed.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

ok to test

Test build #91614 has started for PR 18424 at commit 62f273b.

Test build #91614 has finished for PR 18424 at commit 62f273b.

This patch fails Scala style tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/91614/
Test FAILed.

@ptkool Are you still working on?

@wangyum, can you take over this? Seems it's been inactive long time.


Add continuous integration

Additions

TravisCI config file

Updates

Add coveralls to coverage lane 🚀

Changes Unknown when pulling a703de9db62631d32201abe16ac3c558c203dc8a on feature-ci into ** on master**.


New recipe: Call endpoints from the server

What kind of changes does this PR include?

New or updated content

Description

Closes #2043
What does this PR change? Adds a recipe to explain calling endpoints from the server, without using fetch or needing to separate out code.

Yes! I'm looking at this now @TheOtterlord and wondering whether there might be a good place for this on the Endpoints page too, actually?
Where do you think it would be good to link this from?

Sorry it took so long to get back :sweat_smile:
Added the recipe link to the bottom

OK, back to this now, and the example looks great @TheOtterlord
I'm going to suggest that on the endpoints page itself, though, that this recipe go much higher. Right now, it looks like it's intended to relate to "redirects" and I think this is a much more straight ahead example than that.
Maybe put it right before the note in the introduction? What do you think about that?

The note in the introduction to server endpoints?

Yes, I'm thinking in here, right before the note where it starts talking all about params and stuff:


Newline character \n Not Working While Loading Text From Firebase

Hi i am using some text data to load from firebase and then showing it as Text.I am using Text() widget .I have a field called description in my firebase document which for example contains info like this:
description: This is \n some text.
So as you can see there should be two lines first containing This is and second line containing some text.But this does not happen.All the text is shown in one line only.
Also note that this only happens when i read the text from firebase document and but when i replace it with custom text(string) containing \n which is not read from firebase it works fine.
Why is this happening and how can i resolve this?Why does it not work when loading string from firestore.

Hi @...
This platform is not meant for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Moreover if you believe the issue is related to a FlutterFire plugin, please open the issue in the dedicated repository.
Closing, as this isn't an issue with Flutter itself. If you disagree,
please write in the comments and I will reopen it.
Thank you


Update ScalarEqualHandler

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (1b5cac7) 100.00% compared to head (673fcb2) 100.00%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #420   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           73        73
  Lines         2568      2588   +20
  Branches       415       418    +3
=========================================
+ Hits          2568      2588   +20

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Issue from website page Get Started: Firmware Upgrade

From URL: https://www.daskeyboard.io/get-started/firmware.md

Please provide the steps to reproduce this error.


Make Docker images non-root, by default, and OpenShift compliant

Master Issue: https://github.com/apache/pulsar/issues/11269
Motivation
In order to increase the overall security of our Pulsar docker images, they should default to run as the non-root user. While updating these permissions, I make sure to comply with the OpenShift spec so the docker image can run on that platform out of the box.
Once we finalize these changes, we will need to update the Apache Pulsar Helm chart to make sure that deployments take advantage of this feature. We'll use the fsGroup to make sure that k8s sets the appropriate file system permissions for the zookeeper, bookkeeper, and function pods.
Modifications

Default to run as UID 10000. As noted in the Dockerfile, this UID is arbitrary. No logic should rely on this id.
Update filesystem permissions so that the group user has sufficient write permission. The group user is 0 (root).
Remove unnecessary write access.

The /pulsar/{conf,data,logs} directories and their members must be writable by the root group. I don't know of any other directories that need to be written to. Note that the bin/pulsar-admin too creates a log file in the /pulsar/logs directory. Please let me know if there are any additional
Note also that the executable file permissions are already set in our git repo. Those permissions are inherited by the docker image when we run the COPY directive in the Dockerfile.

There are no changes to the function worker in the k8s runtime. We do not need them because we already merged https://github.com/apache/pulsar/commit/04b5da0f95794259694cc781e8960b7e52fac06b.
Add note to conf/bkenv.sh, as it is a .sh script that is not executable (and doesn't need to be).
Update test docker image and supervisord configuration.

Note: it's unclear to me how the OpenShift spec handles restarts. I know that the UID is arbitrary. It's possible that the umask needs to be switched from 022 to 002. Setting the umask in the docker image does not persist for consumers of the image, so this would need to be set in a helm chart.
Verifying this change
You can access a test image built with these changes here: michaelmarshall/pulsar:2.10.0-SNAPSHOT. I have already run some manual tests like bin/pulsar standalone in the container. I still need to deploy an actual cluster to verify that all of the unique components work correctly. Because we already merged https://github.com/apache/pulsar/commit/04b5da0f95794259694cc781e8960b7e52fac06b, the upgrade scenarios are already simplified. If this change is in 2.10.0, that means 2.8 and 2.9 will be compatible for certain function worker upgrade scenarios.
I wrote test criteria in https://github.com/apache/pulsar/issues/11269. I'll need to follow up on that criteria using my newly build image. I should be able to look closer at this tomorrow.
We'll also need tests to pass, as I modified some tests with this PR.
References
The following links were useful in understanding how to make these changes:

https://engineering.bitnami.com/articles/running-non-root-containers-on-openshift.html
https://cloud.redhat.com/blog/a-guide-to-openshift-and-uids

Does this pull request potentially affect one of the following parts:
This PR updates our Docker images in a breaking way. It could result in bookkeepers, zookeepers, or functions with insufficient permissions. We will mitigate these permissions by updating the helm chart. These changes are easily overridden by extending the docker image. In k8s, you can use the pod's securityContext to override the user or group.
Documentation

[x] doc-required

I need to add docs for this PR. I'll do that in a follow up commit tomorrow.

Mailing list thread: https://lists.apache.org/thread/lrt5ycdbms69npblp4j1jp75138wvn62

Looks like the test failures are related to containers failing to start. I'll take a closer look in the morning.

The Tiered FileSystem test failed because the broker couldn't write to the location. Since it is unrealistic for brokers to persist to a local file system, I am going to update the test to write to the /pulsar/data directory. In practice, even if the broker were writing to the local file system, the file system owner would just need to update the host's file system permissions.
2021-12-17T17:22:31,911+0000 [offloader-OrderedScheduler-0-0] WARN  org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl - [offload-test-deletion-lag-tayt/ns1/persistent/topic1] Exception occurred for ledgerId 2 timestamp<PHONE_NUMBER>911 during offload
java.util.concurrent.CompletionException: java.io.IOException: Mkdirs failed to create directory offload-test-deletion-lag-tayt/ns1/persistent/topic1/2-97ea8cf8-c5d4-4296-a42a-a09944c49b4f
	at java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:367) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:376) ~[?:?]
	at java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1019) ~[?:?]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) [?:?]
	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) [?:?]
	at org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader$LedgerReader.run(FileSystemManagedLedgerOffloader.java:220) [sdEcYt3w0SKH4TJGsfGbrg/:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) [com.google.guava-guava-30.1-jre.jar:?]
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) [com.google.guava-guava-30.1-jre.jar:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) [com.google.guava-guava-30.1-jre.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [io.netty-netty-common-4.1.72.Final.jar:4.1.72.Final]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.io.IOException: Mkdirs failed to create directory offload-test-deletion-lag-tayt/ns1/persistent/topic1/2-97ea8cf8-c5d4-4296-a42a-a09944c49b4f
	at org.apache.hadoop.io.MapFile$Writer.<init>(MapFile.java:269) ~[?:?]
	at org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader$LedgerReader.run(FileSystemManagedLedgerOffloader.java:187) ~[?:?]
	... 11 more

Still failing with the same error. Need to dig into the test a bit more. In my opinion, we should keep the docker image as locked down as possible, so I'd prefer to modify the failing test instead of the docker image.
2021-12-18T06:38:38,025+0000 [offloader-OrderedScheduler-0-0] ERROR org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader - Exception when get CompletableFuture<LedgerEntries> : ManagerLedgerName: offload-test-deletion-lag-ataq/ns1/persistent/topic1, LedgerId: 0, UUID: da175fe9-809c-4064-982b-f7b39fac16e7
java.io.IOException: Mkdirs failed to create directory offload-test-deletion-lag-ataq/ns1/persistent/topic1/0-da175fe9-809c-4064-982b-f7b39fac16e7
	at org.apache.hadoop.io.MapFile$Writer.<init>(MapFile.java:269) ~[hadoop-common-3.3.0.jar:?]
	at org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader$LedgerReader.run(FileSystemManagedLedgerOffloader.java:187) [rm6oA3cNO6zD4km9765wTA/:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) [com.google.guava-guava-30.1-jre.jar:?]
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) [com.google.guava-guava-30.1-jre.jar:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) [com.google.guava-guava-30.1-jre.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [io.netty-netty-common-4.1.72.Final.jar:4.1.72.Final]
	at java.lang.Thread.run(Thread.java:829) [?:?]
2021-12-18T06:38:38,093+0000 [offloader-OrderedScheduler-0-0] WARN  org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl - [offload-test-deletion-lag-ataq/ns1/persistent/topic1] Exception occurred for ledgerId 0 timestamp<PHONE_NUMBER>093 during offload
java.util.concurrent.CompletionException: java.io.IOException: Mkdirs failed to create directory offload-test-deletion-lag-ataq/ns1/persistent/topic1/0-da175fe9-809c-4064-982b-f7b39fac16e7
	at java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:367) ~[?:?]
	at java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:376) ~[?:?]
	at java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1019) ~[?:?]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) [?:?]
	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) [?:?]
	at org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader$LedgerReader.run(FileSystemManagedLedgerOffloader.java:220) [rm6oA3cNO6zD4km9765wTA/:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) [com.google.guava-guava-30.1-jre.jar:?]
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) [com.google.guava-guava-30.1-jre.jar:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) [com.google.guava-guava-30.1-jre.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [io.netty-netty-common-4.1.72.Final.jar:4.1.72.Final]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.io.IOException: Mkdirs failed to create directory offload-test-deletion-lag-ataq/ns1/persistent/topic1/0-da175fe9-809c-4064-982b-f7b39fac16e7
	at org.apache.hadoop.io.MapFile$Writer.<init>(MapFile.java:269) ~[?:?]
	at org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader$LedgerReader.run(FileSystemManagedLedgerOffloader.java:187) ~[?:?]
	... 11 more

@timmyyuan Please help to review this PR when you have time, thanks.

I removed the chmod -R u-w /pulsar from the builder image. I didn't fix the tests yet, so this latest commit will still fail tests.

@freeznet - I discovered that our default hdfs configuration also requires arbitrary writing to the /pulsar directory.
https://github.com/apache/pulsar/blob/f7abada1a5e1e79eee10376940187a6f7dc3cd79/conf/filesystem_offload_core_site.xml#L27-L30
I don't think this is a very good default, but I don't think we can change this default without breaking current implementation. With the latest commit, I gave the root group write permission to /pulsar.

@congbobo184 - is it possible to update the default hadoop.tmp.dir without breaking already running pulsar clusters? I'm not familiar with hdfs. It would be really helpful to move it to /pulsar/data or some subdirectory of the /pulsar directory.
https://github.com/apache/pulsar/blob/f7abada1a5e1e79eee10376940187a6f7dc3cd79/conf/filesystem_offload_core_site.xml#L27-L30

The Pulsar SQL tests have been failing because presto writes some logs to /pulsar/lib/presto/ (technically, it writes the logs to PRESTO_HOME defined in bin/pulsar). Since we're working to remove presto in 2.10, which is also when this change would go live, we don't need a long term solution for this permission issue.

New docker image built from the most recent commit: michaelmarshall/pulsar:2.10.0-SNAPSHOT-1dec8b9.
Note that I ran the dive tool (https://github.com/wagoodman/dive) against the 2.9.0 image and the 1dec8b9 image. Below are screenshots of the results. It looks like our command to install utilities introduces some inefficiency. My changes don't affect image size, though.
RUN apt-get update \
     && apt-get -y dist-upgrade \
     && apt-get -y install openjdk-11-jdk-headless netcat dnsutils less procps iputils-ping \
                 python3 python3-dev python3-setuptools python3-yaml python3-kazoo \
                 libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev \
                 curl \
     && apt-get -y --purge autoremove \
     && apt-get autoclean \
     && apt-get clean \
     && rm -rf /var/lib/apt/lists/*

after committing this patch we should take into consideration this https://github.com/apache/pulsar/pull/10815
about adding tools to manage/inspect/debug the system

We should document the upgrade path.
Especially for the existing  permissionson files.
And we should also document how to add debug tools (iostat, netstat, vim, unzip....)
Apart from that lgtm

We should document the upgrade path. Especially for the existing permissionson files.

I will definitely contribute this documentation to our release notes (or wherever we deem necessary).

And we should also document how to add debug tools (iostat, netstat, vim, unzip....)

I started putting together a document for this today. I hope to have something done early next week.

@Anonymitaet and @eolivelli - in my most recent commit, I added documentation for this feature and how to debug in light of it. A majority of the documentation is in a project README.md. It probably belongs on the website, but I'm not sure where it would make the most sense. Debugging docker containers will be relevant for both docker runtime and for kubernetes run time. Please let me know what you think, and I can update the website accordingly. Thanks!

Since some users might want to continue to run as root user to keep the existing behavior unchanged, it would be useful to add a feature to the Apache Pulsar Helm chart to be able to set security contexts for assigning the user to root user. That could reduce the risk of making the change to a non-root user.
For debugging, I think it would be useful to document the way to get a root shell in a container when that is needed.
This is possible with "Ephemeral Containers" in k8s (beta in v1.23, alpha since v1.16, requires the EphemeralContainers feature gate to be enabled):
https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/#ephemeral-container

Since some users might want to continue to run as root user to keep the existing behavior unchanged, it would be useful to add a feature to the Apache Pulsar Helm chart to be able to set security contexts for assigning the user to root user. That could reduce the risk of making the change to a non-root user.

I agree that this makes sense. I'm not sure when we should look at adding this feature to the helm chart since it is still only on 2.8.

For debugging, I think it would be useful to document the way to get a shell in a container when that is needed.

These are great points. I can add them to the README.md.

@michaeljmarshall Could you please help resolve the conflicts?

The conflict was only on white space. No code/configuration was changed.

@codelipenghui - I haven't yet been able to test the function upgrade scenario that @sijie requested. It'd be great to get this included in branch-2.10, but I want to be clear about the status of testing before this gets merged.

@michaeljmarshall Ok, I see. Thanks for the update. I will also ask @freeznet for testing this case if he has time to confirm it. Thanks again for the great work!

@michaeljmarshall this brings me a one more question, do we need to add securityContext to Kubernetes runtime to prevent the possible insufficient permissions issue when upgrade to 2.10?

@freeznet - yes, it'll be important to set the securityContext. That will ensure mounted volumes have the correct fs group write permissions. It'll also take care of upgrading existing volumes.

@michaeljmarshall thanks for the reply, so will this PR add the securityContext to kubernetes runtime?

@freeznet - no. The securityContext is set in the pod spec, which is configured in the statefulset or the deployment. I plan to follow up with a PR to the helm chart.

@michaeljmarshall but for Pulsar Functions Kubernetes Runtime, it will creates the statefulset for each function.

@michaeljmarshall but for Pulsar Functions Kubernetes Runtime, it will creates the statefulset for each function, and the securityContext for function's statefulsets/pods are needed as well, right?

@freeznet - why does the function's pod need a securityContext? The secrets are currently readable by the root group, and there are no persistent volumes that would need to have updated file system permissions.

@codelipenghui @freeznet @michaeljmarshall Can we merge this PR?

@freeznet Are you planning to do some testing before this is merged? Please test this asap. Thank you /cc @codelipenghui

@lhotari yes I am working on it, and should be done in this week.

@freeznet I noticed your mailing list post that you have completed verification. Thanks for verifying.
Ready to merge?

@freeznet - thanks for testing this feature out and helping get this merged in time for the 2.10 release!


[ENHANCEMENT] Question: is K8s version 1.28+ already supported?

Hi there,
Describe the use case:
This issue is more of a question, but might lead to an enhancement request if the answer is no: is K8s version 1.28+ already supported?
I'm asking because I saw that the Github Action tests use K8s 1.27. Can you already tell if it is safe to deploy the Helm chart to a K8s cluster with version 1.28+?
Desired outcome and acceptance tests:
The expected outcome would be to have the GH-Action tests run with K8s 1.28+, maybe even in some kind of matrix for the supported versions.
Also, a section about compatibility with the different K8s version would be great.
Best regards

@alxgrk Thanks for the suggestion.
We have that in our roadmap and expect to implement it in our CI during the Camunda 8.6 cycle.

Hi Ahmed,
we are running Zeebe on AWS EKS. Starting next week (on 24.07. specifically), AWS charges an "extended support" fee for k8s clusters <=1.27.
Is there any update on Zeebe's 1.28 support?
Thanks and kind regards
Robert

@robsman As planned, it will be part of Camunda 8.6.
However, we are generally unaware of any combability issues with K8s 1.28.

Ok, thanks, we will give the update a try then.


Update to GPflow v2 and include safety extensions

ToDo list:

[ ] Update README.md to say that the Safe PILCO part is an example extension and that test coverage is not counted there.
[ ] Write a small readme for the safe part
[x] Move safe_pilco folder to the root folder and rename to safe_pilco_extension
[x] Remove safe_pilco from coverage count
[x] Move examples, utils in the examples folder

Nice to do:

[x] Remove comments
[ ] Put comments in some example scripts where code is hard to read.
[x] Address comments in this PR
[x] Fix Travis

@kyr-pol I changed most of the things I suggested in my comments.
I think the most important remaining bits in the ToDo list are:

Update READMEs
Move examples in the examples folder
Check that the safe pilco still runs after the moving of the files into different folders

Codecov Report

Merging #45 into master will decrease coverage by 7.16%.
The diff coverage is 73.70%.

@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
- Coverage   90.30%   83.13%   -7.17%
==========================================
  Files           7        8       +1
  Lines         361      427      +66
==========================================
+ Hits          326      355      +29
- Misses         35       72      +37

Impacted Files
Coverage Δ

pilco/__init__.py
100.00% <ø> (ø)

pilco/models/__init__.py
100.00% <ø> (ø)

pilco/utils.py
26.66% <26.66%> (ø)

pilco/rewards.py
58.69% <35.00%> (-2.42%)
:arrow_down:

pilco/models/pilco.py
91.39% <90.90%> (-1.94%)
:arrow_down:

pilco/controllers.py
89.65% <91.83%> (+0.92%)
:arrow_up:

pilco/models/mgpr.py
97.32% <94.33%> (-2.68%)
:arrow_down:

pilco/models/smgpr.py
100.00% <100.00%> (ø)

... and 3 more

Continue to review full report at Codecov.

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

Checked the safe pilco examples, and they work fine by 8b0a52c. Was there a reason for naming the folder safe-pilco-extension and not something like safe_pilco_extension? I renamed it to make the imports easier.


dedicated executable + setup.py

just bundle everything up as a python package + have executables for analyzing stuff
should make it easier to install and run stuff

need to update README.md and probably also publish this to pypi while at it


Add 'Tutorials/How To' page

 Issue by stefelisabeth
Wednesday May 20, 2015 at 15:15 GMT
Originally opened as https://github.com/NESCent/dplace/issues/214

Fiona to add??

My suggestions for 5 simple how-tos.

Display the cultural variation in XX for all societies on a map > click through to a single society
Show all societies in X language family on a tree > show those with data on X cultural variable on a tree
Show a table of all societies with XX ecological variable
Show a tree of societies in Z language family with data on X cultural and Y environmental variable
Download the results of the above

Sounds great!

Details in #219


Added solution for #153 JAVA: Java Currency Formatter

Issue Number:
This submission will close the issue #153
Submissions Checklist:

[x] This issue was assigned to you.
[x] Have you followed the guidelines in CONTRIBUTING.md?
[x] Have you checked there aren't other open Pull Requests for the same hackerrank problem?

[x] Is your file name exactly same as the problem name of hackerrank, followed by the proper extension?
[x] Have you ensured that you have put the files in appropriate folders? (Folders are made according to the subdomain of hackerrank practice problems).

Hacktoberfest Contributor:

[x] Are you a hacktoberfest contributor?

Hackerrank Problem Link:
https://www.hackerrank.com/challenges/java-currency-formatter/problem?isFullScreen=true
Submitted Hackerrank Solution Link:
https://www.hackerrank.com/challenges/java-currency-formatter/submissions/code/293756384
Any other changes you made or something you would like to mention?
NA
@Riddhi9570 Please let me know if there are any changes to be done.

I hope my PRs qualify for hacktoberfest, @Riddhi9570 did someone's PR got qualified by Hacktoberfest?

I hope my PRs qualify for hacktoberfest, @Riddhi9570 did someone's PR got qualified by Hacktoberfest?

Yes @AmanGit010
For safer side, try to make more than 4 PRs in total for hacktoberfest from different repositories, in case some of them gets excluded for hacktoberfest.

Okay @Riddhi9570 thanks!


Report content type

Description
New parameter FORMAT has to be added to the schema

@DShadrick We still cannot merge anything in this repo.


Add tracking to homepage

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
What/Why
Adding tracking to the homepage to get baseline data prior to an update to the design.
https://trello.com/c/OuT7fPEL
(Note: Each commit corresponds to a row in the spreadsheet attached from the Trello card)
Visual changes
none

Just waiting for Performance Analyst to check it's ok before merging.


Bump runc version to ac031b5bf1cc92239461125f4c1ff

log:
git log--no-merges 02f8fa7863dd3f82909a73e2061897828460d52f..ac031b5bf1cc92239461125f4c1ffb760522bbf2
* d5525cc add test cases for exec command
* fd7ab60 libcontainer: make tests to make sure we don't mess with \r
* eea28f4 libcontainer: io: stop screwing with \n in console output
* 603c151 (fork/ambient-tag, ambient-tag) Move ambient capabilties
* behind build tag
* fcc40b7 (fork/remove-exec-panic, remove-exec-panic) Remove panic from
* init
* 34d7c5c fix error message
* 9b15bf1 nsenter: fix up comments
* b15668b Fix all typos found by misspell
* 1535e67 Updating container state and status API in README
* 81d6088 Unify rootfs validation
* 2d0d936 Small correction in update resource file usage
* 16ad385 Correction in util error messages
* 3db2c43 man page update for delete command
* 4d76a85 Clarify libseccomp-devel in guide
* f520eab Remove unnecessary cloneflag validation
* a0f7977 Detect and forbid duplicated namespace in spec
* 6c147f8 Make parent mount private before bind mounting rootfs
* 1ab3c03 validator: actually test success
* 2a94c36 validator: unbreak sysctl net.* validation
* 2c74f86 Employ jq and state command to make sure that pid-file
* contains the right information
* e3cd191 nsenter: un-split clone(cloneflags) for RHEL
* 2cd9c31 nsenter: guarantee correct user namespace ordering
* ed053a7 nsenter: specify namespace type in setns()
* 4cfbd25 Small typo in README
* ba1c0b4 check the arguments for `runc create`
* 41c3581 add test cases about host ns
* bc84f83 fix docker/docker#27484
* f8e6b5a rootfs: make pivot_root not use a temporary directory
* b2a194f Updating bash completion for ps command
* f550f04 fix nits in stderr log
* 596a4c3 add test cases for create command
* 5aef160 add test cases for list command
* c4e7f01 Add an integration test for tmpfs copy up
* c7406f7 Support copyup mount extension for tmpfs mounts
* 4356468 Parse the new extension flags
* f5103d3 config: Add new Extensions flag to support custom mount
* options in runc
* 799911a godeps: Add fileutils dependency
* c179b0f Some refactor and cleanup
* a83f5ba Fix issue in `GetProcessStartTime`
* d223e2a Ignore error when starting transient unit that already exists
* 6e97f3a tests: mask: use test paths rather than /sys
* 528bf37 ps error logging improvement
* 38560a0 checkpoint: fix gofmt
* ed6c5c0 update the man for runc delete command
* a367e4b Add num check for kill command
* 034cba6 Fixing runc panic for missing file mode
* 6932807 Add support for r/o mount labels
* 74bfe50 start mulit-containers with `runc start` command
* 2f5c0af pause and resume multi-containers
* 4b263c9 Fixing runc panic during hugetlb pages
* 1cd0502 Valide platform on loading config.json
* 491cada DupSecOpt needs to match InitLabels
* affc105 tiny fix, add a null check for specs.Resources.Pids.Limit
* dba9253 remove /tmp/bats from dev_runc
* 1b876b0 fix typos with misspell
* 5eaa9ed just fix a typo
* 9df4847 tiny fix
* 7e38b37 Delete: exit with non zero if one of the containers
* encountered an error
* 1a6391b Revert "simplify ps command"
* 98afb73 Add integration test for ps command
* 067ce21 simplify ps command
* 11222ee (fork/kmem) Don't enable kernel mem if not set
* 1a75f81 systemd cgroup driver supports slice management

Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Where is the CI!

Right here! (thanks @mikedougherty)

@mlaventure ci ran

LGTM


Upgrade to fuel-core @ 0.27

Release notes:

https://github.com/FuelLabs/fuel-core/releases/tag/v0.27.0

@maschad Could be a good one if you're feeling brave. 💪

Rust SDK counterpart:

https://github.com/FuelLabs/fuels-rs/pull/1395


Labels in widget FileUpload shall be configurable

Currently the labels "Drag file here" (dropbox) and "Choose file" (button) are hardcoded. It would be nice if they could be configurable when declaring the widget.

This can be achieved by overriding the rendering template and replacing a single block tag.


Windows: Title Bar Icon missing with 0.3.0 rc3

I think the icon was replaced recently? It no longer shows in the Window title bar for me with the latest master / 0.3.0 rc3.

What did you use to install it? The .msi file? I thought I've fixed everything so it should work, but it's possible I missed something.

I was just using the portable one. It's also missing if I run alacritty using cargo run.

Interestingly enough, it doesn't seem like the latest master broke this. I thought it would have to do with the icon reorganization but I bisected it and the first bad commit is the glutin 0.20 update.
I've created an issue upstream to track this: https://github.com/tomaka/winit/issues/828.

I thought it would have to do with the icon reorganization but I bisected it and the first bad commit is the glutin 0.20 update.

That would make sense - I hadn't updated my alacritty for a little while. Thanks for figuring that out :smile:


Make clear this is conf #2

Currently it seems like we’re doing this for the first time. It would be cool if https://owncloud.org/conf would make it clear that this is already the second year (and basically we had it before as well). So maybe just say »Our annual conference« or so?
To make that more clear, it would be cool to have the group photo from last year displayed on the bottom of the page (put it on the left of the »Thanks« and »Spread the word« sections). There we can also link to pictures and video recordings of last year.
What do you think @jospoortvliet @karlitschek

yeah, perfectly fine idea. Working on it now.

That’s why I love you homie ;D

@jancborchardt what do you think?

Aaaawesome!
I would just change 2 things:

remove the white border from the image
change the title to something more descriptive maybe? Like "Previous year"?

Done, see #512


[invalid] Debug osg issue

osg configure passed
Building osg[core,default-features,fontconfig,freetype,nvtt,openexr,plugins]:x64-windows-static...
-- Downloading https://github.com/openscenegraph/OpenSceneGraph/archive/OpenSceneGraph-3.6.5.tar.gz -> openscenegraph-OpenSceneGraph-OpenSceneGraph-3.6.5.tar.gz...
-- Extracting source D:/downloads/openscenegraph-OpenSceneGraph-OpenSceneGraph-3.6.5.tar.gz
-- Applying patch link-libraries.patch
-- Applying patch collada.patch
-- Applying patch fix-sdl.patch
-- Applying patch fix-nvtt-squish.patch
-- Applying patch plugin-pdb-install.patch
-- Applying patch use-boost-asio.patch
-- Applying patch osgdb_zip_nozip.patch
-- Applying patch openexr3.patch
-- Applying patch unofficial-export.patch
-- Using source at D:/buildtrees/osg/src/raph-3.6.5-41fa3cfd98.clean
-- Found external ninja('1.10.2').
-- Configuring x64-windows-static
-- Building x64-windows-static-dbg


request to add Concepcion's university as school

@WildWhale-Os I am sorry, the domain udec.cl is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Default Auto Expiration

Hi
Is there a way to set the default expiration of pastes?
I would like to keep the tidying up to a minimum as it's only on a small server.
Also would it delete attachments?  Not an issue if it doesn't a cron job can do that even if it's a dirty method.
Thanks

For adding a default expiry, your best bet is to add a default argument here: https://github.com/LINKIWI/modern-paste/blob/master/app/api/paste.py#L56
For deleting pastes, you can take advantage of the scrub_inactive_pastes function here: https://github.com/LINKIWI/modern-paste/blob/master/app/database/paste.py
When a paste "expires," it doesn't actually get deleted--it just gets marked inactive, but it still exists in the database. You have to manually invoke scrub_inactive_pastes to actually delete their data (probably via a cron job as mentioned). This will also delete paste attachments.

Thanks I thought it would be adding something in the datepicker js but I kept breaking it trying to add three days from post date.
I'll have a go


Host a plugin: teambition-devops-plugin

Repository URL
https://github.com/teambition/devops-jenkins-plugin
New Repository Name
teambition-devops-plugin
Description
为Teambition DevOps应用定制的插件，协助使用Teambition DevOps应用的用户，完善项目管理功能：更新流水线功能模块的发布状态、根据代码提交记录关联Teambition任务和流水线构建记录等
GitHub users to have commit permission
@gqlhappy11
Jenkins project users to have release permission
gqlhappy11
Issue tracker
GitHub issues

Security audit, information and commands
The security team is auditing all the hosting requests, to ensure a better security by default.
This message informs you that a Jenkins Security Scan was triggered on your repository.
It takes ~10 minutes to complete.
Commands
The bot will parse all comments, and it will check if any line start with a command.
Security team only:

/audit-ok => the audit is complete, the hosting can continue :tada:.
/audit-skip => the audit is not necessary, the hosting can continue :tada:.
/audit-findings => the audit reveals some issues that require corrections :pencil2:.

Anyone:

/request-security-scan => the findings from the Jenkins Security Scan were corrected, this command will re-scan your repository :mag:.
/audit-review => the findings from the audit were corrected, this command will ping the security team to review the findings :eyes:.
	It's only applicable when the previous audit required changes.

Only one command can be requested per comment.

(automatically generated message, version: 1.29.6)

:x: Jenkins Security Scan failed.
The Security team was notified about this.

/hosting re-check

/hosting re-check

/hosting host

/request-security-scan

:x: Jenkins Security Scan failed.
The Security team was notified about this.

You're using io.jenkins.plugins as the root package of your plugin. Please use a plugin specific root package, e.g. io.jenkins.plugins.teambition
bom version is not in sync with jenkins version: https://github.com/teambition/devops-jenkins-plugin/blob/24e324b733545f0f0d25449cc251e7a5ab053475/pom.xml#L43
please use the Apache HttpComponents Client 4.x API plugin instead of directly using httpclient  https://github.com/teambition/devops-jenkins-plugin/blob/24e324b733545f0f0d25449cc251e7a5ab053475/pom.xml#L89
do not specify a version for workflow-job here https://github.com/teambition/devops-jenkins-plugin/blob/24e324b733545f0f0d25449cc251e7a5ab053475/pom.xml#L64, the version is defined by the bom already

/hosting host

You can't host the plugin yourself, we'll need to review it still.On 2. Aug 2024, at 09:21, liz @.***> wrote:
/hosting host
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

Is it ready to host?

Hello?

Sorry the delay, I'll investigate why the Security scan is failing

It looks like there is a bug with Lombok. Could you try bumping it to at least v1.18.22 to fix this issue: https://github.com/projectlombok/lombok/issues/2681.
Then try rerunning the scan; it should fix the error.

/request-security-scan

The Jenkins Security Scan discovered 1 finding(s) :mag:.
Please follow the instructions below for every identified issues:

Implement the recommended fix to address the issue.
If you think it's a false positive, suppress the warning directly within the code.
Alternative, you write an explanation here about why you think it's irrelevant. That will require a manual review, leading to a slower process.

After addressing the findings through one of the above methods:

If all modifications have been made to the code, please initiate a new security scan by triggering the /request-security-scan command.
If there are any unresolved findings (those not corrected or suppressed), request a review from the Jenkins security team by using the /audit-review command.

Result of hasPermission call is ignored
You can find detailed information about this finding here.
DevOpsGlobalConfig.java#116
The result of the call is ignored

/request-security-scan

The Jenkins Security Scan did not find anything dangerous with your plugin, congratulations! :tada:

:bulb: The Security team recommends that you are setting up the scan in your repository by following our guide.

Is it ready to host now?

Please create a .mvn folder within the repository root with the following files: https://github.com/jenkinsci/archetypes/tree/master/common-files/.mvn
Please create a .github folder within the repository root with the following files and subdirectories: https://github.com/jenkinsci/archetypes/tree/master/common-files/.github
Replace ${artifactId} where needed
Update your Jenkinsfile with the content from https://github.com/jenkinsci/archetypes/blob/master/common-files/Jenkinsfile
Remove all dependencies from your pom.xml, the plugin doesn't actually depend on.
The plugin does not compile via mvn clean verify package, this is needed to build on our infra

Would it be possible to replace the dependency to fastjson2 (https://github.com/teambition/devops-jenkins-plugin/blob/a7165c395aff84d847f0fccc9e9aad329c060685/pom.xml#L94) with
<dependency>
    <groupId>io.jenkins.plugins</groupId>
    <artifactId>json-api</artifactId>
</dependency>

That would avoid that to pack the 2MiB fastjson2 library inside the hpi and make use of the library plugin for org.json:json

I have fixed all problems mentioned. Please check again, is it ready to host now?

One last comment. You property files for the texts have chinese as default and english as additional language (*_en.properties). For anyone that has not english as the default language in the browser and also no chinese will see the everything in chinese. It would be better to make english the default.

The default language has been changed to english. Please have a look again.

/hosting re-check

Looks good from my point of view, but I'm lacking the power to host it

/hosting host


About the repost of AR

Hello I'm an editor of a Chinese website www.mcmod.cn which is an encyclopedia website of minecraft and mods，now we want your authority to repost your mod to there for Chinese players know more about AR，do you agree？
And I hope you can make a manual for us to understand it better。

Sure!  As long as there's a link somewhere on the page that links to the page on curse forge I have no problem with that.
I hope to get to improving the wiki eventually.  Been really busy as of late but.. once I finish the first content update (what's currently the alpha builds) documentation will be my primary focus


Improve eden reconfig workflow

A common usage I have for eden is to validate onboarding and other early stages while I test different images I've built and tagged locally (make eve in the eve repo produces a tag which I feed to eden).
While that has improved, it is still painful and if I don't do the ./eden cleanup before the ./eden stop it creates a mess and the easiest is to rm -rf and clone the eden repo again, which takes a long time.
What I would like to do is just an initial setup of the form
./eden config add default
./eden config set default --key eve.tag --value tag1
./eden setup
./eden start
./eden eve onboard
run some tests
and then be able to do repeated updates of the tag/image using something like this:
./eden config set default --key eve.tag --value tag2
./eden eve offboard
./eden restart
./eden eve onboard
so I can re-run the tests

Hi, @eriknordmark .
Eden doing "offboard" during ./eden clean (removes onboard and device certs from Adam). You do not need to do rm -rf (actually, it may broke process, cause it deletes certs for previously deployed Adam, which uses docker volume), because eden deletes files automatically.
Can you please elaborate more information about problems with ./eden clean? Maybe with debug (./eden clean -v debug).
Another note (we should clarify this point in the readme): with make eve you build something like lfedge/eve:0.0.0-test-12345678-xen-amd64. You need to feed into eden:
./eden config set default --key eve.tag --value 0.0.0-test-12345678
./eden config set default --key eve.hv --value xen  <- default one is kvm here

Eden clean used to fail (and not clean up) if I had already done a stop. See other issue agaist Adam from a week ago.
Sounds like that is fixed.
It is somewhat assymetric to have clean be the opposite of onboard plus other stuff, and not have an explicit offboard (which clean could invoke). That makes it harder to understand.
Restart would be a convience. I haven't managed to fat finger eden into some broken state in the last few days, but I've been using it daily as well. If I don't do that I might forget the magic sequence.
Documenting the tag or even better have eden extract the hv from the tag would make it easier for newcomers.

Just checked and ./eden clean only does an offboard in some cases.
If I remember to do ./eden stop before clean it does an offboard.
Otherwise ./eden clean ends with
2020/10/03 00:05:30 Cannot parse Device UUID uuid: incorrect UUID length: Bad
and the certificates are not cleaned up.
Here is the sequence I did:
nordmark@bobo:~/master/eden$ ./eden stop
INFO[0000] adam stopped
INFO[0000] redis stopped
INFO[0001] registry stopped
INFO[0001] eserver stopped
INFO[0001] EVE stopped
nordmark@bobo:~/master/eden$ ./eden clean
INFO[0000] Cleanup current context
INFO[0000] started container: 39556f3362bc95ad8a77610aa47d738920ba6afa0e07f1890123b100fe280c6d
INFO[0000] Redis is running and accessible on port 6379
INFO[0000] started container: fbaae8315b7114e1d8ff0b89635bddde75608c02fd51ad44c2c2643120d216c0
INFO[0000] Adam is running and accessible on port 3333
2020/10/03 00:05:30 Cannot parse Device UUID uuid: incorrect UUID length: Bad
nordmark@bobo:~/master/eden$ ./eden config set default --key eve.tag --value 0.0.0-emerg-100146ae-dirty-2020-10-02.08.21
INFO[0000] Current context is: default
nordmark@bobo:~/master/eden$ ./eden setup
INFO[0000] Config file /home/nordmark/.eden/contexts/default.yml is the same as /home/nordmark/master/eden/dist/default-config_saved.yml
INFO[0000] Certs already exists in certs dir: /home/nordmark/master/eden/dist/default-certs
INFO[0000] GenerateEVEConfig done
INFO[0000] EVE already exists in dir: /home/nordmark/master/eden/dist/default-images/eve

Do we still have this issue @eriknordmark  or I can close it?


gnupg21 2.1.9

Upstream announcement: https://lists.gnupg.org/pipermail/gnupg-announce/2015q4/000380.html

Merged in https://github.com/Homebrew/homebrew-versions/commit/1c9b04cb507182d9637a4d67a0127b97e39128d5. Thank you for another contribution to Homebrew @gmacon; we appreciate it! :smiley_cat:


Kotlin | Support running on multiple devices

Blocked on https://github.com/TestArmada/flank/issues/133
See device syntax in https://github.com/TestArmada/flank/issues/133#issuecomment-396380666

Fixed in https://github.com/TestArmada/flank/pull/214


Fix notifications in query windows

Fixes #333 with a little trickery.
Makes notifications always appear for query messages. Also makes highlight class to be never applied in query windows (even if your nick is mentioned).

Code looks good to me, I'll let @maxpoulin64 do further testing as he was planning.
In particular, I wanted to check that query messages still notify the browser, which is correct since highlight is kept, nice!
👍

@thelounge/maintainers, anyone?


#160462909 Updating README

This is a commit for updating the README file of repository.
[Delivers #160462909]

Pull Request Test Coverage Report for Build 10

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 97.968%

Totals

Change from base Build 8:
0.0%

Covered Lines:
373

Relevant Lines:
377

💛  - Coveralls


Failed to load webpage with error: Count not connect to the server

Dear All ,
Could you please help us diagnose the following issue?
The issue is reproduced according to the below steps:
The precondition: APP is upgraded to cordova-plugin-ionic-webview
The reproduced steps/scenarios are as below:
1.Open the app.
2.Press Home key.
3.Go to the backend process, to ensure the IOS is hung up in the backend.
4.Keep the app open for 2 Days in the backend and never open the app screen to do anything again.
5.After 2 days, we will recieve one app message push.
6.Right now open the App, we found that the process might be killed as cordova will restart the process to reload the webview.
7.we found that the app will be failed to open and it will stay at the splashscreen.
8.We checked the log is that " Failed to load webpage with error: Count not connect to the server."
Due to the above issue, we can't directly open the APP continually, and we just find only way to open the App again that we close the process in the backend.
We are not sure if the current port 8080 is occupied, so the server will not be started up.
We tried many methods to fix it, but the issue is still plagued us so far, and we don't know how to fix it.
Could you please help us on this? Thanks.

I am experiencing the very same issue. I am using cordova-plugin-ionic-webview 1.x and event 2.x has this issue. I tried set WKEnableBackground to true (in 1.x version) or WKSuspendInBackground to false (in 2.x version) with no success

I was able to resolve the issue with 1.x version. I've set WKEnableBackground to true and applied patch from #124 Feel free to try out patched version

@lzoubek thanks

@sunjianghong well, I found out, that the patch has a side effect. My app (with patch applied) started to randomly respond to user clicks/taps.  Sometimes I click on ion-item and it does not do anything at all, sometimes it perfroms desired action.
If you try it out anyway, I'd be happy to see the results.
So .. for me it's not usable solution. I'll try upgrade to 2.x and apply patch there.

isn't this fixed with the latest version and <preference name="WKSuspendInBackground" value="false" />

try to run using --verbose option, mine is solved.

I had the same error and my mistake was my build command was ionic build iOS instead of
ionic cordova build ios


⚠ Contemporanea B2B has degraded performance

In 6172c54, Contemporanea B2B ($SITE_CNTMB) experienced degraded performance:

HTTP code: 200
Response time: 17565 ms

Resolved: Contemporanea B2B performance has improved in 2898f80.


The application doesn't have support for the Greek language!

Is your feature request related to a problem? Please describe.
It seems that when somebody is trying to upload a file, for example i was into uploading an article, there wasn't the option to choose the Greek language (since the article is in Greek)
Describe the solution you'd like
You can just add support for Greek! I would happily even help you with the translation of the whole application in case that someone is interested to use the app on his native language!

The guide to getting started translating lbry is abailable here: https://lbry.com/faq/how-to-help-translate


header: verify aggregator hash against validators

Refs #833

Codecov Report
Patch coverage: 100.00% and project coverage change: -0.05 :warning:

Comparison is base (09448cb) 55.22% compared to head (60a931f) 55.18%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #845      +/-   ##
==========================================
- Coverage   55.22%   55.18%   -0.05%
==========================================
  Files          54       54
  Lines        9948     9951       +3
==========================================
- Hits         5494     5491       -3
- Misses       3641     3648       +7
+ Partials      813      812       -1

Impacted Files
Coverage Δ

state/executor.go
63.96% <100.00%> (-0.95%)
:arrow_down:

... and 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Experiment: run tests forked and in parallel

Let's see if the CI is faster, I guess?

This doesn't seem to work, perhaps we can revisit this later.


ENOENT on ng serve

I am using VS Code I encountered the same error once before searched for it but didn't find any solution so I uninstalled the VS code and reinstalled. Which got me rid of the error but I rebooted my pc and hv the same error again.
When I run 'ng serve' this error occurs.

An unhandled exception occurred: ENOENT: no such file or directory, lstat 'D:\NUML lectures\Final Year Project\FYP Project\Project\Eventier\https:'
See "C:\PROGRA~1\KMSpico\temp\ng-950dms\angular-errors.log" for further details.

Thanks for reporting this issue. However, you didn't provide sufficient information for us to understand and reproduce the problem. Please check out our submission guidelines to understand why we can't act on issues that are lacking important information.
If the problem persists, please file a new issue and ensure you provide all of the required information when filling out the issue template.


weechat: 1.7 -> 1.7.1

Motivation for this change
Things done

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

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Pushed to 17.03 & 16.09 given that Changelog mentions a security problem: https://weechat.org/news/95/20170422-Version-1.7.1/
cc @grahamc


The client fails to connect without an initial token

The client fails to connect without an initial token.
Steps to reproduce:

Initialize CentrifugeClient with an empty token and a non-nil token getter.
Invoke connect

The client tries to get a token via the token getter but it fails to proceed because it simultaneously tries to connect with an empty token.

The fix is part of 0.5.2 - many thanks!

Found one more related problem - https://github.com/centrifugal/centrifuge-swift/commit/c41cea5f5b2b29051937a630a5677f86dd92a377 - will release 0.5.3 shortly


Motion path spec

https://drafts.fxtf.org/motion-1/

Outstanding issues inline.
Blink I2I: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/uqDmsIj6zJY/cS-Vp_XG2oYJ
Blink I2S: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/N4o2MoV1zuw

Are there specific areas of concern that you'd like for us to pay attention to, over and above the issues you linked to?

Some comments:
It seems like it should say more explicitly that it works like the 'transform' property (which I think is the intent).  For example, having 'motion-path' should have the effects that 'transform' has like creating a stacking context, being a containing block for absolute and fixed positioned elements, etc.
It also seems like the spec should have some examples with code in them.

Also, the "Applies to" is a little suspicious in terms of being broader than the "transformable elements" set in the CSS Transforms spec.

A few thoughts:

There don't appear to be any meaningful examples in the spec. Had to go dig them out of the Chromium repo (here)[https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/LayoutTests/css3/motion-path/&q=motion-offset&sq=package:chromium&type=cs]. This is a pretty big issue.
The transform-box which is the root of the transformation is spec'd but appears to be a new property with uncommon semantics. Why was this chosen instead of a more locally-familiar coordinate system?
It seems the interactions with layout aren't called out well. I.e., these things create stacking contexts, become containing blocks, etc., no?

These properties have been merged with polar positioning and are currently in the Round Display spec:
https://drafts.csswg.org/css-round-display/#positioning-content
The motion path spec needs to be tombstoned.

During the SF face-to-face I thought we had resolved to merge the round display properties into motion-path, not the other way around. Has something changed since?

Only that the current work seems to be happening in the Round Display spec. I expect it will get moved back to motion-path at some point (or possibly another spec). I don't care where it ends up (or lives now) and am not advocating for any location, I just think it's confusing to have conflicting work in two places, and one of them should just point to the other.


added comments in master file

please check the changes i have done in master_driver file

ok accepting the changes


[FEATURE] Allow changing Guaranteed Engine CPU without restarting Instance Managers

Is your feature request related to a problem? Please describe.
Longhorn is using GuaranteedEngineCPU option in the Kubernetes Pod Spec now, to guarantee the CPU allocation to Longhorn engine/replica. However, that part of Pod Spec cannot be changed unless recreating the Pod. But the CPU needed by Longhorn is associated with how many engines/replicas running in the instance manager.
Describe the solution you'd like
Want to find a way to modify GuaranteedEngineCPU without restarting instance managers, so if there are more engines or replicas than we previously budgeted for, we should able to increase the CPU number reserved for the instance manager.
We might even able to adjust the GuaranteedEngineCPU according to the load on the instance manager.
Describe alternatives you've considered
Push the Kubernetes upstream to do it. But it seems hard, even though cgroup itself doesn't have this restriction.
We can also reserve a certain amount of CPU, e.g. 1/8 of the total CPU on the node, and don't allow engine/replica number exceeding what can be used for them. But it:

Will result in resources waste in some cases, e.g. the node has no engine running.
Doesn't help if the node is using as a storage node that only runs replica, which limits the maximum number of the replica it can handle as well

Additional context
REF: https://github.com/longhorn/longhorn/issues/1691

Before this feature is available, the alternative is:

We reserve 1/8 of CPU for each instance manager, so for every node, we will reserve a quarter of CPU by default. It can be overridden by user.
We calculate how many engine/replicas can be allowed to run on the node. And if user exceeds the limit, we should warn user about the potentially over utilization and the possibility of result in unstable storage.

Before this feature is available, the alternative is:

We reserve 1/8 of CPU for each instance manager, so for every node, we will reserve a quarter of CPU by default. It can be overridden by user.
We calculate how many engine/replicas can be allowed to run on the node. And if user exceeds the limit, we should warn user about the potentially over utilization and the possibility of result in unstable storage.


Update order of collections breaks unique constraints

Describe the bug
When trying to persist changes on a collection which has unique constraints mikro orm inserts first thus failing.
Reproduction

Create an entity with a one to many relationship.
Create a unique constraint on the child relationship
Edit collection (remove/add items)

What driver are you using?
None
MikroORM version
5.6.8
Node.js version
v16.15.1
Operating system
osx
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Slack.
[X] The provided reproduction is a minimal reproducible example of the bug.

please update to latest version before reporting anything
provide reproduction as code, this is too sparse

please update to latest version before reporting anything
provide reproduction as code, this is too sparse

Hey Martin, as with previous issues I just created this to have branch to link it with on my fork; forgot to mention that.
Fortunately, the issue is no longer present in latest version. It only shows up when I checkout the project to the version I'm currently using.
Would it make sense exploring why this was happening or is it not worth the effort?

Ok doing a git bisect I found the fix 😄 :
commit f9530e4b24bd806e33f1997d4e1ef548e02b6b90
Author: Martin Adámek<EMAIL_ADDRESS>Date:   Tue May 2 18:57:50 2023 +0200

    fix(core): detect early deletes for compound unique constraints

    Closes #4305
    ```
    That's exactly what I'm experiencing; guess I'll just upgrade then! will close this issue 👍

Good, next time update first :]
Btw you don't need the issue number upfront, it's not really important - I don't care about PRs adding tests (I won't merge things that would break the build), the code that reproduces the problem is what I am after, and that can be just inlined into the issue description (as long as it's a single file repro, which is what I always appreciate). I also have a few GHx issues in that folder for things that people report on slack or elsewhere, so that's another way of doing things. But the final test will be merged only with the fix.


Where to add openrouteservice itself?

I've added openrouteservice's development side within #108. but couldn't be sure where should i added itself.
And as a second question it has QGIS Plugin. We've some QGIS plugins on list. What is our stance on this matter, choosing a QGIS plugin to included? @sacridini
Wish all you all a great week! 🥳

Hey @cemrehancavdar! How are you? :)
Sorry for the delayed response.
So I usually add these more "generic" tools that are not a library associated with a specific language in the "tools" category
I think it's possible to add QGIS plugins too, not sure about an entire section for this, but I think it can be added within the "tools" sections too.
Have a great weekend! 👍🏼

Hey, @sacridini
Feeling great, Thanks for answer! wbu?
It's quite nice approach to add more generic tools. I'll try to look by that way.
Have a good week ✌


images/screenshots and static contents in the Gauge HTML Report is broken

Describe the bug
Hi, I am unable to view the images/screenshots and static contents in the Gauge HTML Report when I access the gauge html report. I am using the below versions of gauge, plugins and taiko. Please help me to fix this issue. TIA!
gauge -v
Gauge version: 1.0.7
Commit Hash: ed7b4fd6
Plugins
-------
html-report (4.0.12)
js (2.3.16)
json-report (0.3.5)
reportportal (1.12.0)
screenshot (0.0.1)
xml-report (0.2.3)

taiko -v
Version: 1.0.5 (Chromium: 81.0.3994.0) RELEASE

Please upgrade to
the latest version of gauge v1.3.3
Latest version of html report - 4.1.0
Later version of Taiko - 1.2.5

Thank you, We have some challenges in our framework which doesn't support the latest versions. In other machines where we have setup the framework, we are able to view the reports properly with the images/screenshots and it has same above versions.

Hi, I am unable to view the images/screenshots and static contents in the Gauge HTML Report when I access the gauge html report.

Can you provide more details about this problem. Which environment are you seeing this in? Is there some sample or screenshots of the problem or some way to replicate it?

Hi, I am unable to view the images/screenshots and static contents in the Gauge HTML Report when I access the gauge html report.

Can you provide more details about this problem. Which environment are you seeing this in? Is there some sample or screenshots of the problem or some way to replicate it?

Thanks again for looking into this issue.
sure, I am trying to run the scripts on a ubuntu box through the jenkins setup and when I access the reports URL from a different box (within the local network) I am not getting images/screenshots properly and the page gets displayed as below.
Report from a different machine (within LAN)

And when I try to access the reports from the same machine I get few images/static contents on the reportUI except the actual application screenshot. Please refer the below screenshot.
Report from  the actual Ubuntu box

There's a setting in Jenkins to solve this. For more info please refer
https://github.com/getgauge/html-report/issues/219#issuecomment-478676959

Thanks a ton for the above solution, For some reason the solution is working on incognito mode of google chrome and FF and not on normal google chrome browser session. Also I am still not getting the screenshots images in the reports.

The 403 code is definitely a server side error. This is an issue with Jenkins or wherever you are hosting the report. Please check if there any other setting on the Jenkins server that needs to be enabled/disabled to fix this.

Ok, thanks a lot again. Looks like the above command helped me to get the reports without any further issues. 🙇
I have another issue in this. Somehow the screenshots are not getting generated and displayed in the reports html page and for me I am getting the screenshots under the folder-images with the screenshot address as (/reports/html-report/images/screenshot-*.png) and but for my friend he gets the screenshots images displayed on the reports html with address as "data:image/png;base64,". and for screenshots we are using the below code and with the below addons.
gauge.screenshotFn = async function () {     return await screenshot({ encoding: "base64" });
gauge -v
Gauge version: 1.2.1
Commit Hash: fa7918b
Plugins
-------
html-report (4.0.12)
js (2.3.16)
json-report (0.3.5)
reportportal (1.12.0)
screenshot (0.0.1)
xml-report (0.2.3)

taiko -v
Version: 1.0.3 (Chromium: 81.0.3994.0) RELEASE


Main file as client.js

Would it be possible to set the main file as client.js? Currently running into issues on our suite of projects that use Wiredep that are unable to load it in without setting an override for the main file in our bower.json's.

Would this be fixed by updating the project's bower.json to include:
  "main": [
    "./dist/client.min.js",
    "./dist/hub.min.js"
  ]

Yes, that should fix it I believe

Actually, that's not exactly what we want, because that would bring in both files all the time, when you only ever want one or the other, which is why I said client.js originally because it is more likely to be the correct one, and then an override can be used for the smaller number of cases where hub.js is desired. Potentially, could the hub and client be separate apps, where the main file is the respective and correct file? So have one project for client and one project for hub?

Closing due to inactivity. I think this issue could be resolved through configuration of Wiredep.


Prepare arrow 52.0.0

Which issue does this PR close?

Closes #5688
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

I was intending to hold this until I had updated DataFusion...

I've gone through https://github.com/apache/datafusion/pull/10765 and the remaining test failures are mostly either formatting or memory usage changes. Thank you @waynexia
The one exception to this are the symmetric hash join, but given the amount of interval-specific logic in DF for these I am inclined to think the issue likely does not lie in arrow-rs.
As such I am going to proceed with the release, worst case we have to cut a new RC or do a fast follow patch release which would not be the end of the world.

Thanks, I haven't meet the symmetric hash join under the default feature
gate, hope I can solve the remaining failures tomorrow and the release can
go smoothly on both sides.
Raphael Taylor-Davies @.***>

I've gone through apache/datafusion#10765
https://github.com/apache/datafusion/pull/10765 and the remaining test
failures are mostly either formatting or memory usage changes. Thank you
@waynexia https://github.com/waynexia
The one exception to this are the symmetric hash join, but given the
amount of interval-specific logic in DF for these I am inclined to think
the issue likely does not lie in arrow-rs.
As such I am going to proceed with the release, worst case we have to cut
a new RC or do a fast follow patch release which would not be the end of
the world.
—
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow-rs/pull/5836#issuecomment-2145569070,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADVK7M33MO6LQ2WBISMMCGDZFSGSZAVCNFSM6AAAAABIWHUPYCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBVGU3DSMBXGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

The one exception to this are the symmetric hash join, but given the amount of interval-specific logic in DF for these I am inclined to think the issue likely does not lie in arrow-rs.

The fix commit is https://github.com/apache/datafusion/pull/10765/commits/fc9a86bd66659e0f0d87f65a18b3c150028e4fce. I'm not sure if IntervalDayTime::ONE should be "1 day 1 milli" or "0 day 1 milli" 🤔 But this should not be a big problem as we can choose not to use that const if its value is not expected. Only concern about it may bring some misunderstanding.

I'm not sure if IntervalDayTime::ONE should be "1 day 1 milli"

ONE is defined as the multiplicative identity, which in this case is 1 day 1 milli. I agree there is definitely room for confusion when it comes to arithmetic on these types


gogoproto compatibility fix

This vendors the latest stable release of gogoproto and sets the packed=false option on repeated integer fields.
It fixes a problem where unmarshalling code generated by older versions of gogoproto doesn't handle the packed encoding, which is now the default. This broke wire format compatibility between 17.03 and 17.04+.
cc @aluzzardi @dongluochen @stevvooe

LGTM

Would this be easier to enforce with a pass through the descriptor in cmd/protoc-gen-gogoswarm?
LGTM

Would this be easier to enforce with a pass through the descriptor in cmd/protoc-gen-gogoswarm?

We could certainly do that, but the packed=false option is only necessary for preexisting options to make sure they are encoded backward-compatibly. An automated pass would apply it to new fields as well.


Stark implementation docs

Description
Type of change
Please delete options that are not relevan

[x] Documentation

Codecov Report

Merging #215 (5010e3d) into main (34b6e74) will increase coverage by 0.34%.
The diff coverage is 96.96%.

@@            Coverage Diff             @@
##             main     #215      +/-   ##
==========================================
+ Coverage   92.27%   92.61%   +0.34%
==========================================
  Files          66       66
  Lines        7245     7219      -26
==========================================
+ Hits         6685     6686       +1
+ Misses        560      533      -27

Impacted Files
Coverage Δ

proving_system/stark/src/lib.rs
67.85% <75.00%> (+4.50%)
:arrow_up:

...ving_system/stark/src/air/constraints/evaluator.rs
100.00% <100.00%> (ø)

proving_system/stark/src/air/mod.rs
91.66% <100.00%> (+25.00%)
:arrow_up:

proving_system/stark/src/verifier.rs
97.97% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Output folder structure is weird (generating qcow2 goes to qcow2, but ami goes to image/ folder)

Example:
        qcow2: 'qcow2/disk.qcow2',
        ami: 'image/disk.raw',
        raw: 'image/disk.raw',
        iso: 'bootiso/disk.iso',

Is where all the locations are.
But it should be:
        qcow2: 'qcow2/disk.qcow2',
        ami: 'ami/disk.raw',
        raw: 'raw/disk.raw',
        iso: 'iso/disk.iso',

Which makes more sense / predictable.

This is a dup of https://github.com/osbuild/bootc-image-builder/issues/103 I believe.

Woops! You are right.


cosmwasm_std: use BTreeMap in testing mocks

Avoid dependency on std in testing module by replacing usage of
HashMap by BTreeMap.  The HashMap hasn’t been used in public API other
than DistributionQuerier::new method.  While this breaks API, the
method hasn’t been included in stable cosmwasm-std release yet thus
the change is semver-compliant.
An alternative approach would be to change DistributionQuerier::new to
take iterator of pairs.  It’d probably be somewhat cleaner even if
it’d cause some unnecessary allocations when constructing the object.
With this change it’s going to be possible to make cosmwasm-std
support no_std in entirely backwards-compatible way (even if someone
builds with no-default-features).

With this change it’s going to be possible to make cosmwasm-std
support no_std in entirely backwards-compatible way (even if someone
builds with no-default-features).

I haven’t fully verified this, but I’m fairly certain that this is
true.  There will essentially be no need for std cargo feature if
testing module doesn’t use HashMap.  DistributionQuerier::new is
the only offending interface and to be honest I think it should
instead be:
    pub fn new<T>(withdraw_addresses: T) -> Self
    where
        T: core::iter::IntoIterator<Item = (String, String)>
    {
        /* ... */
    }

Unfortunately, we already released 1.3 with the HashMap before seeing this PR, so this is a breaking change after all. However, 2.0 is planned, so we can do the change there.
I agree with the IntoIterator proposal.

I agree with the IntoIterator proposal.

@chipshort could you open a ticket for that for 2.0?


Added Table of Contents to index.md

Added a table of contents to the index.md for ease of navigation, this will allow users to easily jump to relevant sections.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Thank you and happy coding. ✈


Patch old vds

Patch an old VDS to include LGT for reference blocks.
If a sample is female, or the ref block falls inside the PAR region, LGT is set to (0,0). Otherwise, it is set to (0).

No, I keep using the same branch name, which is probably bad practice (and I have to keep fixing merge conflicts, so I really should stop)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 26.62%. Comparing base (8c263be) to head (d4f4d09).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #995   +/-   ##
=======================================
  Coverage   26.62%   26.62%
=======================================
  Files           9        9
  Lines        1705     1705
=======================================
  Hits          454      454
  Misses       1251     1251

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


Interchain security 2 v3.0.0 rebase

Together with

https://github.com/cosmos/interchain-security/pull/149

tackles

https://github.com/cosmos/interchain-security/issues/107

Explanation
Long story short, the v3.0.0 that cosmwasm uses changes the signature of OnChanOpenAck so this had to be changed on interchain-sec side. On ibc-go side I rebased onto v3.0.0.

@sainoe I've now reverted the duplicate changes.


last-will: weak attributes cause problems with Clang

When compiling a (correct) solution of the last-will exercise with Clang (version 15.0.7 on Linux) I get the following error:
/vagrant/exercism/cpp/last-will/last_will_test.cpp:30:53: error: attribute declaration must precede definition [-Werror,-Wignored-attributes]
    int assemble_account_number(int) __attribute__((weak));
                                                    ^
/vagrant/exercism/cpp/last-will/last_will.cpp:45:9: note: previous definition is here
    int assemble_account_number(int secret_modifier) {
        ^
/vagrant/exercism/cpp/last-will/last_will_test.cpp:31:40: error: attribute declaration must precede definition [-Werror,-Wignored-attributes]
    int assemble_code() __attribute__((weak));
                                       ^
/vagrant/exercism/cpp/last-will/last_will.cpp:50:9: note: previous definition is here
    int assemble_code() {
        ^

For some reason Clang doesn't like this __attribute__((weak)).
I couldn't find a quick solution so I'm opening this issue.

What seem to work is moving the these weak declarations (lines 28-35) to the beginning of the file, before `#include "last_will.cpp"
I've tested that with GCC-9.5.0, GCC-12.1.0, Clang-11.1.0, and Clang-15.0.7 on Linux.

Thanks for finding this! Now we only need the same thing to prep a class to make the test run when it is not implemented. Do you have an idea?


Change the AI prompt

"add you're a robot that speaks in json" to ensure robot always return valid json

had no significant improvement


Add configuration for berliner-raumpiloten.de

Merged with 8aca374. Thanks again for joining the collab stream! :sparkling_heart:


mixing scale and affine transformations for images in a physical "world coordinate" space

🚀 Feature / Motivation
I am working a bit to use transformations derived from elastix using napari's 2D linear transformation rendering. The good news is that it mostly works, but I have a question regarding physical scales. elastix takes these into account during registration and returns a transformation and the "spacing" or distance between pixels. When using this transformation matrix in napari, adding an affine transform and a scale to physical dimension aren't composed together. See example below:
import numpy as np
import napari
from napari.utils import transforms
from skimage.data import astronaut
from skimage.transform import rescale, rotate
from skimage.color import rgb2gray

# load in RGB image -> gray
# physical size is arbitrarily 1 units/px
full_size_im = rgb2gray(astronaut())

# resize image by half
# physical size is 2 units/px
half_size_im = rescale(full_size_im, (0.5, 0.5), preserve_range=True)

# rotate full size 45 degrees
full_size_im_rot45 = rotate(full_size_im, 45, True, preserve_range=True)

# rigid transformation found through elastix, in physical coords
# converted, inverted and reordered
# using code & ideas from https://github.com/image-transform-converters/image-transform-converters
affine_mat = np.array(
    [
        [0.70711116, -0.7071024,<PHONE_NUMBER>1],
        [0.7071024, 0.70711116, 0.70937201],
        [0.0, 0.0, 1.0],
    ]
)

nap_aff = transforms.Affine(affine_matrix=affine_mat)

with napari.gui_qt():
    viewer = napari.Viewer()
    viewer.add_image(
        full_size_im_rot45,
        name="full rot 45 resize",
        scale=[1, 1],
        colormap="viridis",
        opacity=0.5,
    )
    viewer.add_image(
        half_size_im,
        name="half registered",
        affine=nap_aff,
        scale=[2, 2],
        colormap="red",
    )
    print(viewer.layers["half registered"].affine.affine_matrix)

I get this:

The rotation and translation from elastix is correct as the rotation and translation is appropriate but the fact the image is half the size was ignored. The printed matrix after the layer is initialized being the same as the original indicates the scale argument appears to be overriden or ignored when affine != None.
Pitch
Adding scaling to the affine matrix fixes this issue:
affine_mat = np.array(
    [
        [0.70711116, -0.7071024,<PHONE_NUMBER>1],
        [0.7071024, 0.70711116, 0.70937201],
        [0.0, 0.0, 1.0],
    ]
)

nap_aff = transforms.Affine(affine_matrix=affine_mat)
nap_aff.scale = [2,2]

with napari.gui_qt():
    viewer = napari.Viewer()
    viewer.add_image(
        full_size_im_rot45,
        name="full rot 45 resize",
        scale=[1, 1],
        colormap="viridis",
        opacity=0.5,
    )
    viewer.add_image(
        half_size_im,
        name="half registered",
        affine=nap_aff,
        colormap="red",
    )

Curious if this is intentional. I am happy to take a stab if someone can tell me where things may need to be changed.

Heh, I was wondering about this recently myself. Nice investigative work with the Affine class. I think you are probably right that the correct interpretation is to compose the transformations, but the question is, in what order? And by the way, in general, I don't think we should override the scale (with nap_aff.scale = ), but rather compose it with a new transform containing the scale.
Based on your suggestion (that elastix takes the scale as an input and then does the registration), it sounds to me like we should apply scale/translate first, then the given affine.
@sofroniewn, what do you think?

Heh, I was wondering about this recently myself. Nice investigative work with the Affine class. I think you are probably right that the correct interpretation is to compose the transformations, but the question is, in what order? And by the way, in general, I don't think we should override the scale (with nap_aff.scale = ), but rather compose it with a new transform containing the scale.
Based on your suggestion (that elastix takes the scale as an input and then does the registration), it sounds to me like we should apply scale/translate first, then the given affine.
@sofroniewn, what do you think?

Curious if this is intentional. I am happy to take a stab if someone can tell me where things may need to be changed.

Hi @NHPatterson thanks for raising this! Just to make sure I understand what this issue is about - right now when you pass both affine and scale we just silently ignore the scale and only use the affine, you can see that here https://github.com/napari/napari/blob/679fd1d7c6d6bd41b9ae0daca642d35af2691c86/napari/layers/base/base.py#L210-L236
When you then look at the layer.scale you actually get the scale contribution of the decomposition of the affine! It seemed to make sense at the time, but maybe wasn't the best choice.
An alternative API would be to have affine, translate, scale, rotate, shear all be independent of each other, store them separably and then compose them in some default order and not return the decomposition. If we do that should we still allow rotate and shear to be inputed separately
Ah - i see mid-writing @jni has just proposed something like that asked my thoughts too :-)
Yes, I think we should probably change something, but I want to think a little more about the final API, for example would we ever provide things like layer.composed_scale to the the user, and what if now people have a more complex series of transforms that they want to support?
There was some suggestion in #1663 of just improving the API for our transforms in general, which might be a more robust way to solve this longer term. I'm not quite sure yet what is best and very open to more input.

Curious if this is intentional. I am happy to take a stab if someone can tell me where things may need to be changed.

Hi @NHPatterson thanks for raising this! Just to make sure I understand what this issue is about - right now when you pass both affine and scale we just silently ignore the scale and only use the affine, you can see that here https://github.com/napari/napari/blob/679fd1d7c6d6bd41b9ae0daca642d35af2691c86/napari/layers/base/base.py#L210-L236
When you then look at the layer.scale you actually get the scale contribution of the decomposition of the affine! It seemed to make sense at the time, but maybe wasn't the best choice.
An alternative API would be to have affine, translate, scale, rotate, shear all be independent of each other, store them separably and then compose them in some default order and not return the decomposition. If we do that should we still allow rotate and shear to be inputed separately
Ah - i see mid-writing @jni has just proposed something like that asked my thoughts too :-)
Yes, I think we should probably change something, but I want to think a little more about the final API, for example would we ever provide things like layer.composed_scale to the the user, and what if now people have a more complex series of transforms that they want to support?
There was some suggestion in #1663 of just improving the API for our transforms in general, which might be a more robust way to solve this longer term. I'm not quite sure yet what is best and very open to more input.

Awesome work, @NHPatterson !
As suggested by @jni , keeping the scale, translate, rotate, affine separate and composing them in a specific order could be a good improvement.
For compatibility with elastix and a number of other imaging tools, e.g. itk, imagej, the ideal composition order is:
affine * (rotate * scale + translate)

If skew is needed, it could be:
affine * skew * (rotate * scale + translate)

For using elastix directly in napari, there is now an elastix_napari plugin, cheers to @ViktorvdValk ! -- feedback and contributions are welcome!

Ok awesome @thewtex - let's adjust this to do
affine * skew * (rotate * scale + translate)

I think we should also then avoid all the decomposition stuff that we're doing all over the place as well, which should make everything much faster. We can work on this for the 0.4.9 release

For using elastix directly in napari, there is now an elastix_napari plugin, cheers to @ViktorvdValk ! -- feedback and contributions are welcome!

That's great, thanks for sharing!! Excited to check that out

If skew is needed, it could be:
affine * skew * (rotate * scale + translate)

@thewtex Did you define that order (with parentheses in those particular places) because you think of skew being absorbed into the affine component of that composition rather than something that describes how the pixels in an image are sampled? Or is there another reason?
Alternatively, could we consider the following order?
affine * (rotate * skew * scale + translate)

In this case, you could think of rotate * skew as defining ITK's direction matrix, which seems to support (or at least not forbid) non-orthogonal directions according to ImageBase::SetDirection, but not really expect them. My is that guess is a lot of tools based on ITK will either break or not handle non-orthogonal directions properly.
The nice thing about the second order of rotate * skew * scale is that we can use the QR-decomposition to resolve each component from any affine matrix. We rely on extracting some of these components from general affine matrices in napari, so this would mean fewer code changes, and maybe fewer breakages.
It's the first time I've had to think about skew/shear as an acquisition/sampling property, so any thoughts would be welcome.

affine * (rotate * skew * scale + translate)

seems very reasonable to me, and i can see how it will be nicer with the QR-decomp, but good to know if there are good reasons to consider the alternative!

My is that guess is a lot of tools based on ITK will either break or not handle non-orthogonal directions properly.

You are right. Most image processing algorithms do not support skew, but this is not limited to ITK.

It's the first time I've had to think about skew/shear as an acquisition/sampling property,

Yes, an image is defined by sampling that is on a uniformly spaced, rectilinear grid.
In ITK, there are no checks that a Direction  is orthogonal, but most algorithms are not valid without that assumption. For ITK, the Direction is orthonormal.
Without a uniformly spaced, rectilinear grid, many image processing algorithms become complex or intractable, and assumptions cannot be made that dramatically impact performance.
So, the logic to apply affine and skew after was to separate them from uniformly spaced, rectilinear grid properties. Taking it further, these could be left out from an ImageLayer. But, if they are there, maybe the order does not matter :-).

Thanks for the feedback @thewtex.
In the last napari community meeting, we decided to keep our current implied ordering rotate * shear * scale + translate. As napari's primary concern is visualization, the order of these transforms (and presence of shear) is not critical, and that order was believed to be the most natural when dealing with visualization of datasets that do contain some kind of shear (e.g. lattice light-sheet microscopy).
After merging PR 2855, this issue should be fixed in that the affine property is defined independently of the other transform properties like scale, translate, and rotate. Those latter properties could be used like ITK's spacing, origin, and direction. For some plugins (including those based on ITK), it probably makes sense to at least warn if the napari Image layer has a non-identity shear, and maybe error.
One other thing to watch out for is that napari currently absorbs reflections into the scale component (i.e. the scale component can contain negative values), so the scale, translate, and rotate parameters may not always come out exactly as they went in (i.e. if the rotate matrix passed in has a determinant of -1, the one returned will have a determinant of 1 and corresponding scale parameter will be negated. I think we can change that without too much work though.


Add draggable event

Hello, thanks for this awesome widget, really love how easy it is to work, but could you add draggable event for showing the widget? I observed that users have a tendency to drag it from the margin instead of just tapping on it.
Edited because I  had both questions in mind, but one of them answered myself (had a call that was triggering the hide event) and somehow thought about that one while wanting write about the other one.

Hey, I'm really sorry for taking so long to get back to you. Unfortunately, I won't be able to support this feature for the time being. I apologize once again for any inconvenience caused! However, feel free to fork the project and customize it according to your own requirements.


0.2.0 pypi release doesn't install

I get the following installing on python 3.7 (windows and macos)
Collecting fs.dropboxfs
Downloading https://files.pythonhosted.org/packages/45/77/4ccf2f3d220791bc41beb19ad07b02723a279d376cdf437822a19e5382b
/fs.dropboxfs-0.2.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\rkhwaja\AppData\Local\Temp\pip-install-tctd2y6r\fs.dropboxfs\setup.py", line 21, in
with io.open('HISTORY.rst', 'r', encoding='utf8') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'HISTORY.rst'
----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in C:\Users\rkhwaja\AppData\Local\Temp\pip-install-tctd2y6r
fs.dropboxfs\

This'll prevent it from happening again: https://github.com/PyFilesystem/fs.dropboxfs/pull/3


Add long description to packages from README.md

[tool.poetry.readme] cannot be set markdown file directly so I added in [project] section.

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella: