Missing permissions on targetSdk 33

FATAL EXCEPTION: main
Process: com.example.exercise, PID: 13281
java.lang.SecurityException: Missing permissions
at androidx.health.services.client.impl.internal.StatusCallback.onFailure(StatusCallback.kt:43)
at androidx.health.services.client.impl.internal.IStatusCallback$Stub.onTransact(IStatusCallback.java:74)
at android.os.Binder.execTransactInternal(Binder.java:1285)
at android.os.Binder.execTransact(Binder.java:1244)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@d760ae4, Dispatchers.Main.immediate]

I have run this demo on a Samsung Watch 5, (Android OS version 13, and Wear OS version 4.0)
and give all permissions after that just click on to Start button

OK, it's working on emulator if you grant all permissions.  But does fail if you deny.
So looks like a different issue than I guessed.

Please see the video
Uploading PXL_2.mp4…

Please see video..
https://github.com/android/health-samples/assets/134904942/e5b4591d-9acf-4389-bc88-5c945d6a4a51

@dharmraj2018 Thanks for the video. I can't reproduce on Pixel Watch 2 or the API 33 emulator. I don't have access to GW4 at the moment. Can you share your Health Services version?
$ adb shell dumpsys package com.google.android.wearable.healthservices | grep versionCode
    versionCode=1443860 minSdk=30 targetSdk=33
    versionCode=1405199 minSdk=30 targetSdk=33

Hi @ithinkihaveacat please check the version. let me know if anything needs to upgrade version.
versionCode=1388651 minSdk=30 targetSdk=33

@ithinkihaveacat I think there are multiple parts here

Why it's failing on GW
Catching the failure and showing an error
detecting/explaining which permissions are needed proactively

I'm having trouble reproducing the behavior shown in the video at https://github.com/android/health-samples/issues/212#issuecomment-1880880994.
Things I tried:

with com.google.android.wearable.healthservices versionCode 1388651 as in the original report (FWIW this is the version that comes with the OS and is pretty old, not sure why it hasn't updated but that's a separate issue)
with com.google.android.wearable.healthservices versionCode  1434827 (latest production)
with the device's global location setting turned off

Hi @yschimke @ithinkihaveacat  do have any updates for me?

@dharmraj2018 I'm struggling to reproduce this :-(. Tried another GW device just now and it works just fine. (Granting all permissions for now, as in https://github.com/android/health-samples/issues/212#issuecomment-1880880994.) It also works on the emulator. Can you reproduce on a different device?

Hi @ithinkihaveacat , I have been able to run the app on the simulator successfully. However, I'm encountering issues when trying to run it on actual Samsung Watch 4 and 5 devices with the latest software version. Previously, it was working fine, but after updating the watch to One UI 5.0 (System version: 13 and Wear OS version 4.0), the app is not functioning properly, and I'm experiencing the same crash. Please assist in resolving this issue.

@dharmraj2018 I think this should solve your issue #223, looks like the exercise sample was missing the POST_NOTIFICATION permission, you only need to request this on Wear 4, which explains why you only say this after updating, see: https://developer.android.com/training/wearables/versions/4/changes#notification-permission

I'm unclear how this manifest as
java.lang.SecurityException: Missing permissions
at androidx.health.services.client.impl.internal.StatusCallback.onFailure(StatusCallback.kt:43)

If really required, we should add to https://developer.android.com/health-and-fitness/guides/health-services/permissions

Hi @amankhoza
please check the results of this given command:

MacBook-Pro14:ExerciseSample dharmraj$ adb shell dumpsys package com.example.exercise | grep -i -C10 "permissions"
Action: "androidx.work.impl.background.systemalarm.UpdateProxies"

Service Resolver Table:
Non-Data Actions:
hs.versionclient.BIND:
4d29d7e com.example.exercise/androidx.health.services.client.VersionApiService filter 71da2df permission com.google.android.wearable.healthservices.permission.PASSIVE_DATA_BINDING
Action: "hs.versionclient.BIND"
Domain verification status:
Permissions:
Permission [com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION] (3e988d):
sourcePackage=com.example.exercise
uid=10040 gids=[] type=0 prot=signature
perm=PermissionInfo{b7fa1cb com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION}
Registered ContentProviders:
com.example.exercise/androidx.startup.InitializationProvider:
Provider{6a5eda8 com.example.exercise/androidx.startup.InitializationProvider}
ContentProvider Authorities:
--
com.google.android.wearable
usesOptionalLibraries:
androidx.window.extensions
androidx.window.sidecar
usesLibraryFiles:
/system/framework/com.google.android.wearable.jar
timeStamp=2024-01-15 17:11:36
lastUpdateTime=2024-01-15 17:11:36
packageSource=0
signatures=PackageSignatures{a403c54 version:2, signatures:[fce376d4], past signatures:[]}
installPermissionsFixed=true
pkgFlags=[ TEST_ONLY ]
pkgFlags=[ TEST_ONLY ]
declared permissions:
  com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: prot=signature, INSTALLED

--
com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: prot=signature, INSTALLED
requested permissions:
android.permission.BODY_SENSORS
android.permission.ACCESS_FINE_LOCATION
android.permission.ACTIVITY_RECOGNITION
android.permission.WAKE_LOCK
android.permission.FOREGROUND_SERVICE
android.permission.ACCESS_NETWORK_STATE
android.permission.RECEIVE_BOOT_COMPLETED
com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
android.permission.ACCESS_COARSE_LOCATION
  android.permission.BODY_SENSORS
  android.permission.ACCESS_FINE_LOCATION
  android.permission.ACTIVITY_RECOGNITION
  android.permission.WAKE_LOCK
  android.permission.FOREGROUND_SERVICE
  android.permission.ACCESS_NETWORK_STATE
  android.permission.RECEIVE_BOOT_COMPLETED
  com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  android.permission.ACCESS_COARSE_LOCATION
install permissions:
  android.permission.FOREGROUND_SERVICE: granted=true
  android.permission.RECEIVE_BOOT_COMPLETED: granted=true
  android.permission.ACCESS_NETWORK_STATE: granted=true
  com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: granted=true
  android.permission.WAKE_LOCK: granted=true
User 0: ceDataInode=17960 installed=true hidden=false suspended=false distractionFlags=0 stopped=false notLaunched=false enabled=0 instant=false virtual=false
  installReason=0
  firstInstallTime=2024-01-15 17:11:36
  uninstallReason=0

--
android.permission.FOREGROUND_SERVICE: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.ACCESS_NETWORK_STATE: granted=true
com.example.exercise.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: granted=true
android.permission.WAKE_LOCK: granted=true
User 0: ceDataInode=17960 installed=true hidden=false suspended=false distractionFlags=0 stopped=false notLaunched=false enabled=0 instant=false virtual=false
installReason=0
firstInstallTime=2024-01-15 17:11:36
uninstallReason=0
runtime permissions:
android.permission.ACCESS_FINE_LOCATION: granted=true, flags=[ USER_SET|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED|524288]
android.permission.BODY_SENSORS: granted=true, flags=[ USER_SET|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
android.permission.ACCESS_COARSE_LOCATION: granted=true, flags=[ USER_SET|REVOKE_WHEN_REQUESTED|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
android.permission.ACTIVITY_RECOGNITION: granted=true, flags=[ USER_SET|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
enabledComponents:
androidx.work.impl.background.systemjob.SystemJobService
Queries:
system apps queryable: false
queries via forceQueryable:

Is our sample missing BODY_SENSORS_BACKGROUND ?

Hi @amankhoza I already checked with having permission for BODY_SENSORS_BACKGROUND still crashing the same issue although Google Pixel Watch 2 is working fine without this permission.

Ok @dharmraj2018 a few more ideas:

Open the app, grant all permissions, but before clicking start, in a new terminal, run the following command:

adb logcat | grep -i WHS_PermissionPolicy

Now click start and see what is printed in the logcat, this might help us narrow down if the app is losing a permission at runtime. Paste the results back here.

Let's try updating Wear Health Services, to see if this is an issue that has already been fixed. Run the following command to open the playstore listing for WHS, since you're on an old version there should be an update available. Install it then run the following command to see the new version:

adb shell dumpsys package com.google.android.wearable.healthservices | grep versionCode

Report the new versionCode here, then repeat steps in 1)

Maybe there's a new system update available for your device in which this bug has been fixed. Check in your settings if this is the case, if there is an update, install it, rerun the steps in 1) and post the version from settings here.

I noticed in your video, GPS is unavailable so this might be the problem permission, to rule it out first open Google maps, ensure you get a GPS fix for the watch and then rerun the app but ensure the Prepare fragment shows that GPS has been acquired. Once GPS has been acquired rerun steps in 1)

Thanks, @amankhoza! I've identified the issue; it seems that GPS was not enabled, leading to the crash on the Samsung watch. I resolved the problem by enabling the location before starting an exercise, and now the crash has been fixed.

Hello :wave:
I had a similar issue today with a different setup.
I'm running Wear OS 3.5 on a TicWatch Pro 3 Ultra.
I was following the docs but instead of only trying out the HR functionality, I tried all the available options.
i.e. instead of:
val passiveListenerConfig = PassiveListenerConfig.builder()
    .setDataTypes(setOf(DataType.HEART_RATE_BPM))
    .build()

I configured:
val passiveListenerConfig = PassiveListenerConfig.builder()
                .setDataTypes(
                    passiveMonitoringClient.getCapabilities()
                        .supportedDataTypesPassiveMonitoring
                )
                .build()

While running the app I ended up with:
FATAL EXCEPTION: main
Process: x.y.z, PID: 6446
java.lang.SecurityException: Missing permissions
at androidx.health.services.client.impl.internal.StatusCallback.onFailure(StatusCallback.kt:43)
at androidx.health.services.client.impl.internal.IStatusCallback$Stub.onTransact(IStatusCallback.java:74)
at android.os.Binder.execTransactInternal(Binder.java:1159)
at android.os.Binder.execTransact(Binder.java:1123)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@d8e3de1, Dispatchers.Main.immediate]

After looking into health-services permissions
I noticed I was missing the ACTIVITY_RECOGNITION permission.
It would be nice if the exception could drive the user towards the solution.

@monteiro-renato improving the exception has been raised internally, feel free to raise it as a public issue here if you want to keep track or get others to upvote etc. https://issuetracker.google.com/issues/new?component=1056301&template=1581114
In terms of the crash, I added a PR to prevent it for ExerciseSampleCompose in https://github.com/android/health-samples/pull/231, something similar can probably be done for ExerciseSample.

I am facing similar issue. Getting same Missing Permission error, but I alraedy have ACTIVITY_RECOGNITION  permission there, and other 4. Now I dont know which permission is missing...

I am facing similar issue:
https://stackoverflow.com/questions/79103144/wearos-startexercise-is-giving-missing-permission-error

