VS Code simple golang example not working

Bug Description
I've installed the mirrord vs code extension, running the following snippet allows me to hit a breakpoint set on the "Hello, world." line:
package main
import (
	"fmt"
)

func main() {
	fmt.Println("Hello, world.")
}

However, once I make it a HTTP server:
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	fmt.Println("Hello, world.")

	err := http.ListenAndServe(":80", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		fmt.Printf("got / request\n")
		io.WriteString(w, "This is my website!\n")
	}))
	fmt.Printf("%s", err.Error())
}

I never hit the breakpoint on the "Hello world" line, but I get this in VS Code's debug console:
DAP server listening at: <IP_ADDRESS>:42015
Type 'dlv help' for list of commands.
Process 169465 has exited with status -11
Detaching
dlv dap (169309) exited with code: 0

Steps to Reproduce

Install mirrord VS Code extension
Enable mirrord in VS Code
go mod init and make main.go with following content:

package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	fmt.Println("Hello, world.")

	err := http.ListenAndServe(":80", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		fmt.Printf("got / request\n")
		io.WriteString(w, "This is my website!\n")
	}))
	fmt.Printf("%s", err.Error())
}

Debug it with the following launch config:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceFolder}"
        }
    ]

Receive following output:

Type 'dlv help' for list of commands.
Process 169465 has exited with status -11
Detaching
dlv dap (169309) exited with code: 0

Backtrace
No response
Relevant Logs
No response
Your operating system and version
Arch Linux 6.0.11-arch1-1
Local process
dlv
Local process version
No response
Additional Info
No response

Thanks for reporting this.
 I don't want to deliver half-baked so this is blocked on other existing issues that we are working on to solve this in a proper manner.
The relevant blocker is #780 . Leaving this open until then :)

Hi @aviramha , thanks for the investigation!
If I understand the referenced issue correctly, that means it should already work with the CLI? Or is there something else that would also need to be fixed in the CLI itself for this issue?

Hi @aviramha , thanks for the investigation!
If I understand the referenced issue correctly, that means it should already work with the CLI? Or is there something else that would also need to be fixed in the CLI itself for this issue?

Sorry, the cli fix is pending the extension change (so we can have a "unified" approach).
Would delve working with cli be useful for you? I can try to push that quite fast..

I've looked into the VS Code extension just because it seems easiest to set up and get going, but normally I use neovim, so if there is a CLI fix then I'll just try to set up everything in neovim, so a CLI fix would be pretty useful already for me :)

Hey! This should be fixed with https://github.com/metalbear-co/mirrord/releases/tag/3.14.0

@aviramha I've tried it with the VS Code extension again, I notice that when I steal the traffic it works as expected, but when mirroring, the agent seems to crash as soon as an HTTP request is sent, I get the following logs for the same simple example:
DAP server listening at: <IP_ADDRESS>:36783
Type 'dlv help' for list of commands.
Hello, world.
2022-12-15T08:11:23.862809Z ERROR ThreadId(02) mirrord_kube::api: agent disconnected
2022-12-15T08:11:23.862916Z ERROR ThreadId(02) mirrord_layer: agent connection lost
mirrord has encountered an error and is now exiting.
thread 'tokio-runtime-worker' panicked at 'explicit panic', mirrord/layer/src/lib.rs:455:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Process 37581 has exited with status -15
Detaching
dlv dap (37415) exited with code: 0

You can see the "Hello, World" from the initial main, but then I open the browser to go the the site, it's a bit slow and then the debug session ends. Not sure if it's the same issue? I can close this one and open a new one if you want!

Just to confirm, issue is only on mirroring, steal works well?
Can you add this to your configuration:
"agent": {"ttl": 100}

and then fetch the agent logs?
Thank you!

On the simple example steal works well, mirroring does not. I just tried again and now it handled 1 request before it disconnected.
How do I fetch the agent logs? I see there is a command mirrord extract but that seems to be for local filesystem?

Ah that's good observation, mirrord extract is.. well it was used for extension and will be removed soon (it just extracts the layer..)
You can just use kubectl logs after seeing the agent name using kubectl get pods

I tried to reproduce it today, and now the difference is not that the agent disconnects, but rather that when mirroring, the go code panics with:
runtime: g 28: unexpected return pc for net.(*conn).Read called from 0x7f5494eb4548
stack: frame={sp:0xc000076e78, fp:0xc000076f10} stack=[0xc000076000,0xc000077000)
0x000000c000076d78:  0x000000000040f6ee <runtime.(*mcache).nextFree+0x00000000000000ce>  0x0000000000000000

But when stealing, everything is fine.
The agent seems fine as well:
for mirroring:
2022-12-16T13:03:56.522522Z  INFO ThreadId(01) mirrord_agent: agent ready
2022-12-16T13:03:57.567311Z  WARN ThreadId(14) mirrord_agent::outgoing::udp: interceptor_task -> no messages left
2022-12-16T13:03:57.567396Z  WARN ThreadId(13) mirrord_agent::outgoing: interceptor_task -> no messages left
2022-12-16T13:04:23.001065Z  WARN ThreadId(20) mirrord_agent::outgoing: interceptor_task -> no messages left
2022-12-16T13:04:23.001486Z  WARN ThreadId(21) mirrord_agent::outgoing::udp: interceptor_task -> no messages left

for stealing:
2022-12-16T13:01:44.877298Z  INFO ThreadId(01) mirrord_agent: agent ready
2022-12-16T13:01:46.205931Z  WARN ThreadId(13) mirrord_agent::outgoing: interceptor_task -> no messages left
2022-12-16T13:01:46.205938Z  WARN ThreadId(14) mirrord_agent::outgoing::udp: interceptor_task -> no messages left
2022-12-16T13:02:10.722245Z  WARN ThreadId(21) mirrord_agent::outgoing::udp: interceptor_task -> no messages left
2022-12-16T13:02:10.722445Z  WARN ThreadId(20) mirrord_agent::outgoing: interceptor_task -> no messages left
2022-12-16T13:02:40.741610Z  INFO ThreadId(01) mirrord_agent: main -> mirrord-agent `start` exiting successfully.

@MidasLamb Thanks!
We're working on it and will let you know once we have progress.

@aviramha , great thanks!
I've also tried mirrord on a more complex program now but that segfaults before entering main:
SIGSEGV: segmentation violation
PC=0x7f52d486057d m=0 sigcode=1

goroutine 1 [syscall, locked to thread]:
syscall.Syscall(0x48, 0x0, 0x3, 0x0)

Debugging locally works fine. Not sure if these two would be related or not?

can you try 3.15.2?

For me it is also not working. I am using the GoLand plugin and a simpel fmt.Println("Hello, world.") example as described in the first post.
On reaching the breakpoint program just hangs without actually entering the debugger in the IDE. It is independent of the mirrord config (steal vs mirror).
The console output does not show anything:
API server listening at: <IP_ADDRESS>:58564
debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-14<IP_ADDRESS>
 for arm64.
Got a connection, launched process /private/var/folders/lb/y5b0sgds5nv7z_vr4y9z68kc0000gn/T/GoLand/___1go_build_playground_http (pid = 96919).

I am using Plugin version 3.16.2

For me it is also not working. I am using the GoLand plugin and a simpel fmt.Println("Hello, world.") example as described in the first post.
On reaching the breakpoint program just hangs without actually entering the debugger in the IDE. It is independent of the mirrord config (steal vs mirror).
The console output does not show anything:
API server listening at: <IP_ADDRESS>:58564
debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-14<IP_ADDRESS>
 for arm64.
Got a connection, launched process /private/var/folders/lb/y5b0sgds5nv7z_vr4y9z68kc0000gn/T/GoLand/___1go_build_playground_http (pid = 96919).

I am using Plugin version 3.16.2

Very weird - I managed to reproduce this. Can you open a new issue for this as it's probably different bug than the one in this issue?

can you try 3.15.2? I think we fixed the issue with mirroring in #875

Thanks for the work and sorry for the delay! I've tried with version 3.17.0 now, and the segfault still occurs for the complex program, both for mirror and steal.
The debug console log:
SIGSEGV: segmentation violation
PC=0x7faba5b532dd m=0 sigcode=1

