[Question] equation(11) in your paper

Required prerequisites

[X] I have read the documentation https://safe-rlhf.readthedocs.io.
[X] I have searched the Issue Tracker and Discussions that this hasn't already been reported. (+1 or comment there if it has.)
[X] Consider asking first in a Discussion.

Questions
may I know how you proceed the hype parameter d? I cannot find the implementation in the source code?
Checklist

[X] I have made every effort to write this issue in English, including all comments, the title, and the description.
[X] I have provided all relevant and necessary information above.
[X] I have chosen a suitable title for this issue.

The -d seems the hype parameter threshold mentioned in Table 4.

ok, so if -d is -3, that means d is 3 in the equation 11, am I correct?

And could you please show the corresponding snippet here? Because I cannot find it in the code.

If -d is -3, that means d is 3 in the equation 11, am I correct?

I think so. But I'm not sure ... They seem using the d while updating the $\lambda$ in safe-rlhf/safe_rlhf/algorithms/ppo_lag/trainer.py line 318:
lambda_loss = -(episode_cost - self.threshold) * self.log_lambda.exp()

@Ruibn Hi, threshold in the codebase and training scripts is $-d$ in the cost objective term in the paper. @pxyWaterMoon Thanks for the assistance.

@pxyWaterMoon @XuehaiPan got it. Thanks for the clarification.

Closing due to inactivity. Please feel free to ask for a reopening if you have more questions.


Does not work on Linux with Podman Machine (errors with cp: error writing '/output/image/./disk.raw')

Building any image does not work on Linux at the moment and always ends with an error.
Running Fedora 40. This is used with Podman Machine.
I can confirm this works fine on macOS.
Command to run:
podman run \
  --name httpd-bootc-image-builder \
  --tty \
  --privileged \
  --security-opt label=type:unconfined_t \
  -v /home/wikus/bootc/test123:/output/ \
  -v /var/lib/containers/storage:/var/lib/containers/storage \
  --label bootc.image.builder=true \
  quay.io/centos-bootc/bootc-image-builder:latest-1720185748 \
  quay.io/bootc-extension/httpd:latest \
  --output \
  /output/ \
  --local \
  --type \
  raw \
  --target-arch \
  amd64

Output:
Generating manifest manifest-raw.json
DONE
Building manifest-raw.json
starting -Pipeline source org.osbuild.containers-storage: c92d1cfb2c847de51c3e83e23a7cb26ec89b77a4fdd15d604f23bf98f94b7478
Build
  root: <host>
Pipeline build: 92c1e3447a9297bfaef6bc2b513753780ee6ba30d02eb4b59ff4545722c2db59
Build
  root: <host>
  runner: org.osbuild.fedora38 (org.osbuild.fedora38)
org.osbuild.container-deploy: d07247389ed74d343ba8009a2603b8cfdd8df35bc9866cfac5452b5678b5a327 {}
Getting image source signatures
Copying blob sha256:050a8d406ab9bebd00216e052ad3fc5dac1e2ab36f07355972946d0d5f7cfe8d
Copying blob sha256:88aab01220f9684503fb67e4ac6c7548d5503bec19e1b9935e04f86119f72f5c
Copying blob sha256:d8decd5f703135bd521efbb9c6fae5109e665923da66e3255edbe3c0ae33623f
Copying blob sha256:4422b7a8bb166aa0d593590047a73ad2a9a5bf388b4a352012878223716988a5
Copying blob sha256:e3b62f900c8b4709ae357ad311e304c2a55916e024fe4dc02568661c209abd4f
Copying blob sha256:bc1abff2c8d4d62d4e06e3455d87c243f6620d0439dd0ac1c9d2891758c25f75
Copying blob sha256:2c53e7fc418de04a2f593e22c9038f3629c2b5b1eff25bc42e46bbfe292a76ae
Copying blob sha256:40694771f957e0d159533bff1d82515036931bbc226938d8eca7612053d6336d
Copying blob sha256:547b4fc5eb1d0e4ec374f4d01865486ba64df03cf160c6adb2b0d0309c3a50fa
Copying blob sha256:f7009374c8ac81e22d17ad6aa9065552d7fcf74b50229f467e4593e047c8e38d
Copying blob sha256:3b3a32a51b11fb5a10b36d7fd6c5785c149b41f765471c50510f3b9247d29fdd
Copying blob sha256:76817607bbbad2236f463808a1d62d82b929189fa2091412573dff1813e3a591
Copying blob sha256:fcf6481a4a7a731847736583e0996a1a6585efff15099a1a2e316d34ebc725a2
Copying blob sha256:ecf93de80cdf448eafa578da45ebbfe6184e0c1900cad7403a251fe444911133
Copying blob sha256:24a595cdf1dacc9a5841be4b12b41ff2d678e56e91005b76e7efc641b985c244
Copying blob sha256:28bc05ee29ada09fd624a599de52d59243cf5fb35fefdf0560ebc9445d11d7cf
Copying blob sha256:2b11556798bcedcc0b4033383e8f8a392fbccca8eeeb4737ef4ab97034313d12
Copying blob sha256:7cd49ddea5e689996c72a6622ce847e22df580f01ad035fedf35bd8aa7d518c0
Copying blob sha256:312bd44fbfb86e4a31816751d39104a1bdd0e1ffed486ed5df080bcf92d99885
Copying blob sha256:4d4514d9afbcb103d0d24b1cdb5306c0da155b039a954d84cef550146bf51134
Copying blob sha256:68a338e45b6b13dca85ccf3bea266774a1ef9c5ef29aa8297504633c1c5b1b0e
Copying blob sha256:3aa7de50f1da1b9d27da718dade01f3df4ebdaf9d7a891df71932a612229ee2d
Copying blob sha256:03f8187d462decd660e9d518a136c79c867bae006e6d4ad0e29cd476b7f81f5d
Copying blob sha256:7fd3632758b032d1f41d535673b314aad8ef42a63eb5eecad56bda93dc344621
Copying blob sha256:49affea1b052e35d393f5f3551c58738cf44aadf46a39e782bd9415eadd53224
Copying blob sha256:ff69d462f41d09a5560c59f9696c03f8f534795a193ff7d38e4314906a6c02c1
Copying blob sha256:8bf2dcf18ec5748e2c8e10a6120442946787c797e08371844dfafb69955e396d
Copying blob sha256:f24cd4a0d082f0fcec67ffa828116885613fbe6b89b624813edcc756a165091f
Copying blob sha256:69b91f1def4779a00343db294a8a0c0a311ee41da671ab64816ef0d87cf7c096
Copying blob sha256:3e71bd75a420991927ab6b1eff1f04b261e9ab67c5a153dfe915db117b7373ff
Copying blob sha256:06aadb75dc1a18d58c7cb5e7dc6e4652e73abac9c6e762034c4b8f160045a692
Copying blob sha256:653ff0858b056823c5b078870b6ab41f61a6ce58b37de5314f13a32f65268c24
Copying blob sha256:a284a4218a2f4decd70ea6ff4bbf202c07aca7e5759a0ab6589cf841dd64ec3c
Copying blob sha256:2d20fc08fa88b301c5ba5d3bb1f136c9655c8c401b8743e00cd11fc9fac12697
Copying blob sha256:83e6ac618a47cd5dde370b59c684af7e878139b301c5c32f3e38d141cfde34f5
Copying blob sha256:b479021718aac3c23fa6e054b4c5ec4d46f38f475da37e814e558a96f7e485a3
Copying blob sha256:3ba8418305d2cff71ed367962535e6dd30af2f0a7e461b167f4247e2f514f1ad
Copying blob sha256:b30c6b1a08063708e9f3cd5424762a7be6372c085132bf91fdd5ac4b5e39be87
Copying blob sha256:5a520e4d1e26db369da29cb3964e56f2a771df952afc69abd135388d3d1d9b9a
Copying blob sha256:778fe1335137f29cbdae3105d0bfffbb0f4cc10cdad293918204995f7eb6fe2e
Copying blob sha256:8269eca1801f0db635a35c39c81eef9e5bef566cdaeb85a176a224e93947e6aa
Copying blob sha256:c7bf665245d94ecc749b04873351b174465b6e53a8e48c2618b7e6dc5a7df35e
Copying blob sha256:c45816af2e117471546069774e8f8b2af0c296ff837e333521cefd74ca9ab937
Copying blob sha256:902c912da3357e1bd00fef2b21a80fb3033f4ad08ce694f22f78aa2c1b3e8ed6
Copying blob sha256:707a1af1c29276330ab1535be8482d4cae20239798714b2e3616ea7a3a973c7e
Copying blob sha256:b9f62a844b0ea6dd17c7405e7a36deb3b6f01478bee7d65ca93b96462be1596f
Copying blob sha256:ed522efe7b99f01bf166401a8824117866d283645f25066e538bc3862dc8a9b2
Copying blob sha256:7ed6967e21ad01b1999fa2b34ff9008a15d1e0c3191287b9e6eb545c89e5ef9f
Copying blob sha256:8d400339b2f320fcadf8ab94ea430cfea9e076fd6623cf3be61bd31c26f9a8a6
Copying blob sha256:ec63d786a92b9a38ddc020f63e10adbad042496e26bb39699a5e1919de250002
Copying blob sha256:9867800280a5257d4a30bd5d9a46b91a2a2bd0ce1a34e5683782d8fcad5b54c7
Copying blob sha256:de54488a85698b8b06651da0ab00608224234e5ff38f3c7e24945fcc3151906a
Copying blob sha256:7dfc49c222e13a272c475e3fffa3f3e169e086f56278b2cd32aacc139d7f96e4
Copying blob sha256:bf89277fd95ba69663e68cf56956db2120762724b0aaf1e1712c3f36145b9d1e
Copying blob sha256:faf56c9d61bcb4ba9ff0c3e94e8f6fcfe7b6e82f53445889ff89f78b1dbe264b
Copying blob sha256:e667dc94e2bfcc94e4f1db3fb642d62caa6026f1e12dc6c8aafdbbb8fd99d67a
Copying blob sha256:fb3536218ac1cc2c2466d4ea94fcd6678ad2d4b87c7c2ae04db9d287976722d2
Copying blob sha256:4b845f795692745dfa8ebb3807dde10d1aa718e389eaf25b2b5d7b72a8fd4df5
Copying blob sha256:4f56878fc2692b9c600f19df2771248c2a22a968b98cc7620ef6c2aec58bd1ff
Copying blob sha256:a9b9d3ed600815d86d4cb3a692dacb6c84a204c4227f08854bacbb58da21ae20
Copying blob sha256:b1d37af156e3e02c162b17432a2ca07cbdeb6b87422b1aebf8cc6beb839bbaba
Copying blob sha256:d87815c86f3e11b1c665761ff7ac2f81f85d4c32c4663562ea3aec332e5c84b3
Copying blob sha256:0f221afcb054ecc51ec1d5bbee34e6a431e6ddc6d869e52c7247afe3059bea7d
Copying blob sha256:86d200f230428e1d521446084c9ae311af69a8bd75bafe725e7956f81459bd6c
Copying blob sha256:12787d84fa137cd5649a9005efe98ec9d05ea46245fdc50aecb7dd007f2035b1
Copying blob sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef
Copying blob sha256:4e844e9d7ec5da8fa840494e93eebf4612d30e5b71671458b3f33cebc9677009
Copying blob sha256:2ebcbfdf28cb1fab7e4b5a82cdff3147e1f20b15c043d6cae2d584f33f57099a
Copying blob sha256:c011a9b134b868c6643d874a2a8c8b443657e90aebacf5035130c3b0d732292c
Copying config sha256:1808c4ba49140f6f9e6e94045e0bfe284cf85af0ee0ea4add80d7426bd1598ee
Writing manifest to image destination
1808c4ba49140f6f9e6e94045e0bfe284cf85af0ee0ea4add80d7426bd1598ee
Untagged: docker.io/library/tmp-container-deploy-66972563953142:latest
Deleted: 1808c4ba49140f6f9e6e94045e0bfe284cf85af0ee0ea4add80d7426bd1598ee

