Race condition for helper-pod when multiple pvc's are provisioned

Hello. I think i have uncovered a bug.
If you provision multiple pv's in rapid succession the helper pod will only run for the first one.
First here will mean the helper pod that first get's created might be or not the same as the same pv that should be created.
How to reproduce:
On a single node kubernetes cluster:

kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml

Instead of creating one pvc and one pod create 3 of them:
pvcs.yaml:

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-path-pvc1
  namespace: default
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-path
  resources:
    requests:
      storage: 2Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-path-pvc2
  namespace: default
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-path
  resources:
    requests:
      storage: 2Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-path-pvc3
  namespace: default
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-path
  resources:
    requests:
      storage: 2Gi

pods.yaml:
---
apiVersion: v1
kind: Pod
metadata:
  name: volume-test01
  namespace: default
spec:
  containers:
  - name: volume-test
    image: nginx:stable-alpine
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: volv
      mountPath: /data
    ports:
    - containerPort: 80
  volumes:
  - name: volv
    persistentVolumeClaim:
      claimName: local-path-pvc1
---
apiVersion: v1
kind: Pod
metadata:
  name: volume-test02
  namespace: default
spec:
  containers:
  - name: volume-test
    image: nginx:stable-alpine
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: volv
      mountPath: /data
    ports:
    - containerPort: 80
  volumes:
  - name: volv
    persistentVolumeClaim:
      claimName: local-path-pvc2
---
apiVersion: v1
kind: Pod
metadata:
  name: volume-test03
  namespace: default
spec:
  containers:
  - name: volume-test
    image: nginx:stable-alpine
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: volv
      mountPath: /data
    ports:
    - containerPort: 80
  volumes:
  - name: volv
    persistentVolumeClaim:
      claimName: local-path-pvc3

Then check the /opt/local-path-provisioner path on the node:
[skiss-dev2 ~]$ ls -la /opt/local-path-provisioner
total 0
drwxr-xr-x  5 root root 222 Nov 11 08:56 .
drwxr-xr-x. 5 root root  65 Nov 11 08:50 ..
drwxr-xr-x  2 root root   6 Nov 11 08:56 pvc-919db3fc-6c88-446e-b77c-01e7ae260289_default_local-path-pvc1
drwxrwxrwx  2 root root   6 Nov 11 08:56 pvc-95bc6533-cd29-4f89-adaf-7b740e311969_default_local-path-pvc2
drwxr-xr-x  2 root root   6 Nov 11 08:56 pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5_default_local-path-pvc3

As you can all 3 pv's are being created however only one has the correct set of permissions.
The provisioner logs:
I1111 08:56:10.202181       1 controller.go:1202] provision "default/local-path-pvc1" class "local-path": started
I1111 08:56:10.214691       1 controller.go:1202] provision "default/local-path-pvc2" class "local-path": started
time="2020-11-11T08:56:10Z" level=debug msg="config doesn't contain node master-worker-1487cf6df4b42f3c60ef, use DEFAULT_PATH_FOR_NON_LISTED_NODES instead"
time="2020-11-11T08:56:10Z" level=info msg="Creating volume pvc-919db3fc-6c88-446e-b77c-01e7ae260289 at master-worker-1487cf6df4b42f3c60ef:/opt/local-path-provisioner/pvc-919db3fc-6c88-446e-b77c-01e7ae260289_default_local-path-pvc1"
time="2020-11-11T08:56:10Z" level=info msg="create the helper pod helper-pod into local-path-storage"
I1111 08:56:10.221367       1 event.go:281] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"local-path-pvc1", UID:"919db3fc-6c88-446e-b77c-01e7ae260289", APIVersion:"v1", ResourceVersion:"26463", FieldPath:""}): type: 'Normal' reason: 'Provisioning' External provisioner is provisioning volume for claim "default/local-path-pvc1"
I1111 08:56:10.403174       1 controller.go:1202] provision "default/local-path-pvc3" class "local-path": started
time="2020-11-11T08:56:10Z" level=debug msg="config doesn't contain node master-worker-1487cf6df4b42f3c60ef, use DEFAULT_PATH_FOR_NON_LISTED_NODES instead"
time="2020-11-11T08:56:10Z" level=info msg="Creating volume pvc-95bc6533-cd29-4f89-adaf-7b740e311969 at master-worker-1487cf6df4b42f3c60ef:/opt/local-path-provisioner/pvc-95bc6533-cd29-4f89-adaf-7b740e311969_default_local-path-pvc2"
time="2020-11-11T08:56:10Z" level=info msg="create the helper pod helper-pod into local-path-storage"
I1111 08:56:10.410110       1 event.go:281] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"local-path-pvc2", UID:"95bc6533-cd29-4f89-adaf-7b740e311969", APIVersion:"v1", ResourceVersion:"26467", FieldPath:""}): type: 'Normal' reason: 'Provisioning' External provisioner is provisioning volume for claim "default/local-path-pvc2"
time="2020-11-11T08:56:10Z" level=debug msg="config doesn't contain node master-worker-1487cf6df4b42f3c60ef, use DEFAULT_PATH_FOR_NON_LISTED_NODES instead"
time="2020-11-11T08:56:10Z" level=info msg="Creating volume pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5 at master-worker-1487cf6df4b42f3c60ef:/opt/local-path-provisioner/pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5_default_local-path-pvc3"
time="2020-11-11T08:56:10Z" level=info msg="create the helper pod helper-pod into local-path-storage"
I1111 08:56:10.420310       1 event.go:281] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"local-path-pvc3", UID:"c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5", APIVersion:"v1", ResourceVersion:"26472", FieldPath:""}): type: 'Normal' reason: 'Provisioning' External provisioner is provisioning volume for claim "default/local-path-pvc3"
time="2020-11-11T08:56:25Z" level=info msg="Volume pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5 has been created on master-worker-1487cf6df4b42f3c60ef:/opt/local-path-provisioner/pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5_default_local-path-pvc3"
time="2020-11-11T08:56:25Z" level=info msg="Volume pvc-919db3fc-6c88-446e-b77c-01e7ae260289 has been created on master-worker-1487cf6df4b42f3c60ef:/opt/local-path-provisioner/pvc-919db3fc-6c88-446e-b77c-01e7ae260289_default_local-path-pvc1"
time="2020-11-11T08:56:25Z" level=info msg="Volume pvc-95bc6533-cd29-4f89-adaf-7b740e311969 has been created on master-worker-1487cf6df4b42f3c60ef:/opt/local-path-provisioner/pvc-95bc6533-cd29-4f89-adaf-7b740e311969_default_local-path-pvc2"
time="2020-11-11T08:56:28Z" level=error msg="unable to delete the helper pod: pods \"helper-pod\" not found"
I1111 08:56:28.440603       1 controller.go:1284] provision "default/local-path-pvc1" class "local-path": volume "pvc-919db3fc-6c88-446e-b77c-01e7ae260289" provisioned
I1111 08:56:28.440662       1 controller.go:1301] provision "default/local-path-pvc1" class "local-path": succeeded
I1111 08:56:28.440687       1 volume_store.go:212] Trying to save persistentvolume "pvc-919db3fc-6c88-446e-b77c-01e7ae260289"
I1111 08:56:28.444032       1 controller.go:1284] provision "default/local-path-pvc3" class "local-path": volume "pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5" provisioned
I1111 08:56:28.444058       1 controller.go:1301] provision "default/local-path-pvc3" class "local-path": succeeded
I1111 08:56:28.444067       1 volume_store.go:212] Trying to save persistentvolume "pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5"
time="2020-11-11T08:56:28Z" level=error msg="unable to delete the helper pod: pods \"helper-pod\" not found"
I1111 08:56:28.444364       1 controller.go:1284] provision "default/local-path-pvc2" class "local-path": volume "pvc-95bc6533-cd29-4f89-adaf-7b740e311969" provisioned
I1111 08:56:28.444381       1 controller.go:1301] provision "default/local-path-pvc2" class "local-path": succeeded
I1111 08:56:28.444387       1 volume_store.go:212] Trying to save persistentvolume "pvc-95bc6533-cd29-4f89-adaf-7b740e311969"
I1111 08:56:28.456125       1 volume_store.go:219] persistentvolume "pvc-95bc6533-cd29-4f89-adaf-7b740e311969" saved
I1111 08:56:28.456388       1 event.go:281] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"local-path-pvc2", UID:"95bc6533-cd29-4f89-adaf-7b740e311969", APIVersion:"v1", ResourceVersion:"26467", FieldPath:""}): type: 'Normal' reason: 'ProvisioningSucceeded' Successfully provisioned volume pvc-95bc6533-cd29-4f89-adaf-7b740e311969
I1111 08:56:28.457477       1 volume_store.go:219] persistentvolume "pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5" saved
I1111 08:56:28.457550       1 event.go:281] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"local-path-pvc3", UID:"c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5", APIVersion:"v1", ResourceVersion:"26472", FieldPath:""}): type: 'Normal' reason: 'ProvisioningSucceeded' Successfully provisioned volume pvc-c3e09e1e-19a6-44ec-9cf3-843fe24fe1b5
I1111 08:56:28.459975       1 volume_store.go:219] persistentvolume "pvc-919db3fc-6c88-446e-b77c-01e7ae260289" saved
I1111 08:56:28.460001       1 event.go:281] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"local-path-pvc1", UID:"919db3fc-6c88-446e-b77c-01e7ae260289", APIVersion:"v1", ResourceVersion:"26463", FieldPath:""}): type: 'Normal' reason: 'ProvisioningSucceeded' Successfully provisioned volume pvc-919db3fc-6c88-446e-b77c-01e7ae260289

Note the two messages regarding unable to delete the helper pod. That's because it want created for them. However there is no creation error message because:
	// If it already exists due to some previous errors, the pod will be cleaned up later automatically
	// https://github.com/rancher/local-path-provisioner/issues/27
	logrus.Infof("create the helper pod %s into %s", helperPod.Name, p.namespace)
	_, err = p.kubeClient.CoreV1().Pods(p.namespace).Create(helperPod)
	if err != nil && !k8serror.IsAlreadyExists(err) {
		return err
	}

From my understanding it seems that all 3 requests for pv provision are sent very close and the pod being named the same cannot be created multiple times. The first request that get's trough creates the pod the rest fails silently. I'm not entierly sure why the path on the node exists in any case since the helper pod does not get called.
However it's pretty clear that only one helper pod runs at a time and only one custom provisioning code (such as the one that sets the permissions) is being run.

I got two of them with drwxrwxrwx and one with drwxr-xr-x. But, yes, they are inconsistent.