goroutine 1 [syscall, locked to thread]:
syscall.Syscall(0x48, 0x0, 0x3, 0x0)
	/usr/lib/go/src/syscall/syscall_linux.go:68 +0x4b fp=0xc0000d59b8 sp=0xc0000d5940 pc=0x908eab
internal/syscall/unix.IsNonblock(0x0)
	/usr/lib/go/src/internal/syscall/unix/nonblocking.go:16 +0x45 fp=0xc0000d5a28 sp=0xc0000d59b8 pc=0x936f05
os.NewFile(0x0, {0x450fc52, 0xa})
	/usr/lib/go/src/os/file_unix.go:103 +0x4c fp=0xc0000d5a98 sp=0xc0000d5a28 pc=0x9511ac
os.init()
	/usr/lib/go/src/os/file.go:66 +0x1e8 fp=0xc0000d5ac0 sp=0xc0000d5a98 pc=0x958ac8
runtime.doInit(0x6021520)
	/usr/lib/go/src/runtime/proc.go:6329 +0x132 fp=0xc0000d5bf0 sp=0xc0000d5ac0 pc=0x850b92
runtime.doInit(0x601b740)
	/usr/lib/go/src/runtime/proc.go:6306 +0x79 fp=0xc0000d5d20 sp=0xc0000d5bf0 pc=0x850ad9
runtime.doInit(0x601e920)
	/usr/lib/go/src/runtime/proc.go:6306 +0x79 fp=0xc0000d5e50 sp=0xc0000d5d20 pc=0x850ad9
runtime.doInit(0x602dc20)
	/usr/lib/go/src/runtime/proc.go:6306 +0x79 fp=0xc0000d5f80 sp=0xc0000d5e50 pc=0x850ad9
runtime.main()
	/usr/lib/go/src/runtime/proc.go:233 +0x199 fp=0xc0000d5fe0 sp=0xc0000d5f80 pc=0x843739
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000d5fe8 sp=0xc0000d5fe0 pc=0x876701

goroutine 2 [force gc (idle)]:
runtime.gopark(0x45fdca8, 0x6108ee0, 0x11, 0x14, 0x1)
	/usr/lib/go/src/runtime/proc.go:363 +0xfd fp=0xc000092f88 sp=0xc000092f58 pc=0x843b9d
runtime.goparkunlock(0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:369 +0x2a fp=0xc000092fb8 sp=0xc000092f88 pc=0x843c2a
runtime.forcegchelper()
	/usr/lib/go/src/runtime/proc.go:302 +0xa5 fp=0xc000092fe0 sp=0xc000092fb8 pc=0x8439c5
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000092fe8 sp=0xc000092fe0 pc=0x876701
created by runtime.init.6
	/usr/lib/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x45fdca8, 0x6109d00, 0xc, 0x14, 0x1)
	/usr/lib/go/src/runtime/proc.go:363 +0xfd fp=0xc000093768 sp=0xc000093738 pc=0x843b9d
runtime.goparkunlock(0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:369 +0x2a fp=0xc000093798 sp=0xc000093768 pc=0x843c2a
runtime.bgsweep(0x0?)
	/usr/lib/go/src/runtime/mgcsweep.go:278 +0x98 fp=0xc0000937c8 sp=0xc000093798 pc=0x82b5d8
runtime.gcenable.func1()
	/usr/lib/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000937e0 sp=0xc0000937c8 pc=0x81f986
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000937e8 sp=0xc0000937e0 pc=0x876701
created by runtime.gcenable
	/usr/lib/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x45fdca8, 0x610d980, 0xd, 0x14, 0x2)
	/usr/lib/go/src/runtime/proc.go:363 +0xfd fp=0xc000093f48 sp=0xc000093f18 pc=0x843b9d
