Investigate increased errors in run 36

This marathon run finally completed. There are a lot more errors:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find jars -name '*.done'|wc -l
1792
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find jars -name '*.jar'|wc -l
2120
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find jars -name '*.error'|wc -l
601

Compared to last time:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find runs/34_with_eq_from_dot_and_new_jep181/jars/EQ -name '*.done'|wc -l
1792
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find runs/34_with_eq_from_dot_and_new_jep181/jars/EQ -name '*.jar'|wc -l
2492
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find runs/34_with_eq_from_dot_and_new_jep181/jars/EQ -name '*.error'|wc -l
406

Originally posted by @wtwhite in https://github.com/binaryeq/jcompile/issues/93#issuecomment-2205470512

The errors seem concentrated in ecj builds at versions >= 3.12:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ for d in jars/EQ/ecj-3.*; do echo $d; ls -ltra $d/*.jar | wc -l; done
jars/EQ/ecj-3.11.1.v20150902-1521_openjdk-11.0.19
60
jars/EQ/ecj-3.12.3_openjdk-11.0.19
60
jars/EQ/ecj-3.15.1_openjdk-11.0.19
5
jars/EQ/ecj-3.24.0_openjdk-11.0.19
5
jars/EQ/ecj-3.28.0_openjdk-11.0.19
5
jars/EQ/ecj-3.29.0_openjdk-11.0.19
11
jars/EQ/ecj-3.30.0_openjdk-11.0.19
11
jars/EQ/ecj-3.32.0_openjdk-11.0.19
11

By comparison, openjdk compilers do better:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ for d in jars/EQ/openjdk-*; do echo $d; ls -ltra $d/*.jar | wc -l; done
jars/EQ/openjdk-10.0.2
93
jars/EQ/openjdk-11.0.12
99
jars/EQ/openjdk-11.0.16
99
jars/EQ/openjdk-11.0.19
99
jars/EQ/openjdk-15.0.1
73
jars/EQ/openjdk-16.0.1
73
jars/EQ/openjdk-17.0.1
73
jars/EQ/openjdk-17.0.4
73
jars/EQ/openjdk-17.0.7
73
jars/EQ/openjdk-18.0.2
73
jars/EQ/openjdk-19.0.2
73
jars/EQ/openjdk-20.0.1
53
jars/EQ/openjdk-8.0.302
93
jars/EQ/openjdk-8.0.342
93
jars/EQ/openjdk-8.0.372
93
jars/EQ/openjdk-9.0.1
83
jars/EQ/openjdk-nodebug-11.0.19
99
jars/EQ/openjdk-nodebug-17.0.7
73
jars/EQ/openjdk-nodebug-20.0.1
53
jars/EQ/openjdk-nodebug-8.0.372
93

So far I've found one cause, but it doesn't cover everything:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ grep "Failed to run the ecj compiler: Compliance level '.*' is incompatible with target level '.*'. A compliance level '.*' or better is required" jars/EQ/*/*.error|wc -l
58

Lets go with this, and add the failure logs to the dataset.

For comparison, ecj did much better in the previous run (run 34):
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/34_with_eq_from_dot_and_new_jep181$ for d in jars/EQ/ecj-3.*; do echo $d; ls -ltra $d/*.jar | wc -l; done
jars/EQ/ecj-3.11.1.v20150902-1521_openjdk-11.0.19
60
jars/EQ/ecj-3.12.3_openjdk-11.0.19
60
jars/EQ/ecj-3.15.1_openjdk-11.0.19
46
jars/EQ/ecj-3.24.0_openjdk-11.0.19
64
jars/EQ/ecj-3.28.0_openjdk-11.0.19
62
jars/EQ/ecj-3.29.0_openjdk-11.0.19
68
jars/EQ/ecj-3.30.0_openjdk-11.0.19
90
jars/EQ/ecj-3.32.0_openjdk-11.0.19
90

Found the other main problem, it's the Enforcer Maven plugin again:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ grep -l -E 'enforcer.RequireJavaVersion failed' `cat build_failures_only_in_new.txt`|wc -l
149

These 2 failure types together explain 186 of the 195 new build failures:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ wc -l build_failures_only_in_new.txt
195 build_failures_only_in_new.txt
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ grep -l -E "enforcer.RequireJavaVersion failed|Failed to run the ecj compiler: Compliance level '.*' is incompatible with target level '.*'. A compliance level '.*' or better is required" `cat build_failures_only_in_new.txt`|wc -l
186
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ grep -l -E "Failed to run the ecj compiler: Compliance level '.*' is incompatible with target level '.*'. A compliance level '.*' or better is required" `cat build_failures_only_in_new.txt`|wc -l
37

Example build failure:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/36_force_compiler_target_version_no_animal_sniffer$ cat jars/EQ/ecj-3.24.0_openjdk-11.0.19/commons-codec-1.12.jar.error
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< commons-codec:commons-codec >---------------------
[INFO] Building Apache Commons Codec 1.12
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.0.0:clean (default-clean) @ commons-codec ---
[INFO]
[INFO] --- enforcer:3.0.0-M2:enforce (enforce-maven-version) @ commons-codec ---
[WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:
Detected JDK Version: 11.0.19 is not in the allowed range 15.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
--snip--

The build command that fails for that project is:
./docker-build-project.sh eclipse-temurin:11.0.19_7-jdk ecj-3.24.0_openjdk-11.0.19 commons-codec commons-codec-1.12.jar commons-codec-1.12 jars './inject-ecj-compiler.pl 2.9.0' '-Dmaven.compiler.target=15'

By contrast, the corresponding build command for openjdk-15.0.1 succeeds:
./docker-build-project.sh openjdk:15.0.1-jdk openjdk-15.0.1 commons-codec commons-codec-1.12.jar commons-codec-1.12 jars '' '-Dmaven.compiler.target=15'

Possible causes:

Enforcer is "seeing" JDK11 because the underlying JDK environment is eclipse-temurin:11.0.19_7-jdk, i.e., the injection of ecj isn't being seen
ecj-3.24.0 actually only supports JDK11
./inject-ecj-compiler.pl 2.9.0 actually injects a different ecj version (not 3.24.0)

Possible quick "fix": Disable Enforcer with -Denforcer.skip=true. WDYT @jensdietrich?

Maybe I misunderstand the enforcer plugin but I am unsure how this would help. I thought this works for multi-module projects. We could try this, but we have to keep an eye at the ETA.

@jensdietrich I think Enforcer is a tool to check a few different user-specified constraints. It appears to be looking at the java.version system property that it itself is running in (and mvn is running in), which is 11.0.19, and complaining that it is not equal to the version we're asking ecj to build.
This is probably caused by us using eclipse-temurin:11.0.19_7-jdk docker images for all ecj builds. I now think the easiest fix (and maybe also the Right Thing) would be to change the docker images used for ecj builds to use eclipse-temurin docker images that match on the JDK major version instead. But yes, time pressure...

Well if it is easy to set up and can run overnight lets try.
On Thu, Jul 4, 2024 at 5:14 PM wtwhite @.***> wrote:

@jensdietrich https://github.com/jensdietrich I think Enforcer is a
tool to check a few different user-specified constraints. It appears to be
looking at the java.version system property that it itself is running in
(and mvn is running in), which is 11.0.19, and complaining that it is not
equal to the version we're asking ecj to build.
This is probably caused by us using eclipse-temurin:11.0.19_7-jdk docker
images for all ecj builds. I now think the easiest fix (and maybe also
the Right Thing) would be to change the docker images used for ecj builds
to use eclipse-temurin docker images that match on the JDK major version
instead. But yes, time pressure...
—
Reply to this email directly, view it on GitHub
https://github.com/binaryeq/jcompile/issues/96#issuecomment-2208134244,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASSV5Q7L45VFDQGXNPTA5LZKTK3JAVCNFSM6AAAAABKKVX4TCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBYGEZTIMRUGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

(This comment was half-formed before I added the previous one)
The 11.0.19 that the Enforcer plugin is complaining about comes from SystemUtils.JAVA_VERSION, which comes from the java.version system property according to the commons-lang docs.
It's actually not surprising that our injection of ecj is not setting the java.version property as seen by the Enforcer plugin -- the latter will be coming from the VM running mvn, which will always be 11.0.19, since we use eclipse-temurin:11.0.19_7-jdk for all ecj builds currently. So (as I said in the previous comment) the solution is probably to try to choose docker images that match the ecj version in terms of JDK major version.

Choosing better docker images for ecj builds should be straightforward: We already have the mapping from ecj versions to corresponding openjdk versions in eq.dot. I can do this manually and let it run overnight.

@jensdietrich to cut down on time, I only changed the docker images for ecj versions >= 3.24, since earlier versions mostly built successfully with the openjdk-11.0.19 image. OK do you think?
Using the new docker images turned the enforcer.RequireJavaVersion failed build failures into failures mentioning Failed to run the ecj compiler: Compliance level '.*' is incompatible with target level '.*'. A compliance level '.*' or better is required.
Adding -Dmaven.compiler.source=$JDK_MAJOR_VERSION to the mvn command line (to match the -Dmaven.compiler.target=$JDK_MAJOR_VERSION) resolved most (all?) of these.
The build failure count is now much closer to where we were in run 34 (which had 406 failures):
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ find jars -name '*.done'|wc -l
1792
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ find jars -name '*.jar'|wc -l
2424
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ find jars -name '*.error'|wc -l
445

Just noticed that not rebuilding earlier ecj versions is problematic: I still added -Dmaven.compiler.source=$JDK_MAJOR_VERSION to them, which may affect things. In the case of ecj-3.15.1, it does: We see the same failure that we fixed elsewhere:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ grep "Failed to run the ecj compiler: Compliance level '.*' is incompatible with target level '.*'. A compliance level '.*' or better is required" jars/EQ/*/*.error
jars/EQ/ecj-3.15.1_openjdk-11.0.19/bcel-6.4.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project bcel: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/bcel-6.4.1.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project bcel: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/bcel-6.5.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project bcel: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/bcel-6.6.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project bcel: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/bcel-6.6.1.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project bcel: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/bcel-6.7.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project bcel: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-csv-1.10.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-csv: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-csv-1.6.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-csv: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.7' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-csv-1.7.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-csv: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-csv-1.8.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-csv: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-csv-1.9.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-csv: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-io-2.10.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-io: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-io-2.11.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-io: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-io-2.12.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-io: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-io-2.9.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-io: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-lang3-3.10.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-lang3: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-lang3-3.11.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-lang3: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-lang3-3.12.0.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-lang3: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-lang3-3.8.1.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-lang3: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.7' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-lang3-3.8.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-lang3: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.7' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]
jars/EQ/ecj-3.15.1_openjdk-11.0.19/commons-lang3-3.9.jar.error:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project commons-lang3: Fatal error compiling: Failed to run the ecj compiler: Compliance level '1.8' is incompatible with target level '9'. A compliance level '9' or better is required -> [Help 1]

