runtime: AVX512 register state clobbered by signal on macOS

What version of Go are you using (go version)?

% go version
go version go1.17.2 darwin/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
 % go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/vsi/Library/Caches/go-build"
GOENV="/Users/vsi/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/vsi/go/pkg/mod"
GONOPROXY="github.com/vsivsi"
GONOSUMDB="github.com/vsivsi"
GOOS="darwin"
GOPATH="/Users/vsi/go"
GOPRIVATE="github.com/vsivsi"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/Cellar/go/1.17.2/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.17.2/libexec/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.17.2"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/kp/kjdr0ytx5z9djnq4ysl15x0h0000gn/T/go-build4285878374=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?
In writing AVX-512 assembly functions using the Go assembler (via Avo), I began to notice unexplained intermittent test failures. A lot of painful investigation revealed that golang async preemption does not seem to be properly save/restoring AVX512 state when assembly functions are interrupted. From visual inspection of the runtime/preempt_amd64.s source, it also seems likely that AVX/AVX2 state (YMM upper 128 bits) may not be properly save/restored either, but I have not encountered/tested that case in my own code.
A complete minimal reproduction illustrating the clobbering of the AVX512 K1 opmask register is here:
https://gist.github.com/vsivsi/fff8618ace4b02eb410dd8792779bf32
Note, in my testing running with GODEBUG=asyncpreemptoff=1 rescues every failure case I have identified.
What did you expect to see?
I expected all relevant processor state to be properly restored in an assembly function following an async preemption.
What did you see instead?
Critical state is being clobbered, leading to intermittent undefined behavior.

CC @ianlancetaylor, @prattmic, @FiloSottile.

Hmm, this may be the VZEROUPPER we introduced in CL 219131 to fix #37174. Or it may be worse than that, I'm not sure.
@cherrymui
@vsivsi Can you try patching out #ifdef GOOS_darwin clause in runtime/preempt_amd64.s and see if that helps?

