https://github.com/oblador/react-native-vector-icons/issues/1265

#1265,Android Platform, Fonts not being copied if using Android gradle plugin 4.1.0 => FIXED
Tested on following versions of Android Gradle Plugin:

4.1.0
4.0.1
3.5.3

As of now, the creation and addition of tasks to the Task Graph were depended upon to project being evaluated while Gradle build lifecycle i.e gradle.projectsEvaluated. That is while the Gradle build is in the execution phase due to which the task to copy fonts was not being added to the TaskGraph(of tasks to be executed).
Therefore, the listener to the project being evaluated is now removed. Now, the tasks are added to the TaskGraph while in the configuration phase, thus our copy{}IconFonts task can be run in the execution phase of Gradle Build.

This is fantastic @gulshan183 ! I was away on vacation so I am only now seeing this. I will put this on my list of things to test (a bit long, since I was away...) and hope to confirm it is working locally for me as well, to lend confidence for a merge. :trophy:

Wait! This "works" on dev builds but did not work for me on a release build, with a build flavor (i.e. release, dev flavor, so assembleDevRelease as a target example), the icons were not included in the APK

Can you please specify on which Android Gradle Plugin version you were able to reproduce this?
I have tested this fix with release build flavors on V 4.1.0 and it was copying the icon files with the task copyDevReleaseIconFonts

In AGP 4.0.2 it works when I do a release build of my dev flavor, but when I use AGP4.1.0 with the patch it does not work.
Or at least, it did not appear to work. Giving weight to your assertion, let me re-test again extra carefully, perhaps I did not integrate the patch correctly prior to doing the release build so perhaps I was not testing what I thought I was testing...
I will report back

I'm sorry for the delay - I got very busy unexpectedly.
I just re-tested this as carefully as I know, and this still doesn't correctly copy the fonts into my release builds, now using android gradle plugin 4.1.1
It still works with 4.0.x so I don't think I'm doing anything wrong, it just does not work for me
android/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
import groovy.json.JsonSlurper

// This is for logging directly when needed, during development
//import groovy.util.logging.Slf4j

buildscript {
    ext {
        buildToolsVersion = "30.0.2"
        minSdkVersion = 16
        compileSdkVersion = 30
        targetSdkVersion = 29 // can't change until READ_PHONE_NUMBERS is handled?
        kotlinVersion = "1.4.20" // https://kotlinlang.org/releases.html
        supportLibVersion = "1.3.2" // this maps to androidx.core https://developer.android.com/jetpack/androidx/releases/core
        appCompatVersion = "1.2.0" // this maps to androidx.appcompat https://developer.android.com/jetpack/androidx/releases/appcompat
        supportVersion = ext.supportLibVersion
        googlePlayServicesLocationVersion = "17.1.0" // Play Services: https://developers.google.com/android/guides/releases
        googlePlayServicesVersion = "17.5.0"
        googlePlayServicesIidVersion = "17.0.0"
        googlePlayServicesAuthVersion = "19.0.0"
        googlePlayServicesVisionVersion = "20.1.2"
        mediaCompatVersion = "1.2.0" // this maps to androidx.media
        supportV4Version = "1.0.0" // this maps to androidx.legacy:legacy-support-v4
        swiperefreshlayoutVersion = "1.1.0" // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout
        facebookSdkVersion = "8.1.0" // https://github.com/facebook/facebook-android-sdk/releases
        reactNativeVersion = "+"
        firebaseBomVersion = "26.1.0"
        set('react-native',[versions:[firebase:[bom:"${firebaseBomVersion}"],],])
    }
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
        classpath 'com.google.gms:google-services:4.3.4'

        classpath 'com.google.firebase:perf-plugin:1.3.4'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1'
        //classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.6'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()

        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }
        maven {
            // Required for react-native-background-geolocation
            url("${project(':react-native-background-geolocation-android').projectDir}/libs")
        }
        maven {
            // Required for react-native-background-fetch
            url("${project(':react-native-background-fetch').projectDir}/libs")
        }
        google()
        // For react-native-camera
        maven { url("https://jitpack.io") }
        jcenter()
    }
}

// Custom versioning solution to do version / build code from package.json
subprojects {
    ext {
        def npmVersion = getNpmVersionArray()
        processedVersionName = npmVersion[0]
        processedVersionCode = npmVersion[1]
    }
}

static def getNpmVersion() {
    def inputFile = new File("../package.json")
    def packageJson = new JsonSlurper().parseText(inputFile.text)
    return packageJson["version"]
}

static def getNpmVersionArray() { // versionName [0], versionCode [1]
    def (mainVersion, buildStamp) = getNpmVersion().tokenize('-')
    //staticLogger.info("We appear to have mainVersion / buildStamp info: " + mainVersion + " / " + buildStamp)

    if (buildStamp.contains('pre')) {
        //staticLogger.info("contains pre")
        if (buildStamp == "pre") {
            throw new GradleException("Pre-release version but no build stamp. Did you run versioning script?")
        }
        (buildStamp) = buildStamp.tokenize('pre')
        //staticLogger.info("trimmed pre from buildStamp: " + buildStamp)
        mainVersion = mainVersion + "-pre" + buildStamp
    }

    //staticLogger.info("Final versionName / versionCode: " + mainVersion + " / " + buildStamp)
    return [mainVersion, Integer.parseInt(buildStamp)]
}

// If you need logging in gradle in a static context, you need this:
//@Slf4j
//class staticLogger {
//    static def info(string) {
//        log.warn string
//    }
//}

android/app/build.gradle
apply plugin: "com.android.application"
// For react-native-firebase
apply plugin: 'com.google.gms.google-services'
apply plugin: "com.google.firebase.firebase-perf"
apply plugin: 'com.google.firebase.crashlytics'
//apply plugin: 'com.getkeepsafe.dexcount'

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // https://reactnative.dev/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // the root of your project, i.e. *   // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 * where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"]
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.react = [
        //entryFile: "index.js",
        bundleAssetName: "index.bundle",
        bundleInDevDebug: project.hasProperty("bundleInDevDebug"),
        bundleInQaDebug: project.hasProperty("bundleInQaDebug"),
        bundleInStagingDebug: project.hasProperty("bundleInStagingDebug"),
        bundleInProdDebug: project.hasProperty("bundleInProdDebug")
]

apply from: "../../node_modules/react-native/react.gradle"

// react-native-background-geolocation-android
Project background_geolocation = project(':react-native-background-geolocation-android')
apply from: "${background_geolocation.projectDir}/app.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = true

/**
 * The preferred build flavor of JavaScriptCore.
 *
 * For example, to use the international variant, you can use:
 * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
 *
 * The international variant includes ICU i18n library and necessary data
 * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
 * give correct results when using with locales other than en-US.  Note that
 * this variant is about 6MiB larger per architecture than default.
 */
def jscFlavor = 'org.webkit:android-jsc:+'

/**
 * Whether to enable the Hermes VM.
 *
 * This should be set on project.ext.react and mirrored here.  If it is not set
 * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
 * and the benefits of using Hermes will therefore be sharply reduced.
 */
def enableHermes = project.ext.react.get("enableHermes", false)

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = true
def enableProguardInDebugBuilds = false

def kullkiKeyPass = System.getenv('KULLKI_ANDROID_KEY_PWD')
def kullkiStorePass = System.getenv('KULLKI_ANDROID_KEYSTORE_PWD')
def kullkiKeyAlias = 'kullki-android-key-alias'

