R8 NullPointerException with OkHttp 3.13.1

When I upgrade to OkHttp 3.13.1, my release builds with R8 fails to build.
Versions that I have:
OkHttp: 3.13.1
Android Gradle Plugin: 3.3.1
Gradle: 5.1.1
Note: Tried with r8 dependency latest version: 1.3.52 and with whatever AGP 3.3.1 ships with.
Here is my gradle.properties
android.enableR8=true
android.enableR8.fullMode=true

And here is the stacktrace of the build.
> Task :app:transformClassesAndResourcesWithR8ForExtranetRelease
R8 is an experimental feature. If you experience any issues, please file a bug at
https://issuetracker.google.com, using 'Shrinker (R8)' as component name. You can
disable R8 by updating gradle.properties with 'android.enableR8=false'.

/Users/sdane/dev/wf/waystation-app/android/app/build/intermediates/proguard-files/proguard-android-optimize.txt-3.3.1:17:2-23: D8: Ignoring option: -optimizationpasses

/Users/sdane/.gradle/caches/transforms-2/files-2.1/d290ba94b37fb20f73ba886f45da97b9/jetified-okhttp-3.13.1.jar: D8: Type `org.conscrypt.Conscrypt` was not found, it is required for default or static interface methods desugaring of `void okhttp3.internal.platform.ConscryptPlatform.configureSslSocketFactory(javax.net.ssl.SSLSocketFactory)`

> Task :app:transformClassesAndResourcesWithR8ForExtranetRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithR8ForExtranetRelease'.
> java.lang.NullPointerException (no error message)

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

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithR8ForExtranetRelease'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:79)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
        at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.NullPointerException
        at com.android.tools.r8.graph.GraphLense.mapDexEncodedMethod(GraphLense.java:111)
        at com.android.tools.r8.ir.desugar.InterfaceMethodDesugaringLense.mapDexEncodedMethod(InterfaceMethodDesugaringLense.java:38)
        at com.android.tools.r8.ir.optimize.Outliner.selectMethodsForOutlining(Outliner.java:868)
        at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:522)
        at com.android.tools.r8.R8.run(R8.java:398)
        at com.android.tools.r8.R8.run(R8.java:229)
        at com.android.tools.r8.R8.lambda$runForTesting$1(R8.java:220)
        at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:60)
        at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:48)
        at com.android.tools.r8.R8.runForTesting(R8.java:216)
        at com.android.tools.r8.R8.run(R8.java:129)
        at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:184)
        at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:244)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
        at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
        at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
        at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
        at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
        at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
        at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
        at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
        at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
        at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
        at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
        at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
        at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
        at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
        at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
        at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
        ... 33 more

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1m 17s
294 actionable tasks: 108 executed, 184 from cache, 2 up-to-date
➜  android git:(dev-android)

File a bug on R8? Not sure what a library is supposed to be doing here.

Will do. Since it happens only for OkHttp I thought It must be something to do with the new version. Can it be related to the fact that the new version support lollipop+? Our app is also minSdkVersion 21

That would be for the R8 team to diagnose because it's their tool that's failing to ingest the code.

Of course 👍 Feel free to close if you don't like it.
I just wanted to open it here too for 2 reasons:

there may be a quicker solution to fix it on OkHttp's side
to document in case other fellow developers are hit with the same problem.

Feel free to link the R8 issue so we can track. And link this issue on
their bug report as they frequently chime in on the original library as to
what the problem was.
On Mon, Feb 11, 2019 at 10:06 AM Said Tahsin Dane<EMAIL_ADDRESS>wrote:

Of course 👍 Feel free to close if you don't like it.
I just wanted to open it here too for 2 reasons:

there may be a quicker solution to fix it on OkHttp's side
to document in case other fellow developers are hit with the same
problem.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/square/okhttp/issues/4604#issuecomment-462360659, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAEEEVGvAwYs_1ww1Kb0Bl1XjSLrbb8wks5vMYbZgaJpZM4aztAV
.

Have you tried this with the latest alpha? I noticed the same thing and tried with 3.5.0 alpha and it was fixed there for me.

AGP 3.4.0-beta03 also works.

AGPBI: {"kind":"error","text":"Static interface methods are only supported starting with Android N (--min-api 24): okhttp3.Request okhttp3.Authenticator.lambda$static$0(okhttp3.Rou
te, okhttp3.Response)","sources":[{}],"tool":"D8"}

@XiangliJiaxing that is unrelated. You need to turn on Java 8. See https://developer.android.com/studio/write/java8-support

@tasomaniac If you've opened an issue with the R8 team on this, could you please link it here? I am encountering this exact same issue and would love to star and track your issue in google's issue tracker as well.
If you haven't opened one up yet, please let me know because otherwise I'd like to open one myself.
Thanks!

A small note that might be helpful: I tried generating an APK with okhttp 3.12.1 and okio 1.17.3 and it worked, which confirms the issue is with an interaction between R8 and okhttp, rather than with R8 and okio.

I have yet another update: I tried upgrading R8 from 1.3.54 to 1.4.39 and then the build worked! Unfortunately this also caused my app to have a runtime crash, but that might not have anything to do with this issue and be specific to my app.
Here is how you explicitly set a version of R8:
    repositories {
        maven {
            url 'http://storage.googleapis.com/r8-releases/raw'
        }
        maven {
            url 'https://kotlin.bintray.com/kotlinx/'
        }
    }
    dependencies {
        // Must be before the Gradle Plugin for Android.
        classpath 'com.android.tools:r8:1.4.39'

        // https://developer.android.com/studio/releases/gradle-plugin.html
        classpath 'com.android.tools.build:gradle:3.3.1'
    }

You only need the repository for pre-release builds. Numbered versions are on the Google repo.

@ygnessin I haven't find time to open the issue on R8 yet. I tried with 1.3.52 will also try with 54 today and report back.

@tasomaniac I was on 1.3.54 when I encountered this, so no need for you to try :) same error occurs. I'll open a google issue in a bit and link it here.

I've filed an issue with google for this, here it is: https://issuetracker.google.com/issues/124457717
Please help out by starring it. Thanks!

@ygnessin Thank you for filing that bug on the R8 issue tracker.
We should continue the discussion there, as this is most likely not an okhttp issue. However, I will continue here with this comment as well:
From the stack trace it looks like a duplicate of https://issuetracker.google.com/issues/124064876, which also does not reproduce with a recent version of R8 (merged to the 1.4 branch in 1.4.27). This also fits well with the fact that okhttp 1.13 starts using Java 8 features. However since @ygnessin also report that there are runtime crashes there might be more to this.
@ygnessin What is the runtime crash that you see after upgrading?
@tasomaniac and @ygnessin It would be great to have a reproduction for this particular case, so if you are able to share one of the projects where the upgrade cause issues that would be very helpful. You can do it privately with<EMAIL_ADDRESS>if that is a better option.

The issue has now been fixed in R8, and there was actually two issues:

The NullPointerException from R8 (which was fixed in 1.4.27)
The runtime crach mentioned in https://github.com/square/okhttp/issues/4604#issuecomment-463474862 (which was a VerificationError)

They are both fixed in 1.4.57, and that version can be used as described in https://github.com/square/okhttp/issues/4604#issuecomment-463474862.
For more information see https://issuetracker.google.com/issues/124457717.

Here’s the fix from Google:
Yuval, this should now be fixed, and with version 1.4.57 of R8 I can build and run you project with okhttp 3.13.1.
If you want to update to okhttp 3.13.1, you can enable R8 1.4.57 by making the following additions to you root build.gradle file:
buildscript {
    ...
    repositories {
        ...
        maven {
            url 'http://storage.googleapis.com/r8-releases/raw'
        }
    }

    dependencies {
        classpath 'com.android.tools:r8:1.4.57'  // Must be before the Gradle Plugin for Android.
        classpath 'com.android.tools.build:gradle:3.3.1'  // You don't need to upgrade this to use a newer R8 version.
        ...
     }
}

We aim at getting this into Android Studio 3.4.0-rc01, which is scheduled for release in about a week.

Looks like this was included in 3.4.0-rc01 🎉

