PinePhone A64: Can't enter Jumpdrive mode

I'm following Mobian's install instructions for the PinePhone and getting stuck at booting the phone into Jumpdrive mode.
As requested on the Mobian wiki page, I installed Tow-Boot on my PinePhone by following these instructions.
The install seems to have worked, booting without a USB connection or microSD card directly after the install shows this:
Serial terminal log

U-Boot SPL 2021.10 (Oct 04 2021 - 15:09:26 +0000)
DRAM: 3072 MiB
Trying to boot from MMC2
NOTICE:  BL31: v2.6(release):
NOTICE:  BL31: Built : 00:00:00, Jan  1 1980
NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE:  BL31: Found U-Boot DTB at 0x209cf40, model: Pine64 PinePhone (1.2)

Tow-Boot 2021.10 (Oct 04 2021 - 15:09:26 +0000)005 [variant: mmcboot]

CPU:   Allwinner A64 (SUN50I)
Model: Pine64 PinePhone (1.2)
DRAM:  3 GiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from nowhere... OK
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Please press [ESCAPE] or [CTRL+C] to enter the boot menu.
off
off
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:2...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
MMC: no card present
Scanning disk<EMAIL_ADDRESS>Disk<EMAIL_ADDRESS>not ready
Card did not respond to voltage select! : -110
Scanning disk<EMAIL_ADDRESS>Disk<EMAIL_ADDRESS>not ready
Scanning disk<EMAIL_ADDRESS>Found 2 disks
** Unable to read file ubootefi.var **
Failed to load EFI variables
BootOrder not defined
EFI boot manager: Cannot load any image
MMC: no card present
No ethernet found.
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-sunxi-sunxi
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-sunxi
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
No ethernet found.
No ethernet found.

ERROR: Could not boot anything from distro_bootcmd.

poweroff ...

Before poweroff ..., the LED flashes red and the phone vibrates 10 times.
However, when I continue to follow along with the instructions in the Mobian wiki (Option 2: Mounting the target device's eMMC using TowBoot) by holding Volume Up while connecting the phone to my computer using a known good USB-A-to-C cable, it behaves almost identically (only the two lines below the boot menu message in the log have changed and the LED briefly lights up blue during these lines):
Serial terminal log

U-Boot SPL 2021.10 (Oct 04 2021 - 15:09:26 +0000)
DRAM: 3072 MiB
Trying to boot from MMC2
NOTICE:  BL31: v2.6(release):
NOTICE:  BL31: Built : 00:00:00, Jan  1 1980
NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE:  BL31: Found U-Boot DTB at 0x209cf40, model: Pine64 PinePhone (1.2)

Tow-Boot 2021.10 (Oct 04 2021 - 15:09:26 +0000)005 [variant: mmcboot]

CPU:   Allwinner A64 (SUN50I)
Model: Pine64 PinePhone (1.2)
DRAM:  3 GiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from nowhere... OK
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Please press [ESCAPE] or [CTRL+C] to enter the boot menu.
on
** Invalid partition 1 **
off
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:2...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
MMC: no card present
Scanning disk<EMAIL_ADDRESS>Disk<EMAIL_ADDRESS>not ready
Card did not respond to voltage select! : -110
Scanning disk<EMAIL_ADDRESS>Disk<EMAIL_ADDRESS>not ready
Scanning disk<EMAIL_ADDRESS>Found 2 disks
** Unable to read file ubootefi.var **
Failed to load EFI variables
BootOrder not defined
EFI boot manager: Cannot load any image
MMC: no card present
No ethernet found.
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-sunxi-sunxi
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-sunxi
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
No ethernet found.
No ethernet found.

ERROR: Could not boot anything from distro_bootcmd.

poweroff ...

As you can see, holding Volume Up accomplished almost nothing.
So, where did I go wrong? Did I brick my PinePhone by flashing the eMMC too often or is there a different issue at play here? I'm also not opposed to diagnosing this further, but someone would have to walk me through that.

Hi @sven-frotscher
I believe I have the same exact situation.
I can install tow-boot to the emmc from balena, when I try to reboot with the volume up / power button, it buzzes and flashes red and eventually gives up.
Were you able to get the device to boot mobian or any os off the emmc?
Thanks!

I wasn't able to boot anything except the Manjaro Plasma which my PP came with (not even a re-image of that) from eMMC yet.
Booting from microSD worked for megi's multi-boot test image (multiple distros and a working Jumpdrive) and the Tow-Boot installer, which sadly put my PP in this no-booting state.

If you have a spare 3.5mm TRS/TRRS plug and a USB-serial converter, you can DIY a serial console cable, flip the audio killswitch, and get some logs out of the various bootloaders, like I did. Maybe something in there will help the devs help us with our issue, who knows.

Thanks @sven-frotscher !
I will look on ebay for the 3.5mm TRS/TRRS plug and a USB-serial converter, definitely like having more logs around to look into!
I did manage to get mobian back on my Pinephone A64 emmc, by using the image pointed to here:
https://forum.pine64.org/showthread.php?pid=116155#pid116155
https://github.com/dreemurrs-embedded/Jumpdrive/releases/download/0.8/pine64-pinephone.img.xz
I flashed the above image with balena etcher to an sd card and then booted with the sd card into Jumpdrive.
With Jumpdrive on screen, I was able to flash the above image to emmc with balena etcher. Then it booted (no sd card) just fine from emmc.
However, I think I still need to install tow-boot back onto the emmc to have a 'proper' installation, if I understand correctly.

Yes, 3.5mm plug into the headphone jack, 3 wires (GND, Rx, Tx) to converter, converter's USB to computer. See the PP wiki article for details and for links to some ready-made console cables, if DIY/soldering isn't your thing.
Did I read that forum post correctly: I "just" need to boot Jumpdrive from a microSD and use that to flash Mobian onto the eMMC? Won't that overwrite Tow-Boot? Or do I then need to reinstall Tow-Boot onto eMMC using its installer?

Ok great thanks for the info,
I just now flashed the tow-boot mmcboot.installer.img to sd, booted and with the tow-boot interface, "installed tow-boot" to emmc.
When I rebooted without power + up/down, it continued normally to the mobian that I already had on emmc.
When I try to boot with power button + vol up, it stops and has a blank screen with the blue led lit, for at least 10 minutes, so I gave up. I don't know if it should have booted to tow-boot or not?
I rebooted normally and it loaded into mobian again.
So all said, mobian continues to run fine off emmc, and I don't know if tow-boot is on the mmc boot record.
When I boot it plugged in via usb, I see rootfs in the file manager. I open balena etcher and see that the options for where to flash an image to show
Linux UMS disk 0 (boot, rootfs) 31.GB /dev/sda
and that is with no sd card in the PP.
So, I am a bit confused as to if I have tow-boot working or not.

Tow-Boot goes into Jumpdrive mode if you hold Vol+ while booting, so you should see the eMMC as a disk (rootfs) when connecting it to your computer. Confusion could be minimized if it also showed something on screen in addition to turning on the blue LED.
Do you also see that disk when booting your PP with a USB connection but without touching the volume buttons?

When the PP is off and I plug it into the laptop usb without holding down any button, it boots into mobian and I see the message on my laptop:
Connection 'Wired connection 2' activated
So then I power off (still plugged into usb).
Then I do the power + vol up to boot the device. IThe PP shows red led, then blue, I let go, and on my laptop I get the message rootfs with the option to mount and open (from dolphin file manager, I believe).
I do not know if that is tow-boot at work or if that would happen without having "installed" tow-boot as described above.
I do not know how to determine if tow-boot is installed properly.

'Wired connection 2' seems to be a USB network connection, while rootfs is almost certainly Jumpdrive at work. Since your PP boots both Mobian and Jumpdrive successfully, I think you installed Tow-Boot into your eMMC correctly.

Ok thanks,
I am a little confused, still.
I had mobian installed already, before I installed tow-boot, and I was only able to get mobian onto the PP with Jumpdrive intially. I was not able to install mobian before all of this, even though I had tow-boot on the emmc.
So, I have not successfully installed tow-boot on a blank emmc, and then installed mobian afterwards, so I will attempt that process, just to make sure I am not depending on Jumpdrive to have mobian installed.
Because I thought with tow-boot installed, you could power on with power + vol up, but that does not give me the tow-boot interface in the current state.
Thanks again for your suggestion and help!

You flashed https://images.mobian.org/pinephone/mobian-pinephone-phosh-12.0.img.gz in order to install Mobian, correct?

Yes, that was via the Jumpdrive image above on my emmc, not via tow-boot.

Yes, that seems like the way to go for starting from scratch. Maybe you also need to zero out the beginning of the eMMC before installing Tow-Boot, I'm not sure.

My PP boots Jumpdrive from microSD with a USB connection, but doesn't show up as a USB device of any kind on my computer. Connecting a serial cable somehow messes with the boot process (not even a Jumpdrive splash screen) and shows:
DRAM: 3072 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.2(release):v2.2-904-gf9ea3a629
NOTICE:  BL31: Built : 15:32:12, Apr  9 2020
NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE:  BL31: Found U-Boot DTB at 0x4064410, model: PinePhone
NOTICE:  PSCI: System suspend is unavailable

U-Boot 2020.07 (Nov 08 2020 - 00:15:12 +0100)

DRAM:  3 GiB
MMC:   Device 'mmc@1c11000': seq 1 is in use by 'mmc@1c10000'
mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment

starting USB...
No working controllers found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
653 bytes read in 3 ms (211.9 KiB/s)
## Executing script at 4fc00000
gpio: pin 114 (gpio 114) value is 1
4275261 bytes read in 190 ms (21.5 MiB/s)
Uncompressed size: 10170376 = 0x9B3008
36162 bytes read in 4 ms (8.6 MiB/s)
1078500 bytes read in 51 ms (20.2 MiB/s)
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
   Loading Ramdisk to 49ef8000, end 49fff4e4 ... OK
   Loading Device Tree to<PHONE_NUMBER>eec000, end<PHONE_NUMBER>ef7d41 ... OK

Starting kernel ...

after which it just hangs.

See dreemurrs-embedded/Jumpdrive#85 and dreemurrs-embedded/Jumpdrive#63 for the issue report, but no solutions (yet? One can hope...).

@gitcoo it sounds like tow-boot is working as expected. U-boot doesn't have a driver for the display, so the only interface you'll get is the blue led and a usb connection.
@sven-frotscher perhaps it would be possible to pinpoint your issue a bit more

If you boot from a sd card can you access the emmc? If so what is the partition layout?
When booted to linux are you able to make the phone appear as a usb device? Enabling usb networking is probably the most common use of this (or if you can telnet jumpdrive, but I'm not sure if that would get set up with the issues you're having there).
Can tow-boot access your emmc? With the serial console, you should be able to press escape to access a boot menu and select the firmware console, from there the command ls mmc 1 should list the files on the first partition of the emmc.

@ArenM
Big thanks for the confirmation, it's onward from here then! ;0)

* If you boot from a sd card can you access the emmc? If so what is the partition layout?

Booting the Jumpdrive microSD (disk image linked above), I get a UART shell if I don't just use my USB-Serial converter. This gives me the following info:
/ # ls -l sys/dev/block/ | grep -v loop
lrwxrwxrwx    1 0        0                0 Jan  1 00:00 179:0 -> ../../devices/platform/soc/1c0f000.mmc/mmc_host/mmc0/mmc0:59b4/block/mmcblk0
lrwxrwxrwx    1 0        0                0 Jan  1 00:00 179:1 -> ../../devices/platform/soc/1c0f000.mmc/mmc_host/mmc0/mmc0:59b4/block/mmcblk0/mmcblk0p1
lrwxrwxrwx    1 0        0                0 Jan  1 00:00 179:32 -> ../../devices/platform/soc/1c11000.mmc/mmc_host/mmc2/mmc2:0001/block/mmcblk2
lrwxrwxrwx    1 0        0                0 Jan  1 00:00 179:33 -> ../../devices/platform/soc/1c11000.mmc/mmc_host/mmc2/mmc2:0001/block/mmcblk2/mmcblk2p1
lrwxrwxrwx    1 0        0                0 Jan  1 00:00 179:64 -> ../../devices/platform/soc/1c11000.mmc/mmc_host/mmc2/mmc2:0001/block/mmcblk2/mmcblk2boot0
lrwxrwxrwx    1 0        0                0 Jan  1 00:00 179:96 -> ../../devices/platform/soc/1c11000.mmc/mmc_host/mmc2/mmc2:0001/block/mmcblk2/mmcblk2boot1
/ # fdisk -l
Disk /dev/mmcblk0: 7523 MB,<PHONE_NUMBER> bytes, 15407104 sectors
120368 cylinders, 4 heads, 32 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk0p1 *  16,0,1      799,3,32          2048     102399     100352 49.0M  c Win95 FAT32 (LBA)
Disk /dev/mmcblk2: 14 GB,<PHONE_NUMBER>2 bytes, 30374336 sectors
1890 cylinders, 255 heads, 63 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk2p1    0,1,1       1023,254,63<PHONE_NUMBER>1   30374208 14.4G  b Win95 FAT32

mmcblk0 seems to be the 8GB microSD I installed Jumpdrive on.

Can tow-boot access your emmc? With the serial console, you should be able to press escape to access a boot menu and select the firmware console, from there the command ls mmc 1 should list the files on the first partition of the emmc.

I tried that with the eMMC Tow-Boot (crazily mashing Escape):

U-Boot SPL 2021.10 (Oct 04 2021 - 15:09:26 +0000)
DRAM: 3072 MiB
Trying to boot from MMC2

NOTICE:  BL31: v2.6(release):
NOTICE:  BL31: Built : 00:00:00, Jan  1 1980
NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE:  BL31: Found U-Boot DTB at 0x209cf40, model: Pine64 PinePhone (1.2)

Tow-Boot 2021.10 (Oct 04 2021 - 15:09:26 +0000)005 [variant: mmcboot]

CPU:   Allwinner A64 (SUN50I)
Model: Pine64 PinePhone (1.2)
DRAM:  3 GiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from nowhere... OK
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Please press [ESCAPE] or [CTRL+C] to enter the boot menu.
Please press [ESCAPE] or [CTRL+C] to enter the boot menu.
Creating menu...

[menu, I select Firmware Console]
Use `run menucmd` to return to the menu.

=> ls mmc 1
** Invalid partition 1 **
Couldn't find partition mmc 1

What else can I try in that console?

The view from jumpdrive looks alright, /dev/mmcblk2 is the emmc. Did you check if you were able to access it over telnet to make sure the usb port is functional?
Is mmcblk2p1 formatted fat32, or does it just have the flag set on it? I'm not totally sure if that error means u-boot doesn't know about the emmc, or just the partition. You could also try running mmc dev 1 and then mmc info as another method to see if u-boot can access the emmc.

The view from jumpdrive looks alright, /dev/mmcblk2 is the emmc. Did you check if you were able to access it over telnet to make sure the usb port is functional?

The Jumpdrive-only image from dreemurrs' repo doesn't want to make a USB connection to my PC, but the one included in megi's multi-boot image does (network connection and block devices for eMMC and microSD). I'll try flashing the eMMC using that.

Is mmcblk2p1 formatted fat32, or does it just have the flag set on it? I'm not totally sure if that error means u-boot doesn't know about the emmc, or just the partition. You could also try running mmc dev 1 and then mmc info as another method to see if u-boot can access the emmc.

=> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
=> mmc info
Device: mmc@1c11000
Manufacturer ID: 12
OEM: 134
Name: ASTCX.
Bus Speed: 52000000
Mode: MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 5.1
High Capacity: Yes
Capacity: 29 GiB
Bus Width: 4-bit
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 29 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 4 MiB ENH
Boot area 0 is not write protected
Boot area 1 is not write protected
=> ls mmc 1
** Invalid partition 1 **
Couldn't find partition mmc 1
=>

That seems to work at least.

Looking at the partition labels and GParted, I must have flashed an x86 bootable ISO onto the eMMC somehow. No wonder every aarch64 bootloader under the sun complains about that :sweat_smile:
Wish me luck with flashing Mobian :)