android {
    // because of firestore:
    dexOptions {
        javaMaxHeapSize "4g"
    }

    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.kullki.kscore"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode processedVersionCode + 10000 // shift above top of previous scheme
        versionName "${processedVersionName}"
        // because of firestore:
        multiDexEnabled true
        // react-native-camera:
        missingDimensionStrategy 'react-native-camera', 'general'
        resConfigs "en", "es" // Update this if we translate more https://developer.android.com/studio/build/shrink-code#unused-alt-resources
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk true  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        devSigning {
            storeFile rootProject.file("keystores/dev.keystore")
            keyAlias 'debugkullkikey'; keyPassword 'NOPE'; storePassword 'NOPE'
        }
        qaSigning {
            storeFile rootProject.file("keystores/qa.keystore")
            keyAlias 'debugkullkikey'; keyPassword 'NOPE'; storePassword 'NOPE'
        }
        stagingSigning {
            storeFile rootProject.file("keystores/staging.keystore")
            keyAlias 'debugkullkikey'; keyPassword 'NOPE'; storePassword 'NOPE'
        }
        prodSigning {
            storeFile rootProject.file("keystores/prod.keystore")
            keyPassword kullkiKeyPass; storePassword kullkiStorePass; keyAlias kullkiKeyAlias
        }
    }

    flavorDimensions "release_streams"
    productFlavors {
        dev {
            applicationIdSuffix ".dev"
            versionNameSuffix applicationIdSuffix
        }
        qa {
            applicationIdSuffix ".test"
            versionNameSuffix applicationIdSuffix
        }
        staging {
            applicationIdSuffix ".staging"
            versionNameSuffix applicationIdSuffix
        }
        prod {

        }
    }

    buildTypes {
        debug {
            shrinkResources enableProguardInDebugBuilds
            minifyEnabled enableProguardInDebugBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            proguardFiles "${background_geolocation.projectDir}/proguard-rules.pro"
            signingConfig null // clear out built-in debug signing + force use signingConfig block

            // Firebase requires all signatures to be globally unique, so each package has unique config
            productFlavors.dev.signingConfig signingConfigs.devSigning
            productFlavors.qa.signingConfig signingConfigs.qaSigning
            productFlavors.staging.signingConfig signingConfigs.stagingSigning
            productFlavors.prod.signingConfig signingConfigs.prodSigning
        }
        release {
            shrinkResources enableProguardInReleaseBuilds
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            proguardFiles "${background_geolocation.projectDir}/proguard-rules.pro"
            signingConfig null // clear out built-in debug signing + force use signingConfig block

            // Firebase requires all signatures to be globally unique, so each package has unique config
            productFlavors.dev.signingConfig signingConfigs.devSigning
            productFlavors.qa.signingConfig signingConfigs.qaSigning
            productFlavors.staging.signingConfig signingConfigs.stagingSigning
            productFlavors.prod.signingConfig signingConfigs.prodSigning
        }
    }

    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        // purge debug sounds from react-native-background-geolocation-android
        if (variant.buildType.name == 'release') {
            // We want the same version stream for all ABIs in debug but for release we can split them
            variant.outputs.each { output ->
                // For each separate APK per architecture, set a unique version code as described here:
                // https://developer.android.com/studio/build/configure-apk-splits.html
                def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
                def abi = output.getFilter(OutputFile.ABI)
                if (abi != null) {  // null for the universal-debug, universal-release variants
                    output.versionCodeOverride =
                            versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
                }
            }
        }
    }

    ndkVersion "21.3.6528147"
}

dependencies {
    implementation project(':react-native-calendar-events')
    implementation project(':react-native-gesture-handler')
    //noinspection GradleDependency  https://github.com/facebook/react-native/pull/30061
    implementation 'com.facebook.fresco:animated-gif:2.2.0'
    implementation("androidx.appcompat:appcompat:${rootProject.ext.appCompatVersion}")
    implementation("androidx.core:core:${rootProject.ext.supportLibVersion}")
    implementation('androidx.fragment:fragment:1.2.5') // https://developer.android.com/jetpack/androidx/releases/fragment
    implementation('androidx.vectordrawable:vectordrawable-animated:1.1.0') // https://developer.android.com/jetpack/androidx/releases/vectordrawable
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:${rootProject.ext.swiperefreshlayoutVersion}")
    implementation("androidx.legacy:legacy-support-core-ui:${rootProject.ext.supportV4Version}")
    implementation("androidx.legacy:legacy-support-core-utils:${rootProject.ext.supportV4Version}")
    implementation('androidx.vectordrawable:vectordrawable:1.1.0') // https://developer.android.com/jetpack/androidx/releases/vectordrawable
    implementation 'androidx.annotation:annotation:1.1.0' // https://developer.android.com/jetpack/androidx/releases/annotation
    implementation 'androidx.multidex:multidex:2.0.1' // https://developer.android.com/jetpack/androidx/releases/multidex
    implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'

    implementation platform("com.google.firebase:firebase-bom:${rootProject.ext.firebaseBomVersion}")
    implementation 'com.google.firebase:firebase-firestore'
    implementation 'com.google.firebase:firebase-iid'

    implementation "com.google.android.gms:play-services-auth:${rootProject.ext.googlePlayServicesAuthVersion}"

    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:${rootProject.ext.reactNativeVersion}"

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.fbjni'
    }
    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.flipper'
      exclude group:'com.squareup.okhttp3', module:'okhttp'
    }
    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/"
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }

    implementation fileTree(dir: "libs", include: ["*.jar"])

    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:deprecation"
    }
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

// Needed to shrink APK with react-native-vector-icons - don't include all the font files
project.ext.vectoricons = [
        iconFontNames: [ 'Entypo.ttf', 'FontAwesome.ttf' ] // Name of the react-native-vector-icons fonts to copy
]
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
// End of react-native-vector-icons stuff

// react-native 0.60+ auto-linking
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

I'm sorry for the delay - I got very busy unexpectedly.
I just re-tested this as carefully as I know, and this still doesn't correctly copy the fonts into my release builds, now using android gradle plugin 4.1.1
It still works with 4.0.x so I don't think I'm doing anything wrong, it just does not work for me
android/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
import groovy.json.JsonSlurper

// This is for logging directly when needed, during development
//import groovy.util.logging.Slf4j

buildscript {
    ext {
        buildToolsVersion = "30.0.2"
        minSdkVersion = 16
        compileSdkVersion = 30
        targetSdkVersion = 29 // can't change until READ_PHONE_NUMBERS is handled?
        kotlinVersion = "1.4.20" // https://kotlinlang.org/releases.html
        supportLibVersion = "1.3.2" // this maps to androidx.core https://developer.android.com/jetpack/androidx/releases/core
        appCompatVersion = "1.2.0" // this maps to androidx.appcompat https://developer.android.com/jetpack/androidx/releases/appcompat
        supportVersion = ext.supportLibVersion
        googlePlayServicesLocationVersion = "17.1.0" // Play Services: https://developers.google.com/android/guides/releases
        googlePlayServicesVersion = "17.5.0"
        googlePlayServicesIidVersion = "17.0.0"
        googlePlayServicesAuthVersion = "19.0.0"
        googlePlayServicesVisionVersion = "20.1.2"
        mediaCompatVersion = "1.2.0" // this maps to androidx.media
        supportV4Version = "1.0.0" // this maps to androidx.legacy:legacy-support-v4
        swiperefreshlayoutVersion = "1.1.0" // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout
        facebookSdkVersion = "8.1.0" // https://github.com/facebook/facebook-android-sdk/releases
        reactNativeVersion = "+"
        firebaseBomVersion = "26.1.0"
        set('react-native',[versions:[firebase:[bom:"${firebaseBomVersion}"],],])
    }
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
        classpath 'com.google.gms:google-services:4.3.4'

        classpath 'com.google.firebase:perf-plugin:1.3.4'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1'
        //classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.6'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()

        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }
        maven {
            // Required for react-native-background-geolocation
            url("${project(':react-native-background-geolocation-android').projectDir}/libs")
        }
        maven {
            // Required for react-native-background-fetch
            url("${project(':react-native-background-fetch').projectDir}/libs")
        }
        google()
        // For react-native-camera
        maven { url("https://jitpack.io") }
        jcenter()
    }
}

// Custom versioning solution to do version / build code from package.json
subprojects {
    ext {
        def npmVersion = getNpmVersionArray()
        processedVersionName = npmVersion[0]
        processedVersionCode = npmVersion[1]
    }
}

static def getNpmVersion() {
    def inputFile = new File("../package.json")
    def packageJson = new JsonSlurper().parseText(inputFile.text)
    return packageJson["version"]
}

static def getNpmVersionArray() { // versionName [0], versionCode [1]
    def (mainVersion, buildStamp) = getNpmVersion().tokenize('-')
    //staticLogger.info("We appear to have mainVersion / buildStamp info: " + mainVersion + " / " + buildStamp)

    if (buildStamp.contains('pre')) {
        //staticLogger.info("contains pre")
        if (buildStamp == "pre") {
            throw new GradleException("Pre-release version but no build stamp. Did you run versioning script?")
        }
        (buildStamp) = buildStamp.tokenize('pre')
        //staticLogger.info("trimmed pre from buildStamp: " + buildStamp)
        mainVersion = mainVersion + "-pre" + buildStamp
    }

    //staticLogger.info("Final versionName / versionCode: " + mainVersion + " / " + buildStamp)
    return [mainVersion, Integer.parseInt(buildStamp)]
}

// If you need logging in gradle in a static context, you need this:
//@Slf4j
//class staticLogger {
//    static def info(string) {
//        log.warn string
//    }
//}

android/app/build.gradle
apply plugin: "com.android.application"
// For react-native-firebase
apply plugin: 'com.google.gms.google-services'
apply plugin: "com.google.firebase.firebase-perf"
apply plugin: 'com.google.firebase.crashlytics'
//apply plugin: 'com.getkeepsafe.dexcount'

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // https://reactnative.dev/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // the root of your project, i.e. *   // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 * where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"]
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.react = [
        //entryFile: "index.js",
        bundleAssetName: "index.bundle",
        bundleInDevDebug: project.hasProperty("bundleInDevDebug"),
        bundleInQaDebug: project.hasProperty("bundleInQaDebug"),
        bundleInStagingDebug: project.hasProperty("bundleInStagingDebug"),
        bundleInProdDebug: project.hasProperty("bundleInProdDebug")
]