And this broken again with r8 1.5.20-dev in new android studio 3.5.alpha

Andrew,
Can you provide some additional information on the failure with r8 1.5.20-dev? Stack trace from build and/or runtime.

Hi there, sorry for delay, was pretty busy these days.
I'm using Android Studio 3.5 Canaray 13
Here is console output
> Task :app:transformClassesAndResourcesWithR8ForRelease
R8 is a new Android code shrinker. If you experience any issues, please file a bug at
https://issuetracker.google.com, using 'Shrinker (R8)' as component name. You can
disable R8 by updating gradle.properties with 'android.enableR8=false'.
Current version is: 1.5.20-dev (build a85ccd499f6d149322870a8aedddc92152071a01 from go/r8bot (luci-r8-ci-xenial-11-e43k)).

R8: Missing class: com.google.android.gms.vision.Detector$Processor

/Users/hospes/.gradle/caches/transforms-2/files-2.1/eb1d986bbfd181a4fa15438735dba3a6/jars/classes.jar: R8: Type `libcore.io.Memory` was not found, it is required for default or static interface methods desugaring of `void com.google.android.gms.internal.measurement.zzhw$zza.zza(long, byte)`
/Users/hospes/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.14.1/67612a22d4b8f33c55263b188bf5a72774d06d18/okhttp-3.14.1.jar: R8: Type `org.conscrypt.Conscrypt` was not found, it is required for default or static interface methods desugaring of `void okhttp3.internal.platform.ConscryptPlatform.configureSslSocketFactory(javax.net.ssl.SSLSocketFactory)`
R8: synthesized for lambda desugaring: Type `okhttp3.Dns$-CC` was not found, it is required for default or static interface methods desugaring of `java.util.List okhttp3.-$$Lambda$Dns$mTkNcZf2K4euny3_jks6Cac6Az0.lookup(java.lang.String)`
R8: synthesized for lambda desugaring: Type `okhttp3.logging.HttpLoggingInterceptor$Logger$-CC` was not found, it is required for default or static interface methods desugaring of `void okhttp3.logging.-$$Lambda$HttpLoggingInterceptor$Logger$smmbr_QNvGsDM4WCreZZz8uMHLQ.log(java.lang.String)`
R8: synthesized for lambda desugaring: Type `okhttp3.Authenticator$-CC` was not found, it is required for default or static interface methods desugaring of `okhttp3.Request okhttp3.-$$Lambda$Authenticator$xBBU2iHkJpDKH0vhaB2vteUyEoc.authenticate(okhttp3.Route, okhttp3.Response)`

> Task :app:transformClassesAndResourcesWithR8ForRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithR8ForRelease'.
> java.lang.NullPointerException (no error message)

And here is stack trace for it:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithR8ForRelease'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        ... (cutted to be more shorter)

Caused by: java.lang.NullPointerException
        at com.android.tools.r8.naming.ClassNameMinifier.a(:81)
        at com.android.tools.r8.naming.ClassNameMinifier.a(:25)
        at com.android.tools.r8.naming.ClassNameMinifier.a(:2)
        at com.android.tools.r8.naming.Minifier.run(:15)
        at com.android.tools.r8.R8.a(:493)
        at com.android.tools.r8.R8.c(:1)
        at com.android.tools.r8.R8.b(:1)
        at com.android.tools.r8.utils.t.a(:23)
        at com.android.tools.r8.R8.runForTesting(:3)
        at com.android.tools.r8.R8.run(:3)
        at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:195)
        at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:261)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:106)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
        ... (cutted to be more shorter)

This looks like the same as R8 issue 131210377. If you have the time could you try the [additional logging with a custom R8 version] (https://issuetracker.google.com/131210377#comment6), to pinpoint the actual class(es) causing this, as it might not be OkHttp, but some other dependency possibly compiled with Java 6 (class file version 50), were the EnclosingMethod attribute is not present.

Still have problem with Gradle 3.4 and Okhttp 3.13.1
D8: synthesized for lambda desugaring: Type `okhttp3.Authenticator$-CC` was not found, it is required for default or static interface methods desugaring of `okhttp3.Request okhttp3.-$$Lambda$Authenticator$xBBU2iHkJpDKH0vhaB2vteUyEoc.authenticate(okhttp3.Route, okhttp3.Response)`
D8: synthesized for lambda desugaring: Type `okhttp3.Dns$-CC` was not found, it is required for default or static interface methods desugaring of `java.util.List okhttp3.-$$Lambda$Dns$mTkNcZf2K4euny3_jks6Cac6Az0.lookup(java.lang.String)`
D8: synthesized for lambda desugaring: Type `okhttp3.logging.HttpLoggingInterceptor$Logger$-CC` was not found, it is required for default or static interface methods desugaring of `void okhttp3.logging.-$$Lambda$HttpLoggingInterceptor$Logger$smmbr_QNvGsDM4WCreZZz8uMHLQ.log(java.lang.String)`

Source code build OK but app crash when call any api via network.
This looks like the okhttp problem !

I'm having this issue with okhttp 3.14.1 with gradle 5.1.1 (all stable releases, no beta/alphas).
android gradle 3.4.0
error:
AGPBI: {"kind":"error","text":"Static interface methods are only supported starting with Android N (--min-api 24): java.util.List okhttp3.Dns.lambda$static$0(java.lang.String)","sources":[{}],"tool":"D8"}
> Task :axon-view:transformClassesWithDexBuilderForStandardDebug
com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/mwolfe/.gradle/caches/transforms-2/files-2.1/4ddf64d7ed28e4af7265f85f04e77b12/jars/classes.jar
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
	at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
	at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
	at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:149)
	at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:420)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
	at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
	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:498)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
	at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
	at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
	at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
	at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
	at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
	at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
	at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
	at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
	at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
	at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
	at java.util.Optional.orElseGet(Optional.java:267)
	at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
	at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
	at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
	at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
	at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
	at java.util.Optional.map(Optional.java:215)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
	at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
	at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:745)
	at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:909)
	at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.lambda$convertToDexArchive$6(DexArchiveBuilderTransform.java:834)
	at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle
android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
See https://developer.android.com/studio/write/java8-support.html for details. Alternatively, increase the minSdkVersion to 26 or above.
	at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:124)
	at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:101)
	at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:904)
	... 6 more
	at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:81)
	at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:45)
	at com.android.tools.r8.D8.run(D8.java:94)
	at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:99)
	... 7 more
	at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:101)
	at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:72)
	at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:66)
	... 10 more
> Task :axon-view:transformClassesWithDexBuilderForStandardDebug FAILED
> Task :axon-view:buildInfoGeneratorStandardDebug
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':axon-view:transformClassesWithDexBuilderForStandardDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/mwolfe/.gradle/caches/transforms-2/files-2.1/4ddf64d7ed28e4af7265f85f04e77b12/jars/classes.jar

I encountered the same error, but I fixed it with the following version.
buildscript {
    repositories {
        maven { url 'https://dl.bintray.com/kotlin/kotlinx/' }
    }
    dependencies {
        classpath 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:<IP_ADDRESS>'
        classpath 'com.android.tools:r8:1.4.93'
        classpath 'com.android.tools.build:gradle:3.5.0-beta01'
    }
}

