Jdk9 Early Access Build 99 issue

Installed Java 9 Early Access Build 99, trying to build JUnit and identified issue with maven-javadoc-plugin 2.10.3. Will raise with maven-jar-plugin and then submit pull request with updates so TestNG builds with Java 9.

Thanks!

Gave a try to build plexus-archiver; many tests fail on jdk9
Tests run: 120, Failures: 0, Errors: 33, Skipped: 0

The one that's surfacing in our build is where it's assumed version would always be like 1.6, 1.7, 1.8, 1.9 but system property java.version=9-ea (boom boom!).
private static final boolean isJava7OrLower = Integer.parseInt(System.getProperty("java.version").split("\\.")[1]) <= 7;

Considering this we'll have to wait for plexus-archiver to migrate to jdk9 or use something else.

All the 33 tests were failing because of this single line.
Not a prover fix just hack.
Tests run: 120, Failures: 0, Errors: 0, Skipped: 0

diff --git a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java
index 574d67e..63fc4ab 100755
--- a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java
+++ b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java
@@ -113,7 +113,19 @@
         * Java versions from 8 and up round timestamp up.
         * s
      */
-    private static final boolean isJava7OrLower = Integer.parseInt(System.getProperty("java.version").split("\\.")[1]) <= 7;
+    private static boolean isJava7OrLower() {
+      final String javaVersion = System.getProperty("java.version");
+      final String[] splitVersion = javaVersion.split("\\.");
+      int jdkVersion;
+      if (splitVersion.length > 1) {
+        jdkVersion = Integer.parseInt(splitVersion[1]);
+      } else {
+        jdkVersion = Integer.parseInt(System.getProperty("java.version").split("-")[0]);
+      }
+      return jdkVersion <= 7;
+    }
+    private static final boolean isJava7OrLower = isJava7OrLower();
+

        // Renamed version of original file, if it exists
     private File renamedFile = null;

Doesn't surprise me, let's not waste too much time on this until things
stabilize on the JDK 9 front.
Thanks for looking!
--
Cédric
On Sat, Jan 2, 2016 at 11:08 PM, Nitin Verma<EMAIL_ADDRESS>wrote:

Gave a try to build plexus-archiver; many tests fail on jdk9
Tests run: 120, Failures: 0, Errors: 33, Skipped: 0
The one that's surfacing in our build is where it's assumed version would
always be like 1.6, 1.7, 1.8, 1.9 but system property java.version=9-ea
(boom boom!).
private static final boolean isJava7OrLower = Integer.parseInt(System.getProperty("java.version").split("\.")[1]) <= 7;
Considering this we'll have to wait for plexus-archiver to migrate to jdk9
or use something else.
—
Reply to this email directly or view it on GitHub
https://github.com/cbeust/testng/issues/938#issuecomment-168469526.

Looks reasonable, mind sending a PR?
--
Cédric
On Sat, Jan 2, 2016 at 11:14 PM, Nitin Verma<EMAIL_ADDRESS>wrote:

All the 33 tests were failing because of this single line.
Not a prover fix just hack.
Tests run: 120, Failures: 0, Errors: 0, Skipped: 0
diff --git a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java
index 574d67e..63fc4ab 100755--- a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java+++ b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java@@ -113,7 +113,19 @@
* Java versions from 8 and up round timestamp up.
* s
*/-    private static final boolean isJava7OrLower = Integer.parseInt(System.getProperty("java.version").split("\.")[1]) <= 7;+    private static boolean isJava7OrLower() {+      final String javaVersion = System.getProperty("java.version");+      final String[] splitVersion = javaVersion.split("\.");+      int jdkVersion;+      if (splitVersion.length > 1) {+        jdkVersion = Integer.parseInt(splitVersion[1]);+      } else {+        jdkVersion = Integer.parseInt(System.getProperty("java.version").split("-")[0]);+      }+      return jdkVersion <= 7;+    }+    private static final boolean isJava7OrLower = isJava7OrLower();+
    // Renamed version of original file, if it exists
 private File renamedFile = null;

—
Reply to this email directly or view it on GitHub
https://github.com/cbeust/testng/issues/938#issuecomment-168471417.

It worked with b91 and gradle (the current supported build tool for TestNG): https://adopt-openjdk.ci.cloudbees.com/job/TestNG/
This Jenkins is down for the moment, but it should be updated to the latest jdk9 build for sure :)
Ping @neomatrix369

@juherr
Did you do differently? following is my output
github/nitinverma/testng master $ ./gradlew --stacktrace clean

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '9-ea'.

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
java.lang.IllegalArgumentException: Could not determine java version from '9-ea'.
	at org.gradle.api.JavaVersion.toVersion(JavaVersion.java:63)
	at org.gradle.api.JavaVersion.current(JavaVersion.java:72)
	at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32)
	at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
	at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
	at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
	at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
	at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
	at org.gradle.launcher.Main.doAction(Main.java:33)
	at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:520)
	at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
	at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
	at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:520)
	at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
	at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
	at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

@cbeust
Sure, I can send a PR. After few validations.

The reason I raise this issue was to highlight the issue so if anyone checks open issues with TestNG they are aware it's a know issue with a dependency of TestNG.
Could it please be reopened.
Regarding the error with gradle, that is the exact same error I get with maven.
Regarding it works for b91 great, I'm using b99.
I've email the OpenJDK mailing lists and get some answers, it looks like the structure will change in Java 9 and also "1." will be dropped.
Regarding Java 9 isn't stable, yep I agree but technically it should be feature complete in a few days now. I want to make Java 9 impact on the community better than that of Java 8. Lots of people I know say only use Java 8 update 40 or later. I would Java 9 to be a much lower update, ideally single digit.

JEP 223: New Version-String Scheme
https://bugs.openjdk.java.net/browse/JDK-8061493
So Oracle/OpenJDK would have 9* format vs 1.9* format now onwards.
             Existing                Proposed
Release Type    long           short    long           short
------------    --------------------    --------------------
Early Access    1.9.0-ea-b19    9-ea    9-ea+19        9-ea
Major           1.9.0-b100      9       9+100          9
Security #1     1.9.0_5-b20     9u5     9.0.1+20       9.0.1
Security #2     1.9.0_11-b12    9u11    9.0.2+12       9.0.2
Minor #1        1.9.0_20-b62    9u20    9.1.2+62       9.1.2
Security #3     1.9.0_25-b15    9u25    9.1.3+15       9.1.3
Security #4     1.9.0_31-b08    9u31    9.1.4+8        9.1.4
Minor #2        1.9.0_40-b45    9u40    9.2.4+45       9.2.4

@nhojpatrick +1

The reason I raise this issue was to highlight the issue so if anyone checks open issues with TestNG >>> they are aware it's a know issue with a dependency of TestNG.

The issue is just noise in the backlog and it's still available if someone looks for it.
The problem is we are not able to fix it (or maybe I missed something?) and we didn't plan to make too much efforts on ea releases.

Okay, but doesn't closing the default indicate the issue with dealt with...I raised a similar issue with JUnit which just thanked me for checking and

Could you link the openjdk issue or your message on its mailing list?

http://openjdk.java.net/jeps/223 is the link to the JDK Enhancement Proposal for Java 9

https://bugs.openjdk.java.net/browse/JDK-8061493 and https://bugs.openjdk.java.net/browse/JDK-8085822 are the issues tracking the change going into Java 9

@juherr Thanks for reopening.
@nitinverma Thanks for the version chart, very useful.

Fixes awaiting release;
https://issues.apache.org/jira/browse/MJAR-206
https://issues.apache.org/jira/browse/MJAVADOC-443
Pull request into maven-plugin;
https://github.com/apache/maven-plugins/pull/76

See pull request https://github.com/cbeust/testng/pull/941

About gradle, it seems to be fixed with 1.12 and later: https://discuss.gradle.org/t/java-lang-illegalargumentexception-could-not-determine-java-version-from-1-9-0-ea/1944
Could someone test it?
BTW, I still don't understand the need of compiling with jdk9 when we've just dropped the support of java6.

our current gradle version is 2.5 and the error stays Could not determine java version from '1.9.0-ea'. not Could not determine java version from '9-ea'.

Oops

2.10 instead: https://discuss.gradle.org/t/jdk9-jigsaw-build-problem/13054/3

Yup, gradle 2.10 recognizes jdk9b99; but does not like our build.gradle ;)
https://github.com/nitinverma/testng/commit/a8f2d5e3d9bb593dde55d32090f3d2a35c25b940
$ ./gradlew --stacktrace clean test
Creating Version file: 6.9.11-SNAPSHOT in /Users/nitin.verma/Codes/git/github/nitinverma/testng/src/generated/java/org/testng/internal
[buildinfo] Not using buildInfo properties file for this build.
:clean
:myDir UP-TO-DATE
:createVersion
:compileGeneratedJavawarning: [options] bootstrap class path not set in conjunction with -source 1.7
1 warning