⏱  Duration: 86s
org.osbuild.selinux: 92c1e3447a9297bfaef6bc2b513753780ee6ba30d02eb4b59ff4545722c2db59 {
  "file_contexts": "etc/selinux/targeted/contexts/files/file_contexts",
  "exclude_paths": [
    "/sysroot"
  ],
  "labels": {
    "/usr/bin/mount": "system_u:object_r:install_exec_t:s0",
    "/usr/bin/ostree": "system_u:object_r:install_exec_t:s0",
    "/usr/bin/umount": "system_u:object_r:install_exec_t:s0"
  }
}
setfiles: Regex version mismatch, expected: 10.42 2022-12-11 actual: 10.40 2022-04-14
setfiles: Regex version mismatch, expected: 10.42 2022-12-11 actual: 10.40 2022-04-14

⏱  Duration: 19s
Pipeline image: b16d5c5fd4bb6729d662dbdd89664b404b8ca46416c65f85cafbcbac208823fc
Build
  root: 92c1e3447a9297bfaef6bc2b513753780ee6ba30d02eb4b59ff4545722c2db59
  runner: org.osbuild.linux (org.osbuild.linux)
org.osbuild.truncate: e53575e34b00b3248112e7251de0dc75369b808c28d3957835266ec864aa6b27 {
  "filename": "disk.raw",
  "size": "10737418240"
}

⏱  Duration: 0s
org.osbuild.sfdisk: e17c41ddf75467806583a832b01fa52375c02514be40b491c4999d092336fb55 {
  "label": "gpt",
  "uuid": "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
  "partitions": [
    {
      "bootable": true,
      "size": 2048,
      "start": 2048,
      "type": "21686148-6449-6E6F-744E-656564454649",
      "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
    },
    {
      "size": 1026048,
      "start": 4096,
      "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
      "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
    },
    {
      "size": 2097152,
      "start": 1030144,
      "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
      "uuid": "CB07C243-BC44-4717-853E-28852021225B"
    },
    {
      "size": 17844191,
      "start": 3127296,
      "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
      "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
    }
  ]
}
device/device (org.osbuild.loopback): loop0 acquired (locked: True)
label: gpt
label-id: D209C89E-EA5E-4FBD-B161-B461CCE297E0
start="2048", size="2048", type="21686148-6449-6E6F-744E-656564454649", uuid="FAC7F1FB-3E8D-4137-A512-961DE09A5549", bootable
start="4096", size="1026048", type="C12A7328-F81F-11D2-BA4B-00A0C93EC93B", uuid="68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
start="1030144", size="2097152", type="0FC63DAF-8483-4772-8E79-3D69D8477DE4", uuid="CB07C243-BC44-4717-853E-28852021225B"
{
   "partitiontable": {
start="3127296", size="17844191", type="0FC63DAF-8483-4772-8E79-3D69D8477DE4", uuid="6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
      "label": "gpt",
      "id": "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
      "device": "/dev/loop0",
      "unit": "sectors",
      "lastlba": 20971486,
      "firstlba": 2048,
      "sectorsize": 512,
      "partitions": [
         {
            "node": "/dev/loop0p1",
            "start": 2048,
            "size": 2048,
            "type": "21686148-6449-6E6F-744E-656564454649",
            "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
         },{
            "start": 4096,
            "node": "/dev/loop0p2",
            "size": 1026048,
            "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
            "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
         },{
            "node": "/dev/loop0p3",
            "start": 1030144,
            "size": 2097152,
            "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
            "uuid": "CB07C243-BC44-4717-853E-28852021225B"
         },{
            "node": "/dev/loop0p4",
            "start": 3127296,
            "size": 17844191,
            "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
            "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
         }
      ]
   }
}

⏱  Duration: 0s
org.osbuild.mkfs.fat: bbb3e87906835b0d8ed52b453e1d2b8a614ac43f11e24fb3ba1616ee0ffc8b8b {
  "volid": "7B7795E7"
}
device/device (org.osbuild.loopback): loop0 acquired (locked: True)
mkfs.fat 4.2 (2021-01-31)

⏱  Duration: 0s
org.osbuild.mkfs.ext4: 24615a0fd145b9175f9af4e95f63a8bef3bf9161641727c20c72f29aa59d13a7 {
  "uuid": "3f31cacd-b90a-40f8-aefc-c59f10423800",
  "label": "boot"
}
device/device (org.osbuild.loopback): loop0 acquired (locked: True)
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks:      0/262144             done
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 3f31cacd-b90a-40f8-aefc-c59f10423800
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376

Allocating group tables: 0/8   done
Writing inode tables: 0/8   done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: 0/8   done

⏱  Duration: 0s
org.osbuild.mkfs.xfs: 8a82ddd68203e326cef04b4a46cee378d0fdf8a9bda42f233d49360d4bcdab04 {
  "uuid": "961dfd7a-d78b-4564-b77f-9f62b61fe8b8",
  "label": "root"
}
device/device (org.osbuild.loopback): loop0 acquired (locked: True)
meta-data=/dev/loop0             isize=512    agcount=4, agsize=557631 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=2230523, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.

⏱  Duration: 0s
org.osbuild.bootc.install-to-filesystem: 8f7bd3969bffe25db5abbfb57d17033f08282fcb57110e50b45a459ce713ca77 {
  "kernel-args": [
    "rw",
    "console=tty0",
    "console=ttyS0"
  ],
  "target-imgref": "quay.io/bootc-extension/httpd:latest"
}
device/disk (org.osbuild.loopback): loop0 acquired (locked: False)
mount/- (org.osbuild.xfs): mounting /dev/loop0p4 -> /store/tmp/buildroot-tmp-z1ce4djk/mounts/
mount/boot (org.osbuild.ext4): mounting /dev/loop0p3 -> /store/tmp/buildroot-tmp-z1ce4djk/mounts/boot
mount/boot-efi (org.osbuild.fat): mounting /dev/loop0p2 -> /store/tmp/buildroot-tmp-z1ce4djk/mounts/boot/efi
Host kernel does not have SELinux support, but target enables it by default; this is less well tested.   It could be due to the switch of the underlying fs system?

MAYBE due to https://github.com/containers/podman/pull/22920 @cgwalters but I'm not entire 100% sure yet to diagnose why. It could be due to the switch of the underlying fs system?

Do you actually have that commit? I think it's more that commit should fix that problem.
As for why it started occurring...well, I think what happened is probably a Linux kernel upgrade in Fedora made 9p buggier. I didn't bother investigating deeply (though see e.g. https://github.com/containers/bootc/issues/485#issuecomment-2076127555 where I found a likely commit that caused a different bug on 9p).
IOW: run podman machine ssh findmnt|grep virtiofs - if that's empty then you don't have the commit, and try upgrading to current git main podman to see if my fix works for you too.

MAYBE due to containers/podman#22920 @cgwalters but I'm not entire 100% sure yet to diagnose why. It could be due to the switch of the underlying fs system?

Do you actually have that commit? I think it's more that commit should fix that problem. As for why it started occurring...well, I think what happened is probably a Linux kernel upgrade in Fedora made 9p buggier. I didn't bother investigating deeply (though see e.g. containers/bootc#485 (comment) where I found a likely commit that caused a different bug on 9p).
IOW: run podman machine ssh findmnt|grep virtiofs - if that's empty then you don't have the commit, and try upgrading to current git main podman to see if my fix works for you too.

Doh, you are right. I am using podman 5.0.3 and it's using an older version but with an updated kernel upgrade in the fedora image.
I'm unable to update podman though (not on fedora channels yet) to the latest version.
Due to numerous issues, I've opened up https://github.com/containers/podman-desktop-extension-bootc/issues/623 to perhaps move away from podman machine requirement for the bootc extension.

I mentioned this issue here: https://github.com/containers/podman-bootc/pull/58
It was not failing if we connect stdin, but now (in my machine) the error show up again. Btw, I think, bib IS working it's just failing when osbuild calls export, but if you check the output dir the disk image is there.

Closing this here as there's nothing really easily this project can do directly to workaround it and the best fix is just to get the newer podman in the hands of users.


Fix diff highlights in tutorial for getPost function

This bit was a little confusing to me (but also, granted, it was very late at night).

hey sorry for taking a while to get to this, you mind doing this again but branch from the main branch? Docs updates go to main because then they sync to the website. Thanks!


Race condition in minHeight for output area

I just noticed that there could be a race condition at https://github.com/jupyter/jupyterlab/blob/master/src/notebook/output-area/widget.ts#L430. If two of these are called in succession, then the first will save the old height as '', the second will save the first min height, then the first could reset to '', and then the second could reset to the first min height.
Really, we should set a flag about whether the min height is temporarily set, and only increase it if needed in that case, not save the old height and set a timeout. Or we should cancel the previous timeout.

I think your instinct is right, but instead of a flag, I would set a private _newMinHeight variable and just use that in the onUpdateRequest function, making sure to reset it to null after each update request finishes.

Great idea!

@afshin, because we actually want a small time delay, rather than just waiting on the next update() call, I left the timer in there and just make sure that only the last timer actually completes. See #839.


Getting "This webpage has a redirect loop"

Hi!
I'm getting this message "This webpage has a redirect loop" after the success login. I've narrow the problem in this file "grant-manager.js".
var verify = crypto.createVerify('RSA-SHA256');
verify.update( token.signed );
if ( ! verify.verify( this.publicKey, token.signature, 'base64' ) ) {
return;
}
the problem is that the verify function fails so, the function validateToken returns, so it try again over and over.
I'm using keycloak 1.0.1 (latest version didn't work for me) and the latest version of keycloak-nodejs
Thanks in advance.

So we probably should add a throw in there in the case of non-verification, mayhap.

I have the same error, once the aplication has login then it generate redirects lop. how can i solve this?

Do you have a sample app and workflow that causes this?
Is it due to a failed authentication attempt?  Or do you successfully login, but then the app redirects continuously?

here is a simple project for sample https://github.com/carlosthe19916/keycloak-nodejs-aplication.
I'm using a keycloak server on openshift and i have a user with:
username: user
password: 123456
keycloak login successfully, but then the app redirects and causes loop.

Thanks, I'll try to poke into this today or tomorrow.

Thank you very much, I am very grateful.

