saved_entry grub options not getting applied on boot after upgrading kairos from 2.0.3 to 2.1.0

Kairos version:

NAME="openSUSE Leap"
VERSION="15.4"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.4"
PRETTY_NAME="openSUSE Leap 15.4"
KAIROS_NAME="kairos-core-opensuse-leap"
KAIROS_VERSION="v2.1.0"
KAIROS_ID="kairos"
KAIROS_ID_LIKE="kairos-core-opensuse-leap"
KAIROS_VERSION_ID="v2.1.0"
KAIROS_PRETTY_NAME="kairos-core-opensuse-leap v2.1.0"
KAIROS_IMAGE_REPO="quay.io/kairos/core-opensuse-leap"
KAIROS_IMAGE_LABEL="latest"
KAIROS_GITHUB_REPO="kairos-io/kairos"
KAIROS_VARIANT="core"
KAIROS_FLAVOR="opensuse-leap"

CPU architecture, OS, and Version:

5.14.21-150400.24.63-default #1 SMP PREEMPT_DYNAMIC Tue May 2 15:49:04 UTC 2023 (fd0cc4f) x86_64 x86_64 x86_64 GNU/Linux

Describe the bug

We are adding saved_entry grub_options as part of the elemental install config through kairos pkg github.com/kairos-io/kairos/pkg/config. These options get passed to the install config through a handler which gets executed by agent.install plugin event.
cloudInit.Install.Auto = true
cloudInit.Install.Reboot = !cloudInit.Install.Poweroff
cloudInit.Install.GrubOptions["saved_entry"] = "registration"

This is from 90_custom.yaml just after elemental install:
#cloud-config
install:
  auto: true
  grub_options:
    saved_entry: registration
  reboot: true

Here, setting the saved_entry flag to the registration grub. But after elemental installation is done, the next boot is not going to this grub instead it is going to the first entry in the grub menu. This has started to happen from v2.1.0.
Pasting my grubmenu.cfg here:
kubeadm-12:/oem # cat /etc/kairos/branding/grubmenu.cfg
menuentry "Palette eXtended Kubernetes Edge Reset" --id statereset {
    set img=/cOS/recovery.img
    search.fs_label COS_RECOVERY root
    set label=COS_SYSTEM
    loopback loop0 /$img
    set root=($root)
    source (loop0)/etc/cos/bootargs.cfg
    linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_recovery_cmdline} kairos.reset
    initrd (loop0)$initramfs
}

menuentry "Palette eXtended Kubernetes Edge Registration" --id registration {
    search --no-floppy --label --set=root COS_STATE
    set img=/cOS/active.img
    set label=COS_ACTIVE
    loopback loop0 /$img
    set root=($root)
    source (loop0)/etc/cos/bootargs.cfg
    linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_active_cmdline} stylus.registration
    initrd (loop0)$initramfs
}

One more thing I noticed is that in v2.1.0 after elemental installation, there is no grubenv file getting created in /oem.
In v2.0.3
kubeadm-11:/oem # ls
90_custom.yaml	grubenv  lost+found  userdata  userdata.yaml
kubeadm-11:/oem # cat grubenv
# GRUB Environment Block
# WARNING: Do not edit this file by tools other than grub2-editenv!!!
saved_entry=registration
#############################################################################################################################################################################################

In v2.1.0
kubeadm-12:/oem # ls
90_custom.yaml	lost+found  userdata  userdata.yaml
kubeadm-12:/oem #

Expected behavior
Expected to boot into proper grub menu entry. Here, in this case, it should boot into menuentry "Palette eXtended Kubernetes Edge Registration" --id registration. It was working fine till v2.0.3.

I verified what @venkatnsrinivasan also noted in Slack, that on core v2.1.0 installing with this config file:
KAIROS_FLAVOR="opensuse-leap"kairos@localhost:~> cat /oem/90_custom.yaml
#cloud-config

install:
    auto: true
    grub_options:
        saved_entry: registration
users:
    - name: kairos
      passwd: kairos

results in this file to be created:
kairos@localhost:~> cat /oem/grubenv
# GRUB Environment Block
# WARNING: Do not edit this file by tools other than grub2-editenv!!!
saved_entry=registration

The problem lies either in the upgrade process or in the way the config is passed through the handler.

There isnt an upgrade process, i think the upgrade in the ticket means , when using 2.0.3 vs 2.1.0. I tried creating a config yaml similar to above except the grub_options are set via our provider when kairos-agent sends the install event .It generates the 90_custom.yaml with the grub options but the grubenv isnt getting generated.

I think I know what's going on. The result from the provider is merged back to the object we pass to RunInstall  but as top level keys (not merged into the cc key). But the RunInstall method, uses the cc key as the cloudInit configuration which doesn't have the keys sent from the provider.

Not only this but the kairos-install.pre is building it's own config by reading the CloudInitPaths completely ignoring the passed options object. This may or may not build the same config, it depends on the paths used to build each.
This also means, that the kairos-install.pre hook may run with different configuration than the installation.
Maybe it's better if we fix this as part of this: https://github.com/kairos-io/kairos-agent/pull/32 which is already changing this part of the code, fixing some other bugs.

We discussed this and proper fix requires a heavy refactoring. We will try to provider a quick fix first and do the refactoring separately.
I created a possible quick fix here: https://github.com/kairos-io/kairos-agent/pull/32/commits/1672683a4c917123a8a82b60babd587ec10af465 but I need a provider mock that sends back a cloud config, in order to try it out. I will try to create one and test.

I created a simple provider here: https://github.com/jimmykarily/kairos-provider-mock . I'll try to test it now.

I amended the fix here: https://github.com/kairos-io/kairos-agent/pull/32/commits/a53d8a0b297d350193a0058cf11e8ddfe445737a
I tested it like this:

booted a kairos core image I built from kairos master (older releases produce some errors with the kairos-agent I've built from my branch)
I used scp to copy the custom kairos-agent binary inside the running VM
I compiled the mock provider with CGO_ENABLED=0 go build -ldflags="-extldflags=-static" -o agent-provider-dimitris  and scpied that inside the VM too.
Created the directory /system/providers in the VM and moved the agent-provider-dimitris there.
Created a /oem/config.yaml file with this content:

#cloud-config
users:
  - name: kairos
    passwd: kairos

to be able to login after installation

Run ./kairos-agent install (NOTE: This is the custom binary I scpied, not the one in the PATH)

Installation went through and I can see this in the installed system:
kairos@localhost:~> cat /oem/90_custom.yaml
#cloud-config
install:
  grub_options:
    saved_entry: registration
users:
- name: kairos
  passwd: kairos

So everything has worked except that there is still no /oem/grubenv. I suspect it's because I didn't set install.auto: true. I'll try that.

My fix is invalid. I was looking at the install.auto: true path which is the one that doesn't contact the provider at all. The install.auto: false path already merges the agent-provider's config back. I don't know what's going on.
In the meantime, setting install.auto: true in the cloud-config sent from the agent-provider might create some strange situations because up to that point, the value of that key is false (otherwise the provider wouldn't be called at all). After calling the provider, the value changes to true. An installation should either have auto: true or auto: false, not changing in the middle of the process. I don't think it's relevant to what we see in this issue but I thought I should bring it up in case this creates other issues.

GrubOptions  hook is run here: https://github.com/kairos-io/kairos-agent/blob/5fe8eb8cc2617e96e609da282d1079a95ba06e0c/internal/agent/install.go#L345
but reboot happens some lines above: https://github.com/kairos-io/kairos-agent/blob/5fe8eb8cc2617e96e609da282d1079a95ba06e0c/internal/agent/install.go#L340
(when Reboot is true). This means, the system reboots without the hooks ever being run. I'll continue tomorrow with a fresh brain but I think that's the reason grubenv is not in place.

This seems to work: https://github.com/kairos-io/kairos-agent/pull/36
Of course, passing yet another config to the Run method makes it even more confusing. But given our plans to refactor this code, maybe this dirty fix is ok (?).

@Itxaka found the real reason it was failing and we adapted the PR. Will merge soon and prepare to include in the upcoming release.


Add route string syntax to Razor pages and Blazor

Fixes https://github.com/dotnet/razor-compiler/issues/352
I've hacked this in. There are things todo:

Is this the right way to detect whether a Razor document is a Razor Page or Blazor page?
I was surprised when I ran the unit tests and nothing failed. It appears the razor compiler unit tests aren't in the solution file? If they're somewhere in the repo then I still need to update them.

It works:

🥳 🎈 🚀 🎉
cc @CyrusNajmabadi

It does look like there are some test failures.

Done review pass (commit 2)

@dotnet/razor-compiler for a second review please.

Thanks @JamesNK!


NixoS fails to boot at stage 1

Describe the bug
After adding the following packages all at once(probably wasnt the best idea) to my configuration.nix I can run sudo nixos-rebuild switch but it fails to boot on a reboot:
gitAndTools.gitFull
tmux
pstree
nodejs
cmake
gnumake
ripgrep
lazygit
zoxide
eza
python3
rustup
rustc
cargo
firefox
neovim
vim
wget
curl
zsh
unzip
gcc
clang
zathura
xdotool
thunderbird
nerdfonts
Steps To Reproduce
Steps to reproduce the behavior:

clean install of nixos on Vmware with the provided packages above
run sudo nixos-rebuild
reboot
problem appears

Expected behavior
for NixOS to boot without issues
Screenshots
here is a screenshot of the error in question

Additional context
I have tried removing all  packages from the user space and the enviroment space and the issue persists. I can provide the entirety of the current configuration.nix if needed.
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
I am unable to run the command at the latest generation as it wont boot but here is a screenshot of the output of the last generation that will boot(since copy and paste is not working from guest to host)

[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"

Add a :+1: reaction to issues you find important.

Since this is in an emulated environment, It might be that your rootfs disk has changed, so the provided uuid in your configuration.nix is no longer valid.

I generated the entire configration.nix in a simulated enviroment, this is just from one simulated enviroment to another

this is just from one simulated enviroment to another
what do you mean ?

same vm settings as a previous virtual machine.

no its not the same configuration.nix its the same packages? I fail to see how the uuid would do anything as I would think that that would come from hardware.nix not the added packages? I will give it a shot though and let you know the results would this require me to reinstall NixOS?

yeah it's not an issue with the added packages,
Reinstalling is probably the easiest solution if you don't need to recover stuff from your OS. otherwise you can boot into a live system and retrieve data from your rootfs disk

the problem is that I always get this issue when I add all of these pacakges this will be my third time reinstalling, what exactly do I need to do differently?

ok I think it was because I also copied the hardware-confiugration.nix. after fixing that I am no longer running into the issue, sorry for wasting yalls time.


[Bug] Chip-tool fails to register with Avahi, reports "Incorrect State"

From chip-certification-tool created by jrhees-cae: CHIP-Specifications/chip-certification-tool#979
Describe the bug
On occasion, chip-tool will fail with "Incorrect State". This is especially prevalent on UI-Semi-Automated tests where both OTBR/TH and manual execution of chip-tool are occurring, such as TC-ACL-2.7
When failing, chip-tool will error out as follows:
ubuntu@ubuntu:~$ docker exec -it th-chip-tool /bin/bash
root@ubuntu:~# ./chip-tool  pairing open-commissioning-window 0x3000b760b7d068c9 1 400 2000 3841
[1694821417.478311][27:27] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1694821417.483926][27:27] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_factory.ini
[1694821417.484275][27:27] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_config.ini
[1694821417.484436][27:27] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_counters.ini
[1694821417.484885][27:27] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-GZxz3p)
[1694821417.485635][27:27] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1694821417.485711][27:27] CHIP:DL: NVS set: chip-counters/reboot-count = 2 (0x2)
[1694821417.486672][27:27] CHIP:DL: Got Ethernet interface: eth0
[1694821417.487321][27:27] CHIP:DL: Found the primary Ethernet interface:eth0
[1694821417.488004][27:27] CHIP:DL: Got WiFi interface: wlan0
[1694821417.488074][27:27] CHIP:DL: Failed to reset WiFi statistic counts
[1694821417.488131][27:27] CHIP:IN: UDP::Init bind&listen port=0
[1694821417.488240][27:27] CHIP:IN: UDP::Init bound to port=40410
[1694821417.488263][27:27] CHIP:IN: BLEBase::Init - setting/overriding transport
[1694821417.488280][27:27] CHIP:IN: TransportMgr initialized
[1694821417.488311][27:27] CHIP:FP: Initializing FabricTable from persistent storage
[1694821417.488483][27:27] CHIP:TS: Last Known Good Time: 2023-09-02T01:00:09
[1694821417.489930][27:27] CHIP:FP: Fabric index 0x1 was retrieved from storage. Compressed FabricId 0xDAD59C801F3BE943, FabricId 0x0000000000000001, NodeId 0x000000000001B669, VendorId 0xFFF1
[1694821417.492171][27:27] CHIP:ZCL: Using ZAP configuration...
[1694821417.496285][27:27] CHIP:DL: Avahi re-register required
[1694821417.496404][27:27] CHIP:DIS: Delaying proxy of operational discovery: missing delegate
[1694821417.496458][27:27] CHIP:CTL: System State Initialized...
[1694821417.496601][27:27] CHIP:CTL: Setting attestation nonce to random value
[1694821417.496641][27:27] CHIP:CTL: Setting CSR nonce to random value
[1694821417.496705][27:27] CHIP:IN: UDP::Init bind&listen port=5550
[1694821417.496827][27:27] CHIP:IN: UDP::Init bound to port=5550
[1694821417.496849][27:27] CHIP:IN: TransportMgr initialized
[1694821417.497096][27:29] CHIP:DL: CHIP task running
[1694821417.497281][27:29] CHIP:DL: HandlePlatformSpecificBLEEvent 32787
[1694821417.497617][27:29] CHIP:CTL: Setting attestation nonce to random value
[1694821417.497795][27:29] CHIP:CTL: Setting CSR nonce to random value
[1694821417.498672][27:29] CHIP:CTL: Generating NOC
[1694821417.499643][27:29] CHIP:FP: Validating NOC chain
[1694821417.501411][27:29] CHIP:FP: NOC chain validation successful
[1694821417.501569][27:29] CHIP:FP: Updated fabric at index: 0x1, Node ID: 0x000000000001B669
[1694821417.501605][27:29] CHIP:TS: Last Known Good Time: 2023-09-02T01:00:09
[1694821417.501626][27:29] CHIP:TS: New proposed Last Known Good Time: 2021-01-01T00:00:00
[1694821417.501647][27:29] CHIP:TS: Retaining current Last Known Good Time
[1694821417.506367][27:29] CHIP:FP: Metadata for Fabric 0x1 persisted to storage.
[1694821417.508356][27:29] CHIP:TS: Committing Last Known Good Time to storage: 2023-09-02T01:00:09
[1694821417.510249][27:29] CHIP:CTL: Joined the fabric at index 1. Fabric ID is 0x0000000000000001 (Compressed Fabric ID: DAD59C801F3BE943)
[1694821417.510305][27:29] CHIP:IN: UDP::Init bind&listen port=5550
[1694821417.510416][27:29] CHIP:IN: UDP::Init bound to port=5550
[1694821417.510439][27:29] CHIP:IN: TransportMgr initialized
[1694821417.538121][27:29] CHIP:CSM: FindOrEstablishSession: PeerId = [1:3000B760B7D068C9]
[1694821417.538176][27:29] CHIP:CSM: FindOrEstablishSession: No existing OperationalSessionSetup instance found
[1694821417.538216][27:29] CHIP:DIS: OperationalSessionSetup[1:3000B760B7D068C9]: State change 1 --> 2
[1694821417.538249][27:29] CHIP:DIS: OperationalSessionSetup[1:3000B760B7D068C9]: State change 2 --> 1
[1694821417.538294][27:29] CHIP:CTL: Failed to open pairing window on the device. Status src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state
[1694821417.538319][27:29] CHIP:-: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state at ../../examples/chip-tool/commands/pairing/OpenCommissioningWindowCommand.cpp:50
[1694821417.538340][27:29] CHIP:-: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state at ../../examples/chip-tool/commands/pairing/OpenCommissioningWindowCommand.cpp:57
[1694821417.538674][27:27] CHIP:CTL: Shutting down the commissioner
[1694821417.538905][27:27] CHIP:CTL: Shutting down the controller
[1694821417.539007][27:27] CHIP:IN: Expiring all sessions for fabric 0x1!!
[1694821417.539055][27:27] CHIP:FP: Forgetting fabric 0x1
[1694821417.539111][27:27] CHIP:TS: Pending Last Known Good Time: 2023-09-02T01:00:09
[1694821417.539357][27:27] CHIP:TS: Previous Last Known Good Time: 2023-09-02T01:00:09
[1694821417.539416][27:27] CHIP:TS: Reverted Last Known Good Time to previous value
[1694821417.539500][27:27] CHIP:CTL: Shutting down the commissioner
[1694821417.539576][27:27] CHIP:CTL: Shutting down the controller
[1694821417.539594][27:27] CHIP:CTL: Shutting down the System State, this will teardown the CHIP Stack
[1694821417.539783][27:27] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet
[1694821417.539897][27:27] CHIP:FP: Shutting down FabricTable
[1694821417.539935][27:27] CHIP:TS: Pending Last Known Good Time: 2023-09-02T01:00:09
[1694821417.540055][27:27] CHIP:TS: Previous Last Known Good Time: 2023-09-02T01:00:09
[1694821417.540079][27:27] CHIP:TS: Reverted Last Known Good Time to previous value
[1694821417.540555][27:27] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-hUu3yx)
[1694821417.541267][27:27] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1694821417.541381][27:27] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0)
[1694821417.541434][27:27] CHIP:DL: Inet Layer shutdown
[1694821417.541477][27:27] CHIP:DL: BLE shutdown
[1694821417.541520][27:27] CHIP:DL: System Layer shutdown
[1694821417.541937][27:27] CHIP:TOO: Run command failure: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state
root@ubuntu:~# ./chip-tool  pairing open-commissioning-window 0x3000b760b7d068c9 1 400 2000 3841
[1694821660.211356][30:30] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1694821660.217164][30:30] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_factory.ini
[1694821660.217463][30:30] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_config.ini
[1694821660.217604][30:30] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_counters.ini
[1694821660.218177][30:30] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-LDIR63)
[1694821660.218906][30:30] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1694821660.218982][30:30] CHIP:DL: NVS set: chip-counters/reboot-count = 3 (0x3)
[1694821660.219934][30:30] CHIP:DL: Got Ethernet interface: eth0
[1694821660.220556][30:30] CHIP:DL: Found the primary Ethernet interface:eth0
[1694821660.221255][30:30] CHIP:DL: Got WiFi interface: wlan0
[1694821660.221325][30:30] CHIP:DL: Failed to reset WiFi statistic counts
[1694821660.221382][30:30] CHIP:IN: UDP::Init bind&listen port=0
[1694821660.221491][30:30] CHIP:IN: UDP::Init bound to port=45042
[1694821660.221515][30:30] CHIP:IN: BLEBase::Init - setting/overriding transport
[1694821660.221534][30:30] CHIP:IN: TransportMgr initialized
[1694821660.221567][30:30] CHIP:FP: Initializing FabricTable from persistent storage
[1694821660.221734][30:30] CHIP:TS: Last Known Good Time: 2023-09-02T01:00:09
[1694821660.223233][30:30] CHIP:FP: Fabric index 0x1 was retrieved from storage. Compressed FabricId 0xDAD59C801F3BE943, FabricId 0x0000000000000001, NodeId 0x000000000001B669, VendorId 0xFFF1
[1694821660.225505][30:30] CHIP:ZCL: Using ZAP configuration...
[1694821660.229506][30:30] CHIP:DL: Avahi re-register required
[1694821660.229623][30:30] CHIP:DIS: Delaying proxy of operational discovery: missing delegate
[1694821660.229681][30:30] CHIP:CTL: System State Initialized...
[1694821660.229812][30:30] CHIP:CTL: Setting attestation nonce to random value
[1694821660.229850][30:30] CHIP:CTL: Setting CSR nonce to random value
[1694821660.229909][30:30] CHIP:IN: UDP::Init bind&listen port=5550
[1694821660.230027][30:30] CHIP:IN: UDP::Init bound to port=5550
[1694821660.230048][30:30] CHIP:IN: TransportMgr initialized
[1694821660.230436][30:32] CHIP:DL: CHIP task running
[1694821660.230642][30:32] CHIP:DL: HandlePlatformSpecificBLEEvent 32787
[1694821660.230987][30:32] CHIP:CTL: Setting attestation nonce to random value
[1694821660.231167][30:32] CHIP:CTL: Setting CSR nonce to random value
[1694821660.232125][30:32] CHIP:CTL: Generating NOC
[1694821660.233022][30:32] CHIP:FP: Validating NOC chain
[1694821660.234675][30:32] CHIP:FP: NOC chain validation successful
[1694821660.234834][30:32] CHIP:FP: Updated fabric at index: 0x1, Node ID: 0x000000000001B669
[1694821660.234908][30:32] CHIP:TS: Last Known Good Time: 2023-09-02T01:00:09
[1694821660.234956][30:32] CHIP:TS: New proposed Last Known Good Time: 2021-01-01T00:00:00
[1694821660.235027][30:32] CHIP:TS: Retaining current Last Known Good Time
[1694821660.237459][30:32] CHIP:FP: Metadata for Fabric 0x1 persisted to storage.
[1694821660.239587][30:32] CHIP:TS: Committing Last Known Good Time to storage: 2023-09-02T01:00:09
[1694821660.241774][30:32] CHIP:CTL: Joined the fabric at index 1. Fabric ID is 0x0000000000000001 (Compressed Fabric ID: DAD59C801F3BE943)
[1694821660.241830][30:32] CHIP:IN: UDP::Init bind&listen port=5550
[1694821660.241938][30:32] CHIP:IN: UDP::Init bound to port=5550
[1694821660.241958][30:32] CHIP:IN: TransportMgr initialized
[1694821660.268534][30:32] CHIP:CSM: FindOrEstablishSession: PeerId = [1:3000B760B7D068C9]
[1694821660.268587][30:32] CHIP:CSM: FindOrEstablishSession: No existing OperationalSessionSetup instance found
[1694821660.268624][30:32] CHIP:DIS: OperationalSessionSetup[1:3000B760B7D068C9]: State change 1 --> 2
[1694821660.268654][30:32] CHIP:DIS: OperationalSessionSetup[1:3000B760B7D068C9]: State change 2 --> 1
[1694821660.268695][30:32] CHIP:CTL: Failed to open pairing window on the device. Status src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state
[1694821660.268723][30:32] CHIP:-: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state at ../../examples/chip-tool/commands/pairing/OpenCommissioningWindowCommand.cpp:50
[1694821660.268747][30:32] CHIP:-: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state at ../../examples/chip-tool/commands/pairing/OpenCommissioningWindowCommand.cpp:57
[1694821660.269042][30:30] CHIP:CTL: Shutting down the commissioner
[1694821660.269138][30:30] CHIP:CTL: Shutting down the controller
[1694821660.269182][30:30] CHIP:IN: Expiring all sessions for fabric 0x1!!
[1694821660.269206][30:30] CHIP:FP: Forgetting fabric 0x1
[1694821660.269535][30:30] CHIP:TS: Pending Last Known Good Time: 2023-09-02T01:00:09
[1694821660.269697][30:30] CHIP:TS: Previous Last Known Good Time: 2023-09-02T01:00:09
[1694821660.269722][30:30] CHIP:TS: Reverted Last Known Good Time to previous value
[1694821660.269767][30:30] CHIP:CTL: Shutting down the commissioner
[1694821660.269859][30:30] CHIP:CTL: Shutting down the controller
[1694821660.269888][30:30] CHIP:CTL: Shutting down the System State, this will teardown the CHIP Stack
[1694821660.270057][30:30] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet
[1694821660.270139][30:30] CHIP:FP: Shutting down FabricTable
[1694821660.270169][30:30] CHIP:TS: Pending Last Known Good Time: 2023-09-02T01:00:09
[1694821660.270289][30:30] CHIP:TS: Previous Last Known Good Time: 2023-09-02T01:00:09
[1694821660.270311][30:30] CHIP:TS: Reverted Last Known Good Time to previous value
[1694821660.270644][30:30] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-xIVZYz)
[1694821660.271367][30:30] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1694821660.271444][30:30] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0)
[1694821660.271467][30:30] CHIP:DL: Inet Layer shutdown
[1694821660.271484][30:30] CHIP:DL: BLE shutdown
[1694821660.271502][30:30] CHIP:DL: System Layer shutdown
[1694821660.272158][30:30] CHIP:TOO: Run command failure: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state
root@ubuntu:~# ./chip-tool  pairing open-commissioning-window 0x3000b760b7d068c9 1 400 2000 3841
[1694821965.309539][33:33] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1694821965.315161][33:33] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_factory.ini
[1694821965.315462][33:33] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_config.ini
[1694821965.315598][33:33] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_counters.ini
[1694821965.316114][33:33] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-pIQdX4)
[1694821965.316899][33:33] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1694821965.317021][33:33] CHIP:DL: NVS set: chip-counters/reboot-count = 4 (0x4)
[1694821965.317962][33:33] CHIP:DL: Got Ethernet interface: eth0
[1694821965.318616][33:33] CHIP:DL: Found the primary Ethernet interface:eth0
[1694821965.319319][33:33] CHIP:DL: Got WiFi interface: wlan0
[1694821965.319392][33:33] CHIP:DL: Failed to reset WiFi statistic counts
[1694821965.319452][33:33] CHIP:IN: UDP::Init bind&listen port=0
[1694821965.319560][33:33] CHIP:IN: UDP::Init bound to port=53530
[1694821965.319633][33:33] CHIP:IN: BLEBase::Init - setting/overriding transport
[1694821965.319655][33:33] CHIP:IN: TransportMgr initialized
[1694821965.319709][33:33] CHIP:FP: Initializing FabricTable from persistent storage
[1694821965.319874][33:33] CHIP:TS: Last Known Good Time: 2023-09-02T01:00:09
[1694821965.321428][33:33] CHIP:FP: Fabric index 0x1 was retrieved from storage. Compressed FabricId 0xDAD59C801F3BE943, FabricId 0x0000000000000001, NodeId 0x000000000001B669, VendorId 0xFFF1
[1694821965.323707][33:33] CHIP:ZCL: Using ZAP configuration...
[1694821965.327318][33:33] CHIP:DL: Avahi re-register required
[1694821965.327432][33:33] CHIP:DIS: Delaying proxy of operational discovery: missing delegate
[1694821965.327492][33:33] CHIP:CTL: System State Initialized...
[1694821965.327622][33:33] CHIP:CTL: Setting attestation nonce to random value
[1694821965.327658][33:33] CHIP:CTL: Setting CSR nonce to random value
[1694821965.327789][33:33] CHIP:IN: UDP::Init bind&listen port=5550
[1694821965.327907][33:33] CHIP:IN: UDP::Init bound to port=5550
[1694821965.327926][33:33] CHIP:IN: TransportMgr initialized
[1694821965.328187][33:35] CHIP:DL: CHIP task running
[1694821965.328385][33:35] CHIP:DL: HandlePlatformSpecificBLEEvent 32787
[1694821965.328709][33:35] CHIP:CTL: Setting attestation nonce to random value
[1694821965.328886][33:35] CHIP:CTL: Setting CSR nonce to random value
[1694821965.329830][33:35] CHIP:CTL: Generating NOC
[1694821965.330761][33:35] CHIP:FP: Validating NOC chain
[1694821965.332551][33:35] CHIP:FP: NOC chain validation successful
[1694821965.332749][33:35] CHIP:FP: Updated fabric at index: 0x1, Node ID: 0x000000000001B669
[1694821965.332782][33:35] CHIP:TS: Last Known Good Time: 2023-09-02T01:00:09
[1694821965.332803][33:35] CHIP:TS: New proposed Last Known Good Time: 2021-01-01T00:00:00
[1694821965.332822][33:35] CHIP:TS: Retaining current Last Known Good Time
[1694821965.335097][33:35] CHIP:FP: Metadata for Fabric 0x1 persisted to storage.
[1694821965.337030][33:35] CHIP:TS: Committing Last Known Good Time to storage: 2023-09-02T01:00:09
[1694821965.338882][33:35] CHIP:CTL: Joined the fabric at index 1. Fabric ID is 0x0000000000000001 (Compressed Fabric ID: DAD59C801F3BE943)
[1694821965.338938][33:35] CHIP:IN: UDP::Init bind&listen port=5550
[1694821965.339048][33:35] CHIP:IN: UDP::Init bound to port=5550
[1694821965.339071][33:35] CHIP:IN: TransportMgr initialized
[1694821965.363320][33:35] CHIP:CSM: FindOrEstablishSession: PeerId = [1:3000B760B7D068C9]
[1694821965.363371][33:35] CHIP:CSM: FindOrEstablishSession: No existing OperationalSessionSetup instance found
[1694821965.363404][33:35] CHIP:DIS: OperationalSessionSetup[1:3000B760B7D068C9]: State change 1 --> 2
[1694821965.363442][33:35] CHIP:DIS: OperationalSessionSetup[1:3000B760B7D068C9]: State change 2 --> 1
[1694821965.363482][33:35] CHIP:CTL: Failed to open pairing window on the device. Status src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state
[1694821965.363508][33:35] CHIP:-: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state at ../../examples/chip-tool/commands/pairing/OpenCommissioningWindowCommand.cpp:50
[1694821965.363531][33:35] CHIP:-: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state at ../../examples/chip-tool/commands/pairing/OpenCommissioningWindowCommand.cpp:57
[1694821965.363899][33:33] CHIP:CTL: Shutting down the commissioner
[1694821965.364001][33:33] CHIP:CTL: Shutting down the controller
[1694821965.364046][33:33] CHIP:IN: Expiring all sessions for fabric 0x1!!
[1694821965.364065][33:33] CHIP:FP: Forgetting fabric 0x1
[1694821965.364094][33:33] CHIP:TS: Pending Last Known Good Time: 2023-09-02T01:00:09
[1694821965.364238][33:33] CHIP:TS: Previous Last Known Good Time: 2023-09-02T01:00:09
[1694821965.364261][33:33] CHIP:TS: Reverted Last Known Good Time to previous value
[1694821965.364301][33:33] CHIP:CTL: Shutting down the commissioner
[1694821965.364361][33:33] CHIP:CTL: Shutting down the controller
[1694821965.364414][33:33] CHIP:CTL: Shutting down the System State, this will teardown the CHIP Stack
[1694821965.364600][33:33] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet
[1694821965.364719][33:33] CHIP:FP: Shutting down FabricTable
[1694821965.364786][33:33] CHIP:TS: Pending Last Known Good Time: 2023-09-02T01:00:09
[1694821965.364920][33:33] CHIP:TS: Previous Last Known Good Time: 2023-09-02T01:00:09
[1694821965.364976][33:33] CHIP:TS: Reverted Last Known Good Time to previous value
[1694821965.365416][33:33] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-P1TTPK)
[1694821965.366142][33:33] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1694821965.366220][33:33] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0)
[1694821965.366242][33:33] CHIP:DL: Inet Layer shutdown
[1694821965.366262][33:33] CHIP:DL: BLE shutdown
[1694821965.366281][33:33] CHIP:DL: System Layer shutdown
[1694821965.366649][33:33] CHIP:TOO: Run command failure: src/lib/dnssd/Discovery_ImplPlatform.cpp:689: CHIP Error 0x00000003: Incorrect state