:processGeneratedResources UP-TO-DATE
:generatedClasses
:compileJava
FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all dependencies for configuration ':compile'.
> Authentication scheme 'all'(Authentication) is not supported by protocol 'file'

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':compile'.
	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.wrapException(ErrorHandlingConfigurationResolver.java:70)
	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolve(ErrorHandlingConfigurationResolver.java:45)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:367)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveNow(DefaultConfiguration.java:342)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:335)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:661)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:288)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown Source)
	at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext$FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.java:200)
	at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:107)
	at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionResolveContext.java:78)
	at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext$FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.java:186)
	at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:102)
	at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionResolveContext.java:78)
	at org.gradle.api.internal.changedetection.state.DefaultFileCollectionSnapshotter.visitFiles(DefaultFileCollectionSnapshotter.java:85)
	at org.gradle.api.internal.changedetection.state.DefaultFileCollectionSnapshotter.snapshot(DefaultFileCollectionSnapshotter.java:54)
	at org.gradle.api.internal.changedetection.rules.TaskUpToDateState.<init>(TaskUpToDateState.java:56)
	at org.gradle.api.internal.changedetection.changes.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.getStates(DefaultTaskArtifactStateRepository.java:132)
	at org.gradle.api.internal.changedetection.changes.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.isUpToDate(DefaultTaskArtifactStateRepository.java:70)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
	at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
	at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
	at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
	at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
	at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
	at org.gradle.internal.Factories$1.create(Factories.java:22)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
	at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
	at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
	at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
	at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
	at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
	at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
	at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
	at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
	at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
	at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
	at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
	at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
	at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
	at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
	at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
	at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
	at org.gradle.launcher.Main.doAction(Main.java:33)
	at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
	at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
	at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
	at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
	at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
	at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
	at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Caused by: org.gradle.api.InvalidUserDataException: Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
	at org.gradle.api.internal.artifacts.repositories.transport.RepositoryTransportFactory.validateConnectorFactoryCredentials(RepositoryTransportFactory.java:127)
	at org.gradle.api.internal.artifacts.repositories.transport.RepositoryTransportFactory.createTransport(RepositoryTransportFactory.java:88)
	at org.gradle.api.internal.artifacts.repositories.transport.RepositoryTransportFactory.createTransport(RepositoryTransportFactory.java:79)
	at org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository.getTransport(DefaultMavenArtifactRepository.java:124)
	at org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository.createResolver(DefaultMavenArtifactRepository.java:111)
	at org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository.createRealResolver(DefaultMavenArtifactRepository.java:102)
	at org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository.createResolver(DefaultMavenArtifactRepository.java:93)
	at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ResolveIvyFactory.create(ResolveIvyFactory.java:91)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.createComponentSource(DefaultArtifactDependencyResolver.java:114)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.access$100(DefaultArtifactDependencyResolver.java:56)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver$1.execute(DefaultArtifactDependencyResolver.java:81)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver$1.execute(DefaultArtifactDependencyResolver.java:78)
	at org.gradle.internal.Transformers$4.transform(Transformers.java:137)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:61)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:39)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:78)
	at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver$1.run(CacheLockingArtifactDependencyResolver.java:41)
	at org.gradle.internal.Factories$1.create(Factories.java:22)
	at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:192)
	at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:175)
	at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:106)
	at org.gradle.cache.internal.DefaultCacheFactory$ReferenceTrackingCache.useCache(DefaultCacheFactory.java:187)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultCacheLockingManager.useCache(DefaultCacheLockingManager.java:64)
	at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver.resolve(CacheLockingArtifactDependencyResolver.java:39)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolve(DefaultConfigurationResolver.java:91)
	at org.gradle.api.internal.artifacts.ivyservice.SelfResolvingDependencyConfigurationResolver.resolve(SelfResolvingDependencyConfigurationResolver.java:40)
	at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolve(ShortCircuitEmptyConfigurationResolver.java:52)
	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolve(ErrorHandlingConfigurationResolver.java:43)
	... 76 more

BUILD FAILED

Total time: 7.032 secs

Feel free to fix it :)

isolated: gradle/publishing-jcenter.gradle
still no clue while line number. hate gradle for this.

@nitinverma The Gradle issue will be fixed with #1051 if you want to continue to test testng and java9

Hey guys, did you resolve this ? I am hitting the same error in a totally different project and I can't find what to do.

@krmahadevan If you want to have a look on it. The latest gradle release is supposed to work with java9 now.

@juherr - Sure. As soon as I am done with all the current PRs and have gotten them merged I will take a look at this one. Kind of hard to toggle between multiple issues.

Java 9 is not a target but it should be possible to run test on this platform.
We will check it with https://github.com/cbeust/testng/issues/1808 (in fact, we already check it https://travis-ci.org/cbeust/testng)


install: reintroduce name long flag (--name) for v2 compatibility

Summary
To support backwards compatibility, helm should honor name passed in as both an argument or a long option.
What happened
I ran the following command:
helm install stable/kubernetes-dashboard \
  --name helm-dashboard \
  --set ingress.enabled="false" \
  --set enableSkipLogin="true