@stefan-kiss Good catch!
Can you check if the image yasker/local-path-provisioner:57801fc-amd64 fixes the issue in your environment? Assuming you're using AMD64. You need to replace the images from the original yaml file.

Hello, yes, i tested and i get correct results.
For my project (since i needed to move forward very fast), i used for now the helper pod name (string from config) and the actual PV name (from functions arguments) , trim the result to 63 characters and remove '-' to be sure i don't hit the name/format problems.
But this approach (or any other that will use a unique pod) leaves open the possibility of having pods hanged. While there are only couple of scenarios where you could have this - like the provisioner pod getting killed while the helper pod is up it still can have an impact ...
I don't yet know how to fix this but i'm thinking of replacing the deferred delete pod function with a cleaup function that looks for all helper pods (by some label) and cleans them up if they are in 'Completed', or one of the failure statuses.
(well anyway ! 'Running')

@stefan-kiss Label the helper pods and clean them up once completed sounds like a good idea. Though I probably won't have time to work on it until after the thanksgiving, due to the upcoming KubeCon and other projects. Feel free to raise a PR if you need it sooner.

Sure. I'll try ... Thanks !

@yasker could you maybe already create a new release containing your fix #155 as v0.0.19?
Otherwise all new users will probably hit the same issue with the current v0.0.18 (or whenever it was introduced).
I was today upgrading from v0.0.14->v0.0.19 - without checking the issues here first - and :boom: ... :)
Big thanks in advance and for all your great work!

I've just merged https://github.com/rancher/local-path-provisioner/pull/156 which used a different suffix for the helper pod. I will leave it there for a couple of days for testing, then I can release v0.0.19.

Hi,
Im also hitting this so would like to see 0.0.19 ship when ready
thanks

v0.0.19 has been released. https://github.com/rancher/local-path-provisioner/releases/tag/v0.0.19
Notice the label clean up mechanism is not there, but since it's the same situation as before, we can treat it as an enhancement and close this bug for now.


Implement vertical navigation

fixes: #27

Pull Request Test Coverage Report for Build 259

18 of 18 (100.0%)  changed or added relevant lines in 5 files are covered.
36 unchanged lines in 4 files lost coverage.
Overall coverage increased (+1.8%) to 81.805%

Files with Coverage Reduction
New Missed Lines
%

src/components/Button/content.js
1
60.0%

src/components/Card/headerTitle.js
1
71.43%

src/components/MenuItem/index.js
2
92.86%

src/components/ButtonMenu/index.js
32
24.49%

Totals

Change from base Build 249:
1.8%

Covered Lines:
443

Relevant Lines:
530

💛  - Coveralls


Countdown badge?

Hey @denilsonsa beautiful extension! :-D
If I set the timer to 20min, it shows 20 on the badge but doesn't actually count down.
It would be nice if it could countdown so I can see directly how much time is left.
What you think? .-)

Hmm… Should I make that behavior configurable?
I'd like to, because updating the display every second uses a bit more CPU than "doing nothing at all". On the other hand, I suppose very few users will need this toggle, so I don't want to pollute the main popup UI.
I could create an "options" window, but that seems like overkill for one single option. I could add it to the context menu of the browser button, which might be the best idea so far.

Hey. :-)
Thanks for considering my suggestion!

I could add it to the context menu of the browser button, which might be the best idea so far.

How could that look like?

I've finally got back to this. I've implemented an option available when right-clicking the extension button.
b39c98e8d0a17ca08ddede5d46a1f305d54d57ed
5b24bf0366a4c3b8d7c9d644acacc4ae856845a4
With these, I'm closing this feature request! Thanks!

That's so cool, thank you! :-)
On Mon, Apr 23, 2018 at 3:40 PM, Denilson Sá Maia<EMAIL_ADDRESS>wrote:

I've finally got back to this. I've implemented an option available when
right-clicking the extension button.
b39c98e
https://github.com/denilsonsa/crx-reload-tab/commit/b39c98e8d0a17ca08ddede5d46a1f305d54d57ed
5b24bf0
https://github.com/denilsonsa/crx-reload-tab/commit/5b24bf0366a4c3b8d7c9d644acacc4ae856845a4
With these, I'm closing this feature request! Thanks!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/denilsonsa/crx-reload-tab/issues/3#issuecomment-383578887,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKbw7QS8w5PP6k1p4Lg58dI5WZ9VHgoks5trdnIgaJpZM4R0FZv
.


Failed to install PHP 8.3.12 on  Ubuntu version 16.04.7 LTS, phpbrew - version 2.2.0

Output
===> phpbrew will now build 8.3.12
===> Loading and resolving variants...
Checking distribution checksum...
Checksum matched: 807633496ccdb370a8905458db82bd67366e98a6d59728914b797b87e9caecbf
===> Distribution file was successfully extracted, skipping...
You want to build several variants. No clean is not available.
Running make clean to ensure everything will be rebuilt.
===> Running make clean: /usr/bin/make -C '/home/user/.phpbrew/build/php-8.3.12' --quiet 'clean'
===> Checking patches...
Checking patch for replace apache php module name with custom version name
Checking patch for replace freetype-config with pkg-config on php older than 7.4
Checking patch for fix readline detection on PHP 5.3 to PHP 7.1
---> Applying patch...
patching file ext/readline/config.m4
Hunk #1 FAILED at 60.
Hunk #2 FAILED at 114.
2 out of 2 hunks FAILED -- saving rejects to file ext/readline/config.m4.rej

Patch failed
0 changes patched.
Found existing build.log, renaming it to /home/user/.phpbrew/build/php-8.3.12/build.log.1728301051
===> Configuring 8.3.12...

Use tail command to see what's going on:
   $ tail -F '/home/user/.phpbrew/build/php-8.3.12/build.log'

===> Checking patches...
Checking patch for php5.3.x on 64bit machine when intl is enabled.
Checking patch for openssl dso linking patch
Checking patch for php5.6 with openssl 1.1.x patch.
===> Building...
Error: Make failed:
The last 5 lines in the log file:
  ^

/home/user/.phpbrew/build/php-8.3.12/ext/opcache/jit/zend_jit.c: At top level:

cc1: warning: unrecognized command line option ‘-Wno-implicit-fallthrough’

Makefile:1703: recipe for target 'ext/opcache/jit/zend_jit.lo' failed

make: *** [ext/opcache/jit/zend_jit.lo] Error 1

Please checkout the build log file for more details:
         tail /home/user/.phpbrew/build/php-8.3.12/build.log
...

Expected Result
To be installed successfully

Command
 phpbrew install 8.3.12 +default +exif +ftp +gd +gettext +hash +iconv +intl +json  +mcrypt +mysql +mysql +session +wddx +zlib +fpm +cgi

Build Log
/bin/bash /home/user/.phpbrew/build/php-8.3.12/libtool --silent --preserve-dup-deps --tag=CC --mode=compile cc -Iext/opcache/ -I/home/user/.phpbrew/build/php-8.3.12/ext/opcache/ -I/home/user/.phpbrew/build/php-8.3.12/include -I/home/user/.phpbrew/build/php-8.3.12/main -I/home/user/.phpbrew/build/php-8.3.12 -I/home/user/.phpbrew/build/php-8.3.12/ext/date/lib -I/usr/include/libxml2 -I/usr/local/include -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/x86_64-linux-gnu -I/home/user/.phpbrew/build/php-8.3.12/ext/mbstring/libmbfl -I/home/user/.phpbrew/build/php-8.3.12/ext/mbstring/libmbfl/mbfl -I/usr/lib/x86_64-linux-gnu/libzip/include -I/home/user/.phpbrew/build/php-8.3.12/TSRM -I/home/user/.phpbrew/build/php-8.3.12/Zend  -D_GNU_SOURCE  -fno-common -Wstrict-prototypes -Wlogical-op -Wno-clobbered -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -g -O2 -ffp-contract=off -fvisibility=hidden -DZEND_SIGNALS     -Wno-implicit-fallthrough -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DZEND_COMPILE_DL_EXT=1 -c /home/user/.phpbrew/build/php-8.3.12/ext/opcache/jit/zend_jit.c -o ext/opcache/jit/zend_jit.lo  -MMD -MF ext/opcache/jit/zend_jit.dep -MT ext/opcache/jit/zend_jit.lo
In file included from /home/user/.phpbrew/build/php-8.3.12/ext/opcache/jit/zend_jit.c:755:0:
/home/user/.phpbrew/build/php-8.3.12/Zend/zend_cpuinfo.h: In function ‘zend_cpu_supports_avx512’:
/home/user/.phpbrew/build/php-8.3.12/Zend/zend_cpuinfo.h:189:2: error: Parameter to builtin not valid: avx512dq
  return __builtin_cpu_supports("avx512f") && __builtin_cpu_supports("avx512dq")
  ^
/home/user/.phpbrew/build/php-8.3.12/Zend/zend_cpuinfo.h:190:3: error: Parameter to builtin not valid: avx512cd
   && __builtin_cpu_supports("avx512cd") && __builtin_cpu_supports("avx512bw")
   ^
/home/user/.phpbrew/build/php-8.3.12/Zend/zend_cpuinfo.h:190:3: error: Parameter to builtin not valid: avx512bw
/home/user/.phpbrew/build/php-8.3.12/Zend/zend_cpuinfo.h:191:3: error: Parameter to builtin not valid: avx512vl
   && __builtin_cpu_supports("avx512vl");
   ^
/home/user/.phpbrew/build/php-8.3.12/Zend/zend_cpuinfo.h: In function ‘zend_cpu_supports_avx512_vbmi’:
/home/user/.phpbrew/build/php-8.3.12/Zend/zend_cpuinfo.h:201:2: error: Parameter to builtin not valid: avx512vbmi
  return zend_cpu_supports_avx512() && __builtin_cpu_supports("avx512vbmi");
  ^
/home/user/.phpbrew/build/php-8.3.12/ext/opcache/jit/zend_jit.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-implicit-fallthrough’
Makefile:1703: recipe for target 'ext/opcache/jit/zend_jit.lo' failed
make: *** [ext/opcache/jit/zend_jit.lo] Error 1

Platform
OS:
     Ubuntu 16.04.7 LTS

Running PHP:
PHP 8.0.8

Installing PHP:
PHP 8.3.12

It's about the Zend CPU info error during PHP compilation, and I also notice that your Ubuntu distribution is outdated.
Have you ever tried to use Ubuntu 20.04+ version to compile the PHP 8.3.12 with the PHP 8.0.8?

