all: port to Windows/arm64

Opening this issue to track interest and progress in a port to windows/arm64.
This is completely separate from the open issue #26148 (windows/arm32) but might be informed by it.
The specific codebase I'm motivated by for this request is for WireguardVPN, and the specific discussion to reference is https://lists.zx2c4.com/pipermail/wireguard/2020-January/004832.html & surrounding.

What is the best option for hardware to run Windows on arm64? Does it run on a RK3399 SoC board like the Pine64 Pro?

@carlosedp All of the Windows 10 on Arm laptops that I am aware of to date are Qualcomm Snapdragon based. My daily driver laptop is a Lenovo Yoga C630, and there's a relatively new Microsoft Surface Pro X with a faster chip.
It looks like some work to get the boot sequence for rk3399 boards compatible with Windows lives at https://github.com/andreiw/rk3399-edk2 by @andreiw - with liberal warnings of things that still don't work.

It can also run on KVM, I actually do my ARM64 dev on a KVM VM on RK3399.

https://github.com/golang/go/issues/25084 same deal.

https://github.com/mitchellh/gox/issues/140
platform.go and a few hax... latter.
https://github.com/golang/winstrap
ahh poohh but did not get an arm64  windows-arm  build of gox... how nice.
winstrap-master_windows_arm.zip
might help...

I would love to see an ARM64 version of go for Windows 10 so I can run it natively on the Surface Pro X:

Is what I'm currently seeing so it won't even run in emulation on this device or so it would seem.

Did you use the 32- or 64- bit download? The 32-bit x86 version should run in emulation.

my windows wants is any golang honeypots and RPI3/4 makes for good decoys/bait...
/topSec SBC's are less expensive to utilize emulation meh..

@clarkezone fwiw, the 32-bit x86 version of Go's installer seems to work, at least from my limited testing (I'm not a Go user, I just wanted to build a Go app)

Reposting @anaisbetts's comment from elsewhere:

So, one thing to know about ARM64 on Windows is, it actually fully emulates x86 (not amd64, 32-bit apps oddly enough) for user-space apps - they Just Work (most of the time! kinda!)
So, with a bit of sleight-of-hand packaging, you can make an "ARM64" release that still mostly has x86 binaries