And I got the error
Error: unknown flag: --name
What I expected to happen
I expected helm to recognize that a name has been provided. This command (--name) worked in Helm v2.
I understand and agree with the change from v2 --> v3 such that helm name's should be explicitly set or generated but this feels like an unnecessary breaking change.
Helm is getting name explicitly passed to it.
Output of helm version:
version.BuildInfo{Version:"v3.0.2", GitCommit:"19e47ee3283ae98139d98460de796c1be1e3975f", GitTreeState:"clean", GoVersion:"go1.13.5"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.8", GitCommit:"211047e9a1922595eaa3a1127ed365e9299a6c23", GitTreeState:"clean", BuildDate:"2019-10-15T12:11:03Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.8", GitCommit:"211047e9a1922595eaa3a1127ed365e9299a6c23", GitTreeState:"clean", BuildDate:"2019-10-15T12:02:12Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}```
Cloud Provider/Platform (AKS, GKE, Minikube etc.):

I am willing to help contribute a fix to this issue.

PRs welcome to accept the name argument as a flag. Cobra (the library used in Helm for assembling the CLI) doesn't support this out of the box, so I imagine the design may be tricky to nail it correctly. Give it a go and let us know if you run into trouble.

@bacongobbler Sounds good.
v3
Usage:  helm install [NAME] [CHART] [flags]

The install argument must be a chart reference, a path to a packaged chart,
a path to an unpacked chart directory or a URL.

Cobra aside, what makes this a bit tricky is we have two positional arguments versus the one in v2.

What do you think about assuming that  if the name flag is set, the the remaining argument is the chart name, and fail we get two arguments _and_ the chart name flag?

In a similar issue of supporting the -c flag for helm version some maintainers expressed concern about supporting flags that could cause confusion. In the end that particular case was accepted because it provided other benefits than just backwards-compatibility.
I'm my humble opinion, having an argument NAME and also flag --name will seem counterintuitive.  With a major version increment (v2 going to v3) such backwards-compatibility "hacks" may not be desirable, especially since it will imply the --name flag would not be possible to remove (for the same compatibility reasons).
I believe users are expected to make certain changes when migrating to helm v3.
That being said, it's ok with me if @bacongobbler feels it is ok?

closing as stale.


Fix for junit5 executor with nativeImage

[      2474 tests successful      ]
[         4 tests failed          ]

@swankjesse landing this as failing tests are better than a broken build


Simply doesn't work

There's a lot of version issues with this tutorial, I could not get it to work. If it's in pip it should work.

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

ID: d9565ceb-e636-e815-f7cf-ff9523fabc2f
Version Independent ID: 7c6b3210-d878-0347-27af-199c2c00daa9
Content: Send telemetry to Azure IoT Hub quickstart (Python)
Content Source: articles/iot-hub/quickstart-send-telemetry-python.md
Service: iot-hub
GitHub Login: @dominicbetts
Microsoft Alias: dobett

On ubuntu 18.04, with python 2.7 I'm getting:
Traceback (most recent call last):
File "SimulatedDevice.py", line 11, in
import iothub_client
ImportError: No module named iothub_client

@smith-phil Thank you for the feedback!  We are investigating this and will get back to you shortly.

Hi @smith-phil  - I believe this is an issue with the SDK - please see: Azure/azure-iot-sdk-python#205
Can you confirm that you see the same error if you try this sample: https://github.com/Azure/azure-iot-sdk-python/blob/master/device/samples/iothub_client_sample.py
Thanks, Dominic

@smith-phil try the code sudo apt-get install iothub_client

@smith-phil - there is now a workaround for this issue posted in https://github.com/Azure/azure-iot-sdk-python/issues/205 . Thanks, Dominic

As this is issue is being handled in the https://github.com/Azure/azure-iot-sdk-python repo, I'm going to request that this issue is closed. Please feel free to reopen it if you have any further documentation related questions. Thanks again.
#please-close


support for finding multiple classes with regular expressions

This code is kind of ugly. Do we even care about this feature? Someone pinged me on Slack saying they thought they needed to convert everything to an Array, and their single regex broke. I had him remove the array and he was cool with it. But thought it would be interesting to get it to work.
I'm ok with not doing this if we don't care about the support for it.
@chrismcmahon, would you use it?

I don't really think it makes sense. You can have a single regexp containing OR/AND conditions, so what's the point of having array?

yup that totally makes sense.


Remove dash in Trace-Parent

Both the repo and W3C Spec for Distributed Tracing describe the traceparent header without dashes.

I would suggest following their lowercase format too.

Done. If you'd like I can also document the only known valid bit field for trace options.

I don't have merge rights, but I think that would be a reasonable thing to do.

Looks like the typo was fixed in my epic absence.


Wrong position of tooltip arrow when 'constraints' is used

[I have not seen a similar issue so I made a new one.]
Bootstrap 4.0.0-alpha.3 was used for this.
I was trying to add a tooltip to the side of the page but I found out that sometimes when tooltips content is too wide it goes out of the page, so I used 'constraints' to move it back inside but now I see that tooltip arrow always stays at the center ot the tooltip.
I'm not sure it this is a bug or I'm just missing something.
Tested on OSX El Capitan 10.11.6

Firefox 48.0

Safari 9.1.2

Chrome 52.0.2743.116 (64-bit)

Example: JSBin
IDEA:
This can be hot-fixed by adding a tooltip arrow as ::after for element on which tooltip is assigned

Tooltip positioning is handled by https://github.com/HubSpot/tether
Please file a bug with them.

This bug is not in tether, its due to the way bootstrap draws the arrow. @WitoTV was saying that when constraints are used, the arrow doesn't line up with the target element. This has nothing to do with tether as tether is putting the tooltip in the right place. The arrow is in the wrong place as bootstrap has it fixed to 50% of the width.


Add agat sp compare two busc os

Description
added agat_sp_compare_two_buscos
Issue ticket number
Closes #xxxx

Checklist before requesting a review

[ ] I have performed a self-review of my code

[ ] Conforms to the Contributing guidelines

[ ] Proposed changes are described in the CHANGELOG.md

[ ] I have tested my code with viash ns test --parallel -q <name or namespace>

Check the correct box. Does this PR contain:

[ ] Breaking changes
[ ] New functionality
[ ] Major changes
[ ] Minor changes
[ ] Documentation
[ ] Bug fixes

The agat github does not provide test data for this sub-module. Should I use Busco to generate the input folder?


Song Names Are Shown Incorrectly on macOS

*at least on macOS; haven't tested on other OS, unfortunately
Description
When opening a folder (or any other file) the song name in the queue list is displaying the full path to that file on the computer, however the intended behaviour is, as far as I understand, to display filenames (with a file extension).
Screenshots

The audio file clearly has metadata tags and Amethyst shows them correctly, however the songs on the left-side bar are displaying full path to the file instead of a filename or "artist + title" name

Other Information

App Version: v1.1.9 (as of df0711e commit) built for arm64
Environment: macOS 12.3

thats because linux/mac have paths written with forward slashes / instead of backward ones \ it should be an easy fix


Allow people to change their RSVP when there are no spots available

This fixes #101.
I based the code on the following logic:

User status
Spots available
No spots available

Not signed in
renderRSVPSignin()
renderNoMoreTickets()

Signed in, has no RSVP
renderRSVPButton()
renderNoMoreTickets()

Signed in, has RSVPd no
renderRSVPToggle()
renderNoMoreTickets()

Signed in, has RSVP'd yes
renderRSVPToggle()
renderRSVPToggle() (This is what was missing)

Thanks @gilmoreorless


max_attention_size should be max_input_len**2 ?

I am quite confused in this place.
                 model_dir: str | None = None):
        """
        :param model_dir:
            If specified, initialize ExLlamaV2Config with values read from model config.
        """

        self.max_batch_size = 1
        self.max_input_len = 2048
        self.max_attention_size = 2048**2

Does the max_attention_size always be max_input_len**2? Would it be more robost to set
self.max_attention_size = self.max_input_len**2 if I try to use a different max_input_len ?

It doesn't have to be, no. It can be greater to maintain the chunk size with a longer prefix. It's the maximum of q_len * k_len, and since k_len grows the longer the context is, it forces smaller and smaller chunks as the sequence grows, in order to maintain a constant size for the attention weights.
The value is ignored when using flash-attn, except it's still used to guesstimate the memory requirement when loading a model with manual split.


Behat run only the first feature files

Hello,
I am expecting an issue when I run my features, only the first file is executed all the other files are ignored, no errors in the console, very strange behaviour
I am currently updating my Symfony version from 4.3.9 to 4.4.9 and the dependencies.
I used behat on a other project with SYmfony 4.4.9 and no problems.
I don't have any idea which dependencies generate the problem.
I downgrade to an older version, same things, remove and reinstall behat too
Behat: 3.7.0
Symfony: 4.4.9

Without a reproducing case, I fear we won't be able to help you.

I know, I know, I am currently finding the dependencies which broke behat. If I found the right depedencies, I will update this issue

Also getting this issue. After checking all 200 dependencies of our project it turns out that sentry/sentry version 2.4.0 is causing this issue for us. Locking this to 2.3.2 fixed the issue for us.

@nathansalter It seems to be the reason we are currently running sentry on 2.3.2 instead of 2.4 !

Reported on the Sentry side: https://github.com/getsentry/sentry-php/issues/1028

:pray: Good catch, several hours on this until I found this issue! Upgrade sentry/sentry to 2.4.1 resolves the bug. Thanks!
Note: for us it stopped the behat suite (8 ran scenarios) at the first (handled) error (i.e. catching a 400) only in our CI (Gitlab CI) but worked completely in local (108 ran scenarios).


ci: increase disk size for GKE clusters (ci-gke & ci-external-workloads)

Some tests are failing due to PodEviction due to DiskPressure.
Therefore, this commit is increasing the disk size of a GKE node from 10GB to 20GB.
Fixes: #29312

/test

Marking for backport to v1.14 and v1.15 as this CI bug was observed in v1.14.

Marking for backport to v1.14 and v1.15 as this CI bug was observed in v1.14.

@pchaigno v1.15 is already covered - as this have been merged before branching off
https://github.com/cilium/cilium/blob/d6bbe6a7c009fea57b135992cc3f58e3e7cf70ea/.github/workflows/conformance-externalworkloads.yaml


improve hover on some properties

Is your feature request related to a problem? Please describe.
this is a minor visual improvement, but I thought it would bring users consistency when using the plugin. For now, only text and date property include hover, the other properties don't.
Describe the solution you'd like
Make hover appear the same in all properties
Additional context
https://user-images.githubusercontent.com/38974541/174877838-036281c1-7ff0-44d2-aefa-19ae1f460dc8.mov

hmm its ok for me but with a minor priority. Thanks!

https://github.com/RafaelGB/obsidian-db-folder/issues/189 looks like resolve this issue


URLs (e.g. images) in RSS broken if blog in subdirectory

Version: 0.5.10
If your blog is not top-level but in a subdirectory, e.g.: https://example.com/blogs/user/ then URLs for assets such as images will appear in the RSS feed with the subdir duplicated in the URL. Example:
https://example.com/blogs/user/content/images/2015/03/Image.jpg
becomes:
https://example.com/blogs/user/blogs/user/content/images/2015/03/Image.jpg
Note the duplication of "blogs/user/"

FWIW, the offending line is this in core/server/controllers/frontend.js
 baseUrl = attributeValue[0] === '/' ? siteUrl : item.url;

The issue is that (some?) images (such as the post image) have the starting slash, but also already include the blogs subdir, so the subsequent concatenation with siteUrl results in two copies of the subdir portion. Not familiar enough with the code base to know what the preferred solution would be, but the path prefixes of siteUrl and attributeValue need comparison.

This may be a dupe of #5033 / closed by #5056? Haven't looked into the details, but sounds similar

I don't believe #5056 will resolve this issue. The offending section doesn't appear to be using config.urlFor to compose absolute URLs.

Indeed, this URL Is put together manually with concatenation:
 attributeValue = baseUrl + attributeValue;

I would't mind tackling this one, but I'm not sure what the best approach is. Should it be somehow tied into urlFor or should it be done in-line where it's at?

@ianlopshire eventually we want all URL generation to go through urlFor, so I think that would be the right approach.

I hope to look at this sometime this week

:+1: Let me know if you need to discuss the approach any further. It might be a case of needing a quick fix for now if the urlFor approach ends up too involved.


Install All workspace recommendations doesnt work when both extension pack and its contents are recommended

Add the below in workpsace recommendations file

{
	// See http://go.microsoft.com/fwlink/?LinkId=827846
	// for the documentation about the extensions.json format
	"recommendations": [
		// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
		"vscjava.vscode-java-pack",
		"vscjava.vscode-java-debug",
		"redhat.java"
	]
}

Reload window, when prompted click "Install All"
Recommended view opens with all the 3 items having "Installing" status that turns to "Install" instead of "Reload"

Fixed with https://github.com/Microsoft/vscode/commit/af6b8302fae66a2898ac8180c98221892d6c765f


Deploy application code to a Lambda layer instead of to the Function

Summary

Deploy application code as a layer instead of directly to the lambdas. Each lambda is currently deployed with a separate copy of the entire application code. Creating a code-layer will significantly reduce the amount of Lambda Code Storage used by Jets. All that should need to be deployed to the lambdas is a proxy function to the code stored in the layer.
Motivation

We have hit the Lambda Code Storage limit multiple times. Deploying all application code to every lambda consumes a lot of Lambda Code Storage.
Guide-level explanation

Reference-level explanation

Drawbacks

Unresolved Questions

Jets 5 handles this in another way. A single lambda function is deployed to handle all controller requests.
https://blog.boltops.com/2023/12/05/jets-5-improvements-galore/
Closing out


mvvm architecture implented for android mobile app

Android app

language Kotlin
support androidx
develop with Android jetpack libraries

used dependencies

lifecycle - for handle life cycle status of components
retrofit - Type-safe HTTP client for Android
room - abstraction layer over SQLite (for caching)
navigation - easy navigation inside android app
material components - material components
kodein -  dependency retrieval container
font awesome - font awesome icons
preference - shared preference (for caching)
groupie - handle Recycler Views
dexter - handle permissions on android app

awesome.


chore(logging): moved to request logging to debug instead of info

chore(logging): moved the request logging to debug instead of info
In an attempt to reduce the ordinary logging the request logging was moved to debug level
@Romakita
Maybe the real solution would be to split out the request logging in an info part and a debug part. However including the sometimes extreme amounts of data in the info part renders my info logging level worthless :-(

Hi @lwallent,
Maybe it would be nicer to not log data in log.info() but let the status in info level.
´´´typescript
request.log.info({status})
request.log.debug({status, data})
´´´
What do you think?

Hi @Romakita,
I followed your idea plus changed the amount of data shown for the actual request at info level.
Plus made sure that the verbose version of the request is displayed when an error is thrown, which is really what I need the most :-)
Hope this is Ok with you? I have tried it out in my own application where a massive amount of calls are made constantly, and I like the level of information now shown.
Kind Regards
Lasse :)

Nice :)
I'll test on my local. But I think this is good :)


How can I use the cursor as anchor istead of the view?

When the EditText is too big, the popup is not shown properly, as you can see here:

Is there any way that I can use the cursor as the anchor? And one more doubt, can I choose if the popup will be shown above or below the anchor in some situations?

It's not possible right now, but it would be a cool feature!


push v3.0.0-beta4 to f-droid

Currently f-droid is only aware of v3.0.0-beta3,  it would be useful to get this updated to beta4 is made available on f-droid

Sorry about this. I've just opened a PR for v3.0.0-beta5 to get into F-Droid!


Inconsistent statements about SharePoint search verticals

This page says both: "You can create search verticals and result types to customize the search results that users see when they search in Microsoft SharePoint, Microsoft Office, and Microsoft Search in Bing" and "You can’t create a vertical for content that resides in SharePoint."
These statements would appear to contradict each other?

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

ID: 1ce38a86-b4a9-9c13-f772-4f79b8ecd0cb
Version Independent ID: 933c3664-1f7f-680a-fb5f-5576bed5943c
Content: Customize the Microsoft Search page
Content Source: MicrosoftSearch/customize-search-page.md
Service: mssearch
GitHub Login: @jypal
Microsoft Alias: jypal6

SharePoint in this paragraph is being used in two different context. In the first the search page in Microsoft Search is discussed where Connector data can be shown. In the second, SharePoint as a content source is referred. For the latter, the admins do not have the same capability as they do for Connectors and that is being called out here.

I believe this issue can be closed now.


关于internv2的支持

Motivation
请问咱们是否有计划支持[InternVL2-26B]
Related resources
No response
Additional context
No response

https://github.com/InternLM/lmdeploy/pull/1911 is addressing internvl2 feature

The PR is merged. You may try the latest main, or wait for the next release v0.5.1, which will be published in a week

week

期待 v0.5.1版本的pip安装包更新

duplicate ref https://github.com/InternLM/lmdeploy/issues/1900

The main branch is now fully supported.


konnect update failures after realm added to key-auth plugin

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
When I add multiple consumers, each with their own key-auth credential, the KIC attempts to add an invalid realm: null property to the key-auth plugin which the local Kong database accepts, but Konnect rejects with the following error:
Failed pushing configuration to Konnect    {"error": "performing update for https://us.kic.api.konghq.com/kic/api/control-planes/<MY_CONTROL_PLANE_ID> failed: inserting key-auth into state: inserting credential 11d26180-a7c1-4146-a56b-594f6a40a798: entity already exists"}

When Konnect is not used, Kong accepts multiple consumers with key-auth with no issues, and they're all functional as expected. It's only when Konnect is in play that the KIC shows this error.
Expected Behavior
I would either expect:

If the local Kong control plane accepts the change, Konnect should too
Or the KIC to not add a null realm property to the key-auth plugin, avoiding the attempt to update the plugin in Konnect all together

Steps To Reproduce
1. Deploy KIC, control plane and data plane nodes to Kubernetes cluster
2. Connect KIC to Konnect
3. Deploy key-auth plugin
4. Deploy 1 consumer with credential for key-auth plugin (should succeed)
5. Deploy another consumer with their own unique credential for key-auth plugin (should fail)

Kong Ingress Controller version
3.1

Kubernetes version
1.28.7

Anything else?
I've run the KIC with trace logging enabled and I've dumped generated Kong configuration using this method.
The trace logs didn't reveal much I couldn't already tell from the info logs, but the generated kong configuration revealed something interesting.
The only diff between last_good.json and last_bad.json (reference above linked instructions) was the following:

This may suggest the KIC is trying to modify the key-auth plugin when the second consumer is added, and Konnect is perhaps rejecting this update while the local control plane is accepting it.

This is because KIC used the same value to redact the key field, so if there are more than one key_auth plugins in the cluster, they will have the same key field. Then Konnect will reject it because the key is unique for all key_auth plugins.
We have fixed it in https://github.com/Kong/kubernetes-ingress-controller/pull/5964 and this is also backported to KIC 3.1. In the coming KIC 3.2 and patch release of 3.1 (will be released soon), this should be fixed.

@randmonkey Thanks so much for the info! Glad to hear a fix is coming soon, as this issue is currently blocking my team from migrating to Konnect from pure OSS. Closing this issue.


Albumentations Postprocess Index Error after Release 3.3.0

Hi,
I noticed this pull request https://github.com/open-mmlab/mmdetection/pull/11280 changes the Albu postprocessing.
In my pipeline results['masks'] can be empty at that stage which results in an index error for results['masks'][0].shape[0].

@AItairs Thank you. Can you help fix it?


new feature: Synchronous to asynchronous.when the namespace has too much items,loads lowly.Now it's 80 percent less time-consuming

1.Synchronous to asynchronous.when the namespace has too much items,loads lowly.Now it's 80 percent less time-consuming
2.Compact code.
What's the purpose of this PR
In order to reduce the time consumption of NamespaceController#findNamespaces
Which issue(s) this PR fixes:
Fixes #
NONE
Brief changelog

Add a Spring task thread pool configuration
Modified NamespaceService#findNamespaceBOs，serial lines changed to parallel.
Add a  Class with name NamespaceBoAsyncService  to provider some future methon.

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Read the Contributing Guide before making this pull request.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit tests to verify the code.
[x] Run mvn clean test to make sure this pull request doesn't break anything.

There are files conflict.

This branch is 1 commit ahead, 114 commits behind ctripcorp:master.

Maybe you can Syncing a fork to make your branch to newest code of the project?

There are files conflict.

This branch is 1 commit ahead, 114 commits behind ctripcorp:master.

Maybe you can Syncing a fork to make your branch to newest code of the project?

是最新的，可能触发了编辑器的代码格式化

There are files conflict.

This branch is 1 commit ahead, 114 commits behind ctripcorp:master.

Maybe you can Syncing a fork to make your branch to newest code of the project?

今天fork的，不知道为啥不是最新的

重新提交了，本地可以编译过。

根据CI的结果
apollo-portal模块存在test失败
Tests in error:
  NamespaceServiceTest.testFindNamespace:102 » NullPointer

在类com.ctrip.framework.apollo.portal.service.NamespaceServiceTest的第102行，出现了空指针
具体日志为
6_JDK 8.txt

根据CI的结果
apollo-portal模块存在test失败
Tests in error:
  NamespaceServiceTest.testFindNamespace:102 » NullPointer

在类com.ctrip.framework.apollo.portal.service.NamespaceServiceTest的第102行，出现了空指针
具体日志为
6_JDK 8.txt
自动化测试脚本的问题，使用了线程池异步。未能得到。附上运行成功的截图，你能帮我看看自动化脚本怎么修改嘛，thanks

根据CI的结果
apollo-portal模块存在test失败
Tests in error:
  NamespaceServiceTest.testFindNamespace:102 » NullPointer

在类com.ctrip.framework.apollo.portal.service.NamespaceServiceTest的第102行，出现了空指针
具体日志为
6_JDK 8.txt

添加了mock测试方法，已经解决

Codecov Report

Merging #3462 (91a194a) into master (ad63e14) will decrease coverage by 0.15%.
The diff coverage is 73.80%.

@@             Coverage Diff              @@
##             master    #3462      +/-   ##
============================================
- Coverage     51.41%   51.25%   -0.16%
+ Complexity     2316     2314       -2
============================================
  Files           441      443       +2
  Lines         13823    13852      +29
  Branches       1408     1408
============================================
- Hits           7107     7100       -7
- Misses         6226     6258      +32
- Partials        490      494       +4

Impacted Files
Coverage Δ
Complexity Δ

...rip/framework/apollo/portal/PortalApplication.java
33.33% <ø> (ø)
1.00 <0.00> (ø)

.../apollo/portal/controller/NamespaceController.java
12.22% <ø> (ø)
2.00 <0.00> (ø)

...apollo/portal/service/NamespaceBoAsyncService.java
22.22% <22.22%> (ø)
1.00 <1.00> (?)

...mework/apollo/portal/service/NamespaceService.java
57.92% <76.19%> (-9.39%)
24.00 <4.00> (-3.00)

...lo/portal/threadpool/ThreadTaskExecutorConfig.java
100.00% <100.00%> (ø)
4.00 <4.00> (?)

...trip/framework/apollo/portal/entity/bo/ItemBO.java
68.75% <0.00%> (-12.50%)
7.00% <0.00%> (-1.00%)

...work/apollo/biz/message/DatabaseMessageSender.java
56.25% <0.00%> (-8.34%)
6.00% <0.00%> (-2.00%)

...rk/apollo/spring/property/SpringValueRegistry.java
83.33% <0.00%> (-5.56%)
10.00% <0.00%> (-1.00%)

...ework/apollo/internals/RemoteConfigRepository.java
86.25% <0.00%> (-3.13%)
24.00% <0.00%> (-1.00%)

... and 5 more

Continue to review full report at Codecov.

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

根据CI的结果
apollo-portal模块存在test失败
Tests in error:
  NamespaceServiceTest.testFindNamespace:102 » NullPointer

在类com.ctrip.framework.apollo.portal.service.NamespaceServiceTest的第102行，出现了空指针
具体日志为
6_JDK 8.txt

谁review下代码

I think the main change is the following 2 parts?

parallel executing transformNamespace2BO
parallel executing loadLatestRelease, findItems and findDeletedItems

I think the first part could speed up the loading times when there are many namespaces, but I'm not sure whether the second part could improve the performace a lot, as loadLatestRelease and findDeletedItems should be very fast.
With that said, I'm thinking whether we could simplify the changes, e.g. only keep the parallel executing transformNamespace2BO logic?

I think the main change is the following 2 parts?

parallel executing transformNamespace2BO
parallel executing loadLatestRelease, findItems and findDeletedItems

I think the first part could speed up the loading times when there are many namespaces, but I'm not sure whether the second part could improve the performace a lot, as loadLatestRelease and findDeletedItems should be very fast.
With that said, I'm thinking whether we could simplify the changes, e.g. only keep the parallel executing transformNamespace2BO logic?

I think the main change is the following 2 parts?

parallel executing transformNamespace2BO
parallel executing loadLatestRelease, findItems and findDeletedItems

I think the first part could speed up the loading times when there are many namespaces, but I'm not sure whether the second part could improve the performace a lot, as loadLatestRelease and findDeletedItems should be very fast.
With that said, I'm thinking whether we could simplify the changes, e.g. only keep the parallel executing transformNamespace2BO logic?

我在公司项目中实际使用，当一个namespace中有上千个个item，commit有2000多个item，这个findDeletedItems  100多ms以上，有时会超过400ms，通过异步能使耗时最多达到findDeletedItems 这么长时间，效果还是不错的。

I think the main change is the following 2 parts?

parallel executing transformNamespace2BO
parallel executing loadLatestRelease, findItems and findDeletedItems

I think the first part could speed up the loading times when there are many namespaces, but I'm not sure whether the second part could improve the performace a lot, as loadLatestRelease and findDeletedItems should be very fast.
With that said, I'm thinking whether we could simplify the changes, e.g. only keep the parallel executing transformNamespace2BO logic?

我在公司项目中实际使用，当一个namespace中有上千个个item，commit有2000多个item，这个findDeletedItems  100多ms以上，有时会超过400ms，通过异步能使耗时最多达到findDeletedItems 这么长时间，效果还是不错的。

@renjiahua945 #3258 修复了 findDeletedItems 接口慢的问题，可以一直到你本地环境看下效果。另外看下是否可以简化下 PR 的逻辑，比如是否不需要增加一个单独的异步 service，而是直接通过 Callable 搭配 ExecutorService 就能实现 loadLatestRelease 和 findItems 的并发调用。

使用Async更加方便，可以指定自己自定义的线程池。只需要在方法上加上@Async("executorName")即可。不添加异步service的话，Async这个会不生效。当然了，异步的service统一放该功能的异步方法也未尝不可，更方便阅读管理代码。simple不只是代码simple就简洁了对吧。当然我如果有时间我会继续贡献代码，将我使用中遇到的问题解决。thx

@renjiahua945 #3258 修复了 findDeletedItems 接口慢的问题，可以一直到你本地环境看下效果。另外看下是否可以简化下 PR 的逻辑，比如是否不需要增加一个单独的异步 service，而是直接通过 Callable 搭配 ExecutorService 就能实现 loadLatestRelease 和 findItems 的并发调用。

使用Async更加方便，可以指定自己自定义的线程池。只需要在方法上加上@Async("executorName")即可。不添加异步service的话，Async这个会不生效。当然了，异步的service统一放该功能的异步方法也未尝不可，更方便阅读管理代码。simple不只是代码simple就简洁了对吧。当然我如果有时间我会继续贡献代码，将我使用中遇到的问题解决。thx

Basically it looks okay to me, but it would be better to add some unit test for NamespaceBoAsyncService even though its logic is simple

Ok，周末我加上。

Basically it looks okay to me, but it would be better to add some unit test for NamespaceBoAsyncService even though its logic is simple

Ok，周末我加上。

Basically it looks okay to me, but it would be better to add some unit test for NamespaceBoAsyncService even though its logic is simple

添加了单元测试 thx

Basically it looks okay to me, but it would be better to add some unit test for NamespaceBoAsyncService even though its logic is simple

添加了单元测试 thx

Tests run: 8, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.135 sec <<< FAILURE! - in com.ctrip.framework.apollo.internals.RemoteConfigRepositoryTest
testLongPollingRefresh(com.ctrip.framework.apollo.internals.RemoteConfigRepositoryTest)  Time elapsed: 5.025 sec  <<< ERROR!
java.util.concurrent.TimeoutException: Waited 5000 milliseconds (plus 15 milliseconds, 85100 nanoseconds delay) for com.google.common.util.concurrent.SettableFuture@5e8f9e2d[status=PENDING]
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:506)

Codecov Report

Merging #3462 (72027a8) into master (d60bf88) will increase coverage by 0.02%.
The diff coverage is 73.33%.

@@             Coverage Diff              @@
##             master    #3462      +/-   ##
============================================
+ Coverage     50.88%   50.91%   +0.02%
- Complexity     2327     2332       +5
============================================
  Files           449      451       +2
  Lines         14026    14066      +40
  Branches       1426     1426
============================================
+ Hits           7137     7161      +24
- Misses         6400     6414      +14
- Partials        489      491       +2

Impacted Files
Coverage Δ
Complexity Δ

...rip/framework/apollo/portal/PortalApplication.java
33.33% <ø> (ø)
1.00 <0.00> (ø)

.../apollo/portal/controller/NamespaceController.java
12.22% <ø> (ø)
2.00 <0.00> (ø)

...mework/apollo/portal/service/NamespaceService.java
56.39% <65.15%> (-10.92%)
24.00 <5.00> (-3.00)

...apollo/portal/service/NamespaceBoAsyncService.java
91.66% <91.66%> (ø)
3.00 <3.00> (?)

...lo/portal/threadpool/ThreadTaskExecutorConfig.java
100.00% <100.00%> (ø)
4.00 <4.00> (?)

...trip/framework/apollo/portal/entity/bo/ItemBO.java
68.75% <0.00%> (-12.50%)
7.00% <0.00%> (-1.00%)

.../apollo/internals/RemoteConfigLongPollService.java
77.10% <0.00%> (-1.21%)
28.00% <0.00%> (-1.00%)

...ervice/service/ReleaseMessageServiceWithCache.java
85.88% <0.00%> (-1.18%)
24.00% <0.00%> (-1.00%)

... and 5 more

Continue to review full report at Codecov.

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

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

recheck


Fix notebooks so they run again

Doesn't add them in the tests, nor really brings the information in there up to date, but at least they run now.

Hmm, I missed that e.g. docs/database.rst has some code like from spextra.database import Database, which gets executed by RTD (as it should), but doesn't work anymore because of the restructuring I made. But I think it's best to address that in a separate PR, because it's not directly related to the notebooks....

Oh, and I'm looking at https://readthedocs.org/projects/spextra/, not spextraHB. But that doesn't seem to build the branches...


SDK/API packaging

This is a follow-up from a meeting on June 26th, 2019.
We’ll need to decide how we’ll package/gemify API and SDK in the Ruby lib. OpenTelemetry Language Library Design Principles describes requirements and expected usages of API and SDK respectively.
Look at how SIGs of other dynamic programming languages approach like Python and probably JavaScript.

Given that we have the gemspec files for each gem, is this issue resolved? @fbogsany, @mwear Is this something other than configuring the gems?

I think this is done.


Refactor Reservation notes unsent e-mail

Post-#1007, we have more than one reason to notify admins that notes have been left on a reservation (i.e. not just checkout and checkin). We should refactor that e-mail / rake task to handle that use case.

We might just want to toggle notes_unsent whenever the notes are edited (this would follow #1007).


Non-blocking DC automidpoint?

Hi,
Is it possible to add an option to make automidpoint non-blocking?
I am developing a firmware that involves touchscreen and during boot it adds a 5 second delay until display becomes functional since automidpoint  blocks the code execution. i adjusted automidpoint to cycle around 50 times to get a precise measurements.
I tried other methods like putting automidpoint in separate function and call it from loop but it creates various weird behavior in other parts of the program.
Thanks.

Thanks for the question.
The short answer is no, when measuring AC one needs to average a whole sine wave to determine the midpoint.
The auto midpoint does this in a blocking way.
What you might do is to do it once, get the value and store it in EEPROM. Next time you restart you just fetch it from EEPROM and set it. This might work, not tested.
Another option is to write a function that samples once and returns an estimated midpoint and a confidence level. It would allow to spread the determination of the midpoint over time.
An idea how this function could work is tracking min snd max values of the samples.
If hese do not change confidence increases by 1%. If one changes confidence is divided by 2.
If the confidence becomes 100% the midpoint could be the average of min and max.
The latter uses random samples and the idea is that   they are made uniform spread over the sine wave so quite a chance you find the peaks and thus the average.
This idea is not tested either.
Does one of these ideas fit in your project/design?

The latter idea seems most interesting so I wrote a prototype to get you started
//    FILE: estimateMidPoint.ino
//  AUTHOR: Rob Tillaart
// PURPOSE: experimental
//     URL: https://github.com/RobTillaart/ACS712

#include "Arduino.h"

uint32_t start, stop;
int _pin = A0;
uint32_t count = 0;
volatile uint16_t mp;
float conf = 0;

uint16_t estimateMidPoint(float &confidence, bool reset = false)
{
  static bool _firstCall = true;
  static float _minimum, _maximum, _confidence;

  int value = analogRead(_pin);
  if (_firstCall || reset)
  {
    _firstCall = false;
    _minimum = _maximum = value;
    _confidence = 0;
    confidence = _confidence;
    return _minimum;
  }

  if (value > _maximum)
  {
    _maximum = value;
    _confidence /= 2;
  }
  else if (value < _minimum)
  {
    _minimum = value;
    _confidence /= 2;
  }
  else if (_confidence < 100)
  {
    _confidence += 1;
  }

  confidence = _confidence;
  return (_minimum + _maximum) / 2;
}

void setup()
{
  Serial.begin(115200);
  while (!Serial);
  Serial.println(__FILE__);
}

void loop()
{
  count++;
  start = micros();
  mp = estimateMidPoint(conf, true);
  stop = micros();
  Serial.print(millis());
  Serial.print("\t");
  Serial.print(count);
  Serial.print("\t");
  Serial.print(conf);
  Serial.print("\t");
  Serial.print(mp);
  Serial.print("\t");
  Serial.print(stop - start);
  Serial.println();
  delay(random(100));
}

//  -- END OF FILE --

output
estimateMidPoint.ino
2	1	0.00	709	216
10	2	1.00	709	160
60	3	2.00	709	156
134	4	3.00	709	156
193	5	4.00	709	160
224	6	5.00	709	160
297	7	6.00	709	160
343	8	7.00	709	156
421	9	8.00	709	156
446	10	9.00	709	160
456	11	4.50	709	148   <<<<<<<<<<
497	12	2.25	709	156   <<<<<<<<<<
564	13	3.25	709	152
657	14	4.25	709	164
700	15	5.25	709	160

...

5123	108	98.25	709	164
5221	109	99.25	709	156
5316	110	100.25	709	160
5321	111	100.25	709	148
5331	112	100.25	709	152

Not tested with an ACS712, just with a floating analog and the first runs look not bad.
First call (UNO) takes 216 usec. remaining ~164usec.
(not to bad compared to 20 millis blocking)

Note: the confidence increases just by one now, but you could make steps of 2,3,5, 8,13, ... so it converges faster.
(Fibonacci always looks cool in algorithms)
Maybe as parameter to the function, default 1.
uint16_t estimateMidPoint(float &confidence, int step = 1,  bool reset = false)

Note2: please note that the estimateMidPoint() does not set the midPoint yet.

Sounds good. That might work in our application. Thanks!

Please let me know how well it works, I might add the function to the library.
And tested functions make most sense 😎

@astorun
If you want to measure the zero level of DC (as stated in the title), which has no frequency, you might just call
value = autoMidPoint(1000, 1);

By setting the freq very high the two periods it blocks become much shorter. In the example above 1000 Hz will block 2 ms.
That will give a reasonable amount of samples to average,
But maybe there should be an autoMidPointDC(uint16_t cycles = 8), just taking 8 samples and average them.
uint16_t ACS712::autoMidPointDC(uint16_t cycles = 8)
{
  if (cycles == 0) cycles = 8;
  uint32_t total = 0;
  for (uint16_t i = 0; i < cycles; i++)
  {
    total += _analogRead(_pin);
    subTotal += reading;
  }
  _midPoint = (total + (cycles/2))/ cycles;    // rounding.
  return _midPoint;
}

Assumption is that there is no current flowing...

I integrated your code to to acs712.cpp and made some fixes:
uint16_t ACS712::autoMidPointDC(uint16_t cycles)
{
    if (cycles == 0) cycles = 1;
    uint32_t total = 0;
    uint32_t subTotal = 0;
    uint32_t reading  = 0;
    for (uint16_t i = 0; i < cycles; i++)
    {
      total += analogRead(_pin);
      subTotal += reading;
    }
    _midPoint = (total + (cycles/2))/ cycles;    // rounding.
    return _midPoint;
}

added the following line to acs712.h
uint16_t autoMidPointDC(uint16_t cycles = 1);
and calling it within setup like this:
ACS.autoMidPointDC(100);
Works like a charm! No more blocking.
I suggest you to add this to library!

will add the function autoMidPointDC() asap.
Do you have an opinion about the uint16_t estimateMidPoint(float &confidence, bool reset = false) which should work for the AC current - midPoint determination? (no is a perfect OK answer)

@astorun
Your proposed code adds reading to subtotal which is never used.  reading is always zero BTW.
Q: on which platform did you test it?

@astorun
Created develop branch and a Pull Request - https://github.com/RobTillaart/ACS712/pull/36


1720891, fix unicode character

Updates related to User Story 1720891.

Docs Build status updates of commit e952748:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

TerminalDocs/tutorials/powerline-setup.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@cinnamon-msft please review this PR and let me know if there are any updates you'd like me to make.

Docs Build status updates of commit 316fa97:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

TerminalDocs/tutorials/powerline-setup.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


qlcplus: 4.11.1 -> 4.11.2

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/qlcplus/versions.
These checks were done:

built on NixOS
Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
found 4.11.2 with grep in /nix/store/4qhjfvk9i1hi3q4jqzic5ajndnqschfi-qlcplus-4.11.2
directory tree listing: https://gist.github.com/2877914d9c008fd955d2946bfd21926e

cc @globin for review

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: qlcplus
Partial log (click to expand)
Cannot nix-instantiate `qlcplus' because:
error: while evaluating the attribute 'buildInputs' of the derivation 'qlcplus-4.11.2' at /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating 'getOutput' at /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/attrsets.nix:450:23, called from undefined position:
while evaluating anonymous function at /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/stdenv/generic/make-derivation.nix:97:17, called from undefined position:
while evaluating 'callPackageWith' at /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix:113:35, called from /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/top-level/all-packages.nix:14005:13:
while evaluating 'makeOverridable' at /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix:72:24, called from /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix:117:8:
while evaluating anonymous function at /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/os-specific/linux/systemd/default.nix:1:1, called from /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/lib/customisation.nix:74:12:
assertion failed at /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/os-specific/linux/systemd/default.nix:16:1

