Ignore module-info.class

I have akka scala sbt multi project.
After adding akka-serialization-jackson dependency, assembly causing error:
[error] 1 error was encountered during merge
[error] java.lang.RuntimeException: deduplicate: different file contents found in the following:
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.3/jackson-annotations-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.3/jackson-core-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.10.3/jackson-databind-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.10.3/jackson-dataformat-cbor-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.10.3/jackson-datatype-jdk8-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.10.3/jackson-datatype-jsr310-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names/2.10.3/jackson-module-parameter-names-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-paranamer/2.10.3/jackson-module-paranamer-2.10.3.jar:module-info.class
[error]         at sbtassembly.Assembly$.applyStrategies(Assembly.scala:143)
[error]         at sbtassembly.Assembly$.x$1$lzycompute$1(Assembly.scala:25)
[error]         at sbtassembly.Assembly$.x$1$1(Assembly.scala:23)
[error]         at sbtassembly.Assembly$.stratMapping$lzycompute$1(Assembly.scala:23)
[error]         at sbtassembly.Assembly$.stratMapping$1(Assembly.scala:23)
[error]         at sbtassembly.Assembly$.inputs$lzycompute$1(Assembly.scala:68)
[error]         at sbtassembly.Assembly$.inputs$1(Assembly.scala:58)
[error]         at sbtassembly.Assembly$.apply(Assembly.scala:85)
[error]         at sbtassembly.Assembly$.$anonfun$assemblyTask$1(Assembly.scala:244)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error]         at sbt.std.Transform$$anon$4.work(Transform.scala:67)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error]         at sbt.Execute.work(Execute.scala:290)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]         at java.lang.Thread.run(Thread.java:748)
[error] (assembly) deduplicate: different file contents found in the following:
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.3/jackson-annotations-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.3/jackson-core-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.10.3/jackson-databind-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.10.3/jackson-dataformat-cbor-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.10.3/jackson-datatype-jdk8-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.10.3/jackson-datatype-jsr310-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names/2.10.3/jackson-module-parameter-names-2.10.3.jar:module-info.class
[error] /Users/mkostromin/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-paranamer/2.10.3/jackson-module-paranamer-2.10.3.jar:module-info.class
[error] Total time: 5 s, completed Mar 20, 2020 2:51:34 AM

Probably I'm too stupid to understand, but this guide doesn't helped me fix problem and build fat jar.
I have tried different combinations, like this:

...but was not successful
steps to reproduce
# clone assembly branch:
git clone https://github.com/daggerok/akka-stream-playground -b assembly
# and run assembly task:
cd akka-stream-playground && ./sbtw "project typed-akka-production-ready-api-scala-example" assembly

Please, explain how to understand, investigate and finally solve problem.
Thank you in advice

Regards,
Max

https://github.com/sbt/sbt-assembly/blob/master/CONTRIBUTING.md#where-to-file-a-bug-report

For questions and specific support issues use stackoverflow with tags sbt and sbt-assembly.

Looking at this more carefully, maybe the problem is sbt-assembly not working well with Java Module's module-info.class file.

Don't know if it will help, but here are warnings I can see for other project with similar sets of dependencies with maven-shade-plugin:
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
[WARNING] akka-actor-typed_2.13-2.6.4.jar, akka-actor_2.13-2.6.4.jar, akka-serialization-jackson_2.13-2.6.4.jar define 1 overlapping resources:
[WARNING]   - reference.conf
[WARNING] jackson-core-2.10.3.jar, jackson-databind-2.10.3.jar, jackson-module-paranamer-2.10.3.jar define 1 overlapping resources:
[WARNING]   - META-INF/NOTICE
[WARNING] jackson-datatype-jdk8-2.10.3.jar, jackson-datatype-jsr310-2.10.3.jar, jackson-module-parameter-names-2.10.3.jar, jackson-module-paranamer-2.10.3.jar, jackson-module-scala_2.13-2.10.3.jar define 1 overlapping resources:
[WARNING]   - META-INF/services/com.fasterxml.jackson.databind.Module
[WARNING] akka-actor-typed-java-maven-example-1.0-SNAPSHOT.jar, akka-actor-typed_2.13-2.6.4.jar, akka-actor_2.13-2.6.4.jar, akka-serialization-jackson_2.13-2.6.4.jar, akka-slf4j_2.13-2.6.4.jar, config-1.4.0.jar, jackson-annotations-2.10.3.jar, jackson-core-2.10.3.jar, jackson-databind-2.10.3.jar, jackson-dataformat-cbor-2.10.3.jar, jackson-datatype-jdk8-2.10.3.jar, jackson-datatype-jsr310-2.10.3.jar, jackson-module-parameter-names-2.10.3.jar, jackson-module-paranamer-2.10.3.jar, jackson-module-scala_2.13-2.10.3.jar, logback-classic-1.2.3.jar, logback-core-1.2.3.jar, paranamer-2.8.jar, scala-java8-compat_2.13-0.9.0.jar, scala-library-2.13.1.jar, slf4j-api-1.7.30.jar define 1 overlapping resources:
[WARNING]   - META-INF/MANIFEST.MF
[WARNING] jackson-core-2.10.3.jar, jackson-dataformat-cbor-2.10.3.jar define 1 overlapping resources:
[WARNING]   - META-INF/services/com.fasterxml.jackson.core.JsonFactory
[WARNING] jackson-annotations-2.10.3.jar, jackson-core-2.10.3.jar, jackson-databind-2.10.3.jar, jackson-datatype-jsr310-2.10.3.jar, jackson-module-paranamer-2.10.3.jar, jackson-module-scala_2.13-2.10.3.jar define 1 overlapping resources:
[WARNING]   - META-INF/LICENSE
[WARNING] maven-shade-plugin has detected that some class files are
[WARNING] present in two or more JARs. When this happens, only one
[WARNING] single version of the class is copied to the uber jar.
[WARNING] Usually this is not harmful and you can skip these warnings,
[WARNING] otherwise try to manually exclude artifacts based on
[WARNING] mvn dependency:tree -Ddetail=true and the above output.
[WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>akka-actor-typed-java-maven-example</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <properties>
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>

    <encoding>UTF-8</encoding>
    <project.build.sourceEncoding>${encoding}</project.build.sourceEncoding>
    <project.reporting.outputEncoding>${encoding}</project.reporting.outputEncoding>

    <akka.version>2.6.4</akka.version>
    <scala.version>2.13</scala.version>
    <logback.version>1.2.3</logback.version>
    <maven-shade-plugin.version>3.2.2</maven-shade-plugin.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.typesafe.akka</groupId>
      <artifactId>akka-actor-typed_${scala.version}</artifactId>
      <version>${akka.version}</version>
    </dependency>
    <dependency>
      <groupId>com.typesafe.akka</groupId>
      <artifactId>akka-serialization-jackson_${scala.version}</artifactId>
      <version>${akka.version}</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
    </dependency>

    <dependency>
      <groupId>com.typesafe.akka</groupId>
      <artifactId>akka-actor-testkit-typed_${scala.version}</artifactId>
      <version>${akka.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <defaultGoal>clean package</defaultGoal>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${maven-shade-plugin.version}</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals><goal>shade</goal></goals>
            <configuration>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <shadedClassifierName>all</shadedClassifierName>
              <artifactSet>
                <includes>
                  <include>*:*</include>
                </includes>
              </artifactSet>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                  <resource>reference.conf</resource>
                </transformer>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <manifestEntries>
                    <Main-Class>daggerok.Main</Main-Class>
                  </manifestEntries>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

Regards,
Maksim

https://stackoverflow.com/a/60114988/86485 shows how to use MergeStrategy to work around this

I completely agree with @daggerok that none of the mentioned solutions work.
Here is my assembly strategy
assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs @ _*) => MergeStrategy.discard
  case "application.prod.conf" => MergeStrategy.concat
  // https://stackoverflow.com/questions/54834125/sbt-assembly-deduplicate-module-info-class
  case PathList("META-INF", "versions", "9", "module-info.class") => MergeStrategy.discard
  case "module-info.class" => MergeStrategy.discard
  case x =>
    val oldStrategy: String => MergeStrategy = (assemblyMergeStrategy in assembly).value
    oldStrategy(x)
}