runtime.goparkunlock(0x486ec08?, 0x1?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:369 +0x2a fp=0xc000093f78 sp=0xc000093f48 pc=0x843c2a
runtime.(*scavengerState).park(0x610d980)
	/usr/lib/go/src/runtime/mgcscavenge.go:389 +0x4b fp=0xc000093fa0 sp=0xc000093f78 pc=0x82926b
runtime.bgscavenge(0x0?)
	/usr/lib/go/src/runtime/mgcscavenge.go:617 +0x45 fp=0xc000093fc8 sp=0xc000093fa0 pc=0x829845
runtime.gcenable.func2()
	/usr/lib/go/src/runtime/mgc.go:179 +0x26 fp=0xc000093fe0 sp=0xc000093fc8 pc=0x81f926
runtime.goexit()
	/usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000093fe8 sp=0xc000093fe0 pc=0x876701
created by runtime.gcenable
	/usr/lib/go/src/runtime/mgc.go:179 +0xaa

rax    0xffffffffffffffda
rbx    0xffffffffffffffda
rcx    0x7faba5b53298
rdx    0x0
rdi    0x0
rsi    0xc0000d58f0
rbp    0xc0000d5930
rsp    0xc0000d58e8
r8     0x0
r9     0x7faba5b52f82
r10    0x0
r11    0x212
r12    0x48
r13    0x0
r14    0x0
r15    0x3
rip    0x7faba5b532dd
rflags 0x10202
cs     0x33
fs     0x0
gs     0x0

Thanks for the update.
Does this happen every time? if so, does it happen on the same step?
Can you share what happens in that step?

Every time I've tested today (around 10 times) it happens, I've got a breakpoint on the first statement in main, but the segfault occurs before I hit that breakpoint

Also, can you share the dependencies used in that project? if it happens before main, I assume some init logic in those modules trigger it, so it might be useful for us to use for reproducing.

doing mirrord exec go run . works, am currently trying to make it work with dlv, but having some issues connecting to the debugger (also when running locally, I'll let you know once I get some more info for that).
But with mirrord exec --fs-mode read go run . it still seems to read from the local disk rather then from the pod (there is a config file that is mounted into the pod that it can't find, however I can list my own home directory succesfully)

Regarding the second point - read is the default mode so no need to specify that.
We have default overrides for local/remove - i.e some paths are read locally by default and needs to be overriden.
Can you try to create a mirrord.json file, and use mirrord exec -f mirrord.json with that file?
The file should contain the following (you can change it as you wish besides the fs part :)):
{
    "accept_invalid_certificates": false,
    "feature": {
        "network": {
            "incoming": "mirror",
            "outgoing": true
        },
        "fs": {
          "mode": "read",
          "read_only": ["/tmp/foo*+"]
        },
        "env": true
    }
}

Even with the fs object, it still can't find the file :/

I'll book a slot, but taking a quick look it'll probably be next week!
From the command line I've been running it with go run, however when I first do go build and then try to run it with mirrord I again get the segmentation fault:
SIGSEGV: segmentation violation
PC=0x7f9070b532dd m=0 sigcode=1

goroutine 1 [syscall, locked to thread]:
syscall.Syscall(0x7f90706a4108?, 0x10?, 0x544c760?, 0xc000040210?)
        /usr/lib/go/src/syscall/syscall_linux.go:68 +0x27 fp=0xc0000aba30 sp=0xc0000ab9c0 pc=0x8c9407
internal/syscall/unix.IsNonblock(0xc0000aba88?)
        /usr/lib/go/src/internal/syscall/unix/nonblocking.go:16 +0x2d fp=0xc0000aba60 sp=0xc0000aba30 pc=0x8e23cd
os.NewFile(0xc0000abad8?, {0x35fa10f, 0xa})
        /usr/lib/go/src/os/file_unix.go:103 +0x28 fp=0xc0000aba98 sp=0xc0000aba60 pc=0x8f25e8
os.init()
        /usr/lib/go/src/os/file.go:66 +0x1e5 fp=0xc0000abac0 sp=0xc0000aba98 pc=0x8f6645
runtime.doInit(0x535f500)
        /usr/lib/go/src/runtime/proc.go:6329 +0x126 fp=0xc0000abbf0 sp=0xc0000abac0 pc=0x84a1c6
runtime.doInit(0x5359720)
        /usr/lib/go/src/runtime/proc.go:6306 +0x71 fp=0xc0000abd20 sp=0xc0000abbf0 pc=0x84a111
runtime.doInit(0x535c900)
        /usr/lib/go/src/runtime/proc.go:6306 +0x71 fp=0xc0000abe50 sp=0xc0000abd20 pc=0x84a111
runtime.doInit(0x536bc00)
        /usr/lib/go/src/runtime/proc.go:6306 +0x71 fp=0xc0000abf80 sp=0xc0000abe50 pc=0x84a111
runtime.main()
        /usr/lib/go/src/runtime/proc.go:233 +0x1d3 fp=0xc0000abfe0 sp=0xc0000abf80 pc=0x83cdd3
runtime.goexit()
        /usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000abfe8 sp=0xc0000abfe0 pc=0x86ee01

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/lib/go/src/runtime/proc.go:363 +0xd6 fp=0xc000098fb0 sp=0xc000098f90 pc=0x83d1d6
runtime.goparkunlock(...)
        /usr/lib/go/src/runtime/proc.go:369
runtime.forcegchelper()
        /usr/lib/go/src/runtime/proc.go:302 +0xad fp=0xc000098fe0 sp=0xc000098fb0 pc=0x83d06d
runtime.goexit()
        /usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000098fe8 sp=0xc000098fe0 pc=0x86ee01
created by runtime.init.6
        /usr/lib/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/lib/go/src/runtime/proc.go:363 +0xd6 fp=0xc000099790 sp=0xc000099770 pc=0x83d1d6
runtime.goparkunlock(...)
        /usr/lib/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
        /usr/lib/go/src/runtime/mgcsweep.go:278 +0x8e fp=0xc0000997c8 sp=0xc000099790 pc=0x82792e
runtime.gcenable.func1()
        /usr/lib/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000997e0 sp=0xc0000997c8 pc=0x81c506
runtime.goexit()
        /usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000997e8 sp=0xc0000997e0 pc=0x86ee01
created by runtime.gcenable
        /usr/lib/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc00005a070?, 0x39bce80?, 0x1?, 0x0?, 0x0?)
        /usr/lib/go/src/runtime/proc.go:363 +0xd6 fp=0xc000099f70 sp=0xc000099f50 pc=0x83d1d6
runtime.goparkunlock(...)
        /usr/lib/go/src/runtime/proc.go:369
runtime.(*scavengerState).park(0x544b960)
        /usr/lib/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc000099fa0 sp=0xc000099f70 pc=0x8259d3
runtime.bgscavenge(0x0?)
        /usr/lib/go/src/runtime/mgcscavenge.go:617 +0x45 fp=0xc000099fc8 sp=0xc000099fa0 pc=0x825fa5
runtime.gcenable.func2()
        /usr/lib/go/src/runtime/mgc.go:179 +0x26 fp=0xc000099fe0 sp=0xc000099fc8 pc=0x81c4a6
runtime.goexit()
        /usr/lib/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000099fe8 sp=0xc000099fe0 pc=0x86ee01
created by runtime.gcenable
        /usr/lib/go/src/runtime/mgc.go:179 +0xaa

rax    0xffffffffffffffda
rbx    0xffffffffffffffda
rcx    0x7f9070b53298
rdx    0x0
rdi    0x0
rsi    0xc0000ab970
rbp    0xc0000ab9b0
rsp    0xc0000ab968
r8     0x0
r9     0x7f9070b52f82
r10    0x0
r11    0x216
r12    0x48
r13    0x0
r14    0x0
r15    0x3
rip    0x7f9070b532dd
rflags 0x10206
cs     0x33
fs     0x0
gs     0x0

running file on the built binary gives:
pluglet-golang-zaza: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=dfddfb078c60ffbaac416b394e1cd02f7839b704, for GNU/Linux 4.4.0, with debug_info, not stripped

Debugging this deeper, this is most likely a init function being called.
We found an issue with one of the syscall trampoline cases where the arguments got corrupt but still segfault on return. Waiting for dependencies list to be able to reproduce locally.

We managed to create a minimal reproducible example - this happens when importing specific modules.
package main

import _ "rogchap.com/v8go"
import _ "go.kuoruan.net/v8go-polyfills"
import "fmt"
import "os"

func main() {
    fmt.Println("asdsad")
    }

Update: Digging further, It seems that r14 register gets clobbered when Frida trampoline returns for us. This r14 holds the g variable which is null when caller checks. Not sure why it happens here and how to solve yet.

Fixed with #948


iOS status bar text color looks incorrect

The status bar text color logic recently changed and doesn't look correct. Screenshots below from the starter project. I've noticed the issue in the Hamilton app where white text will display in the status bar when the content is also light-colored so it seems like the logic is inverted.
Old:

**New:

**
flutter doctor -v
[✓] Flutter (Channel master, v0.4.3, on Mac OS X 10.13.4 17E202, locale en-US)
    • Flutter version 0.4.3 at /Users/albertlardizabal/dev/flutter
    • Framework revision f086a45f82 (12 hours ago), 2018-05-11 00:45:32 -0700
    • Engine revision 9ae10ef702
    • Dart version 2.0.0-dev.53.0.flutter-e6d7d67f4b

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/albertlardizabal/Library/Android/sdk
    • Android NDK at /Users/albertlardizabal/Library/Android/sdk/ndk-bundle
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.3, Build version 9E145
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 24.2.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Community Edition (version 2018.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 24.2.2
    • Dart plugin version 181.4892.1

I broke this recently when I started working on platform themes.  Will update with a fix shortly

Will close when this is rolled into the framework

@jonahwilliams - This is back. Just took a look at SystemChrome and StatusBarBrightness looks inverted.

☆ flutter doctor -v
[✓] Flutter (Channel master, v0.5.6-pre.67, on Mac OS X 10.13.5 17F77, locale en-US)
    • Flutter version 0.5.6-pre.67 at /Users/albertlardizabal/dev/flutter
    • Framework revision 783a278956 (6 hours ago), 2018-06-25 16:12:06 +0200
    • Engine revision 549c855e89
    • Dart version 2.0.0-dev.63.0.flutter-4c9689c1d2

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/albertlardizabal/Library/Android/sdk
    • Android NDK at /Users/albertlardizabal/Library/Android/sdk/ndk-bundle
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 25.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Community Edition (version 2018.1.5)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 25.0.2
    • Dart plugin version 181.4892.1

@jonahwilliams we aren't creating our own system chrome values, it just seems like they have swapped.  Try this sample main.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
      if (_counter % 2 == 0) {
        /// Intended for applications with a dark background.
        SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
      } else {
        /// Intended for applications with a light background.
        SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(widget.title),
        backgroundColor: _counter % 2 == 0 ? new Color(0xFF222222) : new Color(0xFFEEEEEE),
      ),
      body: new Center(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            new Text(
              _counter % 2 == 0 ?
              'Using SystemUiOverlayStyle.light intended for applications with a dark background' :
              'Using SystemUiOverlayStyle.dark intended for applications with a light background',
              textAlign: TextAlign.center,
            ),
          ],
        ),
      ),
      floatingActionButton: new FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: new Icon(Icons.add),
      ),
    );
  }
}

Shoot. I am terribly sorry for breaking this again, I have a PR in progress
to fix it once again.
On Mon, Jun 25, 2018 at 2:18 PM, KevinTheGray<EMAIL_ADDRESS>wrote:

@jonahwilliams https://github.com/jonahwilliams we aren't creating our
own system chrome values, it just seems like they have swapped. Try this
sample main.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
if (_counter % 2 == 0) {
/// Intended for applications with a dark background.
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
} else {
/// Intended for applications with a light background.
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
}
});
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
backgroundColor: _counter % 2 == 0 ? new Color(0xFF222222) : new Color(0xFFEEEEEE),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
new Text(
_counter % 2 == 0 ?
'Using SystemUiOverlayStyle.light intended for applications with a dark background' :
'Using SystemUiOverlayStyle.dark intended for applications with a light background',
textAlign: TextAlign.center,
),
],
),
),
floatingActionButton: new FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: new Icon(Icons.add),
),
);
}
}
[image: image-1-2]
https://user-images.githubusercontent.com/9346834/41876271-46683cc6-789b-11e8-8c35-104327a7930a.jpg
[image: image-2]
https://user-images.githubusercontent.com/9346834/41876280-4bf6d166-789b-11e8-8226-d3b3055306ae.jpg
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/17523#issuecomment-400098829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIjzCj88AH1G-t1lgGRE95tQbrYED3S8ks5uAVOVgaJpZM4T8CD2
.