Mobian seems to boot, but not much more:

U-Boot SPL 2021.10 (Oct 04 2021 - 15:09:26 +0000)
DRAM: 3072 MiB
Trying to boot from MMC2
NOTICE:  BL31: v2.6(release):
NOTICE:  BL31: Built : 00:00:00, Jan  1 1980
NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE:  BL31: Found U-Boot DTB at 0x209cf40, model: Pine64 PinePhone (1.2)

Tow-Boot 2021.10 (Oct 04 2021 - 15:09:26 +0000)005 [variant: mmcboot]

CPU:   Allwinner A64 (SUN50I)
Model: Pine64 PinePhone (1.2)
DRAM:  3 GiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from nowhere... OK
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Please press [ESCAPE] or [CTRL+C] to enter the boot menu.
off
off
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
526 bytes read in 1 ms (513.7 KiB/s)
1:	Mobian GNU/Linux 6.1-sunxi64
Retrieving file: /initrd.img-6.1-sunxi64
18547242 bytes read in 399 ms (44.3 MiB/s)
Retrieving file: /vmlinuz-6.1-sunxi64
7763893 bytes read in 168 ms (44.1 MiB/s)
append: root=UUID=e72b69d1-5326-4d15-b9e8-cefe391a1e97 consoleblank=0 loglevel=7 ro quiet splash plymouth.ignore-serial-consoles vt.global_cursor_default=0
Retrieving file: /dtb-6.1-sunxi64/allwinner/sun50i-a64-pinephone-1.2.dtb
40966 bytes read in 5 ms (7.8 MiB/s)
   Uncompressing Kernel Image
Moving Image from 0x40080000 to 0x40200000, end=41670000
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
   Loading Ramdisk to 48e4f000, end 49fff22a ... OK
   Loading Device Tree to<PHONE_NUMBER>e41000, end<PHONE_NUMBER>e4e005 ... OK

Starting kernel ...

[    1.533698] lima 1c40000.gpu: error -ENODEV: _opp_set_regulators: no regulator (mali) found
[    2.395292] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    2.422248] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    2.431733] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    2.441961] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    2.451621] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    2.570123] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    2.581823] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    3.273361] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    3.351405] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    3.369731] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    3.435468] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    3.638472] panel-sitronix-st7703 1ca0000.dsi.0: mipi_dsi_attach failed (-517). Is host ready?
[    3.684848] pinephone-keyboard 2-0015: Failed to read device ID: -6
[    9.701127] request_module: modprobe binfmt-e687 cannot be processed, kmod busy with 50 threads for more than 5 seconds now
[    9.712285] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[    9.731088] CPU: 0 PID: 1 Comm: run-init Tainted: G            E      6.1-sunxi64 #1
[    9.731099] Hardware name: Pine64 PinePhone (1.2) (DT)
[    9.731104] Call trace:
[    9.746409]  dump_backtrace+0xe8/0x11c
[    9.750176]  show_stack+0x1c/0x30
[    9.753495]  dump_stack_lvl+0x60/0x78
[    9.753507]  dump_stack+0x14/0x2c
[    9.753515]  panic+0x160/0x338
[    9.753525]  make_task_dead+0x0/0x170
[    9.753536]  do_group_exit+0x38/0xa0
[    9.753545]  __arm64_sys_exit_group+0x1c/0x20
[    9.753554]  invoke_syscall+0x4c/0x110
[    9.753567]  el0_svc_common.constprop.0+0x48/0xf0
[    9.753579]  do_el0_svc+0x30/0xb4
[    9.753590]  el0_svc+0x14/0x4c
[    9.753598]  el0t_64_sync_handler+0xec/0x120
[    9.753608]  el0t_64_sync+0x14c/0x150
[    9.753621] SMP: stopping secondary CPUs
[    9.757167] Kernel Offset: disabled
[    9.757170] CPU features: 0x00000,00c00000,0000401b
[    9.757177] Memory Limit: none