The runtime doesn't async preempt assembly functions. asyncPreempt (the function in runtime/preempt_amd64.s) should not be executed if it is running in an assembly function. The runtime sends a signal, but if the signal lands in an assembly function the signal handler will return immediately without actually preempt.
I suspect that the darwin kernel doesn't preserve AVX512 state when handling signals. Then the problem would not be preemption, but any asynchronous signal could cause it to fail, including profiling signals or user signals.
What version of macOS are you running on?
I have a vague memory that Apple suggests that before using  AVX512 one must check its availability with some sysctl  (but I'm not really sure). Do we do that?

@randall77  I can try that, but the initial issue I encountered (as reflecting in the repro case) was with clobbering of the K0-K7 opmask registers, which are distinct from the vector registers affected by VZEROUPPER, etc.
@cherrymui Yes, Darwin requires special checking to identify AVX512 support. I submitted a fix for this last year. See here for details on that saga: https://github.com/golang/go/issues/43089
It is quite possible that this issue I'm seeing is new with golang 1.17. Is it possible that the new assembly stubs required for inter-operation with the new function parameter passing spec could be interfering with the assembly code detection during preemption?

How we detect asm routines during preempt changed in Go 1.18. (https://github.com/golang/go/commit/c2483a5c034152fcdfbb2e6dbcf48b0103d8db6a#diff-47fd68949147d260b91998c0d6eabffcdb74c58991fc386b40e14a6ed710b17d)
Does this reproduce at tip? (I'm AFK.)

It does, with:
% go version
go version devel go1.18-6113dacf32 Sat Oct 30 18:30:34 2021 +0000 darwin/amd64
% sysctl machdep.cpu.brand_string
machdep.cpu.brand_string: Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
% sw_vers
ProductName:	macOS
ProductVersion:	11.6
BuildVersion:	20G165

% go test .
--- FAIL: TestMask (0.43s)
    maskcheck_test.go:16: Failed for iteration: 0 with return value: 88007197
    maskcheck_test.go:16: Failed for iteration: 1 with return value: 61939268
    maskcheck_test.go:16: Failed for iteration: 2 with return value: 50093958
    maskcheck_test.go:16: Failed for iteration: 3 with return value: 57687622
    maskcheck_test.go:16: Failed for iteration: 4 with return value: 55302035
    maskcheck_test.go:16: Failed for iteration: 5 with return value: 50302791
    maskcheck_test.go:16: Failed for iteration: 6 with return value: 55661062
    maskcheck_test.go:16: Failed for iteration: 7 with return value: 54177345
    maskcheck_test.go:16: Failed for iteration: 8 with return value: 58187395
    maskcheck_test.go:16: Failed for iteration: 9 with return value: 51991146
    maskcheck_test.go:16: Failed for iteration: 10 with return value: 56438664
    maskcheck_test.go:16: Failed for iteration: 11 with return value: 54676159
    maskcheck_test.go:16: Failed for iteration: 12 with return value: 50955817
    maskcheck_test.go:16: Failed for iteration: 13 with return value: 52912278
    maskcheck_test.go:16: Failed for iteration: 14 with return value: 57776646
    maskcheck_test.go:16: Failed for iteration: 15 with return value: 54628233
    maskcheck_test.go:16: Failed for iteration: 16 with return value: 55309645
    maskcheck_test.go:16: Failed for iteration: 17 with return value: 52719044
    maskcheck_test.go:16: Failed for iteration: 18 with return value: 57165517
    maskcheck_test.go:16: Failed for iteration: 19 with return value: 57336883
FAIL
FAIL	x	0.570s
FAIL

It is quite possible that this issue I'm seeing is new with golang 1.17. Is it possible that the new assembly adapter funcs required for inter-operation with the new function parameter passing spec could be interfering with the assembly code detection during preemption?

It seems unlikely. You can try building with Go 1.17 with GOEXPERIMENT=noregabi environment variable set (at go run/build/test time).
Also, you can try running the program with preemption disabled but CPU profiling enabled and see if profiling signal changes anything. You can also  try running the program with preemption disabled  while having a separate process sending SIGURG signals to it.  Thanks.

@cherrymui  Good suggestions. Running the repro test case as:
GODEBUG=asyncpreemptoff=1 /usr/local/bin/go test -cpuprofile cpu.out -timeout 15m -run ^TestMask$ github.com/vsivsi/adder
This lead to the test failing, and with different looking stats (each iteration fails earlier in the loop on average, probably due to different signaling rates between profiling and preemption).
Two other data points:

I have not yet observed corruption of actual ZMM vector state in my testing. From what I've seen this appears to be limited to the K0-K7 opmask registers.
The above observation is curious in light of the fact that the Darwin kernel code I've been looking at is at least not obviously broken w.r.t to handling the opmask registers and AVX512 thread state in signal handling. Opmask data is present in all of the relevant state structures, there appear to be tests that check that it is properly saved and restored, etc. So whatever is happening is more subtle that mere omission of this detail in the kernel. See e.g.:
https://github.com/apple/darwin-xnu/search?q=opmask

@vsivsi thanks for the repro! So it seems it is not related preemption but signals in general. The observation about K0-K7 also suggests VZEROUPPER is not the cause.
Would it be possible to write a similar test in C and assembly (GNU syntax) and see if it is failing?
Maybe we need a different CPU feature probe to tell the kernel we're using K0-K7? (I haven't looked at the code carefully. Just a guess.)

@cherrymui  The mechanism for using AVX-512 in Darwin doesn't involve telling the kernel which features to enable. The kernel simply advertises the available AVX-512 features in the process commpage data area. Once you've verified that a given required set of AVX-512 features is available, you simply use them. Darwin catches the UD interrupt for any AVX-512 instruction on first use, and promotes that thread to use the full AVX512 thread state, enabling every available feature.
Specifically, the three XCR0[5:7] bits (from XGETBV) indicate whether XSAVE will preserve:

Registers K0-K7 ("opmask state")
The upper 256 bits of ZMM0-15 ("ZMM_Hi256 state")
The full width of ZMM16-31 ("Hi16_ZMM state")

Upon thread promotion following the UD interrupt from a supported AVX512 instruction, Darwin sets XCR0[5:7] = 111b, for the thread, enabling the full "AVX512 state" in XSAVE.

The kernel definitions of these XCR0 bits are here:
https://github.com/apple/darwin-xnu/blob/8f02f2a044b9bb1ad951987ef5bab20ec9486310/osfmk/i386/proc_reg.h#L168-L188
The full AVX512 enabled mask is composed here:
https://github.com/apple/darwin-xnu/blob/8f02f2a044b9bb1ad951987ef5bab20ec9486310/osfmk/i386/fpu.h#L71
And this is the function that runs when a UD for an AVX512 instruction is trapped, triggering the XSAVE state promotion:
https://github.com/apple/darwin-xnu/blob/8f02f2a044b9bb1ad951987ef5bab20ec9486310/osfmk/i386/fpu.c#L1472

@cherrymui  Here is an attempted reproduction of this issue in GNU C and Asm.  In my testing it does not fail.
https://gist.github.com/vsivsi/8511aca1bac528f49fbb45a636afa4b5

Thanks for trying that. In your C code, could you install a signal handler for SIGURG (which could simply return immediately)? Thanks.

@cherrymui  Gist updated with empty SIGURG handler. Now it fails as with go runtime:
% gcc testmask.c testmask.s && ./a.out &
[1] 28786
% for ((x=0;x<20;x++)); do kill -s URG 28786; sleep 0.01; done
Failed for iteration: 133 with return value: 90069936
Failed for iteration: 134 with return value: 79705026
Failed for iteration: 135 with return value: 79757341
Failed for iteration: 136 with return value: 79875856
Failed for iteration: 137 with return value: 82261267
Failed for iteration: 138 with return value: 83127231
Failed for iteration: 139 with return value: 83641375
Failed for iteration: 140 with return value: 83352568
Failed for iteration: 141 with return value: 82555528
Failed for iteration: 142 with return value: 79494222
Failed for iteration: 143 with return value: 78981164
Failed for iteration: 144 with return value: 81261765
Failed for iteration: 145 with return value: 80885813
Failed for iteration: 146 with return value: 79706999
Failed for iteration: 147 with return value: 83441689
Failed for iteration: 148 with return value: 80171870
Failed for iteration: 149 with return value: 79769830
Failed for iteration: 150 with return value: 81361308
Failed for iteration: 151 with return value: 81237987
Failed for iteration: 152 with return value: 79568372
Test failed 20 times!
[1]  + done       ./a.out

This reminds me of https://github.com/golang/go/issues/37174#issuecomment-584914106
Sounds like Apple needs some more regression tests for their sigaction code path.

I'm sure you all are happy that this doesn't appear to be a problem in golang, but it still seems like a problem for golang, no?

Thanks @vsivsi ! That indicates the kernel's signal handling code doesn't seem to do the right thing.

So what's the next step here? Throwing a process into an indeterminate state via external signal feels like a CVE-level issue.

If there is a simple workaround that we could do it in the runtime, we'll do it, like the VZEROUPPER for #37174 . I don't know how to work around this one, though. One probably has to either not use K0-K7 registers or block all signals.
I guess the next  step would be reporting to Apple and have them fix the kernel.

While they're at it, they should fix this one too: https://github.com/golang/go/issues/42649
Also, not using the K0-K7 opmasks == not using AVX-512 for all practical purposes.

We need to report a bug to Apple. I can do that - I've done it before, and supposedly a report from Google has a bit more visibility than one from random internet user.
Any idea what range of OS versions this causes a problem on? I don't see a OS version in the OP.

@randall77  I've seen it on Catalina (10.15.x) and Big Sur (11.x), but I bet it goes all the way back to the first AVX-512 support, which I believe was High Sierra (10.13.x) when the first iMac Pro released with a Xeon supporting AVX-512.

As it is not safe to use, maybe we could consider hardwire AVX512 to false on Darwin until the kernel fix?

We could hardwire internal/cpu (and x/sys/cpu) flags to false for avx512. But if the asm uses cpuid itself to figure out what is available, I don't think we'd be able to prevent avx512 use in that case.

The only influence golang has over this is the value set for x/sys/cpu.X86.HasAVX512 which anyone is free to ignore (at their potential peril). But temporarily disabling that won't solve the problem of existing go binaries, or running on unpatched Darwin after Apple releases a fix. The robust solution would be to actually test for the live vuln when setting x/sys/cpu.X86.HasAVX512

Here's a simplified reproduction, just run it and see if it prints anything:
testmask.c
#include <stdio.h>
#include <inttypes.h>
#include <signal.h>
#include <unistd.h>
#include <pthread.h>

volatile int8_t done = 0;

// in testmask.s
uint32_t masktest(uint32_t x);

void sig_handler(int signum) {
  // Tell the assembly loop to return.
  done = 1;
}

void *tester(void* unused) {
  uint32_t x = 0xabcd1234;
  uint32_t y = masktest(x);
  if (x != y) {
    printf("bad: %x -> %x\n", x, y);
  }
  return NULL;
}

int main(int argc, char *argv[]) {
  // Set up simple signal handler.
  signal(SIGURG, sig_handler);

  // Start worker.
  pthread_t worker;
  pthread_create(&worker, NULL, tester, NULL);

  // Wait until the worker is in its assembly loop.
  usleep(1000);

  // Send a signal to the worker.
  pthread_kill(worker, SIGURG);

  // Wait until worker is done.
  pthread_join(worker, NULL);
}

testmask.s
	.globl _done
        .globl _masktest
_masktest:
	// Put a value in the k1 avx512 register.
	kmovd	%edi, %k1

	// Wait until we're told to return.
loop:
	cmpb	$0, _done(%rip)
	je	loop

	// Return the value in the k1 register.
	kmovd	%k1, %eax
	ret

Build with gcc testmask.c testmask.s and run with ./a.out.

Mac OSX bug report here: https://feedbackassistant.apple.com/feedback/9736652
(If you can see it, not sure how they deal with permissions.)

There doesn't seem to be an easy way to let anyone else see my bug report. So here's a screenshot of it:

Posted to Intel software dev forum:
https://community.intel.com/t5/Software-Tuning-Performance/MacOS-Darwin-kernel-bug-clobbers-AVX-512-opmask-register-state/m-p/1327259#M7970

As far as I can tell, the opmask register state is saved on entry to the signal handler, as the value from the opmask register appears in a dump of the signal context from within the signal handler.
The problem must be on the return side.

Seemed like a long-shot, but I just re-tested after updating MacOS Big Sur with this morning's security update.
This issue persists in the latest patch set:
  System Version:	macOS 11.6.1 (20G224)
  Kernel Version:	Darwin 20.6.0

@randall77 @cherrymui
I'm nearly certain I've found the kernel bug responsible for this issue by inspection.
It looks like it was introduced in Catalina 10.15.6, and has always existed in Big Sur 11.x. I'm presently installing Monterey on one of my MacBook Pros to see what the status there is, since Apple hasn't yet released the Darwin source for MacOS 12.x.
It seems not to exist in Mojave 10.14.x or before, although that would only impact the iMac Pro, since that was the only pre-10.15 machine with AVX-512.
The issue is a set of changes introduced in 10.15.6 that are aimed at improving performance when AVX-512 is on, but the thread isn't using the ZMM extended state:

The upper 256 bits of ZMM0-15 ("ZMM_Hi256 state")
The full width of ZMM16-31 ("Hi16_ZMM state")

This is analogous to your VZEROUPPER optimization for eliminating phantom SSE4 dependencies. But, when the code detects that ZMM_Hi256 state and Hi16_ZMM state are all zeros, it disables XSAVE restore of the "opmask state" as well. This is not a safe assumption, as it is perfectly valid to have non-zero values in K0-K7 while having all zeroed vector registers (as our various reproductions likely illustrate). With AVX-512VL, it is also valid to use EVEX encoded AVX-512 instructions, with opmasks, while only touching the AVX YMM vector state.
My hypothesis above is confirmed by adding a single instruction to the reproduction assembly code sent to Apple:
testmask.s
        .globl _done
        .globl _masktest
_masktest:

        // Storing a non-zero value in ZMM31 suppresses the kernel bug.
        vpbroadcastd  %edi, %zmm31

        // Put a value in the k1 avx512 register.
        kmovd   %edi, %k1

        // Wait until we're told to return.
loop:
        cmpb    $0, _done(%rip)
        je      loop

        // Return the value in the k1 register.
        kmovd   %k1, %eax
        ret

So, here's the offending code in 10.15.6:
if (fpu_allzeroes((uint64_t *)(void *)iavx->x_Hi16_ZMM, 16 * sizeof(_STRUCT_ZMM_REG)) == TRUE &&
    fpu_allzeroes((uint64_t *)(void *)iavx->x_ZMM_Hi256, 16 * sizeof(_STRUCT_YMM_REG)) == TRUE) {
	iavx->_xh.xstate_bv &= ~XFEM_ZMM;
}

From: https://github.com/apple/darwin-xnu/blob/xnu-6153.141.1/osfmk/i386/fpu.c#L954
Where:
#define XFEM_ZMM        (XFEM_ZMM_HI256 | XFEM_HI16_ZMM | XFEM_OPMASK)

From: https://github.com/apple/darwin-xnu/blob/xnu-6153.141.1/osfmk/i386/proc_reg.h#L187
This change was introduced in Darwin xnu-6153.141.1, which corresponds with MacOS10.15.6.
Here's the diff:
https://github.com/apple/darwin-xnu/commit/2a1b27122957ed49e0243f383563a369ae3c910c#diff-eebcfce045ea71301ebd7644a71e52b7836189410512149ef8e8e6460a741446R952-R955
So, the fix is to probably replace a single line of code in two locations (for the 32 and 64 bit cases):
	// iavx->_xh.xstate_bv &= ~XFEM_ZMM;
	iavx->_xh.xstate_bv &= ~(XFEM_ZMM_HI256 | XFEM_HI16_ZMM);

Here: https://github.com/apple/darwin-xnu/blob/xnu-6153.141.1/osfmk/i386/fpu.c#L928
and
Here: https://github.com/apple/darwin-xnu/blob/xnu-6153.141.1/osfmk/i386/fpu.c#L954
Now we just need to get Apple to do it. In the meantime there's a weak-ish workaround... Ensure that there's always non-zero values in some part of the AVX-512 extended ZMM state.

Weird. When debugging I thought a use of a zmm register might help, so I added:
	vpxor	%zmm1, %zmm1, %zmm1

and it didn't help. Apparently I needed to set zmm1 to a nonzero value to really "use" that register :(
I'll update my Apple feedback submission.

@randall77 Yeah, I went back and checked the original rarely failing unit test case that kicked this all off... It was Avo generated code that only used the YMM registers with opmasks in a 4x64 bit special case. I didn't pick up on the significance of that while performing the debugging that ultimately led to the repro I brought to this issue.
In thinking about the kernel bug presented above overnight, it clarified three things:

The scope of the bug in time is now clear. Catalina 10.15.6 was released in mid-July 2020. So this has been in the wild for only around 16 months.
The scope of the bug in terms of the sufficient processor state is considerably narrowed: it only occurs when all bits in both the ZMM_Hi256 and Hi16_ZMM state are zero. There are still real valid cases when that can be true, but a lot fewer than were originally assumed.
The scope of the bug in terms of how it is triggered has very likely expanded. All of our reproductions depend on BSD signal handling to produce an easily repeatable trigger. But the implicated kernel code is not specific to signal handler returns. It seems likely that other kernel mechanisms that require restoring thread state could also trigger this. Perhaps even ordinary multitasking preemption from the Darwin thread scheduler.

On reflection, I'd also like to add that the "one line fix" I presented above may not simultaneously resolve this issue while still satisfying the aims of the Darwin kernel engineers in making the revisions that appeared in Catalina 10.15.6. Another possible fix would be to leave the masking code the same, but add an additional check to ensure that the opmask state also has all zeroed bits. Or perhaps the opmask save/restore should be broken out as a separate case (combining the two approaches).
In any case, I hope Apple carefully audits all uses of XFEM_ZMM (perhaps renaming it in the process to make clear it encompasses the opmask bit), and adds regression testing to ensure this type of confusion doesn't reoccur.

Just a quick update on point 3) in the post above. I've run the reproduction C/Asm code here:
https://gist.github.com/vsivsi/8511aca1bac528f49fbb45a636afa4b5
As:
for ((x=0;x<250;x++)); do ./a.out & done

When run on a Mac Pro with 48 hyperthreads, each of the 250 processes created above is preemptively multitasked onto ~20% of a hyperthread with a large number of kernel scheduler preemptions per second.
In over an hour of CPU time, I've seen zero opmask corruptions. So I think it's fair to conclude that Darwin's preemptive multitasking does not use the faulty thread state resetting code spotted above.
😅

Yesterday's security updates to MacOS Catalina appears not to have updated the kernel, and my testing indicates this bug remains.
  System Version:	macOS 10.15.7 (19H1615)
  Kernel Version:	Darwin 19.6.0

Likewise, the upgrade to MacOS Monterey 12.1 also does not fix this issue.
  System Version:	macOS 12.1 (21C52)
  Kernel Version:	Darwin 21.2.0

I haven't tested the security update for Big Sur, but it would be very surprising if this had been fixed there and only there.

@randall77 @cherrymui
Apple appears to have fixed this kernel bug in Monterey 12.2, but frustratingly did not backport the fix into the corresponding security fixes for Catalina and Big Sur.
So per my testing this morning:
Fixed:
System Version: macOS 12.2 (21D49)
Kernel Version: Darwin 21.3.0

Still Broken:
System Version: macOS 11.6.3 (20G415)
Kernel Version: Darwin 20.6.0

System Version: macOS 10.15.7 (19H1713)
Kernel Version: Darwin 19.6.0

Can someone please verify the above results?
Pending confirmation of the Monterey 12.2 fix, we should put together a patch for x/sys/cpu.X86 to re-enable AVX-512 detection for Darwin 21.3 or later.

In preparation for re-enabling AVX-512 for fully patched MacOS >= Monterey 12.2, I've done a little research on the best way to detect the kernel version in Golang on Darwin.
The Darwin kernel version is not present in the process commpage where the AVX-512 capabilities are advertised. So it appears that the path of least resistance is going to be a call to x/sys/unix.Uname() which I have already verified works as expected on Darwin. The Release field of the unix.Utsname struct contains the dotted kernel version number in a \x00 terminated [256]byte. E.g. 21.3.0 followed by 250 \x00s.
This function will return true if the runtime kernel version is >= to the passed major/minor/patch values.
func darwinKernelVersionCheck(major, minor, patch int) bool {
	var un unix.Utsname

	err := unix.Uname(&un)
	if err != nil {
		return false
	}

	ts := bytes.Split(bytes.TrimRight(un.Release[:], "\x00"), []byte{'.'})
	if len(ts) != 3 {
		return false
	}

	var mmp [3]int
	for i := 0; i < 3; i++ {
		tmp, err := strconv.Atoi(string(ts[i]))
		if err != nil {
			return false
		}
		mmp[i] = tmp
	}

	return mmp[0] > major || mmp[0] == major && (mmp[1] > minor || mmp[1] == minor && mmp[2] >= patch)
}

Re-enabling AVX-512 support for fully patched MacOS Monterey machines should simply involve:
Revert all changes in these two revisions:

https://github.com/golang/sys/commit/97ca703d548df069cb02aacea9efc3093ffdc3c4
https://github.com/golang/sys/commit/7861aae1554b38bea22683cc106d273901e50d54

Add the above function darwinKernelVersionCheck() to x/sys/cpu/cpu_X86.go, and modify the Darwin initialization of osSupportsAVX512 to:
if runtime.GOOS == "darwin" {
	// Check for minimum darwin version and commpage for AVX512 support. Necessary because:
	// https://github.com/apple/darwin-xnu/blob/0a798f6738bc1db01281fc08ae024145e84df927/osfmk/i386/fpu.c#L175-L201
	// See also issue: 49233
	osSupportsAVX512 = osSupportsAVX && darwinKernelVersionCheck(21, 3, 0) && darwinSupportsAVX512()
} else {
// ... non-darwin case

BTW, if we prefer a version of darwinKernelVersionCheck() without dependencies on bytes and strconv, the following function is equivalent:
func darwinKernelVersionCheck(major, minor, patch int) bool {

	var un unix.Utsname
	err := unix.Uname(&un)
	if err != nil {
		return false
	}

	var mmp [3]int
	c := 0
	for _, b := range un.Release {
		switch {
		case b >= '0' && b <= '9':
			mmp[c] = 10*mmp[c] + int(b-'0')
		case b == '.':
			c++
			if c > 2 {
				return false
			}
		case b == 0:
			break
		default:
			return false
		}
	}
	if c != 2 {
		return false
	}
	return mmp[0] > major || mmp[0] == major && (mmp[1] > minor || mmp[1] == minor && mmp[2] >= patch)
}

I've submitted a fix for this issue here: https://go-review.googlesource.com/c/sys/+/382314

@randall77 @ianlancetaylor
Would very much like to finally resolve and close out this very old issue.
To that end, please see the newest changes to x/sys/cpu I recently contributed here: https://go.dev/cl/620256
Many thanks for all of your suggestions and attention towards getting this one wrapped up.


Aes 256 CTR decryption failed

When using rust-crypto suites to decrypt in aes-256-ctr, it fails with the following error message
Feb 08 17:36:19 podvm-nginx-bd0a10bd kata-agent[1441]: [2023-02-08T17:36:19Z ERROR attestation_agent::grpc::keyprovider] Call AA-KBC to provide key failed: aes-256-ctr decrypt failed: StreamCipherError

cc @stevenhorsman


Improve schema handling

Fix inconsistent types on abi key schemas; remove added schema to local tables and tables without the key schema.

I am seeing a failing test

Yeah, this is due to two reasons, addressed in https://github.com/primodiumxyz/reactive-tables/pull/26, namely:

the block(s) of the fuzzing transactions being missed because it went in during historical sync;
RECS not being up-to-date with the sync yet.

I think it varies between the two issues.


[Question] Any plan to rewrite js in typescript ?

I'm doing it for my own usage although I'm loosing the benfit of upgrades.
Typings are usefull you know :)
While doing it I found this,
in models.js, line 1027 :
let sampledTokens = sampler(logits);

should be
let sampledTokens = sampler.sample(logits);

Hi there 👋
The usage in models.js is indeed correct. Sampler extends Callable, which makes the object itself "callable", and when called, runs the .sample() method of the class. The reason for doing this is to mainly align with the python library (and how python uses __call__() methods), and allows things like pipelines to be called as functions, even though they are classes.
https://github.com/xenova/transformers.js/blob/e440372c99099c53d2efadd69c411f5c92f78efb/src/utils/generation.js#L621-L651

Got it, thanks for answering.

Which IDE are you using? The project is typed already and you have IntelliSense in VSCode aswell.
You can crank up the strictness level to see more issues:
jsconfig.json:
{
    "compilerOptions": {
        // ...
        "strict": true,
        // ...
    }
}

Typings are usefull you know :)