Nope, I haven't. tried with Ubuntu 20.04+.
I am afraid if I update up to  Ubuntu 20.04+. something will got broken of the system, that's why I am trying to install PHP 8.3.12 within  Ubuntu 16.04.7 LTS

I need to further try to compile PHP 8.3.12 in the Ubuntu 16.04 at my available time because I don't have the outdated distribution version at this moment.

I need to further try to compile PHP 8.3.12 in the Ubuntu 16.04 at my available time because I don't have the outdated distribution version at this moment.

Please let me know, if you succeeded to install it on Ubuntu 16.04


Circuit Relays can now add additional connection info. Fixes issue with Docker containers.

:tada: This PR is included in version 6.7.1 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:


Update pzflow to pzflow_nf in import

In my local environment, this fixed pzflow-related import error when running rail.stages.import_and_attach_all()
Will hopefully address a similar pzflow-related error when running Useful_Utilities.ipynb in the rail smoke test

The KeyError: 'aliases' is something I've seen elsewhere in RAIL today, in relation to the new ceci v2 release. I am assuming that is what is causing the unit test failures here.

Qianjun and I will merge this pull request. The aliases problem is because of ceci v2 as Olivia already pointed out. This is an issue that is presenting itself in different packages and will be fixed for each and every one since ceci v2 is still in development.


MNT: rerender

Hi! This is the friendly automated conda-forge-webservice.
I've rerendered the recipe as instructed in #55.
Here's a checklist to do before merging.

[ ] Bump the build number if needed.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin please rerender

@carterbox i removed many of the cross compilation constraints to keep things simple.


[BUG] Cant install Android Auto Patch - Backup problem

Dear jilleb,
first of all I have to thank you for this great tool and
that you provide it for free.
I have read all your readme's and also all bug reports, but unfotunately
I havent found something similar.
First I had the metainfo2.txt error and was unable to install.
Here some infos to my device:
Teilenummer Gerät: 5NA035020D
Hardware: H55
Software: 1367
Golf MK 7.5 2019
I received now the D-link Adapter and I'm able to connect to the device and to install it manually.
Now if I try to apply the Android Auto patch, I receive following errors. Of course there is a writeable SD card in Slot1.

The last screenshot is from /customization/varios/Activate 3D terrain/buildings in Carnet Google Earth (I just saw there is an open bug by yourself)

It would be great, if you could support me!
Thank you very much!
Best regards

Hi, tried some things:
if I add this 3 variables on the top of the script patch_gal.sh the script is running without any error.
VOLUME=/net/mmx/fs/sda0
FILENAME=gal.json
ORIGINAL=/etc/eso/production/
If I check the file /etc/eso/production/gal.json I can see that all parameters are set,
but unfortunately AA is not working as expected, no difference to the unpatched Android Auto.
Unpluged phone, rebooted unit, same result.
FYi, I found an older version of Mib2-Toolbox here the script patch_gal.sh is working without problems.
But AA is unfortunately still not working as expected.
Developer mode in AA is activated, and also unknown sources, is there to be set something more on the phone in AA?
Please help!
Thank you!
Best regards

Thanks, I'll dive into it!

Allright, found the mistake I've made...
. /eso/bin/PhoneCustomer/default/util_mountsd.sh was missing, so $VOLUME was never set correctly.

Ok, I'm also missing the button to restore the original settings in the AA
menu, why?
Thank you!
Chillout<EMAIL_ADDRESS>schrieb am Mi., 25. Nov. 2020, 18:36:

Allright, found the mistake I've made...
. /eso/bin/PhoneCustomer/default/util_mountsd.sh was missing, so $VOLUME
was never set correctly.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jilleb/mib2-toolbox/issues/110#issuecomment-733850436,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARZZF2U2AJS2FVBK6KRJ4FDSRU6AFANCNFSM4UBJNLLQ
.

Because I removed it 😄

With the volume variable I started.
Then the next errors appeared and I set this variables:
FILENAME=gal.json
ORIGINAL=/etc/eso/production/
The the script was running.
Thank you.

Because I removed it 😄

🤣 ok

I think I fixed it 😉

New Version is working without problems, tested it today.
Thank you!


ClassGenerator::fromReflection() breaks extends and implements

It is not possible to load a class that that extends or implements other classes without breaking the fully qualified names of the classes.
For example, if you load a reflection of this class
namespace Sample\ReflectionIssue;

class SampleClass
    extends \Sample\ReflectionIssue\ExtendableClass
    implements \Sample\ReflectionIssue\InterfaceClass
{ ... }

via $foo = ClassGenerator::fromReflection(ClassReflection(new \Sample\ReflectionIssue\SampleClass())); it will generate the following (invalid) output:
namespace Sample\ReflectionIssue;

class SampleClass
    extends Sample\ReflectionIssue\ExtendableClass
    implements Sample\ReflectionIssue\InterfaceClass
{ ... }

It's missing the leading backslash in front of the fully qualified class name.

I've bumped into the same issue on PHP 7.0.1 (cli).
On top of this I noticed while using the FileGenerator::fromReflectedFileName() method, that it also changes Interface names that are included with a use statement into the FQN.
For example:
Source
<?php

namespace Testing;

use Phpro\SoapClient\Type\ResultInterface;

class ArrayOfForecast implements ResultInterface
{
// OLD BODY
}

Destination:
<?php

namespace Testing;

use Phpro\SoapClient\Type\ResultInterface;

class ArrayOfForecast implements Phpro\SoapClient\Type\ResultInterface
{
// NEW BODY
}

As you can see the trailing slash is missing and it should rather use the short name of the interface like in the source file.


feat: update responses to support calculateGasLimits flag

update interfaces

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@livingrockrises  Where are the test cases for this change?? we should start getting into habit of writing or updating test cases whenever we do any change in the code.

@livingrockrises Where are the test cases for this change?? we should start getting into habit of writing or updating test cases whenever we do any change in the code.

will be working on test specs on modular sdk. cc @talhamalik883


Broken Screencast Link

The link under this heading is a 404. I believe it should link to here instead:
https://docs.microsoft.com/en-us/shows/ef/migrations-under-hood
There's the same broken link in the video description here:
https://docs.microsoft.com/en-us/shows/ef/migrations-team-environments

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

ID: b72ecde8-e983-8583-7c3f-6e0e4ff404fb
Version Independent ID: 6ed79d63-19a7-c527-b383-c5faf4beba55
Content: Code First Migrations in Team Environments - EF6
Content Source: entity-framework/ef6/modeling/code-first/migrations/teams.md
Product: entity-framework
Technology: entity-framework-6
GitHub Login: @ajcvickers
Microsoft Alias: avickers

/cc @JeremyLikness


fix(api-reference): set background color on body, fix #2496

Sets the background color on the <body> tag in a layer so it's set for iOS. It turns out this also colors the address bar in addition to the top chrome which is nice.
Since it's in a layer it should be easy to override if anyone doesn't want it set for their use.
Fixes #2496
Before (Default / Kepler)

After (Default / Kepler)

hopefully no one has weird margin values on body 😨

I mean if they do presumably they want it that way?


Missing text in the center

It is missing the actual text on the center of the wheel.
Any plan to update it?

Hi, I think it could be a great improvement, even not only text, maybe a custom View.

When  are you planning to update it???

Is the text enhancement done already??

I'm planning a new release with this feature, meanwhile you can use this approach: https://github.com/dlazaro66/WheelIndicatorView/issues/5#issuecomment-160413647
place a textview below the WheelIndicatorView


Large request problem

Description
Should fix large responses/requests in ViewResultRreader when no linebreaks can be found
Motivation and Context
As described in #6336 JMeter seems to crash, when large request bodies are used in HTTP sampler. This is caused by the used TextArea, which tries to find a good place for breaking and uses too much CPU for this.
One fix, we tried earlier, was to add linebreaks, when large responses are shown. We forgot about requests.
This fix is basically two fixes.

There seems to be a bug in our StringWrap class, that does the insertion of linebreaks.
Move the use of StringWrap into the problematic JSyntaxTextArea, so that all data that is shown by the problematic component is automatically wrapped with linebreaks.

If this fix seems to help, we could remove the usage of StringWrap in the old places.
How Has This Been Tested?
Used a simple test plan, that generates a HTTP body with ${__groovy("abc" * 1_000_000)}. Without this patch, JMeter seems to be crashed. With the fix, it will be responsive (after a short while).
Screenshots (if appropriate):
Types of changes

Bug fix (non-breaking change which fixes an issue)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
This will insert linebreaks in large data chunks that are displayed with JSyntaxTextArea

Checklist:

[x] My code follows the code style of this project.
[ ] I have updated the documentation accordingly.

You saved my day
I've compiled and tested your JMeter version with my project, sending a 400kb JSON
With default configuration, there is still a freeze of about 1 minute
But, when a set
view.results.tree.max_line_size=1000
view.results.tree.soft_wrap_line_size=1000
view.results.tree.max_size=1048576
view.results.tree.simple_view_limit=1000

Then, everything is OK, no more waits
From the above settings, I cannot tell which one helps


Definitely should have added an option to decrease the sensitivity of rotation in the script

preferably a non linear steering scales would be nicer

*scale
auto correct why


HTTPS option wont load on Safari

Is this a bug report?
no
Environment
OS: OSX 10+
Safari: 11+
Steps to Reproduce

Set HTTPS=true
Open https://localhost:3000 in Safari browser

Expected Behavior
browser loads your app
Actual Behavior
Safari does not load page and displays error:
Safari can’t open the page “https://localhost:3000” because Safari can’t establish a secure connection to the server “localhost”.

What is the output in your console after starting your project?

HHTPS=true
Local:  https://localhost:3000/
 On Your Network:  https://<IP_ADDRESS>:3000/

I also managed to make it work on Safari (v11.1) running HTTPS=true npm run start

Have you tried clearing your browser's cache and see if this screen shows up? After that you can click on visit and you will be able to use HTTPS in Safari using localhost


HLS not streaming

Which version are you using?
v0.16.4 - precompiled binary for arm64v8
Which operating system are you using?
OS

[x] Linux
[ ] Windows
[ ] macOS

Architecture

[ ] amd64
[x] arm64
[ ] arm7
[ ] arm6

Describe the issue
First time using rtsp-simple-server, so it may be my lack of understanding.
Configured RTSP from the example in the documentation using a USB webcam attached to /dev/video0 on a raspberry pi running ubuntu 21.4 and it worked at the first attempt: browser opens up VLC and all is good.
 cam:
    runOnInit: ffmpeg -f v4l2 -i /dev/video0 -f rtsp rtsp://<IP_ADDRESS>:$RTSP_PORT/$RTSP_PATH
    runOnInitRestart: yes