Hey @gitusman If you're using ExerciseSample, can you make sure you have Location enabled on the device? In the emulator this is, Settings > Location > Use Location. I'm not sure how it appears on Galaxy Watch, but it should be similar. This would be device settings, not the settings of the app.

@breanatate Yes I am using the code of ExcerciseSample. Location was not enabled before. But I enabled it from the settings and tried again, still getting the crash

There is bug with PassiveData sample. Without

It will never start the listener on boot_completed intent, so I suggest to add that permission it tooks quite a long time to recognize which permission I'm missing. It's getting error inside HealthServicesManager registerForHeartRateData for setPassiveListenerServiceAsync (java.lang.SecurityException Missed permission)


Drop on it's own position

Hi, I have an another issue, in this video i want to drop each element on it's own dragged position.
User cannot interchange with draggable elements but in dropped elements.
Video : http://ph5s.com/video1.mp4
~Manish

Sorry I don't get your issue. The things you do in the video seems to work fine. Which part does not work? Maybe give the second of the video

Hello Markus, I am sorry for not more explanation you correctly, I am too close on issue, please start Video from 0:13 when all elements on left side. user cannot drop any element on others like
as i want :
1-1
2-2
3-3
4-4
not as :
1-3
2-4
3-1
4-2
Hopefully you recognize my issue.
~Manish

I didn't get the console, Is any event in plugin that we find html of drag element on dropping.
.on('droppable:drop', function(e){
var dragging_handler = $(this).find('.sort-drag').data('number');
var droppable_handler = $(this).find('.sort-overlay').data('number');
   // I didn't get the console
   console.log(dragging_handler);
   if( dragging_handler != droppable_handler) {
     e.preventDefault();
   }

});

.on('droppable:drop`, function(e, ui) {
  console.log(ui.item)
})

If I get you right, you try to achieve the following: http://codepen.io/anon/pen/waMaOy ?

Great you did well that's impressive :+1:


add Spring Webflux server support

What does this PR do?
This pull-request is an improvement on the elastic/apm-agent-java#1221 community pull-request.
Given the large number of changes, it was simpler to open another PR than recycle elastic/apm-agent-java#1221.
Fixes https://github.com/elastic/apm-agent-java/issues/60
Features
Test application:

available as an executable jar and also used for unit-testing instrumentation
provides both functional and annotated controllers endpoints
executable with netty or tomcat as server, which allows to cover Webflux with or without Servlets
provides a client to call itself (based on Webflux client), thus using any third-party HTTP client is not necessary

Instrumentation:

Webflux server: covers both functional and annotated endpoints variants
Webflux client: not covered yet, see elastic/apm-agent-java#1306
using new plugin API and indy dispatcher.
adds reactor instrumentation for context-propagation

Implementation checklist

[x] provide context-propagation, maybe through reactor-core instrumentation
[x] test supported webflux/reactor versions
[x] performance benchmark to ensure minimal overhead
[ ] in-depth allocation benchmark to estimate overhead (current implementation is expected to allocate a bit more).
[x] capture upstream transaction HTTP headers (if any) for context propagation

Checklist

[x] This is a new plugin

[x] I have updated CHANGELOG.asciidoc
[x] My code follows the style guidelines of this project
[ ] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] I have updated CHANGELOG.asciidoc
[x] I have updated supported-technologies.asciidoc
[x] Added an API method or config option? Document in which version this will be introduced
[ ] Added an instrumentation plugin? Describe how you made sure that old, non-supported versions are not instrumented by accident.

:broken_heart: Tests Failed

Expand to view the summary

Build stats