Success on x86_64-linux (full log)
Attempted: qlcplus
Partial log (click to expand)
shrinking /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2/lib/libqlcpluswebaccess.so.1.0.0
shrinking /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2/bin/qlcplus
shrinking /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2/bin/qlcplus-fixtureeditor
gzipping man pages under /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2/share/man/
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2/lib  /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2/bin
patching script interpreter paths in /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2
checking for references to /build in /nix/store/hdaa9ww9rmi18qv5yvzmlcyv7c828mbj-qlcplus-4.11.2...
postPatchMkspecs
postPatchMkspecs

Success on aarch64-linux (full log)
Attempted: qlcplus
Partial log (click to expand)
shrinking /nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2/lib/qt-5.10/plugins/qlcplus/audio/libsndfileplugin.so
shrinking /nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2/lib/qt-5.10/plugins/qlcplus/audio/libmadplugin.so
gzipping man pages under /nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2/share/man/
strip is /nix/store/j7d4mr0ikv974ig7yzhknpsq288js4bs-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2/lib  /nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2/bin
patching script interpreter paths in /nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2
checking for references to /build in /nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2...
postPatchMkspecs
postPatchMkspecs
/nix/store/915pdnkclhdjmzz1i9hww2mi4z62dsb6-qlcplus-4.11.2