Fixed again in https://github.com/flutter/flutter/pull/18808


Facebook Image Not Loading while clicking on 'view full size'

[x] I have read the README
[x] I have already searched for the same problem
[x] I have read and done the setup for Android: IMPORTANT Note for Android and iOS and IMPORTANT Note for Android
[x] I have read and done the setup for iOS: IMPORTANT Note for Android and iOS and IMPORTANT Note for iOS
[x] I have ran the sample app and it does not work there

Environment

Technology
Version

Flutter version
2.0.1

Plugin version
Dart 2.12.0

Android version
SDK 29 (Android 9)

iOS version

Xcode version

Device information:
Redmi Note 5 Pro
Description
Whenever clicking to see in full size, returning a blank screen with the below error.
The error location showing is 'flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.1.0+4/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java', line 569
Expected behavior:
Current behavior:
Steps to reproduce

This
Than that
Then

Images
Stacktrace/Logcat
java.lang.IllegalArgumentException: width and height must be > 0
W/System.err( 1891):    at android.graphics.Bitmap.createBitmap(Bitmap.java:1033)
W/System.err( 1891):    at android.graphics.Bitmap.createBitmap(Bitmap.java:1000)
W/System.err( 1891):    at android.graphics.Bitmap.createBitmap(Bitmap.java:950)
W/System.err( 1891):    at android.graphics.Bitmap.createBitmap(Bitmap.java:911)
W/System.err( 1891):    at com.pichillilorenzo.flutter_inappwebview.in_app_webview.InAppWebView$8.run(InAppWebView.java:569)
W/System.err( 1891):    at android.os.Handler.handleCallback(Handler.java:873)
W/System.err( 1891):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1891):    at android.os.Looper.loop(Looper.java:201)
W/System.err( 1891):    at android.app.ActivityThread.main(ActivityThread.java:6810)
W/System.err( 1891):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 1891):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
W/System.err( 1891):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

Please, post a code example in order to reproduce this error

Please, post a code example in order to reproduce this error. Probably you are taking the screenshot too early from the webview

I have just checked out, the same error persist in your own app also. 'Flutter Browser' . Hope you can reproduce from there easily

Nope, I'm not able to reproduce that. I can open the image full screen without problems.
Please post steps and code to reproduce that. Also, make a screen recording to better understand your scenario.
However, it seems you want to take a screenshot of the webview (the error/warning is coming from that native Android method).
As the official doc says, the takeScreenshot method returns null if it wasn't be able to take it.
So, in your case, that method is returning null because probably your webview is not drawn yet, so it isn't ready enough to take it.
In fact, from the warning message, we know that the width and/or the height of the native WebView still 0 at that time.
If you need to take a screenshot, you can take it, for example, on the onLoadStop event.
If you can't provide any other useful information, then I cannot help you more than that.

Nope, I'm not able to reproduce that. I can open the image full screen without problems.
Please post steps and code to reproduce that. Also, make a screen recording to better understand your scenario.
However, it seems you want to take a screenshot of the webview (the error/warning is coming from that native Android method).
As the official doc says, the takeScreenshot method returns null if it wasn't be able to take it.
So, in your case, that method is returning null because probably your webview is not drawn yet, so it isn't ready enough to take it.
In fact, from the warning message, we know that the width and/or the height of the native WebView still 0 at that time.
If you need to take a screenshot, you can take it, for example, on the onLoadStop event.
If you can't provide any other useful information, then I cannot help you more than that.

Yes you got it right, the problem is with loading the page. Actually I was talking the screenshot immediately after loadstop. But this didn't work during onCreateWindow event. So now I am pushing and poping a local page to give some time to load the new page properly, and it is now working.


Question

void Main()
{
	Parsers.MyText.Parse("'text'").Dump();
	//Fails Parsers.ManyMyText.Parse("").Dump();
	//Fails Parsers.ManyMyText.Parse("'text'").Dump();
	//Fails Parsers.ManyMyText.Parse("'text''text'").Dump();
}

public static class Parsers
{
	public static Parser<string> MyText = Terms.String(StringLiteralQuotes.SingleOrDouble).Then(s => s.ToString()).ElseError("Text");
	public static Parser<List<string>> ManyMyText = ZeroOrMany(MyText);
}

The ZeroOrMany works if I remove ElseError() from the MyText parser. But if you want to provide specific error informaton on whether MyText is valid or not, how are you supposed to do it?

MyText is valid or not

I need more details. Not sure if you are trying to validate the content of the string. If so you could throw a ParseException inside the Then lambda
Otherwise it's ambiguous what errors you could catch, because if you put .ElseError on MyText you will always have an error with ZeroOrMany because this one will always end on a MyText that is not found (or EOF).
If you want at least one MyText, I would use OneOrMany(MyText).ElseError().

Maybe I should try and explain this in another way.
Say you have a HTML tag, which can have zero or many attributes.
If the attribute was not specified correctly I would like to end up with a parse error on that specific attribute.
I made the example above just to simplify the problem, where each string literal is just substituted for an attribute parser.
So I'd like to accept any number of attributes if they exist, but in case one of them doesn't parse fully, I'd like to provide an error message on that specific attribute.
So I thought ElseError was the correct way of introducing the error handling.
Does it makes sense, or should I try to create a better example.


Add documentation for API server health checks

This PR adds some documentation to the different "health" endpoints of the Kubernetes API server.
Initial implementation PR: https://github.com/kubernetes/kubernetes/pull/78458
Fixes: https://github.com/kubernetes/website/issues/20888

/sig api-machinery

Thanks for your time and your comments. I will go over them in the next days.

Thanks for the reminder. I will finish this today/tomorrow.

@logicalhan did you want to add anything here?

It looks like a reasonable starting point to me :)

I've also commented on whether or not these health check endpoints are aimed at human or machine clients. My guess, without looking at any k/kubernetes source code, is that the HTTP response code can be relied on but the rest of the response is not meant for machine parsing. It'd be good to clarify that.