There has been a number of reports (e.g. https://issuetracker.google.com/129738209) where the error "Static interface methods are only supported starting with Android N (--min-api 24)" is produced when Instant Run is used.
@mwolfe38 Can you comment on if that is the case for you as well?

@sgjesse yes, disabling instant run fixed it for me. It would be nice to have instant run working again though.

Following the issue duplication chain this ends at https://issuetracker.google.com/129362492, which should be fixed in Android Studio 3.4.1. Not exactly sure which 3.5 beta has the fix.


Issue with refresh_token

I'm having issues with refreshing a Spotify token using the OAuth2 library.
This is the debug I'm getting.
[debug]   OAuth2 Provider Request
  url: "https://accounts.spotify.com/api/token"
  method: :post
  headers: [{"accept", "application/x-www-form-urlencoded"}, {"content-type", "application/x-www-form-urlencoded"}, {"authorization", "Basic OT...DA="}]
  body: "grant_type=refresh_token&refresh_token=AQ...1Lg"
  req_opts: []

Doing the same request using Curl or Postman works alright, but via OAuth2 always gives a 406...
This would be the Curl equivalent:
curl -X "POST" "https://accounts.spotify.com/api/token" \
     -H 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
     -u '9...1:1...0' \
     --data-urlencode "grant_type=refresh_token" \
     --data-urlencode "refresh_token=AQ...A1Lg"

I wonder what am I doing wrong.
This is my last attempt following the Readme:
refresh_client = OAuth2.Client.new([
  strategy: OAuth2.Strategy.Refresh,
  client_id: System.get_env("VF_SPOTIFY_CLIENT_ID"),
  client_secret: System.get_env("VF_SPOTIFY_CLIENT_SECRET"),
  token_url: "https://accounts.spotify.com/api/token",
  params: %{"refresh_token" => refresh_token}
])

refresh_client = OAuth2.Client.get_token!(refresh_client)

I'm using OAuth2 version 2.0.0, in case this is relevant.
Thanks in advance for the help,
Miguel

I had similar problem (406 error), and solved it by overriding accept header when constructing client:
OAuth2.Client.new([
  strategy: ...,
  ...,
  headers: [{"accept", "application/json,application/x-www-form-urlencoded"}]
])

This bit me too, but I don't see anywhere in the repo where it explicitly sets that value on the Accept header, just Content-Type.  Should the OAuth2.Client.new function have a default that sets Accept to */*?

Thanks @sickill, I will give it a try. If it works then it seems that is missing the accepts application/json header as it has the other one.


if condition always true

here
compression variable is always 0 and else branch is never reached.

You are correct that the compression is always 0. That branch was introduced, so that when the JS implementation of BSDF starts supporting compression, it's easier to fit it in and we don't forget the alignment part.

Thanks for the heads-up though :)


Added Function sample for K8s/KN with JVM/Native

I have added this to the staging cluster: http://<IP_ADDRESS>/dashboard/accelerators/knative-function
Created an issue to review this sample - https://github.com/pivotal/acc-release/issues/55


chore: Continue testing after schema parsing errors if possible

Resolves #999
TODO:

[x] Solve the issue with Feedback.get_stateful_tests interface
[x] revisit test_schema_parsing_error
[ ] Write more comments
[ ] Add asserts to test_operation_with_unresolvable_reference
[ ] Write similar tests for pytest-subtest & pytest cases
[ ] Check cases not covered by tests
[ ] Output "paths"-level schema errors - probably a separate event + summary section

Codecov Report

Merging #1009 (eef9847) into master (418b56e) will decrease coverage by 0.50%.
The diff coverage is 88.96%.

@@            Coverage Diff             @@
##           master    #1009      +/-   ##
==========================================
- Coverage   99.67%   99.17%   -0.51%
==========================================
  Files          67       67
  Lines        4670     4741      +71
  Branches      768      781      +13
==========================================
+ Hits         4655     4702      +47
- Misses          5       19      +14
- Partials       10       20      +10

Flag
Coverage Δ