Workaround: Rerun ecj-3.15.1 builds, and get rid of -Dmaven.compiler.source=$JDK_MAJOR_VERSION from java-compilers.json for the two earlier ecj versions as its absence does not cause build failures for them. This means java-compilers.json will be "uneven", but it will at least reflect the jars we have built.

After discussion with @jensdietrich, we'll stick with the "uneven" java-compilers.json for now, but make an issue and mention it in the README.

Rerunning all ecj-3.15.1 builds this morning didn't actually change anything, since the same builds that failed before still fail, just for a different reason, which doesn't look easy to solve. Example:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ cat jars/EQ/ecj-3.15.1_openjdk-11.0.19/bcel-6.4.0.jar.error
--snip--
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] [ecj] The compiler reported an error but has not written it to its logging
[ERROR] [ecj] The following line(s) might indicate the issue:
	byte[] bytes = IOUtils.toByteArray(jar.getInputStream(entry));
	               ^^^^^^^
IOUtils cannot be resolved
----------
35 problems (35 errors)

[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  19.201 s
[INFO] Finished at: 2024-07-04T22:12:27Z
[INFO] ------------------------------------------------------------------------
--snip--

This only covers 6 of the 29 ecj-3.15.1 build failures, but there's little point examining the rest in detail right now:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ grep -l 'IOUtils cannot be resolved' `cat latest_errors.txt`|wc -l
6
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ grep -L 'IOUtils cannot be resolved' `cat latest_errors.txt`|wc -l
23

The end result is that EQ.tsv has not changed at all:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ wc -l EQ.tsv
465859 EQ.tsv
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ wc -l IMPORTANT_LOGS_FROM_FIRST_OVERNIGHT_ECJ_RUN/EQ_JUSTINCASE.tsv
465859 IMPORTANT_LOGS_FROM_FIRST_OVERNIGHT_ECJ_RUN/EQ_JUSTINCASE.tsv
wtwhite@wtwhite-vuw-vm:~/code/jcompile/runs/37_extend_36_with_matching_docker_images_for_ecj$ md5sum EQ.tsv !$
md5sum EQ.tsv IMPORTANT_LOGS_FROM_FIRST_OVERNIGHT_ECJ_RUN/EQ_JUSTINCASE.tsv
b4ab2e95b7ccf29d7ca0a2c97158f608  EQ.tsv
b4ab2e95b7ccf29d7ca0a2c97158f608  IMPORTANT_LOGS_FROM_FIRST_OVERNIGHT_ECJ_RUN/EQ_JUSTINCASE.tsv

On the bright side, this means there is no need to regenerate NEQ1.tsv or NEQ2.tsv 🤪


Unhandled exception after launching multiple times

I have a recurring issue where, after installing the .exe file and running it a couple of times, I encounter a traceback error on my next attempt. When I delete the file and reinstall it, I can run it without errors for a few more times before the problem reappears. Essentially, after running it twice, the next run results in a traceback error. If I delete it and reinstall, the error doesn't occur for several additional runs. Here is the error:
Traceback (most recent call last):
File "structura.py", line 5, in
File "updater.py", line 18, in update
PermissionError: [Errno 13] Permission denied: 'lookup_temp.zip'

Run it from a folder where it has permissions to write files
On Sun, Oct 27, 2024, 5:37 PM Fusionlight13 @.***>
wrote:

I have a recurring issue where, after installing the .exe file and running
it a couple of times, I encounter a traceback error on my next attempt.
When I delete the file and reinstall it, I can run it without errors for a
few more times before the problem reappears. Essentially, after running it
twice, the next run results in a traceback error. If I delete it and
reinstall, the error doesn't occur for several additional runs. Here is the
error:
Traceback (most recent call last):
File "structura.py", line 5, in
File "updater.py", line 18, in update
PermissionError: [Errno 13] Permission denied: 'lookup_temp.zip'
—
Reply to this email directly, view it on GitHub
https://github.com/RavinMaddHatter/Structura/issues/233, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBUC5BDQZTDIRUBP62MA4DZ5WBOPAVCNFSM6AAAAABQWKNOASVHI2DSMVQWIX3LMV43ASLTON2WKOZSGYYTOMBQGM4TGNA
.
 Thank you lol


Update libjingle library dependency

We are currently using the version 9690 of Libjingle but the most recent version is 11139.
Updating it or using another library (libjingle didn't evolve since Dec, 2015) could eventually fix https://github.com/matrix-org/riot-android-rageshakes/issues/507

we use the webrtc implementation instead the jingle one.


YAML Pipeline Retention

It's not clear from the documentation how these retention policies apply to pipelines defined in YAML. There's a section on "Release Retention" but how does that apply to pipelines defined in YAML?
More specifically,  the documentation states "The retention timer on a release is reset every time a release is modified or deployed to a stage." Is this applicable to any stage in a YAML pipeline? Or does the stage need to have a deployment type job in order to qualify the stage as a "release" stage?

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

ID: 43a285f9-738d-9f76-4de0-a4c4ecf6f5f5
Version Independent ID: 9581a043-4873-bf0a-138f-85f6a61ae950
Content: Build and release retention policies - Azure Pipelines
Content Source: docs/pipelines/policies/retention.md
Product: devops
Technology: devops-cicd
GitHub Login: @juliakm
Microsoft Alias: jukullam

I'm asking the same question. I don't see retention policy when using Azure Pipeline YAML. It's still visible when using classic UI. I'm using Azure DevOps Server 2019. Where I can get the detail?

cc @vijayma
Retention policy for YAML pipelines is same as build pipelines. You can see that in Project Settings -> pipelines -> settings section.
And you pipeline retention unlike release retention cannot be controlled at definition level. You can set it at project level or you can choose to retain a specific run.


Update zio-prelude to 1.0.0-RC24

About this PR
📦 Updates dev.zio:zio-prelude from 1.0.0-RC21 to 1.0.0-RC24
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio", artifactId = "zio-prelude" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "dev.zio", artifactId = "zio-prelude" }
}]

labels: library-update, early-semver-pre-release, semver-spec-pre-release, commit-count:1

Superseded by #567.


Bugfix/authentication expiration not handled

implemented multiple improvements to the way discovery and authentication as well as authentication exceptions are handled.
Cancelling #38 as it includes it as well

fixes #37

thanks for the merge @kenakamu QQ: when do you think you will publish the nuget? is that automated yet?