Steps to reproduce the behavior
No response
Expected behavior
No response
Log files
See log files here:
https://csamembers.slack.com/archives/C05P2DKG0J0/p1695643214736949?thread_ts=1695229728.149429&cid=C05P2DKG0J0
and here:
https://csamembers.slack.com/archives/C05P2DKG0J0/p1695643291494439?thread_ts=1695229728.149429&cid=C05P2DKG0J0
PICS file
No response
Screenshots
No response
Environment
No response
Additional Information
No response

Adding logs here since @gladystonfranca has no access to the SVE slack channel:
syslog.txt
docker_log.txt

Michał Szablowski from Nordic was looking into it. He apparently is not in this organization.

SDK issue fixed.


Custom CSS is not included in production release

Hi, I have a few custom CSS changes that I made to a library component (specifically schema-sample.scss) that is not working in my production release but does work when running in the webpack dev server. How I can get those CSS changes pulled in?

Nevermind, I just forgot to change my index.html to use the generated redoc.min.js instead of the remote one.


TurtleBot3 LDS Lidar laser scan msg.time_increment is 20 x too small ?

ISSUE TEMPLATE ver. 0.3.0

Which TurtleBot3 you have?

[ x] Burger
[ ] Waffle
[ ] Waffle Pi

Which ROS is working with TurtleBot3?

[ ] ROS 1 Kinetic Kame
[ x] ROS 1 Melodic Morenia
[ ] ROS 2 Dashing Diademata
[ ] ROS 2 Eloquent Elusor
[ ] etc (PLEASE, WRITE DOWN YOUR ROS VERSION HERE)

Which SBC(Single Board Computer) is working on TurtleBot3?

[x ] Raspberry Pi 3
[ ] Intel Joule 570x
[ ] etc (PLEASE, WRITE DOWN YOUR SBC HERE)

Which OS you installed in SBC?

[x ] Raspbian
[ ] Ubuntu MATE 16.04 or later
[ ] Ubuntu Server 18.04 or later
[ ] etc (PLEASE, WRITE DOWN YOUR OS)

Which OS you installed in Remote PC?