unittests
99.17% <88.96%> (-0.46%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/schemathesis/lazy.py
88.00% <52.94%> (-10.42%)
:arrow_down:

...rc/schemathesis/specs/openapi/stateful/__init__.py
95.74% <77.77%> (-4.26%)
:arrow_down:

src/schemathesis/runner/impl/threadpool.py
96.93% <81.25%> (-3.07%)
:arrow_down:

src/schemathesis/extra/pytest_plugin.py
95.69% <88.23%> (-4.31%)
:arrow_down:

src/schemathesis/schemas.py
99.34% <93.33%> (-0.66%)
:arrow_down:

src/schemathesis/exceptions.py
100.00% <100.00%> (ø)

src/schemathesis/runner/impl/core.py
97.19% <100.00%> (+0.09%)
:arrow_up:

src/schemathesis/specs/graphql/schemas.py
100.00% <100.00%> (ø)

src/schemathesis/specs/openapi/schemas.py
100.00% <100.00%> (ø)

src/schemathesis/stateful.py
100.00% <100.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 418b56e...eef9847. Read the comment docs.

Codecov Report

Merging #1009 (eef9847) into master (418b56e) will decrease coverage by 0.50%.
The diff coverage is 88.96%.

@@            Coverage Diff             @@
##           master    #1009      +/-   ##
==========================================
- Coverage   99.67%   99.17%   -0.51%
==========================================
  Files          67       67
  Lines        4670     4741      +71
  Branches      768      781      +13
==========================================
+ Hits         4655     4702      +47
- Misses          5       19      +14
- Partials       10       20      +10

Flag
Coverage Δ

unittests
99.17% <88.96%> (-0.46%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/schemathesis/lazy.py
88.00% <52.94%> (-10.42%)
:arrow_down:

...rc/schemathesis/specs/openapi/stateful/__init__.py
95.74% <77.77%> (-4.26%)
:arrow_down:

src/schemathesis/runner/impl/threadpool.py
96.93% <81.25%> (-3.07%)
:arrow_down:

src/schemathesis/extra/pytest_plugin.py
95.69% <88.23%> (-4.31%)
:arrow_down:

src/schemathesis/schemas.py
99.34% <93.33%> (-0.66%)
:arrow_down:

src/schemathesis/exceptions.py
100.00% <100.00%> (ø)

src/schemathesis/runner/impl/core.py
97.19% <100.00%> (+0.09%)
:arrow_up:

src/schemathesis/specs/graphql/schemas.py
100.00% <100.00%> (ø)

src/schemathesis/specs/openapi/schemas.py
100.00% <100.00%> (ø)

src/schemathesis/stateful.py
100.00% <100.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 418b56e...eef9847. Read the comment docs.


How to make it work with multiple inputs?

I have the issue that the plugin fails when I try to bundle multiple files. The error it throws is:

Invalid value for option "output.inlineDynamicImports" - multiple inputs are not supported when "output.inlineDynamicImports" is true.

This is my vite.config.js file:
import { defineConfig } from 'vite';
import { viteSingleFile } from 'vite-plugin-singlefile';
import { resolve } from 'path';

export default defineConfig({
  plugins: [viteSingleFile()],
  build: {
    emptyOutDir: false,
    rollupOptions: {
      input: {
        main: resolve(__dirname, 'index.html'),
        other: resolve(__dirname, 'other.html'),
      },
      output: {
        inlineDynamicImports: false,
      },
    },
  },
});

It only works if I either disable the plugin or only keep one input. The output.inlineDynamicImports setting doesn't do the trick, I still get the same error.
Thanks for your help.

Good question!
I don't use multiple input files for my use cases, but if you can create a standalone repository that demonstrates this limitation, I may be able to take a look at it and see if there's a solution. If practical, please start with this example build, since it's a minimal example and one I already test against:
https://github.com/richardtallent/vite-plugin-singlefile-example

You need to disable useRecommendedBuildConfig.

You need to disable useRecommendedBuildConfig.

This build is finished successfully, however the output did not merge to single file as expected.

Same problem here.
Standalone repository here:  https://github.com/fell-lucas/chrome-ext-template-preact-windi-vite
As multi output files are recommended, I want every output file include all source code from dependence -- in other words: no import in output file at all.

Is there any way to pacific one output file include all dependence source code, and meanwhile, another file use ES import as normal

Hi @delai,
This plugin was written with one purpose in mind: to use vite to be used to create an entire web page/site as a single file.
I've played around with the repo you posted, and immediately ran into the key issue: rollup does not support inlineDynamicImports=true when there are multiple input files:
https://rollupjs.org/guide/en/#outputinlinedynamicimports
This plugin depends on that option. Otherwise, you get inlined local JS, but the common JS chunks are not inlined, they are dynamically imported.
While you could probably write a plugin to do what you want, this one won't be reasonably capable of doing it.
If you can convince the rollup team to support this option with multiple input files, we can revisit the smaller changes in this plugin that would probably be needed to properly support multiple input files.

ok, thank you!

You need to disable useRecommendedBuildConfig.

This helped me today, thank you!
I would like to add another tip: set Vite's build.modulePreload to { polyfill: false }.
Otherwise, it would add extra import statemtnt that breaks single file bundles from running.
When everything is inlined in the html file, the preloading is meaningless anyway.


[BUG]: Check Foreign Relations

Description of the bug
Not sure if the relations are correctly set up.
Currently, I cannot delete a GPX object if it is assigned to a tour. Do we want this? Otherwise, I guess we'd have to move cascade: true to the GpxFile and not the Tour?
Steps To Reproduce
.
Additional Information
No response

We decided to leave it like this as it only influences the way we can delete a gpx file entry in the database using sql.


Struggling with form data onPageReinit

Hello Framework7 team,
I am struggling with form data not being populated onPageReinit (formFromJSON).
onPageInit all works fine.
Scenario: We have 2 views (viewMain and viewRight)
We have list items on a page in viewMain and call an item form in viewRight.
The form is populated nicely with the formFromJSON.
To make sure that the data is renewed when we call the form again from a second item link while the form is still open we included data-reload="true" data-ignore-cache="true".
This works fine.
But when we "close" the item form via javascript and reopen the form a second time no data is loaded in the form. The dataprovider formFromJSON is being called nicely.
Am I clear and can you advise?
	$$('.back').on('click', function(){
		console.log("back");
		rightView.router.loadPage('#index-right');
	})

Kind regards,
Mario

After doing several tests I found that after adding data-reload="true" there is no way to remove the page from the DOM
Please advise.
Kind regards,
Mario

I have solved it using the following code:
var element = document.getElementById("7keuringEdit");
element.parentNode.removeChild(element);

Kind regards,
Mario

I have to update the code like below. Don't ask me why but it works like below:
$('.page-on-left').remove();
var element = document.getElementById("7keuringEdit");
element.parentNode.removeChild(element);

Kind regards,
Mario

So i guess the problem is solved. Reopen if you still have this issue


Editable install is not being properly detected when install-python-deps encounters a cache miss and re-creates the virtual env

@jdesousa-TT noticed that the editable install still triggers the full production setup.py build flow on CI. This only seems to happen when we change the requirements files.
I believe self.is_editable_install_() is not properly working in the current way python environments are set up. Looks like self.build_lib is not being detected.
ex: https://github.com/tenstorrent/tt-metal/actions/runs/10098023662
cc: @dimitri-tenstorrent @TT-billteng @xanderchin

fix on branch
branch: https://github.com/tenstorrent/tt-metal/actions/runs/10100070887
example w/ cache miss: https://github.com/tenstorrent/tt-metal/actions/runs/10100071646
both should pass

The final run: https://github.com/tenstorrent/tt-metal/actions/runs/10103617152
What in the WORLDDDD happened?
@jdesousa-TT made a change to the requirements-dev.txt and triggered a venv cache miss, then a venv regeneration. For some reason, no test could import stuff from ttnn.
How did I find this out?

We use the following action to cache and set up virtual environments: https://github.com/getsentry/action-setup-venv with version v2.1.0. This action calls actions/setup-python underneath and then creates a virtual environment with python3 -m venv {{ env_dir }}, with this new Python.
First, I didn't understand the error messages. They mysteriously seemed to imply that they couldn't find imports from _ttnn.so. However, it was clear from the build artifact unzipping that we had the SO and were putting it in the right place in ttnn/ttnn. This implied that the editable install was not working.
I couldn't reproduce the error locally by checking a depth of 1, unzipping the artifact directly from github, and creating a new virtual environment. I could still import. We had to iterate on CI.
I decided to use the ttnn fd unit tests as a guinea pig to run the test and iterate quickly. I got rid of the build-artifact dependence and used the run-id arg of download-artifact to download an already built artifact on branch and added an extra convenience script right before the test command to put whatever commands I wanted.
I noticed that the egg link for metal_libs did not exist. This was the problem. However, I couldn't reproduce locally.
I wasn't too sure where to search for answers, as to me it seemed we were running the right commands everywhere, including the actions-setup-venv composite action.
I then tried replacing the actions-setup-venv step with a direct call to create_venv.sh. That worked! That at least means that create_venv.sh itself wasn't a problem when used alone.
I then noticed that the pip log outputs from the editable install step for tt-metal was slightly different between the run that called create_venv.sh directly and actions-setup-venv. I then put a step to check the version of pip in the convenience script I mentioned above. Voila - that was the problem. actions/setup-python inside the actions-setup-venv was giving us a virtual environment with pip==23.x.x, whereas the system python3.8 gave us 20.0.2.
I put a force install of pip==20.0.2 in create_venv.sh along with a change to the requirements file and that seemed to work.
Where to go from here
Depending on a specific version of pip is a stringent move that may cost us from freely upgrading. We should figure out exactly what is different with the editable install process and get rid of this dependence.
We should also consider different testing mechanisms to ensure our venv caching is hardened.
Version history of pip: https://pip.pypa.io/en/stable/news/

Found the issue with writeup. Now we know what to do.


Multiple features

First of all, thanks for this really nice and helpful tool :-)
I have added some new features to my master branch at https://github.com/zickgraf/tikzcd-editor/commits/master and I think some of them might be interesting for all users. If you are interested in some of them, let me know and I will provide pull requests.
I will give short descriptions of the changes:

https://github.com/zickgraf/tikzcd-editor/commit/d1d2448ec341e782df5c5db6f07a44f22ff27d91 This commit puts a textarea in the right half of the screen which immediately displays the code every time the diagram is changed. Additionally, if code is pasted in the textarea it gets parsed (with a very crude parser) and the diagram is shown/updated on the left.
https://github.com/zickgraf/tikzcd-editor/commit/1557aac6fa46b01ed5bfb2d8b6cd9fd7723ae1f7 This commit installs a local copy of MathJax for offline use.
https://github.com/zickgraf/tikzcd-editor/commit/8facd8101320899d5cbcd99a7048cc96eceb726c This commit pads the generated code such that all ampersands are aligned vertically.
https://github.com/zickgraf/tikzcd-editor/commit/1bc3a485a5ebc9f44074c03386361f83872e4a9c This commit adds parsing of "near start", "near end", "very near start" and "very near end" to the textarea mentioned above.

Note that nothing of this is polished yet but of course I will polish it before providing pull requests.

Wow, that's amazing work! I'd be most interested in the tikzcd diagram code parser (The diagram.fromCode() function) along with parsing of (very) near (start|end). Maybe I can find a better UI solution than for the text box taking up half of the available screen space. The automatic alignment of the generated code is also very nice.

Okay, perfect, I plan to learn a bit more about React/JSX, then polish the code, and afterwards open the PRs :-)

This is all merged now. Thanks for the nice collaboration :-)

Thank you for your contributions! I'll find some time in the next month to polish things further and release a new version with your changes.


List item taking excess width than required (higher screen res)

Description
On main project page, where all slides are present. On higher screen res the gap between column increases, but we are also able to click on blank space to select the slide in line (ss attached)

current behaviour:
Getting pointer cursor even outside the list item (in between column gap, specially when width increases)
Expected behaviour:
Should not able to open the slide if cursor is outside it. And list items should align horizontally centre on higher widths.
Steps to Reproduce:

Go to https://projects.100xdevs.com/
Press Ctrl/Cmd + '-' to increase the width/resolution.
Hover between column gap (outside list item.) You will be able to select item and get pointer icon.

Environment:
prod

minor css issue. I already have a fix ready. Can I take this

looks great, can u PR it?

@hkirat can u please this pull request


Yatin: Watch whitebazaar.in

Yatin requests the watch of the watch_keyword whitebazaar\.in. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

whitebazaar\.in has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by cigien in Charcoal HQ


Project Overview

When a pattern library is already setup in Alva, an overview of all projects should be shown.
As a first implementation the list of all projects is sufficient.
Further improvements include last changed status, edited by user and a sorting functionality.

If no Library is linked to Alva: The splashscreen is shown (the option to add a library --> already implemented)
If 1 library is linked to Alva: The project list of this library is shown (this issue)
If > 1 library is linked to Alva: The project list of the last used library is shown