The Mobian splash screen shows up around the panel-sitronix lines and disappears later.
After the above messages, U-Boot starts again, repeating the process.
At least it is now a Mobian issue, not a Tow-Boot one anymore (I think).

Update: The kernel panic only happens with https://images.mobian.org/pinephone/mobian-pinephone-phosh-12.0.img.gz, the current weekly image boots and runs fine. Thank you for your help, @ArenM!

The question of no USB ethernet/block devices when powering on Tow-Boot with Vol+ or when using the Jumpdrive image standalone is still open. What does megi's multiboot/p-boot do differently to make Jumpdrive work for me?


Merged, thanks @andersk!  @mateuszmandera FYI.


I can not create ER image...

y-koyamatsu@koyamatsuyukinoMacBook-Pro prisma % npx prisma generate
Environment variables loaded from ../.env
Prisma schema loaded from schema.prisma
Error:
Error: Command failed: ../../ER図_v2'/node_modules/.bin/mmdc -i /var/folders/sw/5cfrfxkx6lj1z_d1ph0hrvpc0000gn/T/prisma-erd-u7WZMn/prisma.mmd -o /Users/y-koyamatsu/Desktop/KMJ/ER図_v2'/ERD.svg -t forest -c /var/folders/sw/5cfrfxkx6lj1z_d1ph0hrvpc0000gn/T/prisma-erd-u7WZMn/config.json
    at checkExecSyncError (node:child_process:826:11)
    at Object.execSync (node:child_process:900:15)
    at Object.exports.default [as onGenerate] (/Users/y-koyamatsu/Desktop/KMJ/ER図_v2'/node_modules/prisma-erd-generator/dist/generate.js:197:23)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async LineStream.<anonymous> (/Users/y-koyamatsu/Desktop/KMJ/ER図_v2'/node_modules/@prisma/generator-helper/dist/generatorHandler.js:36:24)

I got above error.... How I can do to slove this???
  "dependencies": {
    "@prisma/client": "^3.7.0",
    "mermaid": "^8.13.10",
    "prisma-erd-generator": "^0.9.0"
  }

I am experiencing the same issue on both Windows and Linux.
Error
Environment variables loaded from .env
Prisma schema loaded from src\schema.prisma
Error:
✔ Generated Prisma Client (3.9.1 | library) to .\src\client in 47ms

Error: Command failed: find ../.. -name mmdc
FIND: Parameter format not correct
    at checkExecSyncError (node:child_process:826:11)
    at Object.execSync (node:child_process:900:15)
    at Object.exports.default [as onGenerate] (B:\Projects\[REDACTED]\versions\v2\lib\node_modules\prisma-erd-generator\dist\generate.js:185:18)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async LineStream.<anonymous> (B:\Projects\[REDACTED]\versions\v2\lib\node_modules\@prisma\generator-helper\dist\generatorHandler.js:36:24)

Dependencies
"devDependencies": {
    "@types/node": "^17.0.13",
    "prisma": "^3.9.1",
    "prisma-erd-generator": "^0.9.0",
    "typescript": "^4.5.5"
}

Many issues are happening around mermaid cli usage. Could you try installing @mermaid-js/mermaid-cli as a dev dependency and see if that solves the issue? I'm hoping that works for you.

Many issues are happening around mermaid cli usage. Could you try installing @mermaid-js/mermaid-cli as a dev dependency and see if that solves the issue? I'm hoping that works for you.

Amazing! All is working now, thank you 👍

I’ll add this to the docs. Apparently the labeling of that library as a peer dependency isn’t installing it for everyone.


fixing brackets in editors page

Hello @ksigler7,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


Club Penguin Atake Server + Domain Migration 28/12/2022

We will be taking down Club Penguin Atake to migrate its servers and domain, as well as update ownership information.

We have started the maintenance. All services are down.

The Club Penguin Atake TV and its assets servers (except media server) are now up.


Pressure Pump driver: implement way to find out if container is fully pressurized

After locking what we are using as a pressure sensor. We need a way to figure out way to detect if a container is pressurized. I'd assume this would be either max voltage (3.3V) detected from ADC OR the sensor would have a digital pin to do this for us.

This is not part of the pump driver and is implemented in a separate file.


Link to the official YouTube channel from the web site

The YouTube channel doesn't have "Jupyter" in the name, so some people may be unsure whether it's an official Jupyter presence. Can we have a link to it in the footer, beside our other social media, and/or from the Community page? Thanks!

YouTube previously suggested by @Carreau in #257.

The YouTube channel doesn't have "Jupyter" in the name, so some people may be unsure whether it's an official Jupyter presence

Should the handle be updated to @jupyter instead of the current @ipython?
Someone already seems to be using it: https://www.youtube.com/@jupyter. Maybe we can make a request to YouTube to change that, if possible?

Per the governance docs, I can reach out to the trademarks committee<EMAIL_ADDRESS>about the case above. None of us should be making such a request on our own.

I took a quick look and it looks like this channel was registered long before Jupyter was a twinkle in anyone's eye. If you click on "About this channel", you'll find out that this person joined May 7, 2006, so that lines up between IPython 0.7.1  and 0.7.2 releases, so it's almost certainly not one we have control over. Jupyter first usage is in July 2014, for reference.
Given that the account has been sitting there idle, I don't expect it's worth pursuing. For example, https://twitter.com/jupyter is also not us, and also was registered in 2009, well before "Jupyter" began being used in lieu of "IPython Notebook".
Personally, I think it make sense if using the "IPython" channel is confusing for Jupyter  users, we could either rename it to "ProjectJupyter" or make a new channel with that name, or something similar.

Personally, I think it make sense if using the "IPython" channel is confusing for Jupyter users, we could either rename it to "ProjectJupyter" or make a new channel with that name, or something similar.

That sounds good, and it looks like it's still available.

Hello. I was interested in this issue and was just curious if the youtube channel name was going to be changed?

The YouTube handle and channel title have now been renamed: https://www.youtube.com/@projectjupyter

Now I'm a bit confused, as https://www.youtube.com/ipython still works. https://www.youtube.com/@ipython (which is the link @JasonWeill mentioned at the beginning of this issue) is 404.
I would have expected redirects at least, but I understand this is not under your control.
We likely need to search for old mentions of the @ipython/ipython channel and update the links, searching for it I can find "only"2 mentions:
jupyter/docs/source/community/content-community.rst
28:Some of these meetings are recorded and uploaded to our `YouTube channel <https://www.youtube.com/ipython>`_.

jupyter.github.io/social.md
29:- YouTube: https://youtube.com/@ipython


fsm minor example reformatting

Only making the indentation consistent.
TY

These are auto-formatted and the formatting will likely be lost upon the next revision to the docs, unfortunately.


⚠ Bofrost.fr has degraded performance

In 1884553, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1087 ms

Resolved: Bofrost.fr performance has improved in e5c4763 after 6 minutes.


Getting a 404 when trying to authenticate

I have set up LexikJWTAuthentication bundle as closely adhering to the documentation as my Symfony 3.4 app will allow. Here is lexik_jwt_authentication.yml as I have it set up in my development environment:
lexik_jwt_authentication:
  secret_key:       '%kernel.project_dir%/config/jwt/private.pem' # required for token creation
  public_key:       '%kernel.project_dir%/config/jwt/public.pem'  # required for token verification
  pass_phrase:      'password' # required for token creation, usage of an environment variable is recommended
  token_ttl:        3600

... and here are the relevant contents from my security.yml file:
    firewalls:

        api_login:
            pattern:  ^/api/v2/login(.*)
            stateless: true
            anonymous: true
            json_login:
                check_path:               /api/v2/login_check
                success_handler:          lexik_jwt_authentication.handler.authentication_success
                failure_handler:          lexik_jwt_authentication.handler.authentication_failure

        api:
            pattern:   ^/api
            stateless: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator

        # disables authentication for assets and the profiler, adapt it according to your needs
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        # -> custom firewall for the admin area of the URL
        admin:
            pattern:            /admin(.*)
            context:            admin
            form_login:
                provider:       fos_userbundle
                login_path:     /admin/login
                use_forward:    false
                check_path:     /admin/login_check
                failure_path:   /admin/login
                default_target_path: /admin/dashboard
            logout:
                path:           /admin/logout
                target:         /admin/login
            anonymous:          true
            switch_user:        true
            remember_me:
                secret:      '%secret%'
                lifetime: 604800 # 1 week in seconds
                path:     /

        secure_page:
             request_matcher: sonata.page.secure_page_request_matcher
             logout:     true
             anonymous:  true
             secure_page:
                provider: in_memory
                login_path:     fos_user_security_login
                use_forward:    false
                check_path:     fos_user_security_check
                failure_path:   fos_user_security_login
                success_handler: app.authentication_success_handler
             secure_page: true
             logout:
                 path: fos_user_security_logout
                 target: /

    access_control:

        # API stuff
        - { path: ^/api/v2/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/v2/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/v2,       roles: IS_AUTHENTICATED_FULLY }

        # URL of FOSUserBundle which need to be available to anonymous users
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }

        # Admin login page needs to be access without credential
        - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }

        # Secured part of the site
        # This config requires being logged for the whole site and having the admin role for the admin part.
        # Change these rules to adapt them to your needs
        - { path: ^/admin/, role: [ROLE_SONATA_ADMIN] }
#        - { path: ^/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }

... and here is the relevant part of routing.yml:
api_login_check:
    path: /api/v2/login_check