[ ] Ubuntu 16.04 LTS (Xenial Xerus)
[ ] Ubuntu 18.04 LTS (Bionic Beaver)
[ ] Linux Mint 18.x
[ ] Linux Mint 19.x
[x ] etc (Windows 10 pc)

Write down software version and firmware version

Software version: [x.x.x]
Firmware version: [x.x.x]

Write down the commands you used in order

rostopic echo /scan -n1
and wrote python to tf scans to PointCloud2 while TurtleBot3 LDS Lidar rotates clockwise:  Since laser_geometry::LaserProjection  transformLaserScanToPointCloud in C++ on Rasberry PI does not seem to cater for clockwise lidar spin.
also used cartographer SLAM, which works OK, but local maps can swing wildly; suggesting cartographer  is also not happy with the published time_increment, and / or does not cater for clockwise lidar spin.

Copy and Paste your error message on terminal

Output from "rostopic echo /scan -n1" =

time_increment: 2.95299996651e-05
scan_time: 0.0

and 360 x 2.95299996651e-05 = 0.0106 seconds   .... while the scanner topic is running at ~ 5hz : e.g. ~ 0.2 seconds scan_time.
while my python to tf scans to PointCloud2 program only correctly provides a reasonably stable PointCloud2 with a moving TurtleBot3, once the scan_time had been set to 0.2 seconds, and therefore time_increment = ~ 0.0005556

Please, describe detailedly what difficulty you are in

you (i.e. the Robotis cpp code for TurtleBot3) seem to calculate time_increment from the motor rpms...
So, is this wrong ?  if so can you correct it in hlds_laser_publisher.cpp ?
Or am I misunderstanding all this ?
any suggestions for fixing this so cartographer SLAM copes better with the published scan time_increment, and for clockwise lidar spin ?

Thanks
Michael Hallett

Hi,
Please allow us some time to review this issue regarding the LDS-01.
Thank you.

I've fixed the incorrect time_increment value.
Could you try with the updated source code in the hotfix-laserscan branch of hls_lfcd_lds_driver repo?
Thank you.

OK... your new code works = but does not solve the clockwork issue....

rostopic echo /scan -n1
…
time_increment: 0.000559284118935
scan_time: 0.201342284679

eg using "transformLaserScanToPointCloud" it looks too far into future ( + 0.2 seconds) ...

[ WARN] [1599729403.605459568]: Lookup would require extrapolation into the future.  Requested time<PHONE_NUMBER>.755665139 but the latest data is at time<PHONE_NUMBER>.599492954, when looking up transform from frame [base_scan] to frame [odom]

eg with this code =
`#include <ros/ros.h>
#include <sensor_msgs/PointCloud2.h>
#include <tf2_ros/transform_listener.h>
#include <sensor_msgs/LaserScan.h>
#include <laser_geometry/laser_geometry.h>
ros::Publisher pub;
laser_geometry::LaserProjection projector_;
tf2_ros::Buffer tfBuffer;
void scanCallback (const sensor_msgs::LaserScan::ConstPtr& scan_in)
{
sensor_msgs::PointCloud2 cloud;
ros::Duration(0.05).sleep();   // wait for first odom @ 30 Hz after scan ... = fixes extrapolation into the future error.
// @ 0.04 seconds ... still getting some warnings ....
// inscan->time_increment   // needs to be negative to account for clockwise spin of lidar
try{
projector_.transformLaserScanToPointCloud("odom",*scan_in,cloud,tfBuffer);
}
catch (tf2::TransformException &ex) {
ROS_WARN("%s",ex.what());
}
// Publish the data.
pub.publish (cloud);
}
int main (int argc, char** argv)
{
// Initialize ROS
ros::init (argc, argv, "tf_laser");
ros::NodeHandle nh;
tf2_ros::TransformListener tfListener(tfBuffer);
// Create a ROS publisher for the output point cloud
pub = nh.advertise<sensor_msgs::PointCloud2> ("tf_pc", 1);
ros::Subscriber sub = nh.subscribe ("scan", 1000, scanCallback);
ros::spin ();
}
`
So I added this line into "hls_lfcd_lds_driver" to give negative increment...
      scan->time_increment = -scan->time_increment;    // make negative to account for clockwise spin of lidar
which gives ...

rostopic echo /scan -n1
…
time_increment: -0.000559284118935
scan_time: 0.201342284679

Then "transformLaserScanToPointCloud" works quite well.
BUT....  then Cartographer SLAM no longer works with the negative scan time increment.
so the next question is can you make a change to Cartographer ~ "cartographer_turtlebot" ?   to solve this clockwise spin of lidar issue...
a) does Cartographer have a parameter to set this ? in LUA ? ... I cannot find it.
b) or can the code that takes the scan in Cartographer be changed to accept either a negative scan time increment, or explicitly reverse the scan order some other way ?
Thanks
Michael Hallett

Hi Michael,
I'm afraid that I can make further changes on our code for a specific case, but if the rotational direction is the problem, you can try installing the LDS-01 upside down (though you'll have to sacrifice some angles where supports are installed).
This will give you the correct rotation for your application.

I agree the issue of "TurtleBot3 LDS Lidar laser scan msg.time_increment is 20 x too small" has been solved.
But the Clockwise spin has not ... e.g. see at https://github.com/ROBOTIS-GIT/turtlebot3/issues/633
How to tf scans to PointCloud2 while TurtleBot3 LDS Lidar rotates clockwise ? #633


housekeeping: update to MSBuild.Sdk.Extras 1.0.9

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
housekeeping/bugfix
What is the current behavior? (You can also link to an open issue here)
Old version
What is the new behavior (if this is a feature change)?
New version:

See https://github.com/akavache/Akavache/issues/371
See https://github.com/onovotny/MSBuildSdkExtras/commits/master

What might this PR break?
If this build is green then nothing is broken.
Please check if the PR fulfills these requirements

[ ] The commit follows our guidelines: https://github.com/reactiveui/reactiveui#contribute
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Other information:

@ghuntley,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Changes Unknown when pulling 97c044f3117c7cf0c3955de5f900159dcf48f1cd on ghuntley-patch-2 into ** on develop**.


Remove extra addresses from email correspondence

When job was aborted or failed by time out, a lot of people get report. I think better to set aborted report  and etc report for owner job and jenkins admin.

keep only admins for infrastructure issues emailing


Add a dedicated Troubleshooting section

This is another chunk of the changes that we explored in https://github.com/cert-manager/website/pull/1048.
Here we move the troubleshooting material out of the FAQ section and into a top-level troubleshooting section.
We've also tried to improve the page titles and descriptions of those pages that we've moved.
/cc @maelvls @mehak151 @jsoref

Thanks @jsoref for the review!
The changes look great.
/lgtm


ci: Use mvn verify to process the generate files as well

This fixes the constant failure of mvn clean spring-javaformat:validate package because the generate files where not formatted yet
The default phase of the formatter is on validate phase which is too
early. mvn verify is enough here.
Signed-off-by: Roy Golan<EMAIL_ADDRESS>

/lgtm

/approve


Property creation not functional at TestStep level

Right now property creation is only successful at the TestCase level. It should be functional at the TestStep level as well.

Verified


custom Event not work

Hi, I Have a custom event listen for config file changes, but it not work, can you help me ?
package main

import (
	"fmt"
	"github.com/go-chassis/go-archaius"
	"github.com/go-chassis/go-archaius/core"
)
type Listener struct {
	Key string
}
func (e *Listener) Event(event *core.Event) {
	//  I want to dynamically get the latest values here.
	fmt.Printf("****************%v",event)
}
func main(){
	archaius.Init(archaius.WithRequiredFiles([]string{
		"./test.yaml",
	}))
	select{}
}

I want to get real-time changed values via Event function , but it didn't do anything, what do I need to do to make it work?

you didn't register it. plz check example again

I refer to https://github.com/go-chassis/go-archaius/blob/master/examples/event/event.go to achieve, How should I register it in this example?

https://github.com/go-chassis/go-archaius/blob/77d6ddbb22f9ca5c17c4b9bd4dddbf1a13081ee0/archaius.go#L266

Thanks a lot for you, But why not add this RegisterListener to the event example?


when you touch outside of paintview , app will crash

when you touch outside of paintview , the app will crash.
"width msut be >0"
"y+height must be <= bitmap.height()"

Thanks for reporting. Do you mind to fix it?

Close this issue since bug fixed


Build issue:  PyAudio

Not sure if anyone got a build issue with PyAudio.
pip install pyaudio
report build problems for building pyaudio.

Solve the issue with
apt-get install portaudio19-dev


Section 6.2 SFR Architecture - Blurred Image

Hard to read (blurry) legends in Figure 16 to Figure 21. Can these be improved?

This is a difficult issue to resolve as the images have to be reduced in size to fit properly on to a page. The size of each image has been increased to help increase visibility. If the issue persists, an alternative resolution will have to be found.


add pychain support (WIP)

@pzelasko I drafted some codes to show how lhotse would probably support pychain.
Things are not fixed yet and this PR is meant to show some basic ideas in my mind that might help you decide how/whether to make pychain support.
Something that is not included in this PR is how denomintor fst path can be added as an attribute to the dataset.

I don't think the supervision objects are really cuttable.. at least not if we're using the e2e style supervision objects,
that don't have alignment info, which I think Yiwen is (?)
If it's using the e2e supervision objects, I think it would make most sense to pad things to one a set of standard lengths.
Perhaps could pad with silence but add some kind of very quiet noise, e.g. from what David released
(forget its name) to make the discontinuity less noticeable?

PyChain/Kaldi isn't set up to use different durations in the same minibatch, that functionality was for k2.  So for this case
we'd just assume the supervision covers the entire cut, including any padding.

Yes. As @danpovey pointed out, PyChain is designed for end-to-end LF-MMI where each sample is an entire utterance. To form a minibatch, I do zero-padding on the features and also record their original lengths before padding. These padded features won't be calculated in the loss function (also not calculated in networks if they are RNNs) so I think we don't need to bother too much on how we pad the inputs.

Alright, got it. I thought the PyChain graphs represent alignments and could be cuttable. If they are e2e-style graphs, I think the current Cut padding functionality is sufficient. So the typical PyChain ASR workflow would look like this:

(external step?) Create PyChain graphs archive.
Create RecordingSet and SupervisionSet manifests.
Extract features, creating FeatureSet.
Convert supervision segments to cuts.
Pad cuts (either using cut_set.pad() to do low-energy padding or mix in noises to achieve the desired duration).
Load the padded CutSet into SpeechRecognitionDataset (as we go forward we'll likely create a hierarchy of ASR dataset classes: for PyChain, K2, and maybe other frameworks).

For padding, you can refer to this short example in the docs: https://lhotse.readthedocs.io/en/latest/cuts.html#python
I think maybe we should create an explicit section about the padding going forward.
I think there remains a question of whether we should return a mask or a tensor of sequence lengths (number of non-padded frames) for each sample in the batch. That'd have to be done in the Dataset class. It's probably useful if we pad with zeros, and not useful if we pad with noise.

Hi, I made a new commit to make pychain_graph self contained as you suggested. Here are something that I'm not sure where to put so I'd like to know how you think about it:

Supervision Preparation. Take minilibrispeech as an example, my current thought is to add some rows near https://github.com/pzelasko/lhotse/blob/master/lhotse/recipes/mini_librispeech.py#L99. The use case will be that, after running some graph preparation bash codes outside lhotse, I will have a scp file with each line of format "uttid archive_path:offset". I'm wondering what would be the best way to load this file within prepare_mini_librispeech function.
Dataloader. In current lhotse's codebase, it seems there isn't anything about dataloader. I guess probably you decide to leave this part to users themselves as it will be quite different from case to case. Personally I would also suggest to do so. Just to double check this point with you in case you have other plans.

Hey Yiwen.
Regarding supervisions, I think it might be better to have a separation between preparing the manifests for a corpus, and preparing/adding the pychain graph information for them. For example if you were writing a script, I could see it going like that:
# create recording and supervision manifets
lhotse prepare mini_librispeech path/to/libri/ data/

# create pychain graphs
<some external script(s) creating the FSTs>

# add pychain graph supervisions - "supervisions.yml" is the input produced by the prev script,
# and "supervision_pychain.yml" is the output containing with added paths to
# pychain graphs in each supervision.
lhotse pychain make-graphs data/supervisions.yml path/to/pychain/fsts data/supervisions_pychain.yml

Ideally, there would be a function in Lhotse that can convert any text supervision to a pychain graph, but I don't know how much effort is needed to do that.
Regarding dataloaders - I'm striving to make it possible for the users to truncate/pad/otherwise transform the data using CutSet so that a custom DataLoader is not needed. I think this works currently for the source separation task and should easily work for VAD. However, I can see that PyChain would require some custom handling of the graphs. I think it should be possible by just providing a custom collate_fn though? I'm fine with providing a custom DataLoader if needed.
Eventually I'd like to have a Dataset/DataLoader with a custom Sampler that assumes the Dataset is bucketed into a number of duration bins (5s, 10s, 15s) and samples equal duration samples to construct a batch, making it somewhat more flexible.

Mm, this integration with PyChain is non-ideal because PyChain, at least as
Yiwen is using it, assumes you've run Kaldi scripts first,
and the data prep isn't available from python.
For now I'd be OK with anything that runs though, especially if it were
segregated somehow, e.g. in a separate file.
Perhaps Yiwen was right that there isn't much value in using Lhotse given
how PyChain currently works.  What would be better is if
we could make it so PyChain could prepare the supervision objects for
arbitrary data taken from Lhotse itself.  Yiwen, what would be
necessary in order to make that possible?
On Sun, Aug 16, 2020 at 8:19 AM Piotr Żelasko<EMAIL_ADDRESS>wrote:

Hey Yiwen.
Regarding supervisions, I think it might be better to have a separation
between preparing the manifests for a corpus, and preparing/adding the
pychain graph information for them. For example if you were writing a
script, I could see it going like that:
create recording and supervision manifets
lhotse prepare mini_librispeech path/to/libri/ data/
create pychain graphs
<some external script(s) creating the FSTs>
add pychain graph supervisions - "supervisions.yml" is the input produced by the prev script,
and "supervision_pychain.yml" is the output containing with added paths to
pychain graphs in each supervision.
lhotse pychain make-graphs data/supervisions.yml path/to/pychain/fsts data/supervisions_pychain.yml
Ideally, there would be a function in Lhotse that can convert any text
supervision to a pychain graph, but I don't know how much effort is needed
to do that.
Regarding dataloaders - I'm striving to make it possible for the users to
truncate/pad/otherwise transform the data using CutSet so that a custom
DataLoader is not needed. I think this works currently for the source
separation task and should easily work for VAD. However, I can see that
PyChain would require some custom handling of the graphs. I think it should
be possible by just providing a custom collate_fn though? I'm fine with
providing a custom DataLoader if needed.
Eventually I'd like to have a Dataset/DataLoader with a custom Sampler
that assumes the Dataset is bucketed into a number of duration bins (5s,
10s, 15s) and samples equal duration samples to construct a batch, making
it somewhat more flexible.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pzelasko/lhotse/pull/57#issuecomment-674461116, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLOYI2SUCSQJUJ7N74VTSA4Q2DANCNFSM4PFFA6KQ
.

Thanks for the comment!
@pzelasko I'm a little confused about this line: lhotse pychain add-graphs data/supervisions.yml path/to/pychain/fsts data/supervisions_pychain.yml Do I need to add any codes to enable this line? Or it has been available already?
@danpovey Yes, that's why I hesitated a lot about what to expect for this work. As for non-kaldi users, the biggest challenge of data preparation is in graph generation. I'm currently using kaldi scripts and binaries to do so.
If we want to make it possible in python/lhotse, we will need FST-alike operations that help us build numerator/denominator graphs. Others like preparing lang/dictionary/lexicon will also be needed but easier than FST stuff. Personally, l think these things won't be a small deal but still would not necessarily reduce the complexity to users (and we will still go back to kaldi for decoding), I just put these parts remained in kaldi.
Anyway, for now, I think this work can be currently used as a test case for lhotse. TBH, I think probably it would be even better if this PR won't be merged into lhotse if it breaks some design patterns/motivation and confuses the users.

Yes, the code for that line to work would have to be written. It's just a design proposal.
I think handling lexicons and graph preparation should be a part of Lhotse, as it's essentially a part of data preparation for ASR. I can see that being a separate module that modifies supervisions/cuts. I don't mind having optional dependencies on OpenFST or other graph libraries like K2.
I leave the scope of integration between Lhotse and PyChain up to you and Dan - I don't know how much work you'd like to spend on this. Both deep and shallow integrations are fine with me, and we can figure out how to merge that in later. Probably a shallow integration (pre made graphs) is a good starting point anyway and a reference point for deeper integrations later on if we want to pursue that.

For the k2 integration we would definitely need some tools for handling
graphs, etc.  I wasn't necessarily
planning to make those part of lhotse itself, but we can see what makes
sense.
For now I'm OK with shallow integration I guess (it's just a shame because
it doesn't really allow us to exercise many of the
features of lhotse).  But we may be able to do extra data augmentation with
it.
On Mon, Aug 17, 2020 at 11:52 PM Piotr Żelasko<EMAIL_ADDRESS>wrote:

Yes, the code for that line to work would have to be written. It's just a
design proposal.
I think handling lexicons and graph preparation should be a part of
Lhotse, as it's essentially a part of data preparation for ASR. I can see
that being a separate module that modifies supervisions/cuts. I don't mind
having optional dependencies on OpenFST or other graph libraries like K2.
I leave the scope of integration between Lhotse and PyChain up to you and
Dan - I don't know how much work you'd like to spend on this. Both deep and
shallow integrations are fine with me, and we can figure out how to merge
that in later. Probably a shallow integration (pre made graphs) is a good
starting point anyway and a reference point for deeper integrations later
on if we want to pursue that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pzelasko/lhotse/pull/57#issuecomment-674961967, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLOY6WBLS7ZORKI67XEDSBFG4ZANCNFSM4PFFA6KQ
.

For now I'm OK with shallow integration I guess (it's just a shame because it doesn't really allow us to exercise many of the features of lhotse).

Same thoughts here.

I'm closing this PR since we're not actively working on that anymore. Feel free to pick it up in the future if you'd like.


@TransformToDynamo and @TransformFromDynamo not being called

I can't seem to get @TransformToDynamo and @TransformFromDynamo to fire.  I've followed all variations and examples I could find.
Minimal reproduction
@Entity({
  name: "test",
  primaryKey: {
    partitionKey: "test_{{testId}}",
    sortKey: "test_{{testId}}",
  },
})
export class Test {
  constructor(created: Date) {
    this.created = created;
  }

  @AutoGenerateAttribute({
    strategy: AUTO_GENERATE_ATTRIBUTE_STRATEGY.UUID4,
  })
  testId: string;

  @Attribute()
  @Type(() => Date)
  @TransformToDynamo(({ value }: { value: Date }) => Test.toDynamo(value))
  @TransformFromDynamo(({ value }: { value: string }) => Test.fromDynamo(value))
  created: Date;

  static toDynamo(value: Date): string {
    console.log("toDynamo", value);
    return value.toISOString();
  }

  static fromDynamo(value: string): Date {
    console.log("fromDynamo", value);
    return new Date(value);
  }
}

Called with
const test = new Test(new Date());
const entityManager = getEntityManager();
await entityManager.create(test);

Results in
Unsupported type passed: Fri Sep 29 2023 09:14:38 GMT-0700 (Pacific Daylight Saving Time). Pass options.convertClassInstanceToMap=true to marshall typeof object as map attribute.

and neither console statement being emitted.  As far as I can tell, neither of the two transformers is firing.
Any hints to point me in the right direction?
node 18.16.0
aws-sdk 3
typescript 5.2.2
typedorm 1.15.4
class-transformer 0.5.1

After some digging, I discovered that it seems to have to do with typescript "target".  Anything less than es2022 doesn't appear to call the functions, but as soon as target is es2022/esnext, it works.
Unfortunately, setting things to es2022/esnext comes with it's own set of problems, for example https://github.com/typedorm/typedorm/issues/236.
The same appears to be the case with the examples in https://github.com/typedorm/typedorm-examples.
Is there a typescript configuration where this library works as expected?

Hello, I'm facing the same issue. I think the same issue was already mentioned in the past as well in https://github.com/typedorm/typedorm/issues/229. Solution may be to define relaxed peerDependencies as suggested here: https://github.com/typedorm/typedorm/issues/341. Do you think this would be possible @whimzyLive or is there some blocker for this approach?


Basemap and Legend Overlap After Resetting Map

After clicking the reset button the basemap and legend overlap and there is no way to move them without having to reload the page.

I removed the "elements" list from the world map, that should work to avoid overlapping.


Rework the relationship between generic environments and opaque archetypes

Teach GenericEnvironment how to lazily create opaque type archetypes,
performing the contextual substitutions as required but without
building the "bound" generic signature until required. To get here,
augment GenericEnvironment with knowledge of the purpose of the
environment, whether it is for normal cases (any signature), an opened
existential type, or an opaque type. For opaque types, store the
opaque type declaration and substitution map, which we also use to
uniquely find the generic environment. Among other things, this
ensures that different opaque type archetypes within the same opaque
type declaration are properly sharing a generic environment, which
wasn't happening before.
Altogether, this allows us to reason about opaque type archetypes
without going through the bound generic signature, which
should allow us to use type variables and interface types in
the substitution map.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please test source compatibility


[BUG] Unauthorized error caused by invalid NTP config/timestamp difference

Describe the bug

While one click upgrading a 3 nodes harvester from v1.0.0 to v1.0.1-rc2.
The upgrade process stuck in the Upgrading System Servide showing error message:
Job has reached the specified backoff limit

To Reproduce
Steps to reproduce the behavior:

Prepare v1.0.0 three nodes harvester cluster on Provo machines
Create a ubuntu and SLES JeOS image
Create a ubuntu and SLES virtual machine
Enable network to harvester-mgmt
Create a virtual network vlan1 with id 1
Setup back target to AWS S3
Create two backups for the ubuntu and SLES VM
Shutdown all VMs
Follow the steps to upgrade to v1.0.1-rc2
https://github.com/harvester/docs/blob/42598035cfe79856f7e159d4c47c4d7d29178900/docs/upgrade/automatic.md

Expected behavior

Should complete the upgrade system service process and successfully finish all one click upgrade process
Support bundle

supportbundle_2c72269f-cc63-4361-afb9-2e128771492d_2022-04-01T10-47-02Z.zip
Environment:

Harvester ISO version: v1.0.0 GA to v1.0.1-rc2
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630): 3 nodes bare machines on Provo

Additional Context

Could be related to the time difference between nodes.
Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
Wed Apr  6 04:11:09 UTC 2022
Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
Wed Apr  6 04:13:46 UTC 2022
Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
Wed Apr  6 04:12:56 UTC 2022

I can reproduce this with VM by manually setting time difference between node, here is what I saw these logs in kube-apiserver-node1 pod:
E0406 10:49:21.991249       1 claims.go:126] unexpected validation error: *errors.errorString
E0406 10:49:21.991291       1 authentication.go:63] "Unable to authenticate the request" err="[invalid bearer token, Token could not be validated.]"

I had added a warning paragraph in the upgrade section to describe the need of NTP server.
@FrankYang0529 Could you help update the rest of the doc? Here are some places that need to improve:

https://docs.harvesterhci.io/v1.0/install/iso-install/

(Optional) Configure the NTP Servers of the node. This defaults to 0.suse.pool.ntp.org. Probably change to recommended.

https://docs.harvesterhci.io/v1.0/install/pxe-boot-install/

Update the example to include NTP servers.

https://docs.harvesterhci.io/v1.0/install/harvester-configuration/

Update the example to include NTP servers.

https://docs.harvesterhci.io/v1.0/install/harvester-configuration/#osntp_servers

Highl recommend the option here again.

And the https://github.com/harvester/ipxe-examples if we can adjust the examples with some default NTP servers, thanks.

Verified fixed on v1.0.1-rc3. Close this issue.
Result
After we add specific ntp server to each node for the config-create and config-join harvester configuration file for PXE install.
os:
  hostname: hpd8s7
  ssh_authorized_keys:
  - ssh-rsa ...
  ntp_servers:
    - 0.pool.ntp.org

And check all nodes have identical time alignment with ntp service.
During the upgrade from v1.0.0 to v1.0.1-rc3, we did not encounter the issue of stuck in  Job has reached the specified backoff limit

Test Information

Test Environment: 3 nodes harvester on provo bare machine
Harvester version: v1.0.0 to v1.0.1-rc3

Verify Steps

Add the ntp server to config-create and config-join yaml file

ntp_servers:
    - 0.pool.ntp.org

Create a 3 nodes harvester with v1.0.0 release
SSH to each node
Run timedatectl show-timesync to check the ntp server and date time are aligned between each nodes
Upgrade harvester to v1.0.1-rc2 according to the steps https://github.com/harvester/harvester/issues/2119#issue-1194199084

Additional Context

Support Bundle
supportbundle_d378036d-5fc2-4f82-938a-4f8602a01d3b_2022-04-08T11-31-45Z.zip


For the Schemers and LISPers: open and close bracket

Hi,
Using Karabiner, I was able to map a short press of my left and right shift key to ( and ), respectively. Can somebody explain to me how to do this with Karabiner-Elements, if it is possible? I have looked but I couldn't find anything; the only thing I found is mapping to [ and ], but in my case that is not an option.
Thanks,
Sam

map a short press of my left and right shift key to ( and )

I think you are looking for #8


Add ability to start calico when kubeadm cluster does not have podSubnet configured

Expected Behavior
We can configure the default IPPool in calico installation without setting podCIDR in kubeadm configuration.
Current Behavior
When installing calico with an IPPool using tigera operator on kubeadm created cluster without networking.PodCIDR param set in kubeadm configuration, calico is not starting.
Steps to Reproduce (for bugs)
# init kubeadm with default configuration
kubeadm init
helm repo add projectcalico https://artifactory.quadcode.tech/artifactory/api/helm/projectcalico
helm repo update
helm install calico projectcalico/tigera-operator --version v3.23.1 --set installation.calicoNetwork.ipPools[0].cidr="<IP_ADDRESS>/18"

Context
We maintain bare metal clusters with calico networking installed using tigera operator.
Our cluster installation is cia kubeadm with podCIDR=<IP_ADDRESS>/18 and subnet mask for pods /24 configuration.
Calico was installed using tigera-operator helm chart with default configuration.
Now we have more than 64 nodes in cluster, so the node-controller can't assign podCIDR for new nodes (<IP_ADDRESS>/18 have 64 subnets with /24 mask).
We dug a while and found the next issue.
Also we found that for calico it's not a problem, because it ignores assigned nodes podCIDR
The mask for node subnets in our calico installation is /26, which is more than enough for our node workloads and cluster size.
Now we are facing the following errors in kubernetes controller manager:
E0703 16:38:19.620181       1 controller_utils.go:260] Error while processing Node Add/Delete: failed to allocate cidr from cluster cidr at idx:0: CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range

The Controller manager requires allocate-node-cidrs=true flag if cluster-cidr is specified (by official documentation).
On setting networking.podSubnet in kubeadm it enables those 2 flags in Controller manager.
So we can't just set  cluster-cidr configuration and disable allocate-node-cidrs flag to avoid node PodCIDR allocation.
If calico ignores the assigned node PodCIDR and the kubernetes cluster can be set up with kubeadm without networking.podSubnet set - we decided to try such installation.
We started a new kubeadm cluster without specifying networking.podSubnet.
We installed tigera operator and tried to create a calico Installation (in operator.tigera.io/v1 API) with specified IPPool:
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  annotations:
    meta.helm.sh/release-name: calico
    meta.helm.sh/release-namespace: tigera-operator
  name: default
spec:
  calicoNetwork:
    ipPools:
    - cidr: <IP_ADDRESS>/18
  kubernetesProvider: ""

Calico is not started and tigera operator pod writes following errors in logs:
{"level":"error","ts":1688408872.894088,"logger":"controller.tigera-installation-controller","msg":"Reconciler error","name":"default-token-78r8f","namespace":"tigera-operator","error":"Could not resolve CalicoNetwork IPPool and kubeadm configuration: kubeadm configuration is missing required podSubnet field","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.7/pkg/internal/controller/controller.go:214"}

Your Environment
kubeadm/kubernetes version v1.23.17
tigera-operator v3.23.1

BTW running controller manager with with allocate-node-cidrs=false and cluster-cidr=<IP_ADDRESS>/18 solved my current problem.
But the question is still active - What is the reason we can't setup calico using tigera operator on kubeadm clusters without specified networking.podSubnet configuration.

I dug some additional information:
In kubeadm configuration we specify:
networking:
  podSubnet: <IP_ADDRESS>/18

This parameter is propagated to kube-controller-manager flag --cluster-cidr and kube-proxy flag --cluster-cidr.
In our installation we use Calico network plugin which does not rely on nodes allocated pod CIDR (which is set by IPAM-controller, that is part of kube-controller-manager).
The kube-controller-manager IPAM controller is enabled by setting  --cluster-cidr and --allocate-node-cidrs flags.
In the code I see that  kube-controller-manager flag --cluster-cidr is used only in nodeIPAM controller.
Flag --cluster-cidr requires --allocate-node-cidrs to be true (also by the docs).
I think in our case we don't need to populate node spec.podCIDR by kube-controller-managers IPAM controller.
Considering passing the flag --allocate-node-cidrs=false and don't pass any --cluster-cidr to kube-controller-manager.
We have the ability to turn off node CIRD allocation in  kube-controller-manager, just not specifiyng networking.podSubnet config in kubeadm.
Anyway we still need to pass --cluster-cidr to kube-proxy because it do some masquerade magic.
This is possible now by setting a specific clusterCIDR flag in kube-proxy Configuration (v1alpha1).
But the tigera operator rely on networking.podSubnet.
We are stuck a little bit.

@tmjd what do you think about this case?

We have the validation that the podSubnet matches the IPPool because kube-proxy might not use the matching CIDR which would break what kube-proxy does and be a significant problem in a cluster.
It sounds like kubeadm needs the capability to turn off node CIDR allocation since that is an assumption it makes that podSubnet means node CIDR allocation should be enabled.
How is kube-proxy Configuration used when using kubeadm? Would it be included in the kubeadm-config ConfigMap? If so then the operator could check if the clusterCIDR flag is configured for kube-proxy.

The KubeProxyConfiguration from kubeadm configuration is not present  in kubeadm-config configmap.
But there is kube-proxy configmap in kube-system namespace.
kubectl get cm -n kube-system kube-proxy -o yaml

apiVersion: v1
data:
  config.conf: |-
    apiVersion: kubeproxy.config.k8s.io/v1alpha1
    bindAddress: <IP_ADDRESS>
...
    clusterCIDR: <IP_ADDRESS>/18
...

Actually there is a capability to turn off node CIDR allocation in kubeadm with maintaining networking.podSubnet set.
And there is a little misunderstanding in affirmation  "kube-controller-manager --clusterCidr flag  requires node CIDR allocation enabled."
I started a discussion here - https://github.com/kubernetes/kubernetes/issues/119066.
Anyway, we have a workaround.
We left in kubeadm config the networking section:
networking:
  podSubnet: <IP_ADDRESS>/18

And we also overridded in kubeadm config the allocate-node-cidrs flag:
controllerManager:
  extraArgs:
    allocate-node-cidrs: "false"

This makes starting kube-controller manager with following flags:
--cluster-cidr=<IP_ADDRESS>/18
--allocate-node-cidrs=false

And kube-proxy with:
--cluster-cidr=<IP_ADDRESS>/18

The networking.podSubnet is also present in kubeadm-config configmap - so tigera starts calico pods.
But this is a little bit overhead, because in our case the flag --cluster-cidr in kube-controller-manager is a kinda never used dead-code.


Remove bg_error for signcolumn

When using signcolumn for displaying error symbox, bg_error overlaps symbol currently in use. When set to bg_panel it will match to background color currently used in theme and will solve it. So that we can use any symbol in sign column.
Screenshot before bg_error and after bg_error was removed

Resolves #50

I will close this issue as it can be fixed by using custom theme by user.


Update ForwardIndexType for removal of ++ operator

The updated version of advanceForward(:) shows 4 more instructions in the SIL output, but I don't think we can get around that: https://gist.github.com/nielsandriesse/b065485f6c4756337a7e

Comparison of SIL: https://gist.github.com/nielsandriesse/b065485f6c4756337a7e . The SIL of the new version appears like it might be slightly better because the witness methods are loaded before the loop instead of in it.

This is basically the same case as advanceForward(:)

SIL is identical


Fixed typo (mesages)

@TedHudek - This typo fix PR is ready to go to live master when you have a minute.


Update global_settings.py

Add Shona to languages

Adding a new language requires Transifex setup first. Do you intend to start a Shona translation for Django and take the role of Shona language coordinator? If you do, we can set it up on Transifex. Please give us your Transifex username. (\cc @claudep)

@felixxm I can be a Shona language coordinator. My username is vttn. How soon can I have the Shona language option available on Django.

@claudep Can you help? :point_up:

@vttn Shona team has been created on Transifex with you as the team coordinator. It's still time to target Shona integration in Django 3.1 (to be finally released in August). You should at least fully translate the "core" ressource on Transifex, then feel free to ping me for the next integration steps.

@vttn Did you encounter any difficulty with using Transifex? Tell me if I can help in any way.

@claudep there must be a easier way to bring in new languages into Django. The challenge I see is understanding context. If Django was to enable Shona, I know at least one other person who is willing to spend their time doing the translations.