How can we help?
I would like someone else to build the manifest.
Please read and ensure the following

[X] The installer meets the above requirements

What's the type of your software?
msi
Please provide the following information
Download Page Url: https://www.visualgps.net/#visualgpsview-content
Install Options:
Publisher: VisualGPS, LLC
Publisher Page: https://www.visualgps.net
Package Page: https://www.visualgps.net/#visualgpsview-content
Package Name: VisualGPSView
Description: A free tool to monitor GPS output.
Package Version: 1.1.401
Installer URL: https://www.visualgps.net/VisualGPSView/Download/VisualGPSViewInstall.msi
License: Freeware
License Page:
Copyright: Copyright © 2020 VisualGPS Inc. All rights reserved - VisualGPS™ is a trademark of VisualGPS, LLC Anaheim, CA

I am very curious where do you get so many different kinds of software😊


mj-container width not working

Hi,
I've read in another issue that you could set the width higher than the 600px default width.
In my case I'd need to go up to 800px, but the mj-container width="800px" doesn't seem to work.
Thanks

Hi @Fanetteg
Looks to work fine here : https://mjml.io/try-it-live/rysB1pe1-
Note that the try it live is set to 600px max, so that's why it doesn't expand to 800px but if you check the HTML and open in a browser/clients everything is fine
Can you share some code if it's not ?