When I run bin/console debug:router, I get the following among the output:
api_login_check                                            ANY        ANY      ANY    /api/v2/login_check

It's definitely a 404 that I'm getting back, and not another error code.
Anyone have an idea of what I'm doing wrong here?

Make sure you access that route using POST method, other method will cause 404 Not Found

@tv78-coder -- thanks for your suggestion. I am using a POST request and still getting a 404.

I have the same problem in SF 5.0

not work for me, sf 5

@vinyvicente in your case it might work setting:
api_login_check:
    path: /api/v2/login

Did you fix your issue ?? it works fine for me when i request from postman, but the request from Front (react Js) got a 404.
route wrong configured. I am kinda lost !


ModuleNotFoundError: No module named 'warp_drive.managers.pycuda_managers'

Hi !
Seems there is  a problem in tutorials
https://github.com/salesforce/warp-drive/blob/master/tutorials/tutorial-1.a-warp_drive_basics.ipynb
The line from warp_drive.managers.pycuda_managers.pycuda_data_manager import PyCUDADataManager doesn't work anymore and gives : ModuleNotFoundError: No module named 'warp_drive.managers.pycuda_managers'

I think you may use the older version of WarpDrive.
Before version 2.0, the manager module has slightly different structure.
I just tested the tutorial 1.a via Colab,  it went through very well. The version I used is the latest 2.2.1, and I believe all versions above 2.0 should be able to run this tutorial.

Oh i see, indeed
pip install -U rl_warp_drive installed the version 1.6.1 of warp_drive because of some pytorch dependency that wasn' met.
Fixing the warp_drive version to 2.2.1 now gives me
ERROR: Could not find a version that satisfies the requirement torch<1.11,>=1.9 (from rl-warp-drive) (from versions: 1.11.0, 1.12.0, 1.12.1, 1.13.0, 1.13.1) ERROR: No matching distribution found for torch<1.11,>=1.9
So I guess I need to downgrade my pytorch version to 1.11 ? Is that correct ?

So it seems that in order to install torch version 1.10.2 you also need Python<3.7. If this is corret, it should be put somewhere in the documentation I think.
I am not over with my troubles but it is heading somewhere !

I think installing pytorch directly will lead to some issue due to the library compatibility issue, especially the driver of CUDA. For example, Colab could run it directly since the backend CUDA env is configured correctly. So I suggest you try Nvidia released Docker image that will solve all the problem. Another question you asked: we use torch 1.10 is that 1.11 has a bug in training but torch 1.12 seems already resolved it. Anyway,
we still stick with torch 1.10 but it does not require Python<3.7, I run Python 3.7.9 on my own environment.
An example installation
FROM nvcr.io/nvidia/pytorch:21.10-py3
LABEL description="warpdrive-env"

WORKDIR /home
RUN chmod a+rwx /home

RUN pip install pycuda==2022.1
RUN conda install numba==0.54.0

pip install rl_warp_drive

So it seems that there is one last little inconsistency.
It seems that the https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel_21-10.html#rel_21-10 container you recommended works with Python 3.8.
Otherwise, I think I have all the details to make it work, thanks !

Cool, I think Python version 3.7 or 3.8 is not critical


Fix course-related unit tests

Many tests randomly fail with the ClassNotFoundException, perhaps related to the Gradle update?

Stack trace of the root cause (NullPointerException)
<clinit>:11, APlusLogger (fi.aalto.cs.apluscourses.utils)
<clinit>:13, BuildInfo (fi.aalto.cs.apluscourses.utils)
<init>:166, ModelExtensions$TestCourse (fi.aalto.cs.apluscourses.model)
<init>:138, ModelExtensions$TestCourse (fi.aalto.cs.apluscourses.model)
setUp:53, APlusAuthenticationActionTest (fi.aalto.cs.apluscourses.intellij.actions)

In that top line, BuildInfo.INSTANCE is null


support providing custom collections to the RxDatabase type

closes #14

Even if Provider starts accepting the collection types as argument, one must still provide the type of the collection data via useRxData or useRxQuery as described here.
Closing.


fix: unused parameters TypeScript error

This commit fixes #99.
It renames the parameter msg in the _writeMessage of generated code to always be _msg to prevent TypeScript refusing to compile when generating messages which are empty (causing msg to be unused) when the noUnusedParameters flag is enabled in tsc

Thanks for this! Closing in favor of #101


[FEATURE] Add button to Open Folder when there is no active workspace

When there is no active workspace, there is an error (rightfully so).

This is similar to the Tree View in the Explorer panel.

Adding a button to the error, removes the step to navigate to the files panel and also provides the solution instead of only giving an error.
Proposed feature (2 steps):

Focus on the File Explorer by executing this command workbench.files.action.focusFilesExplorer(File: Focus on File Explorer). This shows where the opened folder will be and where where the button was.
Open a folder by executing this command workbench.action.files.openFolder(File: Open Folder...)

This is how it would look like:

This is a good idea, but the proposed solution does not work. Both workbench.files.action.focusFilesExplorer and workbench.action.files.openFolder require you to actually have an active workspace in the first place, which is exactly why the notification shows in the first place.
I've tested this both with & without an active workspace, and the Open Folder option doesn't even appear on the message without. The file explorer also refuses to focus (only when manually going over to that View Container it appears highlighted, but that's a bit pointless).

Thank you for testing this out. Is this or this useful? If this succeeds the focus should be able to change to the Files Explorer.

In order to use those, you need to have a workspace URI to pass into it. The extension can't really know which folder the student would like to open/create.

Hmm and in combination with this and this? Or this?

That's more like it indeed, that should work.

It's in. One thing I would like to say is: it's not possible to have the new exercise file create in the new folder after opening it. I tried this, but a new folder counts as a new workspace, and every workspace runs a new instance of the extension. It would've been a nice QOL feature, but I'm gonna have to let it slip.

Thank you! I had a scenario in mind where young students might be puzzled why they can't make Dodona exercises and don't know what to do next (if they don't know English that well for example). My main focus was on making the setup process as easy as possible. Local storage isn't that important in this case since each submission is stored on the Dodona servers.

Hmm that's true I guess, I hadn't really considered the fact that Dodona is used by younger age groups as well.

Right now there are 142 schools registered that are mostly secondary schools.

Algorithmic thinking will be included in the curricula of secondary education in Belgium in a few years. I think many teachers will use Dodona to teach Python in the 5th and 6th year. Programming in the browser is ok for short exercises, but having an IDE gives more insight into the code even before executing it, shows typo's and autocompletes while programming. This is where your extension comes into play because it integrates Dodona in the IDE while being easy to use.


Adds tests to most functions in package

Does not add tests to functions that we might change soon (some plotting functions) nor to ABS

closed as some conflicts with ABS exports that are easier to resolve before pulling


feat: measurable parametric Stieltjes functions

We provide tools to build a measurable function α → StieltjesFunction with limits 0 at -∞ and 1 at +∞ for all a : α from a measurable function f : α → ℚ → ℝ. These measurable parametric Stieltjes functions are cumulative distribution functions (CDF) of Markov kernels.
The reason for going through ℚ instead of defining directly a Stieltjes function is that since ℚ is countable, building a measurable function is easier and we can obtain properties of the form ∀ᵐ (a : α) ∂μ, ∀ (q : ℚ), ... (for some measure μ on α) by proving the weaker ∀ (q : ℚ), ∀ᵐ (a : α) ∂μ, ....
TODO: I will later refactor the CondCdf file to use this file. This will also be used in another new file to build CDFs of kernels, towards proving disintegration of kernels.

bors r+


Python – Installation fails because GnuPG cannot import keys without user ID

Installation of the python feature fails:

At least one of the specified key servers doesn't report the user ID for five of the requested keys,
hence GnuPG refuses to import those keys:

 => => # (*) Downloading GPG key...
 => => # gpg: key 3A5CA953F73C700D: new key but contains no user ID - skipped
 => => # gpg: key 04C367C218ADD4FF: new key but contains no user ID - skipped
 => => # gpg: key 0EDDC5F26A45C816: new key but contains no user ID - skipped
 => => # gpg: key 6AF053F07D9DC8D2: new key but contains no user ID - skipped
 => => # gpg: key C9BE28DEE6DF025C: new key but contains no user ID - skipped

devcontainer.json:
{
  "name": "dev",
  "image": "mcr.microsoft.com/devcontainers/base:debian-11",
  "features": {
    "ghcr.io/devcontainers/features/python:1": {
      "version": "3.11",
    },
  },
}

I can manually reproduce the problem on that container:
vscode ➜ ~ $ gpg --keyserver "hkps://keys.openpgp.org" --recv-keys 0x3A5CA953F73C700D
gpg: key 3A5CA953F73C700D: new key but contains no user ID - skipped
gpg: Total number processed: 1
gpg:           w/o user IDs: 1

GnuPG version:
vscode ➜ ~ $ gpg --version
gpg (GnuPG) 2.2.27
libgcrypt 1.8.8
Copyright (C) 2021 Free Software Foundation, Inc.
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/vscode/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

Any help would be greatly appreciated.

I figure this is related to this issue stated in the keys.openpgp.org FAQs. However, Debian's GnuPG is patched to allow updating of keys that have not user ID on the key server. I believe the issue here is that this fixes things only for updating locally existing keys. Hence, an initial import still doesn't work for me, even with the patched GnuPG.
I assume a solution could be to vendor the respective public keys, import them, and only then call gpg --recv-keys to update them. Then, things should work as expected.

I also discovered that connections to hkp://keyserver.ubuntu.com always fail from my machine (I don't know why), hence the openpgp.org keyserver is tried next, which strips the user IDs.
Changing hkp://keyserver.ubuntu.com to hkps://... allows me to retrieve the keys from that server.
Is there a specific reason you're going for hkp instead of hops for this server in install.sh?

So it appears our company firewall currently blocks port 11371, hence hkp connections fail, but hkps connections (which use port 443) do work.
Since the only keyserver in install.sh that is specified to use hkps is the one from openpgp.org, my container can only connect to this one. But it's also the keyserver that strips the user IDs of some keys, hence the key import fails.
I found out that keyserver.ubuntu.com can also be reached via port 80 specifically to make life easier for folks in a situation like mine. Hence, a very simple fix could be to change:
https://github.com/devcontainers/features/blob/4fca96b5e8a4bfc93679098cb19d73c65ce571eb/src/python/install.sh#L31-L31
to
GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com:80

Would you be willing to accept a PR for this change?

Hi 👋
Thanks for opening the issue, left a PR review. See https://github.com/devcontainers/features/pull/719#pullrequestreview-1665568545


Add S3 CSI Driver IAM policy as blueprints addon

S3 CSI Driver
Description of changes:
This commit adds a new file iam-policy.ts that contains the IAM policy statements for the S3 CSI driver. It also adds a new file index.ts that implements the S3 CSI driver addon. The addon creates a service account, attaches the IAM policy to the service account's role, and deploys the addon to the cluster. The commit also includes some helper functions and default options for the addon.

/do-e2e-tests

Merging it, issues that I identified are addressed in #1106 .


Fix build with "LAZY_LOAD_LIBS=OFF".

Add #ifndef around dlclose() to allow build with "LAZY_LOAD_LIBS=OFF"  cmake argument.

Hello dear cubeb developers. Thank you for making pulseaudio usable by humans. I am using cubeb to program for a phone running Sailfish OS. The OS has some problem at dlopen("libpulse.so"). Cmake finds libpulse.so fine. A possible solution is to build cubeb with LAZY_LOAD_LIBS=OFF cmake argument. The solution is implemented by this pull request. Is it possible to merge the pull request to master branch?

Yes that sounds like the right thing to do, thanks.


C# proxy compile error (Type&) when action method has out parameter

Example:
[HttpGet]
public int GetIntAndString(out string someString)
{
someString = "hello";
return 1;
}
Generated method will look like, see String&:
public virtual async Task GetIntAndStringAsync(String& generatedSqlQuery)
{
return await ...
}
Obviously this code can't be compiled. getting Error:
Error	1	Identifier expected

@elize1979 ok, that makes sense. What should the generated code look like? Should we just remove the & ? I've never used out parameters with action methods before!

@wolfen351 this definitely looks like a bug somewhere. out parameters haven't cross my mind at the time. @elize1979 why would you want to use an out parameter in the API anyway?


Rest API response improvements

It would be great if the API endpoints returned appropriate error messages rather than 404 status codes.
Maybe a JSON object with a message as to why it failed, or simply changing the returned status code from 404 to something a little more relevant to the issue with the request.

Hi @andreaselia! Thanks for your feedback. It's definitely on our roadmap. Your wish will come true soon!


Code for training

Thanks for your great work and clean test code.
I would like to ask about your plan to release code for training since I would like to apply your method to other datasets.

Hi, thanks for your interest and sorry for the delayed response.
I am a bit busy at the moment, but I would probably have some time in March or April to work on the training code release.

Hi, sorry for the delay.
I have just added the training code.
Please let me know if there is anything unclear about the code.


fix error handling in string.to_int()

Error handling in the to_int method of the new string module was not properly done.

errno was not reset prior to the call to strtoll, so YR_UNDEFINED could be returned if a prior call failed, but not the current one.
overflow/underflow was not properly checked, as it returns LLONG_MIN or LLONG_MAX and not 0.

Instead, do what is recommended in the man page for strtol:

set errno to 0 prior to the call
check errno after the call

Test fail on macos on the string.to_int("") == 0 test I also added. I guess this is because this is unspecified behavior in strtol, see man page of strtol:

The implementation may also set to EINVAL in case no conversion was performed (no digits seen, and 0 returned).

I can remove this test to make this MR go through, but there is definitely an issue here, i'm not sure what the desired behavior is. IMHO not returning an error when not parsing a single digit is unexpected, but I don't see how it could be detected if strtol does not set errno in those cases in some libc implementations. Discussion about this could probably be moved in another issue however

I have opened https://github.com/VirusTotal/yara/issues/1843 to discuss the to_int("") case

I added a fix for #1843 as well. This way, this PR properly fixes and specifies all error/corner cases for string.to_int

Thanks for taking care of this! FWIW, I think these changes are good. :)

This test case is failing when compiling with Cygwin on Windows:
  assert_true_rule(
      "import \"string\" \
      rule test { \
        condition: \
          not defined string.to_int(\"1\", -1) and \
          not defined string.to_int(\"1\", 1) and \
          not defined string.to_int(\"1\", 37) \
      }",
      NULL);

The implementation of strtoll is returning with errno = 0 with incorrect base values like -1, 1 and 37. So, it looks like strtoll is not behaving in the same ways in all its implementation. We better check for valid base values in string_to_int

Thanks you for debugging it, I didn't see that there was an issue with Cygwin. I have added a commit to validate the base before calling strtol, hopefully this should fix it


Should collections count their allocated memory?

The following example prints 25
use get_size::GetSize;

pub fn main() {
    let mut vec = Vec::with_capacity(3000);
    vec.push(2u8);
    println!("{}", vec.get_size());
}

24 for the stack size of the vector and 1 for the size of its heap contents.
But the allocation the vector is pointing to actually has a size of 3000 bytes.
My main purpose for using this crate is to figure out how much memory my program is using at runtime, in which case I would want the above code to print 3024 instead of 25.
Is there a reason it doesn't?

Hello @albertsgarde ,
The is no good reason for it.
I wrote this crate primarily for a caching library of mine, which I would use for objects where the additional space taking by the not used capacity is neglectable, so I went for using .len() instead of .capacity() in my implementation.
But the more I think about it now, the more I realize how stupid that is. As you pointed out, for most applications accounting the real memory usage is essential. Just think about a pool of already allocated, but currently empty buffers. The current implementation would account them as being empty, even trough they might in total allocate an enormous amount of memory.
I have changed the code so the std objects now also account for the not yet used, but already allocated capacity.
An update should be available in a few minutes.

This is great, thanks


30 warn about f0467 encap already in use

Added new encap_already_in_use_check for Issue #30.
Tested on multiple live APICs and pytest is passing.

pytests:
=====Starting encap_already_in_use_check

[Check  1/1] Encap Already In Use (F0467 encap-already-in-use)...                                                 FAIL - OUTAGE WARNING!!
  DN of Faulted EPG              In Use by EPG                    Node  Overlapping Encap(s)
  -----------------              -------------                    ----  --------------------
  uni/tn-bw/ap-mcast/epg-mcast1  uni/tn-bw/ap-physical/epg-phys3  104   vlan-101
  uni/tn-test/ap-app/epg-epg1    uni/tn-test2/ap-app2/epg-epg2    101   vlan-777

  Recommended Action: Resolve the overlapping encap configuration prior to upgrade

=====Starting encap_already_in_use_check

[Check  1/1] Encap Already In Use (F0467 encap-already-in-use)...                                                                    PASS


Make the tool available as a command line tool

Now there will be no need to clone the repo. pip install gpt-repository-loader will make the tool available across your system to be used with any repository.
Usage after pip install:
gpt-repository-loader /path/to/repository

@mpoon happy to transfer the PyPI account to you, will also change the author fields accordingly 🙏

@mpoon happy to transfer the PyPI account to you, will also change the author fields accordingly 🙏

Awesome, I'm mpoon over at PyPi.

@mpoon 👀


Binding with PRISM Framework

With Prism Framework, I create a binding property like this:
private static User _loggedUser;
public User LoggedUser {
    get { return _loggedUser; }
    set { SetProperty(ref _loggedUser, value); }
}

How would I get the Settings.LoggedUser value and pass to that binding property?
What's the best way to work in this case?

Read the readme


Dont fail server load on JWKS endpoint

Killing the Caddy server startup in the Validate call when the JWKS endpoint can't be reached is undesirable behavior

Looks good! Thanks for the update!


change language

Before you submit a new bug report, please check that

[X] I have read frequently asked questions and limitations

Write your question here
Hi, i wish to know if its possible to change the language of the month ( maybe edit some file in the repo?)

thanks

The translations are done on front-end (in the user context - in fact, each user can have a different language configured).
The integration runs on the back-end (it only has one state, even if no user is signed in). I think it runs in the system locale, that is English I thing.
And that's the problem with the "Verbose state" - that is done on the back end and it "bakes" it in the state (I think it is conceptually wrong and I should have rejected that, but it is done, many people use it and it would be hard to remove it).
So from the above, I'd render this human-readable state in the dashboard. Then it will run in the user context and should respect the language you have set-up for the user.


Jormungandr: Prevent integration tests from clobbering each other

Relates to #658.
Overview

Make sure that different tests use a different storage directory (stops database errors coming from jormungandr).

Make sure that the jormungandr listens on unused network ports in tests.

Comments
Branch is based on branch of PR #688.

Are we concerned about our tests becoming less strict about resources being cleaned up afterwards.

If you mean the small amount of files stored in the system temporary directory - No I don't think it's a big problem. And it's yet more work to fix all the tests to clean up the files.

Would waiting for the port to clear up / jormungandr process to get killed after each test suite be a a just-as-good alternative?

No, because this still suffers from the problem where tests can't be run in parallel because they are trying to listen on the same port. Using fixed ports is also a problem if I've already got something listening on port 3000 or 8080 - then tests fail and it's not immediately apparent why.

No, because this still suffers from the problem where tests can't be run in parallel because they are trying to listen on the same port.

👍  Good point.

If you mean the small amount of files stored in the system temporary directory - No I don't think it's a big problem. And it's yet more work to fix all the tests to clean up the files.

I meant more that we might end up in a scenario where it's tricky or impossible to re-launch the wallet, either because of jormungandr not getting killed when cardano-wallet-jormungandr launch goes down, or because of some files.
I'm not sure if our tests covers this, but I also guess we'd notice that immediately when developing / testing manually.

bors r+


⚠ ClamAV has degraded performance

In 9f484e4, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 53 ms

Resolved: ClamAV performance has improved in c9e43f4.


Specify that fingerprint from openssl command needs to be SHA1

Issue #287
Description of changes:
Added "-sha1" parameter to the openssl command.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi, I've merged your pull request. Thanks again for submitting this pull request!


checkout page is not added and bug fix in cart image

Can you please send screenshot of the issue.

Can you please send the screenshot and I'll respond


Add sounds and background

Simply add sounds and background image for school works

Thanks for the suggestion! But this repo is intended to be kept as I developed it. You are welcome to fork it and add those things in your own copy though :)