@vttn, if you just want to enable Shona in your project without contributing Shona translations into Django, you can always complement the LANGUAGES setting.
However, it would be so nice to have Shona translations of Django itself. Then the process is to start by translating in the Transifex tool. I agree it's sometimes difficult to translate "isolated" strings, but there is a "Context" tab in Transifex that points you to the file(s) where the string is used. You can then browse Django files to find more context. And you have me when you are stuck :-) It is good if you can bring someone else into the process of translating, it's always easier to motivate one another.
"Tu peux le faire", like we say here :sunglasses:


Adding cgroup-parent option for docker build

Happy birthday Docker!
Thanks to @crosbymichael @nathanleclaire @jfrazelle
Closes #11822
Signed-off-by: Julien Barbier<EMAIL_ADDRESS>

@jbarbier can you add some docs and testcases for this too?
docs are in docs/  and look in integration-cli for the tests

@duglin Added docs

Looking good so far.  Please squash your commits down to one.

@duglin Sorry, I don't know what it means :)

@jbarier there are two things:
1 - as you make additional changes, rather than doing a new commit, go ahead and reuse the previous one via: git commit --amend. That will keep you from having more than one commit.
2 - right now you have two commits, to squash (or merge) them into one do: git rebase -i master. When in the editor choose to squash the 2nd one by replacing the first word on that 2nd line with the word 'squash' or just 's' (replace 'pick').  It should them merge those two commits into one.

@jbarbier: Thanks for adding this feature. Overall LGTM. Can you add an integration test? Take a look at this test as an example.

Added a test under build tests in test-integration-cli; It is a basic test only. PR on jbarbier ready to merge.
Idea for future improvement would be run a container with the build image and do the same checks that the run test referenced by vishh does.

update: https://github.com/jbarbier/docker/pull/2/commits waiting for merge due to tests failing gofmt

@jbarbier: Thanks for adding the test. Code LGTM.

Needs go-fmt

@jbarbier just merge https://github.com/jbarbier/docker/pull/2 😉

I just wrote this exact patch.  Then discovered this pull request.  It looks like the patches need to be consolidated and then it can be merged. @jbarbier are you still working on it?

Can you please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "cgroup-parent-42" git@github.com:jbarbier/docker.git somewhere
$ cd somewhere
$ git rebase -i HEAD~8
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

This will update the existing PR, so you do not need to open a new one.

Can you please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "cgroup-parent-42" git@github.com:jbarbier/docker.git somewhere
$ cd somewhere
$ git rebase -i HEAD~8
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

This will update the existing PR, so you do not need to open a new one.

@jbarbier DCO failed and it looks like this needs to be squashed?

I'm not sure what's up with the integration tests, it doesn't seem related to this PR (although I could be mistaken):
--- FAIL: TestContainerApiCommit (1.39s)
	docker_utils.go:624: "run 7e16ea2c13b36c9c9132045128060720fa1a99f1877d9b03623c608e889d1ac4 ls /test" failed with errors: ls: /test: No such file or directory
		, exit status 1

@jamtur01 @duglin @jfrazelle can you please review this patch?  It's been updated to improve the docs and fix the broken test.

Docs LGTM

Integration tests look good now, must have been an upstream issue.

needs rebase but then I think we should be good for merge :)

@jfrazelle think it still needs to be squashed; it's 7 commits right now? (Ok, they're from several contributors)

Rebased but it say we use the wrong test infrastructure:
integration-cli/docker_cli_build_test.go

What changed?

We use gocheck now :( check out some of the others should be pretty easy
change
On Saturday, April 25, 2015, Nathan LeClaire<EMAIL_ADDRESS>wrote:

Rebased but it say we use the wrong test infrastructure:
integration-cli/docker_cli_build_test.go
What changed?
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/pull/11844#issuecomment-96275293.

Yup that's what I've done.. keep finding little things I've missed but it'll get there

LGTM

LGTM

I too would like more information in the docs, but as we have 2 LGTM's, maybe @thaJeztah or someone can make a separate PR?
semi-LGTM?

@SvenDowideit created a separate issue for improving the docs here https://github.com/docker/docker/issues/12849.
Does this PR still need to be squashed before merging (I know, I asked before)?

Nice job taking the initiative on that issue @thaJeztah .

Does this PR still need to be squashed before merging (I know, I asked before)?

I can do this if absolutely necessary, but I am not sure how exactly it is supposed to work in a multi-author context with respect to DCOs etc.

Nice job taking the initiative on that issue @thaJeztah .

I only created it  for now, not sure when I have time, so others are more than welcome to start writing :)

I can do this if absolutely necessary, but I am not sure how exactly it is supposed to work in a multi-author context with respect to DCOs etc.

Multiple sign-off messages on a commit should not be a problem.
@icecrime (being "Mr. Squash"); do you want the commits to be squashed, or is it fine as-is?

ping @icecrime https://github.com/docker/docker/pull/11844#issuecomment-97205790, merge or squash first?

\o/ thanks all!


Make check_logfile() quieter

Currently check_logfile() will log all errors/warnings found after a step runs when ['option', 'quiet'] is False. I've found this pretty annoying when I'm getting many warnings since it obscures the tool logs.
A couple options to consider:

Reverse the polarity on this call to only display when "quiet" is ON. This might sound a little counterintuitive, but when quiet is off then you can see the warnings in the tool logs anyways, so in some sense it seems more useful to repeat them if the tool logs aren't being printed.
Limit the count of warnings/errors printed
Disable the display entirely

Closing stale issue


Messages not sorted by time in list?

Should messages be sorted by time in the message list?

So it should be sorted by time... in theory. It's sorted by the message ID column, which is a unique key added on insert.
The datetime figure is set by the client component and is just a simple unix time. So I'm guessing something queued in the HTTP side causing the message to be processed out of order. Would be curious to see your log files on the server from around that time.
Other possibility is that the socket emit was out of order, but that would mean they would be in the right order after a refresh, which I'm guessing didn't happen? :)

That would explain it then, as the message to 0999182  at 1639 was fragmented and missing it's final piece so was held for one minute before uploading to PagerMon. So it came in after the two later ones at 1640. So the display is sorted by the Message ID which is why it looks like that.

Ah! :)
So we could sort by the timestamp instead, but this might lead to inconsistent behaviour when multiple messages are broadcast during the same second. Alternatively we could move the timestamping to the server side, so it sets the time when it actually receives the message. Orrr we could ignore it and pretend it never happened. ;)

Haha Yeah I think it's best just to ignore it and pretend it never happened. Probably not a huge issue really.

Will ignore with haste, thanks dude!


req.checkHeader with optional() doesnt work

req.checkHeader will return the value or an empty string:

return toCheck || '';

and optional checks only against undefined:

if (value !== undefined)

value will never be undefined for checkHeader, and so this validation fails when the header is not provided even with optional()