Build Cause: [Pull request #1305 opened]

Start Time: 2020-07-22T15:15:06.934+0000

Duration: 12 min 56 sec

Test stats :test_tube:

Test
Results

Failed
1

Passed
485

Skipped
0

Total
486

Test errors
Expand to view the tests failures

Name: testIsLoggable – co.elastic.apm.agent.logging.JulBridgeLoggerTest

Age: 1
Duration: 0.043
Error Details:
Expecting:

to be equal to:

but was not.

Steps errors
Expand to view the steps failures

Name: Shell Script

Description: #!/bin/bash                set -euxo pipefail                ./mvnw test

Duration: 1 min 17 sec

Start Time: 2020-07-22T15:25:38.390+0000

log

Log output
Expand to view the last 100 lines of log output

[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:apm-opentracing ..................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:integration-tests ................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:simple-webapp ....................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:jsf-app ............................. SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:jsf-app-dependent ................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:jsf-app-standalone .................. SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:cdi-app ............................. SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:cdi-app-dependent ................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:cdi-app-standalone .................. SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:soap-test ........................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:apm-agent-attach .................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:application-server-integration-tests  SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:spring-boot-1-5 ..................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:spring-boot-2 ....................... SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:spring-boot-2-base .................. SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:spring-boot-2-jetty ................. SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:spring-boot-2-tomcat ................ SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:spring-boot-2-undertow .............. SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] co.elastic.apm:external-plugin-test ................ SKIPPED
[2020-07-22T15:26:55.262Z] [INFO] ------------------------------------------------------------------------
[2020-07-22T15:26:55.262Z] [INFO] BUILD FAILURE
[2020-07-22T15:26:55.262Z] [INFO] ------------------------------------------------------------------------
[2020-07-22T15:26:55.262Z] [INFO] Total time:  01:15 min
[2020-07-22T15:26:55.262Z] [INFO] Finished at: 2020-07-22T15:26:55Z
[2020-07-22T15:26:55.262Z] [INFO] ------------------------------------------------------------------------
[2020-07-22T15:26:55.262Z] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project apm-agent-core: There are test failures.
[2020-07-22T15:26:55.262Z] [ERROR]
[2020-07-22T15:26:55.262Z] [ERROR] Please refer to /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1305/src/github.com/elastic/apm-agent-java/apm-agent-core/target/surefire-reports for the individual test results.
[2020-07-22T15:26:55.262Z] [ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[2020-07-22T15:26:55.262Z] [ERROR] -> [Help 1]
[2020-07-22T15:26:55.262Z] [ERROR]
[2020-07-22T15:26:55.262Z] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[2020-07-22T15:26:55.262Z] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[2020-07-22T15:26:55.262Z] [ERROR]
[2020-07-22T15:26:55.262Z] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[2020-07-22T15:26:55.262Z] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[2020-07-22T15:26:55.262Z] [ERROR]
[2020-07-22T15:26:55.262Z] [ERROR] After correcting the problems, you can resume the build with the command
[2020-07-22T15:26:55.262Z] [ERROR]   mvn <args> -rf :apm-agent-core
[2020-07-22T15:26:56.312Z] Post stage
[2020-07-22T15:26:56.339Z] Recording test results
[2020-07-22T15:26:57.451Z] [INFO] getVaultSecret: Getting secrets
[2020-07-22T15:26:57.555Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-07-22T15:26:58.154Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1305/src/github.com/elastic/apm-agent-java
[2020-07-22T15:26:58.192Z] [INFO] Codecov: Getting branch ref...
[2020-07-22T15:26:58.332Z] Masking supported pattern matches of $GITHUB_TOKEN
[2020-07-22T15:26:58.793Z] [INFO] Codecov: Sending data...
[2020-07-22T15:26:59.278Z] + curl -sSLo codecov.sh https://codecov.io/bash
[2020-07-22T15:26:59.639Z] + bash codecov.sh
[2020-07-22T15:26:59.639Z]
[2020-07-22T15:26:59.639Z]   _____          _
[2020-07-22T15:26:59.639Z]  / ____|        | |
[2020-07-22T15:26:59.639Z] | |     ___   __| | ___  ___ _____   __
[2020-07-22T15:26:59.639Z] | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
[2020-07-22T15:26:59.639Z] | |___| (_) | (_| |  __/ (_| (_) \ V /
[2020-07-22T15:26:59.639Z]  \_____\___/ \__,_|\___|\___\___/ \_/
[2020-07-22T15:26:59.639Z]                               Bash-20200707-353aa93
[2020-07-22T15:26:59.639Z]
[2020-07-22T15:26:59.639Z]
[2020-07-22T15:26:59.639Z] ==> Jenkins CI detected.
[2020-07-22T15:26:59.639Z]     project root: .
[2020-07-22T15:26:59.639Z] --> token set from env
[2020-07-22T15:26:59.639Z]     Yaml not found, that's ok! Learn more at http://docs.codecov.io/docs/codecov-yaml
[2020-07-22T15:26:59.639Z] ==> Running gcov in . (disable via -X gcov)
[2020-07-22T15:26:59.639Z] ==> Python coveragepy not found
[2020-07-22T15:26:59.639Z] ==> Searching for coverage reports in:
[2020-07-22T15:26:59.639Z]     + .
[2020-07-22T15:27:00.206Z]     -> Found 1 reports
[2020-07-22T15:27:00.206Z] ==> Detecting git/mercurial file structure
[2020-07-22T15:27:00.206Z] ==> Reading reports
[2020-07-22T15:27:00.206Z]     + ./apm-agent-plugin-sdk/target/site/jacoco/jacoco.xml bytes=20551
[2020-07-22T15:27:00.206Z] ==> Appending adjustments
[2020-07-22T15:27:00.206Z]     https://docs.codecov.io/docs/fixing-reports
[2020-07-22T15:27:00.786Z]     -> No adjustments found
[2020-07-22T15:27:00.786Z] ==> Gzipping contents
[2020-07-22T15:27:00.786Z] ==> Uploading reports
[2020-07-22T15:27:00.786Z]     url: https://codecov.io
[2020-07-22T15:27:00.786Z]     query: branch=SylvainJuge%2Fmb-add-spring-webflux-plugin&commit=58c7d8d32104175abc988557770a373bce718f9a&build=1&build_url=https%3A%2F%2Fapm-ci.elastic.co%2Fjob%2Fapm-agent-java%2Fjob%2Fapm-agent-java-mbp%2Fjob%2FPR-1305%2F1%2F&name=&tag=&slug=elastic%2Fapm-agent-java&service=jenkins&flags=&pr=1305&job=&cmd_args=
[2020-07-22T15:27:00.786Z] ->  Pinging Codecov
[2020-07-22T15:27:00.786Z] https://codecov.io/upload/v4?package=bash-20200707-353aa93&token=secret&branch=SylvainJuge%2Fmb-add-spring-webflux-plugin&commit=58c7d8d32104175abc988557770a373bce718f9a&build=1&build_url=https%3A%2F%2Fapm-ci.elastic.co%2Fjob%2Fapm-agent-java%2Fjob%2Fapm-agent-java-mbp%2Fjob%2FPR-1305%2F1%2F&name=&tag=&slug=elastic%2Fapm-agent-java&service=jenkins&flags=&pr=1305&job=&cmd_args=
[2020-07-22T15:27:01.061Z] ->  Uploading to
[2020-07-22T15:27:01.061Z] https://storage.googleapis.com/codecov/v4/raw/2020-07-22/9D96A76C16FC0F1A9E828BAAD4B02DD6/58c7d8d32104175abc988557770a373bce718f9a/e3ee1e81-d19e-43b8-b219-7b02f0fb44b2.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=GOOG1EQX6OZVJGHKK3633AAFGLBUCOOATRACRQRQF6HMSMLYUP6EAD6XSWAAY%2F20200722%2FUS%2Fs3%2Faws4_request&X-Amz-Date=20200722T152700Z&X-Amz-Expires=10&X-Amz-SignedHeaders=host&X-Amz-Signature=e8797324fc8e7fcb3f1cb17a9be6c48eb0d57e0c8e796eaff1d31678e9c4f6e5
[2020-07-22T15:27:01.061Z]   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
[2020-07-22T15:27:01.061Z]                                  Dload  Upload   Total   Spent    Left  Speed
[2020-07-22T15:27:01.061Z]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 11723    0     0  100 11723      0  86837 --:--:-- --:--:-- --:--:-- 86837
[2020-07-22T15:27:01.061Z]     -> View reports at https://codecov.io/github/elastic/apm-agent-java/commit/58c7d8d32104175abc988557770a373bce718f9a
[2020-07-22T15:27:01.374Z] Failed in branch Unit Tests
[2020-07-22T15:27:01.621Z] Failed in branch Smoke Tests 01
[2020-07-22T15:27:01.632Z] Failed in branch Smoke Tests 02
[2020-07-22T15:27:01.643Z] Failed in branch Javadoc
[2020-07-22T15:27:01.959Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2020-07-22T15:27:02.061Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-07-22T15:27:02.103Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-07-22T15:27:02.533Z] Running on Jenkins in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1305
[2020-07-22T15:27:02.646Z] [INFO] getVaultSecret: Getting secrets
[2020-07-22T15:27:02.749Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-07-22T15:27:03.639Z] + chmod 755 generate-build-data.sh
[2020-07-22T15:27:03.639Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1305/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1305/runs/1 FAILURE 716434
[2020-07-22T15:27:04.189Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1305/runs/1/steps/?limit=10000 -o steps-info.json
[2020-07-22T15:27:04.740Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1305/runs/1/tests/?status=FAILED -o tests-errors.json

Codecov Report

Merging #1305 (a142076) into master (115ef3c) will decrease coverage by 19.10%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master    #1305       +/-   ##
=============================================
- Coverage     58.84%   39.73%   -19.11%
+ Complexity       92       68       -24
=============================================
  Files           403       12      -391
  Lines         18475      307    -18168
  Branches       2570       50     -2520
=============================================
- Hits          10872      122    -10750
+ Misses         6835      170     -6665
+ Partials        768       15      -753

Impacted Files
Coverage Δ
Complexity Δ

...n/java/co/elastic/apm/agent/premain/AgentMain.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

.../elastic/apm/agent/jms/BaseJmsInstrumentation.java

.../elastic/apm/agent/bci/DynamicTransformerImpl.java

...c/apm/agent/impl/context/web/WebConfiguration.java

...a/co/elastic/apm/agent/util/NoRandomAccessMap.java

...pm/agent/pluginapi/TransactionInstrumentation.java

...lastic/apm/agent/impl/context/AbstractContext.java

.../agent/dubbo/AlibabaRpcContextInstrumentation.java

...apm/agent/asynchttpclient/RequestHeaderSetter.java

...bernatesearch/HibernateSearch5Instrumentation.java

... and 375 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 115ef3c...a142076. Read the comment docs.

Hi all,
I have a customer who wants to use JAVA APM agent with webflux backend.
It seems this PR is related... Is this PR applied to production? if not is there any ETA?

The best place to find out what is supported or not is in our documentation.
Since this PR is merged long ago, it is of course released already (included since 1.24.0 and marked as experimental, as you can see in docs).


Compilation error

Trying to compile yields problems when trying to find some DX11 symbols
The Meson build system
Version: 0.61.2
Source dir: /root/dxvk
Build dir: /root/dxvk-release/dxvk-master/build.64
Build type: cross build
Project name: dxvk
Project version: v2.1
C compiler for the host machine: x86_64-w64-mingw32-gcc (gcc 10.0.0 "x86_64-w64-mingw32-gcc (GCC) 10-posix 20220113")
C linker for the host machine: x86_64-w64-mingw32-gcc ld.bfd 2.38
C++ compiler for the host machine: x86_64-w64-mingw32-g++ (gcc 10.0.0 "x86_64-w64-mingw32-g++ (GCC) 10-posix 20220113")
C++ linker for the host machine: x86_64-w64-mingw32-g++ ld.bfd 2.38
C compiler for the build machine: cc (gcc 11.3.0 "cc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0")
C linker for the build machine: cc ld.bfd 2.38
C++ compiler for the build machine: c++ (gcc 11.3.0 "c++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0")
C++ linker for the build machine: c++ ld.bfd 2.38
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64

Executing subproject libdisplay-info

libdisplay-info| Project name: libdisplay-info
libdisplay-info| Project version: 0.0.0
libdisplay-info| C compiler for the host machine: x86_64-w64-mingw32-gcc (gcc 10.0.0 "x86_64-w64-mingw32-gcc (GCC) 10-posix 20220113")
libdisplay-info| C linker for the host machine: x86_64-w64-mingw32-gcc ld.bfd 2.38
libdisplay-info| C compiler for the build machine: cc (gcc 11.3.0 "cc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0")
libdisplay-info| C linker for the build machine: cc ld.bfd 2.38
libdisplay-info| Program tool/gen-search-table.py found: YES (/root/dxvk/subprojects/libdisplay-info/tool/gen-search-table.py)
libdisplay-info| Library m found: YES
libdisplay-info| Compiler for C supports arguments -Wundef: YES
libdisplay-info| Compiler for C supports arguments -Wmissing-prototypes: YES
libdisplay-info| Compiler for C supports arguments -Walloca: YES
libdisplay-info| Compiler for C supports arguments -Wdeclaration-after-statement: YES
libdisplay-info| Compiler for C supports arguments -Wconversion: YES
libdisplay-info| Compiler for C supports arguments -Wno-unused-parameter: YES
libdisplay-info| Compiler for C supports arguments -Wno-missing-field-initializers: YES
libdisplay-info| Compiler for C supports arguments -Werror=implicit: YES
libdisplay-info| Build targets in project: 2
libdisplay-info| Subproject libdisplay-info finished.

Library d3d9 found: YES
Library d3d11 found: YES
Library dxgi found: YES
Library d3dcompiler_47 found: YES
Program x86_64-w64-mingw32-windres found: YES
Compiler for C++ supports arguments -msse: YES
Compiler for C++ supports arguments -msse2: YES
Compiler for C++ supports arguments -msse3: YES
Compiler for C++ supports arguments -mfpmath=sse: YES
Compiler for C++ supports arguments -Wimplicit-fallthrough: YES
Compiler for C++ supports arguments -Wno-missing-field-initializers: YES
Compiler for C++ supports arguments -Wno-unused-parameter: YES
Compiler for C++ supports arguments -Wno-cast-function-type: YES
Compiler for C++ supports arguments -Wno-unused-private-field: NO
Compiler for C++ supports arguments -Wno-microsoft-exception-spec: NO
Compiler for C++ supports arguments -Wno-extern-c-compat: NO
Compiler for C++ supports arguments -Wno-unused-const-variable: YES
Compiler for C++ supports arguments -Wno-missing-braces: YES
Compiler for C++ supports arguments -DNOMINMAX: YES
Compiler for C++ supports arguments -D_WIN32_WINNT=0xa00: YES
Compiler for C++ supports arguments -DDXVK_WSI_WIN32: YES
Compiler for C supports arguments -msse: YES
Compiler for C supports arguments -msse2: YES
Compiler for C supports arguments -msse3: YES
Compiler for C supports arguments -mfpmath=sse: YES
Compiler for C supports arguments -Wimplicit-fallthrough: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES (cached)
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Compiler for C supports arguments -Wno-cast-function-type: YES
Compiler for C supports arguments -Wno-unused-private-field: NO
Compiler for C supports arguments -Wno-microsoft-exception-spec: NO
Compiler for C supports arguments -Wno-extern-c-compat: NO
Compiler for C supports arguments -Wno-unused-const-variable: YES
Compiler for C supports arguments -Wno-missing-braces: YES
Compiler for C supports arguments -DNOMINMAX: YES
Compiler for C supports arguments -D_WIN32_WINNT=0xa00: YES
Compiler for C supports arguments -DDXVK_WSI_WIN32: YES
Compiler for C++ supports link arguments -static: YES
Compiler for C++ supports link arguments -static-libgcc: YES
Compiler for C++ supports link arguments -static-libstdc++: YES
Compiler for C++ supports link arguments -Wl,--file-alignment=4096: YES
Compiler for C supports link arguments -static: YES
Compiler for C supports link arguments -static-libgcc: YES
Compiler for C supports link arguments -static-libstdc++: YES
Compiler for C supports link arguments -Wl,--file-alignment=4096: YES
Program glslangValidator found: YES (/usr/bin/glslangValidator)
Run-time dependency threads found: YES
Dependency threads found: YES unknown (cached)
Build targets in project: 14

dxvk v2.1

  Subprojects
    libdisplay-info: YES

  User defined options
    Cross files    : /root/dxvk/build-win64.txt
    bindir         : x64
    buildtype      : release
    libdir         : x64
    prefix         : /root/dxvk-release/dxvk-master
    strip          : True
    build_id       : false

Found ninja-1.10.1 at /usr/bin/ninja
[176/288] Compiling C++ object src/d3d11/d3d11.dll.p/d3d11_class_linkage.cpp.obj
FAILED: src/d3d11/d3d11.dll.p/d3d11_class_linkage.cpp.obj
x86_64-w64-mingw32-g++ -Isrc/d3d11/d3d11.dll.p -Isrc/d3d11 -I../../../dxvk/src/d3d11 -I../../../dxvk/include -I../../../dxvk/include/vulkan/include -I../../../dxvk/include/spirv/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -msse -msse2 -msse3 -mfpmath=sse -Wimplicit-fallthrough -Wno-missing-field-initializers -Wno-unused-parameter -Wno-cast-function-type -Wno-unused-const-variable -Wno-missing-braces -DNOMINMAX -D_WIN32_WINNT=0xa00 -DDXVK_WSI_WIN32 -MD -MQ src/d3d11/d3d11.dll.p/d3d11_class_linkage.cpp.obj -MF src/d3d11/d3d11.dll.p/d3d11_class_linkage.cpp.obj.d -o src/d3d11/d3d11.dll.p/d3d11_class_linkage.cpp.obj -c ../../../dxvk/src/d3d11/d3d11_class_linkage.cpp
In file included from ../../../dxvk/src/d3d11/d3d11_device.h:19,
                 from ../../../dxvk/src/d3d11/d3d11_class_linkage.cpp:2:
../../../dxvk/src/d3d11/d3d11_features.h:84:5: error: 'D3D11_FEATURE_DATA_D3D11_OPTIONS5' does not name a type; did you mean 'D3D11_FEATURE_DATA_D3D11_OPTIONS4'?
   84 |     D3D11_FEATURE_DATA_D3D11_OPTIONS5                 m_d3d11Options5               = { };
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |     D3D11_FEATURE_DATA_D3D11_OPTIONS4
../../../dxvk/src/d3d11/d3d11_features.h:104:5: error: 'D3D11_SHARED_RESOURCE_TIER' does not name a type; did you mean 'D3D11_TILED_RESOURCES_TIER'?
  104 |     D3D11_SHARED_RESOURCE_TIER DetermineSharedResourceTier(
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |     D3D11_TILED_RESOURCES_TIER

glslang is in the latest version (from yesterday)

Please at least search before opening issues.

Hello @Joshua-Ashton , i did read all (except one) threads before making this post, mingw seems to be in the latest version just fine, hence why i'm confused on why it still doesn't work. Since this is a clean container just to work on this project, i will try setting it up again to see if i made some mistake but afaik everything should be in place

mingw seems to be in the latest version just fine

Except it's not. MinGW version does not equate GCC version.


[Feature Request] Page Types, Form, Upload image/file to specific folder

Update
We should add a folder selector to the Image/File Attribute type, similar to how we have added it to the Express Form block.
Original Message
I've used custom Page Types for galleries, but now I want to use them for much more.
For a site I'm working on now, and other sites in the future, I would like to see an extension to the functionality for Attribute type which is used to upload files (images in my case), so that when the new page type form is used, the image uploaded goes into a specific folder that already exists. In my case the image is a preview graphic that will be displayed on a parent page to the new page (think gallery functionality, but used for other purposes).
As it is currently, the upload file attribute dumps the files into the root folder (last I checked). If I am to use this method for multiple sections of any website, this can lead to a very disorganised files section as you have many different kinds of content images being uploaded to the same root folder.
I don't anticipate this to take a lot of work, but I think it will help long-term organisation. Perhaps when defining the form or attribute for the custom page type you can set which folder the files are uploaded to at that point. The intent is so the user using the new page type form doesn't ever need to know that it's going somewhere specific, and they don't need to select the location.
I'm on v8.1.0, but as far as I know this also impacts v8.2.1 and up.

(Note: I edited some of this. I think this makes a lot of sense.)

Just to clarify my personal preference is that we also have the ability to pre-define where the images are uploaded to (a folder/sub-folder folder, within the context of c5 dashboard, not on-disk). So that way the user just needs to worry about which to upload, not where. Hope that clarifies :)


colab compatibility

closes #74
RemoteFrameBuffer._repr_mimebundle_ returns (data, colab_metadata) when running in colab. Also adds github action to publish to pypi and npm. Publishing to npm is required for running in colab since that's where it fetches widget stuff from.

Conditional imports can be a pain for tools like PyInstaller, so I'd rather avoid them 😅. I think that by creating a function that optionally provides extra metadata, like you already do, we avoid polluting the main widget class, and we can also extend it easily for other clients if needed.

Changed from conditional imports to try-except imports for colab.
@manzt, does the publish workflow look ok to you? Is that all that's required for npm publish?

Is there a way to check these things before or without running the github action?

Not that I'm aware of. That's kind of why the Jupyter Widgets ecosystem is so tough. The widget template repositories contain solutions, but it's not explicit how these things are linked – just lots of build implicitly linked build configurations between javascript and Python. Colab in particular is very difficult to test against because it imports dependencies from a CDN (like https://unpkg.com/), which is a production environment. I guess maybe you could try to proxy requests but I haven't done that myself.

I guess anywidget would be a more longterm solution, what do you think? @almarklein

Maybe something to think about if targeting multiple platforms becomes unwieldy.

Looking closer, I'm 90% sure to publish this correctly you need to add:
{
  "name": "jupyter_rfb",
  "version": "0.1.0",
  "description": "Remote Frame Buffer for Jupyter",
  "author": "Almar Klein",
  "main": "lib/index.js",
++ "publishConfig": {
++   "main": "dist/index.js"
++ },
  "repository": {
    "type": "git",
    "url": "https://github.com/vispy/jupyter_rfb.git"
  },
  "keywords": [
    "jupyter",
    "widgets",
    "ipython",
    "ipywidgets",
    "jupyterlab-extension"
  ],
  "files": [
    "lib/**/*.js",
    "dist/*.js"
  ],
  "scripts": {
    "clean": "rimraf dist/ && rimraf ../jupyter_rfb/labextension/ && rimraf ../jupyter_rfb/nbextension",
    "prepublish": "yarn run clean && yarn run build:prod",
    "build": "webpack --mode=development && yarn run build:labextension:dev",
    "build:prod": "webpack --mode=production && yarn run build:labextension",
    "build:labextension": "jupyter labextension build .",
    "build:labextension:dev": "jupyter labextension build --development True .",
    "watch": "webpack --watch --mode=development",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "devDependencies": {
    "@jupyterlab/builder": "^3.0.0",
    "webpack": "^5",
    "rimraf": "^2.6.1"
  },
  "dependencies": {
    "@jupyter-widgets/base": "^1.1 || ^2 || ^3 || ^4 || ^5 || ^6",
    "lodash": "^4.17.4"
  },
  "jupyterlab": {
    "extension": "lib/labplugin",
    "outputDir": "../jupyter_rfb/labextension",
    "sharedPackages": {
      "@jupyter-widgets/base": {
        "bundled": false,
        "singleton": true
      }
    }
  }
}

Normally, you'd just put dist/index.js in the "main" field for an NPM package, but jupyter labextension build needs this to be src/index.js to build the extension for JupyterLab. The publishConfig lets you override fields when you publish to NPM, so the main field will be dist/index.js when your publish and will allow the CDN to discover the entry point.

I guess anywidget would be a more longterm solution, what do you think? @almarklein

Well, if it makes targeting other colab platforms more easy, perhaps it's worth looking into it now. @manzt you mentioned we'd need to refactor some things. I assume most of the logic can stay in place, but it'd be mostly a matter of connecting things up?

@manzt you mentioned we'd need to refactor some things. I assume most of the logic can stay in place, but it'd be mostly a matter of connecting things up?

I haven't had the chance to look myself. But in theory things should mostly be a matter of connecting things. The scale of the refactor generally depends on how much you extend the DOMWidgetModel (or rely on backbone-specific things) because we've tried to narrow the API surface area from jupyter-widgets.
I can try to have a look, but I can't promise a timeline.

Ah, having a look. It might be a more substantial refactor than I'd imagined due to how the RemoteFrameBufferModel is constructed and communicates to the views. I'm actually not sure how this would be done currently in anywidget. Certainly something one could implement, but perhaps we can try to come up with a more reusable solution for this pattern.

Just a gentle ping.
IIUC this PR is nearly there, right? If so, I propose to wrap this up and look at the anywidget solution another time.

Just a gentle ping.
IIUC this PR is nearly there, right? If so, I propose to wrap this up and look at the anywidget solution another time.

Yes! Just waiting for @manzt to give the go-ahead on the CI and whether yarn publish as opposed to npm publish still makes it findable by colab.

yarn publish as opposed to npm publish still makes it findable by colab.

The choice of package manager shouldn't matter too much. You just want to make sure the tarball generated to be published to the npm registry includes dist/index.js. Should be able to test locally with:
cd js && yarn pack
tar -xzf <tarball>

Did some more work on this by testing locally and publishing to npm manually:

Even after modifying the version strings in js/package.json and js/lib/widget.js, it was still looking for index.js with  v0.1.0, i.e. it was looking for<EMAIL_ADDRESS>I'm not sure what else has to be modified to make it look for the right version.
I did a manual publish by keeping it at v0.1.0 to test things, the examples work. The resize handler isn't present.

The performance is extremely slow which is starting to make me think if we really want to even merge this. I'm getting 2fps!
https://github.com/vispy/jupyter_rfb/assets/9403332/6a008594-187c-40e6-8996-7a1a12738968
The bandwidth is fast, speedtest-cli from within colab gives very high upload rates, so there must be some other bottleneck. I think it might be limited the limited CPU power for jpeg encoding. We could document it and point users to other platforms if they want the full performance.

I'm going to close this, the performance is very poor and not worth the maintenance burden. I would suggest users use jupyterhub, binder, or vscode notebooks for teaching purposes.


No virtual method stop()Z in class Lcom/newrelic/agent/android/ndk/AgentNDK; or its super classes (declaration of 'com.newrelic.agent.android.ndk.AgentNDK' appears in /data/app/~~4MCTCLx4S1im03NbkvLoZA==/com.adaptedmind.mobile-n--cX-mCUAL0oqY6lZzaKQ==/base.apk!classes3.dex)

getting production crashes when upgrading from 1.4.1 to 1.4.3
NoSuchMethodError
No virtual method stop()Z in class Lcom/newrelic/agent/android/ndk/AgentNDK; or its super classes (declaration of 'com.newrelic.agent.android.ndk.AgentNDK' appears in /data/app/~~4MCTCLx4S1im03NbkvLoZA==/com.adaptedmind.mobile-n--cX-mCUAL0oqY6lZzaKQ==/base.apk!classes3.dex)

this package is not stable

This is also happening for us.

@ethanneff can you check newrelic ndk and newrelic android agent version for this? it should be 1.1.1 and 7.5.1 for react native agent version 1.4.3.

I am getting these crashes with:
"newrelic-react-native-agent": "1.4.1",
classpath "com.newrelic.agent.android:agent-gradle-plugin:7.5.0"

@jamesmcn1  we fixed this issue in 1.4.4.
you can find detailed explanation for this issue here.
https://github.com/newrelic/newrelic-react-native-agent/issues/195#issuecomment-2327422787

@ethanneff please update it to 1.4.4.

We deleted New Relic and migrated to Sentry. We cannot risk this again.


cmd: fix shell completion

I think this needs a rebase and/or base change. Completion change LGTM though.


Fix system export

Documentation says that system should be exported from styled-system but it's not.
It's imported but looks like it's never used so I moved it from import to export.

Awesome thanks!


Leverage @import tag to simplify JSDoc

Update to TypeScript 5.5 and take advantage of this:
https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#the-jsdoc-import-tag
This is yet another baby step to making the codebase more TypeScript-like.
I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

I'm guessing this won't be merged to main_v1? As the merge will likely be painful.

Correct! 😄

Did you check no dollar types are generated with the fixup?

Did you check no dollar types are generated with the fixup?

The generated playcanvas.d.ts does not seem to have any API types with $.


[Action] Action to toggle the "Automatically manage signing" flag of Xcode 8

New Issue Checklist

[ x ] Updated fastlane to the latest version
[ x ] I have read the Contribution Guidelines

Issue Description
To use "Automatically manage signing" during development, I need an action to disable this flag on the build server

Realized that Actions are not accepted ATM. Need to rewrite it as a Plugin.
https://github.com/mathiasAichinger/fastlane/tree/update-project-automatic-codesigning-action

thx @mathiasAichinger  i put those in my fastlane/actions folder (loaded with import_from_git) many thx!

I love the idea @mathiasAichinger, please provide this as a plugin and let me know once it's live. We still accept new actions, but only if they existed as plugins first and are actively used by multiple companies already. This way we make sure to only include actions that are useful for a majority of our user base 👍

as we are using it inhouse, as a custom action, but i think there are way more people needing this.
i did the plugin, based on your code, left the author intact!
https://github.com/hjanuschka/fastlane-plugin-update_project_codesigning
feel free to join and PR - i could also transfer the repo to your username, or we do a n fastlane-contrib org?
@mathiasAichinger @KrauseFx

@hjanuschka Cool 🎉 Unfortunately I haven't got time to implement the plugin, so it's great that you did it in the meanwhile :)

@mathiasAichinger  can we close this issue?

Yeah, thanks @hjanuschka 👍


Refs #31949 -- Made make_middleware_decorator work with async functions.

Reference to #31949.
This PR makes the make_middleware_decorator function able to handle both sync and async views.

Note: This PR is just a proof of concept at the moment, using gzip_page as an example decorator to make sure that tests pass. To turn this into a proper PR we would still need to:

Add tests for all remaining decorators which use make_middleware_decorator
Add documentation for all make_middleware_decorator decorators

@LomaxOnTheRun Do you have time to keep working on this?

@felixxm this is now ready to properly review. The first commit does all of the functional changes (inc. tests and docs), and the second commit has a go at removing some of the (heavily) duplicated code caused by adding the async path in the first commit. I've kept it in a separate commit so:

It's easy to see what I've done
It's easy to remove if we don't want to do it

I'm very happy to squash both commits into one if/when we decide we want to keep them both.

Rebased.


ChatGPT-Next-Web site is laggy

System Details

OS: macOS 14.5
Thorium Version 126.0.6478.231 (Official Build) (arm64)

Problem
Browser is laggy when visit NextChat or self-hosted NextChat sites.
Specifically, if the chat window is not fullscreen, it will occur. If you click fullscreen button on top-right, then it became normal.
Additional Notes
I've also tried ungoogled-chromium, Safari and Firefox. They're fine.

Similar problems have occurred at other such sites.
Builder.io
netris.io
These worked fine in one previous version (124).
System Details

OS: macOS 13.5.2
Thorium Version 126.0.6478.231 (Official Build) (arm64)


[styled-engine] Fix GlobalStyles not to throw when no theme is available

Fixes the following issue found in https://github.com/mui-org/material-ui/pull/24489#issuecomment-769059791

Looks good to me unless the visual regression tests fail.

No visual regressions found, will merge should be pretty safe change :)

Looks good to me unless the visual regression tests fail.

No visual regressions found, will merge should be pretty safe change :)


[PROBLEM] 18. 4Sum

Difficulty
Medium
Problem Description
Given an array nums of n integers, return an array of all the unique quadruplets [nums[a], nums[b], nums[c], nums[d]] such that:

0 <= a, b, c, d < n
a, b, c, and d are distinct.
nums[a] + nums[b] + nums[c] + nums[d] == target

You may return the answer in any order.
Example 1:
Input: nums = [1,0,-1,0,-2,2], target = 0
Output: [[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]

Example 2:
Input: nums = [2,2,2,2,2], target = 8
Output: [[2,2,2,2]]

Constraints:

1 <= nums.length <= 200
-109 <= nums[i] <= 109
-109 <= target <= 109

Link
https://leetcode.com/problems/4sum/

Please assign me the work.I want to do this work.


doc: metion for the Java 21's new switch statement in document

#979

Maybe we just attach the code directly in the doc, then there will be no error.

I'll try later.

I'm not sure about the positioning of this doc. The Classic Actors page is basically regarded as documented an effectively deprecated usage pattern. This change also goes against the norm in this .md file which allow Scala users to just see Scala code snippets. I may be wrong about how this displays and will check the docs again after the nightly build runs.
I think we would be better off having a dedicated Java 21 page and having links to that from the Classic and the Typed Actors pages. Maybe also useful to link to this from the Stream pages.
wdyt @mdedetrich

I think this is fine. And the classical actor will not go anywhere, which is very high performance.
For the doc , we can always improve it later, once we get the doc published with jdk 21, we can even let it compile checked.
I can do the split tomorrow, but as this is his first contribution, we should be more nice and welcome.

And even now, the scala user can refs to javadsl packages , that should not be a big problem, paradox support tagging, I cab improve that.

@pjfanning @mdedetrich I just chatted with the origin contributor, I will take care it now, I just opened up my laptop and it's 1.49 AM

@He-Pin there is no hurry to remedy this. In fact, I think we need to slow things down. I think PRs should be open for a few days before they are merged. I have sent an email to dev list with this proposal.

@pjfanning I have to sleep now, I think it's fine now, new contributors may not know everything about the toolchain, I think that's ok.


1D fft?

Not sure this is within the scope of this project, or whether this is on a roadmap, but would it be nice to also wrap 1D FFTs? Something like spectral-lib (https://github.com/jnhwkim/spectral-lib) with PyTorch?

1D and 3D FFT would both be great additions, though I haven't implemented them yet since I haven't had an immediate need for them.
I believe this would be possible by inserting a few well-placed macros (using the pytorch generics).

Actually, I went ahead and added the macros, so there is now both 1D and 3D FFT support.

Thanks a lot!


Edge support

According to https://docs.microsoft.com/en-us/microsoft-edge/extensions/guides/porting-chrome-extensions, extension code that's written for Chrome should be easily portable to Microsoft Edge. This is further supported by the fact that Edge implements the WebExtension framework, the same API used by the newest Firefox versions. Could this extension be ported to Edge?

Hey @benjaminglass1 thanks again for sharing feedback! We've received similar requests from users via other channels so it's already on our radar! We usually handle suggestions like this internally so I'll be adding yours to the list.
Thanks again!

So we already publish to the Edge store (https://microsoftedge.microsoft.com/addons/detail/duckduckgo-privacy-essent/caoacbimdbbljakfhgikoodekdnlcgpk) but due to Edge removing the extension heavily we don't really promote it due to poor user experience.


First occurrence of require('') in bundle is not getting literalified

Hi,
I have a project in which I use react.js and require('react') is what I want to literalify. So I put the following into my package.json file:
"literalify": {"react": "window.React"}
I use browserify to create the bundle on the fly, which works except for this bug.
I have many occurrences of
var React = require('react'),
in my source files and all of them are getting replaced with
var React = window.React,
as expected, except the very first one!
Here is how I run browserify:
browserify({
	transform: [reactify]
})
.external('react')
.require('./ordering.jsx')
.require('./cartStore.js')
.transform(literalify.configure({'react': 'window.React'}))
.bundle()

I have no idea why literalify is not replacing the very first require('react') with window.React which occurs in my ./ordering.jsx file. I spent hours investigating this but I got nowhere so far.
If I send you my files, can you please take a look at them?
Is it possible that it is related to the file extension .jsx being used on that file instead of simply .js ? I must use .jsx file extension because of react.js / JSX ...

Well, I just figured it out. I had to add {global: true} option to the transform like this:
.transform({global: true}, literalify.configure({'react': 'window.React'}))`

The above fixed it. I wish I didn't spend 5 hours on this... :( May this info should be included in your browserify example on your main page?

That's odd. global: true should only be necessary if you need to convert third-party modules (i.e. files that reside in node_modules). I'm more inclined to believe that it has to do with the file extension and/or a conflict with the reactify transform.
Thanks for the report. I'll have to investigate this further.

@tssajo I had the same problem and adding global fixed it like you said. Thanks!
Below is my code
index.js
var browserify = require('browserify');
var literalify = require('literalify');
var filename = process.argv[2];

if (!filename) {
    console.log('');
    return;
}

browserify()
    .add(filename)
    .transform(
        {global: true},
        literalify.configure({
            'react': 'window.React',
            'react-dom': 'window.ReactDOM',
        })
    )
    .bundle()
    .pipe(process.stdout);

Usage
node index.js "path/to/my/main.js" > output.js

+1 same problem/solution here

Well, it sucks that after one and a half years I first reported this problem it is still there. So much happened since then. For example, I no longer use, or would ever touch Nodejs, I've been using Go ("golang") instead for the past year or so. I will never look back to the crappy world of bug-ridden Nodejs world! ;)


Update README.md

Hey, I came across this packages after searching the internet for a good directive to use with Disqus, and I think this is the best one so far. I hope to make it even better by first editing the README.md.
I made some edits to the 'Getting Started' section by adding steps. I also added code examples for the steps. I kept only the provider method for setting the shortname.

Webber

Thanks for the changes!


misc improvement

update to use the new POM properties
allow data-plane to use remote README
bug fix on LLC swagger README output, allow multiple JSON as input-file

I probably will go ahead with the merge, as mgmt is starting to release the delayed SDKs for Ignite.
If there is suggestion about remote README in data-plane (though the positive part of not allow remote README, is that we lower the risk of caller loading untrusted code), I will take follow-up PRs.


fcitx5-custom-pinyin-dictionary: init at 20240101

Description of changes
fcitx5-custom-pinyin-dictionary: provides pinyin dictionary for fcitx5 users.
Source: https://github.com/wuhgit/CustomPinyinDictionary

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

No license and source files do not persist long-term.


doesnt work WkWebview > 2.0

normalizeURL is deprecated. it says i should use window.Ionic.WebView.convertFileSrc() instead.
https://github.com/ionic-team/cordova-plugin-ionic-webview

closed with #189


Not able to go back to parent folder

Describe the bug
I try pressing h and backspace but I am unable to go back to parent folder.
To Reproduce
Steps to reproduce the behavior:

Go to a folder
Enter a subdirectory
Try pressing h or backspace
Unable to return

Expected behavior
I should be able to return to the parent folder
System information (please complete the following information):

OS: MacOS
Version 10.12.7

It seems to be a problem with variable names
I didn't see this problem after I updated it to toml file
My previous version binary file also had this problem

i will try to rebuild my binary file.

yeah, now there is no problem. Thank you very much


Improve thin-edge.io documentation structure

As a user of thin-edge.io I want to have a better structured documentation :

I am confused between How to and Tutorials - here I need a clear path on how to get started with thin edge and a structured walk-through on how to set up and use all features
as an embedded engineer I am currently lost where to find which information (only the search can help) so I need an overview and better structure on how to extend thin edge
Additional points: We need to add links to tutorials to find further info, we need to have a single point of truth for our doc structure and clean-up the links

Outcome: We need to have a clear proposal of what we want to change in the current doc, review this with stakeholders and move to delivery.

Sure the documentation has to be improved but I disagree on many points.

How to guides and tutorials need to be combined, no difference

Making a difference between tutorials and howtos is a key. Howtos give the details once you know what to do. Tutorials give an overview of the things that can be done and how they relate.

See the documentation system also known as the Diátaxis.
What difference between a detailled guide and a tutorial? between a detailled guide and a reference guide.
The issue I see with the current howtos is that they have been written with a 1-1 relationship with the code changes. There are 4 howtos about installations and they are listed by date of creation. Having a single one or grouping them would help.
The tutorials have all been written for the same user: the device owner. Nothing or too few for a developer who want to extend thin-edge and implement an agent with thin-edge. The issue here is far beyond the doc: all the features have been designed and implemented for the device owner and not for an agent developer. This has badly impacted the documentation but also the features (somehow this is why we have so many features where you need to ssh the device). We need to address the root cause here and have a better understanding of who is the user.

 Less text definitely not. The text needs a better organization, not to be removed. More code samples might help.

Tickets and discussions regarding documentation:

Documentation improvement ideas
Simplify the process to write specifications and user documentation
Document programmatic example for sending telemetry data from thin-edge
Document commonly seen issues with remote operation handling with resolutions
Document commonly seen Cumulocity connectivity issues with resolution
Improvement of section "How to connect external devices" regarding needed parameters
Improve user experience for first-time thin-edge.io users

I think what is needed are clear types of documentation like Quick Start Guides, Concepts/References/Informations, Tutorials & How to Guides. We should have more top level categories like Quick Start, Installation, Configuration, Development, Build, Extensions etc. and on all categories you have all kind of concepts, tutorials & How To documentation.
Especially for concepts we need more graphical content.
That would make it much easier to find the relevant content. I will come up with a proposal.

Not sure where to document so I do it here. My proposed documentation structure:

We need comprehensive a Getting Started Guide : https://thin-edge.io/#!get-started is not enough and the How-Tos and Tutorials are too unstructured. The Getting Started Guide should contain concepts and sub chapters like:
1.1 Installation --> Concepts of thin-edge.io and how to install it on a reference platform
1.2 Configuration --> Describe necessary configuration steps, refer to complex configuration in docu
1.3 Run --> Run it on a reference device
1.4 Develop & Build --> Describe how to contribute and make custom builds
1.5 Extend --> Describe how thin-edge.io can be extend

The main goal should be to have a full walkthrough from first touch point to having an (extended) example running on a device. Here we can reuse or refer exiting How-To and Tutorial Guides. Especially the concept part must be enhanced as the current guides are too hands-on less concept-wise.
It should be the first touchpoint document for all who have no experience with the thin-edge at all but want to try it out.

We can keep the tutorials and how-to but should add categories to make clear what is in focus of the how-to guides. How to send MQTT messages should not be mixed with How to install thin-edge. First "Transport" Second "Installation" Category.

We should add a new block concepts where we explain the concept of the thin-edge.io which we can re-use and refer in the quick start guide. Make sure the concepts are well and graphically explained. Examples of to be documented concepts: "thin-edge data model, thin-edge runtime, thin-edge cloud transport, thin-edge mapper etc."

As a reference have a look here :https://docs.microsoft.com/en-us/azure/iot-edge/?view=iotedge-2020-11 (left navigation tree).

Once we have a clear concept how we package, run & monitor all components of the thin-edge.io we need a clear & full API documentation which includes all topics/endpoints/interfaces and messages which can be used to perform the previous mentioned task

It's a good point to have a "getting started guide" that address all the main aspects of thin-edge including how to extend it (and goes beyond what was available version 0.1!).
Indeed I prefer the category proposed by @switschel : Install/Configure/Run/Develop/Extend rather than what we have today with user vs developer documentation (that makes little sense when the users are developers). I have a question though. What difference do you make between Develop and Extend ? You mean using thin-edge to develop an agent vs updating the rust code base of thin-edge?
About the proposal for a new block about concepts, I would like to stress that we have one - that for some mysterious reasons has been hidden and unmaintained : architectur.
For the API, I can only agree. Currently the API, MQTT topics and message payload is scattered all over the howtos. We need a clear and comprehensive API documentation.

Difference between Develop vs Extend like you assumed:
Develop/Contribute to thin-edge (core) project.
Extend => Use APIs to develop Plugins, unofficial Extensions (not part of the thin-edge.io core project).

Most important outcomes of discussion om 30/8:

agree on getting started tutorial as proposed by Stefan
agree on well-written concepts of thin-edge.io are missing. Concepts guide must be extended with (schematic)images, see for an example cumulocity concepts guide.
Not sure who will be the owner of the documentation, maintenance can be a lot of work.
Tutorial: begin to end (to test)
How To: testcase
Hans to create new md-page ( private) to set up new structure and fill with existing text. Next meeting discussion about this, and refine. Is set up here: https://github.com/thin-edge/doc-structure
Stefan adds to the new structure
Didier informs team about work for new documentation structure.
when structure is definitive, whole team should work on documentation
issue with available time to work on new documentation

Hans to create new md-page ( private) to set up new structure and fill with existing text. Next meeting discussion about this, and refine. Is set up here: https://github.com/thin-edge/doc-structure

Why a private work-in-progress? It's really important that any can have a say.
Why a new repository? Having another repository for the documentation makes sense only another team is responsible of it - which is not the case for now.

Some input from our Priorities meeting:

Focus on How To, therefore we can have a look at previous meet-up topics like (node-red, codesys, python, analytics etc.
Hans and Stefan work closely together on structure
Next meeting, outcome should be set of tasks

create feature branch and later on merge to new main branch
merge in agile approach

@didier-wenzek What is your proposal? How should set up the new documentation without interfering the old one? should we create a new branch? PR?

@didier-wenzek What is your proposal? How should set up the new documentation without interfering the old one? should we create a new branch? PR?

It's important to have this doc refactoring happening in the same repository as the code, so the team can update the content in parallel. Look for instance this PR that updates the documentation accordingly to a fix.
So we need to improve the documentation using regular PRs (on branches from a writer fork of the main repository).
I would also avoid to have a single huge PR. Things like merging all the install Howto in a single one could be a PR. Adding a getting started guide would be another.

Ok, I think we did it right so far. I forked the thin-edge repo and made make changes to my forked repo in a new folder called "new_docs" so we don't interfere with the existing documentation.
This structure (md) can be merged to thin-edge so you can review it and start adding content in the same folder. Later on we can replace "docs" with "new_docs".

Also add all relevant MQTT topics to the documentation (reference)


How to initialize an FieldArray?

hi erikras,
i got an sort of datas, array object, but when i try to initialize the FieldArray, i found the FieldArray passed 'fields' props to it's component,and manage the array of fields through 'fields' ,like push() and remove() methods. so i confused, how can i passed my datas to FieldArray and initialize the component , also manage those datas using 'fields' methods(remove() and push()...etc...) ?

I dint get your question correctly, but see if this is what you are looking for. You can pass your custom array as a prop in FieldArray.
myPersonalArray =['red', 'blue','green']
<FieldArray
name="FieldArrayName"
myPersonalArrayProp={myPersonalArray}
component={this.yourComponentName}
/>
you can access your personal array as below in stateless fun:
yourComponentName= ({fields, myPersonalArrayProp}) => {
console.log('where is my personal array??', myPersonalArrayProp);
}
For push and remove, you need to provide a button in your component function and onClick either push or remove from field like fields.push({})
hope this helps. for more details refer to the FieldArray example in redux-form documentation

I do have a question though, if I have my custom array and I want to control rendering FieldArray based on length of my custom array, how would I do that? I tried to push into fields until the length of my custom array like below but my code went in infinite loop:
yourComponentName= ({fields, myPersonalArrayProp}) => {
myPersonalArrayProp.map((element, index)=>{
fields.push({});
})
}
any thoughts???

@swp44744 thanks for answer.
I have some thoughts now, i'll try it.

Thank you Senhor, I will try it

@gustavohenke I think I can use componentWillReceiveProps but is there a way to access fields outside the FieldArray component??

is there a way to access fields outside the FieldArray component??

You can read the value with a formValueSelector()
You can write the value by dispatching actions

Thanks for the response @erikras. I tried doing something like below:
const selector = formValueSelector('formName');
function mapStateToProps(state) {
  let fieldArrayObject = selector(state,'fieldArrayName');
  return {
    fieldArrayObject
  }
}
But as FieldArray's fields does not have any element in it. formValueSelector returns undefined. I can initialize the fieldArray with an empty object to begin with, but for some reasons I didn't wanted to do that, as I want to render FieldArray exact times as my custom array length. let me try though.

This question can be closed!!!

@swp44744 Did you ever figure this out?

@swp44744 Yeah i wonder too, running at the same issue while init a select in FieldArray

@Tiega91 I figured out the problem in my case. It was because I was using fields.map (also known as fields.forEeach) thinking I was actually using the plain old javascript map function but I was in fact using this http://redux-form.com/7.0.4/docs/api/FieldArray.md/#iteration
I first had to use fields.getAll() to receive a regular array and then loop through it normally. In essence, if you're trying to just render your fields, it seems to me like fields.map is an easy way of doing that, but if you're trying to loop through your values to do something other than render the s in your , then make sure to use fields.getAll()

@rodpatulski Holy Moly

fields.map (also known as fields.forEeach) thinking I was actually using the plain old javascript map function but I was in fact using this http://redux-form.com/7.0.4/docs/api/FieldArray.md/#iteration

haha, this should be a big warning somewhere it was also my mistake. Now i have the issue that the "input.name" is not set correct.
const CommunicationCategories = props => {
    const { input, meta, communicationCategories, ...rest } = props;
    return (
       <select className="form-control" {...input} {...rest} {...meta}>
           {communicationCategories.fetched &&
               communicationCategories.communicationCategories.map(function (cc, ccindex) {
                   return <option value={cc.ID} key={ccindex}>{cc.Name}</option>
               })
           }
       </select>
    )
};

let Communications = ({fields, communicationCategories}) => {
    let cF = [];
    if(fields.length > 0) {
        cF = fields.getAll();
        return (

                {
                    cF.map(function (com, index) {
                        return (

                                    <Field component={CommunicationCategories} communicationCategories={communicationCategories} className="form-control" name={`${com}.CategoryID`} >

                                    </Field>

                                    <Field component="input" className="form-control" name={`${com}.Value`} />

                                    <Field component="input" className="form-control" name={`${com}.Note`} />

                        )
                    })
                }

        )
    } else {
        return (

        )
    }

};

This is how i do it. BUT the select aka "CommunicationCategories" have now ALL the name:

name="[object Object].CategoryID"

:(

Sorry for late reply... glad it worked for you.. let me know if you still have issues I will try to help.

@Tiega91

Did it as follow:
<Field component="input" className="form-control" name={fields.name+"["+index+"].Value"} />

I found that all I had to do was
<FieldArray name={${curInventory}.nightlyInventoryAmt} component={renderAmounts} key={index} containerName={${curInventory}.containerName}/>
{fields.map((curAmount, index) => 	 		<Field component={SimpleField} name={curAmount} type="number"/> 		 )}
within my fields.map iterator as you said, the output of which was ''. I have run into trouble before trying to mimick the naming structure of what a  outputs without actually using a  as a side note.

@rodpatulski yeah you are right, don't know why it didn't work like that on the first try.
@swp44744 But now i have the issue that the values from the dynamic filled selects within an FieldArray are not changing. Its selecting the correct value with initValues but not changing the value afterwards and when adding a new Array the value from the select stay 0.
I know this is not a stackoverflow but i hope you still can help me >.<
This i how i create the select:
 fields.map(function (com, index) {
                        return (

                                    <Field component="select" className="form-control" name={`${com}.Category.ID`} >
                                        {communicationCategories.fetched &&
                                            communicationCategories.communicationCategories.map(function (cc, ccindex) {
                                                return <option value={cc.ID} key={ccindex}>{cc.Name}</option>
                                            })
                                        }
                                    </Field>

This is also how i create "dynamic" selects outside of FieldArrays but they are working.

For those who is searching for solution to add fields dynamically, I was able to do, but huge boilerplate codes is there and may be not efficient . There maybe better ways...
My use case is, when user select countries, it should load players with some form fields.

component
import React, { Component } from 'react';
import { connect } from 'react-redux';
import _ from 'lodash';

class TeamFormComponent extends Component {

    constructor(props, context) {
        super(props, context);
    }

    findIndex(arr, key, value) {
        return _.findIndex(arr, o => o[key] === value);
    }

    update(value) {
        const fieldLength = this.props.fields.length;
        if (fieldLength > 0) {
            const hasValue = this.findIndex(this.props.fields.getAll(), 'index', value.index);
            if (hasValue === -1) {
                this.props.fields.insert(value.index, value);
            }
        }
        else {
            this.props.fields.insert(value.index, value);
        }
    }

    componentWillReceiveProps(nextProps) {
        if (nextProps.selectedTeams !== this.props.selectedTeams) {
            const selectedTeamWithIndex = nextProps.selectedTeams.map((data, index) => {
                return { ...data, ...{ index } };
            });

            if (this.props.fields.length > selectedTeamWithIndex.length) {
                this.props.fields.getAll().map((data, index) => {
                    if (selectedTeamWithIndex[index] === undefined) {
                        this.props.fields.remove(index);
                    }
                    else if (selectedTeamWithIndex[index].index !== index) {
                        this.props.fields.remove(index);
                        this.update(data);
                    }
                });
            } else {
                selectedTeamWithIndex.forEach(data => this.update(data));
            }
        }
    }

    render() {
        return (

Total Fields Item {this.props.fields.length}

        );
    }

}

function mapStateToProps(state) {
    return {
        teams: state.teamPlayers
    };
}

TeamFormComponent = connect(mapStateToProps)(TeamFormComponent);

export default TeamFormComponent;

usage
<FieldArray
        name="teams"
        component={TeamForm}
        props={{selectedTeams: selectedTeams}}
/>

hope it helps others, thx


Added write dataset to ts file functionality

Reference Issues/PRs

This is partly addressed to #434 which is a functionality requested by @TonyBagnall
What does this implement/fix? Explain your changes.

I have implmented a new function that can writes a dataframe to a .ts file which is very useful for saving transformed dataset,
along with some unit testing.
Does your contribution introduce a new dependency? If yes, which one?
N/A

PR checklist

For all contributions

[ ] I've added myself to the list of contributors.
[ ] Optionally, I've updated sktime's CODEOWNERS to receive notifications about future changes to these files.
[ ] I've added unit tests and made sure they pass locally.

For new estimators

[ ] I've added the estimator to the online documentation.
[ ] I've updated the existing example notebooks or provided a new one to showcase how my estimator works.

Any other comments?

Just a side note, the function right now does not support timestamp data, as I have not seen an example of it in the dataset nor in the docs. I have also mention this in the doc string.

I think the code quality issue is just some of my code in experiments.py and not relevant to this PR. The travis issue may be caused by the fact that @whackteachers does not have travis installed on his fork? We encountered something similar with tsml.

The travis build didn't error, just stalled, I re-started and should pass now.
To fix the code-quality check, see this post: https://gist.github.com/mloning/6f4b8d412743968af6b2da8b4eaaf2bf

The travis build didn't error, just stalled, I re-started and should pass now.
To fix the code-quality check, see this post: https://gist.github.com/mloning/6f4b8d412743968af6b2da8b4eaaf2bf

I have ran pre-commit before I push and it was fine, also the command given is not working, give smth like --name-only master is not a valid parameter error

Okay happy to ignore this, since it's only on the contrib/experiments.py file

Hi @whackteachers, I just merged another big PR which created a merge conflict here, once you resolve it, we can merge this PR too. Let me know if you need help with that!

Alright, agree, let's merge this PR first and work on the more generic function in a separate PR.
One of the travis build stalled again, just restarted it now and will merge later today once it passes.
Thanks again @whackteachers - great work!


main.ts/polyfills.ts errors in build for multi-app project

Versions
Angular CLI: 1.6.3
Node: 8.9.1
OS: win32 x64
Angular: 5.1.3
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.6.3
@angular-devkit/build-optimizer: 0.0.36
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.42
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.3
@schematics/angular: 0.1.11
@schematics/schematics: 0.0.11
typescript: 2.4.2
webpack: 3.10.0

Repro steps
Hello.  I am using a multi-app configuration for Angular via the CLI (https://github.com/colinparker99/AspNetAngularApp).  The setup is that I have a folder that contains common files (polyfills.ts, tsconfig.app.json, etc.) that are shared across all apps and are referenced in each app config in the angular-cli.json file.  This was working for an existing project that was using the 1.6.0-rc.0 CLI version.  Here's a snippet of that project's package.json file:
  "devDependencies": {
    "@angular/cli": "^1.6.0-rc.0",
    "@angular/compiler-cli": "^4.2.4",
    "@angular/language-service": "^4.2.4",
    "typescript": "~2.3.3"
  }

When I created a new multi-app project against the 1.6.3 version of the CLI, I now get the following error when I build it:
ERROR in ./Group1/Feature1/Client/main.ts
Module build failed: Error: D:\SourceCode\Personal\Practice\Angular\AspNetAngularApp\AspNetAngularApp\Features\Group1\Feature1\Client\main.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.
    at AngularCompilerPlugin.getCompiledFile (D:\SourceCode\Personal\Practice\Angular\AspNetAngularApp\AspNetAngularApp\Features\node_modules\@ngtools\webpack\src\angular_compiler_plugin.js:653:23)
    at plugin.done.then (D:\SourceCode\Personal\Practice\Angular\AspNetAngularApp\AspNetAngularApp\Features\node_modules\@ngtools\webpack\src\loader.js:467:39)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
 @ multi ./Group1/Feature1/Client/main.ts

I've included the folder structure and configuration settings that I have to reproduce this, which matches the old project using the 1.6.0-rc.0 version of the CLI.  The only way I can get the new apps building is if I copy the polyfills.ts and tsconfig.app.json files local to each app and adjust the CLI config file accordingly, but that defeats the purpose of the shared config that was working before.
Folder structure
Root folder:

.angular-cli.json
package.json
tsconfig.json

Root/Shared/Client/Config folder:

polyfills.ts
styles.css
tsconfig.app.json
typings.d.ts

Root/Shared/Client/Config/environments folder:

environment.prod.ts
environment.ts

Root/Group1/Feature1/Client folder:

index.html
main.ts

Root/Group1/Feature1/Client/app folder:

app.component.html
app.component.ts
app.module.ts

CLI App configuraton
  "apps": [
    {
      "name": "group1-feature1",
      "root": "Group1/Feature1",
      "appRoot": "Client/app",
      "outDir": "dist/Group1/Feature1",
      "assets": [],
      "index": "./Client/index.html",
      "main": "./Client/main.ts",
      "polyfills": "../../Shared/Client/Config/polyfills.ts",
      "test": "test.ts",
      "tsconfig": "../../Shared/Client/Config/tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "feature1",
      "styles": [],
      "scripts": [],
      "environmentSource": "../../Shared/Client/Config/environments/environment.ts",
      "environments": {
        "dev": "../../Shared/Client/Config/environments/environment.ts",
        "prod": "../../Shared/Client/Config/environments/environment.prod.ts"
      }
    },
    ...

As mentioned, I can only get it working now if I create a copy of the shared polyfills.ts and tsconfig.app.json into the feature's folder structure.  For example, this works:
Root/Group1/Feature1/Client folder:

index.html
main.ts
polyfills.ts
tsconfig.app.json

CLI App configuraton
  "apps": [
    {
      "name": "group1-feature1",
      ...
      "polyfills": "./Client/polyfills.ts",
      "tsconfig": "./Client/tsconfig.app.json",
      ...
    },
    ...

Observed behavior
ERROR in ./Group1/Feature1/Client/main.ts
Module build failed: Error: D:\SourceCode\Personal\Practice\Angular\AspNetAngularApp\AspNetAngularApp\Features\Group1\Feature1\Client\main.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.
    at AngularCompilerPlugin.getCompiledFile (D:\SourceCode\Personal\Practice\Angular\AspNetAngularApp\AspNetAngularApp\Features\node_modules\@ngtools\webpack\src\angular_compiler_plugin.js:653:23)
    at plugin.done.then (D:\SourceCode\Personal\Practice\Angular\AspNetAngularApp\AspNetAngularApp\Features\node_modules\@ngtools\webpack\src\loader.js:467:39)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
 @ multi ./Group1/Feature1/Client/main.ts

Desired behavior
I'd like this to function as before and I can point each app back to the shared polyfills.ts and tsconfig.app.json files so that I don't have to maintain multiple copies of the same files in each app.
Please let me know if you need any more info.  Thanks, Colin.

Hi Guys, any one for this error , i have change directory name and deleted many times ng_modules folder , then used npm install command , nothing happened  for the below error , please help me to solve this.
ERROR in ./src/main.ts
Module build failed (from ./node_modules/@ngtools/webpack/src/index.js):
Error: D:\AngularProjects\AngularRouting\Routing\src\main.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.
at AngularCompilerPlugin.getCompiledFile (D:\AngularProjects\AngularRouting\Routing\node_modules@ngtools\webpack\src\angular_compiler_plugin.js:752:23)
at plugin.done.then (D:\AngularProjects\AngularRouting\Routing\node_modules@ngtools\webpack\src\loader.js:41:31)
at process._tickCallback (internal/process/next_tick.js:68:7)
ERROR in ./src/polyfills.ts
Module build failed (from ./node_modules/@ngtools/webpack/src/index.js):
Error: D:\AngularProjects\AngularRouting\Routing\src\polyfills.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.
at AngularCompilerPlugin.getCompiledFile (D:\AngularProjects\AngularRouting\Routing\node_modules@ngtools\webpack\src\angular_compiler_plugin.js:752:23)
at plugin.done.then (D:\AngularProjects\AngularRouting\Routing\node_modules@ngtools\webpack\src\loader.js:41:31)
at process._tickCallback (internal/process/next_tick.js:68:7)
thanks.

Thanks for reporting this issue. This issue was originally reported a long time ago and since then we've had many releases, one of which might have addressed this problem. Please update to the most recent Angular CLI version.
If the problem persists after upgrading, please open a new issue, provide a simple repository reproducing the problem, and describe the difference between the expected and current behavior.


Nothing Runs after parameters issue

Hey I'm having an issue where lets say I have
import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
              help='The person to greet.')
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        click.echo('Hello %s!' % name)

if __name__ == '__main__':
    hello()
    print("123")

print("123")

Neither of those print 123 statements work at all. Pretty much after calling hello(), nothing runs. I'm using python3

That's intended behavior; click terminates after running a command. https://github.com/pallets/click/blob/master/click/core.py#L709


Smart auto-generation of step definition .js files/stubs

Hi,
Is there a way to auto-generate the step definitions based on the feature files?

If you are working from VSCode (not sure if this exists for other IDE's) there is an extension called Cuke Step Definition Generator. I use it and it works great.

https://github.com/agoldis/sorry-cypress
This works quite good.

Due to personal reasons, the previous maintainers of this package are stepping down and handing the reigns over to me, a long-time contributor to the project and a user of it myself. This is a responsibility I'm very excited about. Furthermore, I'd like to thank @lgandecki ++ for all the work that they've done so far.
Read more about the transfer of ownership here.
The repository has however moved and all outstanding issues are being closed. This is not a reflection of the perceived importance of your reported issue. However, if after upgrading to the new version, you still find there to be an issue, feel free to open up another ticket or comment below. Please make sure to read CONTRIBUTING.md before doing so.


Content style guide: when should something be an action button

(bringing over from jira)
Check if we describe how to determine when to use an action button in our handbook. Requested by Angie.

@LizNobriga Think the link I shared earlier satisfies this issue and we can consider it closed?

Yes.


get whole header

Hello
Is there a possibility to print out the whole original header (as string, not as array)?
Dadrix

Hi @Dadorix -- you should be able to call $part->getHeader('Content-Type')->__toString() if that's what you mean.

Please re-open if I misunderstood.


ruby_requirement: check for ruby.h

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[x] Have you successfully run brew tests with your changes locally?

Addresses https://github.com/Linuxbrew/homebrew-core/issues/1798

Note that RubyRequirement has change in Homebrew/brew 1.1.11, which hasn't yet been merged into Linuxbrew. See https://github.com/Homebrew/brew/pull/2083/files

Do all brew installations come with a portable-ruby? This is all pointless if so.

Do all brew installations come with a portable-ruby? This is all pointless if so.

No. Mine does not, for example.
It will be installed automatically if your system Ruby is not new enough, but it is by no means installed on all Linuxbrew installations.

The brewed portable Ruby is used on systems whose host Ruby is < 2.0.

@sjackman
I added the Ruby bin directory to the PATH. However the change does not take affect for the which_all command. Do you see anything wrong?

@sjackman
prepend_path is ignoring new_enough_ruby since it is not a directory
See https://github.com/Homebrew/brew/blob/master/Library/Homebrew/extend/ENV/shared.rb#L95

Ah, I see which_all uses ORIGINAL_PATHS...

which_all uses PATH, no?
https://github.com/Linuxbrew/brew/blob/master/Library/Homebrew/utils.rb#L314

Yes but requirement.rb overrides it on line 154

Ergh. I wonder why it does that. In any case, please squash and rebase.

@sjackman how's that?

@sjackman I squashed the ruby.h checks. I put them back now.

The CI failure is due to a big that I've fixed just now. Can you please rebase onto master?

Codecov Report

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

@@            Coverage Diff             @@
##           master     #269      +/-   ##
==========================================
- Coverage   70.61%   70.59%   -0.02%
==========================================
  Files         341      341
  Lines       17694    17698       +4
==========================================
  Hits        12494    12494
- Misses       5200     5204       +4

Impacted Files
Coverage Δ

requirements/ruby_requirement.rb
36.84% <0%> (-4.34%)
:arrow_down:

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 cb65088...1deeb3d. Read the comment docs.


feature: add option to log both to pomodoro_log.md and daily note simultaneously

Hi I would like to log both to my daily note and also to one centralized logging note at the same time.
Currently, if I specify a central log file and select the option to log to daily note, it only logs to my daily note.
Amazing plugin by the way!

On my list! I hope to get to bugfixes and new features once I'm done with school end of May.


Light filters/blockers

A prerequisite patch would be an easy way to define shapes via signed distance fields in a shader:
https://developer.blender.org/D6464 (it is WIP but this could be due to Blender integration, Cycles part of the code could be solid already).
I did a test by using the Geometry shader to output position into a light shader to attempt to access world-space position data in that context however this doesn't access the scene geometry data unfortunately, so I think this might need to be achieved in some other manner. Perhaps a dedicated way to specify light filters would be the preferred development moving forward (I'm leaning on your expertise @skwerner what you think is the best approach).
Once there is proper access to position data, using the SDF node to define blocker/filter/gobo shapes as well as plugging in other shader types like textures, we can apply light filters at a per-light basis to multiply against and link them in via USD schema:
https://rmanwiki.pixar.com/display/REN23/Light+Filters
Cheers

World-space from light context!


About and More tools should be icons, and on the same line

It seems to me, that we forgot to close this issue, as I do believe that it does not exist anymore.
Icons in both panes and in smallWindow mode look ok.


__mf__virtual seems to be an ES Module but shipped in a CommonJS package

I am getting this when running vitest for testing:
SyntaxError: Unexpected token 'export'
 ❯ Object.<anonymous> ../node_modules/__mf__virtual/host__loadShare__react__loadShare__.js:7:27

Module /project/node_modules/__mf__virtual/host__mf_v__runtimeInit__mf_v__.js:7 seems to be an ES Module but shipped in a CommonJS package. You might want to create an issue to the package "__mf__virtual" asking them to ship the file in .mjs extension or add "type": "module" in their package.json.

As a temporary workaround you can try to inline the package by updating your config:

// vitest.config.js
export default {
  test: {
    server: {
      deps: {
        inline: [
          "__mf__virtual"
        ]
      }
    }
  }
}

I have not encountered this error, if necessary you can send a PR to automatically complete this setting in the config hook

Did the results from running npm run dev-vv and similar examples work correctly for you?

running in dev and even production builds are fine. The issue only happens when running tests via vitest. vitest itself puts the blame on the package not correct indicating that it is ESM so I posted here instead of there. vitest's runtime is node rater than the browser so I think there is an issue requiring/importing the remote there.

I understand. Is setting deps.inline currently working as expected?


Dialog with Text Dialog Unexpected Id

I'm trying to fire up an app.alert with a text box and the app crashes
Exception raised: NameError: uninitialized constant `Alert_edit_text'
BluePotion is looking for R::Id::Alert_edit_text but our app hasn't defined that.
https://github.com/infinitered/bluepotion/blob/master/lib/project/alert_dialog/alert_dialog.rb#L68
What's the best strategy here?  Should I define that constant in the app?  Should we pass it in as part of the interface?  Can BP autogen it?
Thanks in advance.

Hrmmm.  Checking into this now.


Creation of a held-out test data for active learning training phase validation

Description
I've been thinking a ways to evaluate out active learning training phases (mentioned in #29). We have currently trained a baseline model based on the good quality (✅ ) segmentations and we are using this model for predicting the SC on other images and then manually correct them on need basis.
Our overall goal to do active learning was to see if the model is able to adapt on not-great quality images and we expect performance improvement after each active learning phase. For this imo, we should have a separate held-out test set that we can test out trained models on.
How do we build this test set:

We divide all the datasets into a 80:20 ratio in which 80% is for training and 20% is for testing.
We concatenate all the 20% sets into one Heldout-test set (illustrated in the figure below)
After each and every active learning training phase, we test the performance on the test set created in step 2.

Figure: Creation of held-out test set for testing active learning phases
Ref: SCIseg paper
Tasks:

[x] Create the 80:20 train and test splits using the script in utilities/dataset_conversion/create_dataset_split.py
[x] Use these splits to create the held-out test set. Can be found at: duke/temp/rohan/fmri_sc_seg/datasets/
[x] Remove ⚠ (artifact) data from the held-out test data as per the QC done in the issue https://github.com/sct-pipeline/fmri-segmentation/issues/25#issuecomment-1828376229
[x] Generate QC for the test set
[ ] Remove the artifacts images from this set based on #25
[ ] Manually correct the GTs for the over/under-segmentations
[ ] Test and report the performance of the already trained baseline model

Uploading the QC file for the held-out test set
qc_held_out_test.zip

Update:
Currently using a small subset of the held-out test data. Below is the list of the subjects:
participant_held-out.tsv
This dataset which includes the manual corrections can be found at: https://drive.google.com/file/d/18SiXA8RWzCo6TBovC8umZxWcsZW1soIV/view?usp=sharing
The QC for the above data can be found below:
qc_held_out_test_manually_corrected.zip

[ ] Upload the corrected data to Openneuro


feat(coinbase pay): Shows a touchable Coinbase Pay card if user is eligible

Description
Coinbase Pay's "quote" is extracted before normalizeQuote and fed into UniquePaymentSection, a simplified payment card component
Other changes
N/A
Tested
Checks if coinbase pay card is shown depending on user eligibility, restricted value
How others should test
PaymentMethodSection.test.tsx
Related issues
https://linear.app/valora/issue/ACT-343/add-coinbase-pay-card-to-payment-provider-screen
Backwards compatibility
N/A

As Jacob mentioned on slack, this shouldn't be merged until it's hidden behind a feature flag; otherwise we could accidentally release the part-way implemented feature