Missing boundary detection

Nodes can be dragged outside the panel and therefore won't be visible any longer.

They will be visible again if you move around the panel with middle click.


fix: Force HELPDESK_PUBLIC_TICKET_QUEUE for anon tickets

Before: we set initial value for the widget and had it hidden. So user could still change the queue with some HTML knowledge.
Now: we drop the field at all and assign queue directly, utterly ignoring the POST request content for "queue" field.
Haven't run the tests, sorry. can't say they are working for me well, their execution takes too much time when it gets to email stuff.

Codecov Report

Merging #794 into master will decrease coverage by 1.06%.
The diff coverage is 55.55%.

@@            Coverage Diff             @@
##           master     #794      +/-   ##
==========================================
- Coverage   71.98%   70.92%   -1.07%
==========================================
  Files          47       48       +1
  Lines        4373     4443      +70
  Branches      508      520      +12
==========================================
+ Hits         3148     3151       +3
- Misses       1076     1142      +66
- Partials      149      150       +1

Impacted Files
Coverage Δ

helpdesk/forms.py
51.9% <55.55%> (-0.06%)
:arrow_down:

helpdesk/management/commands/escalate_tickets.py
0% <0%> (ø)

Continue to review full report at Codecov.

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


Don't prefetch on help

Disables the plugin when help is requested via the help command, or the help option.

Coverage decreased (-0.2%) to 82.801% when pulling 850fd26321b94259bf568f72c5c0012453d40599 on CupOfTea696:master into 01bed92c45e84d01a96f5d15c6e49958cbd57f36 on hirak:master.


local function parameters are sometimes not recognized as resolved

in version 1.0
main = do
    println $ filter (\it -> it == 1) [1,2,3]

The "it" is shown as "unresolved reference".
This is a bit odd since they are sometimes recognized and I couldn't figure out when they are and when they aren't.

Thanks! Fixed.


Store events as wrp.SimpleEvents

instead of using db.Event to store the event, use wrp.SimpleEvent
related to:
https://github.com/Comcast/wrp-go/issues/12
https://github.com/Comcast/codex-gungnir/issues/30
https://github.com/Comcast/codex/issues/27

Part of this change includes using https://github.com/Comcast/wrp-go/


[Bug] [Invalid Syntax] [QueryException] Enclosing quotes " missing in result of GraphQLQueryRequest.serialize() (generated type safe query builder client)

There are quotes "  (opening & closing) missing in the resulting query that GraphQLQueryRequest.serialize() constructs.
This is happening with a custom java.util.UUID Scalar.
Should be easy to fix 👍
I've attached screenshots to illustrate:

Here's the query definition from the schema.graphqls file:
type Query {
  entity(id: UUID): Entity
}

scalar UUID

type Entity {
  name: String!
  id: UUID!
}

When the query is constructed manually as a String,  with the quotes that appear to be missing in the generated query, no exception is thrown during the execution of the query.
Here's what that the manually constructed query looks like:

I've tried removing the quotes in the manually constructed query, and as expected, the same exception is thrown as with the query built by GraphQLQueryRequest.serialize() method.

✅ This bug is fixed with the new version 4.0.1 release 🎉
The release introduced a new scalars key to the GraphQLQueryRequest constructor, which resolves the issue 👍
Here's how to set it up:

✨ It just works ✨


Editting year group does not work

Failed to edit year group even with correct prefix

Thanks for raising this issue, will fix!


[QUERY] Replacement for IRetryPolicy in V12 of Azure Blob Storage SDK

Query/Question
How can we help?
We are migrating from V11 to V12 SDK of Azure Storage. In V11 we could implement the IRetryPolicy interface which allowed us to log information whenever retry happened by using the ShouldRetry method (see code below). We were able to set the RetryPolicy object of BlobRequestOptions. How do we do the same in V12 SDK? I do not see any such option which allows us to log information whenever a retry happens for blob operations.
  //Existing V11 code
    internal class BlobStorageRetryPolicy : IRetryPolicy
    {
        public string Operation { get; }

        public IRetryPolicy InnerPolicy { get; }

        public StorageContext LoggerContext { get; }

        public BlobStorageRetryPolicy(StorageContext context, string operation)
        {
            this.LoggerContext = context;
            this.Operation = operation;
            this.InnerPolicy = new ExponentialRetry();
        }

        IRetryPolicy IRetryPolicy.CreateInstance()
        {
            return new BlobStorageRetryPolicy(LoggerContext, Operation);
        }

        bool IRetryPolicy.ShouldRetry(int currentRetryCount, int statusCode, Exception lastException, out TimeSpan retryInterval, OperationContext operationContext)
        {
            var lastResult = operationContext?.LastResult;
            if (lastResult != null)
            {
                var lastDuration = (lastResult.EndTime - lastResult.StartTime).Duration();
                Logger.LogBlobStorageTransientRetryErrorEvent(
                    loggerContext: LoggerContext,
                    errorCode: statusCode,
                    operation: Operation,
                    attemptedDurationInMs: (long)lastDuration.TotalMilliseconds,
                    ex: lastResult.Exception
                );
            }

            var p = InnerPolicy.ShouldRetry(currentRetryCount, statusCode, lastException, out retryInterval, operationContext);
            if (this.LoggerContext is InternalStorageContext internalCxt)
            {
                internalCxt.LatencyProfiler.AddCheckpoint($"Retry count:{currentRetryCount} with retryInterval:{retryInterval} for operation:{Operation}, ClientRequestId:{operationContext.ClientRequestID}");
            }

            return p;
        }
    }

Environment:

Name and version of the Library package used: Azure.Storage.Blobs 12.7.0, Azure Identity 1.3.0, Azure Core 1.6.0
Hosting platform or OS and .NET runtime version (dotnet --info output for .NET Core projects): Windows 10 .NET Framework 4.7
IDE and version : Visual Studio 16.5.2

Thank you for your feedback.  Tagging and routing to the team best able to assist.

Can someone respond to this please?

Hi,
To alter the retry policy please see https://github.com/Azure/azure-sdk-for-net/issues/16980.
In regards to logging every time a retry occurs, I will need to get back to this thread, logging most likely can be enabled in the Azure.Core Diagnostics or Logger.

Thanks for the link for setting the retry policy. I have that working already. My main concern is logging when retry happens, so that we do not have to look at storage logs to verify if retry is the reason for higher latency on a certain operation.

This question is about generic retry/diagnostic. @pakrym