Seems like an easy fix would be to go into this section (https://github.com/ctavan/express-validator/blob/master/lib/express_validator.js#L195-L204) and change return toCheck || ''; to return req.headers && toCheck; so that the output mirrors that of the other check* methods. A simple test showed that this would allow optional() to work.
@ctavan Can you think of any way this change would create problems for existing code? If not, I'll create a PR.

@rustybailey Sounds good! Go for it!


Optimization: remove read/write from SPI device and return SPI bus on context manager enter

Since these functions just pass through to the SPI bus, as a small optimization directly return the SPI bus when it's locked.  This removes the need to wrap the functions and the calling overhead.

Thanks @tdicola!


Setting a cookie as SameSite=None is not working

If I set a cookie as sameSite=none it trows : TypeError: option sameSite is invalid
Versions:
<EMAIL_ADDRESS><EMAIL_ADDRESS>Example:
 cookies.set('sso_init', 1, { path: '/', sameSite: 'none', secure: true });

This is affecting us with react-cookie as react-cookie has a loose version for dependency here: https://github.com/reactivestack/cookies/blob/master/packages/react-cookie/package.json#L41
A work around is to use resolutions in package.json to force the use of 4.0.3 where CookeSetOptions has been updated.
resolutions: {
  'universal-cookie': '4.0.3'
}


Support for override the nodepool name

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Currently the module does not allow to override additional node pools name, I will some uniquely generated Id appended in order to avoid delete before create vice versa. Default behaivor still may stay as is now but the should support overriding the pool names too.
New or Affected Resource(s)/Data Source(s)
azurerm_kubernetes_cluster
Potential Terraform Configuration
No response
References
No response

/duplicate


Trim_galore not found

nextflow.log
Description of the bug
Hey everyone,
I have just installed locally in my pc (Windows 11) nextflow and was trying to run the test for the rnaseq pipeline, using the test command. However, I got an error message, saying trim_galore cannot be found:
Cheers!
Command used and terminal output
nextflow run nf-core/rnaseq -profile test --outdir out_test/
ERROR ~ Error executing process > 'NFCORE_RNASEQ:RNASEQ:FASTQ_FASTQC_UMITOOLS_TRIMGALORE:TRIMGALORE (RAP1_UNINDUCED_REP1)'

Caused by:
  Process `NFCORE_RNASEQ:RNASEQ:FASTQ_FASTQC_UMITOOLS_TRIMGALORE:TRIMGALORE (RAP1_UNINDUCED_REP1)` terminated with an error exit status (127)

Command executed:

  [ ! -f  RAP1_UNINDUCED_REP1.fastq.gz ] && ln -s SRR6357073_1.fastq.gz RAP1_UNINDUCED_REP1.fastq.gz
  trim_galore \
      --fastqc_args '-t 2' \
      --cores 1 \
      --gzip \
      RAP1_UNINDUCED_REP1.fastq.gz

  cat <<-END_VERSIONS > versions.yml
  "NFCORE_RNASEQ:RNASEQ:FASTQ_FASTQC_UMITOOLS_TRIMGALORE:TRIMGALORE":
      trimgalore: $(echo $(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*$//')
      cutadapt: $(cutadapt --version)
  END_VERSIONS

Command exit status:
  127

Command output:
  (empty)

Command error:
  .command.sh: line 4: trim_galore: command no
[nextflow.log](https://github.com/nf-core/rnaseq/files/13936673/nextflow.log)
t found

Work dir:
  /home/asbarros/work/1c/eb86e409f0c99003e235a805324de0

Tip: you can try to figure out what's wrong by changing to the process work dir and showing the script file named `.command.sh`

 -- Check '.nextflow.log' file for details

Relevant files
nextflow.log file
System information
Windows 11

This is no surprise. You need to additionally specify another profile that will take care of all the dependencies: docker, singularity or conda (not recommended, though).

Hi @andrebolerbarros ! Did @MatthiasZepper suggestions work for you? I will close this issue because it seems to be an issue getting the pipeline to run and you will be better served getting real-time help from the community for these sorts of things by joining the nf-core Slack Workspace and asking your questions in the #rnaseq channel. Thanks!


Generate new cmd for credit usage and project info api

Execute npm run generate

Will you be adding any tests?

@4ydx  I don't see we have any test for web api, only have integration tests for web test run .
We have test for api endpoint so for the CLI just generate the command is enough I guess? 🤔


How to implement a time lock with seconds as the unit of measurement?

I read the Spamming the Lightning Network and it's very well written, thanks for the summary!
But I have some confusions about the section on Bidirectional upfront payment. The design mentions that the time lock for Reverse upfront payment is in seconds (90 seconds, for example). This doesn't seem to be directly implementable in the blockchain script?
The implementation I have in mind is something like this: the time lock between A and B expires and A asks B to make a payment. If B chooses to refuse, A can't enforce it. But maybe A would deduct B's reputation or just choose to close the channel due to B's dishonest behaviour.
I'm curious if this is an accurate description, or is there a better implementation currently available?
Thank you!

It's indeed not enforceable, it's a soft timeout.
If your peer doesn't respect that timeout and you suspect he's trying to cheat, just close the channel and ban him.

It's indeed not enforceable, it's a soft timeout.
If your peer doesn't respect that timeout and you suspect he's trying to cheat, just close the channel and ban him.

Thank you!


Fix Argument 2 passed to injectRoutesAndPipeline()

Resolves #446
Argument 2 passed to Zend\Expressive\Container\ApplicationFactory::injectRoutesAndPipeline() must be of the type array,
object given
IMHO: $config is not an array.
@zendframework

@Rud5G It's wrong, $config is ArrayObject or array, please see #447 which resolves #446. Thanks

I mean your solution is also gonna work, but this is what we have before, and probably we don't want to pass whole $container but just configuration as we have for example for marshalLegacyFinalHandler method.

True, i just converted the function and call to injectRoutesAndPipeline back to its previous version.
i just found: weierophinney/zend-expressive@9faf31e381037217d36ce5467ceec304b4918aad
ps: i like your added tests.

Closing now.

@Rud5G Nice found! I've updated my PR - cherry-picked the @weierophinney commit and rebased. Added also typehint in method marshalLegacyFinalHandler as it is now always array. Thanks!

@webimpress Thanks!


feat: added Open Source Manifesto

Context

close #84
Preview in https://deploy-preview-90--onebeyond-maintainers.netlify.app/open-source-manifesto

Internal Company discussions:

Slack
Doc Draft with comments

As there are no objections, I will merge it. Thanks a lot 🚀


Add Self in call_expr and type expression.

Update the implementation to account for Self usage in impl blocks, and add new test.
This PR fixes issue #2

Excellent job! Thank you very much for contributing, @54k1.


No such module 'PromisedFuture'

Hi,
i integrated it library with cocoapods and all goes well.
I'm able to see the PromisedFuture folded in installed Pods and also .h file
But when try to import PromisedFuture in swift code get this error No such module 'PromisedFuture'
I'm using xcode 9
Thanks

@dmarras Thank you for using PromisedFuture I have fixed the issue in version 1.0.1


metabase: 0.37.8 -> 0.38.0

Motivation for this change
update
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 113411 at 1ba30cfc run on x86_64-linux 1

1 package built:

metabase

2 suggestions:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/servers/metabase/default.nix:16:3:
   |
16 |   installPhase = ''
   |   ^

warning: unclear-gpl
agpl3 is a deprecated license, check if project uses agpl3Plus or agpl3Only and change meta.license accordingly.
Near pkgs/servers/metabase/default.nix:23:5:
   |
23 |     license     = licenses.agpl3;
   |     ^


Include annotation reply threads in the viewer

This is a follow-up of #10677 with regards to the point that only the reply text is shown.
Now that the library has support for IRT, RT, State and StateModel after #10820, we should find a good way to expose this functionality, reply threads for annotations, to the viewer. Good inspiration is how Adobe Acrobat does this; see https://github.com/mozilla/pdf.js/pull/10716#issuecomment-482885336 for screenshots.

I'd like to pin this comment here for tracking #10820 (comment), as I think that will need to happen too.


[capture-promotion] Loosen an assert.

[capture-promotion] Loosen an assert.
The assert should have been checking for both guaranteed and trivial, not just
guaranteed.
This also uncovered a hole in the testing for capture promotion. I added the
missing test.
rdar://problem/32027013

@swift-ci smoke test and merge


Update to 1.19+ plus one tweak

I'm really interested in this mod. It's annoying that Mojang didn't consider this concept on vanilla.
The only change i would love to see is the datapacks folder to be yanked out of config and placed on .minecraft\/Game Directory folder root, to be paired with resourcepack and look more how vanilla should implement this feature themselves.
I know there is a couple of alternatives out there, but this one, being simple as that, is my favorite implementation.

Hello, I have updated the mod for 1.19.3 and 1.19.4 I also implemented the tweak you suggested the new version should already be available on Modrinth and GitHub. CurseForge should be available soon.

Thank you so much!

Oh sorry to came back to pesk you, but unfortunately i pasted my datapacks on <profile dir>\datapacks\ but none showed in the new world screen (only the build-in datapacks of both vanilla and fabric mods):

For reference, this is my datapacks folder contents:

Also, for clarification, i'm using both --workDir to change the location of the whole .minecraft folder (to C:\Jogos\Minecraft) and also the installation have its dedicated game profile pointing to a subfolder of the custom folder i mentioned above (C:\Jogos\Minecraft\profiles\vicocraft_1.12). Would this be the source of the issue?

Yeah, seems like it just doesn't load on the new world menu. it works after creating the world.
But a option to tweak that screen on the client would be hugely necessary , specially to reorder the datapacks in case of those that requires to.

My bad i forgot 1.19.4 added that, this version should allow you to modify the datapacks in the world creation screen.

My bad i forgot 1.19.4 added that, this version should allow you to modify the datapacks in the world creation screen.

Oh, now it's working properly on client, thanks!
I also tested your mod on a dedicated server, and unfortunately seems like in there the datapacks still doesn't load.
With the same set of datapacks of the previous screenshots, i tried to boot my test server and realized only the internal datapacks were enabled:

I tried specifically the datapacks present on datapacks folder on server.properties: initial-enabled-packs=vanilla,update_1_20,bundle,fabric,tectonic\:tectonic-large-biomes,tectonic\:terratonic,arboria_v1.0.2.zip,vicocraft,vt_cauldron_concrete.zip,vt_confetti_creepers.zip,vt_crafting.zip,vt_unlock_all_recipes.zip but all the non-internal packs are listed as missing during boot:

My bad i forgot 1.19.4 added that, this version should allow you to modify the datapacks in the world creation screen.

Oh, now it's working properly on client, thanks!
I also tested your mod on a dedicated server, and unfortunately seems like in there the datapacks still doesn't load.
With the same set of datapacks of the previous screenshots, i tried to boot my test server and realized only the internal datapacks were enabled:
I tried specifically the datapacks present on datapacks folder on server.properties: initial-enabled-packs=vanilla,update_1_20,bundle,fabric,tectonic\:tectonic-large-biomes,tectonic\:terratonic,arboria_v1.0.2.zip,vicocraft,vt_cauldron_concrete.zip,vt_confetti_creepers.zip,vt_crafting.zip,vt_unlock_all_recipes.zip but all the non-internal packs are listed as missing during boot:

This has been fixed in version 1.1.2 which can be found here.

Thank you so much!


Message=Instance not found when using the tutorial

Describe the bug
ID=QUERY-n0wng Message=Instance not found when using the docker compose tutorial and going to http://yourip:8080/ui/console
To Reproduce
Steps to reproduce the behavior:

follow the tutorial at https://docs.zitadel.com/docs/guides/deploy/compose
Go to http://yourip:8080/ui/console

Expected behavior
Should not display an error and make me see the UI?
Desktop (please complete the following information):

OS: macOS
Browser safari
Version 12.5.1

Note: the console UI worked when connecting to localhost of the server via ssh port forwarding

Why would you close this? The tutorial does not mention anything about port forwarding and not being able to connect from a different PC.


Player Connection Create Error

Error

Player create connection shows this error (image).

To Reproduce
(I'm unsure but this error happens randomly)

Add a random song then add random player filters, then after few time of track end. Disconnect the player. The player join function shows this error.
This doesn't work everytime but in most cases like after 5-6 times of randomly playing songs and doing this, shows this error.

Error Image

This error also occurs when player.destroy() is ran then after trying to create connection.

are you sure this isn't related to lavalink itself?

Fixed: It was happening due to addition of Voice Region in player connection.


Add keyword to auto-close issue in PR template

GitHub requires a magic word to properly link a PR to an issue so that the issue is automatically closed when the PR is merged.
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #7314 (19ab717) into main (d984f50) will decrease coverage by 0.22%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##               main    #7314      +/-   ##
============================================
- Coverage     70.71%   70.50%   -0.22%
+ Complexity    59497    59402      -95
============================================
  Files          4859     4859
  Lines        285339   285339
  Branches      41133    41133
============================================
- Hits         201772   201168     -604
- Misses        66965    67648     +683
+ Partials      16602    16523      -79

see 479 files with indirect coverage changes


Container Templates: Remove redundant features

Fixes #11941

@miq-bot add_label providers/containers, ui

@h-kataria Please review
cc @simon3z @zeari

LGTM :+1:, anyway @h-kataria I think you should review this more accurately. Thanks!
@miq-bot assign h-kataria


How to add a new plug in?

Hi, I tried following the instruction in the README.md to add a new plugin by git cloning, https://github.com/bartman/git-wip but after a couple of trials it seems like vim-awesome is not able to pick up the plugin. Do I need to set some configuration somewhere? Thanks

I'm also confused by this.

do cd ~/.vim_runtime/my_plugins git clone https://github.com/bartman/git-wip.git
This plugin assumes that your personal plugins will be located in the my_plugins directory under vim_runtime.
This is how I use it.

Do I need to add lines in any of the config files? I tried that but I still couldn't use the functionality in there. I am debating removing awesomevim and switching to another vim plugin manager

No you don't. It works perfectly for me, as long as you have followed the instructions. Because of the customizability of VIM, its kindof assumed that you will have to google around and figure some things for yourself.. and will happen regardless of what vim plugin manager or plugin you use..

I'm having the exact same problem, I'm trying to use emmet-vim and followed this instructions, it just doesn't work, I will keep working on it to find out why is not working. Please if anybody had the same issue maybe is just the plugin.

It just the plugin I guess. I installed this plugin https://github.com/keith/swift.vim inside my_plugins and it works.

I managed to get youcompleteme working, but not emmet-vim, is the emmet-vim plugin dependant on anything,

I'm having the exact same problem, I'm trying to use emmet-vim and followed this instructions, it just doesn't work, I will keep working on it to find out why is not working. Please if anybody had the same issue maybe is just the plugin.

In fact, I met the same problem. Is there a solution?

I'm sure Emmet is working properly. Its shortcut requires Ctrl + y to press quickly, release and press comma.    Emmet是正常工作的，我最终发现是我操作的方式有问题，事实上应该ctrl+y同时按下，松开后按下逗号，模板成功被打印出来。


Deal with CC0091 (static method) and event handling methods

Discussion started on #916.
If we have this in UWP and XAML:
<Button Click="ButtonBase_OnClick" />

And in the code behind:
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
}

We cannot make this method static, or the event handling will fail. We should not report CC0091 in this scenario.
The way to fix this is alter the analyzer, which already checks method declarations, to ignore them if a signature with two parameters is found, where the first is of type object, and the second is a class that inherits from EventArgs, and the return is void or Task (or a descendant of Task).

Same goes for Winforms - the code will compile with static methods, but everytime you go in the designer, the lines of designer codes using the static methods will be deleted.


Table Bug

Description
Here, the table create lines on the page before. I think the code + the image says enough.
#v(67em)

#table(columns: 2, [1], [2])

Reproduction URL
No response
Operating system
Windows
Typst version

[X] I am using the latest version of Typst

Duplicate of https://github.com/typst/typst/issues/183