I actually want to embed the stream in a web page, so thought I should be able to use something like:
<html>
    <head>
        <title>video tag test page</title>
    </head>
    <body>
         <video src="http://<IP_ADDRESS>:8888/cam">
            no video
        </video>
    </body>
</html>

However, this just gives a blank page in the browser and generates the errors below on the console:
2021/07/08 14:43:28 I [1/0] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:50263] GET /cam
2021/07/08 14:43:28 I [1/0] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:50263] GET /cam/
2021/07/08 14:43:28 I [1/0] [HLS] [converter cam] opened
2021/07/08 14:43:28 I [1/0] [HLS] [converter cam] ERR: unable to find a video or audio track
2021/07/08 14:43:28 I [1/0] [HLS] [converter cam] closed

More than happy to believe I've missed something, but can't spot what it is!

I have made some progress. I've never so much as looked at go code before, but having looked at it, I wondered if it was looking for a track with h264 format, so I changed my configuration to:
  cam:
    runOnInit: ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset ultrafast -b:v 500k -max_muxing_queue_size 1024 -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH
    runOnInitRestart: yes
  proxied:
    source: rtsp://localhost:8554/cam

This now makes a stable connection using HLS (and the RTSP continues to work as before), but the video is still not showing up in the browser. This is the log:
2021/07/14 12:34:48 I [1/0] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:62483] GET /cam/
2021/07/14 12:34:48 I [1/0] [HLS] [converter cam] opened
2021/07/14 12:34:48 I [1/1] [HLS] [converter cam] is converting into HLS
2021/07/14 12:38:26 I [1/0] [HLS] [converter cam] closedrate=N/A dup=12 drop=1 speed=   1x

The session closes after exactly a minute consistently.
BTW,  using a better html video tag:
<html>
<head>
  <title>video tag test page</title>
</head>
<body>
  <video width="320" height="240" controls>
      <source src="http://<IP_ADDRESS>:8888/cam/" type="video/mp4">
      no video
  </video>
</body>

It almost seems like the browser-client is not doing something now.

By chance, I tried accessing the HLS URI directly from my iPhone and noticed it was appending stream.m3u8 to the path. Adding this explicitly in the above video tag (and changing the mime type to application/x-mpegurl) now shows that the html5 player is trying to download (i.e. the activity wheel is running continuously). There's still no video though and the link gets dropped after a minute.

I think that the streaming protocol you have published is rtsp, and the browser doesn't support it.

@dmzlingyin, thank you, but I am fairly sure it is attempting to do HLS. Yes, I am publishing RTSP on the original path and if I try to read it in a browser it opens up VLC. However, unless I've misunderstood the documentation, it automatically makes this stream available via HLS as well. The log messages appear to show it is using the HLS component of the server.

You are not embedding the source correctly.
Fire up the browser developer tools and notice that http://<IP_ADDRESS>:8888/cam/ actually serves a HTML page. Inspect the html code to see how the player works.
Te actual HLS stream source is at http://<IP_ADDRESS>:8888/cam/stream.m3u8 but is not directly playable using the plain video tag except in Safari under certain circumstances. The example HTML page embedded in the server uses hls.js player.

@dorinclisu, thanks, but if you look back in my comment on 14 July, you will see I spotted my error, corrected it and it still doesn't work.

Yeah that's why I said "certain circumstances" and actually I've looked into this very issue and couldn't yet figure out why the server manifest it doesn't work directly in Safari.
But anyway hls.js should definitely work regardless of browser choice.

@dorinclisu , I have got hls.js working, I think. There is one odd error on the java console saying it can't download a file from jsdelivr but it seems to download the main script. I have adapted the sample page on the hls.js home page:
<html>
<head>
<title>hlsjs test page</title>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
</head>
<body>
<video id="video"></video>
<script>
  if (Hls.isSupported()) {
    var video = document.getElementById('video');
    var hls = new Hls();
    // bind them together
    hls.attachMedia(video);
    hls.on(Hls.Events.MEDIA_ATTACHED, function () {
      console.log('video and hls.js are now bound together !');
      hls.loadSource('http://localhost:8888/cam/stream.m3u8');
      hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
        console.log(
          'manifest loaded, found ' + data.levels.length + ' quality level'
        );
        video.play();
      });
    });
  }
</script>
</body>

This now gives more promising output on the server console:
2021/07/21 15:10:45 I [1/0] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51025] GET /cam/stream.m3u8
2021/07/21 15:10:45 I [1/0] [HLS] [converter cam] opened
2021/07/21 15:10:45 I [1/1] [HLS] [converter cam] is converting into HLS
2021/07/21 15:10:45 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51025] GET /cam/stream.m3u8
2021/07/21 15:10:45 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51025] GET /cam/1626876645.ts
2021/07/21 15:10:46 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8
2021/07/21 15:10:47 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8
2021/07/21 15:10:48 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8
2021/07/21 15:10:50 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8
2021/07/21 15:10:52 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8
2021/07/21 15:10:54 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8
2021/07/21 15:10:57 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8
2021/07/21 15:11:00 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51025] GET /cam/stream.m3u8
2021/07/21 15:11:00 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51025] GET /cam/1626876659.ts
2021/07/21 15:11:04 I [1/1] [HLS] [conn [fe80::10e1:dbda:adff:c409%wlan0]:51026] GET /cam/stream.m3u8

I can't spot a pattern to the inclusion of the numeric .ts links. The javascript console in the browser shows:
video and hls.js are now bound together!
manifest loaded, found 1 quality level

After a minute or so, the following appears in the log, but there's no link to suggest where the error arises:
Unhandled Promise Rejection: AbortError: The operation was aborted.

And... you've guessed it, no video in the browser at any point!

Using hls.js does get me further in Chrome but no other browser. It loads and displays a still image, and continues to poll the server but doesn't use updated images.

No substantive help available on this issue, so I've tried nginx and got what I need working.


Regarding inferencing the learnt policy

Hi,
We have created our custom environment for and wrapped it in a gym class. After training using MAPPO, we got the .pkl files. Can you elaborate upon how to inference the learned policy ?
We already have a visualization of the env using pygame and just want to load the learned policies and see them play.
Thanks in advance.

It is doable. However, MARLlib decides not to incorporate the loading and rendering functions as we find it hard to unify all ten environments to render in a similar pattern.

Hi Thanks for the previous answer. But we have been unable to use the learned policy to compute actions for our agents. Our objective is to compute agent's actions based on the learnt policy. But when we use the function agent.compute_single_action(obs), where obs = env.reset()
We get the error that seq_lens in None type. We are not able to find where to find the sequence lengths to resolve this error. We added some print statements in the training and could observe the sequence lengths being printed there but compute_single_action does not seem to be workking with that.
It would be really helpful if you could provide some insights for the same. Also kindly let us know if we should be using some function other than agent.compute_single_action for the same purpose.

Hi SiddSS,
Sorry for the late reply. Please check this example for loading the checkpoint and rendering the environment in MARLlib.
You are welcomed for any further question.
Siyi

New APIs are here for guiding how to render the pretrained model.


Create a per pod status resource so we can validate the state of all pods during tests and in production envs

The per resource status is a lie - it is just the status of the current leader pod.
High level proposal:

Add new CRDs that purely represent status
Each pod creates its own instance of the CR with the pod as an owner ref
Each pod maintains this status resource on a short (~one minute) timer (i.e. trigger by both watch events and by time)
Each pod should only watch its own instance to avoid processing events from other pods

Reviewed and decided we will re-open incase we see any issues from end users on this.


Questions bitbucket - multistage

Hi 2 questions.
Strano support othere git like bitbucket?
Is there a support for multistage enviroments?

Only Github si supported at this time, but happy to look at any pull requests that add support for other providers.
Multistage is supported using Capistrano's built-in multistage plugin. Just configure it in your repo, and Strano will pick it up and give you the option to choose which stage you want to deploy to.
--
Joel Moss
Develop with Style at http://DevelopWithStyle.com
Call me +44 7791 503309
http://twitter.com/joelmoss
AIM: joelkmoss
Skype: joelmoss.info
On Thursday, 1 March 2012 at 09:57, francesco agati wrote:

Hi 2 questions.
Strano support othere git like bitbucket?
Is there a support for multistage enviroments?

Reply to this email directly or view it on GitHub:
https://github.com/joelmoss/strano/issues/7


chore: bump to pg8.*

Which problem is this PR solving?

Fixes #24

Short description of the changes

Adds 8.* to versions matrix. Only test on<EMAIL_ADDRESS>

@mayurkale22 update branch button not working for me here. Is it working for you? @markwolff may need you to manually merge master back something is weird.

@mayurkale22 update branch button not working for me here. Is it working for you? @markwolff may need you to manually merge master back something is weird.

Same problem for me.

@mayurkale22 I think it may be because of the history mangling we had to do in order to maintain the file change history. It might be worth it to blow away the history...


link channel layers when explorer scan is finished

It uses the new napari link_layers() function.
At the end of the explorer scan, the layers from the same channel are linked.

Codecov Report

Merging #60 (ca9c661) into main (67ff2d9) will increase coverage by 0.16%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##             main      #60      +/-   ##
==========================================
+ Coverage   41.96%   42.13%   +0.16%
==========================================
  Files          10       10
  Lines        1244     1258      +14
==========================================
+ Hits          522      530       +8
- Misses        722      728       +6

Impacted Files
Coverage Δ

micromanager_gui/explore_sample.py
45.87% <57.14%> (+0.77%)
:arrow_up:

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 67ff2d9...ca9c661. Read the comment docs.

@tlambert03 I think this is now ok to merge


benefits

Hello, is there any benefits when we bot views and shares?
Will algorythm work like normal?

No there is no benefits when you do that.


Asynchronous expect does not execute

Unfortunately, I don't have good recreation steps. This only happens on my computer.
Some of my tests seem to run just fine, but none of the expect actually execute. With other test the browser comes up and goes down before loading the page. Might be the same issue.
I have a test with:
expect(page.courseTitle.getText()).toBe 'Symphony'
expect(page.courseTitle.getText()).toBe 'garbage'

I expect this to fail, but it does not. If I add the line:
expect(true).toBe false

The test fails with both errors. If I add the line:
expect(true).toBe true

the test does not fail at all.

Please direct general support questions like this one to an appropriate support channel, see https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions
Your question is better suited for StackOverflow with the 'protractor' tag or the Gitter channel.
Thanks!

Taking another look at this, the syntax is incorrect.
Potential fix:  expect(page.courseTitle.getText()).toBe 'garbage' to look like this: expect(page.courseTitle.getText()).toBe('garbage'). If that doesn't work, please try our Gitter channel.
Thanks!