apply from: "../../node_modules/react-native/react.gradle"

// react-native-background-geolocation-android
Project background_geolocation = project(':react-native-background-geolocation-android')
apply from: "${background_geolocation.projectDir}/app.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = true

/**
 * The preferred build flavor of JavaScriptCore.
 *
 * For example, to use the international variant, you can use:
 * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
 *
 * The international variant includes ICU i18n library and necessary data
 * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
 * give correct results when using with locales other than en-US.  Note that
 * this variant is about 6MiB larger per architecture than default.
 */
def jscFlavor = 'org.webkit:android-jsc:+'

/**
 * Whether to enable the Hermes VM.
 *
 * This should be set on project.ext.react and mirrored here.  If it is not set
 * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
 * and the benefits of using Hermes will therefore be sharply reduced.
 */
def enableHermes = project.ext.react.get("enableHermes", false)

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = true
def enableProguardInDebugBuilds = false

def kullkiKeyPass = System.getenv('KULLKI_ANDROID_KEY_PWD')
def kullkiStorePass = System.getenv('KULLKI_ANDROID_KEYSTORE_PWD')
def kullkiKeyAlias = 'kullki-android-key-alias'

android {
    // because of firestore:
    dexOptions {
        javaMaxHeapSize "4g"
    }

    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.kullki.kscore"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode processedVersionCode + 10000 // shift above top of previous scheme
        versionName "${processedVersionName}"
        // because of firestore:
        multiDexEnabled true
        // react-native-camera:
        missingDimensionStrategy 'react-native-camera', 'general'
        resConfigs "en", "es" // Update this if we translate more https://developer.android.com/studio/build/shrink-code#unused-alt-resources
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk true  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        devSigning {
            storeFile rootProject.file("keystores/dev.keystore")
            keyAlias 'debugkullkikey'; keyPassword 'NOPE'; storePassword 'NOPE'
        }
        qaSigning {
            storeFile rootProject.file("keystores/qa.keystore")
            keyAlias 'debugkullkikey'; keyPassword 'NOPE'; storePassword 'NOPE'
        }
        stagingSigning {
            storeFile rootProject.file("keystores/staging.keystore")
            keyAlias 'debugkullkikey'; keyPassword 'NOPE'; storePassword 'NOPE'
        }
        prodSigning {
            storeFile rootProject.file("keystores/prod.keystore")
            keyPassword kullkiKeyPass; storePassword kullkiStorePass; keyAlias kullkiKeyAlias
        }
    }

    flavorDimensions "release_streams"
    productFlavors {
        dev {
            applicationIdSuffix ".dev"
            versionNameSuffix applicationIdSuffix
        }
        qa {
            applicationIdSuffix ".test"
            versionNameSuffix applicationIdSuffix
        }
        staging {
            applicationIdSuffix ".staging"
            versionNameSuffix applicationIdSuffix
        }
        prod {

        }
    }

    buildTypes {
        debug {
            shrinkResources enableProguardInDebugBuilds
            minifyEnabled enableProguardInDebugBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            proguardFiles "${background_geolocation.projectDir}/proguard-rules.pro"
            signingConfig null // clear out built-in debug signing + force use signingConfig block

            // Firebase requires all signatures to be globally unique, so each package has unique config
            productFlavors.dev.signingConfig signingConfigs.devSigning
            productFlavors.qa.signingConfig signingConfigs.qaSigning
            productFlavors.staging.signingConfig signingConfigs.stagingSigning
            productFlavors.prod.signingConfig signingConfigs.prodSigning
        }
        release {
            shrinkResources enableProguardInReleaseBuilds
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            proguardFiles "${background_geolocation.projectDir}/proguard-rules.pro"
            signingConfig null // clear out built-in debug signing + force use signingConfig block

            // Firebase requires all signatures to be globally unique, so each package has unique config
            productFlavors.dev.signingConfig signingConfigs.devSigning
            productFlavors.qa.signingConfig signingConfigs.qaSigning
            productFlavors.staging.signingConfig signingConfigs.stagingSigning
            productFlavors.prod.signingConfig signingConfigs.prodSigning
        }
    }

    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        // purge debug sounds from react-native-background-geolocation-android
        if (variant.buildType.name == 'release') {
            // We want the same version stream for all ABIs in debug but for release we can split them
            variant.outputs.each { output ->
                // For each separate APK per architecture, set a unique version code as described here:
                // https://developer.android.com/studio/build/configure-apk-splits.html
                def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
                def abi = output.getFilter(OutputFile.ABI)
                if (abi != null) {  // null for the universal-debug, universal-release variants
                    output.versionCodeOverride =
                            versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
                }
            }
        }
    }

    ndkVersion "21.3.6528147"
}

dependencies {
    implementation project(':react-native-calendar-events')
    implementation project(':react-native-gesture-handler')
    //noinspection GradleDependency  https://github.com/facebook/react-native/pull/30061
    implementation 'com.facebook.fresco:animated-gif:2.2.0'
    implementation("androidx.appcompat:appcompat:${rootProject.ext.appCompatVersion}")
    implementation("androidx.core:core:${rootProject.ext.supportLibVersion}")
    implementation('androidx.fragment:fragment:1.2.5') // https://developer.android.com/jetpack/androidx/releases/fragment
    implementation('androidx.vectordrawable:vectordrawable-animated:1.1.0') // https://developer.android.com/jetpack/androidx/releases/vectordrawable
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:${rootProject.ext.swiperefreshlayoutVersion}")
    implementation("androidx.legacy:legacy-support-core-ui:${rootProject.ext.supportV4Version}")
    implementation("androidx.legacy:legacy-support-core-utils:${rootProject.ext.supportV4Version}")
    implementation('androidx.vectordrawable:vectordrawable:1.1.0') // https://developer.android.com/jetpack/androidx/releases/vectordrawable
    implementation 'androidx.annotation:annotation:1.1.0' // https://developer.android.com/jetpack/androidx/releases/annotation
    implementation 'androidx.multidex:multidex:2.0.1' // https://developer.android.com/jetpack/androidx/releases/multidex
    implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'

    implementation platform("com.google.firebase:firebase-bom:${rootProject.ext.firebaseBomVersion}")
    implementation 'com.google.firebase:firebase-firestore'
    implementation 'com.google.firebase:firebase-iid'

    implementation "com.google.android.gms:play-services-auth:${rootProject.ext.googlePlayServicesAuthVersion}"

    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:${rootProject.ext.reactNativeVersion}"

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.fbjni'
    }
    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.flipper'
      exclude group:'com.squareup.okhttp3', module:'okhttp'
    }
    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/"
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }

    implementation fileTree(dir: "libs", include: ["*.jar"])

    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:deprecation"
    }
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

// Needed to shrink APK with react-native-vector-icons - don't include all the font files
project.ext.vectoricons = [
        iconFontNames: [ 'Entypo.ttf', 'FontAwesome.ttf' ] // Name of the react-native-vector-icons fonts to copy
]
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
// End of react-native-vector-icons stuff

// react-native 0.60+ auto-linking
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

Sorry for the delayed response. I could not identify the issue you are facing.
I have also tested on a new project, and it is working as expected with both release/debug variants.
But I agree something in the release is causing issues, which I cannot reproduce.
One final thought of mine- I like to ask if you are seeing the copy<flavor_name>ReleaseIconFonts task in the logs while building the app? And on which OS you have been testing?

Superseded by #1307


Update mrlearning-base-ch3.md

removing high pri loc tag

Docs Build status updates of commit 1b5d33b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/mrlearning-base-ch3.md
:white_check_mark:Succeeded
View

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


--insecure option does not work

Description
dockle's usage explains that insecure connection to the registry is possible by specifying the --insecure option.
However, the --insecure option does not provide an insecure connection.
What did you expect to happen?
Insecure connection shall be possible by specifying --insecure options.
What happened instead?
The --insecure option does not result in an insecure connection.
$ dockle --insecure $REDACTED
2021-02-01T08:47:34.137Z        FATAL   unable to initialize a image struct: failed to initialize source: error pinging docker registry $REDACTED: Get https://$REDACTED/v2/: x509: certificate signed by unknown authority