Thank you for the information :wink: Exactly the reason we have them, but without requiring tsc in the build step - which allows you to use modern browser features like ESM and import maps: coding without bundling :+1:

I'm using webstorm. I'm moving to typescript mostly because I'm working on a nodeJs server side project, and had errors at bundle time on require() statement.
At least it's instructive to dig in the code !
kudos for the great job btw :)

I'm using webstorm.

Interesting, so I never used that, but just googled a bit: https://blog.jetbrains.com/webstorm/2023/06/webstorm-2023-2-eap7/

You may need to update for proper LSP support?

I'm moving to typescript mostly because I'm working on a nodeJs server side project, and had errors at bundle time on require() statement.

Nowadays node and all common bundlers have very good ESM import/export support :wink:

I got a license for Webstorm a month ago and upgraded to the all Jetbrains suite one week after. Pycharm, Goland and Rider are awesome too.
I have to admit I didn't search further after I got the error. My tsconfig.json has a target for ES2021 and changing it would probably fix it.
I just went on the path "let's grab that thing and build it...oh javascript...let's move to ts"
Webstorm has some nifty helpers too

Now I just have the processor, tokenizer and transformer to convert...

I just went on the path "let's grab that thing and build it...oh javascript...let's move to ts"

Yea, the brain goes into auto-pilot... I was also once convinced that everything must be TypeScript :sweat_smile:
Well, then I converted all my sources back to JavaScript... and I get things done way quicker again.

