toothpick.locators.NoFactoryFoundException in Signed APK [2.1.0]

Hi Together
I got an issue when building the apk and trying to run it.
I know others had such problems as well but none of those issues sadly seem to apply to me. :/
I am creating an Android Library and so far everything worked fine when running it through Android Studio in a demo app. However once I create the signed APK some things seem to go a bit awry.
Suddenly Toothpick complains that it cannot locate certain Member Injectors. Even though I am binding & injecting the instances myself.
Am I missing something during the build phase which I need to change?
Information
I am sry I know its a lot. But I think something in here is contributing to the issue but I cant figure out what it is.
Here I am binding all required instances to the Scope FeedbackSingleton.class
@SuppressWarnings("Injectable")
public class FeedbackSetupService implements IFeedbackExitPoint {
    ...
    @Inject
    IFeedbackExitPoint feedbackExitPoint;
    ...
    public void open(final Activity fromActivity) {

        Scope feedbackScope = Toothpick.openScope(FeedbackSingleton.class);

        feedbackScope.installModules(new Module() {{
            bind(Application.class).toInstance(fromActivity.getApplication());
            bind(NetworkService.class).toInstance(new NetworkService());
        }});

        feedbackScope.installModules(new Module() {{
            bind(FeedbackRoomDatabase.class).toProviderInstance(new FeedbackRoomDatabaseProvider());
            final AssetsServiceProvider assetsServiceProviderInstance = new AssetsServiceProvider();
            bind(AssetsServiceProvider.class).toInstance(assetsServiceProviderInstance);
            bind(AssetsService.class).toProviderInstance(assetsServiceProviderInstance);
            bind(FileService.class).toProviderInstance(new FileServiceProvider());
        }});

       // Here I changed the way I create the module to see if that changes things but it doesnt
        Module tpModStage3 = new Module();
        tpModStage3.bind(FeedbackRepository.class).toInstance(new FeedbackRepository());
        tpModStage3.bind(FeedbackConfigurationService.class).toInstance(new FeedbackConfigurationService());
        tpModStage3.bind(IFeedbackExitPoint.class).toInstance(this);
        feedbackScope.installModules(tpModStage3);

       // Interestingly enough TP does not complain here about missing Injector for the same class
       // That is `IFeedbackExitPoint.java`
        Toothpick.inject(this, feedbackScope);
    }
   ...
}

This activity fails to inject suddenly in the signed APK.
public class TextSideActivity extends BaseActivity {
    ...
    // This one fails to inject
    @Inject
    IFeedbackExitPoint feedbackExitPoint;
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeatureCompat(Window.FEATURE_NO_TITLE);
        contentView = getLayoutInflater().inflate(R.layout.textside_activity, null);
        setContentView(contentView); // Cannot be done by ButterKnife - only calls which can be done by findViewById()

        Toothpick.inject(this, Toothpick.openScope(FeedbackSingleton.class));
        ButterKnife.bind(this);
        init();
        initValueListeners();
    }
    ...
}

Information about IFeedbackExitPoint
IFeedbackExitPoint#close takes care of closing the TP scope as well as making sure
to tear down any other ressources used.
public interface IFeedbackExitPoint {
    void close();
}

This is the stacktrace which I am suddenly getting in the singed APK.
2019-08-07 12:03:07.338 17155-17155/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: ch.fhnw.edu.fcp.feedbackcommprocess, PID: 17155
    java.lang.RuntimeException: Unable to start activity ComponentInfo{ch.fhnw.edu.fcp.feedbackcommprocess/ch.fhnw.edu.fcp.postcard.activity.TextSideActivity}: toothpick.locators.NoFactoryFoundException: No factory could be found for class ch.fhnw.edu.fcp.postcard.IFeedbackExitPoint. Check that the class has either a @Inject annotated constructor or contains @Inject annotated members.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2919)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3054)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1814)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:280)
        at android.app.ActivityThread.main(ActivityThread.java:6710)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: toothpick.locators.NoFactoryFoundException: No factory could be found for class ch.fhnw.edu.fcp.postcard.IFeedbackExitPoint. Check that the class has either a @Inject annotated constructor or contains @Inject annotated members.
        at toothpick.locators.FactoryLocator.getFactory(FactoryLocator.java:21)
        at toothpick.ScopeImpl.lookupProvider(ScopeImpl.java:329)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:58)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:49)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:12)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:9)
        at toothpick.InjectorImpl.inject(InjectorImpl.java:23)
        at toothpick.Toothpick.inject(Toothpick.java:163)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity.onCreate(TextSideActivity.java:141)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2899)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3054)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1814)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:280)
        at android.app.ActivityThread.main(ActivityThread.java:6710)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassNotFoundException: ch.fhnw.edu.fcp.postcard.IFeedbackExitPoint__Factory
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:453)
        at java.lang.Class.forName(Class.java:378)
        at toothpick.locators.FactoryLocator.getFactory(FactoryLocator.java:18)
        at toothpick.ScopeImpl.lookupProvider(ScopeImpl.java:329)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:58)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:49)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:12)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:9)
        at toothpick.InjectorImpl.inject(InjectorImpl.java:23)
        at toothpick.Toothpick.inject(Toothpick.java:163)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity.onCreate(TextSideActivity.java:141)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2899)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3054)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1814)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:280)
        at android.app.ActivityThread.main(ActivityThread.java:6710)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "ch.fhnw.edu.fcp.postcard.IFeedbackExitPoint__Factory" on path: DexPathList[[zip file "/mnt/expand/0c815ad2-6acf-42db-ab64-6125c2e82827/app/ch.fhnw.edu.fcp.feedbackcommprocess-wjud-Zz1fbQxV8atrA5G5Q==/base.apk"],nativeLibraryDirectories=[/mnt/expand/0c815ad2-6acf-42db-ab64-6125c2e82827/app/ch.fhnw.edu.fcp.feedbackcommprocess-wjud-Zz1fbQxV8atrA5G5Q==/lib/arm64, /system/lib64, /vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:453)
        at java.lang.Class.forName(Class.java:378)
        at toothpick.locators.FactoryLocator.getFactory(FactoryLocator.java:18)
        at toothpick.ScopeImpl.lookupProvider(ScopeImpl.java:329)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:58)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:49)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:12)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:9)
        at toothpick.InjectorImpl.inject(InjectorImpl.java:23)
        at toothpick.Toothpick.inject(Toothpick.java:163)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity.onCreate(TextSideActivity.java:141)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2899)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3054)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1814)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:280)
        at android.app.ActivityThread.main(ActivityThread.java:6710)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Using gradle directly lint complains as well
.gradle/caches/modules-2/files-2.1/com.github.stephanenicolas.toothpick/toothpick-runtime/2.1.0/e4456493ef995a4e7c4a541a64106a5b4c78a685/toothpick-runtime-2.1.0.jar: Error: Invalid package reference in library; not included in Android: javax.inject. Referenced from toothpick.ScopeNode. [InvalidPackage]

App Gradle (Demo App)
apply plugin: 'com.android.application'

android {
    android {
        lintOptions {
            // abortOnError false
            // warning 'InvalidPackage'
        }
    }
    signingConfigs {
        release {
            storeFile file('/home/lukaswillin/Clouds/OwnCloud/SwitchDrive/IP6/Sonstiges/apk-signing-keystore.jks')
            storePassword '**********'
            keyAlias = 'fhnwkey'
            keyPassword '***********'
        }
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "ch.fhnw.edu.fcp.feedbackcommprocess"
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        signingConfig signingConfigs.release
    }
    buildTypes {
        release {
            minifyEnabled false
            useProguard false
            debuggable = true
            signingConfig signingConfigs.release
            multiDexEnabled = true
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation project(':feedbackpostcard')
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])

    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    // View Injection / Butterknife
    // Known Warning variantOutput.getProcessResources() is obsolete caused by the library version of butterknife
    apply plugin: 'com.jakewharton.butterknife'

    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

    // Room components
    // Alpha 4 has been chosen since Alpha 5 would break the build
    implementation "androidx.room:room-runtime:2.1.0-alpha04"
    annotationProcessor "androidx.room:room-compiler:2.1.0-alpha04"
    androidTestImplementation "androidx.room:room-testing:2.1.0-alpha04"

    // Lifecycle components
    implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
    annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0"

    // Joda DateTime Library
    implementation 'joda-time:joda-time:2.10.2'

    // Toothpick DI
    implementation 'com.github.stephanenicolas.toothpick:toothpick-runtime:2.1.0'
    annotationProcessor 'com.github.stephanenicolas.toothpick:toothpick-compiler:2.1.0'
    testImplementation 'com.github.stephanenicolas.toothpick:toothpick-testing-junit5:2.1.0'
    testImplementation 'org.mockito:mockito-core:2.28.2'

    // CompletableFuture Backport
    implementation 'net.sourceforge.streamsupport:android-retrofuture:1.7.1'
}

Library Module Gradle (Feedback)
apply plugin: 'com.android.library'