Output of run with -debug:
$ dockle --debug --insecure $REDACTED
2021-02-01T08:26:24.777Z        DEBUG   Add new ignore code: CIS-DI-0006
2021-02-01T08:26:24.777Z        DEBUG   Fetch latest version from github
2021-02-01T08:26:25.451Z        DEBUG   Start assessments...
2021-02-01T08:26:25.466Z        FATAL   unable to initialize a image struct:
    github.com/goodwithtech/deckoder/extractor/docker.newDockerExtractor
        /go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20200308110342-e44aa2bd81b3/extractor/docker/docker.go:73
  - failed to initialize source:
    github.com/goodwithtech/deckoder/extractor/image.NewImage
        /go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20200308110342-e44aa2bd81b3/extractor/image/image.go:86
  - Get https://$REDACTED/v2/: x509: certificate signed by unknown authority
    error pinging docker registry $REDACTED
    github.com/containers/image/v5/docker.(*dockerClient).detectPropertiesHelper
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_client.go:642
    github.com/containers/image/v5/docker.(*dockerClient).detectProperties.func1
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_client.go:675
    sync.(*Once).doSlow
        /usr/local/go/src/sync/once.go:66
    sync.(*Once).Do
        /usr/local/go/src/sync/once.go:57
    github.com/containers/image/v5/docker.(*dockerClient).detectProperties
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_client.go:675
    github.com/containers/image/v5/docker.(*dockerClient).makeRequest
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_client.go:395
    github.com/containers/image/v5/docker.(*dockerImageSource).fetchManifest
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_image_src.go:151
    github.com/containers/image/v5/docker.(*dockerImageSource).ensureManifestIsLoaded
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_image_src.go:183
    github.com/containers/image/v5/docker.newImageSource
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_image_src.go:87
    github.com/containers/image/v5/docker.dockerReference.NewImageSource
        /go/pkg/mod/github.com/containers/image/v5@v5.1.0/docker/docker_transport.go:144
    github.com/goodwithtech/deckoder/extractor/image.newSource
        /go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20200308110342-e44aa2bd81b3/extractor/image/image.go:109
    github.com/goodwithtech/deckoder/extractor/image.NewImage
        /go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20200308110342-e44aa2bd81b3/extractor/image/image.go:84
    github.com/goodwithtech/deckoder/extractor/docker.newDockerExtractor
        /go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20200308110342-e44aa2bd81b3/extractor/docker/docker.go:71
    github.com/goodwithtech/deckoder/extractor/docker.NewDockerExtractor
        /go/pkg/mod/github.com/goodwithtech/deckoder@v0.0.0-20200308110342-e44aa2bd81b3/extractor/docker/docker.go:57
    github.com/goodwithtech/dockle/pkg/scanner.ScanImage
        /go/src/github.com/goodwithtech/dockle/pkg/scanner/scan.go:30
    github.com/goodwithtech/dockle/pkg.Run
        /go/src/github.com/goodwithtech/dockle/pkg/run.go:71
    github.com/urfave/cli.HandleAction
        /go/pkg/mod/github.com/urfave/cli@v1.22.1/app.go:523
    github.com/urfave/cli.(*App).Run
        /go/pkg/mod/github.com/urfave/cli@v1.22.1/app.go:285
    main.main
        /go/src/github.com/goodwithtech/dockle/cmd/dockle/main.go:107
    runtime.main
        /usr/local/go/src/runtime/proc.go:203
    runtime.goexit
        /usr/local/go/src/runtime/asm_amd64.s:1357

Output of dockle -v:
dockle version 0.3.1

Additional details (base image name, container registry info...):

@senimagan Thank you for the report! That is a bug.
This was fixed by #105.


Add Snapshot-read-only isolation support

You can read more about this type of isolation here https://ydb.tech/docs/en/concepts/transactions#modes

We'll need a basic test: just check that saving an entity in serializable RW mode and then reading in a snapshot transaction works. Please add this to YdbIntegrationTest.
Otherwise LGTM :+1:

@jorki02 Sorry, but I have to revert this changes. SnapshotRO - it's isolation level similar to serializableRw, but with additional validation. It means that this transactions have to be commited, but txManager.readOnly() don't do it.
If you don't do it, YDB will close transactions for you due to a timeout, but if 10 transactions are opened within one session, new ones will no longer be able to be opened.
This feature should be added by create new method txManager.snapshotRo()

@lavrukov Hi, why do you think that it is not commited on readOnly?
Is see that readOnly builder uses https://github.com/ydb-platform/yoj-project/blob/main/repository/src/main/java/tech/ydb/yoj/repository/db/StdTxManager.java#L404
Which is evantually committed here https://github.com/ydb-platform/yoj-project/blob/main/repository/src/main/java/tech/ydb/yoj/repository/db/TxImpl.java#L96
Currently, this isolation works on our production, and it has much more then 10 transactions per session, and I didn't notice any problem with this code.

Oh, I see it's committed, but not committed)
https://github.com/ydb-platform/yoj-project/blob/main/repository-ydb-v2/src/main/java/tech/ydb/yoj/repository/ydb/YdbRepositoryTransaction.java#L209
But anyway, seems like it closes session everytime https://github.com/ydb-platform/yoj-project/blob/main/repository-ydb-v2/src/main/java/tech/ydb/yoj/repository/ydb/YdbRepositoryTransaction.java#L221


No equal sign

Pull request for functionality described here: https://github.com/hapijs/qs/issues/79#issuecomment-103473308

Looks good, but I am afraid this change will break a lot of existing code. I think it would be best to hide this feature behind an option (like strictNullHandling)

I think it would be best to hide this feature behind an option

:+1:

This definitely needs to be behind an option

I updated the PR with the option strictNullHandling.


Update versioning-overview.md

The cold tier is now generally available in all public and Azure Government regions except Poland Central and Qatar Central. Hence, modified the existing text to add cold tier as well.

Thank you!
#sign-off


Luizoamorim/feat save commitments

This PR add an endpoint to saveCommitments functionality and also a function in the service to do the data manupulation.