Oh okay, yeah I was just previewing it with the try it live. :)
It works!
Thanks


Run pipeline - Terminal

Mockups

Specifications

User can click on Show Terminal at any moment, before run a pipeline, when the pipeline is running or when the pipeline finished.
When user clicks on Show Terminal link, its text will toggle to Hide Terminal
Clicking on Hide Terminal link will redirect user to Pipeline Run screen (#151 ) and the user will continue tracking the status of the execution from there
In Terminal screen, the button for start the execution of a pipeline will be enable if and only if the pipeline has a defined location.
If there is no a location defined, then Start or Run button will be disabled, ,and a notification message will appear indicating the user that he/she needs to define a location by clicking on Pipeline Settings option
Terminal screen will contain the following elements:

Return Arrow. If user clicks here, he/she will be redirected to Pipeline list screen and the pipeline will continue executing in background mode
Pipeline name
Menu items:

Hide Terminal
Pipeline Settings: Clicking here will open the Pipeline Settings popup
Cancel: Clicking here will stop the execution of the pipeline and user will be redirected to the Pipeline Workflow view

Progress bar indicating the state of the process
A timer, indicating how much time the pipeline have been ran
A button to start or stop the process.

If there is a location defined, the Start button will be enabled.
If there is no location defined, there will be a visible note, indicating the user that he/she needs to define a location before execute the pipeline and the Start button will be disabled until the conditions are met.

Below the progress bar it will appear the terminal with the outup of the execution of every agent (See Mockups section). Please, remove the play/pause button
At the right, it will appear a column with all the agents within the pipeline. Agent will be ordered according to its position within the pipeline
Inside each agent item, will appear links Terminal and Logs.

Clicking on them will display a popup with the terminal of the execution results per Agent.
Terminal and Logs popups can be opened only if the agent is been executed at that moment or if it was already executed.
If an agent is waiting to be executed those links will be disabled.

If user clicks on Terminal arrow, the content of the main Terminal will change to display the logs and the subtitle will change to Logs

NOTE: We can have more than one agent running at the same time. That means that we need to allow click for all the Agents in the right vertical list to see the Terminal/Logs if it is running or ran before.

@YanetABUC that looks really good, and remember we can have more than one agent running at the same time. That means that we need to allow click for all the Agents in the right vertical list to see the Terminal/Logs.

There are some bugs that are going to be tracked in separate tickets:

https://github.com/reconness/reconness-frontend/issues/291
https://github.com/reconness/reconness-frontend/issues/292
https://github.com/reconness/reconness-frontend/issues/293
https://github.com/reconness/reconness-frontend/issues/294


fix: captured dependency causing build failures

Source: https://github.com/MindfireTechnology/BlazorStateManager/blob/master/Source/BlazorStateManager/DependencyRegistrations.cs#L23-L25
This is causing a captured dependency issue, in v1.2.1.
Using the most simple case of:
builder.Services.AddBlazorStateManagerServices<CookieStoragePersistance>();

I get:
System.AggregateException: 'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: BlazorStateManager.State.IStateManager Lifetime: Singleton ImplementationType: BlazorStateManager.State.StateManager': Cannot consume scoped service 'Microsoft.JSInterop.IJSRuntime' from singleton 'BlazorStateManager.StoragePersistance.IStoragePersistance'.) (Error while validating the service descriptor 'ServiceType: BlazorStateManager.StoragePersistance.IStoragePersistance Lifetime: Singleton ImplementationType: BlazorStateManager.StoragePersistance.CookieStoragePersistance': Cannot consume scoped service 'Microsoft.JSInterop.IJSRuntime' from singleton 'BlazorStateManager.StoragePersistance.IStoragePersistance'.)'