and I have very similar error
[error] java.lang.RuntimeException: deduplicate: different file contents found in the following:
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/classgraph/classgraph/4.8.65/classgraph-4.8.65.jar:META-INF/versions/9/module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar:META-INF/versions/9/module-info.class
[error] deduplicate: different file contents found in the following:
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.11.2/jackson-annotations-2.11.2.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.11.2/jackson-core-2.11.2.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.11.2/jackson-databind-2.11.2.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.11.1/jackson-dataformat-yaml-2.11.1.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.1/jackson-datatype-jsr310-2.11.1.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.11.1/jackson-jaxrs-base-2.11.1.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.11.1/jackson-jaxrs-json-provider-2.11.1.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.1/jackson-module-jaxb-annotations-2.11.1.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-paranamer/2.11.2/jackson-module-paranamer-2.11.2.jar:module-info.class
[error] /home/aashish/.cache/coursier/v1/https/repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2.jar:module-info.class
[error]         at sbtassembly.Assembly$.applyStrategies(Assembly.scala:143)
[error]         at sbtassembly.Assembly$.x$1$lzycompute$1(Assembly.scala:25)
[error]         at sbtassembly.Assembly$.x$1$1(Assembly.scala:23)
[error]         at sbtassembly.Assembly$.stratMapping$lzycompute$1(Assembly.scala:23)
[error]         at sbtassembly.Assembly$.stratMapping$1(Assembly.scala:23)
[error]         at sbtassembly.Assembly$.inputs$lzycompute$1(Assembly.scala:68)
[error]         at sbtassembly.Assembly$.inputs$1(Assembly.scala:58)
[error]         at sbtassembly.Assembly$.apply(Assembly.scala:85)
[error]         at sbtassembly.Assembly$.$anonfun$assemblyTask$1(Assembly.scala:244)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error]         at sbt.std.Transform$$anon$4.work(Transform.scala:67)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error]         at sbt.Execute.work(Execute.scala:290)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]         at java.lang.Thread.run(Thread.java:748)

Also stuck on this one. Using sbt-assembly version 0.15.0. Dependency tree shows only one usage of library. Any help would be much appreciated

This is pretty sad. The internet is filled with the same problem: sbt's assemblyMergeStrategy does NOT work with certain file names. I've tried literally every single permutation of assemblyMergeStrategy. Nothing works.

@deekayman Have you tried different sbt versions?
sbt.version = 1.3.1 causes the issue for me.
sbt.version = 1.4.1 fixes it.

@ry0nw I tried with 1.4.7 Getting the same issue as given by @anupash

There was a Reddit thread on this recently that might have some solutions/workarounds that might be helpful to some: https://www.reddit.com/r/scala/comments/m335hi/how_to_handle_sbt_deduplication_errors_on/

FWIW, I needed to add the assemblyMergeStrategy directly to the subproject I wanted to run assemble on. Adding assemblyMergeStrategy as a top level key did not work.

Thanks @adamrabung, I've been trying to resolve this issue for quite a while and I couldn't figure out why this was happening. Adding the merge strategy directly to java subproject fixes this issue.
What I do not understand is why that fixes this issue. Why does assemblyMergeStrategy as top level works for my scala subprojects but not for java subproject?
Change I've made:
val skuModule = project
  .in(file("modules/java-subproject"))
  .settings(
    name := "java-subproject",
    commonJavaSettings
  )

into
val skuModule = project
  .in(file("modules/java-subproject"))
  .settings(
    name := "java-subproject",
    commonJavaSettings,
    assemblyMergeStrategy in assembly := [..(my exceptions)..]
  )

I just faced this issue with jackson and this is what resolved it for me
    assembly / assemblyMergeStrategy := {
      case PathList("module-info.class")                                 => MergeStrategy.discard
      case PathList("META-INF", "versions", xs @ _, "module-info.class") => MergeStrategy.discard

module-info can contain service provider declarations, so simply discarding might not be such an acceptable workaround. You might depend on a concrete implementation of a service API, and upon deployment face errors that the implementation cannot be found.
(This is in a world where your deployment target is a Java 9+ runtime, and library authors use Java 9+ features like service providers via modules. In 2023 the latter has finally begun to enter reality).
Ref: Deploying service providers as modules

module-info can contain service provider declarations, so simply discarding might not be such an acceptable workaround. You might depend on a concrete implementation of a service API, and upon deployment face errors that the implementation cannot be found.
(This is in a world where your deployment target is a Java 9+ runtime, and library authors use Java 9+ features like service providers via modules. In 2023 the latter has finally begun to enter reality).
Ref: Deploying service providers as modules

The ServiceLoader mechanism is used in SLF4J versions 2+.
This means discarding these classes renders logging with modern SLF4J impossible.
In fact, many libraries use ServiceLoader as described in this blog post. From Jackson to JDBC.
For example, in my current project, I am building a fat-jar that is deployed into an AWS Lambda. I can either not have any logging, by using this:
    case PathList("module-info.class")               => MergeStrategy.discard
    case path if path.endsWith("/module-info.class") => MergeStrategy.discard

or my build fails with:
[error] Deduplicate found different file contents in the following:
[error]   Jar name = logback-classic-1.4.14.jar, jar org = ch.qos.logback, entry target = module-info.class
[error]   Jar name = logback-core-1.4.14.jar, jar org = ch.qos.logback, entry target = module-info.class
[error]   Jar name = jackson-annotations-2.12.7.jar, jar org = com.fasterxml.jackson.core, entry target = module-info.class
[error]   Jar name = jackson-core-2.12.7.jar, jar org = com.fasterxml.jackson.core, entry target = module-info.class
[error]   Jar name = jackson-databind-<IP_ADDRESS>.jar, jar org = com.fasterxml.jackson.core, entry target = module-info.class
[error]   Jar name = jackson-dataformat-cbor-2.12.6.jar, jar org = com.fasterxml.jackson.dataformat, entry target = module-info.class
[error] Total time: 6 s, completed 6 Feb 2024, 17:25:33

In my example, I don't even explicitly include Jackson libraries. My other alternative is to downgrade the sl4j libraries to 1.7.x, which is a version that has not been updated since Feb 08, 2022. EDIT: In the instance of SLF4J there is also the slf4j.provider system property that can be set that will override the ServiceLoader system.
Is there not some kind of merge strategy or specific functionality that can be implemented specifically for module-info?

I had similar slf4j-related problems with the following errors:
[error] 3 error(s) were encountered during the merge:
[error] stack trace is suppressed; run last assembly for the full output
[error] (assembly)
[error] Deduplicate found different file contents in the following:
[error]   Jar name = logback-classic-1.5.6.jar, jar org = ch.qos.logback, entry target = module-info.class
[error]   Jar name = logback-core-1.5.6.jar, jar org = ch.qos.logback, entry target = module-info.class
[error] Deduplicate found different file contents in the following:
[error]   Jar name = okio-jvm-3.6.0.jar, jar org = com.squareup.okio, entry target = META-INF/okio.kotlin_module
[error]   Jar name = okio-3.6.0.jar, jar org = com.squareup.okio, entry target = META-INF/okio.kotlin_module
[error] Deduplicate found different file contents in the following:
[error]   Jar name = kotlin-stdlib-jdk7-1.9.10.jar, jar org = org.jetbrains.kotlin, entry target = META-INF/versions/9/module-info.class
[error]   Jar name = kotlin-stdlib-jdk8-1.9.10.jar, jar org = org.jetbrains.kotlin, entry target = META-INF/versions/9/module-info.class
[error]   Jar name = kotlin-stdlib-1.9.10.jar, jar org = org.jetbrains.kotlin, entry target = META-INF/versions/9/module-info.class
[error]   Jar name = slf4j-api-2.0.13.jar, jar org = org.slf4j, entry target = META-INF/versions/9/module-info.class
[error] Total time: 2 s, completed 30 Jul 2024, 22.26.34

Please observe the logback jar entries in the beginning of the error message, and the slf4j jar at the end. I managed to get logging to work as follows:
assembly / assemblyMergeStrategy := {
  case PathList("module-info.class") => MergeStrategy.first
  case PathList("META-INF", "versions", "9", "module-info.class") => MergeStrategy.last
  case PathList("META-INF", xs @ _*) => MergeStrategy.first
  case x =>
    val oldStrategy = (ThisBuild / assemblyMergeStrategy).value
    oldStrategy(x)
}

I could also get the build errors to go away with .discard, but that indeed then broke slf4j at runtime as it did not appear to find any logging provider. But with the above assemblyMergeStrategy I managed to get everything to work.


[[FIX]] Do not crash on invalid program code

This should resolve gh-3408.

Coverage remained the same at 100.0% when pulling 5b78329f6ac2f440f2b64244fa150275717fc090 on jugglinmike:gh-3408 into 2366c92b852adeb963ecb812bc32b258288663dc on jshint:master.


cargo fmt; cargo clippy; compile for more boards; remove SPI RAM requirement; remove unused app & host code

JFYI - a PR with all of this is coming, when I have some free time.

Thank you.
Just check the latest main. I've added implementation which is using Rgb565 instead of RGBA.
The image should be correctly displayed on the screen.

Good optimization. Yet:

You can further optimize by allocating a buffer that keeps ZxColor instead of RGB565 instances. This way you'll go down from 16 bits per pixel to 4 bits per pixel and the need for SPI RAM will likely disappear
Even further: I don't think this buffer that you guys have implemented is necessary. It is never, ever read, except at the end of the emulation, when you take it, crate an image and blit the image onto the display. Instead of doing this, you can implement  the ZX emulator's FrameBuffer trait directly on top of the embedded graphics display, thus eradicating the buffer completely. This is what I'm working on actually.

BTW: Current frame-rate is 2 FPS. So definitely there is room for improvement. At least the emulator is able to display the screen.
ESP-IDF itself has support for DMA and color conversion which is not incorporated in the embedded-graphics.
There is similar project written using C, which has better performance: https://github.com/rampa069/ZX-ESPectrum
This can be good source of inspiration for improvements.
Right now this project has only video support, audio and keyboard handling is disabled now.

BTW: Current frame-rate is 2 FPS. So definitely there is room for improvement. At least the emulator is able to display the screen. ESP-IDF itself has support for DMA and color conversion which is not incorporated in the embedded-graphics.
Indeed. To be seen how much can be achieved with pure software mode.

There is similar project written using C, which has better performance: https://github.com/rampa069/ZX-ESPectrum This can be good source of inspiration for improvements.

Thanks.

Right now this project has only video support, audio and keyboard handling is disabled now.

I saw that. Audio might be added via i2s (?). Keyboard - via BT (?). But video performance has to be improved first, of course. (If possible.)

BTW: Current frame-rate is 2 FPS. So definitely there is room for improvement. At least the emulator is able to display the screen. ESP-IDF itself has support for DMA and color conversion which is not incorporated in the embedded-graphics.

Actually, embedded-graphics can indirectly use DMA, as long as the SPI driver underneath uses DMA (which esp-idf-hal doesn't do (yet), but it is very much possible).
As for color conversion - what do you mean?

Regarding color-space conversion: AFAIK ESP-IDF is able to translate Rgb888 image into the format supported by display e.g. Rgb565.
In the case of ZX Spcetrum it should be even simpler, because there are just 16 colors. Here's mapping to Rgb565: https://github.com/georgik/rustzx-esp32/blob/main/src/app/video/palette.rs#L13
The original Rgba palette is here: https://github.com/pacmancoder/rustzx/blob/master/rustzx-utils/src/palette.rs#L2

I think we are over-complicating the problem. Translating each of the 8 (or 16, with brightness) values to Rgb565 with a match statement is IMO good enough and fast enough. Again, I do not really understand why you guys were going via a large RGB888 buffer in the first place, when you can use a small - ZX specific buffer, where for each ZX color you need just 4 bits (as opposed to 32 bits for RGBA or 16 for RGB565 which eats a lot of RAM).

PR merged. Thank you @ivmarkov for the contribution.
Let's close this issue. Further improvements can be moved to new issues.


Add javascript-ish reduce function

Hi, thanks for the repo. I learned a lot from this repo about generic.
Let me add more method Reduce. It's like JS reduce method. Please take a look.

This is just Fold...

Ah, i didn't see it. Closing.


Add function input to sampleDataBlockProfiles

This allows sampleDataBlockProfiles to now handle finding multiple intersections via the passing of a funciton

Pushed up now. Note you'll need to pull if you want to make any local changes.


[ic-text-field]: Pressing Enter in a form should submit the form

Summary
Whilst focus is on an ic-text-field and the <ic-text-field> is in a <form>, pressing Enter in the text field should submit the form.
💰 Use value
According to Mozilla:
"The submit event fires when:

the user clicks a submit button,
the user presses Enter while editing a field (e.g. ) in a form,
a script calls the form.requestSubmit() method"

📝 Acceptance Criteria
GIVEN a user has a form
WHEN there is an ic-text-field in the form
AND focus is on the ic-text-field
AND there are no required form fields in the form
THEN, pressing the "Enter" key should submit the form
GIVEN a user has a form
WHEN there is an ic-text-field in the form
AND focus is on the ic-text-field
AND there are required form fields in the form
AND all the required form fields have been actioned or contain text
THEN, pressing the "Enter" key should submit the form
GIVEN a user has a form
WHEN there is an ic-text-field in the form
AND focus is on the ic-text-field
AND there are required form fields in the form
AND some of the required form fields have not been actioned or do not contain text
THEN, pressing the "Enter" key should not submit the form
Additional information
Questions:

do we have a defined list of form components?

Add a test for using inputs with a form

Explore if the text field should support validation of required fields: https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event


🐛 [firebase_messaging] Unable to install pod on while executing on iOS

Bug report
While executing pod install the following error is shown -
[!] CDN: trunk Repo update failed - 56 error(s):
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.2.0/Firebase.podspec.json Response: Timeout was reached
Steps to reproduce
Steps to reproduce the behavior:

change directory to the iOS folder of the app
run pod install
See error or incorrect behavior

Cocoapods provided a temporary solution - https://github.com/CocoaPods/CocoaPods/issues/11355.
But it is time consuming sometimes as it have a delay while downloading pod file.
Flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.3.1 21E258 darwin-arm, locale en-IN)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.1)
[✓] VS Code (version 1.69.2)
[✓] Connected device (4 available)
[✓] HTTP Host Availability
• No issues found!