(I'm not sure what the performance cost of that is, though.)

One reason why windows/arm isn't sufficient is that several important APIs -- such as all of setupapi.dll, for example -- are unavailable in wow mode, which means we need actual arm64 binaries.
It's quite possible to get windows running on arm64 in qemu, by the way.

I'd love to see this as well, wanting to build some tools for my surface pro x

@jstarks Any word on this?

We (the OS team at Microsoft) would love to see this, too, and we would be open to contributing the code for the port. Unfortunately, we're not in a position to commit to long-term maintenance of the code or associated builder right now, so we are hesitant to send out any patches.
If Google or the Golang community would be interesting in taking on the ongoing maintenance cost, we would be happy to collaborate on the development.

@jstarks Just like we're (Alex, me, Google employees) are already helping to maintain the other 3 Windows ports (386, amd64, arm), I don't see any reason why we couldn't do the same for arm64. I've got Windows running in QEMU/arm64 now for Wintun development, and that works well.

@jstarks Just like we (Alex, me, Google employees) are already helping to maintain the other 3 Windows ports (386, amd64, arm), I don't see any reason why we couldn't do the same for arm64.

windows/arm is actually a counterexample. Its builder disappeared and it bit rot. We're not not even sure it works anymore. There have been reports it doesn't.
In any case, @jstarks, the builders are the main issue, more than maintenance. If we have reliable & plentiful builders, the Go team & community can help keep it working. But absent builders it'll just rot.
How does Microsoft test? Does windows/arm{,64} run on Azure perhaps?

windows/arm is actually a counterexample. Its builder disappeared and it bit rot. We're not not even sure it works anymore. There have been reports it doesn't.

The arm port works. @rozmansi got WireGuard/Wintun ported to it. Unfortunately, WOW has its limitations and we really need arm64 to access the APIs that we need (setupapi.dll, for example).

How does Microsoft test? Does windows/arm{,64} run on Azure perhaps?

I'd too be interested to learn if Microsoft has some nice solutions for this.
But in case not, @rozmansi and I can probably help getting the QEMU setup via TCG running smoothly in gcloud like the current set of builders. Or if we actually need additional performance, we could look if ec2's arm64 VMs support nested KVM, or grab a ThunderX machine from Scaleway and run KVM over there.

The arm port works.

On which branch? Go 1.14 only or even master? (And the fact that we even have to ask is a ridiculous situation to be in.)

The arm port works.

On which branch? Go 1.14 only or even master? (And the fact that we even have to ask is a ridiculous situation to be in.)

Haven't looked at git master in sometime. Could give it a whirl I suppose.

But in case not, @rozmansi and I can probably help getting the QEMU setup via TCG running smoothly in gcloud like the current set of builders.

Go is moving towards having all its arm & arm64 builders on Amazon. EC2 has nice ARM instance types nowadays.
If you can get windows/arm and windows/arm64 booting in qemu[/kvm] there, that'd be great. Then it's just a question of Windows licensing, which perhaps @jstarks et al could help with.

This sounds promising. I'll check on what options are available and if there are licensing implications.

@rozmansi's overall setup works pretty well for me.

And by the way @bradfitz, I can confirm that arm32 still works properly when building little programs using the latest git master.

@jstarks @bradfitz @alexbrainman @aclements @ianlancetaylor @cherrymui - by now you each should have received @rozmansi's VM image and instructions from me. @bradfitz was the one who suggested we get an arm64 builder up and running, but he doesn't work for Google anymore, so I assume he isn't in a position to put coins in the Go builder EC2/GCP machine. I'm not familiar with how the Go team works enough to @ the right person. Can somebody more knowledgeable about processes lay out the next steps?

@cagedmantis, @toothrot and @dmitshur work on builder stuff.

Great, I'll get the VM info over to them too.

Has there been any more progress on this?

@jstarks Specifically, were the actions that Google has begun to take w.r.t. getting the arm builders up sufficient to convince your team that contributing the in-progress arm64 port is worth while?

@elachlan The release team has been working on preparing the next release. Once we get out of release freeze period we  hope to be adding the builders.

@Alovchin91 We are working out the licensing. As soon as it's worked out we can move forward by adding the builders.

Hi ,
today I found Go for Windows arm64 - https://github.com/thongtech/go-windows-arm64
Does this help to unblock the development ?
Thanks

@mirogl Looks like that repo has no changes to source code compared to go 1.15.2. Does it means golang already supported windows arm64?

@ysc3839 - I don't know - I just found the repo today and the binary package from this page is running fine on my Surface Pro X  - https://github.com/thongtech/go-windows-arm64/releases/download/1.15.2/go1.15.2.windows-arm64.zip

@mirogl The binary is arm instead of arm64.
$ file go.exe
go.ex_: PE32 executable (console) ARMv7 Thumb (stripped to external PDB), for MS Windows

An arm64 binary built using MSVC:
$ file TestARM64.exe
TestARM64.exe: PE32+ executable (GUI) Aarch64, for MS Windows

Hi @ysc3839 - thanks - I created an issue with your questions - https://github.com/thongtech/go-windows-arm64/issues/1
Hopefully he will answer them. Sorry for the confusion - just found the repo and was happy it run on my Surface Pro X and I could als build a go project.

Hi @ysc3839 - he responded in the issue I linked below - so he just cross compiled it for arm32 with zero changes on the official code.
Thanks for your hint.

Hi all, has there been any sort of progress on this? There are a lot of us eagerly waiting for golang to be able to build for ARM64 on Windows.

@tlockley The Go team is continuing to work with Microsoft in an effort to establish some windows/arm64 builders. We will post an update as soon as we have more news.

We (the OS team at Microsoft) would love to see this, too, and we would be open to contributing the code for the port. Unfortunately, we're not in a position to commit to long-term maintenance of the code or associated builder right now, so we are hesitant to send out any patches.
If Google or the Golang community would be interested in taking on the ongoing maintenance cost, we would be happy to collaborate on the development.

Hi @jstarks - now that we've got an ARM(64) builder, would you be interested in contributing that code?

Where to find the the arm64 support for windows / mac and if it is in progress how to contribute ? testing/coding etc

Where to find the the arm64 support for windows / mac and if it is in progress how to contribute ? testing/coding etc

This bug concerns only windows.
The windows arm64 port has not yet materialized. We're waiting in @jstarks's team.

Thank you, I can use a custom build for windows, even a non-official one and help support if needed

+1 for me, not because I am a Go developer, but because the language is used by so many projects out there, including Docker. I would like to get a native build of the Docker CLI for Windows ARM64 usable with a remote host, but I hit a wall when I realized that Go didn't yet support Windows ARM64.

Hi all. I have the latest Go tree running on a Surface Pro X (windows/arm64).
I will send CLs for inclusion in Go 1.17.
A little more work is left to support mingw-based cgo,
but all the actual cgo support code works since we use it for system calls.
Profiling works, and I may have fixed profiling on windows/arm (32-bit) as well.

Hi Russ -- holy smokes, nice job! That was fast. Did you see Microsoft's previous efforts, by the way? https://github.com/ms-iot/go/tree/win-arm64
Can't wait to start looking at your CLs. Feel free to mark me as reviewer and I'll read the series.

@jstarks, the native windows/arm64 mode on the Surface Pro X has been great.
But windows/arm (32-bit) doesn't run right, despite working on @zx2c4's 32-bit builder.
And windows/386 doesn't pass all its tests, due to what appear to be floating-point inaccuracies in the simulation.
I haven't tried windows/amd64 - not sure if I have the update that enabled x64 emulation.
I would really love if I could use the Surface Pro X to test all four Windows architectures.
Is there anyone or any place that I can send details about emulation issues that might result in fixes?
Thanks!

@zx2c4 I did see that tree, and it was helpful to see which files were likely to need changes. I didn't end up using the code but it was still great to have for reference.

Regarding cgo -- AFAICT, there still isn't a gcc for windows/{arm,arm64}, but there is a mingw clang. https://github.com/mstorsjo/llvm-mingw/releases has reliable builds. I've been using these in production for some time now and found them to actually work a lot better than gcc/mingw in some cases. The linker has a few extra options more akin to MSVC's that is quite nice. Using these with cgo will take a bit of hacking though. The first problem is that it rejects the linker script that we currently pass to gcc as a workaround. I wonder, though, that given the apparent stagnation of gcc on Windows, if we should move the Go windows port to be clang-only for 1.17.

But windows/arm (32-bit) doesn't run right, despite working on @zx2c4's 32-bit builder.

What kinds of crashes are you getting? What Windows build are you running?

@zx2c4 if we're going to switch compilers it seems like we should just use MSVC, especially now that you can apparently download the binaries for free from Microsoft.
And yes, the abort code is wrong but I've fixed that.

I've uploaded the tree I have (gopherbot should not send so many different messages!)
To try it out:
git fetch https://go.googlesource.com/go refs/changes/28/288828/1 && git checkout FETCH_HEAD

I'm interested to get this working as well, thank you so much @rsc for the huge effort, will play with it and try

... The first problem is that it rejects the linker script that we currently pass to gcc as a workaround. I wonder, though, that given the apparent stagnation of gcc on Windows, if we should move the Go windows port to be clang-only for 1.17.

linker script: FYI, I am pretty sure that problem was fixed this past December with CL 278932. There may be other problems, however.

@rsc, this is great. Thank you.
I should be able to find someone to help with the ARM32 and x86 issues. If you want to take the details offline, then you can email me and I'll loop in the right people.
For x64 support, build >= 21277 should have it. If you don't want to update the machine to a pre-release build then you can also download a VM image and use Hyper-V.

There are a few patches I need to submit upstream, but I got WireGuard running on windows/arm64, which is a fairly complex Windows apps, with tons of weird win32 things going on. So... it's working!

@rsc - I think that series might have broken amd64:
runtime: unexpected return pc for runtime.goexit called from 0x0
stack: frame={sp:0xc00007dfe0, fp:0xc00007dfe8} stack=[0xc00007a000,0xc00007e000)
0x000000c00007dee0:  0x010000c00005a058  0x00000164c5f497f0
0x000000c00007def0:  0x0000000000000000  0x0000000000000060
0x000000c00007df00:  0x00000164c5f40108  0x0000000000000060
0x000000c00007df10:  0x000000c00001a060  0x000000c000051f48
0x000000c00007df20:  0x0000000000b48bc0  0x0000000000000000
0x000000c00007df30:  0x000000c000051f78  0x00000000004059e5 <runtime.makechan+0x00000000000001a5>
0x000000c00007df40:  0x0000000000000060  0x0000000000000000
0x000000c00007df50:  0x000000000041b801 <runtime.gcenable+0x0000000000000041>  0x000000c00001a060
0x000000c00007df60:  0x0000000000000000  0x000000000077e780
0x000000c00007df70:  0x000000c00005a000  0x000000c00007dfd0
0x000000c00007df80:  0x000000000043bcc5 <runtime.main+0x0000000000000205>  0x0000000000b11dc0
0x000000c00007df90:  0x0000000000000000  0x000000c00001a060
0x000000c00007dfa0:  0x0000000000000000  0x0101000000000000
0x000000c00007dfb0:  0x0000000000000000  0x000000c00004a000
0x000000c00007dfc0:  0x000000c00007dfae  0x0000000000856e48
0x000000c00007dfd0:  0x0000000000000000  0x000000000046cf61 <runtime.goexit+0x0000000000000001>
0x000000c00007dfe0: <0x0000000000000000 >0x0000000000000000
0x000000c00007dff0:  0x0000000000000000  0x0000000000000000
fatal error: unknown caller pc

runtime stack:
runtime: unexpected return pc for runtime.rt0_go called from 0x52bc53fe
stack: frame={sp:0x31b85ff980, fp:0x31b85ff988} stack=[0x31b8404000,0x31b85ff980)
0x00000031b85ff880:  0x00000000004291ee <runtime.(*mheap).allocSpan+0x000000000000028e>  0x0000000000b5d7a0
0x00000031b85ff890:  0x000000c000074000  0x000000c00004a000
0x00000031b85ff8a0:  0x000000c000051430  0x000000000040e297 <runtime.mallocgc+0x0000000000000617>
0x00000031b85ff8b0:  0x000000c00004a000  0x0000000000000000
0x00000031b85ff8c0:  0x0000000000000000  0x0000000000000000
0x00000031b85ff8d0:  0x0000000000000000  0x0000000000002000
0x00000031b85ff8e0:  0x000000c000061fd8  0x000000c00004aa80
0x00000031b85ff8f0:  0x00000164c5f4b69b  0x00000031b85ff948
0x00000031b85ff900:  0x000000000046341f <runtime.(*mheap).alloc.func1+0x000000000000005f>  0x0000000000b5d7a0
0x00000031b85ff910:  0x0000000000000001  0x0000000000446600 <runtime.releasep+0x0000000000000000>
0x00000031b85ff920:  0x00000164c5f4b638  0x000000c00005a058
0x00000031b85ff930:  0x000000c00004a001  0x0000000000b48a40
0x00000031b85ff940:  0x000000c0000516e0  0x000000c0000514a8
0x00000031b85ff950:  0x000000000046b237 <runtime.morestack+0x0000000000000097>  0x000000000046af8c <runtime.rt0_go+0x000000000000014c>
0x00000031b85ff960:  0x0000000000000000  0x0000000000000000
0x00000031b85ff970:  0x000000000046afe5 <runtime.mstart+0x0000000000000005>  0x000000000046af93 <runtime.rt0_go+0x0000000000000153>
runtime.throw(0x82b535, 0x11)
        runtime/panic.go:1117 +0x79
runtime.gentraceback(0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0xc00004a000, 0x0, 0x0, 0x7fffffff, 0x856c98, 0x31b85ff678, 0x0, ...)
        runtime/traceback.go:270 +0x1a85
runtime.copystack(0xc00004a000, 0x4000)
        runtime/stack.go:908 +0x311
runtime.newstack()
        runtime/stack.go:1078 +0x2b6
runtime.morestack()
        runtime/asm_amd64.s:454 +0x97
runtime.rt0_go(0x46af93, 0x52bc53fe, 0x31b85ff9b0, 0x7ff952bc53fe, 0x31b85ff9b0, 0x0, 0x7ff952bc53fe, 0x0, 0x0, 0x0, ...)
        runtime/asm_amd64.s:226 +0x14c
runtime.mstart(0x52bc53fe, 0x31b85ff9b0, 0x7ff952bc53fe, 0x31b85ff9b0, 0x0, 0x7ff952bc53fe, 0x0, 0x0, 0x0, 0x0, ...)
        runtime/asm_amd64.s:256 +0x5
runtime: unexpected return pc for runtime.rt0_go called from 0x52bc53fe
stack: frame={sp:0x31b85ff980, fp:0x31b85ff988} stack=[0x31b8404000,0x31b85ff980)
0x00000031b85ff880:  0x00000000004291ee <runtime.(*mheap).allocSpan+0x000000000000028e>  0x0000000000b5d7a0
0x00000031b85ff890:  0x000000c000074000  0x000000c00004a000
0x00000031b85ff8a0:  0x000000c000051430  0x000000000040e297 <runtime.mallocgc+0x0000000000000617>
0x00000031b85ff8b0:  0x000000c00004a000  0x0000000000000000
0x00000031b85ff8c0:  0x0000000000000000  0x0000000000000000
0x00000031b85ff8d0:  0x0000000000000000  0x0000000000002000
0x00000031b85ff8e0:  0x000000c000061fd8  0x000000c00004aa80
0x00000031b85ff8f0:  0x00000164c5f4b69b  0x00000031b85ff948
0x00000031b85ff900:  0x000000000046341f <runtime.(*mheap).alloc.func1+0x000000000000005f>  0x0000000000b5d7a0
0x00000031b85ff910:  0x0000000000000001  0x0000000000446600 <runtime.releasep+0x0000000000000000>
0x00000031b85ff920:  0x00000164c5f4b638  0x000000c00005a058
0x00000031b85ff930:  0x000000c00004a001  0x0000000000b48a40
0x00000031b85ff940:  0x000000c0000516e0  0x000000c0000514a8
0x00000031b85ff950:  0x000000000046b237 <runtime.morestack+0x0000000000000097>  0x000000000046af8c <runtime.rt0_go+0x000000000000014c>
0x00000031b85ff960:  0x0000000000000000  0x0000000000000000
0x00000031b85ff970:  0x000000000046afe5 <runtime.mstart+0x0000000000000005>  0x000000000046af93 <runtime.rt0_go+0x0000000000000153>
runtime.rt0_go(0x31b85ff9b0, 0x7ff952bc53fe, 0x31b85ff9b0, 0x0, 0x7ff952bc53fe, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        runtime/asm_amd64.s:231 +0x153

goroutine 1 [copystack, locked to thread]:
runtime.heapBitsSetType(0xc0000561b0, 0x10, 0x10, 0x7a0820)
        runtime/mbitmap.go:815 +0xc85 fp=0xc00007d430 sp=0xc00007d428 pc=0x417c85
runtime.mallocgc(0x10, 0x7a0820, 0x1, 0x0)
        runtime/malloc.go:1096 +0x617 fp=0xc00007d4b8 sp=0xc00007d430 pc=0x40e297
runtime.newobject(0x7a0820, 0x0)
        runtime/malloc.go:1177 +0x3f fp=0xc00007d4e8 sp=0xc00007d4b8 pc=0x40e77f
errors.New(...)
        errors/errors.go:59
internal/oserror.init()
        internal/oserror/errors.go:13 +0x38 fp=0xc00007d508 sp=0xc00007d4e8 pc=0x4b2df8
runtime.doInit(0xb0d020)
        runtime/proc.go:6176 +0xfd fp=0xc00007d658 sp=0xc00007d508 pc=0x44915d
runtime.doInit(0xb0f7a0)
        runtime/proc.go:6153 +0x88 fp=0xc00007d7a8 sp=0xc00007d658 pc=0x4490e8
runtime.doInit(0xb10fe0)
        runtime/proc.go:6153 +0x88 fp=0xc00007d8f8 sp=0xc00007d7a8 pc=0x4490e8
runtime.doInit(0xb0faa0)
        runtime/proc.go:6153 +0x88 fp=0xc00007da48 sp=0xc00007d8f8 pc=0x4490e8
runtime.doInit(0xb0f980)
        runtime/proc.go:6153 +0x88 fp=0xc00007db98 sp=0xc00007da48 pc=0x4490e8
runtime.doInit(0xb0f9e0)
        runtime/proc.go:6153 +0x88 fp=0xc00007dce8 sp=0xc00007db98 pc=0x4490e8
runtime.doInit(0xb0fa40)
        runtime/proc.go:6153 +0x88 fp=0xc00007de38 sp=0xc00007dce8 pc=0x4490e8
runtime.doInit(0xb11dc0)
        runtime/proc.go:6153 +0x88 fp=0xc00007df88 sp=0xc00007de38 pc=0x4490e8
runtime.main()
        runtime/proc.go:208 +0x205 fp=0xc00007dfe0 sp=0xc00007df88 pc=0x43bcc5
runtime: unexpected return pc for runtime.goexit called from 0x0
stack: frame={sp:0xc00007dfe0, fp:0xc00007dfe8} stack=[0xc00007a000,0xc00007e000)
0x000000c00007dee0:  0x010000c00005a058  0x00000164c5f497f0
0x000000c00007def0:  0x0000000000000000  0x0000000000000060
0x000000c00007df00:  0x00000164c5f40108  0x0000000000000060
0x000000c00007df10:  0x000000c00001a060  0x000000c000051f48
0x000000c00007df20:  0x0000000000b48bc0  0x0000000000000000
0x000000c00007df30:  0x000000c000051f78  0x00000000004059e5 <runtime.makechan+0x00000000000001a5>
0x000000c00007df40:  0x0000000000000060  0x0000000000000000
0x000000c00007df50:  0x000000000041b801 <runtime.gcenable+0x0000000000000041>  0x000000c00001a060
0x000000c00007df60:  0x0000000000000000  0x000000000077e780
0x000000c00007df70:  0x000000c00005a000  0x000000c00007dfd0
0x000000c00007df80:  0x000000000043bcc5 <runtime.main+0x0000000000000205>  0x0000000000b11dc0
0x000000c00007df90:  0x0000000000000000  0x000000c00001a060
0x000000c00007dfa0:  0x0000000000000000  0x0101000000000000
0x000000c00007dfb0:  0x0000000000000000  0x000000c00004a000
0x000000c00007dfc0:  0x000000c00007dfae  0x0000000000856e48
0x000000c00007dfd0:  0x0000000000000000  0x000000000046cf61 <runtime.goexit+0x0000000000000001>
0x000000c00007dfe0: <0x0000000000000000 >0x0000000000000000
0x000000c00007dff0:  0x0000000000000000  0x0000000000000000
runtime.goexit()
        runtime/asm_amd64.s:1371 +0x1 fp=0xc00007dfe8 sp=0xc00007dfe0 pc=0x46cf61

Huh, actually, clearing ~/.cache/go-build fixed the issue? It would appear that adding these new bits to pclntab are somehow not being hashed as part of the caching system?

@rsc - some notes on MSVC vs LLVM for cgo:

LLVM for Windows was designed to generate object files that are compatible with MSVC.
LLVM for Windows is bundled with Visual Studio now, and presumably Microsoft uses it internally for Edge, among other things.
LLVM for Windows allows familiar GNU-style C, keeping cgo snippets easily portable.
MSVC's C compiler is infamously limited in what it supports.
LLVM for Windows is a tiny .zip download, easy to integrate into build systems.
MSVC is a multi-gigabyte clunky ordeal.
LLVM is open source.
MSVC is closed source.

That list goes on. Given that, it seems pretty clear that the first steps for cgo support for arm/arm64 (and amd64&386 to make it consistent) would be to get LLVM/Clang running. Then all platforms are pretty much on the same playing field with flavor of C. And we'd still be able to ingest MSVC object files, since LLVM produces the same format.
Later, if somebody is tempted, we could consider calling out to MSVC instead (with its differing/limited options and all those complications). But I suspect there will be little need or desire for that, and that LLVM will be a preferable choice.

Presumably a significant advantage of LLVM is that it can run on Linux but target Windows. MSVC cannot do that.
However, if the LLVM invocations were made via the MSVC-compatible drivers (e.g. clang-cl), then it would presumably be easy to choose between the toolchains at runtime. Rust defaults to MSVC for its linker on Windows, but it's straightforward to use the LLVM linker instead, for example.

As of several hours ago, I'm now serving Go ARM64 binaries for WireGuard for Windows -- https://download.wireguard.com/windows-client/. It uses Go 1.16 plus the current related patches, as of today, in git master backported to release-branch.go1.16. There's still one patch missing that isn't yet in master: https://go-review.googlesource.com/c/go/+/289429 . This is a humdrum fix to the linker to support .syso files for resources on windows/arm64 that @rsc reviewed during 1.16 but hasn't been submitted yet.
So far it's been pretty smooth sailing and I haven't gotten any reports of complaints of breakage, and people update fast enough that by now in the day I'd expect to know if something went wrong. So that's promising news. I've also had 24/7 stress tests running on a pair of arm64 boards for the last three weeks and haven't hit any crashes.
If anybody else would like to play around with this toolchain, a precompiled version of my 1.16 backport is available here: https://download.wireguard.com/windows-toolchain/distfiles/. The date will change as it evolves but currently there's go1.16-linux_amd64_2021-02-25.tar.zst for building from Linux and go1.16-windows_amd64_2021-02-25.zip for building from Windows. GOOS=windows GOARCH=arm64 go build ... gets the job done.

Gents,
I understand Go for Windows on ARM is not fully complete, but can somebody publish real binaries for WOW instead of building toolchain and very vague instructions how to build binaries on WOW ourselves ? I would love to test it, but those binaries from https://github.com/thongtech/go-windows-arm do not work for me (I have latest prerelease version of WOW, running 64bit X86 binaries with ease). Thank you in advance for any help (or explanation when I very probably missed soemthing).

I want to apologize the author of https://github.com/thongtech/go-windows-arm, it works on real Windows on Arm device but not under virtual WOA on Mac Mini M1. The reason is, that it is 32 bit ! It looks like nobody is eager to post 64 bit Go binaries for Windows on Arm, we have to try to build it ourselves. I apologize for the confusion in my previous post.

I submitted a stack of CLs to add cgo support to windows/arm64 on Friday evening, ending at b8fed48a9ae7e6229a4fdccf6aae7bc670f61aca. With those, I believe the windows/arm64 support for Go 1.17 is completed.
Closing this issue.

I submitted a stack of CLs to add cgo support to windows/arm64 on Friday evening, ending at b8fed48. With those, I believe the windows/arm64 support for Go 1.17 is completed.
Closing this issue.

That's terrific. Thanks for working on that. I'll make a note to test that out in the coming weeks.
Any plans on doing the same for windows/arm? Then there'd be fully deployable capacity across all Windows platforms.

Hi,
I have been working with MSYS2 on getting packages there built for Windows on ARM64 (using clang's mingw-w64 target like llvm-mingw does).  I am curious if it would be possible to 'bootstrap' an ARM64 package of Go there (and/or if I can contribute to making that work, though I have 0 experience with Go).
Also, I am very interested in what options/licensing you figured out for Windows ARM64.  We are currently using a QC710 to build, but I have been trying to figure out some sort of cloud hosting situation...

I am curious if it would be possible to 'bootstrap' an ARM64 package of Go there (and/or if I can contribute to making that work, though I have 0 experience with Go).

Amazingly, it Just Worked.  I'm used to having to fight packages much more to get them to build 😀

git clone @ github.com/mh-cbon/go-msi
go mod init github.com/mh-cbon/go-msi  && go mod tidy  &&  gox -osarch="windows/arm64"
can build on stock win11 ...  go-msi_windows_arm64.exe is produced.
point being might be able to msi/msix an installer as well ..


Assignment 7 Submission

actually, for this one I'll use the "squash and merge" feature to make this a single commit when merging. All set!


The "freeze_support()" line can be omitted if the program is not going to be frozen to produce an executable.

worked on fedora 33 a week ago, same setup, this is fresh windows install
besides small hiccups great work on package real quality work keep it up
version: pandas-ta 0.2.45b via pip install pandas-ta
python version: 3.9.1
system: windows 10 x64
code:
import pandas_ta as ta
import pandas as pd

from itertools import islice
from collections import Counter

import yfinance as yf

import datetime

data = yf.download('SPY', period="3mo", interval="60m")
df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df.index)

MACDStrategy = ta.Strategy(
    name="MACD",
    description="MACD",
    ta=[
        {"kind": "macd", "fast": 12, "slow": 27},
    ]
)

df.ta.strategy(MACDStrategy)

log:
    prep_data = spawn.get_preparation_data(process_obj._name)

  File "C:\Python39\lib\multiprocessing\spawn.py", line 154, in get_preparation_data
    _check_not_importing_main()
  File "C:\Python39\lib\multiprocessing\spawn.py", line 134, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python39\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Python39\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "C:\Python39\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "C:\Python39\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "C:\Python39\lib\runpy.py", line 268, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "C:\Python39\lib\runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "C:\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "D:\backup\ad_luna\kraken.py", line 34, in <module>
    df.ta.strategy(MACDStrategy)
  File "C:\Python39\lib\site-packages\pandas_ta\core.py", line 666, in strategy
    pool = Pool(self.cores)
  File "C:\Python39\lib\multiprocessing\context.py", line 119, in Pool
    return Pool(processes, initializer, initargs, maxtasksperchild,
  File "C:\Python39\lib\multiprocessing\pool.py", line 212, in __init__
    self._repopulate_pool()
  File "C:\Python39\lib\multiprocessing\pool.py", line 303, in _repopulate_pool
    return self._repopulate_pool_static(self._ctx, self.Process,
  File "C:\Python39\lib\multiprocessing\pool.py", line 326, in _repopulate_pool_static
    w.start()
  File "C:\Python39\lib\multiprocessing\process.py", line 121, in start

I am getting the same error on Mac Book Pro Python3.9? Does it mean it is not fixable?

Hello @voxvici,

besides small hiccups great work on package real quality work keep it up

Thanks. Please list other issues as separate Issues so I know what to look out for.
Also, Make sure you are always on the Latest Version (0.2.75b):
$ pip install -U git+https://github.com/twopirllc/pandas-ta

worked on fedora 33 a week ago, same setup, this is fresh windows install

Yup. So this is a Python Multiprocessing Issue and not a Pandas TA Issue has been resolved in Pinned Issue #181. It's a rather simple fix.
Kind Regards,
KJ


err = db.Exec("CREATE TABLE blob") fails with "panic: found BLOB, expected identifier at line 1, char "

but this is fine
err = db.Exec("CREATE TABLE files")

Is blob a protected word maybe ?

Yes it's a protected keyword, but it shouldn't panic so it's definitely a bug, thanks!

Ok thanks.
so then in

// parseCreateTableStatement parses a create table string and returns a Statement AST object.
--
  | // This function assumes the CREATE TABLE tokens have already been consumed.
  | func (p *Parser) parseCreateTableStatement() (query.CreateTableStmt, error) {
  | var stmt query.CreateTableStmt
  | var err error
  |
  | // Parse IF NOT EXISTS
  | stmt.IfNotExists, err = p.parseIfNotExists()
  | if err != nil {
  | return stmt, err
  | }
  |
  | // Parse table name
  | stmt.TableName, err = p.parseIdent()
  | if err != nil {
  | return stmt, err
  | }
  |
  | // parse field constraints
  | err = p.parseFieldConstraints(&stmt.Info)
  | if err != nil {
  | return stmt, err
  | }
  |
  | return stmt, nil
  | }

you want a check on the Table name being "blob", and return an error if so ?

Oh, actually it doesn't panic it returns an error, judging by the title I thought it panic'ed.
Does it panic on your side? If so could you share the output?
If not, then that's the expected behavior, we should not be using protected keywords as identifiers, at least not now. We may in the future, I just prefer waiting the parser to be more mature, otherwise, that's the kind of feature that gets in the way.

sure here is reproduction code ...
Just change the TableNameBlob  !!!
CODE:

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"os"

	"github.com/dgraph-io/badger/v2"
	"github.com/genjidb/genji"
	"github.com/genjidb/genji/document"

	"github.com/genjidb/genji/engine/badgerengine"
)

// Mathematical constants.
const (
	// table names

	//TableNameBlob = "files"
	TableNameBlob = "blob" // THIS FAILS. Nothing else i tried fails so far.

	TableNameUser = "users"
)

func main() {
	// Create a badger engine
	db := makeDb("mydb")
	defer db.Close()

	// Make Schema
	makeSchema(db)

	// Make Data
	insert(db)

	// Query some documents
	query(db)
	query1(db)

	// Insert, Query files
	blob(db)

}

// User ...
type User struct {
	ID      int64
	Name    string
	Age     uint32
	Address struct {
		City    string
		ZipCode string
	}
}

// Blob ...
type Blob struct {
	ID    int64
	Name  string
	Ext   string
	Bytes []byte
	Len   int
}

func makeDb(name string) (db *genji.DB) {
	// Create a badger engine
	ng, err := badgerengine.NewEngine(badger.DefaultOptions(name))
	if err != nil {
		log.Fatal(err)
	}

	// Subscribe access :)
	// ng.DB.Subscribe(ctx context.Context, cb func(kv *KVList) error, prefixes ...[]byte)

	// Pass it to genji
	db, err = genji.New(ng)
	if err != nil {
		log.Fatal(err)
	}

	return db
}

func makeSchema(db *genji.DB) {
	// DO in a transaction
	tx, err := db.Begin(true)
	if err != nil {
		panic(err)
	}
	defer tx.Rollback()

	// Users
	s := fmt.Sprintf("CREATE TABLE IF NOT EXISTS %s", TableNameUser)
	err = tx.Exec(s)
	if err != nil {
		panic(err)
	}
	s = fmt.Sprintf("CREATE INDEX IF NOT EXISTS idx_user_name ON %s (name)", TableNameUser)
	err = tx.Exec(s)
	if err != nil {
		panic(err)
	}

	// Files
	s = fmt.Sprintf("CREATE TABLE IF NOT EXISTS %s", TableNameBlob)
	err = tx.Exec(s)
	if err != nil {
		panic(err)
	}

	err = tx.Commit()
	if err != nil {
		err = tx.Rollback()
		panic(err)
	}
}

func insert(db *genji.DB) {
	// Insert some data
	s := fmt.Sprintf("INSERT INTO %s (id, name, age) VALUES (?, ?, ?)", TableNameUser)
	err := db.Exec(s, 10, "foo", 15)
	if err != nil {
		panic(err)
	}

	// Insert some data using document notation
	/*
		err = db.Exec(`INSERT INTO user VALUES {id: 12, "name": "bar", age: ?, address: {city: "Lyon", zipcode: "69001"}}`, 16)
		if err != nil {
			panic(err)
		}
	*/

	// Structs can be used to describe a document
	s = fmt.Sprintf("INSERT INTO %s VALUES ?, ?", TableNameUser)
	err = db.Exec(s, &User{ID: 1, Name: "baz", Age: 100}, &User{ID: 2, Name: "bat"})
	if err != nil {
		panic(err)
	}

}

func query(db *genji.DB) {

	s := fmt.Sprintf("SELECT * FROM %s WHERE id > ?", TableNameUser)
	stream, err := db.Query(s, 1)
	if err != nil {
		panic(err)
	}
	// always close the result when you're done with it
	defer stream.Close()

	// Iterate over the results
	err = stream.Iterate(func(d document.Document) error {
		var u User

		err = document.StructScan(d, &u)
		if err != nil {
			return err
		}

		fmt.Println(u)
		return nil
	})
	if err != nil {
		panic(err)
	}
}

func query1(db *genji.DB) {

	s := fmt.Sprintf("SELECT pk(), name FROM %s", TableNameUser)
	stream, err := db.Query(s)
	defer stream.Close()

	// Iterate over the results
	err = stream.Iterate(func(d document.Document) error {
		var u User

		err = document.StructScan(d, &u)
		if err != nil {
			return err
		}

		fmt.Println(u)
		return nil
	})
	if err != nil {
		panic(err)
	}

}

func blob(db *genji.DB) {

	// Best way apparently is to use genji and store the data in a blob column

	// add a file
	// Open file for reading
	filename := "test.txt"
	file, err := os.Open(filename)
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	data, err := ioutil.ReadAll(file)
	if err != nil {
		log.Fatal(err)
	}

	blob := Blob{}

	fmt.Printf("Data as string: %s\n", data)
	fmt.Println("Number of bytes read:", len(data))

	blob.ID = 001
	blob.Name = file.Name()
	blob.Bytes = data
	blob.Len = len(data)

	fmt.Println(blob)

	s := fmt.Sprintf("INSERT INTO %s VALUES ?", TableNameBlob)
	err = db.Exec(s, &blob)
	if err != nil {
		panic(err)
	}

	// Get the same file back from the DB
	s = fmt.Sprintf("SELECT * FROM %s WHERE id = ?", TableNameBlob)
	d, err := db.QueryDocument(s, &blob.ID)
	if err != nil {
		panic(err)
	}
	var b Blob
	err = document.StructScan(d, &b)
	if err != nil {
		panic(err)
	}

	fmt.Println(b)

	fileout := "testout.txt"
	err = ioutil.WriteFile(fileout, b.Bytes, 0644)
	if err != nil {
		panic(err)
	}

}

LOG:

# delete DB files
rm -rf mydb
mkdir mydb
go run main.go
badger 2020/09/08 14:47:43 INFO: All 0 tables opened in 0s
badger 2020/09/08 14:47:43 INFO: Storing value log head: {Fid:0 Len:29 Offset:247}
badger 2020/09/08 14:47:43 INFO: [Compactor: 173] Running compaction: {level:0 score:1.73 dropPrefixes:[]} for level: 0
badger 2020/09/08 14:47:43 INFO: LOG Compact 0->1, del 1 tables, add 1 tables, took 15.625416ms
badger 2020/09/08 14:47:43 INFO: [Compactor: 173] Compaction for level: 0 DONE
badger 2020/09/08 14:47:43 INFO: Force compaction on level 0 done
panic: found BLOB, expected identifier at line 1, char 28

goroutine 1 [running]:
main.makeSchema(0xc000182098)
        /Users/apple/workspace/go/src/github.com/joe-getcouragenow/junk/archi/db/badgerdb/genjidb__genji/main.go:109 +0x2f4
main.main()
        /Users/apple/workspace/go/src/github.com/joe-getcouragenow/junk/archi/db/badgerdb/genjidb__genji/main.go:32 +0x70
exit status 2
make: *** [run] Error 1

Well, it's only panic'ing because your code is panic'ing, isn't it?
Genji returns an error and your code does a panic():
// Files
	s = fmt.Sprintf("CREATE TABLE IF NOT EXISTS %s", TableNameBlob)
	err = tx.Exec(s)
	if err != nil {
		panic(err)
	}

Not if you swap the commented code ?
	//TableNameBlob = "files"
	TableNameBlob = "blob" // THIS FAILS. Nothing else i tried fails so far.

I don't understand, what I'm seeing now is that Genji is not panic'ing, it's returning an error if you use blob as a table name. This is the expected behaviour.
Then your code on line 108 does this:
	if err != nil {
		panic(err)
	}

I was trying the same, but with VALUE instead of BLOB. I was surprised that ChaiSQL considered this a protected keyword. The README.md for ChaiSQL says that:

ChaiSQL SQL API is compatible with PostgreSQL

Yet if I ask an LLM, I see that:

VALUE is indeed a keyword in PostgreSQL, but it is classified as a non-reserved keyword3.
Being a non-reserved keyword means that VALUE has a special meaning in certain contexts, but can still be used as an identifier (like a column or table name) in other contexts3.

Anyway, I found my way here, and clicked your link above, but it's broken. Do you have a link to the genji-sql docs?

By the way if you really want to use anything an an identifier, you just need to use backquotes: https://genji.dev/docs/genji-sql/lexical-structure/#identifiers

I was trying the same, but with VALUE instead of BLOB. I was surprised that ChaiSQL considered this a protected keyword. The README.md for ChaiSQL says that:

ChaiSQL SQL API is compatible with PostgreSQL

Yet if I ask an LLM, I see that:

VALUE is indeed a keyword in PostgreSQL, but it is classified as a non-reserved keyword3.
Being a non-reserved keyword means that VALUE has a special meaning in certain contexts, but can still be used as an identifier (like a column or table name) in other contexts3.

Anyway, I found my way here, and clicked your link above, but it's broken. Do you have a link to the genji-sql docs?

By the way if you really want to use anything an an identifier, you just need to use backquotes: https://genji.dev/docs/genji-sql/lexical-structure/#identifiers

Or has that doc page disappeared completely from the Genji docs? I couldn't find it when I searched.
@asdine


Upate SCIM instruction

#2243  👈
main

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

Join @anle-statsig and the rest of your teammates on  Graphite

Merge activity

Oct 28, 4:18 PM EDT: A user started a stack merge that includes this pull request via Graphite.


ORC-416: Avoid opening data reader when there is no stripe

Currently, RecordReaderImpl invokes dataReader.open in the middle of the constructor. We can postpone this until advanceToNextRow reads the stripe at the end of the constructor.
this.dataReader.open();

This will reduce the chance of potential open-file leakages due to IOException and OOM during RecordReaderImpl construction. Also, we can avoid it completely when there is no stripe in the file.

Hi, @omalley .
Could you review this PR?

Thank you for review and merging, @omalley ! Also, thank you for reivew, @zsxwing .


Remove deprecated functionalities

Fix #79

The problem with this is that it requires a newer Rust version than pkg-config currently supports as its minimum version. 1.26 for AsciiExt and 1.33 for trim_right.
@alexcrichton what's your opinion on this?

Got it. AsciiExt is only imported but not used actually. So this crate has already abandoned support rustc before 1.23.0 (char::to_ascii_uppercase since this version). Such issue should be quite common when we want to make "system" crates like pkg-config-rs support all versions of rustc in which some std functionalities have been deprecated. It's better to have some consistent policies on how to deal with that.

My personal opinion has always been that the current and previous rustc versions should be required to be supported, and anything else is best effort but can change at any time.

@sdroege Rust 1.34 has been published. Shall we merge this PR as you said?

@lwshang looks like there are some merge conflicts. Would you mind rebasing against master so we can merge this? Thank you for fixing the deprecations too; cleared away the noise nicely while running cargo test.

@sdroege Rust 1.34 has been published. Shall we merge this PR as you said?

Sorry, completely forgot about this one! Thanks for reviving it @efx
If you don't want to rebase your branch, I'll take a look at updating it in the next days.

and 1.33 for trim_right

Actually only 1.30.0


Same model objects in different tables

I want to have like multiple tables with the same type of object and not getting them in the same place. Is it possible? Currently I'm doing it by creating different DbInstances. Is this right?

It is one of the possible scenarios.
You may also subclass DbInstance differently, place all mapping initialization in constructor and provide different database path. Then you instantiate corresponding subclass and get things done.
Sorry, for late response.


[Feature Request] Add no-unused-variables rule

Similar to the no-unused-imports ktlint rule, it would be great to add support for a no-unused variables rule. Here's a similar tslint rule for reference: no-unused-variable.

In my opinion, this kind of detection is too complicated to be implemented in a linter. But you are always free to contribute a PR.


Remove items

When the header is collapsed and we remove items in the RecyclerView and we scroll back to the top, the header still appears collapsed with the empty space created by the item. We need to scroll twice to make the header appear again.
Would it be possible to achieve to make the header follow the new height of the RecyclerView after a item removal ?
I'm using a RecyclerView with android:clipToPadding="false" and android:paddingTop="@dimen/image_height"
@henrytao-me Thanks so much for this amazing and useful library!

Hi @AlexNsbmr
SmoothAppBarLayout has a method called syncOffset and syncOffsetDelayed. After removing some items in recyclerView, you can call one of these methods to refresh appbar offset. Sorry, I haven't put it into the wiki yet.
You don't need to care about syncing offset when new items are added.
Let me know if it solves the problem. Cheers!

@henrytao-me That worked like a charm, thanks a lot for the help and keep up the good work!

Thank man. Nice to know you are using this library. ;) Please help to spread it out ;)


Error saving the pdf file on my device

error saving the pdf file on my device
I try to save the pdf file generated by the plugin but when I choose a (internal or sd) folder and press the save button, the screen of my device is placed black and restart the app to your main view.
to follow the android logcat gives me these errors:
code from my controller:
var page = document.getElementById('prueba');

document.addEventListener('deviceready', function () {
    // cordova.plugins.printer is now available
   $scope.print = function() {
        if($cordovaPrinter.isAvailable()) {
           cordova.plugins.printer.print(page, 'Document.html', function () {
    alert('printing finished or canceled')
});
        } else {
            alert("Printing is not available on device");
        }
    }

}, false);

I'm working on ionic, angular...

Thank you can help me katzer

@OscarGelvez, that looks strange.
Can you try out the following:

Rename Document.html to Document
Replace page through by a sample string like
Test

Katzer've tried what you recommended to me and it works. but I need it is to keep part of an HTML document, and test like this: var page = document.getElementById ('flag'); it worked 2 times but has failed again. and he returned the same error as you send in the picture attached last time.
I work with angular.js, html document and have it loaded by the controller where run the plugin.
You saw strange in the code that send to you? thanks for your prompt response, I hope to help me soon.

Hi @OscarGelvez, you can try to resolve the FileNotFoundExceptionby changing the path. The base url points to assets/www/.
So assets/native_blob_64.bin should be ../native_blob_64.bin.


Add time machine for debugging

It's really hard to work on stuff in the summertime, so I made a time machine!

screenshot
in action

Notes

I wanted a simpler way to flip all the parts of the app to a new day (and hopefully it's useful to browse particular days when investigating bugs). The existing mechanism in the screens section didn't change the query date for Weather Data, for example
Observations list is still querying starting at now, I haven't looked into that but I assume/hope it's pretty easy to fix
I didn't make the selected date sticky across runs
There's nothing in the UI that tells you that you're browsing a particular date (which is one reason I didn't make it sticky)
There's nothing to stop you from picking a stupid date like 1855, so don't do that
I'll keep building the collection of good days/times to view

This could be especially useful when exploring those weird times around midnight UTC / local midnight / local forecast update time 😬

here's a movie showing that the obs list keeps working at startup, but now it also works when viewing a different date. 🎉
https://github.com/stevekuznetsov/avalanche-forecast/assets/101196/4e34cc57-5b2a-4814-abce-61008c16b6b1


[FSDE-18254] Migrate Utilities pages to new Vue documentation

[X] Border (ready for review)
[x] Color (ready for review)
[x] Display (ready for review)
[x] Flex (ready for review)
[x] Image (ready for review)
[x] Opacity (ready for review)
[x] Overflow (ready for review)
[x] Position (ready for review)
[ ] Shadow
[ ] Sizing
[ ] Spacing
[ ] Text
[ ] Vertical-align
[ ] Z-index

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/2/. :white_check_mark:

You can check this PRs instance in https://11332459257f3720d927d9428e48e47380fd4a67-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-387-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/3/. :white_check_mark:

You can check this PRs instance in https://bfb49ac8f1526a8c5163675df3cd8933ef68d3da-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-387-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/4/. :white_check_mark:

You can check this PRs instance in https://f42e4376b60bd19d7d16a5988d4defb3f9196a0a-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-387-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/5/. :white_check_mark:

You can check this PRs instance in https://cc6a036fc602cff5b3e762673a166d810265dd2f-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-387-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/6/. :white_check_mark:

You can check this PRs instance in https://b8e145110fb2d869774ea53b34e0ac2d297d96d0-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-387-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline has run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/7/. :white_check_mark:

You can check this PRs instance in https://b1604839284c9952bdb8fd97039b21995c71bee6-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-387-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/8/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/9/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/10/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/11/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/12/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/16/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/17/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/19/. :x:

The CI pipeline did not run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-387/20/. :x:


cannot find name ‘FileSystemFileHandle.

"Version used
-"browser-fs-access":  "^0. 31.01
"ts-node": "~9.1. 11
"typescript":  "~4.3.5",
node v14.17.6
npm v6.14.15
Issue
Below error is showing up in logs while starting the application
Error: libs/node modules/browser-fs-access/index.d.ts:147:20 - error TS2304: Cannot find name 'FileSystemFileHandle'
existingHandle?: FilesystemFileHandle | null,
Error: libs/node modules/browser-fs-access/index.d.ts:157:30 - error TS2304: Cannot find name 'FilesystemFileHandle'
filePickershown?: (handle: FileSystemFileHandle | null) => void | null
Error: libs/node modules/browser-fs-access/index.d.ts:158:12 - error Is2304: cannot find name "FilesystemFileHandle"
: Promise;

This seems to be caused by the same root issue as https://github.com/tldraw/tldraw/pull/660#issuecomment-1113170053. In this thread, @andarist was mentioned as potentially being able to help.

@tomayac I'm on vacation rn but I might take a look in a week when I get back. Don't hesitate to ping me again if I don't - sometimes things just slip through the cracks

Enjoy your vacation! If we find a fix for this, eventually tldraw could use the module as a direct dependency, rather than maintaining a local copy.

@aradhyakalva the most likely fix for your problem is to add this to your tsconfig.json::
{
  "compilerOptions": { "lib": ["DOM"] }
}

This seems to be fixable as per the instructions given in the comment above.


Backend error when clicking Setting - Account after upgrade to v1.1.1

Describe the bug
When clicking on Setting - Account, the backend interface "answer/api/v1/connector/user/info" returns an error. The response data is:
 {"code": 500,"reason": "base.database_error", "msg": "Data server error.", "data": null}
This problem did not exist before. The error started happening after upgrading from v1.1.0 to v1.1.1. The deployment platform is Docker.
To Reproduce
Steps to reproduce the behavior:
Click on Setting - Account
The interface "answer/api/v1/connector/user/info" will return the error response above
Expected behavior
The interface "answer/api/v1/connector/user/info" should return user info data instead of error.
Platform (please complete the following information):

Device: Desktop
OS: Ubuntu 20.04
Version: Upgraded from v1.1.0 to v1.1.1

Since my native language is not English, this issue was written with the assistance of an AI. Please let me know if there are any errors that need correcting.

@hikae Sorry, if you have configured any connector plugins? Can you provide a log message of the error that occurred?

No, I have not configured the connector plugin.
Here is the log

@hikae From the logs, it appears that the problem is caused by the user_external_login table not existing. The strange thing is that this table should have been created in v1.0.5. You can try to resolve this issue by first manually doing an upgrade in the following way.

Start and enter the docker container: docker exec -it answer bash answer is your container name.
Execute the upgrade command manually to upgrade: answer upgrade -f v1.0.5
If the upgrade fails in the process, please reply to the upgrade failure log.

@LinkinStars The issue has been resolved. Thank you very much!


Output log of track UI event when workflow is submitted

Summary
Output log of track UI event when workflow is submitted.
Specifically, we would like to track the following cases

Workflow resubmit
Workflow submit from WorkflowTemplate
Submit CronWorkflow

Additionally, it would be nice to be able to track the name of the workflow as well.
Use Cases
It can serve as an audit log by recording who performed which workflows.

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

dupe of https://github.com/argoproj/argo-workflows/issues/4271 and https://github.com/argoproj/argo-workflows/issues/10257

dupe of #4271 and #10257

ostensibly yes, those should support some method of an immutable log of events server-side.
That's not exactly the same of the title of this issue, which is on UI events sent to the API. Notably, those are spoofable and easily skippable as they are client-side in the browser and so should not be relied upon in general. Whereas server-side events effectively require cluster-admin to spoof (at which point, it's not necessarily considered a spoof at all).

It can serve as an audit log by recording who performed which workflows.

The description does say "audit log" though, so I think the intent of this issue is correctly covered by those, so marking as duplicate as such.


Publishing is broken

Running "gitstash:pop" (gitstash) task
Warning:  Use --force to continue.

Aborted due to warnings.

@sedge, can you figure out what this is?


Regression in ObjectStringMessageConverter which no longer handles text/* contentType

This change introduced this regression.

Tagging @sobychacko @sabbyanandan for reference.


Saving xls files with foreign characters in the name

If I try to save a file with the name:
'JWC071397房静' . $now->format('Y') . '年' . $now->format('m') . '月' . $now->format('d') . '日订单'
It gets saved as:
JWC071397æˆ¿é™2016å¹´01æœˆ02æ—¥è®¢å•
I am using ->store('xls')

Not sure what I can do about it? We just pass the filename to the parent package. Perhaps you better ask there.


Bump web3 version in set-protocol-contracts

failing due to this ganache bug: https://github.com/trufflesuite/ganache-core/issues/339


ClientApiGeneratorv2 - Requesting information/documentation.

Hey @srinivasankavitha  - hope you are well.
I was looking at CodeGen.kt, and I noticed a client API v2 in DGS code-gen.
@Parameter(property = "generateClientApiV2", defaultValue = "false")
	private boolean generateClientApiV2;

We plan on using DGS as a client SDK for Intuit GraphQL API consumers and I was hoping if you could share some details in terms of new features in V2 and any documentation of differences between v1 & v2.
Best,
Anshul

Hi Anshul,We recently implemented the v2 api as an experimental feature. It solves a lot of implementation issues in the v1 API. It’s mostly the same except a minor change in how you cereals the query. The release notes have the difference described. This hasn’t quite made it into the official documentation since we are still in the process of seeking feedback from our internal users. You should be able to go ahead and use it in any case, just keep in mind that we may slightly update the API. The intention is to make v2 the default in the future.Hope this helpsKavithaOn Mar 10, 2023, at 11:54 PM, Anshul Sharma @.***> wrote:
Hey @srinivasankavitha  - hope you are well.
I was looking at CodeGen.kt, and I noticed a client API v2.
@Parameter(property = "generateClientApiV2", defaultValue = "false")
private boolean generateClientApiV2;
We plan on using DGS as a client SDK for Intuit GraphQL API consumers and I was hoping if you could share some details in terms of
Documentation of difference between v1/v2
Any New Features supported.
Best,
Anshul
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Hey @srinivasankavitha  - thanks for the note. Could you point me to the release notes for the v1/v2? (Couldn't seem to find it in the repo).

https://github.com/Netflix/dgs-codegen/releases/tag/v5.7.0

Thank you, @srinivasankavitha!


fix/contains list

fixes supabase-community/supabase-flutter/issues/201

@dshukertjr I'm confused, whether an array needs to be {} or (). I've tested all filters in the newest commit and all needed the {} format. Except in. That's the only one I've found that needs ().

@Vinzent03
Hmm, so it seems like there was a breaking change on Postgrest huh? Let me check...

I think I would have noticed this, but may we upgrade the postgrest version and schema in the tests?


Add openinfra day conference contribution entry from A.Diab to website

Add on scs website
https://scs.community/conferences/
in section
Conference Contributions (English)
Event title: Openinfra Day Hungary
Event Date: June 3, 2024
Talk Title: sovereign cloud stack and open services cloud - a powerful couple
Speakers: Alexander Diab, Swaroop Raghupathy
Video Link: https://www.youtube.com/watch?v=2pNo8F3AMrw
Slides are attached to this issue
scs-osc-alex-oif-20240603.pdf

See https://github.com/SovereignCloudStack/website/pull/1053


Synchronization error (auth error) on Brackets sprint 44

Brackets version: 0.44
AEM Sightly Brackets Extension: 0.6
Issue:
After the upgrade to the latest brackets + AEM extension every synchronization request returns auth error.

Hey guys.
I'm getting the same error message with the current version (0.0.12).
I already tried removing and installing the extension again but it didn't work.
I tried yesterday on my Mac and it worked just fine but on a Windows 8 laptop it throws the auth error.
Is there any other workaround valid for 0.0.12?

I removed the last slash from the "Server URL" field and it worked.
http://localhost:4502/ -> http://localhost:4502
I'm adding this comment just in case anyone else is wasting time with this.

@roysarango the curious thing in my case is that I had the path without slash, I put the slash and the sync began working again. So, it's looks like what we need to do for un-lock Bracket is just "change" the path.


Adds lightning fabric integration

Closes #742. Fabric is Pytorch Lightning's attempt to abstract out the lightweight parts of their codebase so users can benefit from those without having to entirely adapt Lightning.

Example notebook is included: https://github.com/iterative/dvclive/blob/38d1f40843be5adc49ed718884f04496a7f376ff/examples/DVCLive-Fabric.ipynb
Docs PR: https://github.com/iterative/dvc.org/pull/5039

The existing Lightning logger was updated to inherit from this one. To make everything work with the existing Lightning logger, I added a sync method that decouples next_step from saving all the info to Studio, dvc.yaml, etc. I made it public, but no strong opinion on whether it should be public or documented.
See the Tensorboard logger in lightning for an example of another logger:

Docs
Fabric logger
Lightning logger

Codecov Report
Attention: 130 lines in your changes are missing coverage. Please review.

Comparison is base (8406920) 88.79% compared to head (2f81b3f) 86.81%.

Files
Patch %
Lines

src/dvclive/fabric.py
6.75%
69 Missing :warning:

tests/frameworks/test_fabric.py
25.00%
27 Missing :warning:

tests/frameworks/test_lightning.py
0.00%
17 Missing :warning:

src/dvclive/lightning.py
0.00%
16 Missing :warning:

src/dvclive/utils.py
50.00%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #749      +/-   ##
==========================================
- Coverage   88.79%   86.81%   -1.99%
==========================================
  Files          53       55       +2
  Lines        3357     3450      +93
  Branches      294      304      +10
==========================================
+ Hits         2981     2995      +14
- Misses        337      416      +79
  Partials       39       39

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Great work! Thanks, @dberenbaum for pushing forward integrations. Some comments as I'm reviewing / running it:

While running and after an experiment I can't see plots in VS Code (while it's visible in Jupyter just fine)

@dberenbaum looks good to me overall (I didn't review really deep the Fabric existing loggers to actually deeply review the implementation, but overall it looks fine). I've enabled mypy back + left a comment about VS Code to review, probably also Studio needs to be reviewed / tried out.

Should mypy be included in https://github.com/iterative/dvclive/blob/main/.pre-commit-config.yaml?

I would ask @skshetry and the team on what the current state of the art for this :)

@skshetry How should mypy checks be handled?

ping @skshetry

I'm able to see it in VS Code and Studio:
https://github.com/iterative/dvclive/assets/2308172/ce55849b-6825-4704-b934-ab85234f464f
https://github.com/iterative/dvclive/assets/2308172/dec278b2-f290-42de-b169-e49c22979389

I would ask @skshetry and the team on what the current state of the art for this :)

We use nox for environment management on py-template based projects. So, you can pip install nox and then nox -s lint will take care of everything related to linting.
Since dvclive seems to have removed nox, you can try adding mypy to pre-commit but up to you.
Look into dvc's pre-commit config.

Depends on #757 now. The remaining test failure is unrelated.


SourceKit: switch to new mangling in ide::printDeclTypeUSR

This was still missing.

@swift-ci Please smoke test and merge


Add NO_THREAD_NUM constant and make gtl_threadNum invalid by default.

Per #85, targeting dev branch

Looks good - I'll merge and test soon.

Tested and merged, many thanks!

I forgot to merge the previous PR into dev first, so rebased dev on master. The merged commit is now at: https://github.com/dougbinks/enkiTS/commit/4239628e9a717adb38655fb394da1a8ce473a30f


[Gssoc'21] 404 page

Is your feature request related to a problem? Please describe.
There is not page for 404 request

Describe the solution you'd like
I want to add a 404 page to it.

Nice idea @arpit456jain. Go ahead 🚀

Ok @kritikaparmar-programmer  thanks

https://user-images.githubusercontent.com/55352601/114156578-5c464d80-9940-11eb-83e5-17d4536bc834.mp4
https://user-images.githubusercontent.com/55352601/114156599-61a39800-9940-11eb-9460-1ff0c8c73f6a.mp4
@kritikaparmar-programmer how this .??
can I make a PR for this.

@kritikaparmar-programmer kindly select one of the above 404 page or tell me if I have to make another one .
then I can create a PR

2021-04-09.14-29-13.mp4
2021-04-09.14-29-55.mp4
@kritikaparmar-programmer how this .??
can I make a PR for this.

I think this one looks nice, great work @arpit456jain , you can make a pr for this :)

2021-04-09.14-29-13.mp4
2021-04-09.14-29-55.mp4
@kritikaparmar-programmer how this .??
can I make a PR for this.

I think first one looks nice, great work @arpit456jain , you can make a pr for this :)

Ok @kritikaparmar-programmer i am making a PR

@kritikaparmar-programmer kindly review my PR


Added missing EMS Cloud show route

https://bugzilla.redhat.com/show_bug.cgi?id=1268826

Closing as #4678 fixes this issue another way.


Fix image repository for releases

What this PR does / why we need it:
Fix image repository for releases
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

Fix image repository for releases

/invite @ccwienk


minimist versions used in this contains couple of known vulnerabilities

This package contains outdated versions of minimist that contain couple of vulnerabilities.

I thiiiiiink @adnanrahic just fixed that earlier today.  Could you please check the latest version?

Hey @ipmanlk ! Yes, we're aware of this. It's an issue with the gc-stats module and they're aware of it. You can see here that there's an open PR to be merged as soon as the maintainer sees it.

We forked the repo and maintain our own fork. The dependencies are updated now.


dealer list forgets about icons

Android app release 5.0.0
Flinging up and down in the dealer list,
thumbnail icons for dealers start to randomly vanish.
The more you scroll, the more icons disappear.
Not replaced with a placeholder or loading animation like Picasso, Glide or similar image-loading libraries do but with a blank background.
Not appearing again after waiting a while

I can reproduce. The image library uses glide under the hood, so I'm guessing it's an upstream bug. I can check if changing some options helps.

I don't think glide is responsible.
The icons disapear when out of screen.
Thus when the list elements are recycled.
It looks like an attempt to load them is made only once
and they are not stored in the model but in the view and then not loaded again when the view gets recycled.

There's compatibility options for images in the virtualized list implementation we use, I'll have a look.

So far it doesn't help, might be an issue because we have section headers, which is a valid, but more elaborate way of using flash list.
So far I've upgraded the versions, applied recycleKey, removed the placeholder, but no luck yet.
We might need to push this issue back unless I have an eureka moment

Were in the code is it?
I develop native Android apps, so react isn't my playing field but I have a good understanding of the lifecycle and recycling of objects.

https://github.com/eurofurence/ef-app_react-native/blob/bd199a93ab722a988fe8c7c64def432c44f51c9b/src/components/dealers/DealersSectionedList.tsx#L58
https://github.com/eurofurence/ef-app_react-native/blob/bd199a93ab722a988fe8c7c64def432c44f51c9b/src/components/dealers/DealerCard.tsx#L67

I suggest to add an onError in additipn to  onLoadStart and onLoadEnd  here
https://github.com/eurofurence/ef-app_react-native/blob/bd199a93ab722a988fe8c7c64def432c44f51c9b/src/components/generic/atoms/Image.tsx
As it can be reproduced locally, a simple logcat-output should tell us why it fails.

I had a console log in there but it didn't trigger


F# HelloWorld

Hi there!
Would you appreciate if I create some F# examples?
My personal target is to learn photo.actor and popularize wonderful programming language.
Already learned that actor goes to the endless Restart loop on unhandled errors.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add type alias for SessionError for hasql-1.7 compatibility

@andremarianiello I don't mind either way. I guess there's nothing to lose by upping the hasql bounds - if users want compatibility with older hasql they could use an older hasql-transaction-io and not lose any functionality.


[WIP] Utility for diagnose pg locked - Step 2

server IDs to friendly names. Since zone name and zone id can be obtained from step 1, we do in this step is to look up only IP address and hostname based on the compressed form server id we got from step 1.
Story: https://www.pivotaltracker.com/n/projects/1608513/stories/147876483
\cc @yrudman @jrafanie @gtanzillo
@miq-bot add-label wip, tools

As you can see this script need to run under rails console. A question: do we need to make step 1 to step 3 totally a command line tool like in step 1, allow us to connect any postgres server to dump yml file or it's sufficient to run locally as this one, running under a rails console.

@ailisp Sorry, I put some of the comments in this step 2 PR that belong in the step 1 PR.

A sample output:
---
- id: '1'
  guid: f6860425-5d14-40e6-b564-2d3c2638502d
  status: started
  started_on: '2017-07-11 14:45:34.577126'
  stopped_on:
  pid: '8583'
  build:<PHONE_NUMBER>4528_004f771
  percent_memory: '6.84'
  percent_cpu: '0.19'
  cpu_time: '4502'
  name: EVM
  capabilities: |
    ---
    :vixDisk: true
    :concurrent_miqproxies: 0
  last_heartbeat: '2017-07-11 20:39:13.040255'
  os_priority: '30'
  is_master: t
  logo:
  version: master
  zone_id: '1'
  upgrade_status:
  upgrade_message:
  memory_usage: '406007808'
  memory_size: '732958720'
  hostname:
  ipaddress: <IP_ADDRESS>
  drb_uri: druby://<IP_ADDRESS>:36134
  mac_address: 52:54:00:e6:54:4b
  vm_id:
  has_active_userinterface: t
  has_active_webservices: t
  sql_spid: '8729'
  rh_registered:
  rh_subscribed:
  last_update_check:
  updates_available:
  log_file_depot_id:
  proportional_set_size: '342736000'
  has_active_websocket: t
  system_memory_free: '2558988288'
  system_memory_used: '3380850688'
  system_swap_free: '6438252544'
  system_swap_used: '0'
  has_active_cockpit_ws: f

@gtanzillo @jrafanie @yrudman
Finished, please review. Because step 2 is a periodically running script, password can be put in a file and with -f or in environment variable PGPASSWORD

@miq-bot remove-label wip


Use durationSincePosted in how-to post

See in PostList/ListRow/index.tsx durationSincePosted function.
Use the same function in PostView to display the duration when the post was made.

anyone working with this issue? I am interested

Hi @tanvirraj ! Nope you can go for it. Let me know if you start so I'll add the in progress label :v:

@BenGamma created a  PR for this issue

Merged with #469


Adapt MemoryOrder definition for C++ 20

When compiling the code with C++ 20 the following error message is produced:
enumerator value for ‘MEMORY_ORDER_RELAXED’ must have integral or unscoped enumeration type

This is because with C++ 20 the type of those values changed to an enum class. The static_cast extracts the numeric values so they can be used here as before.

Thanks for the contributions @SeverinLeonhardt, this one as well as the other two PRs.  Unfortunately I've been completely swamped recently (thus the delay in getting back to you) but I'll try to take a look at these PRs next week!

Finally got a chance to take a look at this one @SeverinLeonhardt.  That's a nice and elegant way to solve that issue... and degrades nicely for the C++11 case (which is the default).
Many thanks for the solid contribution!  And again, my apologies for the delay; we're trying to get back on track here.


[SPARK-13320] [SQL] Support Star in CreateStruct/CreateArray and Error Handling when DataFrame/DataSet Functions using Star

This PR resolves two issues:
First, expanding * inside aggregate functions of structs when using Dataframe/Dataset APIs. For example,
structDf.groupBy($"a").agg(min(struct($"record.*")))

Second, it improves the error messages when having invalid star usage when using Dataframe/Dataset APIs. For example,
pagecounts4PartitionsDS
  .map(line => (line._1, line._3))
  .toDF()
  .groupBy($"_1")
  .agg(sum("*") as "sumOccurances")

Before the fix, the invalid usage will issue a confusing error message, like:
org.apache.spark.sql.AnalysisException: cannot resolve '_1' given input columns _1, _2;

After the fix, the message is like:
org.apache.spark.sql.AnalysisException: Invalid usage of '*' in function 'sum'

cc: @rxin @nongli @cloud-fan

Test build #51321 has started for PR 11208 at commit 3b2b448.

Test build #51321 has finished for PR 11208 at commit 3b2b448.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51321/
Test PASSed.

Merged build finished. Test PASSed.

cc @cloud-fan

The PR title looks confusing, Star Expansion is already done, what this PR did is fixing a problem of missing CreateStruct when handle stars and adding a better error message, @gatorsmile could you improve it to make it more clear?

Star Expansion only works when the star are in a UnresolvedFunction.
So far, Spark SQL does not handle star expansion when we use star in the DataFrame or DataSet functions. That is the reason I chose this title. Let me change it.
Actually, I am not sure if CreateStruct and Count are the only two functions that can accept star. Could you help me confirm it? Thanks!

Actually we do handle stars in CreateArray and CreateStruct: https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala#L440-L458, so what you are fixing is the nested CreateStruct, I think we should also add CreateArray too.
One of my concern is:  sometimes we check stars under UnresolvedAlias but sometimes also under Alias, it will be good if you can figure it out and make sure there is no missing case.

uh, I see. The code you posted above is for Project. The error message in the original JIRA is for using star used in Aggregate.
Yeah, we need a clean and complete fix for resolving star. Let me check if can move these into expandStarExpressions.

@cloud-fan The latest commit separates star resolution from the reference resolution, since ResolveReferences becomes pretty long now. Could you help me check if the new changes cover all the cases that can accept star? Thank you! : )

Test build #51512 has started for PR 11208 at commit ac71f39.

Test build #51512 has finished for PR 11208 at commit ac71f39.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51512/
Test PASSed.

Overall LGTM except some comments about tests, thanks for working on it!

Test build #51536 has started for PR 11208 at commit 2c72edf.

Test build #51536 has finished for PR 11208 at commit 2c72edf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51536/
Test PASSed.

retest this please

Test build #51701 has started for PR 11208 at commit 2c72edf.

Test build #51701 has finished for PR 11208 at commit 2c72edf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51701/
Test PASSed.

Merged build finished. Test PASSed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51727/
Test FAILed.

retest this please

Test build #51729 has started for PR 11208 at commit 6b2d609.

Test build #51729 has finished for PR 11208 at commit 6b2d609.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51729/
Test PASSed.

Test build #51854 has started for PR 11208 at commit e060dea.

Test build #51854 has finished for PR 11208 at commit e060dea.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/51854/
Test PASSed.

retest this please.

Test build #52097 has started for PR 11208 at commit e060dea.

Test build #52097 has finished for PR 11208 at commit e060dea.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52097/
Test PASSed.

cc @yhuai

retest this please

Test build #52318 has started for PR 11208 at commit e060dea.

Test build #52318 has finished for PR 11208 at commit e060dea.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52318/
Test PASSed.

Merged build finished. Test PASSed.

cc @yhuai : )

retest this please

Test build #52727 has started for PR 11208 at commit e060dea.

Test build #52727 has finished for PR 11208 at commit e060dea.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52727/
Test PASSed.

cc @yhuai @cloud-fan

retest this please

Test build #52952 has started for PR 11208 at commit e060dea.

Test build #52952 has finished for PR 11208 at commit e060dea.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52952/
Test FAILed.

retest this please

Test build #53008 has started for PR 11208 at commit e060dea.

Test build #53008 has finished for PR 11208 at commit e060dea.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/53008/
Test PASSed.

retest this please

Test build #53376 has started for PR 11208 at commit e060dea.

Test build #53376 has finished for PR 11208 at commit e060dea.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/53376/
Test PASSed.

Merged build finished. Test PASSed.

cc @yhuai

retest this please

Test build #53620 has started for PR 11208 at commit e060dea.

Test build #53620 has finished for PR 11208 at commit e060dea.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/53620/
Test PASSed.

cc @yhuai

Sorry for putting it here for such a long time, overall LGTM, will merge it after you address the new comments, thanks!

@cloud-fan Thank you for your detailed reviews! I know all of you are very busy. Let me know if anything needs a change. Thanks again!

Test build #53655 has started for PR 11208 at commit ba3fe7c.

Test build #53661 has started for PR 11208 at commit 0fce075.

Test build #53655 has finished for PR 11208 at commit ba3fe7c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/53655/
Test PASSed.

Test build #53661 has finished for PR 11208 at commit 0fce075.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/53661/
Test PASSed.

Test build #53685 has started for PR 11208 at commit 50abeec.

Test build #53685 has finished for PR 11208 at commit 50abeec.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/53685/
Test PASSed.

thanks! merging to master!

@gatorsmile @cloud-fan This PR revert the change in https://github.com/apache/spark/pull/3674,  unfortunately the unit test in AnalysisSuite. This test break once we enforce max-iteration check in tests, see https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/54090/testReport/org.apache.spark.sql.catalyst.analysis/AnalysisSuite/union_project__/

@gatorsmile  This PR can't be easily reverted, so could you send a PR to fix it?

I will fix this in #11828


Mouse stops working when using Indicatior Options

Hi, I have been troubleshooting this issue for the past 3 hours but could get it working. Basically whenever I want to use Aura Watch List (any position), in this case Beacon of Virtue in the middle of a frame, whenever I mouseover and cast, my mouse gets disable and I can only move cursor. Clicking etc stops working and my screen is locked.
For raid frames, I only use base Blizzard unit frames and Clique.
Whenever I remove the spell from Aura Watch List it doesnt happen again.
Technical info:

Addon Version: lastest
Client: Retail
Client Patch Version: lastest

Thank you

This should be fixed


Add error-handling to REPL

Now that evaluation returns a Result (#144), we should update the REPL to fail gracefully rather than continue to panic because of unwrapping any errors which result.

Relates to https://github.com/lurk-lang/lurk-web-utils/issues/7

@porcuquine - I can take a look at this if you want to assign it to me.


extra_model_paths.yaml does not work for KwaiKolor's models

Hi kijai,May I ask why extra_model_paths.yaml does not work for Kwaikolors' model? I pointed the path of the diffusers folder to another SSD hard drive, but it didn't work at all. Can you tell me what I'm doing wrong?? Thanks!
`a111:
base_path: C:\Stable-Diffusion\stable-diffusion-webui\
checkpoints: models/Stable-diffusion
configs: models/Stable-diffusion
vae: models/VAE
loras: |
     models/Lora
     models/LyCORIS
upscale_models: |
              models/ESRGAN
              models/RealESRGAN
              models/SwinIR
embeddings: embeddings
hypernetworks: models/hypernetworks
controlnet: models/ControlNet
clip: models/clip
clip_vision: models/clip_vision
unet: models/unet
LLM: models/LLM
inpaint: models/inpaint
diffusers: models/diffusers`

I made pull request.
https://github.com/kijai/ComfyUI-KwaiKolorsWrapper/pull/46
extra_model_paths.yaml,
Only base_path is effective.
Kolors must be under base_path/models/diffusers/ .

I made pull request. #46
extra_model_paths.yaml, Only base_path is effective. Kolors must be under base_path/models/diffusers/ .

I tried your pull request and it works, thank you very much!


Unable to run Gradio demo: VILA with TinyChat

I've encountered a persistent issue while running the Gradio demo: "Gradio demo: VILA with TinyChat" on a local server, despite following the steps here: GitHub Link.
Problem: The model fails to load, and the Model dropdown menu in the Gradio UI doesn’t appear.
Details:

Steps 1 and 3 (launching the controller and model worker) seem to work, with the controller returning a 200 response.
Path to models "Efficient-Large-Model/VILA1.5-3b" (fp16-hf-model) and "vila-1.5-3b-w4-g128-awq.pt" provided in the model worker
If I run Step-1,2,3, sequentially i noticed model passed in step-3 to controller never getting loaded in Gradio server. This means controller is unable to interact with Gradio server in the subsequent time as it is evident from screenshot here:

if I run Step-1,3, first and step-2 at last then I can see that model in the "Model" section although unable to select it.

Overall I feel Controller is unable to interact with Graidio server after the 1st run. Any guidance on resolving this would be greatly appreciated.

@ys-2020  any ideas of what is happening?


Bug fix + speedup

The conservative_impl_trait feature made it not work on my stable-channel rust, so I commented it out... I don't know what you want to do with it :)

conservative_impl_trait was not yet in stable back when I wrote this code, nowadays it is and the feature flag is not needed anymore.


Error with caches

Locally it is working but in remote is like it is unable to get a dependency. I am using v2 beta 7
https://github.com/JavierSegoviaCordoba/intellij-theme-javiersc/runs/4039312589?check_suite_focus=true

@JavierSegoviaCordoba I've just released v2.0-rc.2 which should fix this issue for you. Please give it a spin and report any problems.

It is working, and just to say congratulations!
The build time has been reduced to half at minimum, even more almost always, since I am using this action instead of running commands plus the official GitHub Actions cache with the default configuration in their README.
The cache size is minimum (in a little project I have it even has less than 20MB, meanwhile with the official cache action it was taking more than 1500MB, just ridiculous the insane difference in both aspects. Again, congratulations.

Thanks for the positive feedback! One the action is stabilized my goal is to make it the official recommendation for running Gradle, and get the official docs updated.
I think you might be underestimating the amount of cache used: there's not much the action can do to reduce this since one of the dependencies is an entire Intellij distro. You can get a good overview of the cache usage here: https://github.com/JavierSegoviaCordoba/intellij-theme-javiersc/runs/4063158563?check_suite_focus=true#step:22:27


npm install broken - ionic 2 initial app setup broken

When installing Ionic as per the guide and creating a new app, npm install throws broken dependencies on critical packages.
Therefore
ionic run android
fails completely
Steps to reproduce:

uninstalled node and all npm related stuff for good measure
followed the ionic 2 installation steps by the book (install node, install ionic, install cordova, create app with -v2
run npm install

npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

environment is
ionic info
Your system information:

Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS:
Node Version: v6.8.0

but it's the same with node 4.6.0

+1

I had the same problem. what worked for me was removing the ^ character from all dependencies in package.json so that it uses specific versions instead.

I had this problem, too. And remove the ^ character helped, but what's the reason, conflict between dependences?

just in case this could help:
# npm outdated
Package                   Current                   Wanted      Latest  Location
@angular/compiler-cli       0.6.4                    0.6.4       2.1.0  ionic-hello-world
@ionic/app-scripts         0.0.30                   0.0.30      0.0.33  ionic-hello-world
ionic-angular          2.0.0-rc.0  2.0.0-rc.0-201610131811  2.0.0-rc.1  ionic-hello-world

@perdjurner and @markisme
forcing the specific versions helped me too with the dependencies issue, but default app, with no changes, still doesn't compile.
could you do a run and see if it compiles for you?
# ionic platform add android
... ... works fine
# ionic run android
Running 'run:before' npm script before run
> ionic-hello-world@ build D:\#Radoo\www\cutePuppy
> ionic-app-scripts build
[10:41:01]  ionic-app-scripts 0.0.30
[10:41:01]  build prod started ...
[10:41:01]  clean started ...
[10:41:01]  clean finished in 11 ms
[10:41:01]  copy started ...
[10:41:02]  ngc started ...
[10:41:02]  lint started ...
[10:41:02]  copy finished in 108 ms
[10:41:02]  lint finished in 641 ms
[10:41:08]  ngc: Error: Compilation failed. Resource file not found: D:/home.html
    at Object.get (D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler-cli\src\codegen.js:123:27)
    at DirectiveNormalizer._fetch (D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler\bundles\compiler.umd.js:13455:45)
    at DirectiveNormalizer.normalizeTemplateAsync (D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler\bundles\compiler.umd.js:13498:23)
    at DirectiveNormalizer.normalizeDirective (D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler\bundles\compiler.umd.js:13473:46)
    at D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler\bundles\compiler.umd.js:12982:139
    at Array.map (native)
    at D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler\bundles\compiler.umd.js:12982:80
    at Array.map (native)
    at OfflineCompiler.compile (D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler\bundles\compiler.umd.js:12975:31)
    at D:\#Radoo\www\cutePuppy\node_modules\@angular\compiler-cli\src\codegen.js:108:18

[10:41:08]  ngc: Compilation failed

[10:41:08]  ngc failed:  NGC encountered an error

[10:41:08]  Error: NGC encountered an error
    at ChildProcess.<anonymous> (D:\#Radoo\www\cutePuppy\node_modules\@ionic\app-scripts\dist\ngc.js:62:24)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at ChildProcess.cp.emit (D:\#Radoo\www\cutePuppy\node_modules\cross-spawn\lib\enoent.js:40:29)
    at maybeClose (internal/child_process.js:877:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)

Error running ionic app script "build": Error: NGC encountered an error

npm
ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build"
npm ERR! node v6.8.0
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! ionic-hello-world@ build: `ionic-app-scripts build`
npm ERR! Exit status 1
npm
ERR!
npm ERR! Failed at the ionic-hello-world@ build script 'ionic-app-scripts build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ionic-hello-world package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!
     ionic-app-scripts build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ionic-hello-world
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ionic-hello-world
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     D:\#Radoo\www\cutePuppy\npm-debug.log

Caught exception:
 undefined

Mind letting us know? https://github.com/driftyco/ionic-cli/issues

I am not moving it to the ionic-cli repo issues, since this would probably be implicitly solved by fixing the dependencies in the npm packages...

issue here https://github.com/marcoturi/ionic2-boilerplate/issues/6 also seems related

Can you try to upgrade ionic-app-scripts?
npm i<EMAIL_ADDRESS>

@ZiFFeL1992
based on other subsequent related reports and proposed workarounds, I managed to get the dependencies problem solved, by using
  "dependencies": {
    "@angular/common": "^2.0.0",
    "@angular/compiler": "^2.0.0",
    "@angular/compiler-cli": "0.6.2",
    "@angular/core": "^2.0.0",
    "@angular/forms": "^2.0.0",
    "@angular/http": "^2.0.0",
    "@angular/platform-browser": "^2.0.0",
    "@angular/platform-browser-dynamic": "^2.0.0",
    "@angular/platform-server": "^2.0.0",
    "@ionic/storage": "^1.0.3",
    "ionic-angular": "^2.0.0-rc.1",
    "ionic-native": "^2.0.3",
    "ionicons": "^3.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "^0.6.21"
  },
  "devDependencies": {
    "@ionic/app-scripts": "^0.0.33",
    "typescript": "^2.0.3"
  },

but notice compiler-cli and rxjs are strict for this to work.
and yes app-scripts are at 0.0.33
remaining problem however is that compile still won't work.

UPDATE:
there might have been a problem with my environment.
retraced my steps, reinstalled everything including node, restarted windows, now blank app compiles just fine.
for the record, package.json minimal workaround for the dependencies problem is pinning two packages:
    "@angular/compiler-cli": "0.6.2",
    "rxjs": "5.0.0-beta.12",

observe the lack of the ^
and updating one:
    "@ionic/app-scripts": "^0.0.33",

thank you.


Check Omaha sha1 hash if available and Verify checksum after download, with retry

Check Omaha sha1 hash if available
Old Nebraska servers were missing the newly introduced sha256 attribute and might only serve paylads with the regular sha1 attribute set. The generic payload is also just using the regular sha1 attribute because at that time a different extension was used which holds the sha256 checksum for the generic payload.
Support the regular Omaha sha1 hash for use with old Nebraska servers. This makes it also easy to test with the generic payload.

Verify checksum after download, with retry
The self.verify_checksum(...) call's return value wasn't checked in the
package download call. Even if we do it there we should rather move it
into the retry loop and make it explicit whether we expect certain
checksums or not.
Check the checksum after the download, and also retry when it
mismatches.

How to use
Fixes https://github.com/flatcar/ue-rs/issues/31
I think this is the last piece to start using it in Flatcar.
Testing done
RUST_LOG=debug target/release/download_sysext -p ~/kinvolk/scripts/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-au-key/files/official-v2.pub.pem -m oem-azure.gz -o /var/tmp/outdir/ -u https://update.release.flatcar-linux.net/amd64-usr/3815.0.0/oem-azure.gz -v
RUST_LOG=debug target/release/download_sysext -p ~/kinvolk/scripts/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-au-key/files/official-v2.pub.pem -m oem-azure.gz -o /var/tmp/outdir/ -i /var/tmp/beta-response -v
RUST_LOG=debug target/release/download_sysext -p ~/kinvolk/scripts/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-au-key/files/official-v2.pub.pem -m flatcar_production_update.gz -o /var/tmp/outdir/ -i /var/tmp/beta-response -v

I've fixed all warnings and added running clippy in the CI, otherwise it's too easy to forget.


[FEATURE] docker context support

Signed-off-by: Batuhan Apaydın<EMAIL_ADDRESS>
What
I realized that when we work with different Docker Daemons running on remote hosts by using the Docker Context feature, k3d couldn't get corresponding Docker Daemon information properly.
Why
I tried the same demo with the KinD tool, and because it is using docker with an exec call, it works well with different Docker Contexts. So k3d should also be working too.
This PR fixes #593.
Implications
This PR comes with a lot of updates within the vendor directory.

Hi @developer-guy , I really don't know why I didn't look into this again so far, sorry!
Can you please update the PR to use main-v5 as the base?

Fixed the conflicts and merged it manually. Thanks for your contribution @developer-guy !

Unfortunately, this breaks when using a non-tcp docker context (e.g. SSH).
I will create a follow-up PR for this :+1:

Hey @iwilltry42
Does this merge support HTTP docker hosts e.g.
DOCKER_HOST=localhost:2375

Currently k3d returns this
Failed Cluster Preparation: Failed Network Preparation: error during connect: Get "https://localhost:2375/v1.24/networks?filters=%7B%22name%22%3A%7B%22%5E%2F%3Fk3d-k3s-default%24%22%3Atrue%7D%7D": http: server gave HTTP response to HTTPS client

Hi @jawabuu , I'm currently testing with #674 (follow-up PR for this), so results might differ slightly.
I created a docker-in-docker container locally and ran the docker daemon on a remote physical server.
Those options worked:

unix://
ssh://
tcp:// (which is implied, if you don't specify a protocol) <- this is what you have

The only thing I didn't test successfully yet is a TLS protected daemon process.