Now that I'm reading your code I get your point.
Extremely well documented. all the typings are there :1st_place_medal:
I still like TS interfaces though. Abstract classes are cool too.
The only suggestion I would make is splitting the models into separate files, eventualy.
And once again - Bravo - as we say in french, and thanks for your work.

here is a next-client example in ts and next14 https://github.com/erickDevUp/hugginface-test

The only suggestion I would make is splitting the models into separate files, eventualy.

Yep, it's a good point, you could open a separate issue for this request... IIRC we discussed this before, it would also fit better with  the dir layout in e.g. https://github.com/huggingface/transformers/tree/main/src/transformers/pipelines
Otherwise you can close this now - this repo is heavily typed, but of course there are a few types that could always require some improvement, if you like to work with types to get to know the source code.

Well I switched back to python, as onnx on nodejs doesn't provide cuda which is a no go for me. I'll close the issue now. Thanks.


Publish image to quay.io/kubermatic/machine-controller

What this PR does / why we need it:
What it says on the title. Image publishing location is moved from docker.io/kubermatic/machine-controller to quay.io/kubermatic/machine-controller to not be affected by DockerHub pull rate limits anymore.
Which issue(s) this PR fixes (optional, in fixes #<issue number> format, will close the issue(s) when PR gets merged):
Fixes #1266
Special notes for your reviewer:

I checked the prow job and it already signs in with quay.io credentials, so it seems no further change is needed for that.
The repo under quay.io/kubermatic already exists and it seems images were pushed there occasionally.

Optional Release Note:

Container images are now published to `quay.io/kubermatic/machine-controller`

Signed-off-by: Marvin Beckers<EMAIL_ADDRESS>

/retest

/retest


Ensure "ref" parameter is not ignored in function RepoRefForAPI

before

work

http://localhost:3000/api/v1/repos/test/aaa/raw/.woodpecker.yml
http://localhost:3000/api/v1/repos/test/aaa/raw/500c8e1f4c3d33c1d6990c5498db0f0a02136cc5/.woodpecker.yml

broken

http://localhost:3000/api/v1/repos/test/aaa/raw/.woodpecker.yml?ref=500c8e1f4c3d33c1d6990c5498db0f0a02136cc5

after all work

there looks to be an underlying issue about our handler ... in this case that fix just did it and since we only need the API context here anyways it simplify the code :)

there looks to be an underlying issue about our handler ...

What issue? Is it related to #24080 ? If yes, I will fix it.

Could you add some tests?

I think I know the problem of this issue, it is related to  #24080 , I am working on it.

@6543  the new route code is correct. The old code forgot to call next.ServeHTTP in a middleware
The fix is https://github.com/go-gitea/gitea/pull/24330/commits/77b426e6eb8476da54b77a117a95b964cd838683 , just one line fix, so it's also included in #24330

@wxiaoguang the lastest changes fix it ... I will create a new pull that contains the test I used to determine it :)

-> #24388


GPU Selection with Nvidia Optimus

Description
When I run Sascha Willems' Vulkan samples in VisualStudio or simply the executable(s), they run on the Nvidia GPU. When I run them through RenderDoc v1.12 they run on the Intel GPU (unless I explicitly make the executable to use Nvidia through Nvidia Control Panel)
Steps to reproduce
On a laptop with Nvidia Optimus:
Take the subpass example of Sascha Willems'. It has debug markers.
The GPU selection in the samples is straightforward: picks the first device from vkEnumeratePhysicalDevices()  (how could that change through RenderDoc?)
Setting RenderDoc to run with Nvidia GPU (from explorer or from nvidia control panel) does not change this behavior.
Environment

RenderDoc version: 1.12
Operating System: Windows 10
Graphics API: Vulkan <IP_ADDRESS>
Nvidia 1050Ti: 461.92
Intel HD Graphics 630: <IP_ADDRESS>66
From Vulkan Configurator:
_Physical Devices:

GeForce GTX 1050 Ti (Discrete GPU) with Vulkan 1.2.155
Intel(R) HD Graphics 630 (Integrated GPU) with Vulkan 1.2.170_

RenderDoc disables the nvidia optimus layer since it can cause bugs. It's up to the application to select the appropriate physical device that it wants on vulkan.


animal breeding is badly designed

some things i think is bad with animal breeding (husbandry):

[ ] Not intuitive
A new player won't learn about animal breeding just by playing the game. The only way to get this information is from another player or by reading a guide (which is not in the game).

[ ] Unclear which animals can reproduce
Even if a newbie discovers this mechanic, they might try feeding and watering all animals in an attempt to find those that can breed.

[ ] Unclear whether an animal will reproduce and what it needs to do so
During an attempt to breed animals, it's unclear whether the animal is pregnant (if it's a mammal), preparing for pregnancy, or missing something like food, water, or, if i remember correctly, space.

[ ] Animals need to be force-fed
Some breeding animals won't eat on their own at all (chickens, at least), so you have to force-feed them food and water. Additionally, some animals don't consume the minimum amount needed for breeding.

i think the pr below kinda helps with hunger recognition, but not fully closes neither of items in the list
https://github.com/space-wizards/space-station-14/pull/32905


added small description of xpollinate, and yarn explanation to instal…

…l dependencies

Made PR, it already had instructions to run in development mode, just added yarn to install dependencies there
Is that good enough or you would like something that starts with
"to run the project locally...", etc

Hey, please check the review I left :)

Hey, please check the review I left :)

Yeah, sorry, not sure if I missed it or hadn´t shown

Hey, please check the review I left :)

Hey, I'm sorry not sure if it hadn't loaded or I missed it, in any case, already committed your suggestions and deleted the parts you suggested to do so.


Confirmation of expected behavior: do nothing if state is already matching desired state

My garage doors will close on their own using the timer in the 'smart' opener from the manuf.
I have ratgdo setup to provide state and control to HA.  Can someone confirm if the blueprint automation is smart enough to not try to close an already closed door?  I am guessing by the way the logic looks to my untrained eyes that it should ignore trying to close an already closed door, but I'd like a second opinion.
I guess same would go for not trying to open an already open door.

This probably doesn't require two issues :D
The "delay" is entirely handled by your cover device.  For example, the blueprint here calls "cover.open" if the device has come online and the door is currently "closed".  A cover can be "open" or "opening" or "closed" or "closing" (or a percentage if supported).  How your cover progresses through those stages is up to whatever integration is handling your door and is outside of the scope or control of the blueprint here.

That's the confirmation I was looking for, that it looks at the current state, and not just blindly sending an open if it's already open or a close if it's already closed, as I believe my door would toggle instead of honoring the actual command. I need to test that actually!  Thanks for the quick response!


FYI: pausing PubSub cron controller

Just an FYI that I have temporarily paused the cron controller. I'm debugging/working on some performance improvements in the PubSub worker and don't want to publish to PubSub topic when not needed. Will manually keep running the controller whenever an older run finishes. Will resume the cron job once performance work is completed.

Just an FYI that I have temporarily paused the cron controller. I'm debugging/working on some performance improvements in the PubSub worker and don't want to publish to PubSub topic when not needed. Will manually keep running the controller whenever an older run finishes. Will resume the cron job once performance work is completed.

Cool, Thanks. What are the issues/performance improvements?

Working on improving the tarball decompression issue as of now. Instead of decompressing on every call of CheckFile*, we should do it once during InitRepo and use the underlying data after.

Working on improving the tarball decompression issue as of now. Instead of decompressing on every call of CheckFile*, we should do it once during InitRepo and use the underlying data after.

Thanks! for the update.

Unpaused it now. closing this issue.


Azure Devops Task TimeOut/Stuck after VSTest v17.2.0 Release

Description

IMPORTANT: if the defect is reproduced only in a workflow from within the Visual Studio IDE then do not report the issue here - instead, please report it using Visual Studio's "Send Feedback" option that can be accessed from the Help menu OR using this link https://developercommunity.visualstudio.com.

After the recent VSTest v17.2.0 release this morning, Azure Devops VsTest task is failing with the below error:
Starting test execution, please wait...
11501.6468
11504.7343
11506.4788
A total of 1 test files matched the specified pattern.
##[error]vstest.console process failed to connect to testhost process after 90 seconds. This may occur due to machine slowness, please set environment variable VSTEST_CONNECTION_TIMEOUT to increase timeout.