@daveroga @imagobea @israelboudoux
I decided to follow the logic of remove the existent commitments found in database. The other using upsert I didn't had success.
So I'm following the next steps:
/**
   * 1. listOfCommitments => get only the ids
   */
  const commitmentsIds = listOfCommitments.map(commitment => commitment._id);
  /**
   * 2. Find commitments that already exists in DB
   */
  const commitmentsFound = await db
    .collection(COMMITMENTS_COLLECTION)
    .find({ _id: { $in: commitmentsIds } })
    .toArray();

  /**
   * 3. remove the commitments found in the database from the list
   */
  const onlyNewCommitments = listOfCommitments.filter(
    commitments =>
      commitmentsFound.find(commitmentFound => commitmentFound.id === commitments.id) === undefined,
  );

  if (onlyNewCommitments.length > 0) {
    /**
     * 4. Insert all
     */
    await db.collection(COMMITMENTS_COLLECTION).insertMany(onlyNewCommitments);

    /**
     * 5. Sycronize from beggining
     */
    await syncState();

    return { successMessage: 'Commitments have been saved successfully!' };


Is there a more direct, efficient way to sync changes than the std api calls?

What should be a common use case:

I have a web client which is editing a text document.
They could be on a mobile connection so updates are sent every 6 seconds to the server.
Server receives changes, applies them to the previous version
finally updates a record stored in mongodb.

Api/call flow:
patches = patch_make(text1, text2)
textToBeSentToServer = patch_toText(patches)
//send to server, then
patchesOnServer = patch_fromText(text)
text2OnServer = patches_apply(patchesOnServer, text1OnServer)
updateDBrecord(text2OnServer)
First, to keep my network payload light, I imagine it's better to work with the "text" rather the serializing the full patches object, I noticed many duplications in the latter.  But even the "text" patch version had some data which seems to be unnecessary, in addition to just adds/deletes (see below).
Next, do I need to use "patches" object?  it would be nice if could just create the text diff version and use it rather than having to convert from patch to text, then again from text to patches object.
My use case seems to be a very common usage, but it doesn't seem very efficient.  Am I missing something?
Here is some example JS code:
import diffMatchPatch from 'diff-match-patch';

const source = 'this is the source.  But some is the same';
const changed = 'This is from the source.  But some is the same.';

const dmp = new diffMatchPatch();

const diff = dmp.diff_main(source, changed);
console.log(diff);

const patch = dmp.patch_make(source, diff);

console.log(patch);
console.log(dmp.patch_toText(patch));
console.log(dmp.patch_apply(patch, source));

and even the text version has extra data:
@@ -1,11 +1,16 @@
-t
+T
 his is
+ from
  the
@@ -39,8 +39,9 @@
 the same
+.

"his is", "the", "the same": are these really necessary?  the data already has index numbers, maybe add more for each operation....
Very appreciated,
Paul

Ok, after digging more into how the library works.  I see that the extra data is to have the proper context, and matches how Unified Diff Format uses context to help with the robustness of the update.
As far as my earlier question of using the diff vs patch, it's a mute point now as I understand that they are basically the same thing now.

Also, while I didn't see it in the broad api docs, I did happen upon diff_toDelta and diff_fromDelta which only sends the changes, no context or actually characters being deleted (besides the operation and length).  So yeah, very optimal.


compiling issues on Centos 6.8

libmodsecurity has been installed on /usr/local/modcurity, when use --add-module=../ModSecurity-nginx, the fatal error comes up.
checking for ModSecurity library ... not found
checking for ModSecurity library in /usr/local/modsecurity ... not found
./configure: error: ngx_http_modsecurity_module requires the ModSecurity library.
after using export MODSECURITY_INC="/opt/pkg/ModSecurity/headers/" and export MODSECURITY_LIB="/opt/pkg/ModSecurity/src/.libs/"
The error still come here.
adding module in ../ModSecurity-nginx
checking for ModSecurity library in "/opt/pkg/ModSecurity/src/.libs/" and "/opt/pkg/ModSecurity/headers/" (specified by the MODSECURITY_LIB and MODSECURITY_INC env) ... not found
./configure: error: ngx_http_modsecurity_module requires the ModSecurity library.
Can anybody help me? it frustrated me for weeks.

Hi @receiving2006,
You have to point  MODSECURITY_INC and MODSECURITY_LIB towards to installation directory of your ModSecurity. If you have it installed at /usr/local/modsecurity that will be:

export MODSECURITY_LIB="/usr/local/modsecurity/lib/"
export MODSECURITY_INC="/usr/local/modsecurity/include/"

Hi @zimmerle,
Many many thanks for your replying. I have ever tried it yet, but still not works, error as below,
adding module in /opt/pkg/ModSecurity-nginx/
checking for ModSecurity library in "/usr/local/modsecurity/lib/" and "/usr/local/modsecurity/include/" (specified by the MODSECURITY_LIB and MODSECURITY_INC env) ... not found
./configure: error: ngx_http_modsecurity_module requires the ModSecurity library.
it confused me, I have to post the request, any ideas? thanks in advance.

/usr/local/modsecurity/
├── bin
│   └── modsec-rules-check
├── include
│   └── modsecurity
│       ├── actions
│       │   └── action.h
│       ├── anchored_set_variable.h
│       ├── anchored_variable.h
│       ├── audit_log.h
│       ├── collection
│       │   ├── collection.h
│       │   └── collections.h
│       ├── debug_log.h
│       ├── intervention.h
│       ├── modsecurity.h
│       ├── reading_logs_via_rule_message.h
│       ├── rule.h
│       ├── rule_message.h
│       ├── rules_exceptions.h
│       ├── rules.h
│       ├── rules_properties.h
│       ├── transaction.h
│       ├── variable_origin.h
│       └── variable_value.h
└── lib
├── libmodsecurity.a
├── libmodsecurity.la
├── libmodsecurity.so -> libmodsecurity.so.3.0.3
├── libmodsecurity.so.3 -> libmodsecurity.so.3.0.3
├── libmodsecurity.so.3.0.3
└── pkgconfig
└── modsecurity.pc


MINOR: the broker should use metadata.log.max.record.bytes.between.snapshots

The broker should trigger a snapshot once
metadata.log.max.record.bytes.between.snapshots has been exceeded.

That one build failure looks like some kind of Jenkins weirdness.
[2021-07-08T00:12:38.900Z] > requirement failed: Source file '/tmp/sbt_8c62b7b4/META-INF/MANIFEST.MF' does not exist.


Merge bugfixes and minor changes from 1.0.2

Closed as pull request isn't exactly what I want here I suppose.


Cluster: Should support Active Directory-detached cluster

Details of the scenario you tried and the problem that is occurring:
Even if the nodes must be joined in the active directory domain, xCluster should support the dns-only administrative point.
How to deploy an Active Directory-detached cluster
https://technet.microsoft.com/en-us/library/dn265970(v=ws.11).aspx#Anchor_1
New-Cluster documentation
https://technet.microsoft.com/en-us/itpro/powershell/windows/failoverclusters/new-cluster
The DSC configuration that is using the resource (as detailed as possible):
n/a
Version of the Operating System and PowerShell the DSC Target Node is running:
n/a
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
Dev

Note that in Windows Server 2016 the nodes does not need to me joined to the domain.
https://www.mssqltips.com/sqlservertip/4951/deploy-a-windows-server-2016-failover-cluster-without-active-directory-part-1/
https://www.mssqltips.com/sqlservertip/4962/deploy-a-windows-server-2016-failover-cluster-without-active-directory--part-2/

Hi, Will this feature be implemented any time soon?


0.0.1 version?

@brunokrebs Why the package.json says 0.0.1?

@Foxandxss, not sure, but package.json in the master branch should be 0.0.2.

But if we are on 1.0.7, why should it be 0.0.2?

This is related to the schema that you defined. Koa V2 is supported by koa-v2 branch. On that branch package.json is on 1.0.7.
master, which contains the code of the package on version 0.0.2, supports Koa V1. Therefore, package.json on this branch should be on 0.0.2.


Add major macOS upgrade support for upcoming Monterey release

Addresses: https://github.com/macadmins/nudge/issues/55

attemptToFetchMajorUpgrade is now defaulted to True so Nudge can easily support major OS upgrades
The current logic around minor updates is unchanged. Apple Silicon macs do not pre-fetch the installs and Intel macs pre-fetch the install if they are running macOS 11.3 or higher.
Apple Silicon and Intel macs seem to support --fetch-full-installer --full-installer-version without user input/root processes
If Nudge cannot fetch the installer and majorUpgradeAppPath key exists but the file does not exist on disk, Nudge bails.

I tested this with
{
  "osVersionRequirements": [
    {
      "majorUpgradeAppPath": "/Applications/Install macOS Monterey beta.app",
      "requiredInstallationDate": "2021-08-30T00:00:00Z",
      "requiredMinimumOSVersion": "12.0",
      "targetedOSVersions": [
        "11.0",
        "11.0.1",
        "11.1",
        "11.2",
        "11.2.1",
        "11.2.2",
        "11.2.3",
        "11.3",
        "11.3.1",
        "11.4",
        "11.5",
        "11.5.1"
      ]
    }
  ]
}

Nudge logs the following
Error downloading software updates: Scanning for 12.0 installer

Install failed with error: Update not found

but it can install the upgrade because I have manually installed the application to /Applications.

Are we still able to direct users to a Jamf Self Service policy to do major upgrades? My users aren't admins, but I cache the installer in their /Applications folder and run startosinstaller via a policy in our Self Service.
Thanks!

Nudge-Swift hasn't supported that yet so I don't think so. Please create an issue for this, but to be honest I may not have time to write the logic for that anytime soon.

Got it, will do. After a year of begging people to upgrade to Big Sur via Self Service, discovering Nudge-python has saved my life this summer!


Problem

Who can we use the same code to consume data from Kafka consumers and other sources?
Could you please help me with this?

Sorry for the late reply, of course you can use this for message handling. You can apply it anywhere as it is a generic pattern.


Reference GNU Guix installation

Transient was added to GNU Guix, and can be installed that way for people who are not fond of pip.

Thanks for the PR! I'm glad to know that transient has been packaged for Guix

Thanks for the PR! I'm glad to know that transient has been packaged for Guix

We should be all square now!

Looks good to me. Merged, and thanks again for the contribution


MapView does not handle Android Navigation Compose transitions smoothly

MapLibre Android Version
11.6.1
Android SDK Version
Android 14
Device
Google Pixel 9
What happened?
When integrating MapLibre with Android Navigation Compose, the default fade-in/fade-out transitions provided by Navigation Compose do not apply smoothly to the MapView. Instead, the map disappears and reappears abruptly, disrupting the user experience.
This issue occurs because MapView does not properly handle the lifecycle events triggered during these transitions. This behavior is inconsistent with other Compose-based UI elements, which handle transitions seamlessly.https://github.com/user-attachments/assets/0a69542b-27e7-4aa7-9a5a-5eb1df3b8ebb
Steps to reproduce

Create a MapFragment to render a MapLibre map within a jetpack compose app.
Set up Android Navigation Compose with default transition animations (fade-in/fade-out).
Navigate between fragments or Composables that contain the MapLibre map.
Observe the behavior during navigation transitions.

Clone the reproduction repository: https://github.com/TonyGnk/mapIssue.
Renderer
OpenGL (choose this if you are unsure)
Relevant log output

Additional context
Potential Cause:
The issue might be related to how MapView manages its lifecycle during transitions. Navigation Compose likely delays the disposal of a screen's UI for the duration of the fade-out animation, but MapView does not seem to respond correctly to these lifecycle changes.
Similar Issues:
The same issue has been reported to Ramani Maps.

I noticed this as well while working on MapLibre Compose.
I suspect it might be related to this other issue with clipping the map in Compose: https://github.com/maplibre/maplibre-native/issues/3076


Performance issue after the last change

With 24 windows open, I noticed an unusual load on the CPU. Profiling showed that vim-tmux-focus-events is the winner and leaves the rest far behind.
FUNCTION  <SNR>124_RetryAU()
    Defined: ~/.vim/pack/bundle/opt/vim-tmux-focus-events/autoload/tmux_focus_events.vim:27
Called 2725 times
Total time:  86.627844
 Self time:  86.627844

count  total (s)   self (s)
 2719              0.012523   try
 2719              0.016693     augroup focus_gained_checktime
 2719              0.747306       au!
                                  " perform checktime ASAP when outside cmd line
 2719              0.030038       au * * call <SID>delayed_checktime()
                                augroup END
 2725              0.036949   catch /E1155/
 2719              0.046530     let au_timer = timer_start(50, function('s:RetryAU'))
                                " help nvim display screen
 2719             85.703375     redraw!
 2716              0.010742   endtry

Was the last change tested for performance?

This is a regression introduced yesterday. It's reverted now.


The shell panics on unterminated pipeline with a pipe |

Now giosh officially supports pipe, but a pipe with an unterminated line does not provide any errors and panics on the exexcution.
$ ./giosh
@G[1]> ls -l |
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/g1eng/giosh/shell.(*CommandLine).parseStatement(0xc000141cf8, 0x1, 0x6a1fa3)
        /home/suzume/local/Go/giosh/shell/parse_statement.go:23 +0x313
github.com/g1eng/giosh/shell.(*CommandLine).Parse(0xc000141cf8, 0xc00018c000, 0x8)
        /home/suzume/local/Go/giosh/shell/parse.go:9 +0x152
github.com/g1eng/giosh/shell.(*CommandLine).Run(0xc000141cf8, 0x0, 0x5)
        /home/suzume/local/Go/giosh/shell/run.go:26 +0x2bc
github.com/g1eng/giosh/cmd.parseArgs(0xc00005e540, 0x0, 0x1)
        /home/suzume/local/Go/giosh/cmd/parseargs.go:37 +0x625
github.com/urfave/cli/v2.(*App).RunContext(0xc000015380, 0x6f98f0, 0xc00001e060, 0xc000012220, 0x1, 0x1, 0x0, 0x0)
        /home/suzume/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/app.go:322 +0x6fe
github.com/urfave/cli/v2.(*App).Run(...)
        /home/suzume/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/app.go:224
github.com/g1eng/giosh/cmd.Cmd()
        /home/suzume/local/Go/giosh/cmd/cmd.go:31 +0x2a8
main.main()
        /home/suzume/local/Go/giosh/main.go:8 +0x25

This should be fixed.

With pr #4 , this problem was resolved.
Now unterminated pipe makes an error message and stop the execution (not panic):
suzume@mock:~/local/Go/giosh$ ./giosh
@G[1]> ls -l |
pipe error: pipeline #1 is nil
@G[2]>


React-Native Link causes bug on settings.gradle

I'm not sure whether this is a bug from the react-native-svg or the react-native command line. Or maybe even just that I'm using some outdated tools.
So I'll just leave it here. Please recheck the case.
Things I'm using (with their version number).
OS: Windows 10
npm: 6.4.1
node: v10.14.1
Android Studio: 3.1.2
react-native-cli: 2.0.1
react-native: 0.58.3
react-native-svg: 9.0.7
Following the installation guide from https://github.com/react-native-community/react-native-svg#automatically
After react-native link, I noticed the Android studio asked me to "sync" the project to the changes of the gradle made (I suppose made by react-native link).
So I did, and noticed there is an error which is cause by the line below (in settings.gradle) :
project(':react-native-svg').projectDir = new File(rootProject.projectDir, '..\node_modules\react-native-svg\android')
Notice the directory url use \node_modules (and 2 more slashes after that some problem) and I realize it is read by the compiler as (newline)ode_modules. So, I tried adding another slash to change it to :
project(':react-native-svg').projectDir = new File(rootProject.projectDir, '..\\node_modules\\react-native-svg\\android')
And it worked.
So, I'm not sure whether it is okay to leave this here, or should I try to post somewhere else.

Hmm, haven't seen this before. Are you able to replicate this in a new project? I wonder why/when this would have changed. I'll try on a windows machine later on.

Hmm, haven't seen this before. Are you able to replicate this in a new project? I wonder why/when this would have changed. I'll try on a windows machine later on.

Yes, and somehow this issues doesn't happen to only react-native-svg. But i've been adding other libraries as well like react-native-sound, react-navigation, and others, and the same problem also happen.
I'm quite unsure, when react-native link react-native-svg is run, who actually handles what to add to the project?
Is it react-native-cli? or is there a script that is provided by react-native-svg?
So, I'm thinking maybe it is my version of other things that is outdated and cause this problem?

react-native-svg doesnt have any control of this aspect, we only have the library specific build.gradle file: https://github.com/react-native-community/react-native-svg/blob/master/android/build.gradle
react-native-cli does the rest

Closing this issue, as this is most likely not on any aspect that react-native-svg contributors have control over.
For future, I just suggest to add in the Readme or tutorial for people who might met similar problem to check the setting.gradle

@msand Have been able to resolve this issue? Did you start an issue on react-navigation?

@msand Have been able to resolve this issue? Did you start an issue on react-navigation?

Not sure what you mean.
This is an issue on react-native-cli not react-navigation.
And no, I didn't start an issue there. I somehow manage to fix it myself by just changing the "" on the settings.gradle to "/" and the problem fixes itself.
This was a problem caused by "react-native link react-native-svg" command.
Which by-itself is not what "react-native-svg" have control over.


[CI:BUILD] RPM: Fix ELN build and cleanup spec

use go-md2man binary path as build dependency as package names are different on different envs.
simplify copr conditional for rpm epoch values.

PTAL. good to go.

Is this required for netavark 1.7? The release commit is already merged so it will not be part of the tag!

Is this required for netavark 1.7? The release commit is already merged so it will not be part of the tag!

Not a problem. If there's any issues noticed in koji, I can do a manual build.

There were some inconsistencies in Copr v/s Koji environments for ELN which I noticed only yesterday.


Location Check-in

Dependency on  ContactTracing-app/Graphql-api#11

[ ] Needs UI

@all-contributors please add @Cactice to code


Permit # all caps

Is there any way we can have the Permit number (under vessel information) appear in all caps? The keyboard should come up as all caps so the user enters any letters as capital.

Hello, I'd like to take this PR :) is it possible ?

Hi @yoobi - yes, please go ahead!


No armor or ballistic protection with new uniforms

According to a comment on YouTube:

One problem with the uniform mod is that it doesn't give armour ballistic or explosive protection, but I like it

Theoretically, the armor levels are not overridden, so they should not be different than the base game values. This should be tested however, and if necessary, the values should be reintroduced to the configuration files.

Took me a while, but here's the files in question
Grogtopia - Copy.zip

I found a temporary solution, in the unbuilt mod folder (the one without an @) you'll have to edit the config.cpp inside it.
In these two classes:
<your_mod_name>_CarrierRig_Special: Vest_Camo_Base
and
<your_mod_name>_CarrierRig: Vest_Camo_Base
I edited the nested class ItemInfo for both of the classes above so it inherits from VestItem instead, and inside this class I pasted this snippet which I yoinked from elsewhere, the values obviously need some manual adjustment, I don't have the vanilla values here with me.
class HitpointsProtectionInfo { 	class Chest 	{ 		hitpointName="HitChest"; 		armor=28; 		passThrough=0.1; 	}; 	class Diaphragm 	{ 		hitpointName="HitDiaphragm"; 		armor="28 + 3"; 		passThrough=0.1; 	}; 	class Abdomen 	{ 		hitpointName="HitAbdomen"; 		armor=28; 		passThrough=0.1; 	}; 	class Body 	{ 		hitpointName="HitBody"; 		passThrough=0.40000001; 	}; };
As for the helmet, you want to add this snippet to the ItemInfo: HeadgearItem class inside the class <your_mod_name>_HelmetBlufor: H_HelmetB
class HitpointsProtectionInfo { 	class Head 	{ 		hitpointName="HitHead"; 		armor=6; 		passThrough=0.5; 	}; };
Here's how it looked like for me after it was over: https://pastebin.com/U40wq8Lr

@NixonMSilva Great find! If you'd like to make a pull request I'd be happy to review and merge 🙏


Incorrect character encoding in as_string

$ perl -MData::Money -E '
    my $foo = Data::Money->new(code => "GBP", value => 12.34);
    printf "%s: %d\n", $foo->as_string, length($foo->as_string)
'|hexdump -C
00000000  c2 a3 31 32 2e 33 34 3a  20 37 0a                 |..12.34: 7.|
0000000b

For the case of GBP - and presumably for any other currency whose symbol isn't in ASCII - the as_string method is returning two characters, 0xc2 and 0xa3 for the £ symbol. Those two bytes are the UTF-8 encoding for the symbol. Note how perl thinks that the sequence c2 a3 31 32 2e 33 34 is 7 characters, not 6.

Here's a work-around cut n pasted from my application. $object->{$key} is a hash value that contains the result of calling ->as_string on a Data::Money object. This code corrects the encoding:
# temporary work-around for https://github.com/manwar/Data-Money/issues/10
state $encoded_length = length(Data::Money->new(
    code => 'GBP', value => 12.34
)->as_string);
if($encoded_length == 7) { # got two chars, c2 a3, for the pound sign
    $object->{$key} = Encode::decode('UTF-8', $object->{$key});
}

@DrHyde Can you please review the change?
Just wanted to check if this work for you before I push it to CPAN?

I'll take a look when I'm back at work on Monday. Thanks.

What my code above does is fix things up after Data::Money returns bogus data - that is, it takes a bunch of bytes, and decodes them into characters. The correct solution is to not return bogus data in the first place :-)
I suspect that there are edge-cases with that patch applied as-is where it will just be differently wrong, depending on locale settings. You can turn my work-around into a test case something like this:
my $text = Data::Money->new(code => 'GBP', value => 12.34);
my $length = length($text);
ok($length == 6);
ok(substr($text, 0, 1) eq "\x{a3}");