@Adithyan2295 Can you provide the complete error log in properly formatted text instead of screenshot ?
Updating local specs repositories
Analyzing dependencies
firebase_core: Using Firebase SDK version '9.3.0' defined in 'firebase_core'
Warning: firebase_app_id_file.json file does not exist. This may cause issues in upload-symbols. If this error is unexpected, try running flutterfire configure again.
firebase_crashlytics: Using Firebase SDK version '9.3.0' defined in 'firebase_core'
firebase_messaging: Using Firebase SDK version '9.3.0' defined in 'firebase_core'
[!] CDN: trunk Repo update failed - 56 error(s):
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.2.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.20.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.21.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.22.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.23.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.24.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.25.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.26.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.27.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.27.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.28.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.28.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.29.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.3.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.30.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.31.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.31.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.32.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.32.2/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.33.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.34.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.4.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.5.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.6.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.7.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.8.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.8.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/6.9.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.0.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.1.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.10.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.11.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.2.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.2.0-M1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.3.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.3.0-M1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.4.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.4.0-M1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.5.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.6.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.7.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.8.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.8.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.9.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.9.0-k1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/7.9.0-k2/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.0.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.1.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.1.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.10.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.11.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.12.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.6.1/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.7.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.9.0/Firebase.podspec.json Response: Timeout was reached
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/8.9.1/Firebase.podspec.json Response: Timeout was reached

Response: Timeout was reached

This indicates a network related error. The request doesn't seem to be reaching server and hence you might be getting this error. Try with another or a stable / fast network. See if you are behind a proxy wall / firewall which might be preventing to download the said file.
Also, check for similar errors on stackoverflow and see if any of the solutions mentioned helps.
Closing from here, as this isn't a plugin issue.


Choppy/Unnatural scroll when using wheelPropogration and touch pads

When you reach the bottom of a scrollable area, continuing to scroll down is laggy until your mouse leaves the perfect scrollbar container.
Example 1: https://jsfiddle.net/h0t189v5/
Example 2: https://jsfiddle.net/1zwk1e4m/
For some reason is seems worse when more content is on the screen.

@rohmann are you sure it's the bottom of the scrollable area that's causing that issue? I'm just wondering because I have this exact problem with all scrolling on Windows, but perfectly silky scrolling on OSX. I'm trying to figure out if it's a related issue or two separate ones with similar side effects.

I have the same issue on my mac trackpad. I think the cause is the shouldPreventDefault function in the mouse-wheel.js file. I tested it out and when both deltaX and deltaY are not 0 you return true, which means you will call stopPropagation and preventDefault. I think you should still check to see if you have reached the start/end of the container while scrolling, because the event should still be propagated in that case.

As @kennydp mentioned, it's the problem of shouldPreventDefault in mousewheel handler. The logic itself seems fine, but I think it's a bit rigid.

I noticed this too. Is it fixable?


Fix k10tools template

Update url to include .tar.gz
Include case for arm64

Signed-off-by: Han Verstraete<EMAIL_ADDRESS>
Description

Closes #632
Motivation and Context

[x] I have raised an issue to propose this change, which has been given a label of design/approved by a maintainer (required)

How Has This Been Tested?

Updated the unit tests and tested on x86_64-darwin
go run . get  k10tools

Output
Downloading: k10tools
2022/02/27 14:47:00 Looking up version for k10tools
2022/02/27 14:47:01 Found: 4.5.9
Downloading: https://github.com/kastenhq/external-tools/releases/download/4.5.9/k10tools_4.5.9_macOS_amd64.tar.gz
25.62 MiB / 25.62 MiB [----------------------------------------------------------------------------------------------------------------] 100.00%
/var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools_4.5.9_macOS_amd64.tar.gz written.
2022/02/27 14:47:16 Looking up version for k10tools
2022/02/27 14:47:17 Found: 4.5.9
/var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools k10tools
2022/02/27 14:47:17 extracted tarball into /var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T: 1 files, 0 dirs (659.169788ms)
2022/02/27 14:47:17 Extracted: /var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools
2022/02/27 14:47:17 Copying /var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools to /Users/welteki/.arkade/bin/k10tools

Tool written to: /Users/welteki/.arkade/bin/k10tools

# Add arkade binary directory to your PATH variable
export PATH=$PATH:$HOME/.arkade/bin/

# Test the binary:
/Users/welteki/.arkade/bin/k10tools

# Or install with:
sudo mv /Users/welteki/.arkade/bin/k10tools /usr/local/bin/

file /Users/welteki/.arkade/bin/k10tools
/Users/welteki/.arkade/bin/k10tools: Mach-O 64-bit executable x86_64

go run . get k10tools --arch arm64