You can use a custom logging callback:
https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/core/Azure.Core/samples/Diagnostics.md#custom-logging-callback
and filter using the event name e.EventName == "RequestRetrying" (https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/core/Azure.Core/src/Diagnostics/AzureCoreEventSource.cs#L121)

Please re-open if you have further questions.


gremlins don't trigger click handlers?

I can see the gremlins clicking everywhere on my page but click handlers are not called. I have buttons and a that show messages or expend areas of the page and they don't kick-in.
My app is an AngularJS app. I tried giving some time for the app to bootstrap before I unleash but it does not change the result.
    <script src="tests/lib/gremlins.min.js"></script>
    <script>
        $(function () {
            setTimeout(function () {
                gremlins.createHorde().unleash();
            }, 3000)
        })
    </script>

For me this piece of code does not trigger click events:
gremlins.createHorde().unleash();

This one do:
gremlins.createHorde()
.gremlin(gremlins.species.clicker().clickTypes(['click']))
.unleash();

I don't know if this is correct behavior, but I think this is what are guys about.

Hey folks. The Marmelab team is attempting to clean up the Issues backlog. With that, we're closing issues that have been open for an one or more years.
We really appreciate the folks have taken the time to open and comment on this issue. Please don't confuse this closure with us not caring or dismissing your issue, feature request, discussion, or report. If the issue pertains to a bug, please re-test for the bug on the latest version of gremlins.js.
The best way to report problems with gremlins.js 2.0 is to file new issues.


Upgrading tailwindcss-rails from 2.0.29 to 2.0.30 broke web-console

I'm not sure if this is a problem in web-console or in tailwindcss-rails. I'm cross-posting it here for awareness in case it's tailwindcss-rails. I will continue debugging the problem and create a PR if I find what it is, but if you know anything, since you are more familiar with the code, please let me know. All guidance is welcome.
Full details of the issue are on https://github.com/rails/web-console/issues/326

cc @rmehner It seems reasonable to suspect the change in #271 might be responsible.

@pupeno
Thanks for the report and I'm sorry that you've run into a problem. I've created a new Rails project and added rspec to it and this works without a problem. Can also not reproduce in any of our projects that are using tailwindcss-rails.
Will try to reproduce with your repo next.

hey @pupeno,
I dug a bit deeper and haven't found out the root issue, but can reproduce with your repo. Doing RAILS_ENV=test rake spec fixes the issue for what it's worth, but need to dig deeper on the root cause.
We're not the first gem affected by this, see this issue on dotenv-rails: https://github.com/bkeepers/dotenv/issues/395#issuecomment-637196418
However, I've tried this with several of our projects that use tailwindcss-rails and rspec and none of the projects showed this behaviour, so it must be something within repeater-world that triggers this behaviour.
Sorry that I have no clear fix, but hope this helps a least a little bit.

Oh wow, this one is a bit tricky than I expected. One of the issues for me is that the bug is being triggered when I run the tests from RubyMine, where I might not have as much control on how they are run, but I'll investigate.

I'm having the same issue.
What I've found:

Running bundle exec rspec works fine
Running RAILS_ENV=test bin/rails spec works fine
Only running bin/rails spec doesn't work

If I raise in the web-console gem (cf. https://github.com/rails/web-console/issues/326#issuecomment-1664137494), the error output is:
rails aborted!
Bundler::GemRequireError: There was an error while trying to load the gem 'web-console'.
Gem Load Error is: webconsole! Rails.env=test Rails.groups=[:default, "test"]
Backtrace for gem load error is:
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/web-console-4.2.1/lib/web-console.rb:3:in `<top (required)>'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.20/lib/bundler/runtime.rb:60:in `require'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.20/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.20/lib/bundler/runtime.rb:55:in `each'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.20/lib/bundler/runtime.rb:55:in `block in require'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.20/lib/bundler/runtime.rb:44:in `each'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.20/lib/bundler/runtime.rb:44:in `require'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.20/lib/bundler.rb:188:in `require'
/home/user/myproject/config/application.rb:7:in `<top (required)>'
/home/user/myproject/Rakefile:4:in `require_relative'
/home/user/myproject/Rakefile:4:in `<top (required)>'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/rake_module.rb:29:in `load'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/rake_module.rb:29:in `load_rakefile'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:710:in `raw_load_rakefile'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:104:in `block in load_rakefile'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:103:in `load_rakefile'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.0.8/lib/rails/commands/rake/rake_command.rb:20:in `block in perform'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/rake_module.rb:59:in `with_application'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.0.8/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.0.8/lib/rails/command.rb:51:in `invoke'
/home/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/railties-7.0.8/lib/rails/commands.rb:18:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Bundler Error Backtrace:
/home/user/myproject/config/application.rb:7:in `<top (required)>'
/home/user/myproject/Rakefile:4:in `require_relative'
/home/user/myproject/Rakefile:4:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'

Caused by:
webconsole! Rails.env=test Rails.groups=[:default, "test"]
/home/user/myproject/config/application.rb:7:in `<top (required)>'
/home/user/myproject/Rakefile:4:in `require_relative'
/home/user/myproject/Rakefile:4:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'

In the gem, Rails.env is test and Rails.groups is [:default, "test"].
The same happens for every gem in the development group. So I suspect that all development gems are loaded when invoking a rake task, irrelevant of the current Rails environment.
That's why it's probably not a tailwindcss-rails or web-console issue, but rather might be an issue with railties (rails/commands) or how rake is invoked.

Where should this bug be reported then, do you know?

I added a raise to web-console.rb and I got a bit of a different traceback:
rake aborted!
Bundler::GemRequireError: There was an error while trying to load the gem 'web-console'.
Gem Load Error is: web console is being required when it shouldn't
Backtrace for gem load error is:
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/web-console-4.2.1/lib/web-console.rb:3:in `<main>'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.7/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.7/lib/bundler/runtime.rb:55:in `each'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.7/lib/bundler/runtime.rb:55:in `block in require'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.7/lib/bundler/runtime.rb:44:in `each'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.7/lib/bundler/runtime.rb:44:in `require'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.3.7/lib/bundler.rb:176:in `require'
/home/pupeno/repeater_world/config/application.rb:33:in `<top (required)>'
/home/pupeno/repeater_world/Rakefile:18:in `require_relative'
/home/pupeno/repeater_world/Rakefile:18:in `<top (required)>'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/rake_module.rb:29:in `load'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/rake_module.rb:29:in `load_rakefile'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:710:in `raw_load_rakefile'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:104:in `block in load_rakefile'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:103:in `load_rakefile'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:82:in `block in run'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:80:in `run'
/home/pupeno/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/home/pupeno/.rbenv/versions/3.2.2/bin/rake:25:in `load'
/home/pupeno/.rbenv/versions/3.2.2/bin/rake:25:in `<main>'
Bundler Error Backtrace:
/home/pupeno/repeater_world/config/application.rb:33:in `<top (required)>'
/home/pupeno/repeater_world/Rakefile:18:in `require_relative'
/home/pupeno/repeater_world/Rakefile:18:in `<top (required)>'

Caused by:
web console is being required when it shouldn't
/home/pupeno/repeater_world/config/application.rb:33:in `<top (required)>'
/home/pupeno/repeater_world/Rakefile:18:in `require_relative'
/home/pupeno/repeater_world/Rakefile:18:in `<top (required)>'
(See full trace by running task with --trace)

RAILS_ENV=test rake spec works, so maybe bundler is loading everything on development, because that's the default, before Rails switches to test, and by then it's too late?

@pupeno Further findings after some more debugging:

For me, this also happens with tailwindcss-rails 2.0.29

I can't reproduce it in a new Rails project

When running bin/rails spec, Rails is first loaded in the development environment. As soon as the spec rake task is loaded, Rails is re-loaded using the test environment.

For me the problem is fixed by removing the following line: https://github.com/rails/tailwindcss-rails/blob/ad7edc914a33fb7e2b005135210e2e804e0abded/lib/tasks/build.rake#L24
In my projects, all three tasks are defined: test:prepare, spec:prepare and db:test:prepare. Because tailwindcss-rails uses an if -> elsif, only test:prepare is enhanced in my tests. So if I don't enhance that, bin/rails spec works fine. Enhancing db:test:prepare is not an issue - even if I enforce the enhancing, bin/rails spec works fine. If I enforce enhancing either test:prepare or spec:prepare, bin/rails spec fails.

Rake::Task.enhance supports two invocations:
# Runs tailwindcss:build BEFORE spec:prepare
Rake::Task["spec:prepare"].enhance(["tailwindcss:build"])

# Runs tailwindcss:build AFTER spec:prepare
Rake::Task["spec:prepare"].enhance do
  Rake::Task["tailwindcss:build"].execute
end

spec:prepare sets RAILS_ENV=test. By running spec:prepare before building the Tailwind assets, the load errors are fixed. I'm not yet sure why this happens though and why it matters. Running tailwindcss:build in the development environment shouldn't produce any load errors. Interestingly enough, the body of the tailwindcss:build Rake task is not executed at all. So the load error happens before invoking it.

@pupeno Could you try the following and let us know if that fixes the issue for you as well?
bundle open tailwindcss-rails
# Navigate to lib/tasks/build.rake

Replace the last if-elsif with the following:
if Rake::Task.task_defined?("test:prepare")
  Rake::Task["test:prepare"].enhance do
    Rake::Task['tailwindcss:build'].execute
  end
elsif Rake::Task.task_defined?("spec:prepare")
  Rake::Task["spec:prepare"].enhance do
    Rake::Task['tailwindcss:build'].execute
  end
elsif Rake::Task.task_defined?("db:test:prepare")
  Rake::Task["db:test:prepare"].enhance(["tailwindcss:build"])
end

Then run bin/rails spec again.

@phylor wow, yes, that change fixes it for me.

2.0.24 is the first failing release for me. More specifically, the following change causes the exception:
https://github.com/rails/tailwindcss-rails/blob/8159bd8652bb8f545f3ad7397d59b6e4deb1c89c/lib/tasks/build.rake#L3
Before, Rails wasn't loaded:
task :watch do |_, args|

With that change, bin/rails spec runs fine again. Also without my patch from above.
I also just noticed that I get an exception when invoking the rspec generators. Instead of calling the generator, it seems to reload Rails again causing a pending migration exception (with and without the above patch). I can't reproduce that issue in a clean project, so there must be something wrong in the project. This also happens after removing tailwindcss-rails from the bundle.
@pupeno Do you have that same problem as well? Do your generators work fine? If so, this is probably an unrelated issue.

bin/rails g model Car
      invoke  active_record
      create    db/migrate/20231104145922_create_cars.rb
      create    app/models/car.rb
      invoke    rspec
Migrations are pending. To resolve this issue, run:

        bin/rails db:migrate RAILS_ENV=development

You have 1 pending migration:

20231104145922_create_cars.rb

While loading rails_helper an `exit` / `raise SystemExit` occurred, RSpec will now quit.
Failure/Error: abort e.to_s.strip

SystemExit:
  Migrations are pending. To resolve this issue, run:

          bin/rails db:migrate RAILS_ENV=development

  You have 1 pending migration:

<PHONE_NUMBER>5922_create_cars.rb
# ./spec/rails_helper.rb:53:in `abort'
# ./spec/rails_helper.rb:53:in `rescue in <main>'
# ./spec/rails_helper.rb:50:in `<main>'
# ------------------
# --- Caused by: ---
# ActiveRecord::PendingMigrationError:
#
#
#   Migrations are pending. To resolve this issue, run:
#
#           bin/rails db:migrate RAILS_ENV=development
#
#   You have 1 pending migration:
#
#<PHONE_NUMBER>5922_create_cars.rb
#   ./spec/rails_helper.rb:51:in `<main>'

No, I don't seem to be having that issue:
$ bin/rails g model Car
      invoke  active_record
      create    db/migrate/20231104155727_create_cars.rb
      create    app/models/car.rb
      invoke    rspec
      create      spec/models/car_spec.rb
      invoke      factory_bot
      create        spec/factories/cars.rb
Coverage report generated for RSpec to /home/pupeno/repeater_world/coverage. 0 / 3279 LOC (0.0%) covered.

I'd like someone on this issue who understands what's going on, and can reproduce it, to submit a pull request, please. @phylor?

@flavorjones Unfortunately, I don't fully understand the issue.
I bisected the failing project again and I observed the following:

tailwindcss-rails version
status

2.0.23
ok

2.0.24
fails

2.0.31
fails

2.0.32
ok

2.0.33
fails

Workarounds I found:

Use tailwindcss-rails 2.0.32
Remove either web-console or tailwindcss-rails from the Gemfile
Revert the changes in lib/tasks/build.rake by https://github.com/rails/tailwindcss-rails/commit/8159bd8652bb8f545f3ad7397d59b6e4deb1c89c. That will most likely break that feature though.

Exception on failing status
Web Console is activated in the test environment. This is
usually a mistake. To ensure it's only activated in development
mode, move it to the development group of your Gemfile:

    gem 'web-console', group: :development

If you still want to run it in the test environment (and know
what you are doing), put this in your Rails application
configuration:

    config.web_console.development_only = false

Looking at the changes between 2.0.31 and 2.0.32 I'm not really sure why 2.0.32 suddenly works. Maybe the rubygems version is relevant, I couldn't yet pinpoint that though. And then I can't explain why version 2.0.33 starts to fail again.

Closing. If someone can help me reproduce and diagnose this, I'm happy to reopen.

For me the following commit in rspec-rails solves the issue: https://github.com/rspec/rspec-rails/commit/8acac38be1052cb264fb4a3fae44796efb3a15c7
That is:

I have --require rails_helper in .rspec
Adding return unless Rails.env.test? in spec/rails_helper.rb solves the issue with the pending migration issue


Improve first run experience

This issue to explore how we might improve the (default) first run experience from the file explorer (and other areas).
Current Experience
Desktop
Today, when you install VS Code for the first time and open a file you are greeted with a series of views in the explorer:

Open Editors
Folders
Outline
Timeline
NPM Scripts

Proposal
We can consolidate some of the features that have overlap in other areas:

Hide Open Editors in favor of Editor Tabs
Folders - Keep Visible
Hide Outline in favor of Breadcrumbs + Go To Symbols in Editor
Timeline - Keep Collapsed
Hide NPM Scripts in favor of adding an action ~in the editor toolbar~ via codelenses in the package.json file to surface it

Other Ideas
In addition to this proposal, we also discussed the following options that would require more engineering effort:

Once we add a secondary sidebar, we could move file specific views onto it (outline, timeline, etc.)
For Codespaces: hide the remote explorer and surface port forward through the remote picker
For the GitHub extension: combine the PR and Issues view into the SCM view since they are all git related features
Make the sidebar headers clickable to surface the view options (right-click menu to toggle views)
Add an action from the Go To Symbols in Editor quick pick that toggles the outline view

Outline is not a Breadcrumbs alternative. Those are two highly important distinctive features. It's shouldn't be anywhere hidden.

Also assignign to myself since I will have time this and next week to look into this.
To start I suggest that we do the following from your items above: "Make hidden views more discoverable".
That I think is good to have independent of this work and is a good first step so we can hide views more aggressivly by default.
For that I like from the above the following:

Make the sidebar headers clickable to surface the view options (right-click menu to toggle views). Also use pointer icon for it.

Ideas from @misolori and me which we discussed on Slack:

Have an additional action in each view container Title area clicking on it would show all views
Make the View main menu have submenus. So instead of Explorer, it would be a submenu Explorer > Folders, Open Editors, Timeline...

Here are two ideas for how to improve the discoverability.
Global view menu
This would add an ellipsis icon to all global viewlets and surface the view menu. This is the same menu you get when you right-click in the sidebar.

This means that we would need to account for when a viewlet only has a single view and the view actions are collapsed with the title:

And when a viewlet already has a context menu:

Clickable title
This would make the title on all views clickable and surface the same menu.

@misolori great work, love it. Especialy the first since it makes it very discoverable. The only nit pick, when a viewlet already has a context menu: I would do it
Views >
Extension actions
So do not put the Extension actions in a submenu. But the Views should still be the first entry.
fyi @sbatten @sandy081 @bpasero even though I think this will be discussed in today's UX call.

I like moving them to ... action and also liked @isidorn suggestion to only move view actions as sub menu when the viewlet has ... actions already.

So I don't think we're going to find a good icon for "views" since that is a pretty hard concept to show and we already have similar icons that represent view:

I still think we should stick with using the ellipsis since we also use this for both overflow and showing actions (view context menus and editor ellipsis). Here's how I think we can use the pattern in both:

Use the same pattern as before, when there is no overflow we show all view options
When there is overflow, we group view toggles in view menu
The ellipsis icon would always be visible

@misolori I like this suggestion a lot for the panel.
So let's go with the elipses. I can look into the implementation.

For the first run experience I think a good first steps for this milestone are the following:

[ ] Show elipses in every view container to make hidden views and the ability to hide views more discoverable
[x] Have Open Editors collapsed by default
[ ] Move NPM Scripts into an extension @egamma

We'll see how these changes are accepted by the community and then next milestone we can

[ ] Show elipses for hidden views also in Panel
[ ] Think about the Timeline view @eamodio
[ ] Think about hiding OUTLINE and OPEN EDITORS only for new users @jrieken and @isidorn We will probably not do this, but we should think about it

Think about hiding OUTLINE only for new users @jrieken and @isidorn We will probably not do this, but we should think about it

Don't think about it. It's unproductive. It's one of most important feature and fundamentally basic feature of IDE.

I have pushed an initial version of the elipses in the title area
Try it out with VS Code insiders from tomorrow and let me know what you think.

So for this milestone we only need to move the npm script to an extension.

I see that we have created an issue for moving the npm scripts view out to an extension.
Since that issue tackles that, and we have done in this issue what we planned for this milestone I am moving this out to July for the other 3 remaining action items from above:

[ ] Show elipses for hidden views also in Panel
[ ] Think about the Timeline view
[ ] Think about hiding OUTLINE and OPEN EDITORS only for new users. We will probably not do this, but we should think about it

I see we have hidden the npm scripts view by default which is great.
We will not hide the OUTLINE and OPEN EDITORS views due to their popularity.
I am discusing with Eric if we should hide the Timeline view by default.
As for the panel, we could render ... in the left most area of the actions and if there is not enough room to render all the panels we would add another section to the ... effectively merging the panels and views in one context menu. I think this could work nicely, but nothing for July, thus moving out to On-Deck.

@isidorn I made the changes to hide the Timeline view when there are no (excluded) registered providers -- this should help the first-run experience at least when the Timeline view wouldn't be useful.

@eamodio thanks for doing that. I just tried it out and it works nicely.
Since we have done most of the things planned in this item I am closing it and for ... in the panel I have created this follow up item https://github.com/microsoft/vscode/issues/103813


Outdated Google translate workflow

Any plans on updating the workflow to work with the new Google API?
Thanks a million for your work! :)

Seeing the Translate API is a paid service, I don’t think so – unless you are meaning something else by “the new Google API”. I must admit I haven’t used the workflow lately, as I’m mostly away from my Mac, so I’ll have to ask: has the current version stopped working?

Yep. The workflow stopped working a few days ago. :(
Please take a look at the posts from April 8th onwards here:
http://www.alfredforum.com/topic/120-google-translate-workflow/page-2
On Tue, Apr 14, 2015 at 10:53 AM, Martin Kopischke<EMAIL_ADDRESS>
wrote:

Seeing the Translate API is a paid service
https://cloud.google.com/translate/docs?csw=1, I don’t think so –
unless you are meaning something else by “the new Google API”. I must admit
I haven’t used the workflow lately, as I’m mostly away from my Mac, so I’ll
have to ask: has the current version stopped working?
—
Reply to this email directly or view it on GitHub
https://github.com/kopischke/alfred-workflows/issues/2#issuecomment-92729195
.

OK, that is annoying. I will see what I can do about a workaround, but I can’t give you an ETA on that, being a bit lacking in the free time department ATM.

That's totally fine. Thanks so much for taking a look, Martin and also
thanks one more time for the super helpful workflow ;)
On Tue, Apr 14, 2015 at 12:54 PM, Martin Kopischke<EMAIL_ADDRESS>
wrote:

OK, that is annoying. I will see what I can do about a workaround, but I
can’t give you an ETA on that, being a bit lacking in the free time
department ATM.
—
Reply to this email directly or view it on GitHub
https://github.com/kopischke/alfred-workflows/issues/2#issuecomment-92781626
.

Fixed in 58b9e5f8cf1c55bc6ce1ef8058bc57e8de3f7809.

That was amazingly fast! Thanks a ton! ;)
I hope your free time department would get more time resources in a near future.
Take care!