Yeah that's about right. 200 means it's healthy/live/ready. This is going to be consumed mostly by the kubelet (or whatever thing you have that monitors your apiserver) which is going to decide based on the response code. The verbose flag is specifically intended to aid human debugging.
It is also probably worth documenting that individual health checks also expose http endpoints which are automatically exposed when the individual health check is registered to the corresponding health endpoint. In other words for each health check you see when you curl apiserver/livez:
[+]ping ok
[+]log ok
[+]etcd ok
[+]poststarthook/start-kube-apiserver-admission-initializer ok
[+]poststarthook/generic-apiserver-start-informers ok
[+]poststarthook/start-apiextensions-informers ok
[+]poststarthook/start-apiextensions-controllers ok
[+]poststarthook/crd-informer-synced ok
[+]poststarthook/bootstrap-controller ok
[+]poststarthook/rbac/bootstrap-roles ok
[+]poststarthook/scheduling/bootstrap-system-priority-classes ok
[+]poststarthook/start-cluster-authentication-info-controller ok
[+]poststarthook/start-kube-aggregator-informers ok
[+]poststarthook/apiservice-registration-controller ok
[+]poststarthook/apiservice-status-available-controller ok
[+]poststarthook/kube-apiserver-autoregistration ok
[+]autoregister-completion ok
[+]poststarthook/apiservice-openapi-controller ok```

You are also provided `apiserver/livez/<healthcheck-name>` (which is the bit after the square brackets but before the ok). This should not be considered something you can depend on however and is exposed for human debugging. This is true for **all** health endpoints (i.e. livez,readyz,healthz).

@sftim i reworked the site and integrated your feedback. Could you review it again?

I'm afraid we removed capture shortcodes.
@johscheuer can you rebase and revise to match?

/hold
following https://github.com/kubernetes/website/pull/21185#issuecomment-643662883
This does need a rebase.

Rebased
/hold cancel

@kubernetes/sig-api-machinery-pr-reviews do you have any more feedback on https://github.com/kubernetes/website/pull/21185#discussion_r441834043 and the following comments?

Is there anything I can help with?

@johscheuer do you perhaps have a suggestion for someone who'd be a good choice for technical reviewer? If so, we can ask them to take a look.

do you perhaps have a suggestion for someone who'd be a good choice for technical reviewer?

@logicalhan has certainly most insight into this.

@johscheuer please revise in line with https://github.com/kubernetes/website/pull/21185#discussion_r441834043

@johscheuer when you get a chance can you please look at this? ☝

I make the requested changes in the next few days!

Sorry for the delay I added the feature state information.

/lgtm
/approve


Support new @babel/preset-react automatic runtime

As the title says, feature request.
{
  "plugins": [
    [
      "@babel/plugin-transform-react-jsx",
      {
        "runtime": "automatic", // defaults to classic
        "importSource": "jsx"
      }
    ]
  ]
}

Refs:
[1] https://babeljs.io/docs/en/babel-preset-react
[2] https://zh-hant.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html

What should we have to do for this?
At least adding snabbdom/jsx-runtime and snabbdom/jsx-dev-runtime modules and exporting jsx and jsxs functions?
Support for fragments is also necessary?

I am not 100% sure, but I don't think support for fragments is required, just exporting a jsx function should be enough.
snabbdom already has that one, so it should not be hard to reexport it from the relevant modules


bug: Custom scalars always interpreted as string [confirmed]

Hi,
Currently it seems like the cosmo router does not handle custom scalars properly.
As an example, our subcharts have a custom scalar type LONG. When router receives a response from subchart including a long typed field, the router fails with following error:
"error":"invalid value type 'number' for path /data/_modelMetadata/modelHcn, expecting string, got: 5160. You can fix this by configuring this field as Int/Float/JSON Scalar" .
In ideal scenario, the router should just passthrough the value without applying any validation.
Apollo gateway handles this without issues.
Related issue: https://github.com/wundergraph/graphql-go-tools/issues/530

Hi @belaczek,
Please could you update your router to 0.19.0 and try again?

It's fixed, thank you!


Fixed typo in TargetType comments

Incoded -> Encoded.

          1 Error

:no_entry_sign:
Any changes to library code need a summary in the Changelog.

  Generated by :no_entry_sign: danger

Thanks a lot for contributing to Moya! I've invited you to join the Moya GitHub organization – no pressure to accept! If you'd like more information on what that means, check out our contributor guidelines and feel free to reach out with any questions.

Thanks! 🎉


the size of ellipsis (...) is wrongly calculated

The ... occupies the size of one char in the display, however, it is actually three bytes wide. So the display gets some problems here.

Related to this bug: #1234

Fixed in 2.1.2317-dev


Error uninstalling virtualbox

General troubleshooting steps

[x] I have retried my command with --force and the issue is still present.
[x] I have checked the instructions for reporting bugs (or making requests) before opening the issue.
[x] None of the templates was appropriate for my issue, or I’m not sure.
[x] I ran brew update-reset && brew update and retried my command.
[x] I ran brew doctor, fixed as many issues as possible and retried my command.
[x] I understand that if I ignore these instructions, my issue may be closed without review.

Description of issue
brew cask zap virtualbox
==> Implied "brew cask uninstall virtualbox"
==> Running uninstall process for virtualbox; your password may be necessary
==> Running uninstall script VirtualBox_Uninstall.tool
Error: uninstall script VirtualBox_Uninstall.tool does not exist.

VirtualBox_Uninstall.tool is on VirtualBox disk image. Thats why uninstall fails. Maybe it should be copied to /usr/bin directory to be able to complete uninstallation?
Output of your command with --verbose --debug
Error: uninstall script VirtualBox_Uninstall.tool does not exist.
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb:199:in `uninstall_script'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb:59:in `block in dispatch_uninstall_directives'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb:56:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/artifact/abstract_uninstall.rb:56:in `dispatch_uninstall_directives'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/artifact/uninstall.rb:7:in `uninstall_phase'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:403:in `block in uninstall_artifacts'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/set.rb:674:in `each'
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/set.rb:674:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:400:in `uninstall_artifacts'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:409:in `zap'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/zap.rb:14:in `block in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/zap.rb:12:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/zap.rb:12:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:35:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:98:in `run_command'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:168:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'
Error: Kernel.exit
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:173:in `exit'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:173:in `rescue in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:156:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'

Output of brew cask doctor
Homebrew-Cask 1.5.3-4-g72aa8f5
caskroom/homebrew-cask (git revision 31c637; last commit 2018-02-09)
==> macOS
10.13.3
==> SIP
Enabled
==> Java
9.0.1
==> Homebrew-Cask Install Location
<NONE>
==> Homebrew-Cask Staging Location
/usr/local/Caskroom
==> Homebrew-Cask Cached Downloads
~/Library/Caches/Homebrew/Cask (9 files, 470.6MB)
==> Homebrew-Cask Taps:
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask (3908 casks)
/usr/local/Homebrew/Library/Taps/nrlquaker/homebrew-personal (5 casks)
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-fonts (1159 casks)
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-versions (178 casks)
==> Contents of $LOAD_PATH
/usr/local/Homebrew/Library/Homebrew/cask/lib
/usr/local/Homebrew/Library/Homebrew
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby/2.3.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby/2.3.0/x86_64-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby/2.3.0/universal-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby/2.3.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby/2.3.0/x86_64-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby/2.3.0/universal-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/x86_64-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/universal-darwin9.0
==> Environment Variables
LC_ALL="en_US.UTF-8"
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/Homebrew/Library/Homebrew/shims/scm"
SHELL="/bin/bash"

Did you uninstall virtualbox before running zap?

No.

Reinstalling and uninstalling it again works fine.


[Feature Request] Allow different font styles

Insomnia Version: 6.3.2
Operating System: macOS