Output
Downloading: k10tools
2022/02/27 14:49:51 Looking up version for k10tools
2022/02/27 14:49:52 Found: 4.5.9
Downloading: https://github.com/kastenhq/external-tools/releases/download/4.5.9/k10tools_4.5.9_macOS_arm64.tar.gz
26.13 MiB / 26.13 MiB [-----------------------------------------------------------------------------------------------------------------] 100.00%
/var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools_4.5.9_macOS_arm64.tar.gz written.
2022/02/27 14:50:06 Looking up version for k10tools
2022/02/27 14:50:07 Found: 4.5.9
/var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools k10tools
2022/02/27 14:50:07 extracted tarball into /var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T: 1 files, 0 dirs (646.430308ms)
2022/02/27 14:50:07 Extracted: /var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools
2022/02/27 14:50:07 Copying /var/folders/9v/tgcnwm6j5d35mm_gy478rrlr0000gn/T/k10tools to /Users/welteki/.arkade/bin/k10tools

Tool written to: /Users/welteki/.arkade/bin/k10tools

# Add arkade binary directory to your PATH variable
export PATH=$PATH:$HOME/.arkade/bin/

# Test the binary:
/Users/welteki/.arkade/bin/k10tools

# Or install with:
sudo mv /Users/welteki/.arkade/bin/k10tools /usr/local/bin/

file /Users/welteki/.arkade/bin/k10tools
/Users/welteki/.arkade/bin/k10tools: Mach-O 64-bit executable arm64

Are you a GitHub Sponsor (Yes/No?)

[x] Yes
[ ] No

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Documentation

[x] I have updated the list of tools in README.md if (required) with ./arkade get -o markdown
[ ] I have updated the list of apps in README.md if (required) with ./arkade install --help

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I've read the CONTRIBUTION guide
[x] I have signed-off my commits with git commit -s
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

[ ] I have tested this on arm, or have added code to prevent deployment

Thank you both :+1:
cc @MichaelCade


Added additional texts and changed button name.

Fixes #77

Merging, but need some testing to make sure intended behavior


std time handling SUX

crazymonkyyy reported this on 2023-12-18T22:24:49Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=24288
CC List

nick (@ntrel)

Description
theres more docs than I've ever written across 6 maybe 7 files

it took me an HOUR to write this line of code;

`int min=((Clock.currStdTime/10_000_000)/60)%(60*24);`

the unit hnsecs is made up, im still unsure if its correct, etc etc etc

I just wanted the current hour and minute, why is there so much code between me and the solution?

dlang-bot commented on 2023-12-21T14:53:49Z
@ntrel created dlang/phobos pull request #8867 "[std.datetime] Tweak docs" mentioning this issue:

- [std.datetime] Tweak docs

  Add links to package.d.
  Tweak formatting for SysTime, use PANEL.
  Use REF_SHORT after first reference.
  List TimeOfDay cast target.
  Move currTime link to See Also.
  Fix anchor for currTime - need `.` prefix before fully-qualified names.

  Part of Issue 24288.

https://github.com/dlang/phobos/pull/8867

crazymonkyyy commented on 2023-12-20T23:08:43Z
im pretty sure the intended way is
```d
int min=Clock.currTime.minute;
int hour=Clock.currTime.hour;
```
but to find that you need to read docs across 3 different pages, and good luck finding the words I was reading given that its all generated docs

and that api isn't great anyway

Its so much code, it needs someone who will delete 95% of the lines

dlang-bot commented on 2023-12-29T19:47:39Z
dlang/phobos pull request #8867 "[std.datetime] Tweak docs" was merged into master:

- 5e93d4f9c9f0a17fdf6f222c9ff8153b16aa01c1 by Nick Treleaven:
  [std.datetime] Tweak docs

  Add links to package.d.
  Tweak formatting for SysTime, use PANEL.
  Use REF_SHORT after first reference.
  List TimeOfDay cast target.
  Move currTime link to See Also.
  Fix anchor for currTime - need `.` prefix before fully-qualified names.

  Part of Issue 24288.

https://github.com/dlang/phobos/pull/8867


Create aim.txt