InvalidOperationException: Error while validating the service descriptor 'ServiceType: BlazorStateManager.State.IStateManager Lifetime: Singleton ImplementationType: BlazorStateManager.State.StateManager': Cannot consume scoped service 'Microsoft.JSInterop.IJSRuntime' from singleton 'BlazorStateManager.StoragePersistance.IStoragePersistance'.

InvalidOperationException: Cannot consume scoped service 'Microsoft.JSInterop.IJSRuntime' from singleton 'BlazorStateManager.StoragePersistance.IStoragePersistance'.

My project is a Blazor Web Application (net8.0), and I've written a custom version of CookieStoragePersistance that encrypts the cookies using Microsoft.AspNetCore.DataProtection as it persists them. However, even just using the stock CookieStoragePersistance, this change stops the application from working. I've had to manually override this change, and forgoe using AddBlazorStateManagerServices within the build sequence.

Thanks for letting us know. I've pushed out version 1.2.2 to resolve the issue caused by 1.2.1. Let me know if this doesn't resolve the issue for you!


[DRC-892] [Bug] <when poetry adding recce, it uninstalls dbt dependency packages, causing dbt to not compile>

Current Behavior
when running poetry add recce, it removes dbt package dependencies
(ba-finance-dbt-py3.11) ➜  ba-finance-dbt git:(data_diff_recce) poetry add recce
Using version ^0.40.0 for recce

Updating dependencies
Resolving dependencies... (5.8s)

Package operations: 21 installs, 0 updates, 6 removals

  - Removing attrs (24.2.0)
  - Removing distlib (0.3.9)
  - Removing jsonschema (4.23.0)
  - Removing jsonschema-specifications (2024.10.1)
  - Removing referencing (0.35.1)
  - Removing rpds-py (0.20.0)
  - Installing sniffio (1.3.1)
  - Installing anyio (4.6.2.post1)
  - Installing smmap (5.0.1)
  - Installing wrapt (1.16.0)
  - Installing deprecated (1.2.14)
  - Installing gitdb (4.0.11)
  - Installing h11 (0.14.0)
  - Installing pynacl (1.5.0)
  - Installing starlette (0.41.2)
  - Installing fastapi (0.115.4)
  - Installing gitpython (3.1.43)
  - Installing itsdangerous (2.2.0)
  - Installing portalocker (2.10.1)
  - Installing py-markdown-table (1.1.0)
  - Installing pygithub (2.5.0)
  - Installing python-multipart (0.0.17)
  - Installing sentry-sdk (2.18.0)
  - Installing uvicorn (0.32.0)
  - Installing watchdog (6.0.0)
  - Installing websockets (14.0)
  - Installing recce (0.40.0)

Writing lock file

when I run dbt compile --target prod, I get this error

(ba-finance-dbt-py3.11) ➜  intacct_models git:(recce_test) ✗ dbt compile --target prod
Traceback (most recent call last):
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/bin/dbt", line 5, in <module>
    from dbt.cli.main import cli
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/lib/python3.11/site-packages/dbt/cli/__init__.py", line 1, in <module>
    from .main import cli as dbt_cli  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/lib/python3.11/site-packages/dbt/cli/main.py", line 14, in <module>
    from dbt.cli import requires, params as p
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/lib/python3.11/site-packages/dbt/cli/requires.py", line 5, in <module>
    from dbt_common.clients.system import get_env
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/lib/python3.11/site-packages/dbt_common/clients/system.py", line 1, in <module>
    import dbt_common.exceptions.base
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/lib/python3.11/site-packages/dbt_common/exceptions/__init__.py", line 1, in <module>
    from dbt_common.exceptions.base import *  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/lib/python3.11/site-packages/dbt_common/exceptions/base.py", line 6, in <module>
    from dbt_common.dataclass_schema import ValidationError
  File "/Users/erik.chu/Documents/Repositories/ba-finance-dbt/.venv/lib/python3.11/site-packages/dbt_common/dataclass_schema.py", line 3, in <module>
    import jsonschema
ModuleNotFoundError: No module named 'jsonschema'

Expected Behavior
dbt to still compile after installing recce
Steps To Reproduce
see above
Relevant log output
pyproject.toml file

[tool.poetry]
name = "ba-finance-dbt"
version = "3.32.0"
description = ""
readme = "README.md"
# package-mode = false

[[tool.poetry.source]]
name = "codeartifact-prod"
url = aws code artifact
priority = 'primary'

[[tool.poetry.source]]
name = "codeartifact-dev"
url = aws code artifact
priority = 'supplemental'

[tool.poetry.dependencies]
python = ">=3.10,<3.12"
dbt-core = "^1.8.7"
dbt-snowflake = "^1.8.3"
boto3 = "^1.34.45"
montecarlodata = "^0.80.0"
setuptools = "^69.0.3"
recce = "^0.40.0"

[tool.poetry.group.dev.dependencies]
dbt-invoke = "^1.0.0"
sqlfluff = "^2.3.5"
yamllint = "^1.35.1"
black = "^24.2.0"
pylint = "^3.0.3"
bandit = "^1.7.7"
dbt-helper = "^0"
pre-commit = "^4.0.1"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

Environment

recce: 0.40.0
OS: MacOs Sequoia 15.1
Python: Python 3.11.8
Data Warehouse: Snowflake
dbt:  dbt-snowflake 1.8.4

Additional Context
No response
DRC-892

Hi @erikchu13
Did you tried reinstall all packages by:
rm poetry.lock
poetry update
poetry install

We have a open source dbt project using DuckDB, TodoEFC-dbt, which uses Poetry as well.
But I cannot reproduce your issue in this project.
Meanwhile, I'm trying to build another one from dbt-labs/jaffle-shop to have a base for better discussion.

Hi @erikchu13
I create a repo jaffle-shop-snowflake to reproduce the issue but I can run dbt successfully.
Please try to reproduce the issue on branch "with-poetry"
git clone git@github.com:DataRecce/jaffle-shop-snowflake.git
cd jaffle-shop-snowflake
git checkout with-poetry

FYI:
poetry env info

Virtualenv
Python:         3.10.12
Implementation: CPython
Path:           /Users/evenwei/Library/Caches/pypoetry/virtualenvs/jaffle-shop-snowflake-P8JBmzEO-py3.10
Executable:     /Users/evenwei/Library/Caches/pypoetry/virtualenvs/jaffle-shop-snowflake-P8JBmzEO-py3.10/bin/python
Valid:          True

Base
Platform:   darwin
OS:         posix
Python:     3.10.12
Path:       /Users/evenwei/.pyenv/versions/3.10.12
Executable: /Users/evenwei/.pyenv/versions/3.10.12/bin/python3.10

poetry show | grep jsonschema
jsonschema                 4.23.0      An implementation of JSON Schema val...
jsonschema-specifications  2024.10.1   The JSON Schema meta-schemas and voc...

dbt compile
02:41:26  Running with dbt=1.8.7
02:41:26  Registered adapter: snowflake=1.8.4
02:41:26  [WARNING]: Configuration paths exist in your dbt_project.yml file which do not apply to any resources.
There are 1 unused configuration paths:
- seeds.jaffle_shop
02:41:26  Found 13 models, 27 data tests, 6 sources, 19 metrics, 759 macros, 6 semantic models, 3 saved queries, 3 unit tests
02:41:26
02:41:29  Concurrency: 4 threads (target='dev')
02:41:29

Hi Evan,
Thanks for your help. It's been resolved and I'm now using Recce! It was a
Poetry issue - this ticket can be closed.
Best,
Erik
On Tue, Nov 12, 2024 at 5:54 PM Even Wei @.***> wrote:

Hi @erikchu13 https://github.com/erikchu13
Did you tried reinstall all packages by:
rm poetry.lock
poetry update
poetry install
We have a open source dbt project using DuckDB, TodoEFC-dbt
https://github.com/DataRecce/TodoFEC-dbt, which uses Poetry as well.
But I cannot reproduce your issue in this project.
Meanwhile, I'm trying to build another one from dbt-labs/jaffle-shop to
have a base for better discussion.
—
Reply to this email directly, view it on GitHub
https://github.com/DataRecce/recce/issues/481#issuecomment-2472160972,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG34HLMAIT4OTPVHK67LR5T2AKWOHAVCNFSM6AAAAABRUMLIS6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZSGE3DAOJXGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


[XLA:GPU] Add sm_75 to LLVM supported procs list

This is required to prevent fallback to the default sm version when running on GPUs with the Turing architecture.
Attn @jlebar
I only noticed this because I got the below error. It also suggests that sm_30 is not actually supported by XLA and should be dropped (especially as the default). TF itself also only supports >= sm_35. I can add that to this PR if you think that's a good idea.
2018-12-13 15:04:11.447530: W tensorflow/compiler/xla/service/gpu/llvm_gpu_backend/nvptx_backend_lib.cc:135] Unknown compute capability (7, 5) .Defaulting to telling LLVM that we're compiling for sm_30
2018-12-13 15:04:11.854629: I tensorflow/compiler/xla/service/gpu/nvptx_compiler.cc:535] ptxas /tmp/tempfile-astrobox-7d7fa700-29182-57cef552f0d6f, line 1059; error   : Instruction 'atom.{min,max}.{s64,u64}' requires .target sm_32 or higher
2018-12-13 15:04:11.854697: I tensorflow/compiler/xla/service/gpu/nvptx_compiler.cc:535] ptxas fatal   : Ptx assembly aborted due to errors