Thanks for looking at it. Syntax is fine (CoffeeScript). Moving to StackOverflow.
http://stackoverflow.com/questions/35192074/jasmine-expect-statement-does-not-execute-in-protractor-scenario


Fake news detection using the text column #GSSOC'22

Hello, I am a GSSOC'22 participant and I'd love to build a fake news detector using the text column as regards the author and title that was used previously

Hello, I am a GSSOC'22 participant and I'd love to build a fake news detector using the text column as regards the author and title that was used previously

already there


Possible Reward Icons/Images for Rewards Page

Let me know what you guys think of using these icons for the rewards page? I have uploaded more than we need just so we have extra options.
Thought simple transparent icons would be good to use as "buttons" for picking rewards.
I included possibilities for free 1 day pass, free week (7 day) pass, free lyft/uber rides, possible free bike and/or car parking.

oh god. It's just adding image files, not code. It says I don't need to approve this to commit because there are no conflicts so I'm just gonna do it. Finger crossed.....


Decoding issue with Option[Unit]

The encoder for Option[Unit] seems to be bugged:
case class Bar(data: Option[Unit]) derives ElementDecoder
val xml    = "<bar><data/></bar>"
val actual = XmlDecoder.fromElementDecoder[Bar]("bar").decode(xml)

Left(ru.tinkoff.phobos.decoding.DecodingError: Error while decoding XML: Element is already decoded (Most likely it occurred more than once)
	In element 'data'
		in element 'bar'
     )