VSTest@2 Task settings
Test selector : Test assemblies
Test filter criteria : (TestCategory!=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
Search folder : C:\a\1\s
Action when minimum tests threshold not met : donothing
Minimum tests expected to be run: 0
Run settings file : C:\a\1\s\UnitTests\NUnit.runsettings
Run in parallel : true
Run in isolation : false
Path to custom adapters : C:\a\1\s
Other console options : null
Code coverage enabled : true
Diagnostics enabled : false
Rerun failed tests: true
Rerun failed tests threshold: 50
Rerun maximum attempts: 5
SystemVssConnection exists true
Run the tests locally using vstest.console.exe

For a defect reproducable from the vstest command line, describe the issue you've observed.

Steps to reproduce

What steps can reproduce the defect?
Please share the setup, commandline for vstest.console, sample project, target
framework etc.

Expected behavior

Share the expected output

**************** Starting test execution *********************
C:\hostedtoolcache\windows\VsTest\17.1.0\x64\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe "@C:\a\_temp\3apnc0em5xm.tmp"
Microsoft (R) Test Execution Command Line Tool Version 17.1.0
Copyright (c) Microsoft Corporation.  All rights reserved.
vstest.console.exe "C:\a\1\s\Web\bin\UnitTests.dll"
/TestCaseFilter:"(TestCategory!=XXXXXXXXXXXXXXXXXXXXXXXXXXXX)"
/Settings:"C:\a\_temp\chb3dhz2pce.tmp.runsettings"
/Logger:"trx"
/TestAdapterPath:"C:\a\1\s"
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Data collection : Unable to find a datacollector with friendly name 'Test Impact'.
Data collection : Could not find data collector 'Test Impact'
Multiple versions of same extension found. Selecting the highest version.
  NUnit3.TestAdapter : <IP_ADDRESS>
NUnit Adapter <IP_ADDRESS>: Test execution started
Running selected tests in C:\a\1\s\Web\bin\UnitTests.dll

Actual behavior

What is the behavior observed?

**************** Starting test execution *********************
C:\hostedtoolcache\windows\VsTest\17.2.0\x64\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe "@C:\a\_temp\n3mbi5dbrdk.tmp"
Microsoft (R) Test Execution Command Line Tool Version 17.2.0 (x64)
Copyright (c) Microsoft Corporation.  All rights reserved.
vstest.console.exe "C:\a\1\s\Web\bin\UnitTests.dll"
/TestCaseFilter:"(TestCategory!=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)"
/Settings:"C:\a\_temp\vnvesm1zx1o.tmp.runsettings"
/Logger:"trx"
/TestAdapterPath:"C:\a\1\s"
Starting test execution, please wait...
11501.6468
11504.7343
11506.4788
A total of 1 test files matched the specified pattern.
##[error]vstest.console process failed to connect to testhost process after 90 seconds. This may occur due to machine slowness, please set environment variable VSTEST_CONNECTION_TIMEOUT to increase timeout.
Microsoft (R) Coverage Collection Tool Version 16.0.30319.200

Copyright (c) Microsoft Corporation.  All rights reserved.

Results File: C:\a\_temp\.\TestResults\TestResults\AzDevOps_WinVM00018Y_2022-05-11_14_03_37.trx
Attachments:
  C:\a\_temp\TestResults\TestResults\7416a6b5-19eb-4e2a-92c4-7f2ff6ae7e82\AzDevOps_WinVM00018Y_2022-05-11.14_01_53.coverage
##[error]Test Run Aborted.
Vstest.console.exe exited with code 1.
**************** Completed test execution *********************
Test results files: C:\a\_temp\TestResults\TestResults\AzDevOps_WinVM00018Y_2022-05-11_14_03_37.trx
No Result Found to Publish 'C:\a\_temp\TestResults\TestResults\AzDevOps_WinVM00018Y_2022-05-11_14_03_37.trx'.
Created test run: 1468924
Publishing test results: 0
Publishing test results to test run '1468924'.
TestResults To Publish 0, Test run id:1468924
Published test results: 0
Publishing Attachments: 2
Failed tests: 0; Total tests: 0;
************* Disabling rerun for failed tests as some conditions were not met ************
Could not invoke Code coverage merge for Build ID 142544
Execution Result Code 1 is non zero, checking for failed results
Completed TestExecution Model...
##[warning]Vstest failed with error. Check logs for failures. There might be failed tests.
##[error]Error: The process 'C:\a\_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.203.0\Modules\DTAExecutionHost.exe' failed with exit code 1
##[error]Vstest failed with error. Check logs for failures. There might be failed tests.

Diagnostic logs

Please share test platform diagnostics logs. Instructions to collect logs are here.
The logs may contain test assembly paths, kindly review and mask those before sharing.

Environment

Please share additional details about the test environment.
Operating system, Build version of vstest.console

Operation System: Windows Server 2022 DataCenter
Vstest version:
Microsoft (R) Test Execution Command Line Tool Version 17.2.0 (x64)
Copyright (c) Microsoft Corporation.  All rights reserved.
vstest.console.exe "C:\a\1\s\Web\bin\UnitTests.dll"

@Haplois Wanted to flag this. We are facing this issue since the 17.2.0 release on our Azure Devops CI pipeline. Please suggest, if there is a workaround for this.

I'm getting a different but just as useless behavior.  It's supposed to retry on test failure, but it doesn't retry. The job gets marked as Failed in ADO but no test failures are logged.
2022-05-17T19:22:37.2492850Z Test results files: D:\a_work_temp\TestResults\sqlbld0_19112417c000000_2022-05-17_19_03_56.trx
2022-05-17T19:22:38.7079965Z Created test run:<PHONE_NUMBER>
2022-05-17T19:22:38.7082970Z Publishing test results: 551
2022-05-17T19:22:38.8338085Z Publishing test results to test run '1249863408'.
2022-05-17T19:22:38.8362912Z TestResults To Publish 551, Test run id:1249863408
2022-05-17T19:22:38.8457362Z Test results publishing 551, remaining: 0. Test run id:<PHONE_NUMBER>
2022-05-17T19:22:39.6506524Z Published test results: 551
2022-05-17T19:22:39.6511984Z Publishing Attachments: 2
2022-05-17T19:22:41.4318355Z Failed tests: 0; Total tests: 551;
2022-05-17T19:22:41.4319219Z ************* Disabling rerun for failed tests as some conditions were not met ************
2022-05-17T19:22:41.7769077Z Execution Result Code 1 is non zero, checking for failed results
2022-05-17T19:22:41.8336918Z Completed TestExecution Model...
2022-05-17T19:22:41.8996458Z ##[warning]Vstest failed with error. Check logs for failures. There might be failed tests.
2022-05-17T19:22:41.9000616Z ##[error]Error: The process 'D:\a_work_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.203.0\Modules\DTAExecutionHost.exe' failed with exit code 1
2022-05-17T19:22:41.9005269Z ##[error]Vstest failed with error. Check logs for failures. There might be failed tests.
2022-05-17T19:22:41.9104106Z ##[section]Finishing: PR ADO OnPrem 160 Edge merge

I am getting the same error. Any updates on this issue?
Once I updated the packages bellow to version 17, DevOps build broke.

Hey there, sorry for the long await. I am wondering if you are still experiencing issues with newer versions of VSTest (17.5 or 17.6)?

Heh heh now we're running into this one https://github.com/microsoft/azure-pipelines-tasks/issues/18309


Multi schedule support

oh also:

rebase onto main por favor--need that package-lock updated
spacing between new buttons and class list box is too large


Support CPU DEX on Windows

Along with downloading LLVM from tar ball and some work towards making codegen work on Windows.

Opened #2531 with same change to fix Windows build issues on r01.5

Merged by #2567


What is the version that i should use for this kernel ?

Hi, it seems like i have to compile the kernel myself to use this "mod", but i cant find what is the version of the kernel for my phone, also i dont know which patch to use :(
The kernel for my phone is this one https://github.com/bq/aquaris-E5FHD/

The Makefile gives you version info:
VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 72
Try the 3.10 patches.

Thanks :) , just for curiosity, can the phone be hard bricked by changing / patching the kernel?

Not likely if it's soft bricked or in bootloop try reflashing the stock kernel or a different working kernel.
Not sure exactly which kernel will work with your phone. Try them one by one maybe? Use the "--check" flag when trying to apply the patch. If it doesn't give you any errors then it's a good indication that it might work with your phone.

Use the "--check" flag
Where?

Assuming you are using git apply to patch?

It gave me this output
error: patch failed: drivers/usb/gadget/Makefile:1 error: drivers/usb/gadget/Makefile: patch does not apply error: patch failed: drivers/usb/gadget/android.c:43 error: drivers/usb/gadget/android.c: patch does not apply
It does not seem like it wants to work :(

Just compiled the kernel for my phone following the instructions of my phone kernel github page with the patch applied, now, do i need to do the

To compile boot.img, launch commands:

part?

I just tried the zImage with fastboot but it just shows "booting..." on terminal and "USB transfer OK" on phone screen :( that means that it is not compatible or i did something wrong?

original question has been answered.
device codename: vegetafhd
how to compile BQ Aquaris E5 4G (not very different to Aquaris E5 FHD):
https://wiki.lineageos.org/devices/vegetalte/build (adapt to vegetafhd , which is your device)
how to install LineageOS on BQ Aquaris E5 4G: https://wiki.lineageos.org/devices/vegetalte/install

i think i was doing something wrong, meanwhile i did have success on it, i think i was flashing the wrong file or just generating the image in a wrong way :/ btw the e5 4g uses a different soc from the fhd


Add tool integration section, references to a implementation group, a…

…nd on-the-fly quality assessment and alerts.

On the FAFF2 data flow diagram.svg file, I think we should change the "Nublado" box to something like "RSP (Nublado, etc.)".


Add support for Storybook test runner's hook api

The test hook api is configurable using the .storybook/test-runner.{js,ts} file.
Docs: https://storybook.js.org/docs/react/writing-tests/test-runner#test-hook-api-experimental

Great 🙏

:rocket: This pull request is included in v2.27.0. See Release 2.27.0 for release notes.


Let 211 connect the sign up form with the api

This PR adds the connection between the sign-up form and the API
Testing instructions

The sign up data is sent and registered in the API

Errors are displayed if:

the API responds with validation errors
the API does not respond

After a sign-up success, the user is directed to the account creation flow

Accessible by WCAG 2.1 standards

The errors are presented assisted technologies

Tracking
LET-211

@barbara-chaves If that's ok with you, I renamed the environment variables (and updated their descriptions) so it's a bit more coherent.
@tiagojsag We've changed the environment variables. You can see the list of them on the README file. What do we need to update for the staging and production deployment? Their values are stored on LastPass.

@barbara-chaves When testing the sign up, I get this error:

Can't verify CSRF token authenticity.

Am I missing something?

@clementprdhomme This is because you didn't have a csrf cookie. There must be any even GET request to the server setting that cookie before doing non-GET request (like sign up). I believe sign-up page will be eventually accessible only when there is no logged in user (otherwise redirect somewhere else). So there will be check for logged in user before (GET /user), then it should work. For now, you can just add const { user } = useMe() on the frontend to mitigate this.

@tiagojsag We're ready to merge. Do you want to make the environment variables changes? You can find them on Lastpass.


Horizontal scrolling ListView cacheExtent does NOT work

Steps to Reproduce
Detailed description:
https://stackoverflow.com/questions/68756256/flutter-horizontal-listview-builder-not-working
I have a different project and I can confirm the issue. I have tried cacheExtent: 250 - 100000, and although I have only 6 children (2 children are off the screen), there has been no change and my two item lists aren't preloaded like the rest of the 4 children.
In my other parts of the app cacheExtent for verticalScrolling works just fine.
Expected results:
I expect the ListView children to preload the photos before I scroll into them like this:

Actual results:

Code sample

Logs

[✓] Flutter (Channel stable, 2.5.3, on macOS 11.5.2 20G95 darwin-arm, locale
    en-US)
    • Flutter version 2.5.3 at /Users/tomasbaran/code/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (3 days ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/tomasbaran/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.61.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.27.0

[✓] Connected device (2 available)
    • iPhone 12 mini (mobile) • EB74C73F-6355-4418-BA35-AECF05A7FBF4 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • Chrome (web)            • chrome                               •
      web-javascript • Google Chrome 94.0.4606.81

• No issues found!

The SO post you referenced above is talking about ListView.builder not working when he tries to use scrollDirection: Axis.horizontal.
That is different from the issue you're describing here.
When you can make the time, kindly provide us with a sample to make the issue actionable.
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Run docker task in interactive mode

docker-run tasks are always run in detached mode. I would like to specify which tasks should run in interactive mode, so I don't have to manually attach to the docker containers to see the output.
I have tried making docker.commands.run interactive, but it seems that tasks doesn't use those templates.

Thanks. For reference, here is the new issue: https://github.com/microsoft/vscode-docker/issues/2978


qr_painter.dart, Null check operator used on a null value

Describe the bug
Version: 4.1.0
Observing the following stack-trace in production DataDog logs:
#0 replaceFirstNull (/Users/vagrant/.pub-cache/hosted/pub.dev/source_span-1.10.0/lib/src/utils.dart:39)
#0 Highlighter.highlight (/Users/vagrant/.pub-cache/hosted/pub.dev/source_span-1.10.0/lib/src/highlighter.dart:224)
#1 QrPainter._initPaints (/Users/vagrant/.pub-cache/hosted/pub.dev/qr_flutter-4.1.0/lib/src/qr_painter.dart:183)

To Reproduce
Steps to reproduce the behavior:
Haven't been able to reproduce this issue locally.
Expected behavior
Should guard against null reference exception.
Screenshots
n/a
Desktop (please complete the following information):

OS: iOS

Smartphone (please complete the following information):

Device: iOS
OS: 17.5.1

Additional context
n/a

I believe the line numbers from the trace above aren't accurate and the issue is occuring here:
https://github.com/theyakka/qr.flutter/blob/d5e7206396105d643113618290bbcc755d05f492/lib/src/qr_painter.dart#L148


custom css tweaks in response to Google's changes

Couple of custom CSS fixes in response to Google changes. Also removed a couple of unneeded rules.
Props to @MarshallOfSound for highlighting the slider button/loading spinner change

Heh, heh.  Technically it was google that "highlighted" the loader :smile:
#Iamsofunny

Ha!  Oh dear, where's a bad pun emoji when you need one?  :wink:

LGTM :shipit:

Will probably push a patch release out tonight.  Just waiting to hear back on a mini player issue someone's reported to see if I can get that sorted before I do.


Fix issue with production server

Currently the production server script (npm run server:prod) uses superstatic, but the script fails if superstatic is not installed globally.
Probably because we first go to the dist folder: https://github.com/dsebastien/angularjs-webpack-starter/blob/master/package.json#L159

Can't reproduce w/ msys on Win*


"Ambiguous use of subcript" when trying to access document value

Hi,
According to https://github.com/OpenKitten/Documentation/blob/master/BSON/Tutorials/Document.md, documents are usable like dictionaries. However, when trying to access a value using a key, this error is given: Ambiguous use of subscript.
I have been following this Vapor with MongoKitten tutorial<EMAIL_ADDRESS>In it, the author is able to access document values in the following way:
guard let uniqueID = document["unique_id"].stringValue else {
    return nil
}

That was with MongoKitten version 1.1. Now the above code gives the error: Ambiguous reference to member 'subscript(dotNotated:)'
Please assist.

MongoKitten 3's BSON Document supports 3 kinds of subscripts. The one you're looking for is document["unique_id"] as String?. BSON now requires you to explicitely define the type you want to have extracted there.

Okay. Thanks Joannis

@Joannis I cannot understand the new syntax. Why use "as String?" and not "as? String" or stringValue. Can you please point me to a direction that I can have a better understanding

We now have 20 almost identical subscripts. The only difference between each subscript is the return value. So if you're looking for a String you'll need the subscript that returns the String... however, Swift usually infers types rather than having you explicitly define them causing the subscript to be ambiguous. This is why you a subscript like this: document["subdoc", "subdoc", "key"] will be ambiguous for extraction. And will need to have it's type defined.
as String? is an explicit definition to the compiler that you're looking for a String? return type.
as? String would mean you're casting a protocol type to a String type, and nil if it's not a String.
.stringValue is still possible but you'd need the raw value. And however I did want it to work that way it's currently impossible to disambiguate a function/subscript without an explicit pointer. If I'd have the ability to do so, I'd have tried to make raw subscripts the default without messing up the signature for other types.
If you want to use as? String you currently need to specify the subscript as raw.
document[raw: "path", "to", "key"]
Does this clarify it for you?

Just a little open question to everyone reading this:
If you would've written the BSON library behind MongoKitten. How would you set up the subscripting?


question about mutability of returns from useMappedState

Hi thank you very much for this library, its working really nicelly for us.
I have a small question just to confirm if this is expected behavior
For the basic scenario, i.e:
...
const mapState = useCallback(() => {
    return {
      mappedQuery: getQueryByName(requestId, queryName, store.getState())
    }
  }, [])

  let { mappedQuery } = useMappedState(mapState)

return mappedQuery

...
Now component thats using that hook can updated the returned query directly, i.e.
mappedQuery.fieldName = "XXXX"
If I display the store state immediatelly after that, I see that the change is reflected directly there.
Is that the expected behavior, and if so, what is the recommended way to ensure all the updates are actually going through dispatch? Should we return a deep copy of the object from the custom hook?

I have updated the codesandbox here:
https://codesandbox.io/s/vqnwv5xk97
For some reason on that sandbox it fails if you try to do:
const store = useContext(StoreContext)
So instead I just propagated the store to the list and I display the contents of the store there. As you can see, customer.firstName property is updated directly in the store.
Can you provide some advice on how to prevent this? I dont remember this being the behavior with old redux mapStateToProps - somehow I think they were already readonly, but I may be mistakend. Thanks,Cheers

Neither redux-react-hook nor react-redux ensures immutability of your data. You can use Object.freeze in your reducer if you want that.
Also, that fiddle is using an old version (v2.0) of redux-react-hook, which is why StoreContext is not there. I'll get that fixed up.


Add slack as an option to join

The slack parameter seems to work for merge but not join:

gr1 = pr.PyRanges(chromosomes="chr1", starts=[0], ends=[10], strands = "+")
gr2 = pr.PyRanges(chromosomes="chr1", starts=[15], ends=[20], strands = "+")

gr1.merge(gr2, slack = 10)
+--------------+-----------+-----------+--------------+
| Chromosome   |     Start |       End | Strand       |
| (category)   |   (int32) |   (int32) | (category)   |
|--------------+-----------+-----------+--------------|
| chr1         |         0 |        10 | +            |
+--------------+-----------+-----------+--------------+

gr1.join(gr2, slack = 10)
Empty PyRanges

The way to do this would be
gr1.slack(10).join(gr2)

Thanks for trying pyranges btw. Ps. it has its own tag at Stack Overflow :)

This isn't quite the same though because this first adds the slack to gr1, and then does the join, so it returns the slacked gr1 instead of the original gr1.
+--------------+-----------+-----------+--------------+-----------+-----------+--------------+
| Chromosome   |     Start |       End | Strand       |   Start_b |     End_b | Strand_b     |
| (category)   |   (int32) |   (int32) | (category)   |   (int32) |   (int32) | (category)   |
|--------------+-----------+-----------+--------------+-----------+-----------+--------------|
| chr1         |         0 |        20 | +            |        15 |        20 | +            |
+--------------+-----------+-----------+--------------+-----------+-----------+--------------+
I guess one could do gr1.join(gr2.slack(10)) but that will also change gr2.
What I'm looking for is similar functionality as the maxgap variable in GRanges::findOverlaps. Where the join returns the original ranges in gr1 and gr2, but it will join ranges separated by a distance of < maxgap.
Thanks for this package. It makes many workflows that were previously impossible in Python now possible (and fast!). I can move questions to SO and leave the issues for github if that would be preferable

Good point! I never considered that. I should really think about how to do that in a general way for most overlap-based methods.
Having PyRanges-questions about SO is mostly for my vanity :) But I do follow the tag there :)

Another good reason to have a slack-option is that you can require at least an overlap of X, by setting the slack to a negative value. Cf. #22. This would potentially also solve this SO question

If the min of start is > than slack, you can do
import pyranges as pr
gr1 = pr.PyRanges(chromosomes="chr1", starts=[0], ends=[10], strands = "+")
gr2 = pr.PyRanges(chromosomes="chr1", starts=[15], ends=[20], strands = "+")
j = gr1.slack(10).join(gr2)
j
j.slack(-10)
# +--------------+-----------+-----------+--------------+-----------+-----------+--------------+
# | Chromosome   |     Start |       End | Strand       |   Start_b |     End_b | Strand_b     |
# | (category)   |   (int32) |   (int32) | (category)   |   (int32) |   (int32) | (category)   |
# |--------------+-----------+-----------+--------------+-----------+-----------+--------------|
# | chr1         |        10 |        10 | +            |        15 |        20 | +            |
# +--------------+-----------+-----------+--------------+-----------+-----------+--------------+
# Stranded PyRanges object has 1 rows and 7 columns from 1 chromosomes.

As you can see above, this does not work in your example.

I am still working on this, it is just that adding slack to join interfered with the new_pos argument to join. I am working on a backwards-compatible way to fix it :)