Published. Not automation (yet) but do we want to automate this for every check-in?
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Vincent Biret<EMAIL_ADDRESS>Sent: Friday, December 29, 2017 3:41:22 AM
To: kenakamu/UCWA2.0-CS
Cc: Kenichiro Nakamura; Mention
Subject: Re: [kenakamu/UCWA2.0-CS] Bugfix/authentication expiration not handled (#39)
thanks for the merge @kenakamuhttps://github.com/kenakamu QQ: when do you think you will publish the nuget? is that automated yet?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/kenakamu/UCWA2.0-CS/pull/39#issuecomment-354334730, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJeuvKsCF37njiMjzC3wOlN7bYlMAvOWks5tE-DSgaJpZM4RLZiB.

thanks!
every pull request (or PR update) would trigger build + unit tests.
every merge to master would trigger build + unit test + release.
however I think we should have like a pre-approval on the release definition (to speak in VSTS terms) to allow you to approve or not something getting to nuget. What do you think?

Sounds great but we don't have unit test ?

I know but we could set up the infrastructure for it, have a few basic unit tests and build up from there.
I'm going to move those discussions to separate threads:

Continuous integration
Continuous publishing + approval
Unit tests


Removed replication mocks

What changed?
Removed all replication mocks.

Why?
They are either not used at all or used internally in a couple of places.
For them we can use light-weigh fakes instead and have less code.

How did you test it?
Existing tests should pass.

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 0181a596-125e-41ac-bdad-d26ac20d9823

0 of 0   changed or added relevant lines in 0 files are covered.
87 unchanged lines in 11 files lost coverage.
Overall coverage decreased (-0.05%) to 57.959%

Files with Coverage Reduction
New Missed Lines
%

common/persistence/persistenceMetricClients.go
2
55.49%

common/task/weightedRoundRobinTaskScheduler.go
2
89.64%

common/util.go
2
51.24%

common/persistence/nosql/nosqlplugin/cassandra/workflow.go
3
57.59%

service/history/task/fetcher.go
3
91.79%

common/task/fifoTaskScheduler.go
5
84.54%

common/persistence/nosql/nosqlExecutionStore.go
9
61.26%

common/persistence/nosql/nosqlplugin/cassandra/workflowUtils.go
12
77.59%

common/persistence/nosql/nosqlplugin/cassandra/tasks.go
14
72.8%

common/persistence/nosql/nosqlTaskStore.go
16
58.37%

Totals

Change from base Build 0181a43a-7b22-4f5e-8393-647a1f5eab87:
-0.05%

Covered Lines:
83912

Relevant Lines:
144778

💛  - Coveralls

While I'm largely in favor of this, one advantage of lines like
	s.taskExecutor.EXPECT().execute(replicationTask, true).Return(0, nil).Times(1)

that is being lost is the ability to require that those mocks are used.  the current fakes are silent about non-use.
Which may be entirely reasonable for those tests, I haven't read closely enough yet.  Would there be any simple way to require them though?  Unused fakes leading to gradual drift and misunderstanding of tests has been a pretty big problem in past projects in my experience, and the "must be used" check is a pretty simple way to lock that down.

Some thoughts in general. Cadence seems to be build in a very "Java" like style. Interfaces comes first, necessary or not. Along with mocks. It seems to be contrary to many best practices offered by go-lang. Specifically to this discussion: return structs, accept interfaces that are often defined where they are used and only with a subset of actually needed methods. Smaller interfaces are easily faked, making unit-tests easier to write. IMO it is very counter-productive to write unit-tests where 90% of the test is mocking complex dependencies. Small interfaces along with fakes, makes unit testing much easier. I would very much like us go into that direction.
Of course mocks still have their place. Especially for Facade style interfaces exposed by packages. One good example - all persistence managers and their corresponding mocks. However, all dependencies that can be modeled as a state or used completely within a single package internally can probably be simplified as fakes instead.
Feel free to argue on those topics, I'm interested in other opinions as well.

I pretty much completely agree, and yeah - the up-front interface-and-mock habits lead to very artificial tests.  I'd much prefer to mock less, further away from the code actually being tested, because it means you're getting additional checks of "this leads to behavior X which is the actual goal of this method, even though it's 3 calls away".

Re fakes and "drift": largely two things.

fakes tend to become less and less accurate in being accurate mimics of the thing they're faking, unless there's some way to automatically check that they produce identical(-enough) behavior.
fakes frequently do not require that they are actually used / that data you put in them is actually relevant to the test.  E.g. if you put record X in a fake storage, it should (usually) be a test failure if X is not ever looked at.  It implies your test code is not accurately describing what happens.  I've consistently seen heavy use of fakes turn into "this test prepares hundreds of fake records, less than 1% of which are relevant, and ~10% are not used by any test in the entire project".

^ and those often combine to create a gradual loss of accuracy.  A lot of which can be traced back to their frequent inability to ensure they're relevant.
Mocks have the same issues (and some that are much worse), but the automated check of "expected X, X must happen" prevents a fairly large category of mistakes very simply.
None of which is unfixable.  I just want us to establish a strong habit of e.g. "if you have a fake in a test, it must be relevant", with only rare exceptions.
And ideally a way to automatically check that the fake behaves the same as the real thing, though I realize that's frequently not worth the effort.


Opens text font tab view property

Just open text font in TagView.swift

LGTM. @xhacker

@Cee: feel free to merge!

@gersonmdesouza 🎉

@Cee 🎉


Upgraded zookeeper artifact version, since zookeeper-3.4.6.tar.gz has…

… been deprecated and removed from Apache repository

:+1:

you're right pulled separately )


Play video from youtube

How can I Play video from youtube link?

Hi @Alexsmile2010.
Unfortunately there is no way to play a YouTube video using ASPVideoPlayer, or any other component that uses an AVPlayer instance behind the scenes, since the YouTube link is not actually to the video itself, but to a page that has the video embedded.
You can find the official way to play a YouTube video here.


xdg-open does not work in release artifacts produced by tauri-action

Hey @FabianLars
3 different, but related, functions of my application do not work when using the AppImage of my application produced by tauri-action in GitHub Actions, but work in AppImages produced locally for myself and 3 other users (as well as other methods of running the application, such as cargo tauri dev or other packaging formats). On my system, at least, the .RPM produced by tauri-action seems to work, and it is only the .AppImage that does not work. This issue is possibly related to tauri-apps/tauri#6172.

My application OpenDeck loads plugins, which then communicate by sending JSON events back and forth over a websocket. One such event is openUrl, which a plugin can send to open a URL in the user's browser, which OpenDeck handles using Tauri's shell::open (see here).

OpenDeck also has a button to open its config directory in its settings tab, which, on Linux, uses xdg-open using std's Command inside a Tauri command.

Additionally, OpenDeck's "starter pack" plugin has a "Run Command" action, in which users can input a command to run on key down and key up. The starter pack plugin is also written in Rust, and uses std's Command to implement this action.

For example, when pressing "open config directory" when using the AppImage from GitHub Actions, run with ./opendeck_2.0.0_amd64.AppImage, this is printed to the terminal that the AppImage was run from:
xdg-mime: no method available for querying MIME type of '/home/aman/.config/com.amansprojects.opendeck'
xdg-mime: mimetype argument missing
Try 'xdg-mime --help' for more information.
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: x-www-browser: command not found
XPCOMGlueLoad error for file /usr/lib64/firefox/libxul.so:
/usr/lib64/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer
Couldn't load XPCOM.
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: iceweasel: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: seamonkey: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: mozilla: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: epiphany: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: konqueror: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: chromium: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: chromium-browser: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: google-chrome: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: www-browser: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: links2: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: elinks: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: links: command not found
/tmp/.mount_opendegOqUUe/usr/bin//xdg-open: line 882: lynx: command not found

and then it seems to finally find and open w3m on my system in the terminal in the correct directory, whereas it should open in Nautilus for me, as it does when running OpenDeck from different methods.
Or, when using the Run Command action with xdg-open https://example.com/, this is the stdout of the executed command:
XPCOMGlueLoad error for file /usr/lib64/firefox/libxul.so:
/usr/lib64/libproxy/libpxbackend-1.0.so: undefined symbol: g_once_init_leave_pointer
Couldn't load XPCOM.

OpenDeck is using the latest Tauri v1.7 and uses: tauri-apps/tauri-action@v0. I would appreciate some steps to follow to resolve this issue.

Any update? Or some kind of manual fix?

I've also encountered a few issues with an app built using tauri-action:

Normal <a href= links in HTML to external sites (that open in browser) don't work
xdg-open produces a lot of errors:

xdg-mime: no method available for querying MIME type of '/home/norbi/.local/share/ModrinthApp/profiles/Main'
xdg-mime: mimetype argument missing
Try 'xdg-mime --help' for more information.
Opening "/home/norbi/.local/share/ModrinthApp/profiles/Main" with Files  (inode/directory)
nautilus: /tmp/.mount_modrin4YwviT/usr/lib/libjson-glib-1.0.so.0: no version information available (required by /usr/lib64/libtracker-sparql-3.0.so.0)
nautilus: symbol lookup error: /usr/lib64/libappstream.so.4: undefined symbol: g_string_free_and_steal
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: x-www-browser: command not found
XPCOMGlueLoad error for file /usr/lib64/firefox/libxul.so:
/usr/lib64/firefox/libxul.so: undefined symbol: pixman_image_set_dither
Couldn't load XPCOM.
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: iceweasel: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: seamonkey: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: mozilla: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: epiphany: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: konqueror: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: chromium: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: chromium-browser: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: google-chrome: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: www-browser: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: links2: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: elinks: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: links: command not found
/tmp/.mount_modrin4YwviT/usr/bin//xdg-open: line 869: lynx: command not found
xdg-open: no method available for opening '/home/norbi/.local/share/ModrinthApp/profiles/Main'

But when I build app on my computer (tauri build) all problems are fixed...

Yeah, seems like the same symptoms. @FabianLars any update?


error while building with CPU backend on Ubuntu 16.04

I have installed intel DNNL and MKL. I have also build arrayfire and cereal. But when I run cmake, DNN is not found. My MKL is installed in opt/intel directory
I used export MKLROOT=opt/intel/mkl
admin1@ubuntu:~/Computer/flashlight/build$ cmake .. -DCMAKE_BUILD_TYPE=Release -DFLASHLIGHT_BACKEND=CPU
-- ArrayFire found (include: /usr/local/include, library: ArrayFire::afcpu)
-- Could NOT find cereal (missing:  cereal_INCLUDE_DIRS)
-- cereal NOT found. Will download from source
-- Checking for [mkl_gf_lp64 - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf_lp64 - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_gf - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_intel_lp64 - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl_intel - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl_gf_lp64 - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf_lp64 - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_gf - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_intel_lp64 - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl_intel - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl_gf_lp64 - mkl_sequential - mkl_core - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf - mkl_sequential - mkl_core - m]
--   Library mkl_gf: not found
-- Checking for [mkl_intel_lp64 - mkl_sequential - mkl_core - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel - mkl_sequential - mkl_core - m]
--   Library mkl_intel: not found
-- Checking for [mkl_gf_lp64 - mkl_sequential - mkl_core - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf - mkl_sequential - mkl_core - m]
--   Library mkl_gf: not found
-- Checking for [mkl_intel_lp64 - mkl_sequential - mkl_core - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel - mkl_sequential - mkl_core - m]
--   Library mkl_intel: not found
-- Checking for [mkl_gf_lp64 - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf_lp64 - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_gf - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_intel_lp64 - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl_intel - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl_gf_lp64 - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf_lp64 - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_gf_lp64: not found
-- Checking for [mkl_gf - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_gf - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_gf: not found
-- Checking for [mkl_intel_lp64 - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_intel_lp64: not found
-- Checking for [mkl_intel - mkl_gnu_thread - mkl_core - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl_intel - mkl_intel_thread - mkl_core - pthread - m]
--   Library mkl_intel: not found
-- Checking for [mkl - guide - pthread - m]
--   Library mkl: not found
-- MKL not found
-- A library with BLAS API found.
-- Attempting to build MKLDNN without MKL in current configuration.
-- MKLDNN headers not found; please set CMAKE_INCLUDE_PATH or MKLDNN_ROOT, or MKLDNN_INC_DIR
-- MKLDNN library not found; please set CMAKE_LIBRARY_PATH or MKLDNN_ROOT, or MKLDNN_LIB_DIR
-- MKL not found; trying to fall back to mklml library
-- Using MKL-DNN without mklml headers
-- mklml not found; trying to fall back to system BLAS library
-- BLAS libraries found: /usr/lib/libf77blas.so;/usr/lib/libatlas.so
-- MKLDNN not found
CMake Error at CMakeLists.txt:150 (message):
MKLDNN required to build CPU backend
-- Configuring incomplete, errors occurred!
See also "/home/admin1/Computer/flashlight/build/CMakeFiles/CMakeOutput.log".
See also "/home/admin1/Computer/flashlight/build/CMakeFiles/CMakeError.log".
Please help.

Hi @kapilg1997,
you should export this path export MKLROOT=/opt/intel/mkl, could you try with it?

Closing.


Startrail Error

Hello,
The startails is not getting created automatically. So, I tried running it manually but it fails. I have tried changing the jpg values too. It doesn't help.
Rpi 4 + Rpi HQCam
Command:  ./startrails ./images/20210518/ jpg 0.3 ./images/20210518/startrails/test.jpg
Error:
[74/1031] image-20210518215221.jpg 0.386781
[75/1031] image-20210518215253.jpg 0.384044
[76/1031] image-20210518215341.jpg 0.382686
OpenCV Error: Sizes of input arguments do not match (The operation is neither 'array op array' (where arrays have the same size and type), nor 'array op scalar', nor 'scalar op array') in binary_op, file /build/opencv-L65chJ/opencv-3.2.0+dfsg/modules/core/src/arithm.cpp, line 225
terminate called after throwing an instance of 'cv::Exception'
what():  /build/opencv-L65chJ/opencv-3.2.0+dfsg/modules/core/src/arithm.cpp:225: error: (-209) The operation is neither 'array op array' (where arrays have the same size and type), nor 'array op scalar', nor 'scalar op array' in function binary_op
Aborted
Regards,
Nelson Moses

I've had a similar issue pop up when one or more of the images has been corrupted, or different physical dimensions.  my workaround for the corrupted images is to open up the folder in explorer, arrange by file size - most bad images will be below 100k (if any) - from there I delete the offending images, the process usually flows smoothly after that.
There's an option in the endOfNight.sh to  have the script auto search/find for bad images during the main run.
It's a thought, but may not be a solution to your current problem.


New feature

Similar to current scenario questions we have now but a more heavily focused scenarios on troubleshooting.

I like the idea. We'll see about working on it.


How to manually trigger an error?

I want to do additional checkes when the form isValid, i.e. like when validating a multiple checkbox list.
Is there a way to trigger an error and have the error box appear?

There is currently no way to add custom validators. The only supported ones are the ones from the HTML5 specification.
But your suggestion makes total sense and I'm willing to add that to the API. I'll need to think about it a bit, perhaps there's a way to add validators to the HTML5 API. In any case, I'll need to think about validation: when and how it should happen for custom validators.

@Zhouzi actually the scenario is when you have field that depend on other field's value or, as in may use case, when you have multiple checkboxes and at least 1 must be checked.


Add an interface support query ability to CoreContext

This allows users to get all implementors of a particular interface in a context.
This method returns an empty vector if it is called before the context is initiated.

Fix documentation related to vector and I'll merge


Fix Transcendant -> Transcendent

NOT intending to merge into Master, marked as a Draft PR. As with most changes to this script, it's an ephemeral one-time run.
Just a quick replace of misspelled word.
Test edits:
https://tfd.wiki/index.php?title=TestModule&diff=prev&oldid=3620
https://tfd.wiki/index.php?title=TestModuleMulti&diff=prev&oldid=3621

Bulk edit complete


Add some more repos for finance team

Finance team is working on CQRS template for upcoming projects.
Let's add these repos to fine ants seal.

Cool, thanks @jiexinhuang :heart:

:tada:


bx--cloud-header has an inexplicable 2px horizontal padding

The class bx--cloud-header has the following rule:
padding: 0 .125rem;

It messes up with the header content because:

Left padding pushes the content to the right by 2px
Right padding does not allow profile dropdown to be flush with the right window edge

Issue moved to carbon-design-system/carbon-addons-cloud #76 via ZenHub


Nelder-Mead simplex algorithm (unified optimization)

I needed the Nelder-Mead simplex algorithm and found an MIT licensed version here. I've adapted this to fit into the unified-optimization branch. Maybe not the best idea to add something to a branch that is "work-in-progress" but since it was a quite small addition I thought it was worth the effort anyway :-).
The Nelder-Mead simplex algorithm is probably mainly known as fminsearch() in Matlab and is quite useful when you need to do a minimization and don't have access to the gradient/or if it's expensive to calculate.

Great, thanks a lot!
The remaining test failure reported by AppVeyor is unrelated to these changes.


Update deployBlocker.yml

replace single quotes (') with backticks (`)

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/32070
PROPOSAL: https://github.com/Expensify/App/issues/32070#issuecomment-1830169420
Tests

I created a personal SLACK_WEBHOOK URL for testing the workflow.
The webhook perform well in my personal slack channel.

Screenshots/Videos
What I see in the Slack Channel from the Webhook:

CLA Assistant Lite bot: Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.

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

You can retrigger this bot by commenting recheck in this Pull Request

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

I think someone said they already fixed this. I spent some time debugging it last night only to find out after.

We can split the effort. Reach me in DM.

I think someone said they already fixed this. I spent some time debugging it last night only to find out after.

We can split the effort. Reach me in DM.

GH has DMs TIL. ChatGPT beat us this one, it has already been solved.

I think someone said they already fixed this. I spent some time debugging it last night only to find out after.

We can split the effort. Reach me in DM.

GH has DMs TIL. I was looking forward to adding this to the my collection of easiest money I had ever made but that damn ChatGPT beat us to it, get used to saying that.
It was "solved".  I'd hate to be next person to have to look at that file.

It's a good solution, but harder to read and maintain. Escaping should be in the actions-slack IMO.
Let's the reviewer the PR. 🌃

Please close this PR and get familiar with the contributing guidelines. Thank you!

@NicMendonca Would you please close this PR, if you have the permissions? It was posted against the guidelines and it's trashing my GitHub summaries.


fix: missing browser in shadow-root file

I saw the Discord announcement and tried it and found that shadow RootUi was broken. I found the browser import missing(loadCss failed), so I fix that.
With this fix both my project and wxt-demo mount fine.

Thanks... But why didn't typescript catch this 🤔 gonna double check that no more browser imports are missing before merging

But why didn't typescript catch this 🤔

That's because the browser.runtime.getURL part has @ts-expect-error.

gonna double check

I checked this regex( /@ts-expect-error[^\n]*\n[^\n]*\bbrowser\b/g ) to see if there were any others, but please double check. If you can think of anything else besides browser, that too.


feat: allow workflow to be more flexible/customizable

Hello.
Following the discussion in https://github.com/fastify/workflows/issues/9, this PR aims to :

customize the script that is ran by the linter and the test jobs
customize the Node.js test matrix strategy
document these new features

Checklist

[x] documentation is changed or added
[x] commit message and code follows the Developer's Certification of Origin
and the Code of conduct

Not too sure about this one to be honest, @darkgl0w. The idea of these shared workflows was to try and enforce a standardised workflow (and in turn script naming conventions, and node versions supported) used across the org plugin repos. It also meant we would only need to update a single repo for workflow changes rather than having to update 80+ separately.
With this many customisation options, they may as well continue to have their own workflows.

@Fdawgs > Indeed, from this point of view this PR does not make sense. 🤣
I will just close it. 😛


should backspace work on floating window?

the example is  trying to list "document symbol"
using backspace does nothing.

Could you check what  was mapped to
It should mapped to ListViewCtrl:on_backspace()

i  <BS>        *@v:lua.MPairs.autopairs_bs(15)
	Last set from anonymous :source
i  <PageDown>   @<Cmd> lua ListViewCtrl:on_pagedown()<CR>
i  <PageUp>     @<Cmd> lua ListViewCtrl:on_pageup()<CR>
i  <Down>       @<Cmd> lua ListViewCtrl:on_next()<CR>
i  <Up>         @<Cmd> lua ListViewCtrl:on_prev()<CR>
i  <C-B>        @<Cmd> lua ListViewCtrl:on_pageup()<CR>
i  <C-E>        @<Cmd> lua ListView.close() <CR>
i  <C-F>        @<Cmd> lua ListViewCtrl:on_pagedown()<CR>
i  <CR>         @<Cmd> lua ListViewCtrl:on_confirm() <CR>
i  <C-N>        @<Cmd> lua ListViewCtrl:on_next()<CR>
i  <C-O>        @<Cmd> lua ListViewCtrl:on_confirm()<CR>
i  <C-P>        @<Cmd> lua ListViewCtrl:on_prev()<CR>
i  <C-W>        @<Cmd> lua ListViewCtrl:on_backspace(true) <CR>

is the interaction with auto pair a problem?

Ok so i confirm that the remapping of BS by auto-pairs plugin was the problem. For people who come across the similar problem, if the any of ur plugin is causing a remap issue make sure u ignore guihua file type or prompt buftype
@ray-x thank you for the work you have put into this.
this issue can be closed.

You need disable autopair for filetype guihua


selector-no-union-class-name rule false positive

The selector-no-union-class-name rule thinks there are errors here:
.icon {
  &:last-child { // Error on this line
    margin-left: 0.75rem;
  }

  &#divID { // Error on this line
    margin-left: 0.75rem;
  }
}

It seems the rule doesn't realize that pseudo-element selectors and ID selectors aren't class name unions.
cc @pipopotamasu

Thanks! Looks like there are some things to fix.

@kristerkari thx!


Scala signature Suite error

Our project is using scala version 2.10.5, and manages dependency by Maven.
We try to append dependencies like below:
groupId: org.scalactic
artifactId: scalactic_2.10
version: 3.0.1

groupId: org.scalatest
artifactId: scalatest_2.10
version: 3.0.1
scope: test

And try to mvn compile, then we met below error message:
[INFO] Complining xxx Scla sources blablah/test-classes
[ERROR] error while loading Suite, Scala signature Suite has wrong version
 expected: 5.0
 found: 4.1 in Suite.class

Have you ever been experienced a case like this?

What version of Java are you using?


Where to find UnitTestHelper

Hi Team,
It would be great if you can share where to find UnitTestHelper factory method.
Thanks
Syedhamjath Syedmansur

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

ID: 7ff43101-48b6-5a4b-cbf5-4f7ab03b0d2e
Version Independent ID: fbc5b41b-278a-05a7-c477-4294e5dbc8d5
Content: How to test your Azure Data Lake Analytics code
Content Source: articles/data-lake-analytics/data-lake-analytics-cicd-test.md
Service: data-lake-analytics
GitHub Login: @yanancai
Microsoft Alias: yanacai

@syedhamjath
Thanks for your feedback! We will investigate and update as appropriate.

#please-close
This issue is resolved.


v1.12 backport for Service with no backends

This is a custom, partial backport of two PRs to fix https://github.com/cilium/cilium/issues/21453 in v1.12.

https://github.com/cilium/cilium/pull/22388: only pick the datapath patch (and massage it, so it passes the 4.19 verifier on v1.12). The unit tests would require additional testing infrastructure in v1.12.
https://github.com/cilium/cilium/pull/22342: pick just one cleanup patch that helps with complexity.

/test-backport-1.12

/test-1.19-4.9


After reinstall vps [Ubuntu 18.4]

Hi.
Everything worked correctly to this day, I decided to reinstall the server and after the installation I can not connect.
Log::
https://paste.kodi.tv/upumidoged

Hi. the problem lies with windows 10
on Android it works fine
I changed the settings in the Internet properties
http, http1.1 for proxy server and working fine


Update dora new

Update the template, change node_1 & op_1 to talker_1 & listener_1.
Also add ci test supports to c/cxx template

Last round of review ! Looks great overall.
Just tried it out and remark couple of things that I would like to change.
Thanks!

Thanks for review!


Wrap footnote in a  tag

Ensures that the parser produces valid XHTML for footnotes. The
<blockquote> should contain another block-level element like <p> or
<div>.
Addresses GitbookIO/gitbook#1144. With this fix, footnotes will pass
IDPF/epubcheck's EPUB version 2.0.1 rules.

It seems that this was never merged into master. I may be beating a dead horse, but are the periods after <sup>[footnote reference]</sup> over here https://github.com/GitbookIO/kramed/pull/37/files#diff-de043c47b7a14d2d383d220efbaa9c2eR152 a matter of preference? They look strange in my opinion.


Kingdom parameter is misspelled in key_lkup.

Python 3.12.2
pygbif 0.6.4
In the key_lkup dict, KINGDOM_KEY is misspelled as KINGDON_KEY. This causes downloads with this key to error out. For example:
res = pygbif.occurrences.download("kingdomKey = ANIMALIA")

Gives the error:
InvalidFormatException: Cannot deserialize value of type `org.gbif.api.model.occurrence.search.OccurrenceSearchParameter` from String "KINGDON_KEY": not one of the values accepted for Enum class: ...
 at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: org.gbif.api.model.predicate.ConjunctionPredicate["predicates"]->java.util.ArrayList[0]->org.gbif.api.model.predicate.EqualsPredicate["key"]), with error status code 400check your number of active downloads.

to fix your trouble try download this fix, i see it in another issue,
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/6mkbh6xhau31g
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


Unable to analyze escrackme.apk

I've tried to replicate the Android analysis of the application escrackme.apk as it's described here: https://www.nowsecure.com/blog/2021/03/10/how-to-perform-symbolic-execution-of-mobile-apps-with-r2frida-esilsolve/
However, after install the application and force the odex generation, it is not possible to find the symbols as it's shown in the example.

I've tested it in a Google Pixel 4a physical device and I confirm the props are set correcly:
Any idea of what I'm missing?

Hmm it looks like the -g option must not be working. What android version are you on? (I have also tested on pixel 4a)

I'm using Android 11.

I am facing the same problem on an POCO X3 NFC, having Lineage OS 11. Was there any solution?

By reviewing the source of Android 11, it seems that the compiler filter "everything" is not being honored, even though it can be available. This is inline with the statement found here: With setting the flag to "speed" the methods where listeable.

So in the video in the article Android 9 was used. I will try to do it with that one time. If anybody on a newer OS managed to get symbols let me know pls.

where should I find escrackme.apk?


[FEAT] daft-connect support for parquet

Closes #3216

@andrewgazelka, I'm closing this as it looks like it's stale and superceded by other PR's. feel free to reopen if needed.


⚠ ClamAV has degraded performance

In 8785a4e, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 465 ms

Resolved: ClamAV performance has improved in b494846.


Academyv2 changesv3

updates on images

@Haxen2000 Can you help Manon take a look at these errors

09:02:09.886 | SyntaxError: /opt/buildhome/repo/docs/architecture/layer-0.md: Expected corresponding JSX closing tag for . (182:0)
-- | --
09:02:09.886 | 180 \|

09:02:09.886 | 181 \| `}

09:02:09.886 | > 182 \|

09:02:09.887 | \| ^
09:02:09.887 | 183 \|
{`What Makes Horizen the Top Choice for L0s?`}

09:02:09.887 | 184 \|
{`Competitive Edge in Privacy Technologies`}

09:02:09.887 | 185 \|
{`As a zero-knowledge enabled network of blockchains, Horizen is leveraging the latest privacy technologies to enhance the utility and scalability of blockchain networks.`}

09:02:09.887 | Error: Image static/img/bitcoin-glossary/visual-bitcoin-transaction-diagram.jpeg used in docs/cryptocurrency/bitcoin-glossary.md not found.
09:02:09.887 | at async Promise.all (index 1)
09:02:09.887 | Error: Image static/img/ethereum-glossary/what-is-evm.jpeg used in docs/cryptocurrency/ethereum-glossary.md not found.
09:02:09.887 | at async Promise.all (index 0)
09:02:09.888 | Error: Image static/img/ZBF_article_graphics_2_how-amms-work.jpg used in docs/defi/automated-market-maker-amms.md not found.
09:02:09.888 | at async Promise.all (index 0)
09:02:09.888 | Error: Image static/img/blockchain-oracles/ZBF-academy-Decentralized-oracle-graphic.jpg used in docs/defi/blockchain-oracles.md not found.
09:02:09.888 | at async Promise.all (index 2)
09:02:09.888 | Error: Image static/img/ethereum-glossary/what-is-evm.jpeg used in docs/interoperability/ethereum-virtual-machine-evm.md not found.
09:02:09.888 | at async Promise.all (index 0)
09:02:09.888 | [ERROR] Client bundle compiled with errors therefore further build is impossible.
09:02:09.965 | Failed: build command exited with code: 1
09:02:10.852 | Failed: error occurred while running build command


'human_detection' permanently active in HA

Hello,
I have a problem with human detection, I think after upgrading to 0.2.7, with a couple of Dome Guard cameras in HA.
After a while running, the 'human_detection' sensor remains, permanently, active.
I have used 'mosquitto_sub' to see the 'motion_detection' topic and I have observed that the 'human' message is sent when there is someone, but when there is no more person, the 'motion_stop' message is not sent (neither 'human', until someone appears again, that 'human' is sent again correctly).
Should I change something in the configuration?
Best regards,
Carlos.

Strange behavior. There are no changes in this part of code.
What about a normal motion detection? Does it work?

Which cam do you have?
Suffix? fw version?

I keep having the same problem on several cameras, always with firmware version 12 or 11, with version 9 it doesn't happen anymore.
Specifically, it fails me with the following cameras and firmware (the hack version is 0.2.9 in all cases):
r35gb - fw <IP_ADDRESS>_202301121850
h30ga - fw <IP_ADDRESS>_202301191526
y291ga - fw <IP_ADDRESS>_202211241029
I have another Yi outdoor (h30ga) with the old firmware (<IP_ADDRESS>_202104231123), with the 0.2.9 hack and it works correctly.
There are times that it works correctly for hours or even days after rebooting the camera. I have deleted the settings on several of them and re-entered them manually, but the behaviour is the same.
I imagine the problem might be in the MQTT part or some more internal message in the camera that doesn't release the detection. Any ideas I can try?
Carlos.

Do you switch on and off the cam frequently (for example with a script)?
Is it possible that the cam doesn't catch the motion stop because is switched off?

No, I never switch off the camera.

I'm not able to replicate your problem with my cam.
When I enable human detection, I receive properly the stop message.
Could you test if the app works properly?
I would like to understand if the problem is the mqtt part.

I've had the same issue with Sound Detection, but not in HA. On the camera's web interface.
Enabled it at first just to play around. It showed "disabled" when I went to the appropriate settings afterward.
So I enabled it again and disabled it.
Now it's off.
Won't touch it again now, but I assume it's the same issue with "ONVIF watermark" since I can't turn it off even when it shows to be off and since I'm not sure how "Face Detection" works, I won't touch it even though it's on now.
I have a Dome Guard too:
Firmware Version | 0.2.9
Base Version | <IP_ADDRESS>_202110081405
Model Suffix | r35gb


 I understand how it it works but I don't understand how will a user with Admin roles see the post that require approval, and how does te Admin approve it then.
Can someone please help with a sample application where I can look how it works?

Hi, this bundle only provide some services to manage element through a flow by using auto generated process handlers. It's up to you to call these process handlers in your own buisness logic when you need to reach a step.


Seg fault on build, from "require json" in BuildDotenvConfig.ruby

Solution: remove require "json"
Mac OS X 10.11.6
Xcode 8.2.1
/Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/ext/parser.bundle: [BUG] Segmentation fault
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   the more detail of.

-- Control frame information -----------------------------------------------
c:0014 p:-17564499976282 s:0065 e:000064 TOP    [FINISH]
c:0013 p:---- s:0063 e:000062 CFUNC  :require
c:0012 p:0115 s:0059 e:000058 METHOD /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55
c:0011 p:0009 s:0049 e:000048 CLASS  /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/ext.rb:7
c:0010 p:0011 s:0047 e:000046 CLASS  /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/ext.rb:6
c:0009 p:0017 s:0045 e:000044 TOP    /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/ext.rb:3 [FINISH]
c:0008 p:---- s:0043 e:000042 CFUNC  :require
c:0007 p:0115 s:0039 e:000038 METHOD /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55
c:0006 p:0019 s:0029 e:000028 CLASS  /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json.rb:59
c:0005 p:0017 s:0027 e:000026 TOP    /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json.rb:55 [FINISH]
c:0004 p:---- s:0025 e:000024 CFUNC  :require
c:0003 p:0115 s:0021 e:000020 METHOD /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55
c:0002 p:0007 s:0011 E:000500 EVAL   ./ReactNativeConfig/BuildDotenvConfig.ruby:3 [FINISH]
c:0001 p:0000 s:0002 E:001528 TOP    [FINISH]

./ReactNativeConfig/BuildDotenvConfig.ruby:3:in `<main>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json.rb:55:in `<top (required)>'
/Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json.rb:59:in `<module:JSON>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/ext.rb:3:in `<top (required)>'
/Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/ext.rb:6:in `<module:JSON>'
/Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/ext.rb:7:in `<module:Ext>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'

-- C level backtrace information -------------------------------------------

-- Other runtime information -----------------------------------------------

* Loaded script: ./ReactNativeConfig/BuildDotenvConfig.ruby

* Loaded features:

    0 enumerator.so
    1 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/enc/encdb.bundle
    2 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/enc/trans/transdb.bundle
    3 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb
    4 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/compatibility.rb
    5 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/defaults.rb
    6 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/deprecate.rb
    7 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/errors.rb
    8 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/version.rb
    9 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/requirement.rb
   10 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/platform.rb
   11 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb
   12 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/exceptions.rb
   13 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb
   14 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/thread.rb
   15 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb
   16 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb
   17 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems.rb
   18 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb
   19 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/path_support.rb
   20 /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/version.rb
   21 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/ostruct.rb
   22 /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/generic_object.rb
   23 /Users/tz/.rvm/gems/ruby-2.3.1/gems/json-2.0.3/lib/json/common.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
Don't forget to include the above Crash Report log file.
For details: http://www.ruby-lang.org/bugreport.html

/Users/tz/Library/Developer/Xcode/DerivedData/[project]-edimcnimpngwvqgyygsvlakwlmoc/Build/Intermediates/ReactNativeConfig.build/Debug-iphonesimulator/ReactNativeConfig.build/Script-EBE4E8281C7BF689000F8875.sh: line 2: 31002 Abort trap: 6           ./ReactNativeConfig/BuildDotenvConfig.ruby
Command /bin/sh failed with exit code 134

I'm also seeing this with ruby-2.4.0

Related to #13 I think. Using ruby with this has been causing a bunch of people all sorts of problems.

Adding that I also have this issue, and the suggested fix did indeed fixed it for me.

I was seeing this with ruby 2.3.3. Upgrading to 2.4.1 seems to have resolved it.

Is the owner active?  Is there a reason for the require?  Obviously a simple PR if its an acceptable solution.  This issue affects my builds frequently.

So sorry for the trouble folks, the require was removed/things should be working normally now on the latest. Thanks!


Change max-width to max-inline-size

Change max-width to max-inline-size in order to control layout through logical rather than physical, direction and dimension mappings. This helps with making websites internationally compatible.  https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties

According to https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size and https://caniuse.com/?search=max-inline-size, max-inline-size is only supported on iOS with Safari version 12.2 and above.  Previous Safari versions require the -webkit- prefix.
According to https://stackoverflow.com/questions/8627968/what-version-of-mobile-safari-comes-with-each-version-of-ios, Safari version 12.1 is the highest version supported on iPhone 6.  I have confirmed this with an iPhone 6 device that I have for testing. On this device the latest available iOS version is 12.5.5 with the latest available Safari version being 12.1.  See attached screenshots.
My understanding is that iPhone 6 will not receive further Safari updates, even though there are a surprising number of iPhone 6 units still in use.
Therefore, if this Pull Request is implemented, please consider adding the -webkit- prefixed property as well.
img {
    -webkit-max-inline-size: 100%;
    max-inline-size: 100%;
}

Please excuse my ignorance, but I don't know what "closed this by deleting the head repository" means.  Could someone please explain?

The pr was closed since I deleted the forked repo

I see.  Thanks for the explanation.
Although, that's a shame.  I agreed with your suggested change.  It would be nice to know why it wasn't merged.  Perhaps you could re-submit it as a suggestion in Issues.


ownership of host mountpath

When setting up a bindmount there needs to be a dir on the host fs that is used to hook the bind mount on.
    volumeMounts:
    - mountPath: /data/cdrom
      name: demo-volume

the directory /data/cdrom needs to exist, we currently chown this to uid/gid of the user running the pod (or via the security context), this means when 2 pods use the same mountPath but run as different users we chown this twice and to different user.
A better idea is to just create this with the uid/gid of the user running systemk and setting a liberal mode on it.

see #111, we don't need any of it

another thing is that the isAllowed directory should be applied against the mountpath not the bindmount inside the unit. I think, as this actually writes to the host file system, /data/cdrom is created. It may also be we don't care and the whole thing can be removed, leaning towards that

#113


bug: Move chat to sidebar disappearing chat

Version
1.4.21 Prerelease
Describe the bug
New chats open automatically in an Editor view.
Clicking the "Move Chat to Sidebar" button hides the current chat, but it doesn't get opened in the sidebar.
Expected behavior
Chat gets opened in sidebar.
Some configuration option to open new chats in sidebar.
Additional context
No response

cc @beyang

Please reopen if this is still an issue.


On Mac M1, importing  '_get_thread_id' from 'numba.np.ufunc.parallel' throws an error. Downgrading to 0.55.2 fixes the problem

This is causing other packages to error out, which use numba.
import numba
from numb.np.ufunc.parallel import _get_thread_id

ImportError: cannot import name '_get_thread_id' from 'numba.np.ufunc.parallel' (/Users/jashkina/Library/Python/3.8/lib/python/site-packages/numba/np/ufunc/parallel.py)
It is fixed when downgrading to 0.55.2, so it must be something in this release which is breaking.

Thanks for the report - can you outline why this should work please? Was it documented / published as an API for external use somewhere?

For reference, in 0.56 Numba removed the private numba.np.ufunc.parallel._get_thread_id function:
https://github.com/numba/numba/blob/2298ad6186d177f39c564046890263b0f1c74ecc/numba/np/ufunc/parallel.py#L652-L659
and replaced it with a similar, but public, API function numba.get_thread_id:
https://github.com/numba/numba/blob/f75c45a8dd7c7acfdfa8b41bea18695a88447c3e/numba/np/ufunc/parallel.py#L683-L693
I just noticed that the docs/docstring for this are not very well formatted, suggest fixing for 0.56.1.

Docs update in: #8386.

Closing this as fixed. The API in use is now public, fix is to update to Numba 0.56+. Thanks!


Cache promisified bcrypt functions

Unsure if this adheres to the first item in the list. In theory it should slightly speed up password logins, and password creation, as there are less function calls, but the difference is likely negligible.

[ ] There's a clear use-case for this code change
[x] Commit message has a short title & references relevant issues
[x] The build will pass (run npm test)

Hey @allouis 👋 Please correct me if I'm misunderstanding but does this trade startup speed for the speed increase on individual function calls?
We try to optimise for startup speed where possible/appropriate because that can have a direct impact on Ghost(pro). The password comparison functions should be called fairly infrequently but I'd definitely be interested in seeing some benchmarks that would help make a case for this change 😄

Hey 😊 !
Yeah you're right about that, this would add the overhead of reading and parsing the bcrypt library on start up.
I'll try some benchmarks, but as you say, these functions don't exactly look like "hot code" and if you're optimising for start-up time this PR is probably a no-go 😄

Closing this due to the negative impact on startup time


bug: fix colour of "add a task" button

this is incorrect. there is also a weird effect where once i click, it goes orange.
but in dev server it looks like this, which is correct:

resolved - was an internet connectivity issue


SEOmatic subitems deleted

Describe the bug
Enabling the plugin deletes the subitems of the SEOmatic plugin and I would have to add them all manually. It would be better if the plugin did not do that.
Steps to reproduce

Craft CMS version
4.4
Plugin version
4.0.10
Multi-site?
yes
Additional context
No response

Can't seem to immediately replicate this I'm afraid, testing installing/uninstalling SEOmatic first and vice versa with CP Nav. I'll keep at it...

Thanks, I appreciate it, Josh.

I am having the same issue with Solspace Calendar. When CP Nav is enabled, 4 of the 7 subitems under Calendar are hidden. If I go into the CP Nav settings, they are missing there, as well. Thanks for your help!

Thanks for chiming in, unfortunately I still can't seem to replicate that. Consistently I'm getting the following when installing

Can you let me know what method you're installing the plugin, in case that's a factor? I've tested using composer and the plugin store with the same result. Is this also on your local install, or on a staging/production environment?

I usually install all plugins through the CP. I had CP Nav installed for a while and recently tried installing Calendar. I had issues installing through the CP, so I installed Calendar via command line. As I described, the bottom 4 items are missing, which is critical because I can't add/edit calendars without that link. I disable CP Nav and the links reappear. I enable CP Nav, and they disappear. This is on local env. Once we are done with the development using Calendar, I will push to prod and see if this persists in production. I will report back here. Thank you!

So that would make some sort of sense because those bottom 4 (Events, Calendars, Settings, and Resources) require appropriate permissions. CP Nav is supposed to handle items that require permissions, but that might not be working correctly.

Current user is Admin and yes to allowAdminChanges = true in the local env. On production, user is Admin, as well and allowAdmin is set to false. Issue persists in both environments. If CP Nav is enabled, we can not see those sub-page links.


Newrelic Infrastructure

Apparently Newrelic is dropping support for the nrsysmon in favor of the new "Infrastructure" platform.
Any chance we could get a ansible role for this?

hi, haven't looked into that. Do you have a link?

https://newrelic.com/infrastructure

thx, will take a look at this

@Evanlec Hi, any link to the source of this information? Just curious?
Thanks

https://docs.newrelic.com/docs/servers/servers-pages/servers-ui/new-relic-servers-new-relic-infrastructure
Accounts created after Nov 2016 will not have access to the "Servers" module. Only Infrastructure. Which tells me they're phasing out Servers in favor of Infra.

Thank you.
Looks like they are killing free server monitoring completely?
Infrastructure doesn't seem to be free, or am i missing something?
On Thu, Jan 26, 2017 at 11:46 AM Evan LeCompte<EMAIL_ADDRESS>wrote:
https://docs.newrelic.com/docs/servers/servers-pages/servers-ui/new-relic-servers-new-relic-infrastructure
Accounts created after Nov 2016 will not have access to the "Servers"
module. Only Infrastructure. Which tells me they're phasing out Servers in
favor of Infra
--
Sincerely,
Dmitry Kireev
Cell: +1 (818) 850-55-77
Skype: kireev.co

Yeah it's discouraging. We had Servers first, tried Infrastructure, went back to Servers. Infrastructure was at best alpha software. But they are pushing it hard. Not sure what happened to the idea that server coverage was a freebie to get you to buy their APM.
By the way you can install Infrastructure across your estate with a one line ansible ad-hoc command. :-)

We are probably just going to use TICK stack, works well so far.
On Mon, Feb 20, 2017 at 4:00 PM, spikerobinson<EMAIL_ADDRESS>wrote:

hard

--
Sincerely,
Dmitry Kireev
Cell: +1 (818) 850-55-77
Skype: kireev.co


[core] Fix an issue where the threadid and threadCount were not passed

to the workload client threads.

Merged, thanks!


Event Listener on Client Disconnect

What is the feature you are proposing?
As mentioned in Discord, could we have the ability to create event listeners for client disconnect or abort events? I would expect to be able to use them like c.addListener('abort', () => { ...} and optionally c.on('abort', () => { ...}. Or course, we need the removeListener and off functions as well for completeness.

@sor4chi
Do you know how to handle user's cancellation such as closing the browsers tab. If you run the c.stream() or c.streamText() on Bun like the following, it will not be stopped.
app.get('/stream', (c) => {
  return c.streamText(async (stream) => {
    for (;;) {
      await stream.writeln('Hello')
      // Can I know the user's cancellation?
      await stream.sleep(1000)
    }
  })
})

@HeyITGuyFixIt
What do you mean client disconnect or abort events? ? For example, it might not be enabled to handle closing the browser's tab. Or you use some JavaScript on a client-side?

@HeyITGuyFixIt
How can I reproduce "disconnect"?

@HeyITGuyFixIt
I'm not sure if the abort event can handle browser closing.
I might try implementing a Node.js application that uses the abort event to see how it handles a "disconnect." However, if you have a good example, please share it.

I've created an example of a Node.js HTTP server that handles user disconnections. If you close the browser tab, the server stops. We should implement a similar feature in Hono.
import * as http from 'http'
import { Readable } from 'stream'

const server = http.createServer((req, res) => {
  res.writeHead(200, {
    'Content-Type': 'text/plain; charset=UTF-8',
    'Transfer-Encoding': 'chunked',
    'X-Content-Type-Options': 'nosniff'
  })

  const readable = new Readable({
    read() {}
  })

  const interval = setInterval(() => {
    const data = `${new Date().toISOString()}`
    console.log(data)
    readable.push(`${data}\n`)
  }, 1000)

  readable.pipe(res)

  req.on('close', () => {
    console.log('Connection is closed')
    clearInterval(interval)
    readable.destroy()
  })
})

const PORT = 3000
server.listen(PORT, () => {
  console.log(PORT)
})

By the way, can we observe a response cancellation event?
I have no idea to subscribe the event.
I came up with getting AbortController from event, but it didn’t work well.

@sor4chi

By the way, can we observe a response cancellation event?

I don't know :) So, I've made the Node.js example.
Which runtime do you try it?

This works well on Node.js. But it does not work on Bun well because maybe it has this issue: https://github.com/oven-sh/bun/issues/6758
So, we have to test it on Node.js (or Deno).
app.get('/', async (c) => {
  let cancelationRequested = false

  const readable = new ReadableStream({
    start(controller) {
      const encoder = new TextEncoder()
      ;(async () => {
        for (;;) {
          if (cancelationRequested) {
            console.log(cancelationRequested)
            break
          }
          const input = encoder.encode('Hello\n')
          console.log('Hello')
          controller.enqueue(input)
          await new Promise((resolve) => setTimeout(resolve, 1000))
        }
        try {
          controller.close()
        } catch (e) {
          console.log(e)
        }
      })()
    },
    cancel(reason) {
      console.log('Stream canceled', reason)
      cancelationRequested = true
    },
  })

  return new Response(readable, {
    headers: {
      'content-type': 'text/plain; charset=UTF-8',
      'x-content-type-options': 'nosniff',
      'transfer-encoding': 'chunked',
    },
  })
})

Cool, surely a stream could get it from cancel or abort.
Can't we get abort from something other than stream as @ HeyITGuyFixIt shows in his code...?

After investigating, it appears that we can handle cancellation events, such as closing a browser tab, using ReadableStream because it has a cancel method. However, WritableStream, which is used in c.stream(), lacks a method similar to the cancel method of ReadableStream. Therefore, it might not be possible to handle cancellation with c.stream().
@sor4chi
If you have the time, I would appreciate it if you also could investigate this.

@yusukebe
even https://github.com/honojs/hono/issues/1770#issuecomment-1840447815はcloudflare workers It did not work.
I have code locally that implements the abort event handler on c.stream, but I have a feeling that it might make a lot of difference depending on the runtime.
Should we proceed it?

Uploading 画面収録 2023-12-09 15.30.07.mov…

@sor4chi
Cool!
I don't know whether to merge or not, but can you make a PR? We can discuss it there.

Yes, of course.
Just a very hacky writing style, so please hold on a moment to refactor it out.

Confirmed that Hono'sstream.onAbort is not work with Bun. This does work to detect if a stream has been disconnected.
return streamSSE(c, async (stream) => {
   c.req.signal.addEventListener("abort", () => {
      console.log('Stream closed')
   })

   await stream.writeSSE({....})
})

Abort event is now triggered when the client triggers EventSource.close()

HI, @satyavh!
I would like to know which version of Hono you are using.
In hono <= 3.12.0, onAbort on streamSSE did not work, fixed since 3.12.1.

I'm on Hono 3.12.1, does not work for me with Bun, but could be Bun related (I'm on Bun v1.0.24)

@satyavh @mvolkmann
Here is the usage of onAbort that Hono is expecting. Cloud you try this?
app.get("/on-abort", (c) => {
  return streamSSE(c, async (stream) => {
    stream.onAbort(() => {
      console.log("aborted");
    });

    for (let i = 0; i < 10; i++) {
      await stream.write(`data: ${i}\n\n`);
      await stream.sleep(1000);
    }
  });
});

I just noticed that there is no mention of onAbort in the documentation. My apologies. I will add it!

@sor4chi I tried your suggestion. It did not work for me. The client calls eventSource.close(), but the stream.onAbort callback function is never executed.

No stream.onAbort() -> {} is definitely never called.
@mvolkmann
c.req.raw.signal.addEventListener("abort", () => {}) works for me, and is triggered when the client triggers EventSource.close()
    c.req.raw.signal.addEventListener("abort", () => {
      console.log("got abort event");
      // TODO: How can the connection be closed?
    });

You don't need to close the connection, because when this is triggered the connection is already closed by the client.
But note that this doesn't stop the actually processing of logic in the endpoint. In other words the loop keeps going forever if you don't stop it manually (in your case until count is 10). Hono only closes the stream connection from the server if you return from the streamSSE callback! The same is true if you trigger stream.close()
Now you can imagine the memory and server load issues this can generate if 1000s of clients connect to your SSE endpoint. All those loops/logic will potentially keep going forever, specially if you keep the connection open as per the documentation using stream.sleep()
So what you need to do is something like this
app.get('/sse', async (c) => {
  return streamSSE(c, async (stream) => {
    let isOpen = true

    c.req.raw.signal.addEventListener("abort", () => {
      // this will stop the loop and make sure the streamSSE callback resolves
      isOpen = false
    })

    // this loop makes sure the SSE stream stays open, as it makes sure the callback on line 2 never resolves (that is the weird part of Hono)
    while (isOpen) {
      const message = `It is ${new Date().toISOString()}`
      await stream.writeSSE({
        data: message,
        event: 'time-update',
        id: String(id++),
      })
      await stream.sleep(1000)
    }
  })
})

[IMO] There are the possibility that Bun does not support ReadableStream({ cancel }) in the first place.
Similarly, it has been confirmed that onAbort does not work for cloudflare workers. Currently, the only runtime that has been confirmed to work is node.

ended up here with the same issue (bun+sse) and just wanted to share my findings after reading through this and trying out some experiments. reading the above and trying a few variations I found some interesting results that seem to solve my problem at least, and maybe helps someone else.
Using a slightly modified version of the sse example from https://hono.dev/helpers/streaming none of these events are ever called
let id = 0;
app.get("/sse", (c) => {
	c.req.raw.signal.addEventListener("abort", () => {
		console.log("never gets called");
	});

	c.req.raw.signal.onabort = () => {
		console.log("never gets called also");
	};
	return streamSSE(c, async (stream) => {
		stream.onAbort(() => {
			console.log("never gets called also 2");
		});

		while (true) {
			const message = `It is ${new Date().toISOString()}`
			await stream.writeSSE({
			  data: message,
			  event: 'time-update',
			  id: String(id++),
			})
			await stream.sleep(1000)
		}
	});
});

however if i check signal.aborted (such as in the while loop) then these events are called
let id = 0;
app.get("/sse", (c) => {
	c.req.raw.signal.addEventListener("abort", () => {
		console.log("now this gets called");
	});

	c.req.raw.signal.onabort = () => {
		console.log("now this gets called also");
	};
	return streamSSE(c, async (stream) => {
		stream.onAbort(() => {
			console.log("still doesn't get called");
		});

		while (true) {
			// add this line, and the above get called on disconnect :)
			if (c.req.raw.signal.aborted) {
				break;
			}
			const message = `It is ${new Date().toISOString()}`;
			await stream.writeSSE({
				data: message,
				event: "time-update",
				id: String(id++),
			});
			await stream.sleep(1000);
		}
	});
});

Aborts don't seem to be getting captured until something has been written to the stream. In my case, adding await stream.write('') at the beginning of streamText() made it so that all abort signals are captured.
apiRouter.get('/llm',
  async (c) => {
    return streamText(c, async (stream) => {
      // Aborted signals aren't captured if nothing is written to the stream for some reason...
      await stream.write('');

      const prompt = 'Tell me a short story about a happy Llama that is 2 sentences long.';
      const llmStream = await model.stream(prompt);
      if (c.req.raw.signal.aborted) {
        console.log('Aborted');
        return; // do early return if request was immediately aborted
      }
      for await (const chunk of llmStream) { // stream will be locked when in this loop
        if (c.req.raw.signal.aborted) {
          console.log('Aborted');
          break; // will cancel the stream
        }
        console.log(chunk);
        await stream.write(chunk);
      }
    });
  }
);

if I didn't have that await stream.write('') at the beginning, and an abort signal came through, it would be as though the abort never happened. Abort handlers wouldn't get triggered, and c.req.raw.signal.aborted would remain false. Only aborts after the initial write (await stream.write(chunk)) were captured.

It is reall a mess and seems to change with every Hono release.
Right now (Hono 4.4.9) adding this anywhere
        stream.onAbort(() => {
          console.log('>>> stream closed!')
        })

will not be triggered, BUT it will make sure that the following always get triggered 🤯
      c.req.raw.signal.addEventListener("abort", () => {
          console.log('>>> stream closed')
      })

Full code
return streamSSE(c, async (stream) => {
    // this is just here to make sure that below gets triggered
    stream.onAbort(() => {})

   // this will now always get triggered - but only if above line is there 🤯
    c.req.raw.signal.addEventListener("abort", () => {
          console.log('>>> stream closed')
   })

   // keep stream open
   await new Promise(() => {})
})

I tried all of the above methods and nothing worked for me, and when I was running with node, there was no way to detect when the client link was broken

I tried all of the above methods and nothing worked for me, and when I was running with node, there was no way to detect when the client link was broken

  stream.onAbort(() => {
      console.log('>>> stream closed!')
    })

  c.req.raw.signal.addEventListener("abort", () => {
      console.log('>>> stream closed')
  })

Not sure if this still an issue i just tested both way in bun and it's work just fine

This solution doesn't work with Deno on windows due to a bug in their fetch implementation:
https://github.com/denoland/deno/issues/26924

It is not possible with the current implementation, but I think it can be done by taking the abort event from the controller when creating the writable stream and passing a handler from outside the StreamAPI. I'll try it later.

I tested hono 4.6.14 on Node.js.
The following code doesn't trigger the abort when closing the browser. It's not implemented yet?
app.get('/on-abort', (c) => {
  return streamSSE(c, async (stream) => {
    stream.onAbort(() => {
      console.log('not called');
    });

    c.req.raw.signal.addEventListener('abort', () => {
      console.log('not called');
    });

    for (let i = 0; ; i++) {
      if (c.req.raw.signal.aborted) {
        console.log('not called');
        break;
      }
      await stream.write(`data: ${i}\n`);
      console.log('data', i, c.req.raw.signal.aborted);
      await stream.sleep(1000);
    }
  });
});


Update example mods for plist support

Example mods should have "plist": {} field now. Otherwise it runs with error:
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.XCodeEditor.XCPlist.Process (System.Collections.Hashtable plist) (at Assets/XUPorter/Editor/XCPlist.cs:34)
UnityEditor.XCodeEditor.XCProject.ApplyMod (UnityEditor.XCodeEditor.XCMod mod) (at Assets/XUPorter/Editor/XCProject.cs:780)
UnityEditor.XCodeEditor.XCProject.ApplyMod (System.String pbxmod) (at Assets/XUPorter/Editor/XCProject.cs:706)
XCodePostProcess.OnPostProcessBuild (BuildTarget target, System.String pathToBuiltProject) (at Assets/XUPorter/Editor/XCodePostProcess.cs:29)
UnityEditor.HostView:OnGUI()

Was confused when tried it first time.

I did also run into to this

Better yet, "ApplyMod" should be updated to check for null ... kind of redundant to have a projmods with a bunch of empty arrays when just one key is needed.


Add (and apply?) a consistent code style template

Currently most of the game's older code uses a mostly consistent but unconventional codestyle (2-space indentation,  one-line if blocks and several other subtle issues), while the newer (or recently modified) classes tend to use IDEA's default style template. It would be nice to switch the entire project to a consistent codestyle, preferably Terasology's existing template.
Checklist

[x] Add Terasology's code style file to the project.
[x] Apply it as an IDE default via gradle.
[x] Push a commit applying the code style to the entire project. Ideally all current pending contributions will be pushed before this so that they don't run into an overcomplicated git merge.

Yep, loads of this stuff to do, but would indeed be nice to do it after the big v2.0.0. Which could be very close! Just that silly little date format issue with Gestalt vs. Android's Java left (that we know of)

@Cervator: sounds fairly reasonable :)
Is the date issue https://github.com/MovingBlocks/DestinationSol/pull/92#issuecomment-238939006? That sounds like it might require a fix/downgrade in gestalt rather than DS.

Yep, that's it. Potentially downgrading Gestalt's target Java version could work, but the problem is with Android's inconsistent adherence to Java 6-8 versioning (seemingly cherry picking different pieces from different versions). I googled and found an assortment of workarounds like handling date formats based on an OS check. That isn't necessarily pretty, but if there isn't too much of it (no idea if we'll hit more like it after the date format is fixed) it might be valuable to have the handling in Gestalt for Android compatibility while keeping it Java 8.

Closing as complete via #129 - I'm sure we can do more reformatting but this gets the one big giant bulk reformatting out of the way.


Enhance Algebra,Trigonometry,Geometry, and Integration topics Cards

Describe the bug
Under GSSoC22
Change colors and the design of cards in the Algebra, Trigonometry, Geometry, and Integration pages.
Screenshots

@HazemAbdo what do u want to change?

The layout and the color of the cards are not very elegant so we can change the color to match the theme of the website, especially the home page.
Adding images for each topic
Adding a small description for each topic on the card
Handling coming soon case.

Using Bootstrap will be a big boost for the website UI

@HazemAbdo we can't add images due to copyright issues, description for each specific topic is not possible as it will not maintain the column structure.