FWIW I'm testing with locale en_GB.UTF-8, I'd not be surprised if behaviour were different with eg en_GB.ISO8859-1, en_GB.US-ASCII, or en_GB.

What my code above does is fix things up after Data::Money returns bogus data - that is, it takes a bunch of bytes, and decodes them into characters. The correct solution is to not return bogus data in the first place :-)
I suspect that there are edge-cases with that patch applied as-is where it will just be differently wrong, depending on locale settings. You can turn my work-around into a test case something like this:
my $text = Data::Money->new(code => 'GBP', value => 12.34);
my $length = length($text);
ok($length == 6);
ok(substr($text, 0, 1) eq "\x{a3}");

FWIW I'm testing with locale en_GB.UTF-8, I'd not be surprised if behaviour were different with eg en_GB.ISO8859-1, en_GB.US-ASCII, or en_GB.

Thanks for taking time to review and suggested test case.
I will take a look as soon as I find the time.

@manwar did you get a chance to look at this again?

Just ran into this :/
I'm not convinced by the patch: a to_utf8 function that decodes utf8 bytes? That doesn't smell right.
Either the output from to_string is intended to be a unicode string, in which case _to_utf8 makes no sense (the output from Locale::Currency::Format is already a unicode string) , or it's intended to return utf8 bytes, in which case no change is needed.