Requesting to add Africa Institute of Music (http://aim.ac.ug)

@ccmkorea Please provide us with:

the school street address, including city and country
an URL of a page on the official website where the school offers an IT-related long-term (>1 year) course

The school street address: Plot 2589, Block 269, Lubowa Wakiso District, Uganda
an URL of a page on the official website:
Actually, Our university is specialised on music, so far we don't offer an IT-related long-term course. But, now I'm learning python to initiate the project to help schools and health facilities in Africa, especially in Uganda. So, I already discussed with this things with Killvyane Cortese (Sales) as following:

Killvyane Cortese (Sales)
Aug 17, 2021, 12:01 GMT+2
Dear Michael,As an educational organisation, we can offer you a 50% discount on commercial licenses.Could you please send us the organisation details, such as legal name, billing address and for how many and which products you need an offer, so we can prepare a quote for it?
Kind regards,
Killvyane Cortese
Sales Support Specialist
=============
Aug 17, 2021, 1:53 PM (6 days ago)
Dear Killvyane,
First of all, thank you very much for your kindness.
I send you our school information.
Actually our school is missional university, so most staffs including me are volunteers. And we doesn’t have IT team. That means I need only one license DBGrid and PyCharm for studying purpose for myself.
As a missionary, I also have a plan to develop open source software to help the local schools and hospitals which doesn’t have abilities to establish their own systems. But I couldn’t start that project, because I have to study first. So, I decide to use your tools to study python and to handle database. If I started open source project, I apply with that project, but I don’t start yet. So I tried to use educational program.
Thank you.
Best regards,
Michael Lee
==============
Killvyane Cortese (Sales)
Aug 18, 2021, 11:55 GMT+2
Hi Michael,
Thank you for the information.
Since you need a license for studying purposes at the moment, we kindly ask you to manually apply for the renewal of your student license, through the button "Renew my Education Pack" on the dashboard of your JB Account.
Then, the team in charge will review the application and extend it for more one year, if everything meet the requirements.
Let me know if I can assist you with anything else.
Kind regards,
Killvyane Cortese
Sales Support Specialist

@ccmkorea Dear Michael!
Your school's students do not need PyCharm for their education, did I understand you correctly? You need PyCharm for studying, and therefore best way to get a free educational subscription is to apply at https://www.jetbrains.com/shop/eform/students with your official document. The document has to confirm that you are a teacher (or a student).
You can do it by clicking on OFFICIAL DOCUMENT tab, as shown at the screenshot below. You can use any email address there, any email address will be accepted.
As for the pull request: regrettably, I have to close this request without merging.


shift dropping

can't configure the shift drop options to switch to a different option. is this on purpose?

https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper


[Bug] reduce the SOL cost of deployment

Describe the bug
Currently it costs about 1.7 SOL/system/component
For any significant scale development this rapidly becomes a problem.
Expected behavior
We could merge some systems into a single program to make this issue smaller perharps?

Bundle of components could also be batched under a single program


No need for -main flag

os.Args can be used directly as main command.
The advantage of this that you can create a base image with:
ENTRYPOINT ["/bin/go-init", "-pre", "echo starting..."]

Then you can use CMD as usual in derived images:
CMD ["echo", "foo"]

Otherwise, I have to pass the main command as single string which looks weird in my opinion.

I think the -main flag is good for staying explicit. It makes the command more obvious to read.
Actually I think to enable the CMD like yours would make go-init less comprehensive. Like for now, the whole main command must be in one string.  To treat this would make go-init more obscure but not that much easier to use.

Another alternative is adding -- and interpreting all arguments after that as main command.
https://unix.stackexchange.com/questions/11376/what-does-double-dash-mean

Hm, that idea might actually work.

Hi,
I'm sorry, as mentioned in the Readme, I don't maintain this project anymore. Please feel free to fork!


Mongo 4.0 and docker deployment

Mongo recently release version 4.0.  Currently, when we deploy via Docker we ask for the mongo:latest docker image.  If you have an existing installation that was originally installed with a version of Mongo prior to 3.6, the HistomicsTK docker will fail to start because the Mongo docker fails.
Specifically, when you update a minor version of Mongo, it leaves the database in a previous compatibility mode (so if you started on Mongo 3.4, then upgrade to 3.6, the database says it is in 3.4 compatibility mode).  If you try to update again, it will fail unless you've manually specified that the current database can be compatible with all new features (by doing db.adminCommand({setFeatureCompatibilityVersion: "3.6"}), for instance.
Should we allow specifying the mongo version as part of deploy_docker.sh to work around this?  Should we try to automatically set the compatibility version (which would make it hard to downgrade if that is ever desired)?  Or something else?

Resolved via #527.


CRITICAL - not possible to login or register to pass certifications

Hi, i am really stuck here https://techprofile.microsoft.com/en-US/register and cant login with my existing account, neither register new. it always says, "You are already registered." regardless whether i try to login or register!

Me Too

Duplicate of #1122


add settler colonialism and imperialism warnings

adds the warnings:

Settler colonialism
Imperialism

Unsure if this should actually be merged prior to the translations update (this branch doesn't match production)

Closing this because this update should be made after the translation update


SQLite - How to add column?

Trying to add a column to an existing table by
ALTER TABLE streams ADD errors_total INTEGER DEFAULT 0
The result is only fake column in DBeaver interface 'Read-only: No corresponding table column'
http://joxi.net/v29W73LIZJGWxr
Is somewhere a special button for commit changes?

thanks for the bug report

cannot reproduce it anymore against 7.3.0


[build] Add support for ROS 2 Galactic Geochelone

https://discourse.ros.org/t/ros-2-galactic-geochelone-released/20559

Pushed to build-next as well:
33ad5b9b6..fc860bda3  build -> build-next


[Feature Request] Check spacing for variable format - "{{ name }}"

Feature request

Ansible and Ansible Lint details
Desired Behaviour
Currently, ansible-lint doesn't check for spacing format for ansible variables so for example it would not pick up on extra spacing " {{ name }}" or "{{ name }} "
Since ansible is moving toward forcing the "{{ name }}" convention for variable it would seem like to check for this.

Do you have any links pointing to a hard preference, rather than just convention? (If it's going to be enforced, I'd be more likely to include this as a rule)
Due to our internal coding standards, I do actually have a rule for spaces inside brackets, but not outside brackets - which seems much more difficult to check anyway (there could be a reason for a space between brackets and opening or closing quotes.

I was thinking it should be a soft check/warning type as you pointed out that there can be legitimate reason for the spacing or non-standard format, but if it is just a warning then you don't necessarily have to worry about the edge case as much since it would have achieved the purpose of warning the user.
At for best practices, it is currently listed in ANSIBLE YAML syntax that Ansible uses “{{ var }}” for variables so that seems pretty clear. http://docs.ansible.com/ansible/YAMLSyntax.html

ok, that's spaces between the brackets and the var.
My general recommendation is to use ansible-review with a custom rule.
I just don't have a great mechanism for sharing custom rules in a suitable way, because I expect that every org will want to pick and choose.

from ansiblelint import AnsibleLintRule
import re

class VariableHasSpacesRule(AnsibleLintRule):
    id = 'EXTRA0001'
    shortdesc = 'Variables should have spaces after {{ and before }}'
    description = 'Variables should be of the form {{ varname }}'
    tags = ['templating']

    bracket_regex = re.compile("{{[^ ]|[^ ]}}")

    def match(self, file, line):
        return self.bracket_regex.search(line)

Put that in a directory somewhere, and then point ansible-review's config at it (or just run ansible-lint with a -r argument pointing to that directory)

v3.5 will allow better configuration of rule sources.


First version of feature/progress bar added

Is it ready for merge?

yes Niels ... it is ... we were just waiting for final comments ..if any ..other wise its complete

Is it ready for merge?

We hope so, Niels.

So did you find out what the problem was?

So did you find out what the problem was?

Yes I did, as we got help from Dan and then I pushed it again today. Niels, you are going to give any  feedback or someone else??

If you don't have merge problems and the code looks ok, then I suggest we merge now.

If you don't have merge problems and the code looks ok, then I suggest we merge now.

Should I delete this feature branch now? :)

Yes, just delete it

Remember for future reference, that you should only make changes to the relevant parts on the branch


DOC: update description of "direc" parameter of "fmin_powell"

for a user reading the current documentation it appears one can simply pass an N-tuple as direc-parameter (N being the number of variables to be optimized).  This works mostly, but fails under the conditions mentioned in issue #3220
due to this block:  (direc1 is an N-tuple in this case, which cannot be assigned to direc[-1])
            if t < 0.0:
                fval, x, direc1 = _linesearch_powell(func, x, direc1,
                                                     tol=xtol*100)
                direc[bigind] = direc[-1]
                direc[-1] = direc1

The text suggested by @Void2258 is more reasonable to me.
Closes #3220

Thanks for picking this up @srtlg. I tidied up the title a bit and linked the issue to this PR.

@srtlg would you mind pushing a new commit addressing the review of @ilayn?

addressed the last few comments and rebased, all good now (pypy CI failure was unrelated). merging. thanks @srtlg and @ilayn


[Feature Request] Set Loglevel across multiple files

logzero version:
Python version: 3.6
Operating System: Windows and Linux

Description
I am trying to use logzero for a medium-scale project. However, I find it unnecessary that I have to manually change the loglevel for all the files when switching from debugging to runtime and vice-versa. It would be convenient if we could set the default loglevel in the main file (for instance) and all the other files would use the value set by the main file.

Exactly this. I checked out this module hoping that's the abstraction it offers over the logging module.

logzero.setup_default_logger() works.  Set your level according to your configuration in one place and then in other files you can just use "from logzero import logger" and use the logger instance.


Assault Army [PCSG90030]

App summary

App name: アサルトアーミーズ 体験版
App serial:  PCSG90030
App version: 1.00

Vita3K summary

Version: v0.1.6
Build number: 2889-0bc9ef9e
Commit hash: Vita3K/Vita3K@0bc9ef9ee7e695cb4cd4f2539ca9a981f77583ea
CPU backend: Dynarmic
GPU backend: both

Test environment summary

Tested by: User01
OS: Windows 10
CPU: AMD Ryzen 5 2600 Six-Core Processor
GPU: NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2
RAM: 8 GB

Issues

Seem to get stuck when trying to boot on stubbed impl then freezes being unresponsive
Screenshots

Log
vita3k.log
Recommended labels

Nothing

Vita3K summary

Version: v0.1.8
Build number: 3145
Commit hash: https://github.com/vita3k/vita3k/commit/70201583
CPU backend: Dynarmic

Test environment summary

Tested by: othmanead
OS: Windows 11
CPU: Intel i5-10300H
GPU: RTX 3060 mobile
RAM: 16 GB

Issue:
Game plays with no issues
Screenshots:

Log
vita3k.log
Recommended labels

Playable


"Could not find a version that matches", but acceptable version listed

Very similar to #1802 but there is a difference, I'm not using --pre. This issue is easily and consistently reproducible. I've tried on multiple systems.
Output from $ python -m pipenv.help:
$ python -m pipenv.help output
Pipenv version: '11.10.0'
Pipenv location: '/usr/local/lib/python3.6/dist-packages/pipenv'
Python location: '/usr/bin/python3.6'
Other Python installations in PATH:

2.7: /usr/bin/python2.7

2.7: /usr/bin/python2.7

3.5: /usr/bin/python3.5m

3.5: /usr/bin/python3.5

3.6: /usr/bin/python3.6m

3.6: /usr/bin/python3.6

2.7.12: /usr/bin/python

2.7.12: /usr/bin/python2

3.5.2: /usr/bin/python3

PEP 508 Information:
{'implementation_name': 'cpython',
 'implementation_version': '3.6.5',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.4.0-119-generic',
 'platform_system': 'Linux',
 'platform_version': '#143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018',
 'python_full_version': '3.6.5',
 'python_version': '3.6',
 'sys_platform': 'linux'}

System environment variables:

USER
LOGNAME
HOME
PATH
MAIL
SHELL
SSH_CLIENT
SSH_CONNECTION
SSH_TTY
TERM
DISPLAY
XDG_SESSION_ID
XDG_RUNTIME_DIR
LANG
LANGUAGE
SSH_AUTH_SOCK
SHLVL
PWD
OLDPWD
GOPATH
PYENV_ROOT
ANDROID_SDK
ANDROID_NDK
ROOT_DIR
TZ
PS1
ORIGINAL_PS1
RPS1
PYTHONSTARTUP
PIP_DISABLE_PIP_VERSION_CHECK
PIPENV_VENV_IN_PROJECT
SSH_AGENT_PID
LS_OPTIONS
GIT_MERGE_AUTOEDIT
WORKON_HOME
PROJECT_HOME
_VIRTUALENVWRAPPER_API
VIRTUALENVWRAPPER_SCRIPT
KEYTIMEOUT
LS_COLORS
CLICOLOR
LSCOLORS
EDITOR
HISTFILE
FZF_DEFAULT_COMMAND
FZF_DEFAULT_OPTS
_
PYTHONDONTWRITEBYTECODE
PIP_PYTHON_PATH
PYTHONUNBUFFERED

Pipenv–specific environment variables:

PIPENV_VENV_IN_PROJECT: true

Debug–specific environment variables:

PATH: /usr/local/bin:test///go/bin:test///bin:/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:~/bin:test///bin:test///.fzf/bin
SHELL: /bin/zsh
EDITOR: vim
LANG: en_US.UTF-8
PWD: test

Contents of Pipfile ('test///workspace/test/Pipfile'):
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
eth-account = "*"

[dev-packages]

[requires]
python_version = "3.6"

Expected result
An environment with the package and dependencies installed
Actual result
Consistent warnings about not being able to find matching versions while valid versions are available.
Steps to replicate
# rm -rf ~/.cache Pipfile* .venv
# pipenv install eth-account
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches eth-keys<0.3.0,>=0.2.0b3
Tried: 0.1.0b1, 0.1.0b1, 0.1.0b2, 0.1.0b2, 0.1.0b3, 0.1.0b3, 0.1.0b4, 0.1.0b4, 0.2.0b1, 0.2.0b1, 0.2.0b2, 0.2.0b2, 0.2.0b3, 0.2.0b3
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches eth-keys<0.3.0,>=0.2.0b3
Tried: 0.1.0b1, 0.1.0b1, 0.1.0b2, 0.1.0b2, 0.1.0b3, 0.1.0b3, 0.1.0b4, 0.1.0b4, 0.2.0b1, 0.2.0b1, 0.2.0b2, 0.2.0b2, 0.2.0b3, 0.2.0b3

Actual output (1500 lines): install.log

I've done some automated testing and it appears that this broke after 10.0.0, for the time being I'll just run the old version to work around this issue

I'm not using --pre

Could not find a version that matches eth-keys<0.3.0,>=0.2.0b3
Tried: 0.1.0b1, 0.1.0b1, 0.1.0b2, 0.1.0b2, 0.1.0b3, 0.1.0b3, 0.1.0b4, 0.1.0b4, 0.2.0b1, 0.2.0b1, 0.2.0b2, 0.2.0b2, 0.2.0b3, 0.2.0b3

So the valid versions that match this specifier are: 0.2.0b3
That's it.
According to pep 440 this (and anything that has a 'b' or an 'a' or whatever) is a 'prerelease'.  So I'll go back to what I quoted before:

I'm not using --pre

Exactly.  You're not using --pre.  So pipenv will never assume that it's ok to install prereleases.  Use --pre if you want to install prereleases.

That makes sense but in that case the warning should be different and specify that it's not considering the pre-releases.
@techalchemy Should I create a pull request that adds an extra line about the pre-releases? Something like this perhaps:
Could not find a version that matches eth-keys<0.3.0,>=0.2.0b3
Tried: 0.1.0, 0.1.1
Skipped pre-releases: 0.1.0b1, 0.1.0b1

@WoLpH The suggested change makes sense to me. Go ahead.

I already merged a change that handles this.
https://github.com/pypa/pipenv/pull/2021/files

Even with that fix I still think the current message is incorrect. It says "Tried: ..." when it actually doesn't even consider them.
I for one completely forgot about the b meaning pre-release and I'm probably not the only one.

@WoLpH yes the current message is still incorrect, because it isn't released yet. I don't think we need to overcomplicate this messaging too much since if it didn't install anything, technically it didn't try anything.  The fact of the matter is NOTHING matched your version specifiers, so literally everything was skipped including the prereleases.

I understand how the other fix might help a bit but I still think you'll get issues similar to this one because it's unclear why it's skipping them when they appear perfectly valid options.
Looking at the code I think the change could be fairly simple: https://github.com/pypa/pipenv/blob/2dbb8bc1febda53b0a39130bd80af6627c0c2365/pipenv/patched/piptools/exceptions.py#L11-L23

There is a version evaluator that will tell you if it's a pre-release.  I'd recommend PR'ing it up to pip-tools and then we can have @vphilippon review it there.


Release version 1.7.1

This is a minor release on the gtk2 branch, so as far as I can tell there aren't any other changes needed? The 1.7.1 package has already been published to the pinta stable-builds PPA for all the recent Ubuntu versions including focal

Yes, since the 1.7 releases just repackage the PPA then changing the snaps own metadata to be consistent is all there is to it.
Since the pinta-james-carroll package still has a significant amount of users, I'll temporary re-enable downloads so that the remaining ~8000 people will get the upgrade too, but I probably defer this until tomorrow because I need to set up my dev environment again and push to that one seperately. 1.7.1 for pinta though should be available within the hour.

Thanks!


(WIP) SGv2: use QueryBuilder for "getAllRows()"

What this PR does:
Minor change to use property QueryBuilder for constructing query for "getAllRows()"
Which issue(s) this PR fixes:
No issue filed
Checklist

[x] Changes manually tested -- passes same integration tests as before.
[ ] Automated Tests added/updated
[ ] Documentation added/updated

Quick note: found out that this change DOES NOT actually work -- I get a failure due to missing table because Keyspace instance Schema creates is "empty", so attempts to get Table fails. So I'd need to create sub-class there as well.
Not sure this is the road to take, but will investigate a little bit more before giving up.

Came to conclusion that this will not work by mocking/stubbing; closing PR.


Upload frontend strings to crowdin

Purpose
Generate a POT file from our strings and upload strings to our SaaS translation manager.
Proposal

[x] tidy up our folder structure
[x] use react-intl-po to generate a standard POT from our JSON files with message descriptors
[x] write a small node script to handle string uploading
[x] add a Circle CI job to upload strings when running on master

🚫 install & configure the Crowdin CLI tool (abandoned because it introduced a dependency to java in the project and that's not something we're ready for)

This PR is now ready for review.
I did not handle backend strings yet as I'm not sure of the right way to do it: in a regular project I'd need to call manage.py but here it feels wrong to make our build dependent on sandbox stuff.
What do you think?

@mbenadda I just pushed a POC of how it could work on the backend. Read the commit message for design decisions.
TODO: install gettext on Alpine

I think this PR is ready to be reviewed/merged. Thanks for your help @jmaupetit @sampaccoud 👍


Update add-module.md

cd \src\app would attempt to take you to \src\app. By changing to .\src\app it goes to the src\app subdir of where you are. Assuming you just created the new tool extension, you would be in the root of the tool and .\src\app would be appropriate.

@kwygant : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Before we merge this, please make the suggestion @illfated proposed.

@eross-msft : Thanks for your contribution! The author(s) have been notified to review your proposed change.


fedekunze/1607 tally endpoint

Closes #1607
Description:

❤ Thank you!

[x] Added entries in CHANGELOG.md with issue # and GitHub username
[ ] Reviewed Files changed in the github PR explorer

would be helpful to leave a note about why something is blocked. @faboweb @fedekunze


vscode Jupyter notebook not working properly

•VSCode Version 1.60.0
• OS Version Windows 10
• Extension Installed Python, Pylance, Jupyter Notebook
I run one line of code in code cell then it's suppose to pop up second code cell for another code but it's not popping out automatically I have do manually by clicking on "+code" please give solution for that thank you.

If you press shift+enter it will insert a new cell, like Jupyter does. If you just click the button, it will not do that.


Doesn't work in Markdown code block

Hello,
Is there a way to activate linting in a Markdown code block globally without adding a comment to activate linting?
Thanks!

Yes, It's correct.
Because there in codeblock are source code. AutoCorrect lint them by there lang, for example:
// lang: js
const hello = "Hello你好"

This will use lint by JavaScript.


HSTS needs subdomains option

Strict Transport Security is only respected on a per-domain basis if you don't add the includeSubDomains parameter. This should be enabled (or at least, configurable), because without it, cookies can be used on subdomains to attack the primary domain.
See pages 4 and 5 of this paper for more info:
http://w2spconf.com/2011/papers/session-integrity.pdf

Fixed with merge of linked pull request.


whois.query not working getting error (FileNotFoundError: [Errno 2] No such file or directory: 'whois')

Using Ubuntu 20.04
I got the above error when ever I run the code.
import whois
domain = whois.query('google.com')
print(domain)
Code is above.
I have installed whois using
pip install whois
Here is the full error
Traceback (most recent call last):
File "test.py", line 2, in
domain = whois.query('google.com')
File "/home/qasid/Python/venv/lib/python3.8/site-packages/whois/init.py", line 206, in query
q = do_query(
File "/home/qasid/Python/venv/lib/python3.8/site-packages/whois/_1_query.py", line 62, in do_query
_do_whois_query(
File "/home/qasid/Python/venv/lib/python3.8/site-packages/whois/_1_query.py", line 119, in _do_whois_query
p = subprocess.Popen(
File "/usr/lib/python3.8/subprocess.py", line 858, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'whois'

Most likely whois is not installed as it is not a mandatiry requirement
fir the os itself.
Please install whois cli according to e.g.
https://devmanuals.net/install/ubuntu/ubuntu-20-04-focal-fossa/installing-whois-on-ubuntu20-04.html
On Thu, Oct 6, 2022, 09:32 qasidali1 @.***> wrote:

Using Ubuntu 20.04
I got the above error when ever I run the code.
import whois domain = whois.query('google.com http://google.com')
print(domain)
Code is above.
I have installed whois using
pip install whois
Here is the full error
Traceback (most recent call last):
File "test.py", line 2, in
domain = whois.query('google.com')
File "/home/qasid/Python/venv/lib/python3.8/site-packages/whois/init.py",
line 206, in query
q = do_query(
File
"/home/qasid/Python/venv/lib/python3.8/site-packages/whois/_1_query.py",
line 62, in do_query
_do_whois_query(
File
"/home/qasid/Python/venv/lib/python3.8/site-packages/whois/_1_query.py",
line 119, in _do_whois_query
p = subprocess.Popen(
File "/usr/lib/python3.8/subprocess.py", line 858, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'whois'
—
Reply to this email directly, view it on GitHub
https://github.com/DannyCork/python-whois/issues/224, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACU73CWNBSHW63IEDMDUE53WBZ6B5ANCNFSM6AAAAAAQ6JXFHY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


replace custom build protocol with pubusb and create classes for diff…

@brokenprogrammer
another small improvement, please merge #13 first though

LGTM! I can't merge anything in this repo so I'm just reviewing.

Thanks, we will have to fix that - did not know

I rebased it on main and added back a missing log, merging


Upgrade to v0.9.30

As described in https://github.com/paritytech/trappist/issues/61, we should upgrade to this version in order to not running behind with breaking changes.

PR submitted at #33 in case you want to link it


What's the '@' character used throughout the examples?

I started reading up on MSBuild and I'm beginning to see examples that use the '@' character, like in the one below. What does this character do? How is is different from '$'?
<CSC Sources = "@(CSFile)"
OutputAssembly = "$(MSBuildProjectName).exe"/>
</CSC>
Later edit: I eventually found all special characters explained here: https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-special-characters?view=vs-2019.
I.m.o. it would help mentioning "special characters" with a link to this page early on in the MSBuild documentation.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c46b6520-8c1c-7729-9567-555b448fef7d
Version Independent ID: ecba013d-aa2c-7c11-c8a0-71e6e7706c2b
Content: How to: Reference the Name or Location of the Project File - Visual Studio
Content Source: docs/msbuild/how-to-reference-the-name-or-location-of-the-project-file.md
Product: visual-studio-windows
Technology: msbuild
GitHub Login: @Mikejo5000
Microsoft Alias: mikejo

I think a link from this topic makes sense. We can plan to add that.

Updating doc.

Thank you!


refactor/filters

All filters have been refactored into a factory pattern, which has been tested.
All tests have been updated, refactored, and improved.
Closes #99

Merged before realizing to approve.


(Bug) #1885 The blue line is displayed on the right side of the mobile email verification page

Description
Change the text on EmailConfirmation screen. Made small refactor for related components.
About #1885
How Has This Been Tested?
Try to edit email in EditProfile screen - press save button - press verify button - see updated text at the top.
Blue line shouldn't be shown on the right side of the email/phone confirmation screen.
Checklist:

[x] PR title matches follow: (Feature|Bug|Chore) Task Name
[x] My code follows the style guidelines of this project
[x] I have followed all the instructions described in the initial task (check Definitions of Done)
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have added reference to a related issue in the repository
[x] I have added a detailed description of the changes proposed in the pull request. I am as descriptive as possible, assisting reviewers as much as possible.
[x] I have added screenshots related to my pull request (for frontend tasks)
[ ] I have pasted a gif showing the feature.
[x] @mentions of the person or team responsible for reviewing proposed changes

Screenshot:

@yaroslav-fedyshyn-nordwhale is this ready?

@yaroslav-fedyshyn-nordwhale is this ready?

@sirpy you can merge this PR. I made some small refactor here and changed the text that Liav ask. But the main issue is not solved I don't know where does this issue comes and what to do with it.


Additional packages for UW NASA Hackweek 2024

In prep for https://2024.hackweek.io using CryoCloud we have requests for the following latest package releases in the default environment. This is a tracking issue, might add some more. We can open up separate PRs for each cc @jomey

[x] snowexsql
[x] lonboard
[x] sliderule
[x] icepyx
[x] earthaccess
[x] h5coro

CC: @micah-prime
To coordinate a snowexsql release before the hackweek

Linking this issue for getting snowexsql on conda-forge https://github.com/SnowEx/snowexsql/issues/93

Adding a request for https://pixi.sh/latest/
(https://github.com/ICESAT-2HackWeek/website-2024/pull/13)

Adding a request for utm and itables

@scottyhq, do you reckon it's ok to add Pytorch (CPU build) into hub-image so that the Hackweek participants can run the notebook at https://github.com/ICESAT-2HackWeek/website-2024/pull/17 without having to install it using a conda install -y pytorch code cell? I'm not sure if we want 10 or 20+ people launching the GPU machine with the Pangeo pytorch-notebook image for an hour-long tutorial.

do you reckon it's ok to add Pytorch (CPU build)

Fine with me! At some point it'll probably be necessary to clarify (maybe here https://book.cryointhecloud.com/content/hub_best_practices.html) what is in the default environment (minimal + bring your own environment) or everything in the kitchen sink....

Ok, started the PR at #125 to add more packages in. Do we still need pixi given that https://github.com/ICESAT-2HackWeek/website-2024/pull/13 was closed?

PyTorch is kinda huge though isn't it? We've been keeping the ML stuff separate to streamline the time it takes to open the image. So I'm a little more inclined to keep that in the separate image.

Adding a request for hydroeval

PyTorch is kinda huge though isn't it? We've been keeping the ML stuff, especially the more advanced libraries that fewer people use, separate to streamline the time it takes to load the image. So I'm a little more inclined to keep that in the separate image. Our main image should be things that a large swath of our users will be able to use, but kept as small as possible otherwise. Then people can build permanent kernels or, soon, be able to build their own images automatically from an environment/requirements and use those instead.

The CPU build of Pytorch won't pull in any of the CUDA libraries (which uses up a lot of disk space), but the package (pytorch, libtorch, etc) will still be 100+MB, so I can leave that out of the default image. I can point the Hackweek participants to use the Pangeo pytorch-notebook instead via the 'Bring your own image' option (instead of using the GPU node), will just be a bit more setup at the start but hopefully ok.


 With Python WSGI, the http requests are converted into an environment dictionary, where besides prepending HTTP_ to each request header WSGI also changes all dashes to underscores. That means if we use individual headers with a custom prefix to propagate user metadata, a WSGI server will receive those custom headers with underscores and won't have any way to reconstruct the original name.
Do we want to restrict the metadata keys to be CGI-env compatible strings?

Or maybe it's the other way around - we should prohibit underscores, since they are not always passed through middleware.
http://stackoverflow.com/questions/22856136/why-underscores-are-forbidden-in-http-header-names
I've seen instrumentation code that takes WSGI environment and does replace('_', '-') to expose "normal" http headers to the client code.

(just wanted to mention that I'm planning to make this change in the near future -- been bogged down with other stupid stuff!)

I like the idea of requiring all keys to match the regex (?i:[a-z][-a-z]*)... We can always be more permissive!

#14

yeah, like favoring http header interop


Angular 6 support?

When can we expect Angular 6 support?

Hi @Thenis,
You can use our most recent wrapper version: https://stackblitz.com/edit/angular-rbarl4


Improve unit testing to catch unwanted behavior changes

Problem
Except for the TextField, most of the other UI component's tests simply use XCExpectation to check that the Introspect closure is being called without any assertion on the content of the closure parameter. Malicious code such as replacing an existing selector search with a dummy class like UIColorWell() does not fail the test.
Solution
This pull request improved unit tests for several different UI components, referencing the TextField's implementation. I have tested the improved tests, and they are able to catch unwanted behavior changes. I tried my best to minimize any unnecessary code changes, and follow existing patterns and conventions.

Looks great so far! Thanks a lot for contributing ✨

@SplittyDev Hi there, sorry about the long delay. But I plan to finish this pull request which I started. All the unit tests are passing on my machine, yet they fail on the CI/CD workflow. Can you take a look?

@jevonmao no worries! We'll take a look as soon as possible :) Tests on the CI have been flaky in the past, hopefully it's not too hard to fix this time 😁

This is the failing test. No idea what's going on there. I'll check it out locally.

Yes please do that, because when I run it locally it passed.

Hi @jevonmao, I tested this locally under different configuration and I can't find anything wrong with it. Could you remove the Gemfile.lock changes and push again? For some reason GitHub refuses to re-run the workflow, so you'll have to push from your fork.

@SplittyDev

Could you remove the Gemfile.lock changes and push again?

You know when the CI previously failed, I saw something related to outdated dependencies in the error message. So I did an update command. That might be the reason why CI is failing but I think it's unlikely because it failed even before my change.
I reverted the changes. Also thank you for looking into this issue, I appreciate you guys looking into this with me.

This looks like a very nice improvement. @jevonmao I know this is quite old but would you be willing to rebase your branch and update your PR and I'll get it merged asap?
For context, I've gotten rid of Gemfile.lock (#185) and overall strengthened our CI to run tests on iOS 14-16 so these changes would be very welcomed.

@davdroman Yes, thanks for reaching out, that would be great. I will see if I can merge master into this branch.

Obsoleted by the new SwiftUIIntrospect module tests.


Optimizing for production usecase

My main concern is webpack server still spins up in production mode.
So, it would be nice to just do the build step once and then run express server.
Also, exposing serverside arch part as middleware would be a big plus.

Nevermind, my dotenv was missing.


Child categories not displaying in admin menu

Since updating to the latest version of Telescope, child categories (categories with a parent category selected) no longer display in Settings > Categories.
If a new category is created with a parent category, the category is created but not visible on this page. All changes must be made directly from the database.

Hey, @FalseHen! Telescope has changed a lot in the past months, and there is a new React-based version, Telescope Nova (intro video). If you know Crater, it runs on the latest version.
The Legacy version is no longer supported. I'm closing this issue.
I invite you to check the new version, it's awesome!
Happy hacking! 🚀
Ps: by the way, don't hesitate to join the Slack to ask any question, you are welcome! 👍


F-Droid

FYI, I've created a request for your new theme here:
https://gitlab.com/fdroid/rfp/issues/791
Thanks for your work!

Great, thank you!


Add postgresql database support

Description

Related Issue

Motivation and Context

@clcc2019 Please rebase main branch.

@clcc2019 Please fix lint.

@clcc2019 Are you still working on this? This would be useful to me too, and it seems there is only some lint errors to fix.

Fix lint.

Can I skip the bitnami charts package check?

Fix lint.

Can I skip the bitnami charts package check?

I don't think it's good.

@clcc2019 Close PR due to no progress for a long time

@clcc2019 this PR is a great idea. I am really willing to take over and finish your work.


Set default value for EnumerateGenerator.count

I’m not entirely convinced this was an improvement.  Now initialization logic is scattered.  Why do we want to make this change?

We generally use inline initializers where it makes sense.  It does make the initialization logic more scattered, I agree.  Are you against using inline initializers in general or is this case special?

I don’t have a general principle against them, but this particular case looks like a glaring example of an arbitrary change that doesn’t improve readability—if anything, it hurts readability—and creates needles VCS churn.  I would generally prefer to use inline initializers where it helps readability, e.g.


azure-cognitiveservices-speech==1.32.1 just not work

Describe the bug
just can't use sdk for version.  azure-cognitiveservices-speech==1.32.1
following https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/how-to-speech-synthesis?tabs=browserjs%2Cterminal&pivots=programming-language-python
To Reproduce
Steps to reproduce the behavior:

docker in oxs , python3.8
pip install azure-cognitiveservices-speech
run

# -*- coding=utf-8 -*-
#!/usr/bin/env python

import os
import azure.cognitiveservices.speech as speechsdk

voice_list = '''
zh-CN-YunjianNeural
zh-CN-XiaoxuanNeural
zh-CN-XiaohanNeural
zh-CN-YunzeNeural
'''.split('\n')

voice_list = list(filter(
    lambda x: x != '',
    list(map(lambda y: y.strip(), voice_list))
))

# This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)

# The language of the voice that speaks.
speech_config.speech_synthesis_voice_name='en-US-JennyNeural'

speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)

# Get text from the console and synthesize to the default speaker.
print("Enter some text that you want to speak >")
text = input()

speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()

if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
    print("Speech synthesized for text [{}]".format(text))
elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
    cancellation_details = speech_synthesis_result.cancellation_details
    print("Speech synthesis canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        if cancellation_details.error_details:
            print("Error details: {}".format(cancellation_details.error_details))
            print("Did you set the speech resource key and region values?")

Expected behavior
A clear and concise description of what you expected to happen.
Version of the Cognitive Services Speech SDK
Which version of the SDK are you using.
Platform, Operating System, and Programming Language

OS: osx. 2.4 GHz 4 cores Intel Core i5
Hardware -  x86_64 in docker (ubuntu) on osx.  (MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports))
Programming language: Python3.8

Additional context

Error messages, stack trace, ...
Any additional information.

admin@fcc6395c0a87:~/video-maker$ /usr/local/bin/python /home/admin/video-maker/src/azure_speech.py
Traceback (most recent call last):
  File "/home/admin/video-maker/src/azure_speech.py", line 20, in <module>
    speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
  File "/home/admin/.local/lib/python3.8/site-packages/azure/cognitiveservices/speech/speech.py", line 71, in __init__
    _call_hr_fn(fn=_sdk_lib.speech_config_from_subscription, *[ctypes.byref(handle), c_subscription, c_region])
  File "/home/admin/.local/lib/python3.8/site-packages/azure/cognitiveservices/speech/interop.py", line 62, in _call_hr_fn
    _raise_if_failed(hr)
  File "/home/admin/.local/lib/python3.8/site-packages/azure/cognitiveservices/speech/interop.py", line 55, in _raise_if_failed
    __try_get_error(_spx_handle(hr))
  File "/home/admin/.local/lib/python3.8/site-packages/azure/cognitiveservices/speech/interop.py", line 50, in __try_get_error
    raise RuntimeError(message)
RuntimeError: Exception with error code:
[CALL STACK BEGIN]

/home/admin/.local/lib/python3.8/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x1e28f1) [0x7efeffb9c8f1]
/home/admin/.local/lib/python3.8/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x165259) [0x7efeffb1f259]
/home/admin/.local/lib/python3.8/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(speech_config_from_subscription_internal+0xe4) [0x7efeffa938a0]
/usr/lib/x86_64-linux-gnu/libffi.so.7(+0x6d1d) [0x7eff0062dd1d]
/usr/lib/x86_64-linux-gnu/libffi.so.7(+0x6289) [0x7eff0062d289]
/usr/local/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(_ctypes_callproc+0x777) [0x7eff004d6f27]
/usr/local/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so(+0x8fb4) [0x7eff004cbfb4]
/usr/local/lib/libpython3.8.so.1.0(PyObject_Call+0x8e) [0x7eff00c8dd6e]
/usr/local/lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x210a) [0x7eff00cea94a]
/usr/local/lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8a2) [0x7eff00ce81d2]
/usr/local/lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x18e) [0x7eff00c8cafe]
/usr/local/lib/libpython3.8.so.1.0(PyVectorcall_Call+0x5d) [0x7eff00c8da9d]
/usr/local/lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x210a) [0x7eff00cea94a]
/usr/local/lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x2f9) [0x7eff00ce7c29]
/usr/local/lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x18e) [0x7eff00c8cafe]
/usr/local/lib/libpython3.8.so.1.0(_PyObject_FastCallDict+0x21d) [0x7eff00c8bf2d]
/usr/local/lib/libpython3.8.so.1.0(_PyObject_Call_Prepend+0x68) [0x7eff00c8d4f8]
[CALL STACK END]

Exception with an error code: 0x5 (SPXERR_INVALID_ARG)

any response?

Did you set the environment variables "SPEECH_KEY" and "SPEECH_REGION" with your keys and region values?
You commented that you are using an ubuntu docker image on OSx, but most docker containers are not configured to have Speaker and Microphone input.
Can you try modifying the AudioOutputConfig to use a file on disk, rather than the "default speaker".
Or just use this premade sample, speech_synthesis_to_wave_file()

Hi, I have set the env value like this:

@BrianMouncer got same error in java sdk

seems got same error in sample project, I checked  SPEECH_KEY and SPEECH_REGION in env before run.

Hi @albin3 - from the screenshots, it looks like you are setting the region incorrectly, can you try it with just the region info? E.g. "eastasia"
https://learn.microsoft.com/azure/ai-services/speech-service/regions

@brandom-msft got work, thx
issue closing


Cannot use component with css

Version
4.0.12
Reproduction link
codesandbox.io
Steps to reproduce
you can find a codesandbox:
https://codesandbox.io/s/festive-fast-6somo?file=/src/components/about.vue
and the issue reported to vue-tel-input who have issue with vue-router :
https://github.com/iamstevendao/vue-tel-input/issues/310
Edit ( copy from vue-tel-input issue):
everything works fine until you uncomment vue-tel-input.
Then the compilation get broken and the only way to make it work is to comment and reload the whole codesandbox.
see below:

In my project local I use vite and I get the same kind of weird error.
I need to clear the vite cache to be able to reload after commenting.

What is expected?
It should work like when not router used
What is actually happening?
it break the compilation step

The codesandbox works... In any case, please read and follow https://new-issue.vuejs.org/?repo=vuejs/vue-router-next#why-repro when reporting a bug. Open a new issue without vue-tel-input if you manage to reproduce it

@posva yes the codesandbox work until you uncomment the code in about component, then nothing work anymore.
the issue happen only when combining vue-tel-input module, so I cannot remove it, it's the bare minimal, I have read and follow that.
I edited to let you see better the error, I'm sorry I didn't think to copy the content of the original issue, made in vue-tel-input.
I hope that more clear

@posva it took me 3 hours to understand and find a way to reproduce it in codesandbox with webpack.
In my stack : vue 3 with vite and setup script in ts, until now it's impossible to run it in codesandbox.
I did a huge work to allow you to test it, more than just a text or screenshot, and you close direct the issue.
I understand you receive a lot of noise, and a lot of people just ask the wrong things, like me it seems.
But closing the issue straight do look rude, even you say "please read and follow the rules".
I do think a bit more of empathy will help all of us collaborate better.
Like the last thread of @gaearon where he explains why he value a lot people who took time to make him save it.
I don't see the world by your eyes, but if you take time to share what you live, i will, like many other people who would love to help better.
We gonna improve and make your life easier.
For most people interacting with a big Open-source project means been slap in the face to learn, no-one don't need that.
that the way to make the tech more inclusive, in my opinion.

I do think a bit more of empathy will help all of us collaborate better.

I really think you should read yourself and realize the weight you are putting on a maintainer's shoulders when you say something like it took me 3 hours to understand (...)... does it help the maintainer understand the issue? It's more like trying to make them feel guilty for wasting your time. I do not appreciate that, even less when you ask for empathy.

even you say "please read and follow the rules".

I send you to https://new-issue.vuejs.org/?repo=vuejs/vue-router-next#why-repro because minimal means no external libraries and we repeat so much we literally put up a page for it.

more than just a text or screenshot, and you close direct the issue.