It may comes from how the decoder for Option works with the one used for Unit:
implicit def optionDecoder[A](implicit decoder: ElementDecoder[A]): ElementDecoder[Option[A]] =
    new ElementDecoder[Option[A]] {
      def decodeAsElement(c: Cursor, localName: String, namespaceUri: Option[String]): ElementDecoder[Option[A]] = {
        if (c.isStartElement) {
          ElementDecoder.errorIfWrongName[Option[A]](c, localName, namespaceUri).getOrElse {
            if (ElementDecoder.isNil(c) || (c.isEmptyElement && c.getAttributeInfo.getAttributeCount == 0)) {
              c.next()
              new ConstDecoder(None)
            } else {
              // If the decoder happens to be a ConstDecoder[Unit], `decodeAsElement` will return a FailedDecoder
              // instead of a ConstDecoder[Unit].
              decoder.map[Option[A]](a => Some(a)).decodeAsElement(c, localName, namespaceUri)
            }
          }
        } else {
          new FailedDecoder[Option[A]](c.error(s"Unexpected event: '${c.getEventType}'"))
        }
      }

Decoding Option[Unit] may be useful to decode empty xml tags acting as flags.

I've done some investigation and it seems there's an issue with the Decoder derivation. For some reasons I don't get yet, the decodeAsElement is called recursively until a FailedDecoder is returned. The result function therefore returns a Left(...).
I've managed to fix this with this:
given ElementDecoder[Unit] = ElementDecoder.stringDecoder.map(_ => ())
given ElementEncoder[Unit] = ElementEncoder.stringEncoder.contramap(_ => "")

Does this solution make sense?

It's certainly a bug. Decoder for Unit does not move the decoding "cursor" from <data/> to the next XML tag, hence the derived decoder tries to decode <data/> once again, and the decoding process fails.
Your fix makes sense, as it will move the "cursor" out of the <data/> element. Encoder change is also useful, as it adds some sense to Unit elements

Will publish this change in 0.17.0


Support Ranking questions in Feedback Datasets

Duplicate of #3097

This is a duplicate of another issue and I've already added the other one to the roadmap. @frascuchon can you delete this issue?

Duplicated of #3097


Use gradle-utils LazilyConfiguredMapping

Before this PR
We copy pasted the LazilyConfiguredMapping class waiting on gradle-utils to be merged.
After this PR
==COMMIT_MSG==
Use LazilyConfiguredMapping from gradle-utils.
==COMMIT_MSG==
Possible downsides?

Released 0.8.0


feat: Ethos onboarding

New Chains

Ethos feature toggle

ICS, Contracts, ICTest, Unit?

Existing

Write an internal spawn plugin to add Ethos to an existing standard cosmos simapp codebase

ref: initial base ICS #112

Waiting on upstream integration test fixes from the Ethos team.

closed as upstream ethos team has pivoted to InfiniteVM. Main repo has not had real work in a considerable time.
Closing as upstream stale.


Scalar type for json/jsonb

Hi, really cool framework! How can we handle types like json/jsonb that e.g. Hasura uses? Its neither scalar string nor number or boolean, its just a pure JSON value (so Record<string, unknown/any>).

All the basic types such as string, number, enum is called scalar type in GraphQL
Fortunately, scalar type is extendable for GraphQL. you must do two works

Extend the scalar type of server-side, many frameworks of GraphQL server-side support API to extend scalar type, you can use that API to teach the GraphQL server how to accept your customize scalar type

We your schema contains the customized scalar type and the code generator of my framework try to generate TS code from it. Be same with the server-side, your must call my API to teach my framework about how to accept your customize type. please use the configuration property "scalarTypeMap" of code generator. document here: https://github.com/babyfish-ct/graphql-ts-client/blob/master/codegen-properties.md

Hey @babyfish-ct, thanks for taking the time to respond. But how would the scalarTypeMap field look like in that case?

Wouldn't it make sense to add all graphql value kinds (as specified in https://github.com/graphql/graphql-js/blob/c589c3d285cb1ec44b09bf0b50ec041ec083760c/src/language/kinds.ts#L21)?

Seems to work good if this is commented out. So maybe just adding object besides other scalars would work.

This solution is conflict with GraphQL
In GraphQL, complex object must object, server-side will check the shape of response data. so it's impossible let server to return a response data contains a field whose type is scalar but actually contains deeper child fields.
Make the field to be string, serialize/deserialize it in your app please

@babyfish-ct If GraphQL implementations allow for object types, why not support it with this library?
I am just trying out this library for the first time today, and I'm concerned that if I have to change my JSON types to strings, I might just end up not using or having to fork the library.

so it's impossible let server to return a response data contains a field whose type is scalar but actually contains deeper child fields.

I agree it's not a best practice, but sometimes the data doesn't have a defined shape, so JSON is a reasonable choice. There are servers which return such data and we have to handle it somehow.

The big problem is how to import custom scalar type

3.1.0


Binary POST requests

Add test for binary POST requests.
* Currently fails (MemoryTape assumes all POST bodies are text and
    decodes their byte[]s as UTF8).

Binary POST body support.

Is this project still active? If so, what are the odds of this (and the jRuby support in #147) landing any time soon?

@igrayson I included the first two commits, but the final commit diverges too much from the current master. If you'd like to see it's functionality added, please reach out to me, but as it stands it cannot come in.

@igrayson Thank you for supporting Betamax, and I apologize that your work was not included until now...


Added missing dependencies and updated python

@shankari
Removing system level gtest to use FetchContent.
Added missing system for package for python.
Updated pip
Added python flag to allow system lib changes

@couryrr-afs not sure I understand what this means

Added missing system for package for python.

Otherwise looks good.

@shankari

@couryrr-afs not sure I understand what this means

Added missing system for package for python.

Otherwise looks good.

Removed the comment. It was erroneous.


fix serverspec for new gem install method

this fixes #659 issues with serverspec failing to install the gem. relying on bundler to install the docker gem for serverspec. _autoload will try to load the gem and if it fails, we will then trigger chef to install it.
removing version pinning for excon and json; i dont see a need for this now that we are using chef_gem to handle the install.

manually merged in as 2de6d0cd0c0657c9396e0a87506a6acef40862f1

Robbing me of my stats!! haha 😉
Awesome glad we have moved away from vendoring gems. Can now apply this new method to other cookbooks 🍻

nah, I faked the author in the commit =)


added support for BatchLiquidatorV2

uses https://github.com/superfluid-finance/protocol-monorepo/compare/dev...BatchLiquidatorV2
deployed on optimism-mainnet @ 0xbF7BCcE8D60A9C3F6bFaEc9346Aa85B9f781a4e9
TBD:

[ ] add to ethereum-contracts package and update the dependency here
[ ] use the batch liquidator v2 for all liquidations (even if batch size is 1) if present
[ ] deploy to Arbitrum too

After talking with @Didi about this PR, we are not merging it "as is".
There is no drawback to use the new version of BatchLiquidator contract in all networks and we shouldn't try to specialised sentinel to each EVM network without a proper plan.


cannot set the output folder

svg-sprite always creates folders like svg, css/svg or symbol/svg within the path I specify and assumes, this is the folder structure I need. Unfortunately I need it in a different way. Could you please add some option to set the actual folder path where the files are placed without sub directories.

@kuntergunt Please have a look at the output destination documentation. You can achieve pretty much any structure you need.

I've already tried a dozen configurations. I always end up with at least a directory "svg" that gets created.

@kuntergunt Untested, but please use a dot "." to indicate "same directory". I'd guess an empty string evaluates as false which should equal to "use default".

Sure, I know. I used all sorts of dir names in my tests, just forgot to put that in the post correctly. But even that did not help. I'll make a workaround for now.

Found the solution: it's a combination of the dest and the sprite attribute that solved the issue. Thank you for support and doing this library Joschi.


Measure overhead of pushing everything into an external function

So the modification to PyEval_EvalFrameEx() would almost entirely shift into the JIT compilation function to make the modifications to Python even smaller and let the JIT have more control over details. This could also mean that the only change to code objects would be co_jit (or co_external or  something) so that JITs continue to have their scratch space for details but otherwise become as self-contained as possible.

[ ] Copy PyJittedCode over to Pyjion as PyjionJittedCode
[ ] Copy JIT free function into PyjionJittedCode
[ ] Copy co_run_count into PyJittedCode
[ ] Add co_extra to PyCodeObject as a PyObject *
[ ] Make the JIT compilation function be an execute_frame() function that takes the frame object and returns PyObject * as the return value for PyEvalFrame_EvalFrameEx() (can use PyEval_EvalFrameEx_NoJIT() when no JIT execution used)
[ ] Remove the JIT free function and simply free co_extra in Py_CodeType
[ ] Remove co_jitted
[ ] Remove PyJittedCode
[ ] Remove co_run_count
[ ] Rename PyEval_EvalFrameEx_NoJIT() to PyEval_EvalFrameDefault()

Tracking work in https://github.com/brettcannon/pyjion/tree/minimal_api

There was no definitive cost to moving to an external function vs not.


Generating token via CLI does not work with custom domains

Checklist

[X] I agree to the terms within the Auth0 Code of Conduct.

Describe the problem you'd like to have solved
I'm trying to generate token via auth0 CLI and the generated token places issuer value as being "TENANT_NAME.us.auth0.com" vs. Custom domain. We tried the following commands w/o any success:
auth0 login --tenant CUSTOM_DOMAIN_VALUE
auth0 test token --tenant CUSTOM_DOMAIN_VALUE
If we go via authorize url, use the base as CUSTOM_DOMAIN, the generated token correctly contains the ISSUER value being CUSTOM_DOMAIN. How to achieve this behavior via auth0 CLI?
Here's sample authorize url format that works:
https://CUSTOM_DOMAIN_VAL/authorize?response_type=token&client_id=CLIENT_ID_VALUE&redirect_uri=https://jwt.io&audience=MY_AUDIENCE_VAL&state=YOUR_STATE_VALUE
Describe the ideal solution
In the enterprise setup, using custom domain is very normal. CLI provides good way to generate tokens w/o writing extra code. Being able to generate token via CLI using custom domain will simplify the dev flow.
Alternatives and current workarounds
No response
Additional context
No response

Any update?


Request to add bio when there is no rich presence

As the title describes, when no rich presence is founded, a weird blank will be shown below the badge. Maybe adding a bio message will be helpful to make it look more balanced.
I like this Discord README Badge very much! Great work!

Thank you! I wasn't too sure what to put there when I made this project back then but it was definitely something I also that looked a little odd.
Discord's API doesn't give developers access to people's "About Me" section that people can define in their profiles.
Looking a bit through the most recent Discord.js docs, it seems I can at least get what badges they have (UserFlagsBitField). Maybe I'll fill the empty space with that.
I've been meaning to redo this project a bit but college tends to take a lot of my time.
This is definitely on the things to do for this project though!

For the time being, I've created a pull request (#3) that'll automatically reduce the height of the card when no activity is in progress. We can definitely consider adding a bio in the future though!

Pull request #3 was approved and the README has been updated with the new card states.
If something like "About Me" information ever becomes available maybe we'll bring the original card sizes back. For now, cards will now shrink if no extra presence data is there.


Port to rustls v0.20

Ports the codebase to the new rustls 0.20 version.
cargo test appears to be failing because of expired certificates.
Resolves #8

Hmm, nope, that's not it.
There are probably a few things I overlooked, let me give this a once-over.

cargo test appears to be failing because of expired certificates.

For this failure, I think you probably need to do something like https://github.com/tokio-rs/tls/commit/c2d1fe6813015e84449779d97c61e1924fc7b8c0.

Is this PR still alive?

Yes, I was just side-tracked. If it's important to you I can probably get this done pretty quickly.

I'm not really familiar with SSL, so I'm not entirely sure why the tests are failing here.

Not urgent no, thanks for your efforts!
I also believe to have found a bug.
I created the simplest possible server with this branch and async-std. I then called it with curl.
When I use server::TlsStream.read I don't get any data.
Without looking into it deeply, my initial guess is that the handshake logic is reading more bytes off the socket than just the handshake. I can create a repo with my noddy server if this helps?
This may be related to the EOF error you're seeing above?
Although more likely a socket is getting dropped somewhere before a clean shutdown has happened.
Let me know if you'd like some help.

Just to add for the most recent revision, TlsStream<async_std::net::TcpStream> async read is working for me now.

@smol-rs/admins Any blockers to this being merged?

Note: this PR should be squash-merged.


Create a full package of the C# code

We need to do a unity package from the C# code, to avoid making copy of each file to other project

I add a powershell script to generate the package that generate a folder that can be used as a package.


render/vulkan: Refactor image usages for modifiers

Makes this much more extensible so we could add a storage type in future for compute.
Signed-off-by: Joshua Ashton<EMAIL_ADDRESS>

wlroots has migrated to gitlab.freedesktop.org. This pull request has been moved to:
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3271


Fail Doxygen Test/Build when warnings appear

By changing WARN_AS_ERROR from NO to FAIL_ON_WARNINGS, doxygen will build the docs, but exit with an error code if there are any warnings, such as from undocumented members.
This allows us to easily see feedback when a test has undocumented members so that they can be fixed before merging to main.
Keep in mind, warnings will accumulate if they are allowed to merge regardless, making all future pull requests also display those warnings. This behavior should be helpful to encourage us to complete our documentation fully.
Also, since this is a github-actions change, I am going to self-merge in order to test it.

Cool, it failed (from undocumented members from initial commits on main)

Cool, it failed (from undocumented members from initial commits on main). Though there are also some versioning warnings.

Reopening to run actions

It works! Ready for review and merging if it looks good.

We now require public and private members to be documented after discussions.


feat(#1033): Add possibility to prompt for variables

Description
bru.prompt(varName, prompt) allows to specify variables that should be prompted in a pre- or post-request script
This is my first contribution to bruno, so I hope I got the implementation in accordance with the way things are supposed to be done. I am open to suggestions, e.g. if there would be a better way to implement this features or which kinds of test to include.
Contribution Checklist:

[X ] The pull request only addresses one issue or adds one feature.
[ X] The pull request does not introduce any breaking changes
[ X] I have added screenshots or gifs to help explain the change if applicable.
[ X] I have read the contribution guidelines.
[ ] Create an issue and link to the pull request.

Note: Keeping the PR small and focused helps make it easier to review and merge. If you have multiple changes you want to make, please consider submitting them as separate pull requests.
Publishing to New Package Managers
Please see here for more information.

I love this idea! Have you thought of a corresponding implementation for the cli?

Can you add an option to make the prompted variable secret like for a standard html password input then bruno would save the var as type: secret?


Simplify and release 0.2.0

Drop the standalone wasm package support. Keeping the main crate to pure business logic
avoids complications with different targets, conditional dependencies,
etc. and makes it easier to integrate in wasm projects. For example,
compiling a project not using wasm-bindgen to wasm32-unknown-unknown
when it has this crate as a dependency automatically introduced
wasm-bindgen into the equation, and that in turn introduces the need
for wasm bindgen in consumers of the resulting module. This is
disruptive. If we want an NPM module, it should be its own crate.
Update to edition 2021
Streamline Cargo.toml

closes https://github.com/prisma/connection-string/issues/16

superseded by https://github.com/prisma/connection-string/pull/27


.NET Core 5

hello dear
are you have plan to support .NET Core SignalR version 5 ?
thank you

I don't know if it could be helpful, but this library worked for me with .NET Core 6 (Minimal API)


fleetctl: call checkUnitState when unit exists on disk

in 1816c53ab58ca430914637cefc23985353b72d31 i missed a case where
checkUnitState was skipped by 'continue' in the case that the unit
exists on disk.

lgtm pending green


Upgrading to 6.13.5 causes "No suitable driver found for jdbc:mysql" error

I used Ebean 6.9.1 in my previous project and it works fine. Now for a new project I upgrade to Ebean 6.13.5, and then I get "No suitable driver found for jdbc:mysql" error when I deploy my war and make first db access.
In build.gradle I wrote
compile('org.avaje.ebeanorm:avaje-ebeanorm:6.13.5')
runtime('mysql:mysql-connector-java')

In ebean.properties I have
datasource.default=mysql

datasource.mysql.username=xxx
datasource.mysql.password=xxx
datasource.mysql.databaseUrl=jdbc:mysql://localhost/xxx?characterEncoding=UTF-8
datasource.mysql.databaseDriver=com.mysql.jdbc.Driver

Can you include the full stack trace?  This does not seem like an Ebean issue but more a classpath issue.

Having the same problem, but for MS SQL with JTDS:
Caused by: java.sql.SQLException: No suitable driver found for jdbc:jtds:sqlserver://...
	at java.sql.DriverManager.getConnection(DriverManager.java:689)
	at java.sql.DriverManager.getConnection(DriverManager.java:208)
	at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.createUnpooledConnection(DataSourcePool.java:432)
	at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.createConnectionForQueue(DataSourcePool.java:665)
	at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.ensureMinimumConnections(PooledConnectionQueue.java:227)
	at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.initialise(DataSourcePool.java:258)
	at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.<init>(DataSourcePool.java:226)

The only thing I changed is the maven dependency version (in this case 6.11.1 -> 6.14.1). The JTDS driver is present on the classpath (also as a maven dependency).
The config in the ebean properties file:
...
datasource.databaseUrl=jdbc:jtds:sqlserver://...
datasource.databaseDriver=net.sourceforge.jtds.jdbc.Driver
...

Looks like it is an classloader issue caused by https://github.com/ebean-orm/avaje-ebeanorm/issues/476
I am in a Spring environment, currently looking into it.

I wonder if it is https://github.com/ebean-orm/avaje-ebeanorm/issues/484 ?  ... maybe specific to the jdbc driver.

Are you able add ... Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") ... before the DataSourcePool is initialised?

Sorry, in your case that should be ... Class.forName("net.sourceforge.jtds.jdbc.Driver");

@koyabr What specific version of the MySql jdbc driver are you using?  (mysql-connector-java)

Ok, looks like I can reproduce it using the MS SQL Server jdbc driver ... hold on.

@rbygrave You were right, adding
Class.forName("net.sourceforge.jtds.jdbc.Driver");

before creating the connection fixed it. The latest JTDS driver version is from 2013 and JDBC 3.0, so this explains it. Are there any drawbacks using such an old driver? I might consider switching to the official Microsoft driver, even if there is sadly no official maven dependency for it.

Ok good.  Unfortunately I mucked up my test and got a false positive so actually I haven't reproduced it just yet (but I'll look to do that with that JTDS driver) ... that said I'm reasonably confident this is the problem now which is:
Older JDBC 3 drivers that don't auto-register themselves will throw this SQLException: No suitable driver found
Q: Are there any drawbacks using such an old driver?
A: I really don't know (JTDS vs the MS driver).  In a way though it's not great if Ebean is forcing that decision on you so really I need to add that Class.forName() call back in so that people can use their older driver drivers (as there should be no negative side effects to having that  Class.forName() call there except that at some point in the future when everyone is jdbc4+ it is completely unnecessary).
Summary:

I'm just going to confirm/reproduce
I'll then look to add in that Class.forName() call ... and JDBC 3 drivers should be happy again.

I can reproduce this with JTDS 1.2.2  (and noted that it does not reproduce with 1.2.8 or 1.3.1 of the JTDS driver).
The "fix" is to add back in the Class.forName() on the driver. Effectively this confirms that this was a regression/bug introduced by #484 ... in that we still need to support JDBC3 drivers for a bit longer.


Added template for release notes

This is the first step towards automating the release notes process. This presents a template that we will link to in a prow job. This will be expected to be filled in for all user facing changes.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@brian-avery: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
0b34f9d28dffb8fdda90b0b5a3e4732851e72a47
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests_istio

@brian-avery so, what's the plan here? For every PR that is worth a release notes entry, the PR author should create a file in this directory using this template? What's the name of the file?
Or a file should be created for every release instead, and each file has several entries - similar to a CHANGELOG file?

I think its one file per PR. A changelog file gets merge conflicts easily
On Thu, Jul 9, 2020 at 12:49 PM Jonh Wendell<EMAIL_ADDRESS>wrote:

@brian-avery https://github.com/brian-avery so, what's the plan here?
For every PR that is worth a release notes entry, the PR author should
create a file in this directory using this template? What's the name of the
file?
Or a file should be created for every release instead, and each file has
several entries - similar to a CHANGELOG file?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/25368#issuecomment-656318365, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXP4MOWUR6RWOQ7C6J3R2YNNRANCNFSM4OVXW56Q
.

User flow is:

User creates a PR.
If PR doesn't have a file in the release notes directory with an extension of .yaml, then prow adds a message to the PR asking for either a .yaml to be added or for a command to be entered/label applied saying no user facing changes and providing a link to an example yaml file with comments describing field options. Optional at first for testing, once we have confidence, a response to this would become required.
PR merges
Tooling comes in (release-builder? CLI?) comes in, clones the repo(s), and generates release and upgrade notes.

The point of this tooling is to make it so that release notes are managed on a per PR basis, not per release. This will greatly reduce the amount of time to write release notes as well as make it so that release notes are added when PRs are created rather than trying to figure out at the end what PRs might affect users.

I am surprised by

Tooling comes in (release-builder? CLI?) comes in, clones the repo(s),
and generates release and upgrade notes.

Prior art from envoy and Kubernetes, as far as I know, is for each PR to
give their snippet then at the release time a human aggregates them to a
cohesive story. What is the tooling actually doing with the yaml on each PR?
On Thu, Jul 9, 2020 at 12:56 PM Brian Avery<EMAIL_ADDRESS>wrote:

User flow is:

User creates a PR.
If PR doesn't have a file in the release notes directory with an
extension of .yaml, then prow adds a message to the PR asking for either a
.yaml to be added or for a command to be entered/label applied saying no
user facing changes and providing a link to an example yaml file with
comments describing field options. Optional at first for testing, once we
have confidence, a response to this would become required.
PR merges
Tooling comes in (release-builder? CLI?) comes in, clones the
repo(s), and generates release and upgrade notes.

The point of this tooling is to make it so that release notes are managed
on a per PR basis, not per release. This will greatly reduce the amount of
time to write release notes as well as make it so that release notes are
added when PRs are created rather than trying to figure out at the end what
PRs might affect users.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/25368#issuecomment-656321131, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXPD7N4XTZRXKWDGFRLR2YOHNANCNFSM4OVXW56Q
.

So, the PR author decides the filename ending with .yaml? When this file will be removed? Never?

The docs team and release managers would still be required to review the release notes/upgrade notes prior to publishing on Istio.io. However, I can see it being very useful to create draft releases throughout the release process. Consider testing days for instance. Seeing what the changes are in that beta can be useful in figuring out what to test.
I see a flow where we support release notes generation on every build, with a formal review for wording and terminology before the release notes are actually published on Istio.io.

As far as file naming convention, I'm don't think it matters as long as it is unique. Expanding on the flow above, for tooling, I see:

Tooling accepts a branch and an optional argument for the previous release tag. If the previous release tag is present, it does a literal diff between the two to find any new files. For new files, it generates a release/upgrade notes entry as appropriate.
If a previous tag isn't present:
** It compares master against the previous branch, selecting any new release notes present in master but not in the previous release.
** It also selects any release notes from the current release branch.

The content will then be used to create a draft markdown file containing the release notes as specified. This can be run locally by a developer to see the changes at the current point in the release or by the release managers to create a draft of the release notes for review by the release managers/docs team.

Also, Kubernetes is using a tool to generate their release notes as well. This just does it off a file based system rather than the GitHub description.

I'm concerned about the need of creating a temporary file, with a random name in the source tree. That file will be checked in and then never used anymore.
What about an approach where the user must issue a command in a form of comment, say, /release-note BLAH where BLAH can come from a certain template. When they issue this command, the bot adds a certain label to satisfy the test that checks for its presence. And then the bot could do its job, like, in a postsubmit job create the release notes entry. Perhaps an automated PR in the docs repo?

I've looked at both implementations. Here is the discussion from T&R Slack (https://istio.slack.com/archives/C6FCV6WN4/p1594141690169000):
File Advantages:

controlling the release notes independently from GitHub
ability to test content locally
release notes can be updated after PR has been merged
Far fewer GitHub API calls and GitHub tightly rate limits
Easier to track changes between branches. Especially at the master level.
Potentially easier to document with YAML comments

Cons:

a little bit less obvious. We could fix this with a prow job that checks for a release note being added and errors if it hasn't been given an exception saying this doesn't have any user facing changes.

There's also no reason files can't be cleaned up periodically if we feel that's important. This is tracking added files in a release.

When you say "an automated PR in the docs repo" what do you mean? Are you suggesting that the bot would generate a file in the docs repo or that there would be n pull requests against docs (one per PR)? For the latter, it seems like it might be a lot of extra work on the docs team.

If it helps, this model has been extensively tested by the OpenStack team in their releases. See: https://docs.openstack.org/reno/latest

I'm not ok with the file approach itself. I liked its pros. I'm just concerned about a possible mess in that directory, with files that, by looking at them we have no idea what they are.
One possible solution for this would be having the filename matching the issue number, like 25368.yaml. For this to work well we would need to know the issue number beforehand, which is easy if we enforce that every PR must have an issue associated with it. I don't think that using the PR number would work, because the PR number is only known after the PR is created.

PR number wouldn't work here because it's not known ahead of time. Issue number wouldn't work here because often no issues exist for a PR.

PR number wouldn't work here because it's not known ahead of time. Issue number wouldn't work here because often no issues exist for a PR.

That's why I suggested to enforce every PR have an issue associated. At least every PR that's worth a release note note entry.

PR number also doesn't provide any useful data to humans. Not sure how much that matters. I have no problem suggesting an issue for every user facing change. OpenStack does a random string of characters and a short description:
Fixed_mtls-l79jx.yaml
Added_istioctl_analyze-xmhhj.yaml

Thoughts on something like that? Could also do date.
07092020-Fixed_mtls.yaml
07102020-Added_istioctl_analyze.yaml

Solo.io just accepts whatever filename you feel like giving it. The filesystem would enforce uniqueness. Not really much preference here. I'm open for suggestions. I was assuming that people would create useful filenames, but perhaps that's a bad assumption.

I was wondering... how will the tooling know which version to generate a note entry out of a .yaml file? Does it make sense to add a field like applyToVersions: []string in that yaml file?

No problem. Thank you :)