So, I'm poking around and here's what I've found so far...
a) Seems that node.js (at least on my machine) isn't smart enough to use the correct Agent (http vs https), and I was getting errors about "expected http not https" or whatnot when attempting to authenticate against your Keycloak.
b) Once I patched that, I now am finding that it's correctly exchanging a code for a token on your Keycloak, but the signature isn't verifying.
Could you double-check the keycloak.json and ensure that your server public-key matches the one in the sample app you linked to above?
c) I am not finding any loops, but I am experiencing a hang within ensureFreshness(), where apparently we're not dealing with non-valid/non-refreshable tokens.
Let me know once you verify the keycloak.json.
Else, if you're willing to send me a private message to bob @ .org with the credentials to your Keycloak installation, that'd be useful maybe.
Thanks!

Good morning, here i have a keycloak 1.1.0.Final server
auth server url:
https://keycloak-sistcoopee.rhcloud.com/auth/admin/master/console/#/realms/demo
admin user: admin
admin password: admin
There is a *demo *realm and a application with keycloak-nodejs
https://keycloak-sistcoopee.rhcloud.com/auth/admin/master/console/#/realms/demo/applications/f1467bd2-2490-4444-a649-e97f95852c36
name
I configure a simple app.js as
https://github.com/carlosthe19916/keycloak-nodejs-aplication/blob/master/app.js
and a keycloak.json as
https://github.com/carlosthe19916/keycloak-nodejs-aplication/blob/master/keycloak.json
When i go to *http://localhost:3000/index.html
http://localhost:3000/index.html *the system go to
https://keycloak-sistcoopee.rhcloud.com/auth/realms/demo/tokens/login?client_id=keycloak-nodejs&state=3d7cf6c7-2f80-47cd-a789-352e2d604ced&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Findex.html%3Fauth_callback%3D1
In the keycloak's login i enter
username: user
password: 123456
The login is correct bu there is a loop, the system can't redirect to
http://localhost:3000/index.html
http://localhost:3000/index.html
Please help me to configure this simple sample.
*NOTE: *i'm trying to user MEAN.IO with Keycloak but i have the loop error
and then an No 'Access-Control-Allow-Origin' header error. First i would
like to solve the loop error.
2015-04-17 14:07 GMT-05:00 Bob McWhirter<EMAIL_ADDRESS>
So, I'm poking around and here's what I've found so far...
a) Seems that node.js (at least on my machine) isn't smart enough to use
the correct Agent (http vs https), and I was getting errors about "expected
http not https" or whatnot when attempting to authenticate against your
Keycloak.
b) Once I patched that, I now am finding that it's correctly exchanging a
code for a token on your Keycloak, but the signature isn't verifying.
Could you double-check the keycloak.json and ensure that your server
public-key matches the one in the sample app you linked to above?
c) I am not finding any loops, but I am experiencing a hang within
ensureFreshness(), where apparently we're not dealing with
non-valid/non-refreshable tokens.
Let me know once you verify the keycloak.json.
Else, if you're willing to send me a private message to bob @ .org with
the credentials to your Keycloak installation, that'd be useful maybe.
Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/keycloak/keycloak-nodejs/issues/1#issuecomment-94054607
.

--
Carlos E. Feria Vila

Good morning, here i have a keycloak 1.1.0.Final server
auth server url:*
https://keycloak-sistcoopee.rhcloud.com/auth/admin/master/console/#/realms/demo
admin user:* admin
admin password:* admin
There is a *demo *realm and a application with keycloak-nodejs
https://keycloak-sistcoopee.rhcloud.com/auth/admin/master/console/#/realms/demo/applications/f1467bd2-2490-4444-a649-e97f95852c36
name
I configure a simple app.js as
https://github.com/carlosthe19916/keycloak-nodejs-aplication/blob/master/app.js
and a keycloak.json as
https://github.com/carlosthe19916/keycloak-nodejs-aplication/blob/master/keycloak.json
When i go to *http://localhost:3000/index.html
http://localhost:3000/index.html *the system go to
https://keycloak-sistcoopee.rhcloud.com/auth/realms/demo/tokens/login?client_id=keycloak-nodejs&state=3d7cf6c7-2f80-47cd-a789-352e2d604ced&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Findex.html%3Fauth_callback%3D1
In the keycloak's login i enter
username: user
password: 123456
The login is correct bu there is a loop, the system can't redirect to
http://localhost:3000/index.html
http://localhost:3000/index.html
Please help me to configure this simple sample.
*NOTE: *i'm trying to user MEAN.IO with Keycloak but i have the loop error
and then an No 'Access-Control-Allow-Origin' header error. First i would
like to solve the loop error.
2015-04-17 14:07 GMT-05:00 Bob McWhirter<EMAIL_ADDRESS>
So, I'm poking around and here's what I've found so far...
a) Seems that node.js (at least on my machine) isn't smart enough to use
the correct Agent (http vs https), and I was getting errors about "expected
http not https" or whatnot when attempting to authenticate against your
Keycloak.
b) Once I patched that, I now am finding that it's correctly exchanging a
code for a token on your Keycloak, but the signature isn't verifying.
Could you double-check the keycloak.json and ensure that your server
public-key matches the one in the sample app you linked to above?
c) I am not finding any loops, but I am experiencing a hang within
ensureFreshness(), where apparently we're not dealing with
non-valid/non-refreshable tokens.
Let me know once you verify the keycloak.json.
Else, if you're willing to send me a private message to bob @ .org with
the credentials to your Keycloak installation, that'd be useful maybe.
Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/keycloak/keycloak-nodejs/issues/1#issuecomment-94054607
.

--
Carlos E. Feria Vila

Hiya--
Thanks, I've debugged this against your OpenShift-hosted keycloak, I think.
I've published 0.0.14 of connect-keycloak (and keycloak-auth-utils) which should do the following:
a) Correctly use the HTTPS agent when necessary
b) Include the original redirect_uri when performing the purely server-side code-to-token dance with the Keycloak server.
The (b) change is because of this chunk of code in Keycloak itself
https://github.com/keycloak/keycloak/blob/1.1.0.Final/services/src/main/java/org/keycloak/protocol/oidc/OpenIDConnectService.java#L605-L613
Which seems decidedly weird to me, that the server-to-server dance should require that, but I reckon it's got something to do with ensuring non-spoofing the code-to-token requester.  I've inquired with the Keycloak team.  I'll follow-up once I learn more.
Give the 0.0.14 version of connect-keycloak a whirl and let me know.  I'll leave this open until you verify that it works, if it works.