@d0k is OOO for the next week, so I can take this.

I only noticed this because I got the below error. It also suggests that sm_30 is not actually supported by XLA and should be dropped (especially as the default).

Agree, sounds like we should bump that to sm_35.  Why don't we do it in a separate patch in case we have to revert one of them for some reason?


Font color is too bright

I've noticed some fatigue using this plugin, related to the color contrast of the background and letters. Issue seem to be that the font is simply too bright, with a value of #fff.
Could the font color be adjusted to say #c9d1d9  ? This is the same color used by github for the README.md preview, which I find a bit more soothing.

Hi andersfylling, thank you for submitting your feedback. Great input and idea - will update!


Inconsistent behavior when passing undefined to a function

@gabelevi points out that this doesn't type check:
function foo(x?: number) {}

function bar() {
    foo(undefined);
}

It seems like it should.
There is an observable distinction between foo(undefined) and foo() in that arguments.length will have a different value. So there is an argument that the current behavior isn't totally wrong. But distinguishing between an explicit and implicit undefined is generally considered bad API design.
From IRC:
danvk: flow-help: I’m puzzled by the error in this gist: https://gist.github.com/danvk/894d978ee9229400b72c
danvk: I’m passing a value that’s Object|undefined to a constructor that expects an optional Object parameter
danvk: which seems like it should be OK
glevi: Like this is an error: http://tryflow.org/#90ca4cbbaf98fe3d5c14eb8a8e2c53e1
glevi: But this is not: http://tryflow.org/#434a04ebff6649df1f66f222e453c75d
glevi: danvk: Sure...we seem to be somewhat inconsistent with what we let flow into an optional param...this doesn't work either: http://tryflow.org/#c788cea5d233f6449ee51b6d75297dbf

danvk: the issue boils down to whether explicit and implicit undefined should be considered the same thing
glevi: danvk: I used to think no and then I read the default parameter spec and now I think they should be...I'm just not happy about it

it seems to me that if we don't allow this, then multiple optional params, e.g. function foo(x?: number, y?: number) {} are significantly less useful... you can only do (pseudo-signature) foo([x[, y]]), not foo([x], [y]).
foo(undefined, 123) seems like a reasonable thing to want to do.

This is also an issue for parameters with default values:
/* @flow */

function test(foo = "bar"): string {
    return foo;
}

test(undefined) // False failure: undefined ~> string


Update, reorganize README

Update and reorganize README:

Update development setup information
Add the Crossfeed logo
Add a short blurb about what Crossfeed does in more detail
Move development information to CONTRIBUTING.md

Screenshot:

Cool - keeping logo out for now as we may do some co-branding with DDS.


Check fonts of Toast message

It looks very light as compared to design (Need to make changes across the app )

Check Design

Resolved,


Histogram/Dot plot/Spectrum plot behavior

Per our group meeting this morning, this is how we decided the dot plots/spectrum viewer should behave. Some of this is more general functionality that may belong in the cosmicds repo, but I'll put everything here so all the related material is in one place.
I probably should have included screenshots to avoid being so wordy, but hopefully everything will make sense based on our prior conversation. If you have questions, let me know.
@johnarban & @Carifio24, please feel free to add anything I missed, and you can divide up these tasks between you as you see fit.
Histogram viewer

All histograms (including the dot plot variant) should have a gray, vertical measuring tool that tells you the x-value of that particular bin (as we have for the spectrum viewer). The measuring tool should be behind all the subset layers so it doesn't block data points.
Histograms should have bins with the same number of sig figs as data are displayed to students. For example, the age slider values are given to students in integers (even though our database stores extra decimal places), so the histogram bin size should be no smaller than what would center on integer values.

Dot Plot alone

The green orange-red dot that represents "my" measurement should align with one of the towers (and not lie between tower bins). Instead of green, I think we should use the same orange-y red that we use in the Stage 4 (formerly Stage 3) Hubble viewers for "my data" - so anything that is "my" measurement has a consistent color through the story.
If a student uses the vertical measuring tool to "select" a tower, that tower should be displayed as a subset in a different color that is overlaid in front of the original color (but behind "my" measurement).
If a student zooms in on an x-range that includes the subset, that subset will split into new towers that have the same color as the previously selected tower. (glue subsets will do this for us automatically).
If a student zooms in on a region of the graph that includes a colored subset of the original graph, selecting a tower will cause it to be highlighted in a new color and be assigned to a new subset.
At any given zoom level (including the original), the students can only "select" one tower at a time. If the student remains at the same zoom level and clicks on a different tower, the subset that has the new color will switch to the new tower.
If a student resets the zoom to the original level, all the subsets are cleared.
To avoid slowdowns from arbitrarily large subsets, we will only allow up to 3 nested subsets.
We should provide a button/mechanism for clearing the subsets that doesn't require students to reset the whole viewer range.

Dot Plot --> Spectrum Viewer connections

The spectrum viewer should have "my" wavelength marked with an orange-red vertical marker (that is positioned behind the markers but in front of the vertical measuring tool that the user can slide back and forth).
If a student is working within the dot plot, the gray vertical measuring tool in the spectrum viewer should disappear (rather than sit at some random wavelength corresponding to the last place the student's mouse was within that viewer).
If a student selects a tower in the velocity dot plot, a vertical line (in the same color as the dot plot subset) should be drawn in the spectrum viewer showing what wavelength goes with that measurement. That line would change its location every time the student chooses a new subset. I think this line should be behind the orange-red line showing "my" measurement but I could be convinced otherwise.
If a student zooms in on an x-range of the dot plot, the spectrum viewer should display the range of wavelengths that corresponds to the range of velocities displayed (as John has already set up nicely).
If a student zooms in on an x-range of the dot plot that includes a previously marked subset - which is then split into more than one tower - the spectrum graph should NOT have a wavelength marked because there would actually need to be a rectangle spanning multiple wavelengths to mark the new towers the original tower split into. (While that functionality would be cool, I think it gets too complicated to explain to students and for us to code up. Hopefully, zooming into corresponding x-ranges will be enough to show students how a span of velocity values corresponds to a span of wavelength values.)  Instead, when a marked velocity tower is split, the wavelength marker goes away until a new velocity subset is chosen from the new range of x-values.

Spectrum Viewer --> Dot Plot connections

If a student is working actively within the spectrum viewer, the gray vertical measuring tool in the dot plot should disappear.
If a student uses the vertical measuring tool in the spectrum viewer to click on different wavelengths, their measured value in the table should NOT change (which is how John has it currently set up). Instead, clicking with the measuring tool will move the dot plot's measuring tool to the same location.

I think this functionality is all mostly in place. If other issues come up, I will open a new issue.


DBZ-1979 - Version selector should show all releases

https://issues.redhat.com/browse/DBZ-1979

Applied; thanks!


docs: fixed module name

The same error is also in other modules - there's probably a template somewhere that needs to be fixed.

@helix84 see https://github.com/inveniosoftware/cookiecutter-invenio-module/

@helix84 can you add yourself also to authors file?

Fixed in inveniosoftware/cookiecutter-invenio-module/pull/59. Added myself to authors here. I hope you don't mind the amend&force-push here. Do you want me to fix up other modules, too, or do you have some kind of automation that could help update them?

@helix84 A force push into feature branch is OK, but please rebase first against latest upstream/master.  We have some semi-automated multi-repository PR update techniques, so that you don't have to do it manually  everywhere...

Thanks, rebased. Where can I look to learn more about the automation?

@helix84 we are working on polishing our guidelines but most you can find around http://invenio.readthedocs.io/en/latest/processes/developing.html

Added myself to authors here.

@helix84 I can't see the change 😞

@jirikuncar Sorry, done.


using different Julia versions

is there a way to use a different Julia version (mainly through juliaup)?

Want to add a :+1: to this issue: https://github.com/MilesCranmer/AirspeedVelocity.jl/issues/5?
I'll add a note there on this


Modularise plattar-embed and de-couple code

Refer to Issue #17
Rewrote plattar-embed.ts to use controllers via the state design pattern and common interfaces. This will allow adding more controllers down the line that conforms to the common interfaces

Testing
Tested the following functionality

Launches <plattar-viewer> with provided Scene ID - (pass)

<plattar-embed scene-id="1adeea20-5e04-11ec-8d4e-6d57c9a95cc5" init="viewer" />

Launches <plattar-viewer> with provided Scene ID and loads provided variation for the product - (pass)

<plattar-embed scene-id="1adeea20-5e04-11ec-8d4e-6d57c9a95cc5" product-id="391b5507-675d-fa69-69bd-66e83b86550d" variation-id="d89be000-5dff-11ec-a82c-6f072e2ffe81" init="viewer" />

Launches <plattar-product> with provided Product ID and loads the default Variation - (pass)

<plattar-embed product-id="bd8edea0-5dff-11ec-bff9-fda936394ec1" init="viewer" />

Launches <plattar-product> with provided Product ID and loads the provided Variation ID - (pass)

<plattar-embed product-id="bd8edea0-5dff-11ec-bff9-fda936394ec1" variation-id="d89be000-5dff-11ec-a82c-6f072e2ffe81" init="viewer" />

Launches <plattar-configurator> with provided Scene ID - (pass)

<plattar-embed scene-id="c49e5c30-469c-11ec-963f-ddbb1b50e719" embed-type="configurator" init="viewer">

Tested QR Code rendering for all above nodes - (pass)


Pin Sphinx 7.1 (and other versions)

Sphinx 7.2 has a number of breaking changes: https://github.com/sphinx-doc/sphinx/issues/11608
We've been running into one with furo specifically, where it thinks a html_style is set for some reason.

Sphinx 7.2.2 has been released, please may you test with the new version?
A

Trying in #146 - thank you for reaching out!