Add Bake functionality to dashboard

Codecov Report

Merging #1471 (88d3c46) into master (fdbf9ce) will increase coverage by 0.01%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##           master    #1471      +/-   ##
==========================================
+ Coverage   81.34%   81.35%   +0.01%
==========================================
  Files         137      137
  Lines        4416     4419       +3
  Branches      148      149       +1
==========================================
+ Hits         3592     3595       +3
  Misses        824      824

Impacted Files
Coverage Δ

...n/scala/com/ing/baker/runtime/akka/AkkaBaker.scala
79.35% <100.00%> (ø)

...untime/akka/actor/process_index/ProcessIndex.scala
85.47% <100.00%> (ø)

...ng/baker/runtime/model/RecipeInstanceManager.scala
75.64% <100.00%> (+0.31%)
:arrow_up:

...la/com/ing/baker/runtime/model/RecipeManager.scala
96.42% <100.00%> (ø)

...ing/baker/runtime/serialization/JsonDecoders.scala
89.65% <100.00%> (+0.36%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


nginx should support Brotli

at:
./nginx/Dockerfile
old:
FROM nginx:alpine
new:
FROM fholzer/nginx-brotli
or add .env variable to switch

I feel like this is a matter of taste, and shouldn't be an out of the box default. Having an .env variable to switch is a great idea. If the maintainers are keen I'd be happy to make the PR.


pami* autobuilds failing since C -> C++ conversion

Original issue: https://charm.cs.illinois.edu/redmine/issues/1905

All pami{lrts}-bluegeneq-* autobuilds have been failing since the C -> C++ conversion was done last week.
The last test (bigsim) appears to run okay, but the tests exit with a failure:
make[3]: Entering directory `/gpfs/vesta-fs0/projects/CharmRTS/nbhat/autobuild/pamilrts-clang-nosmp/charm/pamilrts-bluegeneq/examples/bigsim/emulator'
make -C littleMD
make[4]: Entering directory `/gpfs/vesta-fs0/projects/CharmRTS/nbhat/autobuild/pamilrts-clang-nosmp/charm/pamilrts-bluegeneq/examples/bigsim/emulator/littleMD'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/gpfs/vesta-fs0/projects/CharmRTS/nbhat/autobuild/pamilrts-clang-nosmp/charm/pamilrts-bluegeneq/examples/bigsim/emulator/littleMD'
../../../bin/testrun  +p4 ./maxReduce +cth3 +wth10 +bgstacksize 102400 --pernode 8

Running on 4 processors:  ./maxReduce +cth3 +wth10 +bgstacksize 102400
runjob -p 8 -n 4 --block VST-02460-13571-32 --envs BG_SHAREDMEMSIZE=32MB  :  ./maxReduce +cth3 +wth10 +bgstacksize 102400
Choosing optimized barrier algorithm name I0:MultiSync2Device:SHMEM:GI
Charm++> Running in non-SMP mode: numPes 4
Converse/Charm++ Commit ID: e264b88
Charm++> Disabling isomalloc because isomalloc disabled by conv-mach.
BG info> Simulating 3x3x3 nodes with 3 comm + 10 work threads each.
BG info> Network type: bluegene.
alpha: 1.000000e-07	packetsize: 1024	CYCLE_TIME_FACTOR:1.000000e-03.
CYCLES_PER_HOP: 5	CYCLES_PER_CORNER: 75.
BG info> cpufactor is 1.000000.
BG info> floating point factor is 0.000000.
BG info> BG stack size: 102400 bytes.
BG info> Using WallTimer for timing method.
Initializing node 0, 1, 0
Initializing node 1, 2, 0
Initializing node 2, 0, 0
Initializing node 1, 0, 0
Initializing node 0, 2, 0
Initializing node 2, 1, 0
Initializing node 1, 0, 1
Initializing node 2, 0, 1
Initializing node 0, 0, 1
Initializing node 2, 1, 1
Initializing node 1, 1, 1
Initializing node 0, 0, 2
Initializing node 0, 0, 0
Initializing node 0, 2, 1
Initializing node 1, 1, 2
Initializing node 2, 2, 1
Initializing node 2, 2, 2
Initializing node 0, 1, 2
Initializing node 1, 1, 0
Initializing node 1, 2, 2
Finished Initializing 2 0 0!
Finished Initializing 1 0 0!
Finished Finding Max
Initializing node 1, 0, 2
Initializing node 2, 2, 0
Sent reduce message to myself with max value 9
Finished Finding Max
Initializing node 2, 1, 2
Finished Initializing 0 2 0!
Sent reduce message to myself with max value 9
Finished Finding Max
Initializing node 0, 1, 1
Finished Initializing 2 1 0!
Finished Initializing 0 1 0!
Finished Finding Max
Initializing node 1, 2, 1
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Initializing 0 0 1!
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Initializing 1 2 0!
Sent reduce message to myself with max value 9
Sent reduce message to myself with max value 9
Initializing node 2, 0, 2
Finished Initializing 1 1 1!
Initializing node 0, 2, 2
Finished Finding Max
Finished Initializing 1 0 1!
Finished Initializing 0 0 0!
Finished Finding Max
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Finding Max
Sent reduce message to myself with max value 9
Finished Initializing 2 2 1!
Sent reduce message to myself with max value 9
Sent reduce message to myself with max value 9
Finished Initializing 2 1 1!
Finished Finding Max
Finished Initializing 2 0 1!
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Finding Max
Finished Initializing 1 1 0!
Sent reduce message to myself with max value 9
Finished Initializing 0 1 2!
Finished Initializing 0 2 1!
Finished Finding Max
Sent reduce message to myself with max value 9
Finished Finding Max
Sent reduce message to myself with max value 9
Finished Finding Max
Sent reduce message to myself with max value 9
Finished Initializing 0 0 2!
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Initializing 2 2 0!
Finished Initializing 1 2 2!
Finished Initializing 1 0 2!
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Initializing 1 1 2!
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Finding Max
Sent reduce message to myself with max value 9
Sent reduce message to myself with max value 9
Finished Initializing 2 2 2!
Finished Finding Max
Finished Initializing 0 1 1!
Finished Finding Max
Finished Finding Max
Sent reduce message to myself with max value 9
Sent reduce message to myself with max value 9
Finished Initializing 2 1 2!
Sent reduce message to myself with max value 9
Finished Finding Max
Finished Initializing 1 2 1!
Sent reduce message to myself with max value 9
Finished Finding Max
Sent reduce message to myself with max value 9
Finished Initializing 2 0 2!
Finished Finding Max
Sent reduce message to myself with max value 9
Finished Initializing 0 2 2!
Finished Finding Max
Sent reduce message to myself with max value 9
The maximal value is 9

BG> BigSim emulator shutdown gracefully!
BG> Emulation took 0.044622 seconds!
[Partition 0][Node 0] End of program
fatal> error code 1 during remote> ./instead_test.sh charm/pamilrts-bluegeneq/tmp make  test --pernode 8
Returned from executing scripts/pamilrts-bluegeneq/test on remote host
fatal> Test on remote host failed with fatal error (0)
Bad: Test on remote host failed with fatal error (0)

Original date: 2018-05-11 18:10:56

If you set a breakpoint on exit(), does it get hit, and if so what is the backtrace?

Original date: 2018-05-12 14:38:55

It looks like verbs-linux-x86_64-smp failed in a bigsim test last night: http://charm.cs.illinois.edu/autobuild/cur/verbs-linux-x86_64-smp.txt

Original date: 2018-05-16 19:56:34

I found that autobuild began failing because of the addition of new tests which caused the total execution time to go over 2:00:00 hours, which is the maximum execution time for the queue. When I run tests separately, bigsim tests run smoothly on pami{lrts}-bluegeneq.
So, ideally, the bug fix for this bug is to support pami builds to run smoothly even when execution time is > 2 hours.

Original date: 2018-05-16 19:59:30

2 hours seems like a long time for the tests to run. Maybe #1872 describes the problem?

Original date: 2018-05-16 20:04:48

This may be due to examples/ampi/pingpong recently being added to 'make test' and the fact that AMPI pingpong is very slow on BGQ. I'll submit a patch to reduce the number of iterations that it runs.

Original date: 2018-05-16 20:11:28

Make examples/ampi/pingpong/ run faster, especially on BGQ: ~~https://charm.cs.illinois.edu/gerrit/#/c/charm/+/4195/~~ https://github.com/UIUC-PPL/charm/commit/aa9d03ffc135032e75e44cc000fcaafdf72877eb

Original date: 2018-05-25 20:18:41

Fix for adding separate targets: ~~https://charm.cs.illinois.edu/gerrit/#/c/charm/+/4198/~~ https://github.com/UIUC-PPL/charm/commit/fda28e4d308f9f7f97a2fe77104040ca79c0f89b
Additional fixes were made to autobuild to have two instead_test.sh launches, each with a separate target (test-tests and test-examples).


Please prune the dependencies in requirements.txt

Hi @souzatharsis, thanks for making this open source.
I don't think all the packages listed in requirements.txt are direct dependencies. You can list only the primary dependencies while removing the peer & dev dependencies from the main requirements.txt.
Please let me know if you need any help doing this.

Thanks.
requirements.txt has been generated with poetry as below:
poetry export -f requirements.txt --output requirements.txt --without-hashes --without-urls --only main
Do you have an alternative recommendation?

yes, at a minimum we should remove dev dependencies from requirements.txt
that complicates things a bit as many platforms assume all you need is in requirements.txt in order to deploy your app (gradio, huggingface, etc) but of course one can work around that at deployment phase for target platform

I don't want to add to your maintenance workload but I think astral-sh/uv is a better option for dependency management. It's 10x faster than poetry, integrates well with astral-sh/ruff, and allows tracking all dependencies in one place (the requirements.txt file).

Sounds good; I've seen uv and it's awesome and perhaps the future.
Contributors can opt to use uv as they wish and generate and push updated requirements.txt from it.
I've added this info to Contributors guide.
I will re-generate requirements.txt without-dev dependencies from poetry and push it as soon as I manage to test it.

I am all for uv, maybe rye too. But As @nwaughachukwuma said, I was hesitating to push for this because of the maintainer burden (which I contributed a lot lately ahah) .
A technique I use to prune dependencies is to use pipdeptree and was satisfyed with the results with pipdeptree --warn silence | grep -E '^\w+'. But maybe there are other tools for that ?

Please feel free to close this, @souzatharsis


CI/CD does not have poetry version pinned in tox config

Tox is installing latest poetry which is leading to unstable builds:
https://github.com/CycloneDX/cyclonedx-python-lib/actions/runs/3969592647/jobs/6804294024

Fix already in main: https://github.com/CycloneDX/cyclonedx-python-lib/commit/7f8c668cf152af554dbc5183f275723cd3d472b2


[Android] Background Notification Cannot Be Processed After Going to Background for Some Time

Expected Behaviour
Background notification sent via FCM should be processed in the following scenarios:

When the app is put in to background and showing up in Recent Apps.
When the app is force closed in the background.

Actual Behaviour

Background notification is processed successfully within 5 min after being put into background. However, when going idle in the background for 10 min, subsequent background notification cannot be processed.
Background notification is processed successfully when the app is force closed in the background.

Reproduce Scenario (including but not limited to)
The following data payload is used in both scenarios described in the Actual Behaviour section
data: {
  "content-available": 1,
  "force-start": 1,
  "no-cache": 1,
  "notId": 1234
}

Steps to Reproduce

Start the cordova app and put it in background.
Send an FCM notification (I'm using the Ruby gem andpush) within 3 min of the app going to background.

The background notification is processed properly.

Wait for 10 min and send another FCM notification

The background notification is not processed.

Force close the cordova app in the background by pressing the Recent Apps button and swipe the app.
send another FCM notification

The app is waken up and processes the background notification successfully.

Platform and Version (eg. Android 5.0 or iOS 9.2.1)
Android 7.1 and Android 8.0
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
Nexus 6p (Android 8.0), Asus ZenPad 3s 10,
Cordova CLI version and cordova platform version
cordova --version                                    # e.g. 6.0.0
> 8.0.0
cordova platform version android                     # e.g. 4.1.1
> Installed platforms:
    android 7.1.0
    ios 4.5.5

Plugin version
cordova plugin version | grep phonegap-plugin-push   # e.g. 1.5.3
> 2.2.3

Sample Push Data Payload
{
  "to": "<registration token>",
  "data": {
    "content-available": 1,
    "force-start": 1,
    "no-cache": 1,
    "notId": 1234,
    "textMessage": "Notification Processed"
}

Sample Code that illustrates the problem
Use cordova-plugin-local-notifications to show the data in incoming FCM notification
var pushNotificationOptions = {
  android: {
    senderID: <FCM Project Number>,
    forceShow: false
  },
  ios: {
    alert: true,
    badge: true,
    sound: true
  }
};

var push = PushNotification.init(pushNotificationOptions);

push.on('notification', function(data) {
  makeServerApiCall();  // Send HTTP request to server.
  cordova.plugins.notification.local.schedule(
    {
      text: data.additionalData.textMessage
    }
  );
});

Logs taken while reproducing problem
N/A.

It is reproducible on my OnePlus 5t running on 8.1.0.
Things I noticed:

On Step 3, logs did not produce the normal log outputs for mapping the keys.
If you skip to step 4 and force close the app, the first notification will go through and future ones will log mappings, but no notification will be shown.
On step 5 the app actually opens in the foreground. I see this as insanely obtrusive for starting back up. Does it absolutely need to do this?

@seang96 In Step 5 my app does not open in the foreground. It stays in the background for subsequent FCM notifications.

@edmondchui interesting, I wonder why this occurs for me then.

I fixed my issue. Set forceShow: false to forceShow: true.
Also try to install the plugin locally through my repo here https://github.com/seang96/phonegap-plugin-push it fixes the issue I was having where it would restart the application in the foreground.

After more testing, I found out that the notification is received on Android even when the app has been idle in the background for over 10 min. The false alarm was caused by the Android OS that doesn't send the server call response to the app until the app goes to foreground again. That is a separate issue so I'm closing this issue now.