Thanks :). Shawn Rice had laid it all out already, all I still had to do was get that into a tidy form… let me know if any other issue (or even the same one, fingers crossed) pops up.

I don't know if I did anything wrong, but my version only returns the first word of the sentence. I tried deleting the workflow and reinstalling it, same result. I must be doing something wrong…

Deanishe on Alfredforums also made a [modification]:http://www.alfredforum.com/topic/120-google-translate-workflow/?p=35081 to the original to allow sentences with periods in them. Are periods accounted for in this version?
BTW: Awwesome workflow.

I don't know if I did anything wrong, but my version only returns the first word of the sentence. I tried deleting the workflow and reinstalling it, same result. I must be doing something wrong…

I’ll test as soon as I am back at my Mac, but most probably I messed up the shell escaping while refactoring. Should be an easy fix, but would you mind opening a new issue for it?

Deanishe on Alfredforums also made a modification to the original to allow sentences with periods in them. Are periods accounted for in this version?

Nope: I made no functional changes to the workflow, just fixed the retrieval of results from Google (minus whatever I messed up for multi word terms). Dean’s patch makes liberal use of Python, and I don’t want to use an external interpreter as that would significantly slow down the workflow, especially on less beefy machines (right now, lookup is almost instant, and I would very much like to keep it that way). I might investigate ways to add multi-sentence support purely in bash, but I’m a bit pressed for time ATM, so don’t hold your breath for it. Sorry.

Regression issue opened at #3.