I think I have an idea for how to add slack to overlap-operations:
1. before doing the operations, duplicate the Start and End columns,
   but rename to <UUID + Start>, <UUID + End>
2. call slack on the gr
3. do operation as usual
4. after the operation is done, replace Start and End
with <UUID+Start> and <UUID+End> and drop the latter

Two more thIngs I need to think about:

in some situations you probably only want to add 5' slack or 3' slack. (This is not applicable to the merge/cluster operations, since these are on the same pyranges and hence do not matter I1+5'slack == i2 + 3'slack if I1 and I2 are two consecutive intervals.)

in other cases you might want to add a different slack to the two, like 1Kbp to 5' and 500bp to 3'.

Should the slack-argument take a dict of {"3": 1000, "5": 500} or just {"3": 1000} if no 5' extension is desired and just an int if the two cases are equal? Will need to think about this.

This is out in master :) Example usage: https://github.com/biocore-ntnu/pyranges/blob/master/tests/slack/test_slack.py


docs(README): Change the wrong software name spelling

The old spelling method was k lowercase, and now changing to K capital is the abbreviation of Kubernetes.

LGTM


Can we consider to change plug management tool from "pathogen" to "vim-plug" ?

Can we consider to change plug management tool from "pathogen" to "vim-plug" ?
Thank you.