This issue is only about the visual representation of this page. All further functionality is added in other issues.
As mentioned above, the project overview is shown when at least one library is already connected to Alva.
The page constists of:

Library Title
Project List
(2 columns)

List Header
("Name" & "Date modified")
List elements
(Project name & date modified [by user])

Add Project Button
(functionality not part of issue)

Related issues:

Create new project (#19)
Open project (not existing yet)
Delete project (#16)
Rename project (#160)
Change order of project list (not existing yet)
Change (not existing yet)


"Performance test" Weave Net

Scope

Gather performance metrics when testing Weave Net.
Store these metrics (in Prometheus? in BI?).

Dependencies
#2647
See also
#2648

Does this replace #1119?

Does this encompass #2623?


Multiple windows for the same opened project

I'd like to be able to open multiple windows with the same project being open in all of them. One window isn't enough for my big project, so I want to have more windows for the same project.

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Certificate clash between mkcert generated certificates (macOS/Nginx/Dnsmasq)

Apologies in advance, as the issue title doesn't begin to describe this ...
Current environment:
macOS - 10.14.5 / Mojave
Chrome - 75.0.3770.100 (Official Build) (64-bit)
Chrome Canary - 77.0.3854.3 (Official Build) canary (64-bit)
Safari - 12.1.1 (146<IP_ADDRESS>.1)
Safari Technology Preview - 87 (Safari 13.0, WebKit 146<IP_ADDRESS>)
Firefox - 68.0 (64-bit) (Quantum)
Installed via homebrew (2.1.7):
mkcert - 1.3.0
nginx - 1.71.1
dnsmasq - 2.80
I have dnsmasq configured to locally handle all DNS queries for the .test TLD via the following in /usr/local/etc/dnsmasq.conf
address=/test/<IP_ADDRESS>

With a corresponding /etc/resolver/test containing the following:
nameserver <IP_ADDRESS>

I also have Nginx configured to serve two local domains with SSL enabled via mkcert certificates installed in /usr/local/etc/ssl/certs

garygale.test and www.garygale.test (my personal domain)
www.getrentr.test (a company domain I'm working on)

$ ls /usr/local/etc/ssl/certs/
garygale.test+1-key.pem   www.getrentr.test-key.pem
garygale.test+1.pem       www.getrentr.test.pem

My personal domain uses no third party assets, with the exception of Google Analytics with the new tracking code mechanism. All is working well and as expected.
My company domain uses several third party assets, including Google Tag Manager, Lead Forensics and Adobe Fonts.
The company domain's SSL certificate (www.getrentr.test), when viewed in Chrome, is valid and for the correct domain (www.getrentr.test).

When loading the company domain's site, I have NET::ERR_CERT_COMMON_NAME_INVALID certificate errors for Google Tag Manager (https://www.googletagmanager.com/gtm.js?id=[redacted]) and Adobe Fonts (https://p.typekit.net/p.css?[redacted]), but not for Lead Forensics (https://secure.kilo6alga.com/js/[redacted].js).
Additionally, when visiting the Google Tag Manager and Adobe Fonts URLs in the browser, I get the NET::ERR_CERT_COMMON_NAME_INVALID error and the SSL certificates for both these domains appear to be using the other mkcert generated certificate for my (local) personal domain, rather than the SSL certificates for these actual target domains.
p.typekit.net certificate:

googletagmanager.com certificate:

This behaviour, with slightly different error messages due to browser differences, is repeated on Chrome Canary, Firefox, Safari and Safari Technology Preview.
I can't for the life of me figure out how this is happening; more specifically how the mkcert certificate for one domain is being used in place of some, but not all, third party assets.
I also freely admit that there's probably some unknown interaction between all the moving parts in this but despite many hours trying to narrow this down and work out what is going on, I have drawn a blank.
So basically ... help?

Update: After some more digging around on our network, this appears to be a side effect of running the Pi Hole ad blocker. Disabling this resolves the problem. So I'll close this issue now.
Also @FiloSottile thank you for an awesome and insanely useful piece of code!


0319 - Bulb Switcher

Description of the Problem
There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb.  For the i-th round, you toggle every i bulb. For the n-th round, you only toggle the last bulb. Find how many bulbs are on after n rounds.
Example:
Input: 3
Output: 1
Explanation:
At first, the three bulbs are [off, off, off].
After first round, the three bulbs are [on, on, on].
After second round, the three bulbs are [on, off, on].
After third round, the three bulbs are [on, off, off].

So you should return 1, because there is only one bulb is on.

Code
class Solution:
    def bulbSwitch(self, n: int) -> int:

Link To The LeetCode Problem
LeetCode

i want to solve this problem in python. Can i work on it?


fix(cheat_sheet): broken links to esm script

There might be others that are broken, but I confirmed these broken links work when updated to the new naming structure found in the node package.

Ah, sorry we recently updated package layout and the doc expects the next version's file layout.


Unable to load DLL 'libmi.so' on MacOS

Steps to reproduce
1. Install latest release of Powershell Core on Mac OS High Sierra
2. Build generic DSC config script
3. Error is immediately produced that DLL is unable to be loaded.

Expected behavior
DSC config is not marked as broken

Actual behavior

[PowerShell]
System.DllNotFoundException: Unable to load DLL 'libmi.so': The specified module or one of its dependencies could not be found.
 (Exception from HRESULT: 0x8007007E)
   at Microsoft.Management.Infrastructure.Native.NativeMethods.MI_Application_InitializeV1(UInt32 flags, String applicationID, IndirectPtr extendedError, DirectPtr application)
   at Microsoft.Management.Infrastructure.Native.MI_Application.Initialize(String applicationId, MI_Instance& extendedError, MI_Application& application)
   at Microsoft.Management.Infrastructure.Internal.CimApplication.GetApplicationHandle()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at Microsoft.Management.Infrastructure.Internal.CimApplication.get_Handle()
   at Microsoft.Management.Infrastructure.Serialization.CimMofDeserializer..ctor()
   at Microsoft.Management.Infrastructure.Serialization.CimMofDeserializer.Create()
   at Microsoft.PowerShell.DesiredStateConfiguration.CimDSCParser..ctor(OnClassNeeded onClassNeeded)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.ImportClasses(String path, Tuple`2 moduleInfo, Collection`1 errors)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.Initialize(Collection`1 errors, List`1 modulePathList)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Dictionary`2 functionsToDefine, Collection`1 errors, List`1 modulePathList, Boolean cacheResourcesFromMultipleModuleVersions)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Collection`1 errors)
   at System.Management.Automation.Language.Parser.ConfigurationStatementRule(IEnumerable`1 customAttributes, Token configurationToken)

Environment data

Name                           Value
----                           -----
PSVersion                      6.0.0
PSEdition                      Core
GitCommitId                    v6.0.0
OS                             Darwin 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov  9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Any update on this issue?

@PleaseStopAsking Please test with latest PowerShell Core version (Preview3 or better night build)

@iSazonov Checking with Preview3, the same error is getting thrown on any DSC configuration file.

The entire error message is...
System.DllNotFoundException: Unable to load shared library 'libmi.so' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblibmi.so, 1): image not found    at Microsoft.Management.Infrastructure.Native.NativeMethods.MI_Application_InitializeV1(UInt32 flags, String applicationID, IndirectPtr extendedError, DirectPtr application)    at Microsoft.Management.Infrastructure.Native.MI_Application.Initialize(String applicationId, MI_Instance& extendedError, MI_Application& application)    at Microsoft.Management.Infrastructure.Internal.CimApplication.GetApplicationHandle()    at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode) --- End of stack trace from previous location where exception was thrown ---    at System.Lazy`1.CreateValue()    at Microsoft.Management.Infrastructure.Internal.CimApplication.get_Handle()    at Microsoft.Management.Infrastructure.Serialization.CimMofDeserializer..ctor()    at Microsoft.Management.Infrastructure.Serialization.CimMofDeserializer.Create()    at Microsoft.PowerShell.DesiredStateConfiguration.CimDSCParser..ctor(OnClassNeeded onClassNeeded)    at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.ImportClasses(String path, Tuple`2 moduleInfo, Collection`1 errors)    at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.Initialize(Collection`1 errors, List`1 modulePathList)    at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Dictionary`2 functionsToDefine, Collection`1 errors, List`1 modulePathList, Boolean cacheResourcesFromMultipleModuleVersions)    at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Collection`1 errors)    at System.Management.Automation.Language.Parser.ConfigurationStatementRule(IEnumerable`1 customAttributes, Token configurationToken)

/cc @TravisEz13 Could you please look the DSC issue?

I've repro'd the issue on
Name                           Value
----                           -----
PSVersion                      6.0.3
PSEdition                      Core
GitCommitId                    v6.0.3
OS                             Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

and on
Name                           Value
----                           -----
PSVersion                      6.1.0-preview.4
PSEdition                      Core
GitCommitId                    6.1.0-preview.4
OS                             Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Although the error is slightly different in preview
System.DllNotFoundException: Unable to load shared library 'libmi.so' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblibmi.so, 1): image not found
   at Microsoft.Management.Infrastructure.Native.NativeMethods.MI_Application_InitializeV1(UInt32 flags, String applicationID, IndirectPtr extendedError, DirectPtr application)
   at Microsoft.Management.Infrastructure.Native.MI_Application.Initialize(String applicationId, MI_Instance& extendedError, MI_Application& application)
   at Microsoft.Management.Infrastructure.Internal.CimApplication.GetApplicationHandle()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
--- End of stack trace from previous location where exception was thrown ---
   at System.Lazy`1.CreateValue()
   at Microsoft.Management.Infrastructure.Internal.CimApplication.get_Handle()
   at Microsoft.Management.Infrastructure.Serialization.CimMofDeserializer..ctor()
   at Microsoft.Management.Infrastructure.Serialization.CimMofDeserializer.Create()
   at Microsoft.PowerShell.DesiredStateConfiguration.CimDSCParser..ctor(OnClassNeeded onClassNeeded)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.ImportClasses(String path, Tuple`2 moduleInfo, Collection`1 errors)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.Initialize(Collection`1 errors, List`1 modulePathList)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Dictionary`2 functionsToDefine, Collection`1 errors, List`1 modulePathList, Boolean cacheResourcesFromMultipleModuleVersions)
   at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Collection`1 errors)
   at System.Management.Automation.Language.Parser.ConfigurationStatementRule(IEnumerable`1 customAttributes, Token configurationToken)

first of all, it's trying to open a Linux library on mac, this won't work Unable to load shared library 'libmi.so' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblibmi.so, 1): image not found

I think this error is here:  https://github.com/PowerShell/MMI/blob/b35df8fcf766127221aaa02c474540aa95249722/src/Microsoft.Management.Infrastructure/Native/MI_PlatformSpecific.cs#L41

@TravisEz13 what does the Resolution-External label signify?

@dantraMSFT   I think this should be moved to MMI.  Do you agree?

I verified with @dantraMSFT

I filed an issue with the MMI project and I'll close this issue as external.

@TravisEz13, do you have a ref for the issue you filed? Still affecting MacOS

Thanks!
Sent from my iPhone

On 24 Aug 2018, at 23:24, Travis Plunk<EMAIL_ADDRESS>wrote:
It's on the line above where I said I filed the issue.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

--
The above terms reflect a potential business arrangement, are provided
solely as a basis for further discussion, and are not intended to be and do
not constitute a legally binding obligation. No legally binding obligations
will be created, implied, or inferred until an agreement in final form is
executed in writing by all parties involved.
This email may be
confidential or privileged. If you received this communication by mistake,
please don't forward it to anyone else, please erase all copies and
attachments, and please let us know that it has gone to the wrong person.
Cloudreach Europe Limited is registered in England and Wales with the
registered office at Saffron House, 6-10 Kirby Street, London, EC1N 8TS and
registration number 06975407.


Improve stability on BLE notify() - Issue#209 - https://github.com/nk…

We probably should discuss handling of "StartAdvertising". This is now less convenient than before, but works pretty stable.

Looks good ... merging


Add filters or modifiers

hello, can i use .order() like query done in Javascript ?

Yes you can.
Modifier example:
client.table("table_name").select("*").limit(10).execute()

Modifier along with a filter:
client.table("table_name").select("*").eq("column", "value").order("column", desc=False).execute()

Source for modifiers

Hi thank you for response,
my supabase-py code;
data = client.table("table_name").select("*").order("mycolumn", desc=False).execute()
i was running my code, but i got error;
raise RuntimeError(RuntimeError: QueryParams are immutable since 0.18.0. Use q = q.set(key, value) to create an updated copy.
can you help me for this problem ?

That looks like it's a bug with postgrest-py. I'll try resolving the issue there as soon as I can.

okay, thank you my friend


Syntax highlighting for Node.js ES6, and other additional file extensions

Description of the problem or steps to reproduce

Create a nodejs ES6 file with extension: .mjs
Open the file with Micro
No syntax highlighting is activated

Specifications
ubuntu, centos, latest micro from curl.
I can see the file https://github.com/zyedidia/micro/blob/master/runtime/syntax/javascript.yaml holding the list of extensions for JavaScript language but no .mjs extension (Node.js ES6).
There are no other configs in ~/.config/micro directory.

Found the solution:

Create directory ~/.config/micro/syntax
Download JS syntax file from: https://raw.githubusercontent.com/zyedidia/micro/master/runtime/syntax/javascript.yaml
Modify the javascript.yaml file
Run micro again 😃

Looks like #1203 is opened to fix this in micro's defaults too :grinning:


recognition issue

Is this a question or a feature request? If so please start the title with [QUESTION] or [REQUEST].
Are you on a windows machine and do you have trouble pushing to remote repositories? Check out this thread first because it probably has the solution and answers.
Are you having problems using submodules in atom with this package? Check out this thread.

[Description of issue here]
Steps to reproduce:

-- git plus can only recognise the project in the current folder, if i add the wrong project folder ,such as the Last level folder, git plus cannot recognise it.
--
--

This is not the case for me. I can't reproduce this

Can you provide more steps to reproduce this?

not sure if this is the same thing but now that atom can have more than one directory in the tree view if you switch between folders the branch does not change in the bottom right status thing although if you try to switch branches using the palette it asks which repo

@jontyD the branch info in the status bar is part of atom-core and isn't from this package. Also, it does change for me when I have two repos open in the project and switch between files in those repositories

Apologies I misunderstood, the file knows which repo it is in  but it is a bit confusing. I sort of expected choosing a different folder / repo would only show me files in that repo


Avoid lining up iOS text selection's divider with the arrow

Move the arrow to either side of the divider.

It's also not always in the middle. On iOS, if the toolbar squishes to the side, the arrow attempts to stay as close as possible to the selected text.

I seem to have solved the problem that the triangle attached to the toolbar is always in the middle.
Now looks like iOS.

However, the problem of dividing the line has not yet found a reasonable solution to solve. : (

It turns out in the screenshot above the menu is too width. iOS does try to avoid lining up the arrow and the divider.

It seems like this issue was already fixed!

Closing as probably fixed.

 flutter doctor -v
[✓] Flutter (Channel dev, 1.21.0-1.0.pre, on Mac OS X 10.15.5 19F101, locale
    en-AO)
    • Flutter version 1.21.0-1.0.pre at /Users/pedro/dev/SDKs/flutter_dev
    • Framework revision f25bd9c55c (9 days ago), 2020-07-14 20:26:01 -0400
    • Engine revision 99c2b3a245
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 20bf2fcf56)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/pedro/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Users/pedro/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✗] Chrome - develop for the web (Cannot find Chrome executable at
    /Applications/Google Chrome.app/Contents/MacOS/google-chrome-unsafe)
    ! /Applications/Google Chrome.app/Contents/MacOS/google-chrome-unsafe is not
      executable.

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] Android Studio (version 4.0)
    • Android Studio at /Users/pedro/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.1

[✓] Connected device (3 available)
    • AOSP on IA Emulator (mobile) • emulator-5554 • android-x86    • Android 9
      (API 28) (emulator)
    • macOS (desktop)              • macos         • darwin-x64     • Mac OS X
      10.15.5 19F101
    • Web Server (web)             • web-server    • web-javascript • Flutter
      Tools

! Doctor found issues in 1 category.


Adding endpoint that classifies BSVE search results

Related story: https://www.pivotaltracker.com/story/show/118941803

+1 - More comments next time please


how to run VILA1.5-40B-AWQ

Please provide a script to run the VILA1.5-40b int4 quantized model.
like this:

Not sure if this is exactly what you're looking for, but they have instructions and usage examples for running quantized VILA models here:
https://github.com/mit-han-lab/llm-awq/tree/main/tinychat
You will have to scroll to the bottom for the section regarding VILA models.

Hi , I used the following command, and it work for me
python -m awq.entry --model_path models--Efficient-Large-Model--VILA1.5-40b/snapshots/742691c2792095f9c6fd899cbb9207b4cf2b88f4/ --w_bit 4 --q_group_size 128  --vila-15   --run_awq --dump_awq awq_cache/$MODEL-w4-g128.pt


Update conference dates

https://github.com/bioinformatics-hub-ke/BOSS22/commit/1cf1a904ec42222b5bc823c40bd61f6b24b2f99d


[Bug]: Unable to access the React.dev website in some countries (e.g. Nigeria, Iran)

Summary
The react.dev website is not accessible within Nigeria.
The website opens with VPN

The website doesn't open without VPN

Page
https://react.dev/
Details
No response

I am experiencing a similar thing here.

Already reported in https://github.com/reactjs/react.dev/issues/6661#issuecomment-2010899954. The site doesn't seem to be working in Iraq either.
Let's close this issue and track it over at #6661, because it's probably the same problem causing it.

I'm hosting a copy of the repo on Vercel if anyone would like to use that until this is resolved: https://react-dev-silk.vercel.app/

lmao. wow.

Just an update on this: we are not intentionally blocking this.
The issue seems to be some countries or ISPs have blocked the IP we are deployed at on Vercel. It doesn't impact legacy.reactjs.org, which is also deployed on Vercel, so I'm working with Vercel support to see how we can fix it.
Seems related to this, because react.dev is also deployed at <IP_ADDRESS> but legacy.reactjs.dev is deployed at <IP_ADDRESS> https://github.com/orgs/vercel/discussions/4764

@aghwotu @ojayde1 (or anyone who can't access the site) would you be able to run the command from this debugging script for both react.dev and legacy.reactjs.org? If you don't want to upload it publicly, feel free to send the files to me at my username at gmail.
https://github.com/vercel-support/vercel-connect-debug

Update: this is now fixed, please test and confirm!
The issue was that our root domain was using <IP_ADDRESS>, which is blocked by some ISPs. We worked with support to understand the settings we needed to use other IPs, and we're now using <IP_ADDRESS> and  <IP_ADDRESS> which shouldn't be blocked.
Let me know if you still see this issue or if it comes up again and we can re-open.

Not Working here in India.

Have also this problem from Holland, can't reach <IP_ADDRESS> from ISP KPN and my Fiberglas connection. Using a VPN solve the problem for me. Just note that some other users with a KPN connection did not have this problem.

Not Working here in India.

for me as well

All your IPs (<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>) are blocked in Ukraine. You can check at https://uablocklist.com/blocklist?query=<IP_ADDRESS>


fix(HTTPClient): use orjson if it's installed

#229

What about json_loads?

Oh, whoops.

Nevermind, this PR isn't going to work. Sorry, I got confused and thought json_serialize was for loading and not dumping.

we do still dump so the PR is useful. We do also want something for deserialization too, however! But one is still progress.


Device class seems wrong for some sensors

Some entities are having device class voltage and they have no unit. The device class seems wrong in this case, as there is definitely no unit for things like active input or overload alarm.
Sample log entries (there are way more of them):
Entity sensor.victron_vebus_activein_activeinput_227 (<class 'custom_components.victron.sensor.VictronSensor'>) is using native unit of measurement '' which is not a valid unit for the device class ('voltage') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

Entity sensor.victron_vebus_alarm_l3_overload_227 (<class 'custom_components.victron.sensor.VictronSensor'>) is using native unit of measurement '' which is not a valid unit for the device class ('voltage') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

Entity sensor.victron_battery_state (<class 'custom_components.victron.sensor.VictronSensor'>) is using native unit of measurement '' which is not a valid unit for the device class ('voltage') it is using; Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

The wrong class also makes Home Assistant try to graph the string entities like battery state instead of showing their string value in the history:

Thank you for reporting this issue.
Please see #25 for a explaination regarding the root cause and the commit linked in #42 for the fix to this issue.
Since posting in #25 i've come to notice a lot of the currently opened issues seem to be caused by this bug.
Therefore (in contrast to my explaination) I will be making the 0.0.8 patch release so that issues #25, #32, #42 and #43 can be closed

I will close this issue as resolved.
Since there were no new related issues opened (or posts made) in the past month.
Feel free to re-open if the issue persists

Still seeing this with the current version (0.0.9), for example:
Sensor sensor.victron_vebus_alarm_l3_ripple_227 has device class None, state class None and unit thus indicating it has a numeric value; however, it has the non-numeric value: OK (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
Sensor sensor.victron_vebus_alarm_phaserotation_227 has device class None, state class None and unit thus indicating it has a numeric value; however, it has the non-numeric value: OK (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.
Sensor sensor.victron_vebus_alarm_gridlost_227 has device class None, state class None and unit thus indicating it has a numeric value; however, it has the non-numeric value: OK (<class 'str'>); Please update your configuration if your entity is manually configured, otherwise report it to the custom integration author.

Home Assistant still considers these as number when displaying history:

Such entities should have None as unit, not an empty string. https://github.com/sfstar/hass-victron/pull/58 does that.


Add sequence 08 conversion fix

Mapping for 2011_09_30_drive_0028 starts at 1100 for the corresponding 0000 frame in odom sequence 08
Seen here:
https://github.com/tomas789/kitti2bag/issues/11#issuecomment-494521567
Or also in the Odom dev kit

Thank you for spotting this mistake!


Offer mapping for jsTree properties

AFAICT, jsTree (unexpectedly, TBH) enforces its users to write lowercase property names, e. g. "id" instead of "ID" (or at least "Id") or "parent" instead of "Parent".
Coming from the C# / .NET side of the Force, this is unusual and to help others hitting this problem, too, I'd like to request a mapping feature.

As mentioned a lot of times (if you for some reason can not properly map properties on the server side) you can convert from one structure to another either in jQuery's dataFilter AJAX config option, or by setting jsTree's core.data to a function and handling the mapping yourself.
If you want to you can create a plugin to help other .net users (although to be honest there have not been a lot of request for this, if any) you can create a simple plugin that overwrites the _parse_model_from_json, converts the data (in whatever way you want) and calls the parent function:
// mapping
(function ($, undefined) {
	"use strict";
	// use this if you need any options
	$.jstree.defaults.mapper = {
		option_key : "option_value"
	};
	$.jstree.plugins.mapper = function () {
		this._parse_model_from_json = function (d, p, ps) {
			// d is the node from the server, it will be called recursively for children,
			// so you do not need to process at once
			/* // for example
			for(var i in d) {
				if(d.hasOwnProperty(i)) {
					d[i.toLowerCase()] = d[i];
				}
			}
			*/
			return parent.activate_node.call(this, d, p, ps);
		};
	};
})(jQuery);

Now you can include mapper in your plugins config array if needed. The example logic I provided is very simple - implement whatever transformations you need.
Best regards,
Ivan

Could you help me once more, regarding settings core.data to do the mapping, please?
I tried
(...)
data: {
        url: function (node) {
          return ("/TreeController/GetNodes" + (node.id === "#" ? 0 : node.id));
        },
        dataType: "json",
        data: function(node) {
          return {
            ID: node.id,
          };
        },
(...)

but that didn't work. It's surely something pretty simple, but I'm missing the forest for the trees. :(

The plugin above would have been a better option, but still:
(...)
data: function (node, cb) {
        $.ajax({
            url: ("/TreeController/GetNodes" + (node.id === "#" ? 0 : node.id));
            dataType: "json",
            data: { ID: node.id }
        })
        .done(function (data) {
            var i, j, tmp;
            for(var i = 0, j = data.length; i < j; i++) {
                for(var tmp in data[i]) {
                    if(data[i].hasOwnProperty(tmp)) {
                        data[i][tmp.toLowerCase()] = d[i][tmp];
                    }
                }
                cb(data);
            }
        });
(...)

Sorry for the delay.
Fortunately, I was able to change JSON parsing on the server's side (thanks to Newtonsoft.Json and "JsonConvert.SerializeObject()"), so no need for additional mapping.
However, due to your great support, I'd like to give something back and therefore I'd like to implement the mapping plugin. But since it's quite new for me (never been that deep in the JS forest of life ;)), it'll probably take some time.


feature : add API enable/disable configuration for Algerian Cities package

This PR introduces an api_enabled configuration for the Algerian Cities package, allowing users to enable or disable API endpoints via the .env file.
Changes

Added config variable ALGERIAN_CITIES_API_ENABLED to toggle API access for the Algerian Cities package.

Usage
To enable or disable the API, add the following to your .env file:
ALGERIAN_CITIES_API_ENABLED=true  # or false

Related Issues
#16

GitHub Actions is experiencing issues. Status: https://www.githubstatus.com/
I'll check back later to see if tests pass.

Sure no problem

@kossa All checks have passed , you can accept the PR and close #16

Good job 👍


make the  comments optional in the DOM

Currently the templating will create  comments in the dom.
it would be nice if this can be disabled so that can also get out of your way as @Aedaeum pointed out.
if @EisenbergEffect can confirm these are not "needed" i wouldn't mind creating a PR to make them optional , perhaps using a createComments boolean property on the ViewCompiler.

Something is needed, otherwise it gets extremely difficult to tell where one view instance begins and ends, particularly in the case of repeaters and other similar constructs. Imagine you want to remove a "view" from the DOM? What if the first or last thing in that view is a repeater that generates more DOM at the beginning or and of the View. Now, how do you know where the "line"is that dilineates one view from another?
I'm open to other solutions, but this seems the simplest and most performant way to handle the situation. Anyone iterating the DOM should be checking for a particular node type, so I'm not sure how this would really cause a problem.

I'm running into an issue with the generated view comments where svg is not rendering because of them. (let me know if I should open a separate issue).
I have a custom graph element that builds the svg closing and opening tags (and the viewModel handles the graph model and overall graph operations):
<template>
  <require from="../node/node"></require>
  <svg width="${presentationSVG.width}" height="${presentationSVG.height}">
    <node repeat.for="displayNode of displayNodes" data.bind="displayNode"></node>
  </svg>
</template>

Then each node in the graph is implemented as a containerless custom element. The idea being each node will provide its own behaviour like figuring out its size, what color it should be, click, drag, animation behaviour etc. And eventually will also be edge custom element.

```html
<template>
  <circle cx="${node.x}" cy="${node.y}" fill="${node.color}" r="${node.size}"></circle>
</template>

The problem is the generated view comments such as:
<!--</view>--><!--anchor--><!--</view>--><!--<view>--><!--<view>-->

are preventing the svg circles from rendering. If I manually remove the comments in dev tools, then the circles are shown.
Is there a solution to this?  Or do I need to find a different way to structure the graph, like putting all the node and edge logic in the graph viewModel itself, and can't split out into node and edge elements?

@danielabar would you mind setting up a reproduction of this in the aurelia plunker?

@jdanyow Sure will try to reproduce. Haven't used aurelia plunker before, should it be displaying the 'hello world' message by default? It looks blank.

It should display "loading..." and then "hello world".  Try refreshing, sometimes plunker can be slow.

Ok now see the message, sorry if its a silly question, but am I supposed to edit that plunker directly or fork to my account?

Here's a demo of the problem.

I don't see how the comment nodes would break rendering. If that did, it would appear to be a browser bug. The presence/absence of comments shouldn't be causing this. If it truly is that, I would need to see an SVG spec reference that states this is illegal otherwise we would want to submit this as a bug to the browser.
Looking at your code though, it looks like you may not be creating your custom svg element correctly. The view template for the custom svg element should also contain an svg element, per the docs. See the section on SVG Elements here: http://aurelia.io/docs.html#/aurelia/framework/latest/doc/article/cheat-sheet

That was the problem, didn't realize need another nested <svg> tag in the custom node element. Adding that, now the circle renders. And it solves another issue I was having where the cx and cy attributes weren't binding to the node data attributes. Now that works as well (made the example a little bit more in the direction I want to go, processing a list of nodes).
Thank you so much!

You are welcome. We will try to make this more clear in the upcoming, more extensive documentation on templating.

The 'view' and 'anchor' comments cause the CSS + (adjacent sibling) selector to fail.


ChoreAdd the configuration of the maximum number of persistence tasks for the job

…
Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

If persistence will be unified in the job later, I think it might be better to add a new method of persisting association records.

run feut


added rockpaperscissors.py

Added Rock Paper Scissors Game in Python. closes #218

Any more setup or instructions files ?

No, there's no setup or instructions needed as such ^^


Feature proposal: separate routing configuration into its own file with an easier-to-use format

Version: 2.20.2 (latest)
Usage scenario: ad-blocking
(This issue is related to https://github.com/v2ray/v2ray-core/issues/329)
Hi all,
I'd like to propose an alternative easier-to-use format for routing configuration. As the number of rules grow over time to address needs for ad-blocking and gfwlist-based whitelisting, the json-based config file becomes very unwieldy and hard to maintain. It might be a good idea to move these routing rules into its own file. It could use a csv format similar to the hosts file, something like this:
# format: outboundTag  rule_type  value

# routing based on IP
direct  ip  <IP_ADDRESS>/8
direct  ip  <IP_ADDRESS>/8

# block based on domain name
adblock  domain  msg.71.am
adblock  domain  17un.co

# leave value blank if none needed
direct  chinasites

It has the following advantages:

Separating routing config from the rest of v2ray configuration, making it easier to load and modify the rest of the config file in a text editor.
Providing a much less cluttered and more human readable format for routing. csv / hosts file is easier on the eyes than json and less error-prone to edit as well.
Better suited for shell scripting. echo / pipe / append all work on the csv format, unlike json.
Non-binary compared to protobuf, making it human-readable and editable.

To support this new format, these changes are needed on v2ray-core:

Addition of a new CLI option, -routes <file-name>
Internally, the new routing file will be translated into protobuf format and fed to the existing router module, so no extensive changes to router is needed.

Comments / thoughts? If interested, I can prepare a PR for this in the coming weeks. Thanks!

The support for plugin in V2Ray in the road map and will be implemented in the near future.
Once plugin support is complete, it will be possible to support arbitrary format without modifying v2ray-core code base.
Alternatively, it isn't hard to write a tool that convert the format you proposed into conventional json format and merge it into your configure file. In this way, we will able to keep v2ray-core focus on it's primary object and decease code needed to be maintained as well as attack vectors.
By the way, as far as I know, there is a major non-pushed modification authored by the primary developer, it could be hard to rebase if you decide to fork from the current head.
The idea above is for informational purpose only, @DarienRaymond will decide whether your code can be merged into origin.

hey @xiaokangwang,
Thanks for the excellent feedback! I like the idea of writing a tool for merging config files and I'll be doing that for sure as a stopgap solution before plugin support is landed. I do think something like my original proposal in core would be very beneficial to a wide range of users looking to use v2ray for beyond anti-censorship though. Regardless, I'd love to hear what others think of this idea!

As you already know, the core config is now purely based on protobuf. The JSON parser is provided only for backward compatibility. In the future, core will not touch files directly. All config parsing logic will be done before core is launched.
If you wish to create a new format of config file, you may do it as a wrapper.  The wrapper reads a config file in your format, translate it into protobuf and feed into V2Ray core. The advantage is you may use any language that you prefer to create the wrapper, as protobuf is a language-independent technology.

Feel free to open another issue at https://github.com/v2ray/planning for further discussion.