Encode::decode takes a sequence of bytes and decodes it into a sequence of characters using the specified encoding. Yes, the name can be a bit confusing.

@DrHyde Were you referring to my comment? I agree :)
bytes -> decode -> characters.
characters -> encode -> bytes.
I'd expect a to_utf8 function to encode to utf8 bytes
Either way, IMHO it's weird for a library like this to be returning bytes :)

Oh, I see - is _to_utf8 referring to the old-skool utf8 flag rather than meaning the output is actually a utf8 byte sequence?


Turn off additional deprecation warnings for GCC.

In follow up from the conversation in #1269, this adds the -Wno-deprecate-definitions flag to unit tests to allow them to test deprecated APIs without all the noisy compiler warnings.  This also refactors the setting of build properties for test targets to use target_<...> commands instead of set_target_properties()

Coverage remained the same at 100.0% when pulling 829571ab5c954724009e07b0e394ce91533a64f1 on chuckatkins:cleanup-deprecated-warnings into c8231eff75ca51a03416976b490d876f3dcd93f6 on nlohmann:develop.

Thanks a lot!


Method chaining indentation fixer

Replaces #2617 with some refactoring and small fixes.
/cc @boliev

@julienfalque thanks for opening this PR. Any updates here?

This PR mainly needs proper review for now :)

@julienfalque alright, cool! Who can we ping to get some movement here?

@fterrag If you want this PR to be merged faster (and if you have time to), please help by reviewing :)

What about indenting to the arrow? Like this:
$somethingBuilder->addDescription('Hello')
                 ->addNumber(42)
                 ->addSomethingElse('something else');

Doctrine does that in their docs.
Also an option if the first chaining should be in the line with the variable or in the next one would be useful.

Why not but I'd like to avoid implementing too much things here and merge the current PR first.

btw, please incorporate my commits into @boliev 's ones next time you will make a rebase

please make a rebase @julienfalque

Rebased. I'm not sure the CircleCI failure is related to changes in this PR as I'm getting similar errors locally with master.

Thank you @julienfalque.

Thank you @boliev.

Just wondering if anything became of @kubawerlos 's comment for allowing aligning chained methods on the arrow, e.g.:
$somethingBuilder->addDescription('Hello')
                 ->addNumber(42)
                 ->addSomethingElse('something else');

This is still not possible in 2.12.2, correct?

I don't think this has been done, there isn't an RFC for it as well. If you want you create an issue describing the RFC or maybe make a PR :)

Hi guys, I use this rule to indent and it works well.
But that is not enough, since fluent call create->super()->long()->lines()->that()->shouldBe()->readable()
So I made a fixer that breaks fluent lines to per-call line:
https://github.com/symplify/coding-standard/blob/0bd55495794d3b5380795a2e4c551267641fbab7/src/Fixer/Spacing/MethodChainingNewlineFixer.php
Feel free to use it, copy it, improve it #foss :+1:
 class SkipMultiLineChain
 {
     public function run()
     {
-        return $this->one()->two();
+        return $this->one()
+->two();
     }

 }


⚠ SceneTime has degraded performance

In 785a5a4, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1086 ms

Resolved: SceneTime performance has improved in c1c0a15 after 36 minutes.


is there any way to get a step file as output?

I'll be printing this on a industrial resin printer. For that I need to edit the files a bit, for example make the brain less solid and make my own custom supports.
Can I get an step file as an output or any way to let the programs make the brain less solid inside?

Usually this is done in the preparation step for the printing, called slicing. There you are able to set the infill.
This step is not included in the repo, but done in your slicer software.


Coverage report

By adding the projects property in the base jest config, this allows jest to run package tests in parallel and display a single coverage table. Additionally, a new static html report is generated in the root coverage directory which we will eventually save in a future store to track over time. In order to still be able to run a single package's tests, the --projects='' flag is now part of each package npm test script.

It seems that functionality for testing specific parts of packages has been lost - we can get it back?


After confirming RDP name and password and certificate, nothing happens

When i try to connect to RDP, after confirming RDP name and password and certificate, nothing happens.  It shows me again window for login. RDPcheck.exe fall after click on connect. Firewall and windows Defender is turned off. In RDP Wrapper configuration everything looks OK. [fully supported], Listener state: Listening ... Port is standard 3389. When i write wrong password or username, the RDP client write message that username or password is incorrect.  The Windows version is WIndows 10 Home 10.0.18362.836 . Can you suggest me what to do? Thank you for response.

10.0.19041.789
My RDPwrap does not sign on. Blurry screen.If I ask to enter credentials manually it tells me User Id / Password are incorrect.
I know they are not and this connection worked only a few days ago
If I check 10.0.19041.789 - it says listening?
I don't get it????

I have the same problem


Move jingle_sleigh into separate crate

Hi! Do you think it would be beneficial to move jingle_sleigh into a separate crate? This way, people who only need the pcode bindings would not have to add unused libraries to their projects

Hi again!
So, jingle_sleigh already is in its own crate, as this repo is set up as a Cargo Workspace.
If you're using a git dependency on it, you can point it at this repo but depend on jingle_sleigh instead of jingle.
I also have them both published on crates.io though the version on there is out of date from the dev branch. I'm depending on some APIs in the z3 crate that are not yet on crates.io so I can't push the dev branch until z3.rz pushes an update. And z3.rs is waiting on the next upstream z3 release to fix a bug 🫠 . Someday haha

Ah, sorry. I am relatively new to Rust and haven't learned all the package manager features yet. It turns out it was sufficient to add:
jingle_sleigh = { git =<EMAIL_ADDRESS>branch = "dev", package = "jingle_sleigh" }

Thank you for the help!


Don't try to copy non-existing files.

The recent change in pkg2appimage made it end up for me with this error:

FILES=
echo
read file
cp -s .
cp: missing destination file operand after '.'
Try 'cp --help' for more information.

This patch fixes that :-)

Thank you, should be fixed by https://github.com/AppImage/pkg2appimage/pull/425, can you confirm?

@probonopd Yep, does the same thing, thanks! :-)


update build msg notice

simple change - should be $PATH instead of just PATH.

Sorry we don't take pull requests.
Please see golang.org/doc/contribute.html

And the change is not entirely right either. On windows, it should be %PATH%.
I vote to keep it as is.


[BUG] BioTEA prepare cannot process (some) Agilent arrays

Describe the bug
Many Agilent arrays fail to be processed by BioTEA prepare. Some examples include:

GSE102238
GSE91035
GSE71729
GSE40098

To Reproduce
Steps to reproduce the behavior:

Download the data of the above GEO datasets;
Try and run BioTEA prepare against the data;
BioTEA fails just after "reading input files..."