I have the same expactation.

For now, I think pathogen works quite well. But eventually, it would be nice to move to Vim8 package manager.
If somebody wants to support this, please feel free to provide a PR 😊


Fabric Tutorial Part 1 lacks correct CSS, may lack correct HTML, and lacks completed text

The Tutorial at https://github.com/OfficeDev/Office-UI-Fabric/blob/master/ghdocs/TUTORIAL.md lacks any sort of "here's what your files should look like when you are done" and contains at a minimum bad CSS (and possibly also bad HTML).
The CSS in the tutorial sets the background color for various elements to black #000000 but the "here's what you should see" images clearly show white background color for those elements. If there were a "here's what your files should look like when you are done" section it would have been easier for the authors and others to review/confirm that the tutorial actually works.
I'm also getting incorrect positioning of the text field relative to the title text and incorrect spacing between the list elements, but again without a "here's what your files should look like when you are done" it's hard to tell if that's because I made a mistake following the tutorial or because the tutorial contains additional errors.
Here's a snapshot of the rather unattractive-looking todo list I get when using the CSS contained in the tutorial:

Great feedback and good tutorial bugs - we'll work on this and fix it up. Thanks for finding them!


v3 send e-mail formatting

User Story - Business Need

[ ] Ticket is understood, and QA has been contacted (if the ticket has a QA label).

User Story(ies)
As a Notify developer,
I want sending e-mail notifications with v3 to have the same perceived effect as sending with v2
So that users do not have to change their templates.
Additional Info and Resources

Sending e-mail notifications with v2 uses code from the notification-utils repo to format the output.  v3 was not working with this code, so #1361 finished by simply commenting-out the code that didn't work.  This behavior needs to be restored to achieve feature parity with v2.
Engineering Checklist

[ ] Uncomment the code in the Celery task v3_send_email_notification, and get it to work.
[ ] Write appropriate unit tests in tests/app/celery/v3/test_notification_tasks.py.  You should mock the call to client.send_email, and test its call args.

Acceptance Criteria

[ ] An e-mail notification sent with v3 looks identical to the same notification sent with v2

QA Considerations

[ ] regression passes
[ ] manually validate the feature
[ ] see if this can be automated, create ticket if so

The checklist and AC are too light. This code is not complete without fixing the logging, docstrings, and having appropriate methods for the code being executed. Database calls will be done in a repeatable manner within functions that log (similar to this). Labelled with Changes Requested.

I reviewed and updated this ticket.

@cris-oddball A separate ticket will restore the "simulate" functionality of v2, but that behavior isn't really defined in v3 since POST v3 doesn't return 201.  I could write it to persist a notification without actually sending it, and I could note in the status reason that it is a simulated notification.  Then one could GET the notification for testing purposes.

@kalbfled I'll need a primer on what email simulation is and how that relates to email formatting.

Will re-address with va-enp-api.


Email notifications