android {
    android {
        lintOptions {
            // abortOnError false
            // warning 'InvalidPackage'
        }
    }
    signingConfigs {
        release {
            storeFile file('/home/lukaswillin/Clouds/OwnCloud/SwitchDrive/IP6/Sonstiges/apk-signing-keystore.jks')
            storePassword '*************'
            keyAlias = 'fhnwkey'
            keyPassword '*************
        }
    }
    compileSdkVersion 28

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
            }
        }
        vectorDrawables.useSupportLibrary = true
    }

    buildTypes {
        release {
            useProguard false
            minifyEnabled false
            debuggable = true
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.debug
            multiDexEnabled = true
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    dataBinding {
        enabled = true
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.vectordrawable:vectordrawable:1.0.1'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    // View Injection / Butterknife
    // Known Warning variantOutput.getProcessResources() is obsolete caused by the library version of butterknife
    apply plugin: 'com.android.library'
    apply plugin: 'com.jakewharton.butterknife'

    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

    // Room components
    implementation "androidx.room:room-runtime:2.1.0-alpha04"
    annotationProcessor "androidx.room:room-compiler:2.1.0-alpha04"
    androidTestImplementation "androidx.room:room-testing:2.1.0-alpha04"

    // Lifecycle components
    implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
    annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0"

    // Joda DateTime Library
    implementation 'joda-time:joda-time:2.10.2'

    // Toothpick DI
    implementation 'com.github.stephanenicolas.toothpick:toothpick-runtime:2.1.0'
    annotationProcessor 'com.github.stephanenicolas.toothpick:toothpick-compiler:2.1.0'
    testImplementation 'com.github.stephanenicolas.toothpick:toothpick-testing-junit5:2.1.0'
    testImplementation 'org.mockito:mockito-core:2.+'

    // CompletableFuture Backport
    implementation 'net.sourceforge.streamsupport:android-retrofuture:1.7.1'

    // Phototeditor
    implementation 'ja.burhanrashid52:photoeditor:0.4.0'
}

I don't understand what you are trying to do: the service class is the one configuring the scope, but you use it from the activity. Is the scope configured, with all modules installed when you do Toothpick.inject(this, Toothpick.openScope(FeedbackSingleton.class)); ?
Also, it is quite strange to have a binding pointing to this and injecting this via DI. But I assumed it was for the sake of your example.

Yeah I thought this Question might come.
So the FeedbackSetupService acts as the entry point to the library and needs to do some initialization. Therefor he needs to get hold of the injected instances.
So he also acts as the exit point seen from the library itself. But he hides behind the interface IFeedbackExitPoint.
The Open Method of the FeedbackSetupService can be called from outside eg whoever will using the library. So open(someActivity) will be called before Toothpick.inject(this, Toothpick.openScope(FeedbackSingleton.class)).
We made this decision so we can free memory while the library is not in use. But yes it probably looks quiet strange and is surely not ideal.
To answer the second question:
All modules required should be installed once it reaches the first Activity. At least when running it through Android Studio everything runs as expected. Installing and running a signed APK however crashes with given.

If it works when running in debug mode, and not in release mode, your problem probably comes from obfuscation. Then you would have a different stack trace too, not one starting as an issue from the activity..Do you obfuscate your apk and if so did you configure it to preserve TP classes and generated code? See the wiki on how to do it.
You can also dump a scope using toString and see what are the bindings available. It can help debug.

I will look into it thank you for your hints!

Feel free to re-open, but the problem doesn't seem to come from TP.

Hi Nicolas
I disabled everything from obfuscation and minification. But it still wont work. It also doesnt matter if I build it as signed debug or release. It only works if I directly run it through Android Studio.
I probably doing some beginner mistake but I really cant figure it out.
I also changed the TP-configuration from development to production and removed the @Inject IFeedbackExitPoint for the Activity. But it now wont find other module instances.
Is there something special I need to look out for when using it inside of a library?
Do you have any other ideas?

Send us the exact stack trace. Please look into your apk (you can use
Android Studio, or command line tools) to check if you got the
__Factory/MemberInjector classes that appear to be missing according to the
stack trace. If they are not present, check inside the build folder of your
app.
Le mer. 7 août 2019 à 12:48, Lukas Willin<EMAIL_ADDRESS>a
écrit :

Hi Nicolas
I disabled everything from obfuscation and minification. But it still wont
work. It also doesnt matter if I build it as signed debug or release. It
only works if I directly run it through Android Studio.
I probably doing some beginner mistake but I really cant figure it out.
I also changed the TP-configuration from development to production and
removed the @Inject IFeedbackExitPoint for the Activity. But it now wont
find other module instances.
Is there something special I need to look out for when using it inside of
a library?
Do you have any other ideas?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/stephanenicolas/toothpick/issues/356?email_source=notifications&email_token=AAN7PXJBA3TZGN2T3CQ3IQDQDMRJFA5CNFSM4IJ65NLKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZQO2Q#issuecomment-519243626,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN7PXOFEQOFTNHE672P7K3QDMRJFANCNFSM4IJ65NLA
.

Thank you for your help! I am incredibly humbled.
I check that again. Yesterday the MemberInjectors were there (at least what i can recall from memory) but I might have missed something. I'll repost once I know more.

Okay so I checked and some things seem to be missing but also not... if that makes any sense...
So TP complains it cant find the Factory for the AssetsService. However we got a provider for that which we also inject.
However I dont see why this would suddenly fail. It works for the direct run from Android Studio (both Release and Debug Build Types) why would it suddenly not use the Provider for the AssetsService when building and installing a signed APK?
AssetsServiceProvider
public class AssetsServiceProvider implements Provider<AssetsService> {
    @Inject
    Application application;

    public AssetsServiceProvider() {
        Toothpick.inject(this, Toothpick.openScope(FeedbackSingleton.class));
    }

    @Override
    public AssetsService get() {
        return new AssetsService(application);
    }
}

Injection of AssetsServiceProvider
feedbackScope.installModules(new Module() {{
    bind(FeedbackRoomDatabase.class).toProviderInstance(new FeedbackRoomDatabaseProvider());
    final AssetsServiceProvider assetsServiceProviderInstance = new AssetsServiceProvider();
    bind(AssetsServiceProvider.class).toInstance(assetsServiceProviderInstance);
    bind(AssetsService.class).toProviderInstance(assetsServiceProviderInstance);
    bind(FileService.class).toProviderInstance(new FileServiceProvider());
}});

Content of the classes.dex file.

Stacktrace
2019-08-08 15:58:27.377 25139-25139/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: ch.fhnw.edu.fcp.feedbackcommprocess, PID: 25139
    java.lang.RuntimeException: Unable to start activity ComponentInfo{ch.fhnw.edu.fcp.feedbackcommprocess/ch.fhnw.edu.fcp.postcard.activity.TextSideActivity}: toothpick.locators.NoFactoryFoundException: No factory could be found for class ch.fhnw.edu.fcp.postcard.configuration.assets.AssetsService. Check that the class has either a @Inject annotated constructor or contains @Inject annotated members.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2919)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3054)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1814)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:280)
        at android.app.ActivityThread.main(ActivityThread.java:6710)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: toothpick.locators.NoFactoryFoundException: No factory could be found for class ch.fhnw.edu.fcp.postcard.configuration.assets.AssetsService. Check that the class has either a @Inject annotated constructor or contains @Inject annotated members.
        at toothpick.locators.FactoryLocator.getFactory(FactoryLocator.java:21)
        at toothpick.ScopeImpl.lookupProvider(ScopeImpl.java:329)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:58)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:49)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__MemberInjector.inject(FeedbackConfigurationService__MemberInjector.java:11)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__MemberInjector.inject(FeedbackConfigurationService__MemberInjector.java:8)
        at toothpick.InjectorImpl.inject(InjectorImpl.java:23)
        at toothpick.Toothpick.inject(Toothpick.java:163)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService.<init>(FeedbackConfigurationService.java:26)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__Factory.createInstance(FeedbackConfigurationService__Factory.java:14)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__Factory.createInstance(FeedbackConfigurationService__Factory.java:8)
        at toothpick.InternalProviderImpl.get(InternalProviderImpl.java:94)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:58)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:49)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:11)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:8)
        at toothpick.InjectorImpl.inject(InjectorImpl.java:23)
        at toothpick.Toothpick.inject(Toothpick.java:163)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity.onCreate(TextSideActivity.java:139)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2899)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3054)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1814)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:280)
        at android.app.ActivityThread.main(ActivityThread.java:6710)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassNotFoundException: ch.fhnw.edu.fcp.postcard.configuration.assets.AssetsService__Factory
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:453)
        at java.lang.Class.forName(Class.java:378)
        at toothpick.locators.FactoryLocator.getFactory(FactoryLocator.java:18)
        at toothpick.ScopeImpl.lookupProvider(ScopeImpl.java:329)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:58)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:49)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__MemberInjector.inject(FeedbackConfigurationService__MemberInjector.java:11)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__MemberInjector.inject(FeedbackConfigurationService__MemberInjector.java:8)
        at toothpick.InjectorImpl.inject(InjectorImpl.java:23)
        at toothpick.Toothpick.inject(Toothpick.java:163)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService.<init>(FeedbackConfigurationService.java:26)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__Factory.createInstance(FeedbackConfigurationService__Factory.java:14)
        at ch.fhnw.edu.fcp.postcard.configuration.FeedbackConfigurationService__Factory.createInstance(FeedbackConfigurationService__Factory.java:8)
        at toothpick.InternalProviderImpl.get(InternalProviderImpl.java:94)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:58)
        at toothpick.ScopeImpl.getInstance(ScopeImpl.java:49)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:11)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity__MemberInjector.inject(TextSideActivity__MemberInjector.java:8)
        at toothpick.InjectorImpl.inject(InjectorImpl.java:23)
        at toothpick.Toothpick.inject(Toothpick.java:163)
        at ch.fhnw.edu.fcp.postcard.activity.TextSideActivity.onCreate(TextSideActivity.java:139)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2899)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3054)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1814)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:280)
        at android.app.ActivityThread.main(ActivityThread.java:6710)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-08-08 15:58:27.377 25139-25139/? E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "ch.fhnw.edu.fcp.postcard.configuration.assets.AssetsService__Factory" on path: DexPathList[[zip file "/mnt/expand/0c815ad2-6acf-42db-ab64-6125c2e82827/app/ch.fhnw.edu.fcp.feedbackcommprocess-4Vv_NyaGf8YHxDDq-N_uDA==/base.apk"],nativeLibraryDirectories=[/mnt/expand/0c815ad2-6acf-42db-ab64-6125c2e82827/app/ch.fhnw.edu.fcp.feedbackcommprocess-4Vv_NyaGf8YHxDDq-N_uDA==/lib/arm64, /system/lib64, /vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        	... 37 more

The scope you are using is not configured. Are you sure your code goes into the open method ? Can you log something there ? Also, log the scope object ID (using System.hascode) both when you configure and use the scope. They might be different instances. You can't debug bug you can use Log.d/e.
When you openScopes, you have to make sure that the first time they will be opened starting from the root scope: openScopes(application, Annotation.class) so that you indicate that each scope has a parent in the scope tree.

Ill try that one!
However I might have found another issue which also contributes to it. I will have to have another look.

Hi Nicolas
Thank for all your support. I got it working. The build never had an issue but rather the phone I tested on. I shouldve known better...
I am sry I occupying your time for something so trivial. If there is anything I can help you with no matter how simple the work please feel free to contact me. That is the least I can do to give smth back to this project.
Regards
Lukas

Thx for your kind words. Good luck with your app, and feel free to consider switching to TP 3! It just got released.

Already did ;) Thank you!


Inline hints does not show to the next line on setting  range attribute of vscode.InlineCompletionItem

VS Code Version: 1.84.2
OS Version: Windows 11
Inline hints does not show to the next line on setting  range attribute of vscode.InlineCompletionItem, Infact in below code snippet hints does not show up on changing position.line to position.line +1 while setting range property
Below is code snippet
class inlineCompletionitemProvider implements vscode.InlineCompletionItemProvider {
public static text:string = "testing";
public static pos:vscode.Position;
public static range:vscode.Range;
provideInlineCompletionItems(document: vscode.TextDocument, position: vscode.Position, context: vscode.InlineCompletionContext, token: vscode.CancellationToken): vscode.ProviderResult<vscode.InlineCompletionItem[] | vscode.InlineCompletionList> {
let item: vscode.InlineCompletionItem = new vscode.InlineCompletionItem(inlineCompletionitemProvider.text);
let startPos:vscode.Position = new vscode.Position(position.line +1 , position.character);
let endPos:vscode.Position = new vscode.Position(position.line +1  , position.character + inlineCompletionitemProvider.text.length);
let vscodeRange:vscode.Range = new vscode.Range(startPos,endPos);
item.range = vscodeRange;
return [item];
}

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.85.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

I upgraded to 1.85.0 but issue still exists

Inline completions can only be reported for the cursor line (see docs).

Many vscode  extensions (AWS toolkit, github (copilot)) shows the hints on the next line. So, there must be some workaround/attribute settings?

The replace range has to be single line, also for these extensions. The suggestion text can be multi line


Reset sync & template does nothing

Every time I sync my clippings file it adds the principle count to the stats on the modal screen.  Also, altering the template doesn't seem to do anything. Are we supposed to edit a file or just the narrow text input on the plugin settings panel?
This is a great plugin but really needs a proper QA and fix from the dev.

Thanks for creating an issue. I am unclear on the exact nature of the problems that you are describing. If you can clarify what you intended, it will help fix the problem at hand.

Every time I sync my clippings file it adds the principle count to the stats on the modal screen.
What do you mean by "principle count"?

Also, altering the template doesn't seem to do anything
That should not be the case. The plugin will use the latest version of the template when it writes any new book synchronisations. If you don't have any new books, you could delete previous book highlights and re-sync again to see the latest changes of your template being used.

Sorry, I wasn't sure what to call the "initial book count". So I have 8 books with notes in my clippings.txt, when I resynced the file it would keep adding another 8 books to the "Your Kindle Highlights" modal. I just checked and it was at "56 books" with only 8 note files. Now I am experiencing the opposite: after pressing the grey Reset button in settings and deleting the generated notes, the book count in the modal stays at "0" no matter how many times I delete the notes and sync.

If you don't have any new books, you could delete previous book highlights and re-sync again to see the latest changes of your template being used.

This seemed to work with test text I added to template. The plugin doesn't seem to be scraping any metadata for the books and every note has a big gap at the top. Conversely, I have added space in the template so that highlight notes should be on their own line but they still scrunch up against the location without even a space between them.

You are raising multiple things in your question/issue. So let me try and unpack what I understood you are raising. Let me know if you think I missed something.
Issue 1: Book count incorrectly keeps incrementing
This is potentially a bug. You only have 8 books in your library. Every time you attempt to sync, even though nothing new is synced, the book count is always incremented by the plugin, showing you 56 which is incorrect.
Issue 2: Book count stops incrementing after reset
I believe this not a bug. Even though your book count has been set to 0, I am assuming that your 8 books from your library exist in the Obsidian vault. Every time you attempt to resend, the plugin is automatically skipping your 8 books and never incrementing your book count which keeps remaining as 0.
Issue 3: Book metadata not being scraped
The plugin tries to fetch metadata for a given Amazon purchased book from Amazon. Metadata will not be available for books not purchased via Amazon (as it is difficult to accurately identify the book). Not all metadata is always available for books purchased from Amazon. Amazon doesn’t always consistently provide consistent metadata for all its books.
They plugin README file provides a clear explanation of what template variables that you can expect to always be there, never to be there, and sometimes to be there.
Issue 4: Space in the template note is not being respected
The plugin’s default template trims any white space before a note by using a Nunjuck’s white space control tag. Replace {%- with {%} and it should resolve this issue for you.
Let me know if my understanding (and assumptions) are correct. That will help in identifying what problems and enhancements need to be worked on.


[SPARK-19093][SQL] Cached tables are not used in SubqueryExpression

What changes were proposed in this pull request?
Consider the plans inside subquery expressions while looking up cache manager to make
use of cached data. Currently CacheManager.useCachedData does not consider the
subquery expressions in the plan.
SQL
select * from rows where not exists (select * from rows)

Before the fix
== Optimized Logical Plan ==
Join LeftAnti
:- InMemoryRelation [_1#3775, _2#3776], true, 10000, StorageLevel(disk, memory, deserialized, 1 replicas)
:     +- *FileScan parquet [_1#3775,_2#3776] Batched: true, Format: Parquet, Location: InMemoryFileIndex[dbfs:/tmp/rows], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<_1:string,_2:string>
+- Project [_1#3775 AS _1#3775#4001, _2#3776 AS _2#3776#4002]
   +- Relation[_1#3775,_2#3776] parquet

After
== Optimized Logical Plan ==
Join LeftAnti
:- InMemoryRelation [_1#256, _2#257], true, 10000, StorageLevel(disk, memory, deserialized, 1 replicas)
:     +- *FileScan parquet [_1#256,_2#257] Batched: true, Format: Parquet, Location: InMemoryFileIndex[file:/tmp/rows], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<_1:string,_2:string>
+- Project [_1#256 AS _1#256#298, _2#257 AS _2#257#299]
   +- InMemoryRelation [_1#256, _2#257], true, 10000, StorageLevel(disk, memory, deserialized, 1 replicas)
         +- *FileScan parquet [_1#256,_2#257] Batched: true, Format: Parquet, Location: InMemoryFileIndex[file:/tmp/rows], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<_1:string,_2:string>

Query2
 SELECT * FROM t1
 WHERE
 c1 IN (SELECT c1 FROM t2 WHERE c1 IN (SELECT c1 FROM t3 WHERE c1 = 1))

Before
== Analyzed Logical Plan ==
c1: int
Project [c1#3]
+- Filter predicate-subquery#47 [(c1#3 = c1#10)]
   :  +- Project [c1#10]
   :     +- Filter predicate-subquery#46 [(c1#10 = c1#17)]
   :        :  +- Project [c1#17]
   :        :     +- Filter (c1#17 = 1)
   :        :        +- SubqueryAlias t3, `t3`
   :        :           +- Project [value#15 AS c1#17]
   :        :              +- LocalRelation [value#15]
   :        +- SubqueryAlias t2, `t2`
   :           +- Project [value#8 AS c1#10]
   :              +- LocalRelation [value#8]
   +- SubqueryAlias t1, `t1`
      +- Project [value#1 AS c1#3]
         +- LocalRelation [value#1]

== Optimized Logical Plan ==
Join LeftSemi, (c1#3 = c1#10)
:- InMemoryRelation [c1#3], true, 10000, StorageLevel(disk, memory, deserialized, 1 replicas), t1
:     +- LocalTableScan [c1#3]
+- Project [value#8 AS c1#10]
   +- Join LeftSemi, (value#8 = c1#17)
      :- LocalRelation [value#8]
      +- Project [value#15 AS c1#17]
         +- Filter (value#15 = 1)
            +- LocalRelation [value#15]

After
== Analyzed Logical Plan ==
c1: int
Project [c1#3]
+- Filter predicate-subquery#47 [(c1#3 = c1#10)]
   :  +- Project [c1#10]
   :     +- Filter predicate-subquery#46 [(c1#10 = c1#17)]
   :        :  +- Project [c1#17]
   :        :     +- Filter (c1#17 = 1)
   :        :        +- SubqueryAlias t3, `t3`
   :        :           +- Project [value#15 AS c1#17]
   :        :              +- LocalRelation [value#15]
   :        +- SubqueryAlias t2, `t2`
   :           +- Project [value#8 AS c1#10]
   :              +- LocalRelation [value#8]
   +- SubqueryAlias t1, `t1`
      +- Project [value#1 AS c1#3]
         +- LocalRelation [value#1]

== Optimized Logical Plan ==
Join LeftSemi, (c1#3 = c1#10)
:- InMemoryRelation [c1#3], true, 10000, StorageLevel(disk, memory, deserialized, 1 replicas), t1
:     +- LocalTableScan [c1#3]
+- Join LeftSemi, (c1#10 = c1#17)
   :- InMemoryRelation [c1#10], true, 10000, StorageLevel(disk, memory, deserialized, 1 replicas), t2
   :     +- LocalTableScan [c1#10]
   +- Filter (c1#17 = 1)
      +- InMemoryRelation [c1#17], true, 10000, StorageLevel(disk, memory, deserialized, 1 replicas), t1
            +- LocalTableScan [c1#3]

How was this patch tested?
Added new tests in CachedTableSuite.

Test build #70999 has started for PR 16493 at commit f733f90.

Although the test cases can be improved, the code fix looks good to me. cc @JoshRosen @hvanhovell

@dilipbiswal Could you post the nested subquery in the PR description? It can help the other reviewers understand the fix. Thanks!

Test build #70999 has finished for PR 16493 at commit f733f90.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

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

In the test suite, we can have such a helper function to count InMemoryRelation
  private def getNumInMemoryRelations(plan: LogicalPlan): Int = {
    var sum = plan.collect { case _: InMemoryRelation => 1 }.sum
    plan.transformAllExpressions {
      case e: SubqueryExpression =>
        sum += getNumInMemoryRelations(e.plan)
        e
    }
    sum
  }

Test build #71004 has started for PR 16493 at commit f9f0b01.

Test build #71005 has started for PR 16493 at commit 3c779d5.

Test build #71004 has finished for PR 16493 at commit f9f0b01.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

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

Test build #71005 has finished for PR 16493 at commit 3c779d5.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Test build #71006 has started for PR 16493 at commit 3c779d5.

Merged build finished. Test FAILed.

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

retest this please

retest this please

test this please

Test build #71027 has started for PR 16493 at commit 3c779d5.

Test build #71027 has finished for PR 16493 at commit 3c779d5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

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

LGTM

Also cc @rxin @cloud-fan

LGTM

Merging to master. Thanks!

Thank you very much @gatorsmile @hvanhovell


Add in table to display event information

https://github.com/alja/VSDNano/blob/main/evd.h#L475

https://root.cern/doc/master/collection__proxies_8C_source.html

Many nice examples of other interactivity: https://github.com/alja/FireworksWeb/tree/threejs-2024-master/Core/ui5

I no longer see this necessary now we have the print to terminal feature


2.15 cherry pick request - rev DevTools version in SDK to latest 2.8.0

Commit: https://github.com/dart-lang/sdk/commit/b8e419d16b10be073f080192a55aaf598321ca10
This is to ensure DevTools 2.8.0 is included in the Dart 2.15 / Flutter 2.8 beta and stable releases. User risk is low. This cherry pick used to be part of the flutter cherry pick process (example), but now we ship devtools directly in the SDK and will cherry pick the version number update when necessary.

Thanks; can you include the commit to cherry-pick? We do want to briefly mention the risk wrt cherry picking and the user impact if we don't (see https://github.com/dart-lang/sdk/wiki/Cherry-picks-to-a-release-channel). I'm guessing here that the risk is pretty low and the impact would be that we ship an older version of DevTools.

Updated the description to include the commit.

I'm guessing here that the risk is pretty low and the impact would be that we ship an older version of DevTools.

This is correct.

Thanks!

Approved!

Merged to beta in c8b50bd835770529f30c6079376c824264a57e2c (2.15.0-268.8.beta).


ZeroWidthPlugin causes entire page to freeze

Describe the bug
Inclusion of ZeroWidthPlugin causes entire page to freeze when the last node is a decorator (e.g. a mention).
To Reproduce

Setup editor with mentions and ZeroWidthPlugin
Add a mention at end of editor
Page freezes

Expected behavior
Page continues working normally.
Desktop (please complete the following information):

OS: mac
Browser: latest chrome and safari

Additional context

Lexical: 0.13.1
lexical-beautiful-mentions: 0.1.29 & 0.1.30
react: 18.2.0

When I comment out ZeroWidthPlugin the issue goes away. Not sure what's different for me vs the functional demo @ https://lexical-beautiful-mentions-docs.vercel.app/ ... what versions of libraries is that running?

Ah turns out using PlainTextPlugin the page just freezes. With RichTextPlugin it shows the error that ZeroWidthNode was used without being setup.
Looks like user error, I had to add ZeroWidthNode to my editoConfig.nodes.


Do we need any other calibration before predicting MOS?

Hi,
Thanks for the great works!
I notice that #4 issue mentioned the volume of the input audio might affect the result. Is there any other calibration or pre-processing needs to be done for the wav files before applying run_predict.py to them?  To be more specifically, if I want to compare the MOS of speech audios recorded from different devices, is there any other calibration I need to apply?  For example, Active Speech Level adjustment in double-ended methods [1]. Thanks!
Reference:
[1] Section <IP_ADDRESS>.: https://cdn.head-acoustics.com/fileadmin/data/global/Application-Notes/Telecom/3QUEST-Application-Note.pdf

Hi,
Generally, there is no pre-processing needed. However, the model will judge too quiet or too loud signals as degraded and it will result in a lower MOS score. The ideal volume is an active speech level (ASL) of -26dBo (same as for PESQ/POLQA). So if you want to compare different devices but want to neglect the difference in loudness it might be a good idea to normalize the signals.
The attached Figure shows the average MOS prediction (over multiple files) for different active speech level values.


Drag & drop!

Added drag & drop functionality
Had to fight with reset button

russian youtube tutorials are the best


python3Packages.pynetdicom: disable failing test

Motivation for this change
Fix build (https://hydra.nixos.org/build/163489202)
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 154783 run on x86_64-linux 1

1 package failed to build:

expliot

2 packages built:

python310Packages.pynetdicom
python39Packages.pynetdicom


API v17 client libs not pushed

CM 5.12.0 looks to have moved up to v17 of the API, but client libs here remain stuck at v16.

Oops, looks like it was pushed to a separate branch this morning (but not master). Good enough for me. :)


generic type arguments set as types of optional properties become "any" when not set

TypeScript Version:  3.8.3

Search Terms:
optional property generic
Expected behavior:
type variable inferred as undefined when optional property is missing
Actual behavior:

Related Issues:
none
Code
type AnySanitizer = (unsafeParams: any) => any;
type OptionalSanitizer = AnySanitizer | undefined;

interface MaybeSanitizing<TSanitizer extends OptionalSanitizer> {
    sanitizeParams?: TSanitizer;
    params: TSanitizer extends AnySanitizer ? ReturnType<TSanitizer> : null;
}

class SomeHT1 {
    // The case where the next line is uncommented correctly complains.
    //sanitizeParams(paramsIn: any) { return "yo";}
    params = 3;
}

function doSomethin<SaniType extends OptionalSanitizer>(someClass: MaybeSanitizing<SaniType>) {
    return someClass.params;
}

const h = new SomeHT1();

const yo = doSomethin(h);
// EXPECTED: Error because params needs to be null
// ACTUAL: No error

Output
"use strict";
class SomeHT1 {
    constructor() {
        // The case where the next line is uncommented correctly complains.
        //sanitizeParams(paramsIn: any) { return "yo";}
        this.params = 3;
    }
}
function doSomethin(someClass) {
    return someClass.params;
}
const h = new SomeHT1();
const yo = doSomethin(h);
// EXPECTED: Error because params needs to be null
// ACTUAL: No error

Compiler Options
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "useDefineForClassFields": false,
    "alwaysStrict": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "downlevelIteration": false,
    "noEmitHelpers": false,
    "noLib": false,
    "noStrictGenericChecks": false,
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "esModuleInterop": true,
    "preserveConstEnums": false,
    "removeComments": false,
    "skipLibCheck": false,
    "checkJs": false,
    "allowJs": false,
    "declaration": true,
    "experimentalDecorators": false,
    "emitDecoratorMetadata": false,
    "target": "ES2017",
    "module": "ESNext"
  }
}

Playground Link: Provided

Just a quick note in case it's not clear - my goal in this code is to enforce that the "params" property's type depends on the existence of the sanitizeParams method:  If it exists, it must be the return type of the method.  If it doesn't, it must be null.
There seems to be no way to achieve this.

I'm not really clear on what the proposed defect is. Can you add more examples of what you're trying to do?

Thanks for the response and sorry it wasn't clear.  I'll try to describe it in words.
tl;dr: I believe that if there's an optional property on a generic interface that's typed as a generic type variable, in cases it's not set, the type variable should collapse to "never", not "any".
The "why" relates to my example above.
On a generic interface with (1) an optional method and (2) a property, I'd like the property's type to be enforced as:

If the optional method exists, the return type of the method.
If the optional method doesn't exist, null.

But this seems impossible, because when the optional method doesn't exist, typescript leaves the generic type variable wide open.
My semantics might be a little rough above, but I hope this helps.

This isn't really an actionable description of a change to the current inference model. What's happening here is a zero-candidate inference that falls back to the constraint type. The missed optional properties don't really figure into it at all.


Fix scale-related bugs: stop hangs, and lock contention.

This PR fixes a small number of related things:

in some cases, magna would hang when stopping flows, and had no mechanism to
cleanly handle this. this change adds a means to monitor when flows do not
stop and provide debugging information related to it to the user.
the locking in counter generation was fine grained, but complex. this
approach simplifies locking within flow counters.

a scale issue still exists, related to the number of flows being run,
specifically, we have:

processing overhead for every packet being considered at every flow, even if
it doesn't match. proposed fix is to use bpf rules to pre-install classifiers
so flows only see the packets they care about.
a polling loop for when telemetry is to be updated - which shares a common
lock with the update. proposed fix is to have each tx/rx goroutine take
events that send (timestamp, packetsize, flowname) to the reporter, which
then updates counters, and determines whether to create telemetry.

stable for a real integration test: see test run ID 1efc0eb9-44c4-41eb-bf62-9fe0ba1ba152 internally.

See also internal run ID: 81267f01-49ce-475f-9fb3-b75d34ed8180

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

83 of 99 (83.84%)  changed or added relevant lines in 6 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.08%) to 59.176%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

flows/ip/ip.go
0
3
0.0%

flows/mpls/mpls.go
0
6
0.0%

flows/common/common.go
0
7
0.0%

Files with Coverage Reduction
New Missed Lines
%

flows/common/common.go
1
20.85%

Totals

Change from base Build<PHONE_NUMBER>:
0.08%

Covered Lines:
1106

Relevant Lines:
1869

💛  - Coveralls


unexpected stack trace for cyclic dependency error when attempting to grant auth access to lambda

How did you install the Amplify CLI?
pnpm
If applicable, what version of Node.js are you using?
18
Amplify CLI Version
10.6.2
What operating system are you using?
mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
n/a
Describe the bug
➜  amplify update function
? Select the Lambda function you want to update 928762ef6d3PostConfirmation
General information
- Name: 928762ef6d3PostConfirmation
- Runtime: nodejs

Resource access permission
- Not configured

Scheduled recurring invocation
- Not configured

Lambda layers
- Not configured

Environment variables:
- Not configured

Secrets configuration
- Not configured

? Which setting do you want to update? Resource access permissions
? Select the categories you want this function to have access to. auth
? Auth has 2 resources in this project. Select the one you would like your Lambda
to access 928762ef6d3
? Select the operations you want to permit on 928762ef6d3 read

You can access the following resource attributes as environment variables from your Lambda function
        AUTH_928762EF6D3_USERPOOLID
Error: Cannot add 928762ef6d3PostConfirmation due to a cyclic dependency
    at checkForCyclicDependencies (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/extensions/amplify-helpers/update-amplify-meta.js:248:15)
    at AmplifyToolkit.updateamplifyMetaAfterResourceUpdate [as _updateamplifyMetaAfterResourceUpdate] (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/extensions/amplify-helpers/update-amplify-meta.js:155:9)
    at updateFunctionResource (/snapshot/repo/build/node_modules/amplify-category-function/lib/provider-utils/awscloudformation/index.js:157:29)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async Object.executeAmplifyCommand (/snapshot/repo/build/node_modules/amplify-category-function/lib/index.js:270:5)
    at async executePluginModuleCommand (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/execution-manager.js:142:5)
    at async executeCommand (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/execution-manager.js:40:9)
    at async Object.run (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/index.js:119:5)
There was an error adding the function resource

Expected behavior
instead of
Error: Cannot add 928762ef6d3PostConfirmation due to a cyclic dependency
    at checkForCyclicDependencies (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/extensions/amplify-helpers/update-amplify-meta.js:248:15)
    at AmplifyToolkit.updateamplifyMetaAfterResourceUpdate [as _updateamplifyMetaAfterResourceUpdate] (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/extensions/amplify-helpers/update-amplify-meta.js:155:9)
    at updateFunctionResource (/snapshot/repo/build/node_modules/amplify-category-function/lib/provider-utils/awscloudformation/index.js:157:29)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async Object.executeAmplifyCommand (/snapshot/repo/build/node_modules/amplify-category-function/lib/index.js:270:5)
    at async executePluginModuleCommand (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/execution-manager.js:142:5)
    at async executeCommand (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/execution-manager.js:40:9)
    at async Object.run (/snapshot/repo/build/node_modules/@aws-amplify/cli-internal/lib/index.js:119:5)
There was an error adding the function resource

print
Error: Cannot add 928762ef6d3PostConfirmation due to a cyclic dependency

additionally, it would be nice if this error were printed when validating the options selected, blocking us from proceeding to select a CRUD permission:
? Select the categories you want this function to have access to.
 ◯ api
❯◉ auth
 ◯ custom
 ◯ function
 ◯ storage
Unable to add auth due to a cyclic dependency

Reproduction steps

amplify init -y
amplify add auth > manual configuration
accept most defaults, add a PostConfirmation trigger
update the PostConfirmation trigger with amplify update function
select Resource Access Permissions
attempt to grant auth read access
observe stack trace with error "There was an error adding the function resource"

Project Identifier
No response
Log output

# Put your logs below this line

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Marking this as bug as I was able to reproduce the issue. If a Lambda function trigger already has access to a auth user pool, the resource access option should not provide a selection again.


LDAP_START_TLS and DOVECOT_TLS not having default values?

As written in the README LDAP_START_TLS and DOVECOT_TLS should have default values when they have empty values in .env file.
Actually they have either no default value or an invalid default value.
If you empty the value of DOVECOT_TLS in the .env file and start the docker-container with docker-compose you get the following error when some user wants to connect:
mail    | Nov  2 03:40:56 mail dovecot: auth: Fatal: ldap /etc/dovecot/dovecot-ldap.conf.ext: Error in configuration file /etc/dovecot/dovecot-ldap.conf.ext line 6: Invalid boolean
dovecot-ldap.conf.ext looks like this:

base = ou=users,dc=example,dc=com
default_pass_scheme = SSHA
dn = cn=admin,dc=example,dc=com
dnpass = 12345678
hosts = openldap
tls =
ldap_version        = 3
pass_attrs          = uniqueIdentifier=user,userPassword=password
pass_filter = (&(objectClass=PostfixBookMailAccount)(uid=%n))
user_attrs          = mailHomeDirectory=home,mailUidNumber=uid,mailGidNumber=gid,mailStorageDirectory=mail
user_filter = (&(objectClass=PostfixBookMailAccount)(uid=%n))

As you can see in line 6 there is missing a value. It should be either yes or no - not empty.
Currently you can fix this by commenting out the env var (DOVECOT_TLS) in docker-compose.yml; then line 6 looks like this:
tls = no
Of cause you can set env var DOVECOT_TLS explicitly to yes or no which will cause the config file to have a valid value.
Same happening for LDAP_START_TLS (just in another file).

Could you provide a PR for this?


Workbench did not finish loading in 10 seconds, that might be a problem that should be reported.

On the latest version of Code (1.11.2) on Mac OS 10.12.4, with --disable-extensions, the progress ticker in the Explorer keeps moving, Code Helper eats up 130% CPU, and the console only shows
Workbench did not finish loading in 10 seconds, that might be a problem that should be reported.

I wonder if this issue is being caused by an installed extension. Can you try to run VS Code without extensions? From the command line (NOT the integrated terminal in Code), execute: code --disable-extensions and try your steps again to see if it reproduces. If you see it is an issue with the extension, please file it against the extension repository itself.

On the latest version of Code (1.11.2) on Mac OS 10.12.4, with --disable-extensions

Already did.

A restart seemed to have fixed it, so closing this for now.


Combining Stepper and Jumper

Attempt to combine Stepper(Step) and Jumper(Jump).
Summary of changes

Combine Stepper and Jumper into Replay
Both Jump and Step have a preamble field.
2-1. Replay must have either Jump or Step as a body.
Jump now has a Switch with Stepper in its phase_body
3-1. Level description is now much simpler

Codecov Report
Patch coverage: 85.71% and project coverage change: -0.03% :warning:

Comparison is base (fd81307) 79.41% compared to head (be14163) 79.38%.

:exclamation: Current head be14163 differs from pull request most recent head 5302795. Consider uploading reports for the commit 5302795 to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #260      +/-   ##
==========================================
- Coverage   79.41%   79.38%   -0.03%
==========================================
  Files          72       73       +1
  Lines        5941     5861      -80
==========================================
- Hits         4718     4653      -65
+ Misses       1223     1208      -15

Files Changed
Coverage Δ

src/Finch.jl
100.00% <ø> (ø)

src/tensors/combinators/windowed.jl
23.68% <0.00%> (+0.30%)
:arrow_up:

src/looplets/jumpers.jl
61.11% <66.66%> (-2.69%)
:arrow_down:

src/tensors/levels/sparsehashlevels.jl
80.35% <80.00%> (-0.18%)
:arrow_down:

src/tensors/levels/sparsevbllevels.jl
89.68% <80.00%> (-1.04%)
:arrow_down:

src/tensors/levels/sparsebytemaplevels.jl
88.42% <83.33%> (-0.07%)
:arrow_down:

src/looplets/replays.jl
84.21% <84.21%> (ø)

ext/SparseArraysExt.jl
70.10% <100.00%> (-0.61%)
:arrow_down:

src/looplets/fills.jl
89.47% <100.00%> (-0.53%)
:arrow_down:

src/looplets/phases.jl
80.00% <100.00%> (-0.31%)
:arrow_down:

... and 10 more

... and 3 files with indirect coverage changes

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

Ready to merge

Some lessons I've learned & future works:

Distinguish a prologue/main/epilogue in replay for better code optimization
Clever Switch looplet lowering with bounds inference will remove unnecessary branches generated from Step or Jump. Below is the example of for i = _; s[] += x[gallop(i)] where x is SparseList.

    while i <= phase_stop
            x_lvl_i2 = x_lvl.idx[x_lvl_q]
            phase_stop_2 = min(x_lvl_i2, phase_stop)
            if phase_stop_2 >= i
                if x_lvl_i2 == phase_stop_2  <<<<<<<<<<<<<<<<< This condition is always true if there is a single operand.
                    x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                    s_val = x_lvl_2_val_2
                    x_lvl_q += 1
               % else     <<<<<<<<<<<<<<<<< WE DONT WANT THIS BRANCH
               %    while i <= phase_stop_2
               %         x_lvl_i2 = x_lvl.idx[x_lvl_q]
               %         phase_stop_3 = min(x_lvl_i2, phase_stop_2)
               %         if x_lvl_i2 == phase_stop_3
               %             x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
               %             s_val = x_lvl_2_val_2
               %             x_lvl_q += 1
               %         end
               %         i = phase_stop_3 + 1
               %     end
               % end
                i = phase_stop_2 + 1
            end
        end

Would there be a clever way to emit below code without relying on Thunk? Below code is coming from for i = _; s[] += x[i] where x is SparseVBL. The level definition of SparseVBL does not use next field in Step to avoid the use of Switch. Instead, Thunk with epilogue enables generating a clean way to increment position : y_lvl_r += phase_stop2 == y_lvl_i. My question is : Can we emit such code with only next and without calling Thunk?

        while i <= phase_stop
            y_lvl_i = y_lvl.idx[y_lvl_r]
            y_lvl_q_stop = y_lvl.ofs[y_lvl_r + 1]
            y_lvl_q_ofs = (y_lvl_q_stop - y_lvl_i) - 1
            phase_stop_2 = min(phase_stop, y_lvl_i)
            y_lvl_r += phase_stop_2 == y_lvl_i    <<<< Such a clean way to increment position
            i = phase_stop_2 + 1
        end

@willow-ahrens I anticipate that the interface for Replay, Step, and Jump may evolve as I continue to refine the lowering mechanism, as explained above. Could we proceed with merging this into the main branch first? We can then address documentation once we've finalized the Replay lowering process.

Are you satisfied with the name Replay? We no longer have separate Stepper or Jumper looplet; instead, we've introduced a unified interface called Replay, where the Replay body can be either Step or Jump.

I'm not worried so much about the name, I think Fred suggested "Repeater" in the past, which has a similar name. We can skip docs for now. My main concern is whether this change represents a performance or code clarity regression. If we feel that this change does not decrease performance or code clarity, we can merge it. Have you tried running benchmarks to check for regressions?
Code clarity
This PR
jaeyeonwon:/Users/jaeyeonwon/Finch.jl/test/reference64 $ wc -l typical_merge_gallop.txt                                                                                3:14PM
     341 typical_merge_gallop.txt
jaeyeonwon:/Users/jaeyeonwon/Finch.jl/test/reference64 $ wc -l typical_merge_leadfollow.txt                                                                                3:14PM
     246 typical_merge_leadfollow.txt

Main Branch
jaeyeonwon:/Users/jaeyeonwon/Finch.jl/test/reference64 $ wc -l typical_merge_gallop.txt                                                                                3:14PM
     365 typical_merge_gallop.txt
jaeyeonwon:/Users/jaeyeonwon/Finch.jl/test/reference64 $ wc -l typical_merge_leadfollow.txt                                                                                3:14PM
     258 typical_merge_leadfollow.txt

10-20 less lines of generated code compared to main.

I think this code is not emitting galloping intersection.

A few comments:

I think we should add triangle counting to the benchmarks
Is this code actually emitting a galloping merge?


Add a cancel button that stops the process and cleans up the partially downloaded files

Stopping the process mid-download will leave partial files behind however when running the download again it automatically cleans up the fragments.


"Extra" directory doesn't exist

The material mentions a directory called extra which doesn't seem to exist.

Thanks for opening the issue, the folder was removed(see https://github.com/esp-rs/std-training/pull/161), but we forgot to remove this line, thanks!


Files download as directories, and cannot be viewed (Unknown Error 180)

On clicking a file in the FTP window to edit it, it appears in the local project folder but as a sub-folder, and an "Unknown Error 180" pops up. The folder has nothing in it.
Seems to only happen for this one FTP server, but I can connect to it and edit fine with other editors/FTP plugins.
Console output for the transfer:
< 250 "/plugins/file.txt" is the current directory.
< 250 "/" is the current directory.
< 227 Entering passive mode ({server IP}).
< 150 File status okay. About to open data connection.
< 226 Transfer complete.
< 227 Entering passive mode ({server IP}).
< 550 Unknown error 180.

.ftpconfig:
{
    "protocol": "ftp",
    "host": "{ip}",
    "port": 21,
    "user": "{username}",
    "pass": "{password}",
    "promptForPass": false,
    "remote": "/plugins/",
    "secure": false,
    "secureOptions": null,
    "connTimeout": 10000,
    "pasvTimeout": 10000,
    "keepalive": 10000
}

Atom Version: 1.7.3 (Windows)
Remote-FTP Version: 0.8.3

Even weirder behaviour I just found:
If the remote directory in the config is just "/", it creates the empty directory with the same name as the file, but also creates the file with the same name minus the first letter. Also doesn't throw the 180 error that way.
Console log:
< 250 "/file.txt" is the current directory.
< 250 "/" is the current directory.
< 227 Entering passive mode ({server IP}).
< 125 Data connection already open. Transfer starting.
< 226 Transfer complete.
< 227 Entering passive mode ({server IP}).
< 125 Data connection already open. Transfer starting.\r\n226 Transfer complete.
< 200 Transfer mode set to: S

The above creates a local directory called "file.txt" with nothing in it, and a file called "ile.txt" with the contents of file.txt inside it.

Could be related to #434


Grafana Dashboard does not currently populate

Describe the bug

To Reproduce
install latest pre-release of Besu,
let syncing start,
check DMS
find empty tables and graphs

Expected behavior
should show mmetrics

Screenshots

DAppNode version:

Package version:
OS:
Browser

Additional context
prometheus targets appear to be correct naming has been updated, but there is something in the besu docs about it being difficult to poll metrics when running besu in a docker container, suggests using --metrics-push-enabled https://besu.hyperledger.org/en/stable/public-networks/how-to/monitor/metrics/#run-prometheus-with-besu-in-push-mode but requires changes to prometheus as well.

@tropicar i think this happened when you changed the service name. Then it wasn't chnsged in the metrics file. Also now it shows as node.Besu in the docker dash. can it just be Besu?


As a first time user, I get a brief overview of app on launch

So that I understand how the app runs.

Closed -- will not add.


Add test mode and composer stub registration

This is meant for testing purposes and for presenting components in isolation (e.g, in react-storybook), when those components require container components.
This provides a method to override the composer for a given "dumb" component without changing existing API.
This is done by calling createStubComposers() with the "dumb" component as the first argument, followed by the desired composer(s) and turning on test mode via setTestMode(true).
Any call to a composer returned by composeAll with this "dumb" component will result in the override composers being used, instead of the original ones.
Calling createStubComposers with the same component later on will replace the override composers for it and calling  setTestMode(false) will disable test mode.
Overriding the composers for a given component should happen before the composition is executed. It can happen after calling composeAll, but before the actual container component is generated (by calling the resulting function with the "dumb" component).
This PR addresses https://github.com/kadirahq/react-storybook/issues/45
A simple example is available in https://github.com/kadirahq/react-storybook/issues/45#issuecomment-206030133

What is the status on this PR? Looks really useful, I am dealing with the problem it solves right now.

I also think that being able to test or display complex components in isolation is important.
Arunoda suggested to discuss this, but I guess he is pretty busy with other stuff.
@arunoda, any chance you can ask someone to review this PR if you don't have time to do so yourself?

I implemented a brand new stubbing functionality. With that, I hope we could close this.
What do you think?
See: https://github.com/kadirahq/react-komposer#stubbing

I hope we could close this.


Breaks when minified

During development (not minified), everything works fine.  But after using grunt to uglify all resources, this  component breaks.
I tried to exclude the mangling of variables on which it broke (like _dereq_, and anything downstream, like CoSELayout) but new unresolved references continue to pop up.  Any other suggestions on a workaround or fix?
(This happens on versions 1.0.4 and 1.0.5)

From Max:
Cytoscape.js uses the Weaver APIs for multitasking.  Because of how webworkers work, you either have to keep multitasking code unminified or use a bit of extra reference fixing.
See the minification info and ref()
Ideally, CoSE should use _ref_() so that clients don't have to worry about minification issues.  Alternatively, not minifying the cose-bilkent.js file should work around the issue.

Hi Danny, I hope you're not in urgent need of this getting fixed. We hope to address it in the future though.

Thanks for following up.  No worries - I just prevent it from being minified and it works fine.

Also just ran into this issue. Would be interested if there was a workaround but happy to go unminified

The issue is the dependency tree of all of the classes.
Options:
(1) Remove all classes and instead use pure functions with plain objects.  This is the ideal solution.  It would greatly cut down on the file size and it would make it trivial to support minification.  It would also make the algorithm itself run much faster.
(2) Remove all class dependencies.  Probably not practical
(3) Don't use multitasking.  This is a loss.  The algorithm is already slower, because it creates all these class instances on every iteration of the algorithm.

awesome news! I was gonna test it out but i'm wondering if maybe I'm building it wrong or if latest npm package is configured weird
I tried adding cytoscape-cose-bilkent and cytoscape latest versions and building with gulp but got an error
example
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var browserify = require('gulp-browserify');

gulp.task('build', function () {
    gulp.src(['index.js'])
        .pipe(browserify())
        .pipe(uglify())
        .pipe(gulp.dest('dist'));

    return 1;
});
gulp.task('default', ['build']);

var cycose = require('cytoscape-cose-bilkent')
var cytoscape = require('cytoscape')
cycose(cytoscape)

gulp
[17:39:27] Using gulpfile ~/test2/gulpfile.js
[17:39:27] Starting 'build'...
[17:39:27] Finished 'build' after 14 ms
[17:39:27] Starting 'default'...
[17:39:27] Finished 'default' after 47 μs

events.js:161
      throw er; // Unhandled 'error' event
      ^
Error: module "./FDLayoutConstants" not found from "/Users/me/test2/node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js"
    at notFound (/Users/me/test2/node_modules/browserify/index.js:803:15)
    at /Users/me/test2/node_modules/browserify/index.js:754:23
    at /Users/me/test2/node_modules/browser-resolve/index.js:185:24
    at /Users/me/test2/node_modules/browser-resolve/node_modules/resolve/lib/async.js:36:22
    at load (/Users/me/test2/node_modules/browser-resolve/node_modules/resolve/lib/async.js:54:43)
    at /Users/me/test2/node_modules/browser-resolve/node_modules/resolve/lib/async.js:60:22
    at /Users/me/test2/node_modules/browser-resolve/node_modules/resolve/lib/async.js:16:47
    at FSReqWrap.oncomplete (fs.js:114:15)
➜  test git:(master) ✗ cat Gulpfile.js

It builds fine on my machine.  You don't have to build anyway.  main points to the prebuilt file

I'm wondering if maybe it is hardcoding paths to your computer? This is the top of cytoscape-cose-bilkent.js
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"/Users/max/Documents/workspace/cytoscape.js-cose-bilkent/src/Layout/CoSEConstants.js":[function(require,module,exports){
var FDLayoutConstants = require('./FDLayoutConstants');

function CoSEConstants() {
}

//CoSEConstants inherits static props in FDLayoutConstants
for (var prop in FDLayoutConstants) {
  CoSEConstants[prop] = FDLayoutConstants[prop];
}

CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;
CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;

module.exports = CoSEConstants;

},{"./FDLayoutConstants":"/Users/max/Documents/workspace/cytoscape.js-cose-bilkent/src/Layout/FDLayoutConstants.js"}],"/Users/max/Documents/workspace/cytoscape.js-cose-bilkent/src/Layout/CoSEEdge.js":[function(require,module,exports){
var FDLayoutEdge = require('./FDLayoutEdge');

Try 1.4.1
It just points main to ./src

@maxkfranz that seems like it builds now! I get an error at runtime though...trying to create minimal example, maybe I'll make a new issue!
rhill-voronoi-core.js:1721 Uncaught ReferenceError: Point is not defined
    at CoSELayout.positionNodesRadially (rhill-voronoi-core.js:1721)
    at CoSELayout.classicLayout (rhill-voronoi-core.js:1721)
    at CoSELayout.layout (rhill-voronoi-core.js:1721)
    at CoSELayout.Layout.runLayout (rhill-voronoi-core.js:1721)
    at run (rhill-voronoi-core.js:1721)
    at Layout._CoSELayout.run (rhill-voronoi-core.js:1721)
    at Core.layout (rhill-voronoi-core.js:1721)
    at Core.load (rhill-voronoi-core.js:1721)
    at rhill-voronoi-core.js:1721
    at loadExtData (rhill-voronoi-core.js:1721)

@cmdcolin OK, looking forward to the test case


How to support master slave and multiple database?

How to support master slave and multiple database?
@levinalex Can you add file config for database connection open with multi shard and master/slave?
like active_record sharding https://github.com/zendesk/active_record_shards

you could have a load balancer, and make gorm connect the load balancer

Just for future reference in case anyone else stumbles upon this issue, for master slave topologies you can use https://github.com/tsenart/nap to add client side load balancing. For multi-master topologies like CockroachDB I wrote a library https://github.com/d4l3k/go-lbsql.
There's also https://github.com/benthor/clustersql but it seems to have some issues and not be thread safe.

@d4l3k Could you please share an example with gorm and tsenart/nap ?


Fixes wrong class in code sample for observability

Use correct class name Meter for the code sample.

@vmikhailenko: The dynatrace chapter is separate because you can use Dynatrace even without Open Telemetry. If we integrated the content into the telemetry chapter, people might loose this fact.
However, what I noticed is that the Dynatrace chapter only links to the official, externally available documentation on help.sap.com. For external customers, Dynatrace is not offered as a managed service on BTP. This is only for internal ones which is not mentioned at the moment. Should we add this with a corresponding (internal) link?

@vmikhailenko: The dynatrace chapter is separate because you can use Dynatrace even without Open Telemetry. If we integrated the content into the telemetry chapter, people might loose this fact.
However, what I noticed is that the Dynatrace chapter only links to the official, externally available documentation on help.sap.com. For external customers, Dynatrace is not offered as a managed service on BTP. This is only for internal ones which is not mentioned at the moment. Should we add this with a corresponding (internal) link?

I asked the internal Dynatrace docu to link to us.

@StefanHenke How about linking this https://opentelemetry.io/docs/languages/java/instrumentation/#initialize-the-sdk?
GlobalOpenTelemetry is discouraged by OpenTelemetry. Maybe we should mention that to prevent the people from simply copy-pasting the snippet?

@vmikhailenko: We have to be careful here because the OpenTelemetry config is actually injected by the Java Agent which can  collide with the sdk. We need to ensure that we do not configure Open Telemetry a second time which would result in two parallel configs. At least I failed in the past to avoid GlobalOpenTelemetry.

@vmikhailenko: The dynatrace chapter is separate because you can use Dynatrace even without Open Telemetry. If we integrated the content into the telemetry chapter, people might loose this fact.
However, what I noticed is that the Dynatrace chapter only links to the official, externally available documentation on help.sap.com. For external customers, Dynatrace is not offered as a managed service on BTP. This is only for internal ones which is not mentioned at the moment. Should we add this with a corresponding (internal) link?

Should we also add an internal link pointing to some internal documentation?

@vmikhailenko: The dynatrace chapter is separate because you can use Dynatrace even without Open Telemetry. If we integrated the content into the telemetry chapter, people might loose this fact.
However, what I noticed is that the Dynatrace chapter only links to the official, externally available documentation on help.sap.com. For external customers, Dynatrace is not offered as a managed service on BTP. This is only for internal ones which is not mentioned at the moment. Should we add this with a corresponding (internal) link?

Should we also add an internal link pointing to some internal documentation?

Today, we don´t have an internal documentation section for dynatrace. What would be the best way to just add a link for internal usage: https://pages.github.tools.sap/apm/docs/

@vmikhailenko: The dynatrace chapter is separate because you can use Dynatrace even without Open Telemetry. If we integrated the content into the telemetry chapter, people might loose this fact.
However, what I noticed is that the Dynatrace chapter only links to the official, externally available documentation on help.sap.com. For external customers, Dynatrace is not offered as a managed service on BTP. This is only for internal ones which is not mentioned at the moment. Should we add this with a corresponding (internal) link?

Should we also add an internal link pointing to some internal documentation?

Today, we don´t have an internal documentation section for dynatrace. What would be the best way to just add a link for internal usage?

Will reach out to you. I'll merge this PR as it's initial goal is achieved.


Sorry, it is not possible to delete all non-frozen rows

Clearing a sheet does not work:

      ctx.sheet.clear(err => {
        console.log("CLEAREDDDDDDDDDD: ", err);
      });

info: CLEAREDDDDDDDDDD:  Error: HTTP error 400 (Bad Request) - Sorry, it is not possible to delete all non-frozen
 rows.

Have you solved this problem?

following

any update on this? I am also facing same issue

Faced the very same problem today but there is nothing wrong with this library.
Same behavior in the Spreadsheet UI : you must keep a non-frozen row right after the frozen one.
Solution : insert a new row then delete the previous one.

Yep - sounds like a google sheets issue.
FYI - I've just a published a new version of this module which is a complete rewrite using Google's V4 Sheets API (v3 is being deprecated on March 3, 2020).
Docs available here - https://theoephraim.github.io/node-google-spreadsheet
Thanks! 😄


A possible backtracking bug?

Following code runs with expected result in gprolog and SWI:
upto(N, X) :- N > 0, N1 is N - 1, upto(N1, X).
upto(N, X) :- N > 0, X = N.

main :-
  \+ (upto(3, I), upto(I, J), \+ (write([I, J]), nl)), halt.

Expected result is:
[1,1]
[2,1]
[2,2]
[3,1]
[3,2]
[3,3]

But in Trealla, result is:
[1,1]
[3,1]
[3,2]
[3,3]

This does not surprise me, probably related to the disjunction code.

I rewrote the test in a non-disjunctive way:
upto(N, X) :- N > 0, N1 is N - 1, upto(N1, X).
upto(N, X) :- N > 0, X = N.
main :- upto(3, I), upto(I, J), write([I, J]), nl, fail.
main :- halt.
And the problem persisted.
So then I ran it with -O0 (no optimization) and got the expected result.

Temp fix by disabling an optmization. I will look into that again later.

Did I say disjunctive? Meant negation.

I revert that temp fix, and rebuild Trealla using make debug, which I think no optimization is enabled, but this problem still exists.
Am I do anythng wrong?
One suspicious point is that in make debug mode, sources are compiled with command cc -Isrc -O3 -O0 -g -Wall ..., not sure if -O3 can be overrode by following -O0.

I believe -O0 does override.
When I said -O0 earlier I was referring 'tpl -O0' same as 'tpl --noopt', not compilation of the program.
Thanks for all the effort you've put into this.

Oh, I see. Confirmed.
Thank you for your Trealla, I really like the idea of combining Prolog and Erlang, also the emphasis of datastore and networking.

Issue #13 (or something) has caused this to fail again.

This testing code broken again after fix of #17, e.g.:
% ./tpl ../foo.pl
Trealla v0.1alpha, 64-bits (int=128-bits), Nov 28 2016
[1,1]
Halted

This one is still incorrect, I'll reopen this issue so that it will not be forgotten.

Find something interesting.
I simplified this test case a bit, following code can also reproduce this problem:
main :- \+ (member(I, [1,2,3]), \+ (write(I), nl)), halt.

But with a little adjustment, following code can loop are numbers correctly:
main :- \+ (member(I, [1,2,3]), \+ write(I)), nl, halt.

This is probably also related to the new issue with parenthesis. For instance:
main :- (write(1), write(2)), nl.
never gets to the 'nl'.


App schematic fails with Nx v10.3.0

Current Behavior
App schematic fails with Nx v10.3.0
Expected Behavior
App schematic should work as expected.
Steps to Reproduce
# Select empty preset
npx create-nx-workspace@latest my-repo && cd my-repo
yarn add -D @nx-plus/vue
nx g @nx-plus/vue:app my-app

Failure Logs

Environment
os: macOS 10.15.7 (19H2)
plugin: "@nx-plus/vue": "^10.0.0",
nx : Not Found
@nrwl/angular : Not Found
@nrwl/cli : 10.3.0
@nrwl/cypress : 10.3.0
@nrwl/eslint-plugin-nx : Not Found
@nrwl/express : Not Found
@nrwl/jest : 10.3.0
@nrwl/linter : 10.3.0
@nrwl/nest : Not Found
@nrwl/next : Not Found
@nrwl/node : Not Found
@nrwl/react : Not Found
@nrwl/schematics : Not Found
@nrwl/tao : 10.3.0
@nrwl/web : Not Found
@nrwl/workspace : 10.3.0
typescript : 4.0.3

This issue will be fixed as a part of the Nx update being done for #91. It's in progress.


[Function Expose] Table 1003 Job Planning Line - UpdateAllAmounts

Can you please make function UpdateAllAmounts in Table 1003 Job Planning Line External/Global please?

Hi @bleisibach,
What is the reason you require UpdateAllAmounts to be made external? Is there a specific scenario you are trying to achieve?

Hi @darjoo
We extended the table with fields that are influencing the pricing. On those fields we wish/need to call the UpdateAllAmounts function. Like we are able to call UpdateAmounts on Table 37 Sales Line.

Sorry, after reviewing your suggestion we've decided that it isn't something we'll implement as we're trying to limit the amount of local functions being exposed.
However, you may call UpdateAllAmounts by validating one of the other fields that already call UpdateAllAmounts like the following VALIDATE("Unit Cost"), VALIDATE("Unit Price"), VALIDATE("Line Amount"), VALIDATE("Line Discount Amount"), VALIDATE("Cost Factor"), VALIDATE("Line Discount %").


implement ffi/cpython/pystate

Per #1675
Also:

adds a bit more documentation to /ffi
makes the cpython modules pub(crate) to avoid double glob imports (is this OK?)

I don't think we should be restricting the ffi::cpython modules to pub(crate). They're already public in the CPython API, so I think it's correct for them to be pub, not pub(crate).

Their contents would still be public, just not the modules themselves.
Currently when you search for something that is defined in the cpython module this is what you see, because it's glob imported twice:

Their contents would still be public, just not the modules themselves.
Currently when you search for something that is defined in the cpython module this is what you see, because it's glob imported twice:

👍 I'm persuaded; also the modules in pyo3::ffi are not pub, so this is consistent.

Happy to merge this once conflict caused by #1692 is resolved (sorry!)


FR: Schema explorer

Is there a way to see/switch to different schemas from other users your current user has access too?

hello, do you mean you want to see different schemas in the side bar? currently I restrict it in the current user.

ok, i think it is ok to update it to show all the schemas the user can see.

Hi, I just updated, see if it satisfy your need.


[WIP] Fixed union inline fragments

This fixes #241. I haven't fully understood the problem yet, so no tests are present. I adopted code from https://github.com/graph-gophers/graphql-go/issues/241#issuecomment-406877915, modifying it to support the scenario in that issue. I did not remove the original comparsion added by @marksauter, I don't know what was the scenario that broke his code.
I'm casting the "fragment type" as an interface, if it works then I look into its possible types and check if there's a TypeAssertion for that interface. I think that's OK? I'll write tests for this patch if you think this is fine.

Looks like the CI failed, perhaps the implementation is too eager in applying the selection sets? I'll investigate this later.

Code behaves OK, but the test is still failing somehow.

Ahh, finally! It behaves OK now, I messed up the cast before. Still not entirely sure if this is the correct approach.

I took this PR and added some test cases in https://github.com/graph-gophers/graphql-go/pull/409. Feel free to steal them and incorporate them into this branch if you'd prefer. Thanks for the fix!

Thank you for your contribution. I'm closing this in favour of #409 because it has tests as well.

Thank you for taking care of that guys, it's tough for me to find any time for finalizing my opensource contributions. Great to see my changes finally adopted!


Can't delete text from the replicant

Once the text is on the replicant, there is no way to delete it.
I deleted all the files from ../settings/clipdinger still the text on replicant stays.

Even using Clear clip history doesn't delete the text.

The replicant is independent of Clipdinger and always shows the contents of the system clipboard.


bug: tx_search is reset to a single entry when using goleveldb

Goleveldb (not pebble) is broken when using tx_search with cometbft v0.38.12 and cometbft-db v0.13.0+
I don't know if this happens in main or not.
If users should not use cometbft-db > 0.12.x with cometbft v0.38.x, we should probably say that.
I think it is more likely that this breakage was unintentional, related to the contract changes mentioned in the release nodes for cometbft-db:

https://github.com/cometbft/cometbft-db/blob/v1.0.1/CHANGELOG.md#v0130

Note that users of cometbft v0.38.x may wish to use:

the latest pebble
the latest rocksdb
goleveldb

....all in one place, and that the only way to do that is to either fork cometbft-db or just use the latest version.
This PR:

https://github.com/cometbft/cometbft/pull/4297

fixes the dependency versioning only.  I think that there are additional issues here in cometbft that prevent goleveldb from working correctly when used with cometbft v0.38.x and cometbft-db v0.13.0+

Notably, our "root cause" came from dependabot:

https://github.com/cometbft/cometbft/pull/4214

Hi @faddat, thanks for reporting this. In order for us to reproduce the problem, could you please provide a few more details on the tx_search is reset to a single entry statement?
From what I understand is that when using tx_search you would expect to get multiple search results but only one entry is returned. Is that correct ?
Is the tested performed using ComettBFT only or using a Cosmos-SDK binary pointing to a specific CometBFT release? (from what you said seems that anything that uses cometbft-db v0.13.0+)

we are doing some extra tests too to try to reproduce the error, just FYI.

Fixed in #4321


Adding Magnus Cardell to contributors list

@MagnusCardell, I'm quite elated about your PR. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a PR and learned that I merged it?