Details
The ability to choose a font for UI and text editor is great, thank you for adding this. I would like to propose a small tweak.
I noticed the fonts I use most often do not show up in the drop-down list.
After some investigation it seems some pre-filtering is done to exclude non-italic and non-regular styles, in general.js.
I imagine this was probably to avoid duplicates in the drop-down list, but as it happens, the font I prefer for my UI, names its regular style Book, and not Regular, and I prefer the Medium/Semibold style for my text editor, and I actually don't have the other weights installed, so I'm out of luck on both counts, the font effectively doesn't exist from Insomnia's perspective.
Is allowing font style to be selected something that could be considered?
Right now, I've hacked my local build as follows, works great:
diff --git a/packages/insomnia-app/app/ui/components/settings/general.js b/packages/insomnia-app/app/ui/components/settings/general.js
index 39328491..67eeaea1 100644
--- a/packages/insomnia-app/app/ui/components/settings/general.js
+++ b/packages/insomnia-app/app/ui/components/settings/general.js
@@ -37,7 +37,6 @@ class General extends React.PureComponent<Props, State> {
   componentDidMount() {
     fontManager.getAvailableFonts(allFonts => {
       const fonts = allFonts
-        .filter(i => i.style.toLowerCase() === 'regular' && !i.italic)
         .sort((a, b) => (a.family > b.family ? 1 : -1));
       this.setState({ fonts });
@@ -256,7 +255,7 @@ class General extends React.PureComponent<Props, State> {
                 <option value="__NULL__">-- System Default --</option>
                 {fonts.map((item, index) => (
                   <option key={index} value={item.family}>
-                    {item.family}
+                    {item.family} {item.style}
                   </option>
                 ))}
               </select>
@@ -288,7 +287,7 @@ class General extends React.PureComponent<Props, State> {
                 <option value="__NULL__">-- System Default --</option>
                 {fonts.filter(i => i.monospace).map((item, index) => (
                   <option key={index} value={item.family}>
-                    {item.family}
+                    {item.family} {item.style}
                   </option>
                 ))}
               </select>

Thoughts?

Correction; this hack is not quite right since the settings only stores the family name, and not the selected style - that would also need to be stored for this to work correctly.

So your change does not modify the weight?
From what you said, it seems like changing the filter to include book may also work?
.filter(i => i.style.toLowerCase() === 'regular' || i.style.toLowerCase() === 'book' && !i.italic)

Can you specify which font you are using so I can test it out?

The UI font is Circular, but this is a commercial LineTo font. If you have access to a Mac, the Bodoni font is also using a style name of Book. Your suggestion works fine here.
The text font is a custom build of Iosevka I did because I don't like the thin rendering of its Regular style. However, the custom build still ends up having a style of Medium, and I don't see a nice workaround for this, because as soon as you include that in the filter, a lot of duplicates will show up in the drop-down, and you'll kind of want to be able to see the style to distinguish them, but this seems like a lot more work for you.

Ya, I think I agree that allowing weight selection is probably too complicated compared to demand. I have gone ahead and added "Book" fonts to the filter though so at least they will show up now 😄


DataLossError (see above for traceback): Invalid size in bundle entry: key global_step; stored size 4; expected size 8

With the estimator rewrite, the type signature of the dual_net remained exactly the same, with one change: global_step is now an int64 instead of an int32. This is causing our existing savedmodels to fail to load with DataLossError. We should attempt to recover gracefully in such situations.

(Also, our published 9x9 models no longer work with latest code for the same reason.

oh noooooooo :sob:  What does 'graceful recovery' look like?  Do we hardcode testing for the global_step conversion?   Backfill all the models?

Hm. Probably a backfill would be the easiest thing to do, although we'll continue to have a long tail of people saying that their code now doesn't work any more. You'd have to backfill the models that people have downloaded to their hard drives, which is a harder problem.
Not sure that we get much control over the model loading process with Estimator, though, so backfilling is probably the only option we have.

if all our docs point to model paths like gs://minigo-pub/v3-9x9/models/... then it's not too bad?
Assuming we backfill, anyone hitting the bug can re-download the model, so maybe we could leave a except tf.DataLossError: print("Go look at this issue on GH and/or redownload this model") around the loading code.

Here is a snippet that fixes the savedmodel. It should be easy enough to script this to update all of our published models. Anybody running into this problem can also run this snippet locally.
import tensorflow as tf
import dual_net

save_file = 'lightning/000199-lightning'
dest_file = 'lightning/000199-lightning-upgrade'
features, labels = dual_net.get_inference_input()
dual_net.model_fn(features, labels, tf.estimator.ModeKeys.PREDICT, dual_net.get_default_hyperparams())
sess = tf.Session()

# retrieve the global step as a python value
ckpt = tf.train.load_checkpoint(save_file)
global_step_value = ckpt.get_tensor('global_step')

# restore all saved weights, except global_step
from tensorflow.python.framework import meta_graph
meta_graph_def = meta_graph.read_meta_graph_file(save_file + '.meta')
stored_var_names = set([n.name
    for n in meta_graph_def.graph_def.node
    if n.op == 'VariableV2'])
print(stored_var_names)
stored_var_names.remove('global_step')
var_list = [v for v in tf.global_variables()
    if v.op.name in stored_var_names]
tf.train.Saver(var_list=var_list).restore(sess, save_file)

# manually set the global step
global_step_tensor = tf.train.get_or_create_global_step()
assign_op = tf.assign(global_step_tensor, global_step_value)
sess.run(assign_op)

# export a new savedmodel that has the right global step type
tf.train.Saver().save(sess, dest_file)

Ok i'll work on fixing all the 9x9 models.

I've validated the snippet works.  I'm going to do an in-place upgrade (i.e., not tacking '-upgraded' on the end) and update all the 9x9 models.
I also verified that the selfplay & evaluate code works with the estimator rewrite (not that i doubted it, but it was a good sanity check on my backfill op :)

This op is running on all the models in gs://minigo-pub/v3-9x9/models

Re-opening -- i haven't fixed the 19 models.


integration-tests: Don't use lo interface for XDP, create some veths instead

Currently, integration tests are attaching XDP programs to lo inteface:
https://github.com/aya-rs/aya/blob/f3262e87bd6ff895537df47fcf5d17c598e564cc/test/integration-test/src/tests/load.rs#L24
That's not a good approach, it's too intrusive, especially if the test fails or if for some reason the XDP program doesn't get unloaded. lo, as well as any already existing NICs, shouldn't be touched.
To test XDP, we should rather create some new, fake veth interfaces, which then we remove after running a test. Such interfaces should be also safe to remove manually if anything goes wrong with cleaning up after the test.

Don't use veths, use dummy interfaces. ip link add dummy0 type dummy

Hi, I have gone through the previous PRs and it seems the pain point is that building up a network env is the most annoying part for this issue (although I am not pretty sure). If that's the case, do we consider building up an integration environment using docker compose? By doing so, we can leverage the network settings to handle this issue.


Interrupt mode support via idlemgr

add idle manager library and test-cne test
The current design in CNDP is 100% polling of the receive ring in AF_XDP
or PMD which means burning core power. The patch adds two parameters to
the jsonc file to control polling idle_timeout and intr_timeout
in thread section.
The idlemgr library handles managing epoll and calling epoll_wait when the
idle_timeout value has been met, then it calls epoll_wait(). The idlemgr
operates on threads, using file descriptors as the method to wakeup a sleeping
thread. The caller needs to add file descriptors to the idlemgr instance and
then call idlemgr_process() with a flag if the thread thinks it is idle or
not.
The first one gives the number of milliseconds to wait for the RX ring to
be idle, then call epoll() with a timeout of intr_timeout. When no Rx traffic
for a given time the idlemgr will call epoll(), which reduces the lcore load to
effectively zero and only waking up when packets arrive or a timeout occurs.
In testing of performance it appears to be very little impact when interrupt
mode is enabled compared to when it is not enabled. Added some counters to help
determine how the new mode is operating.
The idle_timeout value in the jsonc file for given thread is how this feature
is controlled. If not defined or set to zero interrupt mode is disabled. When
set to a non zero value will enable interrupt mode. The intr_timeout value
is only used if idle_timeout is non-zero and will be used in the poll() call
as the timeout value. Each of these values are in milliseconds.
Signed-off-by: Keith Wiles<EMAIL_ADDRESS>

This PR replaces #163 by breaking the single commit into multiple commits for easier review. The #163 will be closed.

Hi keith，from the review points of ZTE engineer, the intr_timeout and idle_timeout values needs to be added from jsonc lports and lport_groups,because they use the Lport parameter not the thread section.
could you say a little more info about  why removed the intr_timeout and idle_timeout parameters from jsonc lports and lport_groups？

The reason is if one thread is managing multiple lports, when one lport becomes idle the thread will go to sleep and starve the other lports. At the xskdev or lport level we can't tell how many lports are managed by the thread, which is why it needed to be moved to the thread level as it contains the lports be handled by the thread.
We also need to be able to manage non-af_xdp lports as well and adding poll() calls in the xskdev driver will not work for all types of lports or multiple lports per thread. If you need the timeout values and not using the thread section the options section could hold the timeout values as this section is mostly user defined.

If you need the timeout values and not using the thread section the options section could hold the timeout values as this section is mostly user defined.

hi keith,
Thank you for your detailed explanation. yes,it is not easy to implement this feature in the lport level.
thanks
Jack

Added the signoff to the commit.


Rename utility to avoid naming collisions

The css utility was meant to be renamed before merging the v3 PR to avoid naming collisions/confusion with the system-components' css prop. This should be considered a bugfix

Codecov Report

Merging #242 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #242   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           5      5
  Lines         184    184
=====================================
  Hits          184    184

Impacted Files
Coverage Δ

src/mixed.js
100% <ø> (ø)

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 0303dee...0ed384a. Read the comment docs.


Chatterbot for non-english language like Arabic and Mandarian

Hi All,
I have a requirement for making a chatbot which supports Arabic and Chinese.
My question is does chatterbot has this capability to understand Chinese and Arabic return required answer?
If not so, is there any way to create our own corpus and train my bot in above language?
Thanks and Regards,
Mukund

Yes absolutely https://github.com/gunthercox/chatterbot-corpus/tree/master/chatterbot_corpus/data/chinese

Thats good! I have seen but how we can customize it? I am looking for providing location assistance using some map API like google API.
Can we make it voice enabled?
Also how can we do same in Arabic language?

@Mukund0007 I can't speak for the Google API, but I'm sure they support a variety of languages.
ChatterBot can be voice-enabled in a number of ways, depending on how you plan you build your application. For example, many browsers support built-in speech-to-text that can be sent to your ChatBot via a web request.


Update Blog “do-bao-phu-mau-chuan-mau-srgb-adobe-rgb-va-dci-p3”

Automatically generated by Netlify CMS

👷 Deploy Preview for chuanmau processing.

Name
Link

🔨 Latest commit
36b045e784efbd7f67d4801cd3ba797fc886189c

🔍 Latest deploy log
https://app.netlify.com/sites/chuanmau/deploys/64c7c3f6ea45df0008827df0


Support validating standalone operations without a known schema

Fixes #629
This adds a compiler.db.validate_standalone_executable(file_id) function that only runs those validations that do not require a schema. Including variable usage, name uniqueness, fragment usage, things like that. I think "standalone" is a decent name but open to bikeshedding.
Also includes a fix for name collisions in executable documents--these actually did not raise an error before.
There are many changes in the test data because this PR sorts the diagnostics by location. There are no changes in the actual diagnostics reported (as test data all uses the validation function that checks against schema.

Oh, this doesn't validate if fragments exist, eg if you write {...doesNotExist}, it doesn't report an error. So that also needs to run in the untyped version of the validations.

Got a bit distracted from this due to the string issues 😇
I'll hopefully complete the other validations that can be done without a type system tomorrow.

Had to refactor the approach a bit to support validating nested selection sets, to support warning on undefined fragments like { a { a { a { a { ...NonExistentFragment } } } } or undefined variables inside directive applications. Instead of passing down a Arc<Vec<VariableDefinition>> i pass a OperationValidationConfig {} which includes the available variables and a flag has_schema that says whether it should check against the schema.


Change .finds to .children to support nested slicks

You can see the branch working here: http://jsfiddle.net/fmo50w7n/125/
You can see the current release working here: http://jsfiddle.net/fmo50w7n/127/
To see the animation break due to slick-center not being applied correctly, navigate from slide 1 to slide 6

Looks good to go! I faced that problem and fixed it by destorying and reinitalizing the nested slider everytime the parent change. This will fix it.
Can you provide a jsfiddle with an example so that @kenwheeler can have a quick look at it working?

Thanks @ahmadalfy

@jkbailey I'm having an issue where a swipe gesture on my nested slick slider also swipes the parent slick slider. I wanted it so that the parent won't slide if I swipe left/right on the child. Will your changes also fix that issue ?


Augmented Image - 3D model is whole black (problem with texture?). How to enable rotation and zooming? VideoNode - status?

Hi,
I`m trying to use this sample code:
https://github.com/SceneView/sceneview-android/blob/2230c5ab996dde289bd77dcf075a2fb1120356b5/samples/ar-augmented-image/src/main/java/io/github/sceneview/sample/araugmentedimage/MainFragment.kt#L30
in the app. Implement basic Augmented images. But If I try the sample code, then it shows the 3D model of the rabbit. But the whole model is black (I also tried a different model but the result was the same).
And how can we enable the rotation and zooming of the model by the gesture?
And do you have some status about VideoNode? It can also be a very cool feature (with a big WOW effect)
Thank you for your best library!

I am also looking good example for video node if anyone have, I tried my self but I cant able to create proper video node.


Add a redirect at the top level

Without this redirect, the server generates a directory listing for https://docs.swift.org/swift-book/documentation/ and you have to click through to the actual content.
This page uses a reduced version of the existing redirect page, with the majority of the JavaScript removed.  Because we never hosted any pre-DocC content at this URL, there's no reason to inspect the fragment and do a more specific redirect.  There aren't any old URLs that point here for us to avoid breaking.
Fixes: rdar://137038334

Reviewed with & approved by Robert Olsen offline.


[Hub] Error on product page after creating product variants

Lunar version: 0.1.6
Laravel Version: 9.51.0
PHP Version: 8.1.13

Expected Behaviour:
Access the product page : /hub/products/1
Actual Behaviour:
Request return an error 500 :

Steps To Reproduce:
Theses steps were done on the hub's gui, not through the code.

Create a new product
Create first two product variant attributes /hub/settings/attributes/productvariant
Acces to the previously product created : /hub/products/{id}

did you recently added a new currency and set as default?

Hello @wychoong,
Indeed, added an '€' currency and setted as default between the steps.
As the error was concerning the product variant component I didn't think it was linked.

@glennjacobs this sort of related with the issue brought up earlier in #502

I also faced the issue when i created a product and after that created a new currency and set as default.
After that i remove the product and currency and modified USD currency and kept only one currency

This should no longer be an issue in v1


Fix Keycode and Scancode

Adds all the SDL3 keycodes and scancodes.
Most of this was done with help from this Python script. It reads in a file with the symbol names, one per line, and converts it to a suitable Rust identifier. Extracting the symbol names in that manner can be done with enough find-and-replace on the original headers.
import sys
from pathlib import Path
import caseconverter as cconv
import re

src_path = Path(sys.argv[1])
assert src_path.exists()

# just a bunch of regexes that add spaces in the right places
REPLACEMENT_TABLE: list[(str, str)] = [
    ("(SDLK|SDL_SCANCODE)_", ""),
    ("LEFT(?=[A-Z])", "LEFT_"),
    ("RIGHT(?=[A-Z])", "RIGHT_"),
    ("(?<=[A-Z])LOCK", "_LOCK"),
    ("PRINTSCREEN", "PRINT_SCREEN"),
    ("PAGE(?=[A-Z])", "PAGE_"),
    ("NONUS(?=[A-Z])", "NON_US_"),
    ("ALTERASE", "ALT_ERASE"),
    ("(?<=[A-Z])CLEAR", "_CLEAR"),
    ("CLEAR(?=[A-Z])", "CLEAR_"),
    ("(?<=[A-Z])SEL", "_SEL"),
    ("(?<=[A-Z])SEPARATOR", "_SEPARATOR"),
    ("DBL(?=[A-Z])", "DBL_"),
    ("CURRENCY(?=[A-Z])", "CURRENCY_"),
    ("VERTICALBAR", "VERTICAL_BAR"),
    ("MEM(?=[A-Z])", "MEM_"),
    ("PLUSMINUS", "PLUS_MINUS"),
    ("([LR])(CTRL|SHIFT|ALT|GUI)", "\\1_\\2"),
    ("VOLUME(?=[A-Z])", "VOLUME_"),
    ("EQUALSAS400", "EQUALS_AS_400"),
    ("SYSREQ", "SYS_REQ"),
    ("SOFT(?=[A-Z])", "SOFT_"),
    ("ENDCALL", "END_CALL")
]

def conv_symbol(s_in: str) -> str:
    s = s_in
    for (p, r) in REPLACEMENT_TABLE:
        s = re.sub(p, r, s)

    # convert to PascalCase and fix identifiers
    s = cconv.pascalcase(s, delimiters="_")
    if s[0].isdigit():
        s = "_" + s
    return s

symbols = None
with open(src_path, "r") as srcfile:
    symbols = [line.strip() for line in srcfile]

for cs in symbols:
    rs = conv_symbol(cs)
    # print(f"{rs} = {cs}.0,")
    # print(f"{rs} = {cs} as i32,")
    print(f"{cs} => {rs},")

Sweet!


Equation (1) in the paper

I think there is an issue with range of i in equation (1)
It should be i = 0,1,...,[T/C]

Thank you for your interest,  we have fixed it in the new version of the paper.


Update scalafmt-core to 3.0.6

Updates org.scalameta:scalafmt-core from 3.0.5 to 3.0.6.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, semver-patch

Codecov Report

Merging #564 (9b6b16f) into master (418ad78) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #564   +/-   ##
=======================================
  Coverage   62.54%   62.54%
=======================================
  Files          39       39
  Lines        1303     1303
  Branches        7        7
=======================================
  Hits          815      815
  Misses        488      488

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 418ad78...9b6b16f. Read the comment docs.


public post call with updated acl => visibility

Gives us a public POST /posts call that returns anything that has "PUBLIC" visibility. Also exception handling for marshalling in DRF exceptions into a format we expect in the frontend.

:+1:

:+1:


[Wip] Add support test262 $262 global object support

Few test-cases in test262 uses a $262 object to run a few method (for example detachedArrayBuffer)
JerryScript-DCO-1.0-Signed-off-by: bence gabor kis<EMAIL_ADDRESS>

@galpeter  Thank your for the review! I updated the pull request based on your review.

Please rebase the PR.

Please close already resolved reviews with "Resolve conversation" button.


issue with sol::resolve ?

Hi,
I'm trying to bind a lib where there are overload of the same function but sol::resolve seems to fail from time to time.
Here is an simplified example that reproduces the issue.
class Foo2
{
  Foo2();

};

class Foo
{
public:
  Foo() noexcept {}
  inline void blend(const Foo2 src) noexcept
  {
  }
  template <class Pixel>
  inline void blend(const Pixel& src, uint32 extraAlpha) noexcept
  {
  }
};

 module.new_usertype<Foo>("Foo"
                           , sol::constructors<Foo()>()
                           , sol::call_constructor, sol::constructors<Foo()>()
                           , "blend", sol::resolve<void(const Foo2)>(&Foo::blend)
                           );

The error in VS2017 is the following:
error C2664: 'Sig (__cdecl *sol::resolve<void(const Foo2)>(Sig (__cdecl *)))(const Foo2)': cannot convert argument 1 from 'overloaded-function' to 'void (__cdecl *)(const Foo2)'
1>        with
1>        [
1>            Sig=void (const Foo2)
1>        ]
1> note: None of the functions with this name in scope match the target type

If there are no templated overload in Foo then sol::resolve works fine.
Something I can do ?
Thanks !

  module.new_usertype<Foo>("Foo"
                           , sol::constructors<Foo()>()
                           , sol::call_constructor, sol::constructors<Foo()>()
                           , "blend", static_cast<void (Foo::*)(const Foo2)>(&Foo::blend)
                           );

fixes the issue

The thing is that the function I use resolve with is not the templated one though.

The template has the same name: therefore, it's part of the overload set and cannot be resolved in this fashion without a direct static cast.

don't know if this is possible but it would be great to have some kind of static_assert with cleaner error message when this happens :)

That's impossible.


Custom Task Runtime support

This mostly needs naming & datastructure validation.
The PR includes:

A new runtime type, custom, along with a CustomSpec
API validation, Store indexing, API filters

Both services and tasks can be filtered by runtime. Custom runtimes can be filtered by their custom type (e.g. runtime=plugin for plugins), while built-in types can be filtered by what they are (e.g. runtime=container).
/cc @ehazlett @aaronlehmann @stevvooe

/cc @ijc25

Ping @aluzzardi

Fixed most comments.
The only remaining part is how to name this.
Anyone has suggestions?
Remember it's going to fit here:
message TaskSpec {
  oneof runtime {
    <Something>Spec something;
    ContainerSpec container;
    [...]
  }
}

/cc @ehazlett @aaronlehmann @stevvooe @ijc25 @tiborvass

OpaqueSpec?

ThirdPartyRuntimeSpec?

I think ExtensionRuntimeSpec or ExternalRuntimeSpec are good.

ForeignRuntimeSpec, AlienRuntimeSpec, ResidentAlienRuntimeSpec (sorry :P)
What's wrong with AnyRuntimeSpec ? I also like OpaqueRuntimeSpec except my mind is OCD about the ambiguity of associativity: Opaque-RuntimeSpec vs OpaqueRuntime-Spec :P
Happens to not be a problem with Any, because it doesn't matter whether it's Any-RuntimeSpec or AnyRuntime-Spec. I know this is the weakest argument ever. Other than that, I simply like the simplicity of AnyRuntimeSpec.

ExternalRuntimeSpec sgtm

@stevvooe proposed GenericRuntimeSpec, which I also like.
ExternalRuntimeSpec vs GenericRuntimeSpec everyone?

@aluzzardi I like GenericRuntimeSpec, but I don't know what's wrong with AnyRuntimeSpec which is shorter.

@tiborvass hahah I figured you like AnyRuntimeSpec :)
I'm not too fond - it's like hungarian notation for datatypes.

Lol that must be why I like it then haha 🇭🇺
Alright I give my points to GenericRuntimeSpec
On Fri, Mar 17, 2017 at 5:27 PM Andrea Luzzardi<EMAIL_ADDRESS>wrote:

@tiborvass https://github.com/tiborvass hahah I figured you like
AnyRuntimeSpec :)
I'm not too fond - it's like hungarian notation for datatypes.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/docker/swarmkit/pull/2014#issuecomment-287502075, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAye-6bEpd2MfMP66L_wUeB-3gmaMZIpks5rmyTfgaJpZM4MVCg-
.

Updated to GenericRuntimeSpec and "generic runtime".
Going once, going twice...

Overall LGTM. Left some non-blocking comments.

Addressed the remaining comment. PTAL

Thanks - updated

LGTM

@aluzzardi: Needs a rebase.

Rebased

CI failing - the wrapper types serviceEntry and taskEntry no longer exist

I tried to jedi merge/commit :) Fixing

By the way: in that code, we have a bunch of
	s, ok := obj.(*api.Service)
	if !ok {
		panic("unexpected type passed to FromObject")
	}

I added mine simply as s := obj.(*api.Service) - go will already panic if we cast the wrong object, so I don't see a point of doing a manual check just to panic. Was there a reason?

It's absolutely fine to rely on the implicit panic. This came up here:
https://github.com/docker/swarmkit/pull/2039#discussion_r107043932

I'm going to open a PR to remove those checks just to simplify the code and preempt further questions about why the checks exist.


installation error: Could not build wheels for spacy, which is required to install pyproject.toml-based projects

Hi, I ran into an error when I tried to install Texthero. I already all packages needed such as spacy, gensim, etc. But when installation processed to building wheel for gensim, error showed up:
Failed to build gensim spacy
ERROR: Could not build wheels for spacy, which is required to install pyproject.toml-based projects
I'm wondering if you can help point out in which direction I should be looking at to fix this. Is it pip or the spacy/ gensim is not pyproject.toml-based?
Thanks.

I found this page on python wheels useful.
I think the solution may be different between different OS/pip versions. What worked for me on ubuntu was the command python3 -m pip install --only-binary :all:  --no-cache texthero, because like you I was getting wheels error for dependencies.
Not sure if it helped but I also had to add ~/.local/bin to my $PATH as pip was installing here but I was getting an error this directory wasn't in my $PATH.
Other solutions I've seen include:

updating pip
using a virtual machine

I also get this error when trying to install texthero in Google Colab.


feat: use accountID in App.js

Details

A part of the 'Secure Logins' issue, point 11 (details removal part) and 1 (API part).
Use accountID instead of email/login in App.js.
Fixed Issues

$ https://github.com/Expensify/App/issues/19007
PROPOSAL: https://github.com/Expensify/App/issues/19007#issuecomment-1560558505
Tests

Log in to the app
Open Settings -> Profile (the OpenProfile command is called)
Check if everything works

[x] Verify that no errors appear in the JS console

Offline tests

Same as above
QA Steps

Same as above

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/7771498/edf29ab5-fa0d-429d-88cc-e8a5e1b3ae44

Mobile Web - Chrome
https://github.com/Expensify/App/assets/7771498/6b243d18-e1c0-415f-9a18-5adb7f3f6ead

Mobile Web - Safari
https://github.com/Expensify/App/assets/7771498/42fd721c-d1e2-4207-9a51-a3432c456a4e

Desktop
https://github.com/Expensify/App/assets/7771498/fbf956c6-50f5-4a15-a577-5de637abb796

iOS
https://github.com/Expensify/App/assets/7771498/cd24c259-a489-45d5-9911-0042d4973a3d

Android
https://github.com/Expensify/App/assets/7771498/00fd6982-f65b-4edc-b243-6abeebf1df49

@burczu looks like you have lint errors.

@Santhosh-Sellavel please review and test as soon as you can 🙏

Sorry, I was waiting on the lint check to be handled, will test it straight away.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web & Desktop
https://github.com/Expensify/App/assets/85645967/0c52a60a-9e44-430f-90e0-3886c03ab21c

Mobile Web - Chrome & Mobile Web - Safari
https://github.com/Expensify/App/assets/85645967/0e4ce5d3-4d4b-4a23-87ae-d7a2c48c2fe2

iOS & Android
https://github.com/Expensify/App/assets/85645967/b48cce7f-9186-4586-b3fb-47076ceb1311

All check have passed now.

🚀 Deployed to staging by https://github.com/Beamanator in version: 1.3.24-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Created PR to revert this here

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.24-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.24-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅


[wip] Move active_function_calls storage into ClusterServlet.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1145  👈
#1144
#1140
#1138
#1137
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rohinb2 and the rest of your teammates on  Graphite