fwiw, npm registry seems to cache stuff quite a bit, but 0.0.14 is there
eduardo:~ bob$ npm view connect-keycloak
{ name: 'connect-keycloak',
description: 'Keycloak Connect Middleware',
'dist-tags': { latest: '0.0.14' },

Than you very much. I was testing the keycloak-nodejs and:

there is a error "Protocol:https: not supported."
i solved it replacing

var request = http.request( options, function(response) {
var json = '';
response.on('data', function(d) {
json += d.toString();
});
response.on( 'end', function() {
try {
var grant = self.createGrant( json );
return deferred.resolve( grant );
} catch (err) {
return deferred.reject( err );
}
});
} );
for
var protocol;
if ( options.protocol == 'https:' ) {
protocol = https;
} else {
protocol = http;
}
var request = protocol.request( options, function(response) {
var json = '';
response.on('data', function(d) {
json += d.toString();
});
response.on( 'end', function() {
try {
var grant = self.createGrant( json );
return deferred.resolve( grant );
} catch (err) {
return deferred.reject( err );
}
});
} );

I apologize, apparently I was editing the entirely wrong repositories before I moved them all to the Keycloak organization.  I'll spend some time this afternoon getting everything straightened out.
In the wrong repositories, I've adjusted the http-vs-https stuff but, alas, in the wrong place.
Sigh.

I am very grateful for your help. My last message is related to https://github.com/bobmcwhirter/keycloak-auth-utils repository, i was testing your personal repository and i see the error described in my last message.

Yah, I like your solution, instead of how I'm juggling Agents around.  I'll apply that change, to the correct repository, and try to publish 0.0.15 later today.
Thanks for your help!

Okay, I've applied your protocol solution, in addition to getting all other changes jammed into the correct repository, along with a git tag.
https://github.com/keycloak/keycloak-nodejs/tree/0.0.15
NPMs have been published.
Let me know if 0.0.15 works better now.


virtual-scroll: add update method

Supersedes #11210

@amcdnl there's a failing test

@mmalerba - Fixed.


Validation Webhook for Bootstrap Token format

Whenever we create a bootstrap token and persist in the form of a Secret, the token id and token value should be of the same format as kubeadm bootstrap tokens.
The bootstrap token generated by the Platform Operator must follow the convention of bootstrap tokens in Kubernetes. See the token format details here. Bootstrap Tokens take the form of abcdef.0123456789abcdef. More formally, they must match the regular expression [a-z0-9]{6}\.[a-z0-9]{16}
** Solution **
Write a validation webhook that gates the Secret for the following -

secret name starting with bootstrap-token-
created in the kube-system namespace only
follows the correct regex

Closing this in favor of #597


perfmon creating template getting problem

how to resolve this?

Thank you for the response, I found it somewhere in the ggogle and worked it out, its fine now.
If I want to reduce the data columns it is producing, can I delete the tags from the xml ?
Or will it affect the html file which will be created after the analysis.
Thank you
Best regards
<EMAIL_ADDRESS>Satya
Associate Consultant
Mobile No :<PHONE_NUMBER>
Extn: 9090
https://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=www.tafe.com&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-119d245f9060521f1c760188aec6b08132556467https://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=http%3A%2F%2Fwww.tafe.com&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-44a34554504b3a89dff82bcc0b6a43a5569b6018
From: Clint Huffman<EMAIL_ADDRESS>Sent: 27 September 2018 23:53
To: clinthuffman/PAL<EMAIL_ADDRESS>Cc: Veera V Satyanarayana M<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [clinthuffman/PAL] perfmon creating template getting problem (#27)
Sorry, its a known issue. The fix is going to be in 2.8.2. In the meantime, open the XML template in a text editor, remove the XML nodes named DisplayName and Description, save it, and then use the template in Performance Monitor again.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Fgithub.com%2Fclinthuffman%2FPAL%2Fissues%2F27%23issuecomment-425194887&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-76d81457c6d758199e79f920f9ad01e46802c48f, or mute the threadhttps://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAYsXJEgZJ1sRy6SooumcFgwMj0X8qY9Kks5ufRefgaJpZM4W7-zi&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-04ea22bba1bd337e7dda2051d0cdbd539b50bc38.
Above email is subject to 'Disclaimer' as per http://tafe.co.in/email-disclaimer.htm

Yes, you are welcome to remove as many ANALYSIS nodes as you want. Just select the threshold file and click Edit to modify it. You might have to save it at your Desktop and manually move the file back to the PAL installation folder.
Thank you,

From: satyamvv2013<EMAIL_ADDRESS>Sent: Thursday, September 27, 2018 9:35:43 PM
To: clinthuffman/PAL
Cc: Clint Huffman; Assign
Subject: Re: [clinthuffman/PAL] perfmon creating template getting problem (#27)
Thank you for the response, I found it somewhere in the ggogle and worked it out, its fine now.
If I want to reduce the data columns it is producing, can I delete the tags from the xml ?
Or will it affect the html file which will be created after the analysis.
Thank you
Best regards
<EMAIL_ADDRESS>Satya
Associate Consultant
Mobile No :<PHONE_NUMBER>
Extn: 9090
https://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=www.tafe.com&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-119d245f9060521f1c760188aec6b08132556467https://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=http%3A%2F%2Fwww.tafe.com&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-44a34554504b3a89dff82bcc0b6a43a5569b6018
From: Clint Huffman<EMAIL_ADDRESS>Sent: 27 September 2018 23:53
To: clinthuffman/PAL<EMAIL_ADDRESS>Cc: Veera V Satyanarayana M<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [clinthuffman/PAL] perfmon creating template getting problem (#27)
Sorry, its a known issue. The fix is going to be in 2.8.2. In the meantime, open the XML template in a text editor, remove the XML nodes named DisplayName and Description, save it, and then use the template in Performance Monitor again.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Fgithub.com%2Fclinthuffman%2FPAL%2Fissues%2F27%23issuecomment-425194887&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-76d81457c6d758199e79f920f9ad01e46802c48f, or mute the threadhttps://imsva91-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAYsXJEgZJ1sRy6SooumcFgwMj0X8qY9Kks5ufRefgaJpZM4W7-zi&umid=EE6AF778-76E6-FC05-82AC-BE3BBB9485E8&auth=c6cae4180046c553f560dbcbfe34f7a11f00dc0e-04ea22bba1bd337e7dda2051d0cdbd539b50bc38.
Above email is subject to 'Disclaimer' as per http://tafe.co.in/email-disclaimer.htm
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fclinthuffman%2FPAL%2Fissues%2F27%23issuecomment-425318538&data=02|01||5bc128d79a5a4941e4aa08d624fbda20|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636737061438639311&sdata=AGlCQNgl69PgadYJYRi5BHCePx%2B6oZiStbTgVuJEe8g%3D&reserved=0, or mute the threadhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAS48VMpP7Ky4nzjTSyA_yVXymYd041YHks5ufacfgaJpZM4W7-zi&data=02|01||5bc128d79a5a4941e4aa08d624fbda20|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636737061438639311&sdata=e%2Bqx1orbpaZcmqnQ5UrJymej1Gqzz313uM66SkB05as%3D&reserved=0.

Fixed in 2.8.2.


json.parse: unexpected character at line 1 column 1 of the JSON data

Error box that persists and can't be cleared.  Comes with every clean set up.

Could you provide the output of:
docker exec <container name> cat /tmp/.web_data.json

{
"applicationName": "Firefox",
"applicationVersion": "101.0.1-r0",
"dockerImageVersion": "22.10.4",
"darkMode": false
}

Also, can you try to run:
docker run --rm -p 5801:5800 jlesage/firefox
Then access the container over port 5801 and verify if you get the problem.
Ctrl+c will terminate the above command.

Btw, which browser are you using to access the container ?  Did you try another one?

What version of Firefox and for which OS ?
Do you have the same issue when using a private window ?

What version of Firefox and for which OS ? Do you have the same issue when using a private window ?

Firefox is Version 107.0.1 (64-bit) on Windows 11.  It does it on both regular and private windows.  Doesn't happen in Edge.
The HTML for the message displayed appears to be:

Unexpected error encountered:

JSON.parse: unexpected character at line 1 column 1 of the JSON data

Feels like Firefox is just displaying something it should not as everything else works.

What is the version of the image you are currently using ?  You can see the image version from docker logs <container name>.

(or by opening the left menu in the UI)

(or by opening the left menu in the UI)

Czkawka v5.0.2
Docker Image v22.12.1

Do you have any plugin running that might interfere with the page ?
Do you still have the issue with the latest version ? If yes, could you open the developper tools in Firefox and report the errors under the Console tab ?

it was a plug-in, disabled it for that instance page and good to go!

Thanks for the update ! Do you mind sharing the plugin that caused the issue ?


Docstrings++

Added docstrings, type hints and some logging to SumoClient and NewAuth + small update to README.

Experimenting with readthedocs integration, lots of files in /docs that can be ignored when reviewing

Should now be possible to build documentation including docstrings by running make html in the docs directory.
The output can be found in docs/_build/html, open index.html in browser to test it.


Support for Swift 4.2 / XCode 10.0

Hi, Good day. Is there any update for iOS 12 version?
**Xcode version: 10.0
**Swift version: 4.2

@malcommac  Hi, How can you solve this bug?

you need to update your pod to 2.0.5


 doesn't keep htmlFor attribute between renders

Qwik Version
0.9.0
Operating System (or Browser)
--
Node Version (if applicable)
No response
Which component is affected?
Qwik Runtime
Expected Behaviour
Seeing a  lose its for attributes between renders. Here's a Playground demo'ing the issue.
import { component$, useStore } from<EMAIL_ADDRESS>
type Animal = "dog"|"cat"|""

export const App = component$(() => {
  const store = useStore<{_fieldId:string,animal:Animal}>({
    _fieldId: "foo",
    animal: ''
  });

  return (
    <>
    <fieldset style={{display: 'flex', 'flex-direction': 'column'}}>

Reproduction

Issue: label loses the `for` attribute between renders.

Right click the label → inspect element

Change the value of the select

Via DevTools, note the label's missing a `for` attribute

    {/*    ⬇ this attribute disappears…          */}
    I'm a label:
    {/*    ⬇ when this <select> is changed.  */}
    <select id={store._fieldId} value={store.animal} onChange$={(e:Event) => {
      store.animal = (e.target as HTMLSelectElement).value as Animal;
    }}>
      <option value="" selected={store.animal === ''} disabled>Pick one</option>
      <option value="dog">Dog</option>
      <option value="cat">Cat</option>
    </select>

    {store.animal && (
      <>Selected: {store.animal}</>
    )}
    </fieldset>
    </>
  );
});

Actual Behaviour
See above
Additional Information
No response

Interesting issue, I did a dive into the code but fell short of any answers. For others trying to fix this bug, adding this store change for the "private" _fieldId will give the same output as above on the first attribute change after the initial render. Subsequent updates to the select field will produce the desired behavior of setting the for attribute correctly.
    <select id={store._fieldId} value={store.animal} onChange$={(e:Event) => {
    **store._fieldId = (e.target as HTMLSelectElement).value as Animal;**
      store.animal = (e.target as HTMLSelectElement).value as Animal;
    }}>

This should be fixed in latest 0.10.0, use the for attribute instead!


Be able to generate cypress test script

When user view the webpage, it can ask Guru Mason to generate a script for e2e test

use /generate_test command to generate test against the webpage you're viewing


setData

Ref: https://github.com/vuejs/vue-test-utils-next/pull/52
We should implement setData to minimize breaking changes from v1 -> v2.

I'd like to tackle that :) It's been a while since I've added some lines here! 🚀

First in first served 🚀
I'll go ahead and assign you anyway :D

Quick question – is this the expected behavior of setData when ran against a Composition API-based component?
const Component = defineComponent({
  template: `<div>Count is: {{ count }}</div>`,
  setup: () => ({ count: ref(1) })
})
const wrapper = mount(Component)

expect(wrapper.html()).toContain('Count is: 1')

await wrapper.setData({ count: 2 })

expect(wrapper.html()).toContain('Count is: 2')

This issue is probably the main thing preventing our adoption of the Vue Composition API at my workplace.  Please keep me updated on this.
I will say that the way that the way you've described setData working in the comment above is how I would expect it to work, yes.

What, no, this is definitely not expected behavior. setData sets data in the data option (thus the name).
I don't think there is any way to access the value of ref/reactive inside of setup.
Furthermore, why would you want to do this? Under what scenario can you arbitrarily assign variables to values assigned inside of setup?

2. Figure out how best to support Composition API users:

For the composition-api you probably want to batch changes and await for the render.
function setSetupState(vm, state){
  merge(vm.$setupState, state)
  return Promise.resolve();
}

setRef and setReactive. Explicit, but a larger API surface (but I like this better, setData sets data, setRef sets a ref etc...

I would stay away from such APIs, this looks like when people try to mock ref/reactive.

Other way would be introducing a general method to change the vm properties and return a render promise. This method would update $data and setup

Haven't seen $setupState, thanks. I wonder if there is any technical blockers, or is it as as simple as updating values on $setupState? Also, how about the data mounting option - that needs to work the same as setData to be consistent, which might be difficult since the dataMixin will not be called until after setup is processed.
I am still unsure of the best approach here. Feels like this is outside the scope of setData (to me). I wonder what everyone else thinks.

Thanks all for your thoughts! Given the fact that setData is being ported here mostly to minimize breaking changes, here's a proposal (based on Lachlan's last comment suggestions):
- Implement setData to update data() as it happens in Vue 2.
- Make sure it does not update anything setup-related. It doesn't make much sense – starting with the method name.
We can then discuss about the fit for setSetup or any similar method, which is beyond the scope.

Ultimately, whether it's setData, setReactive, setRef, setSetupState, or whatever, this really is key functionality, that... well, I just don't know how to do.  That's the main thing - without a clear way to access (read & set) what's returned from setup() in the test suite, it's going to be hard to test things going forward.
I think that what the Vue and the Test-Utils/Vue team need to coordinate on is documenting exactly how to upgrade tests based on the Options API to the composition API.


Fixes for secrets documentation

Summary: Replaced flags with env vars.
Jira Issues: DCOS_OSS-4450

@meln1k there is some thought on defaulting secrets as to always on... what say you?
if secrets is enabled AND there is no secret plugin secrets are ignored... which seems fine.   It would simplify things with no ill effect.


Option to generate LINKs or reference cards

Add an option to generate a LINK or a small reference card

=> stem

or something like that

Closed with 79058b0d9e74b9e7ab1ad7af4ce95bf883c84e4a


adapt integration test to changes in command_wrapper

command_wrapper tries to verify the connection (which includes sudo)
using a call to "echo". If this fails, it'll raise an error. This change
is now reflected in the test.
fixes #34.

Hi. I am an automated pull request bot named Curry. There are commits in this pull request whose authors are not yet authorized to contribute to Chef Software, Inc. projects or are using a non-GitHub verified email address. To become authorized to contribute, you will need to sign the Contributor License Agreement (CLA) as an individual or on behalf of your company. You can read more on Chef's blog.
GitHub Users Who Are Not Authorized To Contribute
The following GitHub users do not appear to have signed a CLA:

@srenatus

Please sign the CLA here.

Nice catch, thank you @srenatus !

Hi. Your friendly Curry bot here. Just letting you know that all commit authors have become authorized to contribute. I have added the "Signed CLA" label to this issue so it can easily be found in the future.


incorrect data used for web percy report in generate.js

The problem
In generate.js file, below logic should be updated for web percy in else block:
else {
let browser = getComparisonBrowser(comp)
compTag = device.name
if (!report.browsers.includes(browser.name)) {
report.browsers.push(browser.name)
}
if (!report.widths.includes(comparison['width'])) {
report.widths.push(comparison['width'])
}
Here, device(highlighted in the above code) should be updated to browser
Because of this bug, when we try to generate report for a web percy build we get the below error:
(node:32915) UnhandledPromiseRejectionWarning: ReferenceError: device is not defined     at /Users/bhumikababbar/.nvm/versions/node/v14.16.0/lib/node_modules/percy-report/src/generate.js:94:17     at Array.map (<anonymous>)     at /Users/bhumikababbar/.nvm/versions/node/v14.16.0/lib/node_modules/percy-report/src/generate.js:79:85     at Array.map (<anonymous>)     at module.exports.Generate (/Users/bhumikababbar/.nvm/versions/node/v14.16.0/lib/node_modules/percy-report/src/generate.js:74:39)     at processTicksAndRejections (internal/process/task_queues.js:93:5)     at async Command.<anonymous> (/Users/bhumikababbar/.nvm/versions/node/v14.16.0/lib/node_modules/percy-report/bin/cli.js:21:16) (Use node --trace-warnings ...to show where the warning was created) (node:32915) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag--unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:32915) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Fixed in this PR: https://github.com/BrowserStackCE/percy-report/pull/18


Using numpy.stack instead of list zip

In some examples (tunneling1, tunneling2, ...etc), the python list is used:
line = Line(list(zip(x, y))

This is two orders of magnitude slower than numpy.stack function
Here is a demonstration:
import time
import numpy as np
import matplotlib.pyplot as plt

nvals = [10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 20480, 500000]
zip_times = []
stack_times = []

for n in nvals:
    x = np.linspace(0, 1, n)
    y = np.sin(x)

    # timing zip
    t0 = time.time()
    arr0 = np.array(list(zip(x, y)))
    t1 = time.time()
    zip_times.append(t1-t0)

    # timing stack
    t0 = time.time()
    arr1 = np.stack((x,y), axis=1)
    t1 = time.time()

    stack_times.append(t1-t0)

plt.semilogy(nvals, zip_times, label='zip')
plt.semilogy(nvals, stack_times, label='stack')
plt.xlabel('size N')
plt.ylabel('time in seconds')
plt.legend()
plt.show()

print(f"speedup (list zip time / np.stack time ): {np.array(zip_times) / np.array(stack_times)}")

Interestingly this gap reduces to factor a 10 when python lists are passed as arguments.
(e.g. y = np.sin(x).tolist())
I'll replace the old fashioned list(zip()) to the numpy.stack() anywhere.
Thanks for drawing my attention to it!

fixed in the master along with #87


[request] show total album duration

I've been using this player for a couple of days, great work, but i'm missing the album duration like in cmus style.

Nice suggestion -- this is something I've also wanted for a while. I went ahead and added duration to all headers, so you should see them for albums, artists, genres, and search results as well in the next release:

Nice suggestion -- this is something I've also wanted for a while. I went ahead and added duration to all headers, so you should see them for albums, artists, genres, and search results as well in the next release:

that looks awesome, just like I wanted!

that looks awesome, just like I wanted!


Clean up the getOutstandingChildRequest logic to match holistically what is in backend

The getOutstandingChildRequest logic  is used to determine if the chat should have GBR in relation to money request. There is many cases this can work so we should make sure we correctly handle this optimistically.
I will try to clean this up to match the backend logic as much as possible to avoid any flashing of the GBR
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f7e94d9a1d232c0e
Upwork Job ID:<PHONE_NUMBER>246265344
Last Price Increase: 2024-04-09

Issue OwnerCurrent Issue Owner: @stephanieelliott

Making ths weekly now as I am not sure I will get to this tomorrow and then I am ooo

Reapplying the Bug label to get another BZ member on this while I am OOO til May 2. Thanks @laurenreidexpensify  I'll grab this back from you when I return!

Still havent got to this as its clean up

I'm back from OOO, thanks for watching this while I was out @laurenreidexpensify!
This issue is clean up and not top priority, @mountiny is working on this

No update, currently on a merge freeze

No update, currently still on a merge freeze

No updates from me, focusing on higher priority tasks

same

I looked over this again, and it seems like there might be some cleanup welcomed, but it should not be causing many issues.
The report itself basically returns true for the GBR now in a few valid cases, but it's not forcing false in other cases, so flashing should not occur due to this. The only problem would be that in some cases when the GBR should show offline it wont until you come back online, which I think is still lower priority than some other tasks.

The only problem would be that in some cases when the GBR should show offline it wont until you come back online, which I think is still lower priority than some other tasks.

What cases are those, are they core flows?

IOU reports are covered based on this logic - that is all cases.
For expense reports now the method only returns true (show GBR) when the user has to manually submit the report or when its admins own workspace chat on free policy (should be removed). So we should add:

submitting to yourself as admin
approving and awaiting payment as admin
maybe something else

The thing is - there is not that many flows where you take action on the report and the GBR leads to you again

Not overdue

Gotcha, so you're saying right now the GBR is not applied if an admin submits a report to themselves for example?

https://github.com/user-attachments/assets/92e93297-00dc-4131-b124-fa24648c81ec
Yeah you saw the delay in there
https://github.com/user-attachments/assets/4afbd8e4-f219-4854-9be7-7284e240890b
When offline no GBR

Ah right okay, so online there's a delay and offline it's not there at all.
I guess it's not that important, but it is incorrect.

Still in a backlog

same


Update with master

Bring the girder-5 branch up to date with changes from master

@zachmullen @manthey I'd like input from you both regarding b691b9a, since I feel like I'm missing some context about some of the changes made - both in girder/girder v5, and in the current HistomicsUI code base.
The commit mentioned above wraps some code in an event handler to delay it running until girder.rest.getApiRoot() will return a real (i.e. not undefined) value. The wrapped code was introduced in PR #429. This code calls HuiSettings.getSettings, which in turn calls girder.rest.restRequest, which calls getApiRoot when building the URL for the rest request.
The issue I was seeing in the girder 5 version of the stack was that at the time this code ran (it's a top-level function in the file, so I believe it would run whenever it was imported), getApiRoot returns undefined.
I spoke with @manthey and then compared Girder 3 and Girder 5's rest.js code. It looks like in v3, there's additional code that sets apiRoot directly in rest.js (either pulling a value out of an HTML tag with jquery, or using a default value). See here. This code is not present in the v4-integration branch, and I'm not sure exactly why it was removed.
Girder does call setApiRoot during the initialization process, but that is async, so my best guess is that code in HistomicsUI is being run before the Girder app has finished initializing (and specifically, before it has got to this point). In that sense, I think wrapping the code in an event handler makes sense.
If my understanding of things is correct, then there is a difference between Girder 3 and Girder 5 in that plugins being developed for Girder 3 could make restRequests before the Girder app itself had finished initializing, and in Girder 5, plugins can no longer make that assumption.
Maybe this is a side-effect of getting rid of the build command, or not, I'm not so sure. But if there are plugins that will break due to this difference maybe this is worth documenting in the migration guide? Am I off base here @zachmullen?


PEP8 (and more)

Hello,
it could be a good idea to add PEP8 checking (with pylama or flake8) to Travis builds (after unit tests)
Kind regards
PS:
$ pylama datapackage/ tests/ --ignore E501
datapackage/__init__.py:1:1: W0611 '.datapackage.DataPackage' imported but unused [pyflakes]
datapackage/__init__.py:2:1: W0611 '.pushpull.pull_datapackage' imported but unused [pyflakes]
datapackage/__init__.py:3:1: W0611 '.resource.Resource' imported but unused [pyflakes]
datapackage/datapackage.py:240:1: C901 'DataPackage._extract_zip_if_possible' is too complex (11) [mccabe]
datapackage/pushpull.py:55:9: E301 expected 1 blank line, found 0 [pep8]
datapackage/resource.py:245:1: C901 'TabularResource.iter' is too complex (11) [mccabe]
datapackage/resource_file.py:1:2: E114 indentation is not a multiple of four (comment) [pep8]
datapackage/resource_file.py:1:2: E116 unexpected indentation (comment) [pep8]
datapackage/schemas/tests/test_registry.py:67:9: E731 do not assign a lambda expression, use a def [pep8]
datapackage/schemas/tests/test_registry.py:68:9: E731 do not assign a lambda expression, use a def [pep8]
datapackage/schemas/tests/test_registry.py:84:9: E731 do not assign a lambda expression, use a def [pep8]
datapackage/schemas/tests/test_registry.py:85:9: E731 do not assign a lambda expression, use a def [pep8]
tests/conftest.py:1:2: E114 indentation is not a multiple of four (comment) [pep8]
tests/conftest.py:1:2: E116 unexpected indentation (comment) [pep8]
tests/test_datapackage.py:1:2: E114 indentation is not a multiple of four (comment) [pep8]
tests/test_datapackage.py:1:2: E116 unexpected indentation (comment) [pep8]
tests/test_helpers.py:13:1: E302 expected 2 blank lines, found 1 [pep8]
tests/test_mappers.py:38:9: E128 continuation line under-indented for visual indent [pep8]
tests/test_mappers.py:50:9: E128 continuation line under-indented for visual indent [pep8]
tests/test_mappers.py:53:9: E128 continuation line under-indented for visual indent [pep8]
tests/test_pushpull.py:8:1: W0611 'mock' imported but unused [pyflakes]
tests/test_pushpull.py:81:5: E301 expected 1 blank line, found 0 [pep8]
tests/test_resource.py:1:2: E114 indentation is not a multiple of four (comment) [pep8]
tests/test_resource.py:1:2: E116 unexpected indentation (comment) [pep8]
tests/test_resource_file.py:1:2: E114 indentation is not a multiple of four (comment) [pep8]
tests/test_resource_file.py:1:2: E116 unexpected indentation (comment) [pep8]

@scls19fr
Thanks. We're going to - https://github.com/frictionlessdata/datapackage-py/issues/36


RegEx only matching last match when capturing with *

Issue Type: Bug
SETUP
Using the following text as a sample:
OnPerformTask(Int32 x, Int32 y, Int32 z, string name)
Open the "Replace" tool window, and enter the following as a RegEx pattern:
On(\w+)\((\w+, )*[\w]+ (\w+)
Enter the following as the replacement pattern:
$1($2$3
EXECUTION (Round #1)
After the first replacement, the text should read as follows in the editor:
OnPerformTask(x, Int32 y, Int32 z, string name)
EXECUTION (Round #2)
After the second replacement, the text should read as follows in the editor:
OnPerformTask(x, y, Int32 z, string name)
EXECUTION (Round #3 - !!! Here is where the bug lies !!!)
After the first replacement, the text should read as follows in the editor:
OnPerformTask(y, Int32 z, string name)
Revisting the RegEx pattern:
On(\w+)\((\w+, )*[\w]+ (\w+)
The second capture: (\w+, )*
I believe this bug is being caused because x,  and y,  are both being captured, but only the last capture is being retained for use in $2 for the replacement text.
VS Code version: Code 1.22.1 (950b8b0d37a9b7061b6f0d291837ccc4015f5ecd, 2018-04-06T00:24:49.616Z)
OS version: Linux x64 4.13.0-38-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz (4 x 2594)

Load (avg)
20, 18, 18

Memory (System)
3.74GB (0.10GB free)

Process Argv
/usr/share/code/code --unity-launch

Screen Reader
no

VM
0%

Extensions (16)

Extension
Author (truncated)
Version

ng-template
Ang
0.1.9

beautify
Hoo
1.3.0

vscode-docker
Pet
0.0.26

vscode-eslint
dba
1.4.8

tslint
eg2
1.0.28

php-debug
fel
1.12.3

vscode-nuget-package-manager
jmr
1.1.6

docomment
k--
0.0.18

python
ms-
2018.3.1

cpptools
ms-
0.16.1

csharp
ms-
1.14.0

mono-debug
ms-
0.15.8

typescript-javascript-grammar
ms-
0.0.39

vs-keybindings
ms-
0.2.0

cs-script
ole
1.3.5

vscode-arduino
vsc
0.2.12

Isn't this because in (\w+, )* the * is outside the group? The group is what's captured so you only keep the last instance.

After posting this, I tried to find a few editors with RegEx support, and they all confirmed the behavior is not incorrect. The behavior I was expecting would seem to require an outer capture group in order to retain all of the matches, although that seems to be elusive as well - in all of the aforementioned editors. Perhaps it's just a logic hole in RegEx, itself.
Either way, this ticket may be closed. I appreciate your time.


Unable to run the sample app on a physical device

The sample app gives me this error when trying to run on my iPhone, it however works on a simulator
WKWebViewRTC/Example/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file '/WKWebViewRTC/Example/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' for architecture arm64
Xcode version: 11.6 (11E708)
iOS: 13.5.1

This is not an issue of WKWebViewRTC. Anyway there are 2 options to resolve this issue.

You should rebuild WebRTC.framework with bitcode enabled.
Disable bitcode in build setting of WKWebViewRTC

I have disabled bitcode in the build setting, I still get the same error. Also another query, does this library also support video and audio over webRTC protocol in WKWebView?

No, this library supports audio only.

Oh alright, I was hoping for video support as well, any idea if this is going to be available anytime soon?

I am hoping for camera access support as well.

@JustDoIt9 Why don't you say anywhere in the description that you only support the microphone?
"WebRTC library for WKWebView for Swift on iOS (based on cordova-plugin-iosrtc: https://github.com/cordova-rtc/cordova-plugin-iosrtc)"
There is huge difference between WebRTC and Microphone from WebRTC.
Please correct the description.

I wasted my whole day in looking for camera access. misguiding description

We are currently extending this for video support.  We will update when we have something.

Will release version 0.3 in a few days with feature of camera access. (For now, please check out branch 'video-support')


suggest: fix handling around long lines

See: https://github.com/microsoft/vscode/issues/90552#issuecomment-592680419
overflow: hidden should have been overflow: auto. Auto displays a
scrollbar which, depending on the platform, can make the items too high.

(manually moving the items up shows the scrollbar)
Also fixes names being cut off (see the loooong) cutoff in the linked
issue. flex-shrink:0 is on the label, with a max-width of 100%. But
on the left there was the 18px icon, so the right side of the label was
18px off the end and not visible. Fix it by moving the icon outside of
the .left side. We could alternately calc(100% - 18px), but since
the icon was not a hardcoded size in CSS I didn't want to implicitly
depend on that.

LGTM, thanks!


Database table/field don't show in auto-complete

Table and fields aren't showing in auto-complete and hover tooltip in version 0.1.2

Fixed in version 0.1.3


zoom controls went missing

Hello,
I'm using ngMap and up until now, the zoom controls used to display fine using the attribute below:
zoom-control-options="{position:'LEFT_TOP', style:'DEFAULT'}"
for some reason, the zoom controls are no longer displayed (since past few days).
Could it be caused by the size of the map (its 542px * 156px)? Did something change on the Google?
UPDATE: looks like the zoom controls are displayed correctly when the map is at least 205px high. Is there any way to force it to display the controls on smaller map?

According to this https://developers.google.com/maps/documentation/javascript/controls#DefaultControls, I don't think I can control that. You can make at least 200px height.
ngMap does not make its own behaviour, it just makes Google maps conveniently enabled using AngularJS.

No, it's by Google. I don't think we can avoid min. height set by Google.

Thanks!


Types as comments syntax?

Hegel inference system is really powerful, so types are usually not needed, but some times they are. For that, a Typescript / Flow syntax is being used, that later needs to be removed. In the same spirit of type annotations proposal where types syntax should be treated as comments by Javascript runtimes so there's no need of transpilation, what about if we add a comments-based syntax so we don't need it either? Two options I find here are respect JsDocs when they are defined, that are pretty common but verbose, or allow to use inline comments. This can be verbose too, so to minimize them, I propose to use inline comments, and consider them Hegel types if the first token inside the comment would be a valid Hegel type token:
const num /*:number*/ = 42;

function func(a/*:number*/, b/*:number*/)/*:number*/
{
  return a + b
}

/*
type A
{
  name: string
}
*/

class B /*implements A*/{}

Syntax would need to be developed in more detail, but you get the idea, and I think that would be the most minimal solution.

I have just discover this syntax and intention are pretty much similar to Flow inline comments, so I think it would be a nice addition :-)


Chinese_Remainder_Theorem

Greetings sir/Mam,
I would like to contribute the code for this issue in C++/CPP.
The code is ready. I have added the code , along with proper explanation of the algorithm , test cases , time complexity and space complexity of the same, as per the guidelines.
Kindly assign it to me.
This is regarding letsgrowmore.in/soc/21
I have made a PR for the same.
Kindly assign this issue!!
Regards,
Hitain Kakkar

/assing

@HitainKakkar go Ahead

@Ayush7614 @Amit366 pls assign me

@AnkitaKataria22 mention the language


chore(Java): add next greater element

PR Checklist:

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is on refer on the language README.md file
[x] My addition does not have a spelling problem
[x] My submission has a proper and user-friendly description of the algorithm
[x] My submission has the time complexity of the algorithm
[x] My submission has sample input-output of the program (NOT FOR PYTHON)

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] New algorithm
[ ] Optimization in previous algorithms
[ ] Code style update
[ ] Refactor
[ ] Documentation
[ ] Other, please describe:

Briefly describe the changes in this PR

Other information:

Hi @mohitchakraverty I do some changes and remove unnecessary code.


Info Gateway Onboarding guidelines

What we want to achieve

We would like to build an Engineering Info Gateway onboarding documentation.
The idea is to document what it takes to understand the following.

How to deploy and test the Info Gateway locally and on production.
How to add plugins to the Info Gateway.
How the different plugins work

Expected Outcomes

[ ] Updates to the Gateway Documentation where necessary.

Can we move this to the docs folder?

Can we move this to the docs folder?

Yeah we can. @sharon2719 was looking to help with moving them to the docs folder. Perhaps she can do it as part of this ticket or we can create separate ticket for that.

Let's have a PR w/changes to the docs close this ticket

Let's have a PR w/changes to the docs close this ticket

Doing that


Update DG and fix bugs

Codecov Report

Merging #255 (8c6659d) into master (c336cc4) will increase coverage by 0.05%.
The diff coverage is 80.00%.

@@             Coverage Diff              @@
##             master     #255      +/-   ##
============================================
+ Coverage     65.17%   65.23%   +0.05%
- Complexity      850      852       +2
============================================
  Files           137      137
  Lines          3136     3141       +5
  Branches        414      414
============================================
+ Hits           2044     2049       +5
  Misses          951      951
  Partials        141      141

Impacted Files
Coverage Δ

...edu/address/logic/commands/EditStudentCommand.java
93.42% <ø> (ø)

...edu/address/logic/commands/ListStudentCommand.java
100.00% <ø> (ø)

.../address/logic/commands/MarkStudentAttCommand.java
100.00% <ø> (ø)

...address/logic/commands/MarkStudentPartCommand.java
100.00% <ø> (ø)

src/main/java/seedu/address/model/Model.java
100.00% <ø> (ø)

...rc/main/java/seedu/address/model/ModelManager.java
70.06% <66.66%> (+0.83%)
:arrow_up:

...edu/address/logic/commands/ClearGroupsCommand.java
100.00% <100.00%> (ø)

...u/address/logic/commands/ClearStudentsCommand.java
100.00% <100.00%> (ø)

...u/address/logic/commands/DeleteStudentCommand.java
100.00% <100.00%> (ø)

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 c336cc4...8c6659d. Read the comment docs.


added reaper_medium::Reaper::time_map_2_qn_to_measure

also introduced the new struct TimeMapQNToMeasuresResult for storing bar start\end positions

P.S. Let's start from small pull. I hope to push medium API a bit forward next month)

Suggestions are applied

@Levitanus Now the only thing left is running cargo fmt.

I shouldn't have merged this, it was not building ;) Never mind. Fixed it on master.


feature: gcp rds sync

这个 PR 实现什么功能/修复什么问题:
谷歌云RDS接入
是否需要 backport 到之前的 release 分支:
None
/area region
/cc @swordqiu @yousong

Codecov Report

Merging #5478 into master will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #5478      +/-   ##
==========================================
- Coverage    6.88%    6.88%   -0.01%
==========================================
  Files         609      609
  Lines      103036   103045       +9
==========================================
- Hits         7093     7091       -2
- Misses      95372    95382      +10
- Partials      571      572       +1

Flag
Coverage Δ

#aFlag
6.88% <0.00%> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/compute/models/dbinstancenetworks.go
0.89% <0.00%> (-0.02%)
:arrow_down:

pkg/compute/models/dbinstances.go
0.93% <0.00%> (-0.02%)
:arrow_down:

pkg/compute/models/skus_tools.go
0.00% <0.00%> (ø)

pkg/appsrv/response.go
66.15% <0.00%> (-3.08%)
:arrow_down:

Continue to review full report at Codecov.

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

/lgtm
/approve


Add Generic OAuth2 Provider Support

This pull request adds support for generic OAuth2 providers like Fusion Auth (https://fusionauth.io).  I've also added a sample docker-compose.yml file to help with deploying the project more easily.

I also fixed an issue where the OTP / OTC codes did no work in mobile safari (and added integrity hashes / nonces for security)

Thanks for the PR!
I'll review it but it might take me a few weeks in order to get the time to do it + test the result.

I just saw the comments, I'll update as soon as I can.

@m-barthelemy I have reviewed all your comments and made the changes you requested.  I've tested this using my local setup and all seems good on both desktop and mobile.  There is one comment left unresolved.  Please let me know how you want to proceed.

@m-barthelemy I have reviewed all your comments and made the changes you requested. I've tested this using my local setup and all seems good on both desktop and mobile. There is one comment left unresolved. Please let me know how you want to proceed.

Thanks a lot!!
Give me while to go through your work again.


fix(remix-react): undeprecate LiveReload's nonce prop

It was necessary for CSPs before, then it was no longer necessary thanks to https://github.com/remix-run/remix/pull/2783, but then it became necessary again when this PR was merged: https://github.com/remix-run/remix/pull/2874 but the deprecation warning was never removed.
Until this is released, people will get this in their editors:

Thanks!


Fix typo in computeds/format.js

ouputFormat to outputFormat

good catch, this should likely be under test to prevent a regression.

Okay, I'll try that

@jasonmit i don't believe a regression test was added.

@stefanpenner in the process of writing one :)

@jasonmit :)


How to publish cli project with angular-cli.json deps, such as assets, styles and scripts?

here is my angular-cli.json content:
"assets": [
"assets",
"favicon.ico",
"styles.css"
],
...
...
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.css",
"../node_modules/leaflet/dist/leaflet.css",
"../node_modules/openlayers/css/ol.css",
"../node_modules/cesium/Build/Cesium/Widgets/widgets.css",
"../node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"
],
"scripts": ["../node_modules/rison/js/rison.js"],

I think the command you are looking for is ng build, this compiles your project and creates a dist folder with your project requirements. You can have a look at the possible options here:
https://github.com/angular/angular-cli/wiki/build

Closing as answered, thanks @RicardoVaranda !


Add listing ACLs to Kafka admin client

Would be nice to have an easy way to list all ACLs and possibly also applying some optional filters to that request. The simplest form for listing all ACLs without kadm would look like this as far as I know:
		listAllReq := kmsg.NewDescribeACLsRequest()
		listAllReq.ResourcePatternType = kmsg.ACLResourcePatternTypeAny
		listAllReq.Operation = kmsg.ACLOperationAny
		listAllReq.PermissionType = kmsg.ACLPermissionTypeAny
		listAcls, err := s.ListAllACLs(grpCtx, listAllReq)

I'm blind, it exists as DescribeACLs - I was too used to List, but Describe is more aligned with the original Kafka naming :).


When deploying ECS service with blue/green deployment, task definition and target group changes can't be ignored

I created a stack deploying ECS service with blue/green deployment(CodeDeploy) using aws.ecs.Service().
After the creation of the service in AWS, when running "pulumi up" again without any change to the existing service, Pulumi detects there was an update to the service.(because the TG or task definition revision was changed on AWS)
Pulumi up -> the service is created.
Running Pulum up without making any changes -> an update is detected on the service.
Because of AWS limitations, the update fails : “InvalidParameterException: Unable to update network parameters on services with a CODE_DEPLOY deployment controller. Use AWS CodeDeploy to trigger a new deployment.”
I tried using the "ignore changes" and transformations properties when creating the service but it didn't help.
The issue forces me to delete all existing services and recreate them, If I need to make additional changes to the stack.
Related issues:
pulumi/pulumi-awsx#856
https://github.com/pulumi/pulumi-aws/issues/1982
The service code:
const UsersService = new aws.ecs.Service("UsersService", {
    name: 'UsersService',
    cluster: ecs_cluster.id,
    schedulingStrategy: 'REPLICA',
    taskDefinition: 'Users-TD:1',
    platformVersion: 'LATEST',
    deploymentController:{
        type:'CODE_DEPLOY'
     } ,
    deploymentMaximumPercent: 200,
    deploymentMinimumHealthyPercent: 100,
    desiredCount: 2,
    launchType: 'FARGATE',

    networkConfiguration:{
        subnets: [subnet1,subnet2],
        assignPublicIp: false,
        securityGroups: [sg]
    },
    healthCheckGracePeriodSeconds: 20,
    loadBalancers:[
        {
            containerName:'UsersContainer',
            containerPort:'80',
            targetGroupArn: UsersTG1.arn

        }
    ],
},
{
    ignoreChanges: ['desiredCount',
                'loadBalancers',
                'taskDefinition',
                ],
    transformations: [
        args => {
        if (args.type === 'aws:ecs/service:Service') {
            return {
            props: args.props,
            opts: pulumi.mergeOptions(args.opts, {
                ignoreChanges: [
                'desiredCount',
                'loadBalancers',
                'taskDefinition',
                ],
            }),
            };
        }
        return undefined;
        },
    ]
});

Does pulumi refresh help with this? That would sync the actual state to your current state and then I would expect the subsequent update to be correct once the code is also updated to reflect the state?

I tried running pulumi refresh, when running pulumi up without making any changes, there are still changes detected on the service.
Changes were also detected on the listener and deployment group - since there was a deployment(blue\green), the target group has been changed.

is there any update on this?
What's the recommended approach when we have, for example, an AWS Fargate with services and task definitions, and we want to deploy new version of a service, but ignore existing ones?
I thought of running pulumi up with some env variables, and then, if the env variable was not provided, ignore containerDefinitions, for example. But that's not ideal, as other resources are created. And, of course, I don't want to delete the applications that don't require new deployment.

Possibly related: https://github.com/pulumi/pulumi-terraform-bridge/issues/1756

I've spent most of the day on this, and I have hacked a solution together. From looking at old terraform issues / CDK issues - its quite disappointing that we have to hack around AWS on this.
In an ideal world AWS ECS should just turn the task definition update into a new deployment on code deploy, I found a relevant issue on CloudFormation https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/1529
But I don't believe pulumi or terraform utilise CloudFormation - so I'm resorting to a hacky method while I investigate further.
But here's what I'm doing

Create ECS service with a hardcoded image, nginx:latest is what I'm using

const service = new awsx.ecs.FargateService(
  'templi-api',
  {
    cluster: baseInfra.requireOutput('clusterArn'),
    enableExecuteCommand: true,

    deploymentController: {
      type: 'CODE_DEPLOY',
    },
    networkConfiguration: {
      securityGroups: [apiSecurityGroup.id],
      assignPublicIp: true,
      subnets: baseInfra.requireOutput('vpcPublicSubnetIds'),
    },
    continueBeforeSteadyState: true,

    // TODO: this is hardcoded as nginx due to a bug with pulumi not being able
    // to ignore changes on the task definition
    // As our deployments are handled by code deploy, we should ignore changes on the task definition
    taskDefinition: 'nginx:latest',
    loadBalancers: [
      {
        containerPort: 80,
        containerName: 'templi-api',
        targetGroupArn: blueTargetGroup.arn,
      },
    ],
  },
  {
    ignoreChanges: ['taskDefinition'],
  }
);

Use your latest task definition to trigger a pulumi/command to go through the aws deploy CLI

const deployment = latestTaskDefinitionArn.apply((arn) => {
  const appSpecJson = JSON.stringify({
    version: 0.0,
    Resources: [
      {
        TargetService: {
          Type: 'AWS::ECS::Service',
          Properties: {
            TaskDefinition: arn,
            LoadBalancerInfo: {
              ContainerName: 'templi-api',
              ContainerPort: 80,
            },
          },
        },
      },
    ],
  });

  const cliInputJson = JSON.stringify({
    applicationName: 'templi-api',
    deploymentGroupName: 'api-deployment-group',
    revision: {
      revisionType: 'AppSpecContent',
      appSpecContent: {
        content: appSpecJson,
      },
    },
  });

  return new local.Command('create-deployment', {
    create: `aws deploy create-deployment --cli-input-json '${cliInputJson}'`,
    environment: {
      CACHE_BUSTER: new Date().getTime().toString(),
    },
  });
});

export const deploymentId = deployment.stdout;

There have been some updates to Pulumi platform that might be helpful here. There is now a transforms resource option https://www.pulumi.com/docs/concepts/options/transforms/ that is able to work with awsx.* resources.
I am confirming with the following TypeScript program - I've selected a fast to provision awsx resource for illustration purposes. The program is to be activated with:
pulumi config set step 0
pulumi up --yes
pulumi config set step 1
pulumi up --yes

import * as awsx from "@pulumi/awsx";
import * as pulumi from "@pulumi/pulumi";

const cfg = new pulumi.Config();

const step = cfg.requireNumber("step");

const myVpc = new awsx.ec2.Vpc("awsx-nodejs-subnets-with-tags", {
    tags: {
        isoverridden: "false",
    },
    subnetSpecs: [
        {
            type: awsx.ec2.SubnetType.Public,
            cidrMask: 22,
            tags: {
                isoverridden: "true",
                custom_tag_subnet_type: "subnet_public",
                custom_tag_one: "1"
            }
        },
        {
            type: awsx.ec2.SubnetType.Private,
            cidrMask: 21,
            tags: {
                custom_tag_subnet_type: "subnet_private",
                custom_tag_two: step === 0 ? "zero" : "one",
                custom_tag_three: "3"
            }
        },
    ],
}, {
    // Using ignoreChanges does not work.
    // ignoreChanges: ["tags"]

    // However, using the transforms option works to suppress the update.
    // More information at https://www.pulumi.com/docs/concepts/options/transforms/
    transforms: [args => {
        return {
            props: args.props,
            opts: pulumi.mergeOptions(args.opts, { ignoreChanges: ["tags"] })
        }
    }],
});

export const vpcId = myVpc.vpcId;
export const publicSubnetIds = myVpc.publicSubnetIds;
export const privateSubnetIds = myVpc.privateSubnetIds;

Note that ignoreChanges option is a no-op for the awsx.ec2.Vpc resource but using transforms to add an ignoreChanges option for every child resource achieves the desired effect of ignoring the change.
Please let us know if this unblocks any of the scenarios here 🙏

The provider should probably emit a user-friendly warning to users who attempt to set ignoreChanges when this setting is actually a no-op. Unfortunately this is not yet technically possible until the feature in https://github.com/pulumi/pulumi/issues/12154 is completed.


Remove implementation of wizard to use the dfe-wizard gem

Context
We need to have the same wizard logic under Publish so the work we did on continuous applications last year were extracted to this gem:
This work was extracted to https://github.com/DFE-Digital/dfe-wizard
Now that the first version of the gem is released I can add on Apply and next week on Publish.
Changes proposed in this pull request
The main changes of extracting was because of gem organisation the classes were renamed:

DfE::Wizard became DfE::Wizard::Base
DfE::WizardStep became DfE::Wizard::Step
DfE::WizardStore became DfE::Wizard::Store

So this work, adds the gem and rename the classes
Guidance to review
This work touches on the most important form of Apply: the actual candidate applying for a course.
Even with the automated tests guaranteeing that everything work I totally advise (myself included on this) to apply for a course in the review app and play around on different choices under the submission wizard.
Link to Trello card
No trello card but an internal dependency needed to add the A-levels Page to Publish: https://trello.com/c/GCHIarVq/1767-a-levels-1-7-add-a-level-requirements-question-page-for-tda-courses-on-publish?filter=label:Epic%3A TDA
Things to check

[ ] Does apply submission work?
[ ] Does apply submission work within the many choices candidate can make?

Awesome! Thank you 🙏. I will also take a brief look tomorrow and merge.


Colored output and bright colors

There are two new options added:

-C to color output;
-B to enable bright/bold colors.

Why don't you merge it?


Fix wc gnu test suite compatibility 3678

This is a pull request reopening https://github.com/uutils/coreutils/pull/3679 . 3679 was deleted because I removed my git repo as I accidentally forked from a fork already and wanted to clean up my fork.
This change will extract a utility already present in ls to uucore.
This utility is used by dir and vdir too, which are adjusted to
look it up in uucode. No further changes to ls, dir or dirv intended.
The change here largely fiddles with the output of uu_wc to match
that of GNU wc. This is the case to the extent to make unit tests
pass, however, there are differences remaining. One specific
difference I did not tackle is that GNU wc will not align the
output columns (compute_number_width() -> 1) in the specific case
of the input for --files0-from=- being a named pipe, not real stdin.
This difference can be triggered using the following two invocations.
wc --files0-from=- < files0 # use a named pipe, GNU does align
cat files0- | wc --files0-from=- # use real stdin, GNU does not
align.

Fail to build:

error[E0428]: the name `test_gnu_compatible_quotation` is defined multiple times
   --> /Users/runner/work/coreutils/coreutils/tests/by-util/test_wc.rs:137:1
    |
124 | fn test_gnu_compatible_quotation() {
    | ---------------------------------- previous definition of the value `test_gnu_compatible_quotation` here
...
137 | fn test_gnu_compatible_quotation() {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `test_gnu_compatible_quotation` redefined here
    |
    = note: `test_gnu_compatible_quotation` must be defined only once in the value namespace of this module

looks good here:
Warning: Congrats! The gnu test tests/misc/wc-files0 is no longer failing!

could you please rebase the stack of patches? too many merge, fix up, etc
git rebase -i origin/main
should do it

@sylvestre I had suashed it all and he force pushed.......
f0242e2f0242e2 ?

$ git reset --hard origin/main && git cherry-pick 04beea9 f0242e2
HEAD est maintenant à 64bc20c2d Merge pull request #3686 from cakebaker/show_error_if_padding_is_zero
fatal: bad revision '04beea9'

@sylvestre I'll open a PR with it on my side :)

done here:
https://github.com/uutils/coreutils/pull/3688


Testing component with angle brackets fails in addon

Hi, I have an addon with a component that invokes another component with angle brackets, e.g.
// link-inner.hbs
{{text}}

// link-outer.hbs
<LinkInner @link="/" @text="Link text" />

If I test the outer component, the test fails with the error
not ok 9 Chrome 67.0 - Global error: Uncaught Error: Assertion Failed: You cannot use 'LinkInner' as a component name. Component names must contain a hyphen

However, if I generate the same components in an app, the outer component test passes. Is this the intended behavior? I have a repo with an example app and addon here.
Thanks!

I ran into the same issue. Angle bracket components don't currently work anywhere in the addon folder. I created a brand new addon to verify this. Angle bracket components do work in the addon's dummy app though.
I tried looking at how the AST works, but I couldn't figure it out why it wouldn't be working.

https://github.com/rwjblue/ember-angle-bracket-invocation-polyfill/pull/19 should have fixed this. I believe the issue is that you don't have a new enough ember-cli-htmlbars-inline-precompile version.
Can you double check?

@jacojoubert - That sounds like a different issue than reported, can you open another issue and provide a demo repo that I can look through?

@rwjblue I'm using ^1.0.3 of ember-cli-htmlbars-inline-precompile

+1, i'm running into this issue, too! in my integration tests:
Assertion Failed: You cannot use \'CvrToggleButton\' as a component name. Component names must contain a hyphen.


Update German Localization

Describe the feature you want the app to have that it currently doesn't

Since the German localization was added to the project new strings have been added
Update to 100% coverage

Describe alternatives you've considered

N/A

Additional context

Currently at 64% coverage at the time of creating the issue

I can take a look at this.


Fix GetApplicationDirectory() null termination error

readlink is used to find the directory the executable resides in,
however readlink does not null terminate the returned string. If the
buffer does not have zero bytes at the end already, then you can have
errors. In my case, I was getting reports from valgrind about strlen (called when you do result.assign(pathbuf) probably) reading uninitialized memory, indicating it likely read past the end of of pathbuf.
Note that setting the char buffer to zero beforehand is sufficient because you already made it one character longer then was needed, so readlink will never write over the last char.

@mkilgore merged. thanks for this one!


python312Packages.lm-format-enforcer: 0.10.4 -> 0.10.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.lm-format-enforcer is: Enforce the output format (JSON Schema, Regex etc) of a language model
meta.homepage for python312Packages.lm-format-enforcer is: https://github.com/noamgat/lm-format-enforcer
meta.changelog for python312Packages.lm-format-enforcer is: https://github.com/noamgat/lm-format-enforcer/releases/tag/v0.10.5
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.10.5 with grep in /nix/store/wn0402bfs5k5m6r8zza2l1fsl6lq0zdf-python3.12-lm-format-enforcer-0.10.5
found 0.10.5 in filename of file in /nix/store/wn0402bfs5k5m6r8zza2l1fsl6lq0zdf-python3.12-lm-format-enforcer-0.10.5

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.lm-format-enforcer
python311Packages.vllm
python312Packages.lm-format-enforcer
python312Packages.vllm

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/wn0402bfs5k5m6r8zza2l1fsl6lq0zdf-python3.12-lm-format-enforcer-0.10.5 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.lm-format-enforcer https://github.com/r-ryantm/nixpkgs/archive/51576134cf0d50790c341bdace0685d3c7c4d918.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/51576134cf0d50790c341bdace0685d3c7c4d918#python312Packages.lm-format-enforcer

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wn0402bfs5k5m6r8zza2l1fsl6lq0zdf-python3.12-lm-format-enforcer-0.10.5
ls -la /nix/store/wn0402bfs5k5m6r8zza2l1fsl6lq0zdf-python3.12-lm-format-enforcer-0.10.5/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages failed to build:

python311Packages.vllm
python311Packages.vllm.dist
python312Packages.vllm
python312Packages.vllm.dist

4 packages built:

python311Packages.lm-format-enforcer
python311Packages.lm-format-enforcer.dist
python312Packages.lm-format-enforcer
python312Packages.lm-format-enforcer.dist

Maintainer pings
cc @cfhammill for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.lm-format-enforcer is: Enforce the output format (JSON Schema, Regex etc) of a language model
meta.homepage for python312Packages.lm-format-enforcer is: https://github.com/noamgat/lm-format-enforcer
meta.changelog for python312Packages.lm-format-enforcer is: https://github.com/noamgat/lm-format-enforcer/releases/tag/v0.10.6
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.10.6 with grep in /nix/store/9g43xk7hjrzyd2y0wzdcrps86vs38p9s-python3.12-lm-format-enforcer-0.10.6
found 0.10.6 in filename of file in /nix/store/9g43xk7hjrzyd2y0wzdcrps86vs38p9s-python3.12-lm-format-enforcer-0.10.6

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.lm-format-enforcer
python311Packages.vllm
python312Packages.lm-format-enforcer
python312Packages.vllm

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9g43xk7hjrzyd2y0wzdcrps86vs38p9s-python3.12-lm-format-enforcer-0.10.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.lm-format-enforcer https://github.com/r-ryantm/nixpkgs/archive/cf0becae8f679e0771c30e63c6a2bd0f2b9d4c2a.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/cf0becae8f679e0771c30e63c6a2bd0f2b9d4c2a#python312Packages.lm-format-enforcer

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9g43xk7hjrzyd2y0wzdcrps86vs38p9s-python3.12-lm-format-enforcer-0.10.6
ls -la /nix/store/9g43xk7hjrzyd2y0wzdcrps86vs38p9s-python3.12-lm-format-enforcer-0.10.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages failed to build:

python311Packages.vllm
python311Packages.vllm.dist
python312Packages.vllm
python312Packages.vllm.dist

4 packages built:

python311Packages.lm-format-enforcer
python311Packages.lm-format-enforcer.dist
python312Packages.lm-format-enforcer
python312Packages.lm-format-enforcer.dist

Maintainer pings
cc @cfhammill for testing.

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

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.lm-format-enforcer is: Enforce the output format (JSON Schema, Regex etc) of a language model
meta.homepage for python312Packages.lm-format-enforcer is: https://github.com/noamgat/lm-format-enforcer
meta.changelog for python312Packages.lm-format-enforcer is: https://github.com/noamgat/lm-format-enforcer/releases/tag/v0.10.7
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.10.7 with grep in /nix/store/r9pnqp1g2kxmzxwg2c7qc1i7jlcqjcvq-python3.12-lm-format-enforcer-0.10.7
found 0.10.7 in filename of file in /nix/store/r9pnqp1g2kxmzxwg2c7qc1i7jlcqjcvq-python3.12-lm-format-enforcer-0.10.7

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.lm-format-enforcer
python311Packages.vllm
python312Packages.lm-format-enforcer
python312Packages.vllm

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/r9pnqp1g2kxmzxwg2c7qc1i7jlcqjcvq-python3.12-lm-format-enforcer-0.10.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.lm-format-enforcer https://github.com/r-ryantm/nixpkgs/archive/185bb17f8c6a408d07cda68634937e3b966d89a7.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/185bb17f8c6a408d07cda68634937e3b966d89a7#python312Packages.lm-format-enforcer

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/r9pnqp1g2kxmzxwg2c7qc1i7jlcqjcvq-python3.12-lm-format-enforcer-0.10.7
ls -la /nix/store/r9pnqp1g2kxmzxwg2c7qc1i7jlcqjcvq-python3.12-lm-format-enforcer-0.10.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages failed to build:

python311Packages.vllm
python311Packages.vllm.dist
python312Packages.vllm
python312Packages.vllm.dist

4 packages built:

python311Packages.lm-format-enforcer
python311Packages.lm-format-enforcer.dist
python312Packages.lm-format-enforcer
python312Packages.lm-format-enforcer.dist

Maintainer pings
cc @cfhammill for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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


ENH: make Series.ptp() handle missing values

Currently (in master), Series.ptp() is just implemented using np.ptp() and so the method will return nan for any Series that has one or more missing values:
>>> s = pd.Series([5, 0, np.nan, -3, 2])
>>> s.ptp()
nan

It is simple to write s.max() - s.min() instead, but the ptp() result is surprising as most pandas methods are designed to handle missing data gracefully. I think most users would expect the ptp() method to ignore NaN.
If there is any agreement as to whether ptp() should be changed, I would like to work on a pull request!

Extending the idea, it might be useful to have both DataFrame.ptp() and groupby.ptp() methods.
For this example DataFrame...
df = pd.DataFrame({'a': [1, 2, 2, 1, 1],
                   'b': [3, 11, 72, 46, 32],
                   'c': [1.2, 6.7, 13.9, np.nan, -7.7],
                   'd': ['v', 'w', 'x', 'y', 'z']})

...I would expect the following behaviour:
>>> df.ptp()
a      1
b     69
c   12.7
dtype: float64

>>> df.ptp(axis=1)
0     2.0
1     9.0
2    70.0
3    45.0
4    39.7
dtype: float64

>>> df.groupby('a').ptp()
    b    c
a
1  43  8.9
2  61  7.2

Again, if there is any consensus from the community on whether these additional methods should be added, I'd be happy to work on the pull request.

absolutely. this should do .align, then .max()-.min(). Its here prob just as a convience.
want to do a pull-requests?

Sure, I can work on this. It look pretty straightforward, although I guess non-numeric columns will have to skipped over as 'str' - 'str'  will raise an error.

Certainly OK to fix the NaN issue in Series.ptp! (we could consider it a bug)
But, I am a bit more hesitant on the second part, adding it to DataFrame. Some reasons: 1) we already have many methods, and personally I don't think ptp has enough added value to justify addition, 2) it is really easy to do this yourself and 3) I also don't find ptp a very clear name.
I also wanted to say that you can always do np.ptp(df, axis=1), but apparantly that does not work (although I think that is rather a bug in np.ptp)

Forget about what I said about np.ptp

I agree ptp is very easily implemented by the user if they need ever it, so maybe it's not worth adding it to DataFrame and groupby for now.
In that case, I'll just change Series.ptp() so that it's written as max() - min() and so is NaN-aware.


Upgrade NServiceBus 8

Upgrade to NServiceBus 8 due to some interface changes.
Support Net472 also (Like NServiceBus)

just to confirm all devs (using NSB) at your company are sponsors https://github.com/NServiceBusExtensions/Home#community-backed

so you are the only developer at your company using nservicebus?

@twenzel bump?

I'm the only one using this extension in my extension.