Desktop:

OS: Arch Linux
BioTEA Version (Run biotea info biotea): 1.1.0
Docker engine version (Run docker --version): N/A
BioTEA container version (if applicable): 1.0.4

The bug was triaged by @Feat-FeAR. In short, the  read.maimages function needs to know what scanner produced the input files, to set the colnames to read appropriately. This is the source of the "colnames not found" error that is generated by the mentioned GSEs.
This is not a trivial bug to solve, as the user cannot say what scanner they used, often GEO does not hold this information (unless you open the input files and read the names manually), and some columns (like gIsWellOverBG that we use later for filtering) are needed in the later parts of the scripts.
A few band-aid fixes could be useful:

A better error message (but the function can crash with the same error due to other causes, such as reading a completely different file, even a completely invalid file)
A brute-force approach, testing all scanners that read.maimages can support, and choosing the first one that does not crash. In this case, we have to either add the columns that we need later on manually, or change the downstream code to not run if the columns are missing, or something else entirely.
Search the valid colnames for every supported chip, and give specific error messages if they do not match. Partial matching could also give an even more specific error message (e.g. "This looks like scanner A, but the cols a, b, and c are missing.")

I've added method 2 above in this commit: https://github.com/TCP-Lab/bioTEA-box/commit/4d3a5f37a6c5a6520e1e36f91fcd8740262d7269, since read.maimages is fast enough. However I've also added the colnames (from the read.maimages source code) that the function looks for, so that we can implement method 3 if we really want to.
On a side note, the chips above probably failed not due to BioTEA, but due to the fact that an additional file (with unknown data) is at the top of the file list in the "_RAW" archives. So everything (including biotea retrieve) dies horribly. Deleting the file makes everything go smoothly.


No save button for new meeting

Reported by Jérôme Chavel by email
Thomas Woditsch has given my the Administrator status for FREMOSued.
Now I am trying to create the Mammendorf meeting.
I can access the page, and fill the form like this:

However, I can´t find the button to confirm.
How shall I do this ?

Thanks for reporting this. It will be fixed in release 1.4.4.


Fix issue: exclude_dir doesn't work properly

I'm using Cap 3.4, exclude_dir can not be accessed from within the block.
However fetch works, so I just moved things into the file block and worked perfectly.
Also I've added extra_tar_args . For me I used it like this:
# follow symlinks and include the actual files in the tarball.
# see http://www.gnu.org/software/tar/manual/html_node/dereference.html
set :extra_tar_args, %w(-h)

Cheers.

Any chance of this being merged?


fix(@angular-devkit/build-angular): avoid attempting to directly copy directories

Fixes #15816

Superseded by https://github.com/angular/angular-cli/pull/15818


Update docs to fix broken links

I updated docs to fix broken links.
Because Twitter developer docs's URL changed.

Thanks, much appreciated effort! LGTM!


Setting SERVER_PASS to empty value when VPLUS PW is disabled

Fix for Issue #568
Setting SERVER_PASS to empty value if variable 'VPCFG_Server_disableServerPassword' is true

@JackTheFragger thank you for the PR! I added a comment to the code above.

shellcheck is complaining about accessing VPCFG_Server_disableServerPassword without defining it.
You could reduce the code to something like:
SERVER_PASS=${SERVER_PASS-secret}
if [ "${VPCFG_Server_disableServerPassword:-}" = true ]; then
	SERVER_PASS=""
fi

Where do I define it?

In defaults. At the same point where you made the current changes.


Adding the feature to auto select matching agents for a tasks

Following up on my own question #142 and the issue #71 I've added the feature to have the LLM check for a matching agent, to this task.
Please have a close look, since i'm currently not really familiar with the cassettes testing stuff as well as pydantic and  poetry, hence there is just one basic test

@joaomdmoura, would be nice if you could have look - cheers


Using CC cant use function defined in own module

Reporting a bug
When using CC to pre-compile code, I wanted to use a function defined in the module to do something in another function. This fails with saying the function is unknown. The same procedure works using jit even with nopython.
import numba
from numba.pycc import CC

cc = CC('calFast')
cc.verbose = True

@cc.export('suma', 'i4(i4,i4)')
def suma(a, b):
    return a+b

@cc.export('squareSum', 'i4(i4,i4)')
def squareSum(a,b):
    c = suma(a, b)
    return c**2

if __name__ == '__main__':
    cc.compile()

yields
...
...
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numba/typeinfer.py", line 1138, in typeof_assign
    self.typeof_global(inst, inst.target, value)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numba/typeinfer.py", line 1235, in typeof_global
    typ = self.resolve_value_type(inst, gvar.value)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numba/typeinfer.py", line 1159, in resolve_value_type
    raise TypingError(msg, loc=inst.loc)
numba.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Untyped global name 'suma': cannot determine Numba type of <class 'function'>

File "numbaTest.py", line 13:
def squareSum(a,b):
    c = suma(a, b)
    ^

``

Thanks for the report. I think the issue is that the compiler needs to know what the type of suma is during type inference and the CC export mechanism doesn't have it registered. The following should work:
import numba
from numba.pycc import CC

cc = CC('calFast')
cc.verbose = True

@numba.njit # <---- Adding this registers the function to type inference
@cc.export('suma', 'i4(i4,i4)')
def suma(a, b):
    return a+b

@cc.export('squareSum', 'i4(i4,i4)')
def squareSum(a,b):
    c = suma(a, b)
    return c**2

if __name__ == '__main__':
    cc.compile()

Yep that does it, thanks.


Implement Last-Modified response HTTP header

Request details
To test Reposilite, I use the docker image of it.
Now, I have made the following observation. When I download an artifact from the server using
wget -N http://server:port/path/artifact.jar
I get the warning message "Last-modified header missing -- time-stamps turned off." and
the timestamp of the downloaded file ist the current time.
I expected to have the timestamp when the file was created on Reposilite. In my current Repository (Archiva) it's working like this.
Please implement the Last-Modified response HTTP header in your server.

Hey, done! It'll be available in 3.5.15 or in the nightly build that should be available in about an hour.

Thank you so much. It works as expected.


ARM: only allow OOPS and STACK_CHK_FAIL from user mode

Fixes #17591
Includes @andrewboie 's commit that implements the respective test (for feature coverage).
Currently implemented for ARM (but an x86 fix is also present in #17587, AFAICS, so that commit could also be added here.)
Update: #17587 is merged, so this should already work for x86 as well.

Not sure if we want to back-port this @andrewboie

Not sure if we want to back-port this @andrewboie

Yeah we probably should, as the bug is more serious on ARM than on x86.

ARM changes look fine.
Would like the ifdef in the test changed to exclude ARC

@andrewboie pls, review the revised version.


Contract - remove deposit from ChannelToppedUp & save gas

We do not need _ deposit in ChannelToppedUp event. We already have _added_deposit.
This saves gas.

Looks good. Saving a tiny bit of gas.


Be less chatty when we're uploading to GCS

cc @ixdy

I also wonder if we only want to pass -q when running in Jenkins.

It's pretty spammy regardless. I guess you could say "interactive", but honestly ...

LGTM


Build documentation automatically with master merge and update website content

Motivation and Context
Before the proposed change we have to build and update documentation manually. As results Docs are quite outdated on our website: https://aihabitat.org/docs/. With current change documentation automatically will be updated with new commits in master powered by CircleCI.

[x] Install latex, pelican, doxygen and other dependencies needed.
[x] Setup securely ssh key for updating website repository.
[x] Rebuild Habitat-SIM with wide options enabled for documentation update.
[x] Build docs with Doxygen.
[x] Build docs with Mcss documentation.
[x] Update habitat-website master branch with changed parts of documentation.
[x] Update habitat-website gh-pages branch (website update) with changed parts of documentation.
[ ] Apply master only branch filter.
[ ] Run build as separate CircleCI job.
[ ] Add links update for tutorials.

How Has This Been Tested
Run CI and check produced commits for website content.

Types of changes

[x] Docs change / refactoring / dependency upgrade

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have completed my CLA (see CONTRIBUTING)
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #379 into master will decrease coverage by 8.61%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #379      +/-   ##
==========================================
- Coverage   56.93%   48.31%   -8.62%
==========================================
  Files         153      105      -48
  Lines        7063     4943    -2120
==========================================
- Hits         4021     2388    -1633
+ Misses       3042     2555     -487

Impacted Files
Coverage Δ

src/esp/geo/geo.cpp
30% <0%> (-4.29%)
:arrow_down:

tests/test_physics.py

tests/test_simulator.py

...bitat_sim/agent/controls/pyrobot_noisy_controls.py

habitat_sim/agent/controls/default_controls.py

tests/test_agent.py

tests/test_snap_point.py

examples/new_actions.py

habitat_sim/sensor.py

habitat_sim/sensors/noise_models/__init__.py

... and 40 more

Continue to review full report at Codecov.

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