Once this is ready to merge, someone will need to enable SendGrid on the mosaic-prod application (see https://devcenter.heroku.com/articles/sendgrid#provisioning-the-add-on).

At present, I've not been able to test the Slack integration, as I don't think I can create a bot API token for the Ought Slack


Remove SAS from comments and option help

The SAS token is no longer needed and was removed in a previous PR but it looks like I missed a couple of comments and the help for the arguments that used to require it.

/check-enforcer override


Atari++: 1.46 -> 1.73

And a complete reformulation of build expression.

I merge this. IMO that last sentence does not hurt and since there is currently no meta.platforms it gives additional information.


chore: run dedent over all e2e test content

Summary
Makes them easier to read

Test plan
Green CI

Codecov Report

Merging #9525 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #9525      +/-   ##
==========================================
+ Coverage   65.02%   65.04%   +0.01%
==========================================
  Files         283      283
  Lines       12114    12114
  Branches     3000     3000
==========================================
+ Hits         7877     7879       +2
+ Misses       3598     3597       -1
+ Partials      639      638       -1

Impacted Files
Coverage Δ

packages/expect/src/utils.ts
96.22% <0%> (+1.25%)
:arrow_up:

Continue to review full report at Codecov.

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


R node usage should be kept at minimum and self-contained

keep it to a minimum: no R-View (Workflow) or snippets
self-contained: do not assume internet access for install.packages, so download the package and put it on the usb stick

http://stackoverflow.com/questions/14806705/manually-downloading-and-installing-packages-in-r

https://cran.r-project.org/web/packages/ggplot2/index.html
http://stackoverflow.com/questions/14806705/manually-downloading-and-installing-packages-in-r

I guess you are right for the hands-on tutorials. There should always be at least an offline version of the workflows.
Is this an issue with the current workflows?


[Bug] more language filter description error

Device information

Tachiyomi version: <IP_ADDRESS>
Android phone & version: note9, android 10

Steps to reproduce
Expected behavior
Show only selected language
Actual behavior
This happened instead.
Other details
https://mangadex.org/title/44144/nan-hao-shang-feng

https://mangadex.org/manga/36246/

https://mangadex.org/manga/15147/

https://mangadex.org/manga/15147/

59218

59218


[DESIGN] Own profile page (birthday, name, city, ...)

Make a profile page with following data:

Username
Name (optional)
City (optional)
Birthday (optional)
Bio
Posts
More to come...

can we make the private  / public profile option? @ken-de-moor likely wont wanna share my bday to just anyone who click my profile


FASTER is failing on MacOS with kv.Recovery()

I am trying to build a very very simple example of using FASTER as kv store.
            var log = Devices.CreateLogDevice("./log.db", preallocateFile: false);
            var objlog = Devices.CreateLogDevice("./objlog.db", preallocateFile: false);

            var db = new FasterKV<long, FasterValue>(
                size: 1L << 20,
                logSettings: new LogSettings
                {
                    LogDevice = log,
                    ObjectLogDevice = objlog,
                    PageSizeBits = 15,
                    MemorySizeBits = 20
                },
                checkpointSettings: new CheckpointSettings { CheckpointDir = "./checkpoints" },
                serializerSettings: new SerializerSettings<long, FasterValue>
                {
                    valueSerializer = () => new FasterValueSerializer()
                }
            );

            var session = db.NewSession(new FasterCallbackFunctions());

            for (var i = 0; i < 10; i++)
            {
                long key = i;
                var strValue = GenerateText(100);
                var value = new FasterValue { Value = Encoding.UTF8.GetBytes($"FASTER_{i}_{strValue}") };

                session.Upsert(ref key, ref value, Empty.Default, serialNo: i);
            }

            session.Dispose();
            db.TakeFullCheckpoint(out Guid token, CheckpointType.FoldOver);
            db.CompleteCheckpointAsync().GetAwaiter().GetResult();
            db.Dispose();
            log.Close();
            objlog.Close();

and then when I am trying to recover state:
db.Recover();

I am getting: NullRef exception in this section
public unsafe int ProtectAndDrain()
    {
      int threadEntryIndex = LightEpoch.threadEntryIndex;
      this.tableAligned[threadEntryIndex].threadId = LightEpoch.threadEntryIndex;

Can you please suggest how to fix it?

I run the same sample on Ubuntu and it works.
Basically I see that Recovery on mac is just freezing constantly.

It seems I can reproduce it only in debug mode.

You need to create a new instance of DB and call recover on it. Do not operate on a disposed DB instance.


Handle Cookies

Functions that handle cookies.

[ ] Cookies banner
[ ] Configure setting for cookies
[ ] Save and restore cookies to and from browser
[ ] Cookies-related interactions with the backend server.

Some of this may need to be done (the banner, for GDPR compliance) but much of the functionality of cookies is handled automatically by the browser through HTTP request headers. So, the third and fourth points are probably not necessary


Missing ECH definitions

ECH competition is not show in main.py and it's not configured in leagueproperties.py
soccer --league ECH --standings
POS    CLUB                              PLAYED        GOAL DIFF     POINTS
Traceback (most recent call last):
 File "/usr/local/bin/soccer", line 9, in <module>
    load_entry_point('soccer-cli==<IP_ADDRESS>', 'console_scripts', 'soccer')()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 722, in __call__
     return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 697, in main
     rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 895, in invoke
     return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 535, in invoke
     return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/soccer_cli-<IP_ADDRESS>-py2.7.egg/soccer/main.py", line 296, in main
    get_standings(league, writer)
  File "/usr/local/lib/python2.7/dist-packages/soccer_cli-<IP_ADDRESS>-py2.7.egg/soccer/main.py", line 138, in get_standings
     writer.standings(req.json(), league)
   File "/usr/local/lib/python2.7/dist-packages/soccer_cli-<IP_ADDRESS>-py2.7.egg/soccer/writers.py", line 132, in standings
    cl_upper, cl_lower = LEAGUE_PROPERTIES[league]['cl']
KeyError: 'ECH'

Thanks for your feedback. I updated the league and leagueproperties files. should be all set now.


do we need FASTFortranTNamedBehaviouralEntity ?

We could used TBehaviouralEntity + TNamedEntity
Note: Same discussion applies to all of FAST (Java, Pharo)

merged

TNamedBehaviouralEntity exists at the moment as it being created by "super defineTraits" creating copy of all FAST traits tailored for the project and can not be deleted separately. However, it will disappear as soon as we start to use FAST traits instead of fortran ones

Great, let's create an issue for that ... and do it :-)


Add to docu that after updating the cmor tables by a developer the git submodule update has to be executed

Add to docu that after updating the cmor tables by a developer the git submodule update has to be executed, i.e.:
git submodule update --init --recursive

CMOR table update description in post installation case has been added. So I close the issue.


New useNavigation hook

Hooks
useNavigation
This hook provides you a set of navigation helpers that aims to reduce the boilerplate required to perform common navigation actions specially those that need the componentId argument.
In order to use this hook your screens must use the <NavigationProvider> to pass the componentId to the three below so the useNavigation hook can read it.
You can take advantage of the withNavigationProvider or you could also use the <NavigationProvider> manually.
import { Navigation } from 'react-native-navigation'
import { ComponentIdContext } from 'react-native-navigation-hooks'

Navigation.registerComponent('MyScreenComponent', () => withNavigationProvider(MyScreenComponent))

// or

Navigation.registerComponent(
  'MyScreenComponent',
  () => (props): ReactElement => {
    return (
      <NavigationProvider>
        <MyScreenComponent {...props} />
      </NavigationProvider>>
    )
  },
  () => MyScreenComponent
)

Then you just need to use useNavigation without worrying about the componentId and boilerplate code 💪
📜 Before
import { Navigation } from 'react-native-navigation'

const MyScreen = ({ componentId }) => {
  const handleShowModalPress = () =>
    Navigation.showModal({
      stack: {
        children: [
          {
            component: {
              name: 'ModalScreen',
            },
          },
        ],
      },
    })

  return <Text onPress={handleShowModalPress}>Show Modal</Text>
}

💅 After
import { useNavigation } from 'react-native-navigation-hooks'

const MyScreen = () => {
  const { showModal } = useNavigation()

  const handleShowModalPress = () => showModal('ModalScreen')

  return <Text onPress={handleShowModalPress}>Show Modal</Text>
}

You can check the list of the supported methods and the arguments overload here.
Helpers
createLayout
A helper function to generate a Layout object shape
function createLayout<P = {}>(name: string, passProps?: P, options?: Options): Layout

Checkout the tests here
createStack
An overloaded helper function to generate a LayoutStack object shape
function createStack(layoutStackChildren: LayoutStackChildren, id?: string, options?: Options): LayoutStack
function createStack(layoutStackChildrenArray: LayoutStackChildren[], id?: string, options?: Options): LayoutStack
function createStack(name: string): LayoutStack
function createStack<P = {}>(name: string, passProps?: P): LayoutStack
function createStack<P = {}>(name: string, passProps?: P, options?: Options): LayoutStack

Checkout the tests here

:tada: This PR is included in version 6.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Implement AUTOSAR end-to-end protection

Currently we limit ourselves to profile 2 and profile 5. Besides implementing the actual E2E functionality, this PR implements the extraction the required data ids for PDUs from ARXML files into the autosar specifics of messages. Also it includes the associated unit tests and modifies the list subparser to display the properties required for E2E protection.
Andreas Lauser<EMAIL_ADDRESS>on behalf of MBition GmbH.
Provider Information

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

168 of 178 (94.38%)  changed or added relevant lines in 4 files are covered.
6 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.06%) to 94.246%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cantools/subparsers/list.py
7
9
77.78%

cantools/autosar/end_to_end.py
67
70
95.71%

cantools/database/can/formats/arxml.py
93
98
94.9%

Files with Coverage Reduction
New Missed Lines
%

cantools/logreader.py
1
97.17%

cantools/tester.py
1
95.79%

cantools/subparsers/monitor.py
2
74.43%

cantools/subparsers/plot.py
2
97.58%

Totals

Change from base Build<PHONE_NUMBER>:
-0.06%

Covered Lines:
6535

Relevant Lines:
6934

💛  - Coveralls

@juleq: As usual, I'm not aware of any issues that would prevent merging with this PR. As always, a cursory glance over the code before pressing The Green Button would be IMO advisable, though.


chore: use fedimint forks of threshold_crypto & hbbft

https://github.com/fedimint/hbbft/pull/10
https://github.com/fedimint/threshold_crypto/pull/8

Backport failed for releases/v0.1, because it was unable to cherry-pick the commit(s).
Please cherry-pick the changes locally.
git fetch origin releases/v0.1
git worktree add -d .worktree/backport-3233-to-releases/v0.1 origin/releases/v0.1
cd .worktree/backport-3233-to-releases/v0.1
git checkout -b backport-3233-to-releases/v0.1
ancref=$(git merge-base 8ab11ddd987cb73e01c9c94901518639a89f07d4 9826fc03c377c1699825fb5e87919f95691945a7)
git cherry-pick -x $ancref..9826fc03c377c1699825fb5e87919f95691945a7