proposal: spec: extend comma-ok expressions to + - * / arithmetic

This is a proposal for a (backward-compatible) language extension.

The notion of comma-ok expressions can be extended in a natural way to the 4 basic
arithmetic operations (+, -, *, /) such that a 2nd result value (traditionally the
"ok" value) provides the carry, borrow, overflow, and remainder value,
respectively.

Specifically (spec wording):

-----

A binary expression with one the four basic arithmetic operators may be used in an
assignment of initialization of the special form:

   z, c = x op y
   z, c := x op y
   var z, c = x op y
   var z, c T = x op y

The operator op must be one of +, -, *, or /. The value and type of z is the same as in
the single-result form. In the special form, the type of c is the same as the type of z,
and the value of c is defined as follows:

For +, -, and /, the value of c is (x op y) >> s with the operation carried out in
twice the precision of the types of the operands, and with s = operand type size in
bits. For /, the value of c is the remainder x%y.

In other words:

   for +, c is the "carry" value (0 or 1)
   for -, c is the "borrow" value (0 or -1)
   for *, c is the "overflow" value
   for /, c is the remainder

-----

The implementation is straight-forward since these c values tend to be computed anyway:
For +, and -, the value of c corresponds to the "carry/borrow bit" usually
computed always for these operations. The carry bit simply needs to be converted and
stored (between 1 to 3 machine instructions, depending on architecture, storage
location). Division operations usually leave the remainder in a register. Only
multiplication requires double-width arithmetic, and only if c is required.

Applications:

- Code that needs to check for integer overflow can be simplified. For unsigned ints,
the c value is the desired bit.
- Numeric conversions (from integer to decimal) require both / and % on the same
operands. Providing q, r := x/y is likely to run twice as fast w/o the need for the
compiler to detect that a % operation following a / is using the same operands.
- Some of the core routines required for arbitrary precision arithmetic can be written
in a straight-forward manner in Go and should achieve similar performance as
corresponding assembly code, without the need for fancy compiler optimizations.

Concrete example: If x, y, z represent fixed-size high precision unsigned integers (n*64
bits), + could be written as follows:

   const n = 100
   var x, y, z [n]uint64

   // compute z = x + y
   var c uint64
   for i, x := range x {
            z[i], c = x + y[i] + c
   }

Without the special z, c = x + y form, analogous code written in c will be prohibitively
expensive compared to the respective assembly.

Numeric conversions (from integer to decimal) require both / and % on the same operands. Providing q, r := x/y is likely to run twice as fast w/o the need for the compiler to detect that a % operation following a / is using the same operands.

I know that the suggestion here was to spare the compiler some work. However, I think that it would now be quite easy to write an SSA pass that recognizes code like
q := x / y
r := x % y

and substitutes a specialized op for it, and then add faster arch-specific implementations for that op. Something similar probably holds for carry, borrow, and overflow, if we pick a standard idiomatic way to express them (a la the memclear range expression).
cc the usual numeric/SSA crowd: @dr2chase @brtzsnr @randall77 @tzneal

(Picking an idiom to express such calculations also solves @mdempsky's concerns, since it completely specifies the correct behavior.)

In SSA we have so far avoided having ops which return multiple values.  I think such a thing is inevitable, and this is one use case for it.  Another is ops which generate both a result and a flags value, so we don't have to do things like SUBQ x, y; CMP $0, y; JNE ... .  If we had a subtract that generated a result and flags, we could avoid the comparison.
Multiple-value-generating ops require some sort of tuple type and tuple-extraction psuedoops in the SSA form.  It isn't hard, but I've avoided it for now because life is simpler without those things.

@josharian

I know that the suggestion here was to spare the compiler some work. However, I think that it would now be quite easy to write an SSA pass that recognizes code [...] and substitutes a specialized op for it, and then add faster arch-specific implementations for that op.

That would address the point about compiler efficiency, but that doesn't really address the main point of the issue - which is to simplify and improve readability in code that cares about overflow and remainders.
(Adding to the spec is unlikely to spare the compiler much work anyway - and this case is easy enough to optimize using any of a bunch of strategies that don't require extending the language.)

I don't like coupling the language to the underlying architecture
more than it's absolutely needed.
For example, the proposed
sum, carry := a + b
makes the implicit assumption that the underlying architecture
has the concept of carry bit. What if the architecture doesn't have
carry bit? For those architectures, the proposed form does not
match to the underlying architecture easily, and the compiler is
likely to generate worse code too. As an example, the RISC-V
architecture doesn't contain any flags register or carry bits.
Similarly, the proposed
quo, rem := p / q
assumes that quotient and remainder are available from the same
instruction, but actually most RISC architectures don't offer such
a divide instruction.
It's ok for the compiler to detect that both quotient and remainder
are needed and group that into a single instruction, but let's not
tie the language to x86 or any particular architecture paradigm.

@minux

For example, the proposed
sum, carry := a + b
makes the implicit assumption that the underlying architecture
has the concept of carry bit. What if the architecture doesn't have
carry bit?

Then it compiles to more than one instruction, of course.  Same as what you do today if the architecture doesn't have a hardware divide instruction - there's no general requirement that operators in the high-level language be in 1:1 correspondence with machine instructions.

Similarly, the proposed
quo, rem := p / q
assumes that quotient and remainder are available from the same
instruction, but actually most RISC architectures don't offer such
a divide instruction.

No?  It only assumes that the programmer is interested in both the quotient and the remainder of the operation.  If you can compile those to a single instruction, that's great - but if you can't, you compile it to a set of instructions that compute them independently.
Again, this seems to be missing the point: the main benefit of the proposed syntax is to simplify programs that need carries, remainders, and the like - not to make the compiler's instruction selection easier to implement.

@minux What is the preferred way to implement multi-precision arithmetic (say + for arbitrarily large numbers) on RISC-V (you mentioned the absence of a carry bit). Is a separate sequence of instructions needed to determine the carry explicitly? (What's the relevant section in http://riscv.org/specifications/?)

One way to do multiple precision arithmetic without carry is
to use sltu instruction to compare the result of an add with
any of the input operand. It's basically a direct translation
of what you would write with portable C.

I still believe there is merit to this idea, especially because we already do have the concept of operations returning one or two results, depending on context. No matter the underlying architecture, the code is nicer to write and a compiler will likely be able to generate better code. The ability for a compiler to recognize patterns that amount to the same effect is orthogonal to this feature.
That said, we're not going to make language changes of this magnitude at this point. Marked this for Go2, just so we have a record of this discussion.

Just noting http://golang.org/cl/29954 where something like this may be useful.

thread.deposit(0.02)
As an end-user who never considered overflow conditions in my code, I'd indeed expect an 'ok' return instead of the carry. I see some conflicting goals for this feature:

Teach developers about overflow, which is ubiquitous, bug-inducing, and yet largely ignored...
a. ...except for enthusiasts like me who read blog posts and postmortems, but still never take it into account.
Showcase a powerful Go internal capability: some primitives can have single or multiple return, allowing for extended functionality for those that require it, including something so fundamental as addition. What's more, it's backward compatible!
Ease of use for developers that already consider overflow conditions, and have to make their code not-so-readable to consider all edge cases
Make code that uses carry very performant by using the underlying architecture capabilities directly

The order above matches my perspective on importance; I'd accept a loss in performance in exchange of clarity and consistence. That is, for addition it could be implemented in Go directly, not considering the processor architecture:
func outOfBoundsSum(x, y int32) bool {
	return (x > 0 && y > math.MaxInt32-x) || (x < 0 && y < math.MinInt32-x)
}

(Wouldn't a SufficientlySmartCompiler(TM) take these checks and transform it into very optimized machine code already?)
Also: When this feature is implemented I can already see golint warning on this construct:
 // Just use rem := p % q 🙄
_, rem := p / q

(Wouldn't a SufficientlySmartCompiler(TM) take these checks and transform it into very optimized machine code already?)

FWIW, there's discussion of adding checked arithmetic library routines in #18616.

I see some conflicting goals for this feature:

Teach developers about overflow […].

Yes.  As I see it, that's the main purpose of extending the operators rather than adding a library: programmers view the core language as "the default thing to use" and libraries as "power-user features", and arguably that encourages the wrong defaults in terms of thinking about (and handling) overflow.

Showcase […] multiple return […].

I think that's a non-goal?  The point of adding language features is to improve programs and/or the programming experience.  We don't generally add features to Go just to demonstrate that they could fit in.

Ease of use for developers that already consider overflow conditions […].

Yes, although arguably that goal could be satisfied almost as well with a library.

Make code that uses carry very performant by using the underlying architecture capabilities directly

I think that's a non-goal, too: it would be easy enough to add performance optimizations for specific patterns, especially now that the compiler has an SSA backend.  The potential performance implications don't seem nearly strong enough to justify adding a language feature.

(Wouldn't a SufficientlySmartCompiler(TM) take these checks and transform it into very optimized machine code already?)

Yes.  As I see it, the point of the proposal is to improve legibility and correctness-by-default ― not performance.

@bcmills, glad we agree on the most important parts.
 And I'm certainly not serious about the SufficientlySmartCompiler(TM), though I'm curious what's the actual, generated code today.
I didn't see this brought up yet: I was thinking a bit more about the issue, and now I believe that division should also return an 'ok', to bubble up the result from intermediate operations. We'd also be able to use that for zero-checking!
// Almost free overflow checking for lazy developers
func bucketDivisionOk(a, b, size int) (int, bool) {
	return ((a+b)/2 + size + pad - 1) / (size + pad)
}

// If division is different, code can become ugly...
func bucketDivisionRemainder(a, b, size int) (int, bool) {
        mid, ok1 := a+b
	up, ok2 := mid/2 + size + pad - 1
        down, ok3 := size + pad
        return up / down, ok1 && ok2 && ok3
}

// ...almost like what libraries can already provide today.
func bucket(a, b, size int) (int, bool) {
	mid, ok1 := sumInt(a, b)
	up, ok2 := sumInt(mid/2, size, pad, -1)
	down, ok3 := sumInt(size, pad)
	return up / down, ok1 && ok2 && ok3
}

So my feeling is now against the proposed change, which is to surface the internals of arithmetic operations (carries, remainder), and stick to the 'ok' convention to instead provide an 'out of bounds/invalid argument' error reporting.

There's this proposal for extending the language and the proposal (for a proposal) for a library in  #18616.
Of the two, I'd much rather have it be part of the language. I think we definitely need one of the two, and a library is certainly better than nothing.
They both have their pros and cons. (In this I'm assuming that either will perform equally well with compiler intrinsics, and ignoring any particulars up for debate as much as possible).
Language change:

pro: makes a point about how important the concept is
pro: can apply to all integer types and operations equally
pro: terse in the good way
pro: natural extension of the "comma-ok" language pattern
pro: easily readable and writable, once you know what it means, making it more likely to be used
con: easily confusing if you don't know what it means (but this would happen once and have a short learning curve)
con: much more work to add than a library: spec, parsers, go/* libs, et al. need to be updated
con: the last point could cause weird bugs to surface in downstream code using go/* libs
con: programs written with the new syntax would immediately be locked to Go 1.x+, possibly hampering initial adoption.

Library:

pro: can be prototyped more easily
pro: a pure Go prototype could be backported to those stuck on an earlier Go 1.x
pro: only library and compiler (for intrinsics) need to be touched
pro: no "what does that mean?" moment: the meaning will be encoded in package/func name
con: more verbose than syntax, especially given 4 operations times 10 types†
con: given the 40 functions† necessary for full coverage, less likely to cover all integer types/operations, at least initially
con: not easy to read the docs in godoc without #18858

All of that said, and while, again, I would prefer a language change, I think a math/checked library seems more reasonable.
† realistically 3 operations (for a maximum of 30 functions) since DivRem isn't symmetric in a math/checked library like it is with the syntax change and the body of that function is trivial, easy to do now safely and tersely, and more amenable to optimization than Add, Sub, and Mul.

@jimmyfrasche

con: programs written with the new syntax would immediately be locked to Go 1.x+, possibly hampering initial adoption.

Yeah, I think that's the biggest downside to the language change.  But as @griesemer noted (https://github.com/golang/go/issues/6815#issuecomment-194562831), it's something we can revisit for Go 2.
At this point, I think the best approach is likely a standard library (or /x/ library) for Go 1 with an eye toward built-in operators for Go 2.

con: given the 40 functions† necessary for full coverage, less likely to cover all integer types/operations, at least initially

It is indeed unfortunate that the library would need so many functions.  Sadly, the fix for that (https://github.com/golang/go/issues/15292) is also labeled for Go 2.

I'm going to mark this a proper proposal (for Go 2).
That said, and even though I originally proposed this, I am less and less in favor of this. The original motivation was to write some of the math/big code routines in Go rather than assembly, and get similar performance. Yet, it's probably always possible to squeeze out more performance in assembly for some of these core routines (about a dozen or so), and if we can, we want to because these routines are crucial (e.g crypto applications). Also, it will be much easier to tweak the specific assembly code than the compiler if a better way to write that code emerges. Finally, the places where code like this matters is small.
More philosophically, moving specialized complexity into the language and compiler just doesn't seem justified for these specific routines (it's a bit a different story for built-ins such as append, etc. which are used pervasively).

@griesemer to clarify do you mean that you're marking the proposal for the language change to Go2 (in favor) but that a separate proposal for a math/checked library would be considered?

@jimmyfrasche I'm less and less in favor of this language change no matter Go 1 or Go 2. There's no way this is going in Go 1, so I leave it open for Go 2, to be considered as a proper proposal (others may feel differently). We have accepted the math/bits library and we are still considering extending it with some of these operations, which would be an an alternative approach.

In an out-of-band discussion, @praetergeek pointed out that the typical use of a carry value from an addition is to combine it with some later (three-operand) addition: x = y + z + carry.
And it's worth noting that you can do around 2^31 additions before the carry bits overflow an int32.
So if we were to pursue this proposal further, perhaps we would want to allow strings of multiple addition or subtraction operations, with the second value representing the sum of the carries rather than a single bit.  That would also help cut down on boilerplate when the feature is used: applications that are sensitive to overflow in aggregate but don't care about temporary excursions could simply string together multiple operations and check whether the carry is nonzero.
It isn't obvious to me whether that approach can be applied to expressions that mix addition or subtraction with multiplication or division.

I think we should also provide "comma, ok" forms for lossy conversions.  For example:
x := math.MaxInt64
y, c := int16(x)

would result in y = int16(math.MaxInt16) and c = int64(math.MaxInt64 - math.MaxInt16).

I've been thinking about this some more.  Putting the carry in the second value has a nice mathematical purity to it, but in practice it seems more useful to be able to detect overflow for an expression containing multiple arithmetic operators (including multiple multiplication operators).
So I'm now in favor of using booleans instead (as described in #19624).

On 26 March 2017 at 06:02, Bryan C. Mills<EMAIL_ADDRESS>wrote:

And it's worth noting that you can do around 2^31 additions before the
carry bits overflow an int32.

The alternative of using counting carry will still perform worse than the
single-bit carry version, even -- or especially -- when amortized over a
large number of operations.
Addition with with a single-bit carry-in and carry-out has zero
additional cost over a regular addition, because it's a single CPU
instruction. Whereas implementing the "counting carry-out" that you're
suggesting would be at least twice as expensive.
The intended use-case is operand-major iteration, rather than
word-within-operand-major. Multi-precision addition would look like this:
a := operands[0] // or make a copy, if you might need to re-use the

first operand
for b := range operands[1:] {
c := false
for i, _ := range b {
a[i], c := a[i] + b[i] + c // carry-in/carry-out, a single CPU
instruction
}
}
rather than
a := operands[0]
c := 0
for i, _ := range a {
    a[i], c = a[i] + c
    c = 0
    for b := range operands[1:] {
        a[i], c += b[i] // counting carry, at least 2 CPU instructions
    }
}

In the ideal case "operands" is declared as "[][8]uint64" in which case the
inner loop could be unrolled in the first version.

FWIW, given both Robert's Mar 20 comment above and the fact that now we have math/bits for similar compiler trickery, it seems like a language change is overkill for this, since these are only rarely needed. It would be much simpler to add appropriate functions to math/bits than to complicate the core language.

Based on above comments, withdrawing this proposal.


New codegen

type environment
term context: signature

Hello, I am a code review bot on flows.network.
It could take a few minutes for me to analyze this PR. Relax, grab a cup of coffee and check back later. Thanks!


remote error: tls: expired certificate

hi, the certificate has expired, please update, thanks in advance.
Version: Bump v1.0.2
Linux amd64

https://github.com/Finb/bark-server/releases/download/v1.0.2/bark-server_linux_amd64
Now the push certificate embedded in the program will never expire.

https://github.com/Finb/bark-server/releases/download/v1.0.2/bark-server_linux_amd64
Now the push certificate embedded in the program will never expire.


Create page for links and resources

Categories:

BDD
SystemVerilog / UVM

Resources

Pickles

BDD Addict

https://github.com/williaml33moore/bathtub/commit/33b050d5d2c7856a6f2cc7077c338553beee0ff0


Can't download submodule opencv-glib ?

#18
This may not be a problem. Just a report.

Thanks.
I've changed repository URL to https://... from<EMAIL_ADDRESS>


Reverb control Generate error

When reverb control is turned off, it plays the same as the original voice...

Can you specify the settings you used?

Plus: I'm a local user

Maybe try increasing the dryness level of the vocals to 100%?

It works fine! Thank you!

It works fine! Thank you!


Cannot load the assembly

I am trying to use the IdentityModel 3.1.0 (In order to match the assembly version used in IdentityServer4 version 2.1.2) from NUGET in order to create the Authorize URL endpoint but receiving the following runtime exception error:
System.IO.FileLoadException: Could not load file or assembly 'IdentityModel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)
File name: 'IdentityModel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'
Is there something that I am missing here?

don't know.

Thanks for the quick response.
I have been able to resolve the error message by downloading the source and signing the assembly with a signing key. However, I am facing a new issue with the IdentityServer4 throwing an exception and the stacktrace for the same is provided below:
  Request finished in 77.4983ms 200 text/html; charset=UTF-8

fail: Microsoft.AspNetCore.Server.Kestrel[0]
Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter.
System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm
--- End of inner exception stack trace ---
at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.FrameConnection.d__50.MoveNext()
fail: Microsoft.AspNetCore.Server.Kestrel[0]
Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter.
System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm
--- End of inner exception stack trace ---
at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.FrameConnection.d__50.MoveNext()
In effect it seems that I cannot use the IdentityModel package separately in my project. I wanted to use the IdentityModel package and not the entire IdentityServer4 package for the present project. Do you see this as a problem?

I don't see any connection between the two problems

Sorry for the delay in responding.
I have been able to resolve the issue by signing the code set with a key. However I feel that the binary present in NUGET should be signed and have a public key associated with it. Please do let me know if you feel otherwise.
The other exception is not related to IdentityServer and is a setup issue from my end.

We don't do stong naming as we don't see any benefit in it. Feel free to sign yourself.


feat: stream uploads of large SBOM's

Fixes #21
Uploads are working, fetches are next

Approach looks good to me! Should probably refactor the annotations setting to not use string literals after this.

Closing this for posterity in lieu of #79


Error while starting Editor

Hey Pageflow Team,
sorry to bother you again, but since we updated our Staging System with a lot of your help, i know started to update the live system.
After i transferred everything and tested the pageflow 16 installation before installing Pageflow Next i stumbled over another Issue that i did not encounter before.
For some entries, and i could not identify the similarities of these entries yet, i get an alert saying Error while starting Editor.
The Logs say the following:
I, [2024-05-23T15:36:21.844739 #1153163]  INFO -- : [1e604785-0faf-47d0-a5e9-e5afbac836a0]   Rendered /home/pageflow/.rbenv/versions/2.5.9/lib/ruby/gems/2.5.0/gems/pageflow-16.0.0/app/views/pageflow/editor/entries/seed.json.erb (450.0ms)
I, [2024-05-23T15:36:21.844938 #1153163]  INFO -- : [1e604785-0faf-47d0-a5e9-e5afbac836a0] Completed 500 Internal Server Error in 462ms (ActiveRecord: 36.2ms)
F, [2024-05-23T15:36:21.847092 #1153163] FATAL -- : [1e604785-0faf-47d0-a5e9-e5afbac836a0]
F, [2024-05-23T15:36:21.847144 #1153163] FATAL -- : [1e604785-0faf-47d0-a5e9-e5afbac836a0] ActionView::Template::Error (unknown keywords: permitted_classes, aliases):
F, [2024-05-23T15:36:21.847258 #1153163] FATAL -- : [1e604785-0faf-47d0-a5e9-e5afbac836a0]     1: json.call(color_map_file, :width, :height, :sprite_url)
[1e604785-0faf-47d0-a5e9-e5afbac836a0]     2:
[1e604785-0faf-47d0-a5e9-e5afbac836a0]     3: json.components do
[1e604785-0faf-47d0-a5e9-e5afbac836a0]     4:   color_map_file.present_colors.inject(0) do |sprite_offset, color|
[1e604785-0faf-47d0-a5e9-e5afbac836a0]     5:     bounding_box = color_map_file.bounding_box_for_color(color)
[1e604785-0faf-47d0-a5e9-e5afbac836a0]     6:
[1e604785-0faf-47d0-a5e9-e5afbac836a0]     7:     json.set!(color) do
F, [2024-05-23T15:36:21.847282 #1153163] FATAL -- : [1e604785-0faf-47d0-a5e9-e5afbac836a0]
F, [2024-05-23T15:36:21.847334 #1153163] FATAL -- : [1e604785-0faf-47d0-a5e9-e5afbac836a0] /home/pageflow/.rbenv/versions/2.5.9/lib/ruby/2.5.0/psych.rb:313:in `safe_load'

I would really appreciate your help one more time. For now i try to find the similarities in the entries which crash with this error.
Thanks in advance and best regards
Ronald

Hey, i could resolve this issue by separately installing the psych gem with version constraint ~> 3.1 as described here
https://github.com/rails/rails/issues/45590
This is the result of my old Ruby version which ships with an older psych version.
Now i get another error in the same step which is most likely again the result of a dependency problem:
F, [2024-05-24T09:59:53.615056 #1194743] FATAL -- : [8d9ef4b8-8128-4646-b4e9-45495a9f6613] ActionView::Template::Error (Tried to load unspecified class: Symbol):
F, [2024-05-24T09:59:53.615187 #1194743] FATAL -- : [8d9ef4b8-8128-4646-b4e9-45495a9f6613]     1: json.call(color_map_file, :width, :height, :sprite_url)
[8d9ef4b8-8128-4646-b4e9-45495a9f6613]     2:
[8d9ef4b8-8128-4646-b4e9-45495a9f6613]     3: json.components do
[8d9ef4b8-8128-4646-b4e9-45495a9f6613]     4:   color_map_file.present_colors.inject(0) do |sprite_offset, color|
[8d9ef4b8-8128-4646-b4e9-45495a9f6613]     5:     bounding_box = color_map_file.bounding_box_for_color(color)
[8d9ef4b8-8128-4646-b4e9-45495a9f6613]     6:
[8d9ef4b8-8128-4646-b4e9-45495a9f6613]     7:     json.set!(color) do
F, [2024-05-24T09:59:53.615224 #1194743] FATAL -- : [8d9ef4b8-8128-4646-b4e9-45495a9f6613]
F, [2024-05-24T09:59:53.615241 #1194743] FATAL -- : [8d9ef4b8-8128-4646-b4e9-45495a9f6613] (eval):2:in `symbol'

Im looking into it. If you got a hint im very thankful to any kind of help.
Thanks and best regards
Ronald

i could resolve this error by adding a configuration to the application.rb
config.active_record.yaml_column_permitted_classes = [Symbol]
as of this StackOverflow answer: https://stackoverflow.com/a/72970171/15399425
But now i find the next Problem. Since these are all dependency Issues when it comes to Pageflow 16 running in an Environment like mine (Ruby 2.5.9; Rails <IP_ADDRESS>) i continue documenting these Issues here if someone stumbles upon this in the future.
Current Error is thrown on opening Preview or Live Site (for some but not all entries):
F, [2024-05-24T12:25:47.156780 #1202300] FATAL -- : [cd9c9032-9529-4aa6-8180-bf0b8530a7fa]     1: <% if page.template.present? %>
[cd9c9032-9529-4aa6-8180-bf0b8530a7fa]     2:   <% concat render_page_react_component(entry, page, 'pageflow.react.ServerSidePage') %>
[cd9c9032-9529-4aa6-8180-bf0b8530a7fa]     3: <% end %>
F, [2024-05-24T12:25:47.156814 #1202300] FATAL -- : [cd9c9032-9529-4aa6-8180-bf0b8530a7fa]
F, [2024-05-24T12:25:47.156933 #1202300] FATAL -- : [cd9c9032-9529-4aa6-8180-bf0b8530a7fa] react-rails (2.6.0) lib/react/server_rendering/exec_js_renderer.rb:22:in `rescue in render'

The last error was a really stupid mistake by me. I simply forgot do add some components in app/assets/javascripts/components.js
These were the following:
//= require "pageflow/timeline_page/components"
//= require "pageflow/parent_page_box/components"

since i have not found this error documented anywhere i would leave it here.

There were no further problems. Therefore i'll close this issue.

Hi Ronald,
due to vacation during the past weeks, I've only read your messages now. Happy to hear, you were able to resolve the issues. I think it's helpful to have these things documented in the issue tracker. If certain issues should come up again in different contexts, we can definitely consider adding some of these points to the main troubleshooting page. Since the current Pageflow version already uses Rails 7, I'm not sure the same problems still occur there. So for now, having things documented here works well for me.
All the best
Tim


Ya don't null check boi

pls sir i need this for PeRf TeSTiNg

https://github.com/awtkns/fastapi-crudrouter/blob/6a562a92363a889ce25bb1ffb7f2c95140793ccc/fastapi_crudrouter/core/_utils.py#L58

Thanks for finding this @EthanHaid. The it should be fixed in the newest version 🙏


IntelliSense with Visual Studio Code doesn't work

Usually VSC offers to autocomplete for crate components, but it doesn't seem to work with this one whenever I type gl::.
I simply use gl = "0.14.0" in my cargo file and extern crate gl; in main.rs

The content of the crate is actually the result of a build script. Whatever VSC plugin you have probably doesn't work with build scripts.

Based on this https://github.com/intellij-rust/intellij-rust/issues/1908 It seems that IntelliJ has autocomplete feature, but can't find anything to make it work with VSC.
Tried rust-analyzer and Rust (rls) extensions.
Probably I'll try to seek for help elsewhere.


eta: panic! (the 'impossible' happened)

D:\eta\.stack-work\install\4cd6b5f1\bin>eta qs.eta
eta: panic! (the 'impossible' happened)
  (Eta version 0.0.6b7):
        Parsing of archive structure failed:
Cannot locate end of central directory
in "D:\\eta\\.stack-work\\install\\4cd6b5f1\\bin\\qs.eta"

Please report this as a Eta bug: http://github.com/typelead/eta/issues

Hi! could you rename qs.eta to qs.hs and try again? .hs is the extension of haskell and eta source files

@jneira Yes, that works. I've also created #407.


feat(watch): --include & --exclude CLI flags

closes #181
This change adds additional files to the watchlist via adding the add parameter.

@boxizen @privatenumber - I'm interested in these changes. Is there any way I could help here? I cannot push directly to this branch since it is on boxizen's repo, but I could create a new branch that continues from this one if boxizen doesn't have time. The code review comments all look easy enough to address (also, TIL that TS5.2 already introduced support for using declarations)! Thanks and let me know how I could help.

Closing as it was implemented via https://github.com/privatenumber/tsx/pull/625


New terms for second phenomics paper

[x] Resistance to cold
[x] Resistance and sensitivity to X-rays, could be children of ionising rad -> FYPO:0002312 / FYPO:0000267
[x] itraconazole
[x] ciclopirox olamine
[x] amorolfine
[x] itraconazole
[x] lysine nitrogen source
[x] lysine and proline nitrogen source (no FYECO)
[x] increased in ser nitrogen source
[x] ser and lys nitrogen source (no FYECO)
[x] Calcofluor and SDS (Sodium dodecyl sulfate) (no FYECO)
[x] decrease in fructose. FYECO rich medium
[x] Potassium chloride + MMS (no FYECO)
[x] Lithium chloride + SDS (no FYECO)
[x] Lithium chloride + MMS (no FYECO)
[x] Eth as carbon source. FYECO -> ethanol rich medium
[x] MgCl and SDS (no FYECO)
[x] Increased in sucrose cs
[x] NaCl and SDS
[x] Rapamycin and X-rays

terbinafine

Increased in fructorse still missing

Glycerol and galactose carbon source (waiting on the trace glucose answer)

Xylose carbon source


MSG Attachment Replacement not working on Records tabs

Describe the bug in current situation
During the fix of #3875, it was found that REPLACE MANUALLY functionality of attachments under an .MSG file is not happening at all.
Link bug to the User Story
Impact of this bug
If there are updates/formatting required on the excel, word attachments on an .MSG file - REPLACE MANUALLY will not work for any kind of users(IAO, Ministry) - this can delay process of FOI records
Chance of Occurring (high/medium/low/very low)
Pre Conditions: which Env, any pre-requesites or assumptions to execute steps?
Steps to Reproduce
Steps to reproduce the behavior:

Go to Records tab of any FOI request having an .MSG file upload with attachments on it
Click on REPLACE MANUALLY option under ... ellipsis
Replace the attachment file with any file
See error - NO CHANGE!

Actual/ observed behaviour/ results
Expected behaviour
Expectation : replacement should work similar to the other regular file
Screenshots/ Visual Reference/ Source
If applicable, add screenshots to help explain your problem. You an use screengrab.

Discussed with @m-prodan , @lmullane , @KyEggleston - So @nkan-aot suggested we will move head ATTACHMENT REPLACEMENT restricted to only PDF file, and when time /priority allows - we will make  a seperate story for REPLACING any type of files for an attachment on a .MSG file


Feature request: Bash auto-completion

_await.1() {
  IFS='' read -r -d '' descriptions <<'EOF'
--help: '#print this help.'
-o,--stdout: '#print stdout of commands.'
-V,--silent: '#do not print spinners and commands.'
-f,--fail: '#waiting commands to fail.'
-s,--status: '#expected status \[default: 0\].'
-a,--any: '#terminate if any of command return expected status.'
-c,--change: '#waiting for stdout to change and ignore status codes.'
-e,--exec: '#run some shell command on success; .'
-F,--forever: '#do not exit ever.'
-S,--service: '#create systemd user service with same parameters and activate it .'

EOF

  COMPREPLY=()
  local cur
  cur=$(_get_cword)
  IFS='' read -r -d '' completions <<'EOF'
--help
-o
--stdout
-V
--silent
-f
--fail
-s
--status
-a
--any
-c
--change
-e
--exec
-F
--forever
-S
--service
-i
--interval
--daemon

EOF

  if [ -z "$cur" ]; then
      if declare -f _filedir &>/dev/null; then
          _filedir
      else
          COMPREPLY=( $(compgen -f -- "$cur") )
      fi
      return 0
  fi

  COMPREPLY=( $( compgen -W "$completions" -- "$cur" ) )
  if [[ ${#COMPREPLY[*]} -gt 1 ]]; then
      echo ""
      while read -r line; do
          [[ "$line" == "$cur"* ]] && echo "$line"
      done <<< "$descriptions"
  fi

  return 0
}
complete -F _await.1 await

Could you try to save this to a file and source it?
I'm not using bash for over 12 years, so I don't know how bash completions should look like.
Is it ok?
Because for me it doesn't seem so useful.
p.s. Switch to fish or zsh, and you'll never look back

@vdun

Thanks. Can you make for zsh then or whatever shell ?
PS: I'm using zsh, and there are multiple tools to convert them to zsh.

Can you make a pull request for it ?
cod is great, but it does not add the descriptions of each option.

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

Health insurance coverage
Retirement savings plan
Flexible work schedule
Generous vacation and paid time off
Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
imballinst, @sunwuyan, @lianghuiyuan, @gabriellukke, @DiagoSmith, @Bassem-2000, @aicanhelp, @jmcauhy, @lagosnomad, @superdc, @RenatoLopes771, @ArthasShuang, @akr7205, @flacial, @derfabianpeter, @CherryKitten, @mhw1902, @ThomasNickerson, @MrMarik, @ak

Job baits on GitHub are WILD.

The problem is I don't know how to distribute these files with await.

I think the easiest way that I have seen so far is to provide a parameter or subcommand for this purpose to the binary. So, for example, if called like await --completion=bash it would only print out the script for the desired shell and not run await like usual.
This allows it to still be a single binary while providing always up-to-date completion scripts. 😊

Example of tailscale completion --help (click to show)

$ tailscale completion --help
Shell tab-completion scripts

USAGE
  tailscale completion <shell> [--flags] [--descs]

To load completions:

Bash:

        $ source <(tailscale completion bash)

        # To load completions for each session, execute once:
        # Linux:
        $ tailscale completion bash > /etc/bash_completion.d/tailscale
        # macOS:
        $ tailscale completion bash > $(brew --prefix)/etc/bash_completion.d/tailscale

Zsh:

        # If shell completion is not already enabled in your environment,
        # you will need to enable it.  You can execute the following once:

        $ echo "autoload -U compinit; compinit" >> ~/.zshrc

        # To load completions for each session, execute once:
        $ tailscale completion zsh > "${fpath[1]}/_tailscale"

        # You will need to start a new shell for this setup to take effect.

fish:

        $ tailscale completion fish | source

        # To load completions for each session, execute once:
        $ tailscale completion fish > ~/.config/fish/completions/tailscale.fish

PowerShell:

        PS> tailscale completion powershell | Out-String | Invoke-Expression

        # To load completions for every new session, run:
        PS> tailscale completion powershell > tailscale.ps1
        # and source this file from your PowerShell profile.

The shell scripts and this help message have been adapted from the
Cobra project (https://cobra.dev, https://github.com/spf13/cobra)
under the Apache-2.0 license. Thank you for making these available.

SUBCOMMANDS
  bash        Generate bash shell completion script
  zsh         Generate zsh shell completion script
  fish        Generate fish shell completion script
  powershell  Generate powershell completion script

https://github.com/slavaGanzin/await?tab=readme-ov-file#completions
@vdun please check
@mh166 thanks for the idea


gatsby-source-strapi does not replace all nodes using ENABLE GATSBY REFRESH ENDPOINT from gatsby

Hello, I would like to see if you could help me with the following problem, I added the isuue in gatsby, but I think the problem is with the strapi plugins, sorry if this is not the space or to link to another project is that I did not want to repeat the same is here.
https://github.com/gatsbyjs/gatsby/issues/15740

@jlfalcon3589 Thank you for bringing this issue up. This does seem to be the correct place to leave an issue about this.
From what I understand, you are deleting content from your Strapi Admin area, but it is not being deleted "really" and still showing up on your gatsby site?
Could you tell us what database you're using and where you're hosting Strapi?

Hello! I am having a similar issue when adding content. I add some entries of my content type but, even though it is being added to the database (MongoDB) Gatsby isn't getting these new entries.
Is it possible that there is some kind of caching happening at the plugin level?
Thanks in advance ;)

@puzzledbytheweb -

Is it possible that there is some kind of caching happening at the plugin level?

Not exactly.  You will need to rebuild your gatsby site each time you add or change content.  Did you follow the tutorial and create a webhook to automatically build it when you add more content?

@jlfalcon3589 Thank you for bringing this issue up. This does seem to be the correct place to leave an issue about this.
From what I understand, you are deleting content from your Strapi Admin area, but it is not being deleted "really" and still showing up on your gatsby site?
Could you tell us what database you're using and where you're hosting Strapi?

I am using strapi integration with mongodb

@davidkartuzinski Thanks. I probably skipped that part or configured it wrongly.

@jlfalcon3589 - I am having trouble understanding the full context of this issue.  Could you please provide the full context following the issue template:
<!--
Hello 👋 Thank you for submitting an issue.

Before you start, please make sure your issue is understandable and reproducible.
To make your issue readable make sure you use valid Markdown syntax.

https://guides.github.com/features/mastering-markdown/
-->

**Describe the bug**
A clear and concise description of what the bug is.

**Steps to reproduce the behavior**
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Code snippets**
If applicable, add code samples to help explain your problem.

**System**
- Node.js version: <!-- Please ensure you are using the Node LTS version (v10) -->
- NPM version:
- Strapi version: <!-- Please make sure you are on the latest version -->
- Database:
- Operating system:

**Additional context**
Add any other context about the problem here.

Has anyone found a way to do this in staging and production without triggering a Gatsby rebuild/redeploy?

Thanks for your interest in this project. This plugin is moving into the Gatsby User Collective and this repo will be archived. Please open an issue in that repository, submit a PR if you'd like to see this implemented, or join us on Discord if you have questions!


Realm: Deppart operator buffer overrun

I've been getting assertions that look like (for example):
.../realm/deppart/byfield.cc:262: Realm::ByFieldMicroOp<N, T, FT>::ByFieldMicroOp(NodeID, Realm::AsyncMicroOp*, S&) [with S = Realm::Serialization::FixedBufferDeserializer; int N = 1; T = long long int; FT = Realm::Point<1, long long int>; NodeID = int]: Assertion `ok' failed.

After some debugging we've confirmed this is an issue with overrunning buffers inside of Realm, and that the following patch is sufficient to work around the immediate issue:
diff --git a/runtime/realm/deppart/byfield.cc b/runtime/realm/deppart/byfield.cc
index d8d2cab8b..d2200bf81 100644
--- a/runtime/realm/deppart/byfield.cc
+++ b/runtime/realm/deppart/byfield.cc
@@ -210,7 +210,7 @@ namespace Realm {
       async_microop = new AsyncMicroOp(op, this);
       op->add_async_work_item(async_microop);

-      ActiveMessage<RemoteMicroOpMessage<ByFieldMicroOp<N,T,FT> > > msg(exec_node, 4096);
+      ActiveMessage<RemoteMicroOpMessage<ByFieldMicroOp<N,T,FT> > > msg(exec_node, 16384);
       msg->operation = op;
       msg->async_microop = async_microop;
       this->serialize_params(msg);
diff --git a/runtime/realm/deppart/image.cc b/runtime/realm/deppart/image.cc
index 38b0eb330..ffb300b44 100644
--- a/runtime/realm/deppart/image.cc
+++ b/runtime/realm/deppart/image.cc
@@ -337,7 +337,7 @@ namespace Realm {
       async_microop = new AsyncMicroOp(op, this);
       op->add_async_work_item(async_microop);

-      ActiveMessage<RemoteMicroOpMessage<ImageMicroOp<N,T,N2,T2> > > msg(exec_node, 4096);
+      ActiveMessage<RemoteMicroOpMessage<ImageMicroOp<N,T,N2,T2> > > msg(exec_node, 16384);
       msg->operation = op;
       msg->async_microop = async_microop;
       this->serialize_params(msg);

This issue is here to remind @streichler to figure out the proper way to fix this.

I believe commit a71da55 is the proper way to fix this.  Assigning to @elliottslaughter to try this out and confirm everything is happy now.

I'm able to run out to 1024 nodes now, so I consider this fixed.


Make the archived status of repositories more obvious

Inspired by #1174.
If we do this, we should add another list item at the top of the main_metadata section. The icon can be a yellow warning sign, like the emoji suggested in the original PR, but should be in the same style as the other icons in the list.

I can take this issue.

Sounds good, thanks Sarah!

Closed by #1220 and #1221


Redesign: Update all dialogs

Feature Description
See Figma

[x] Status check
[x] title missing
[x] post publish
[x] preview error
[x] media delete
[x] media edit
[x] missing upload permission
[ ] story delet
[x] 3rd party terms
[x] confirm page layout
[x] retire old dialog component

Additional Context

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

I don't see any references to a story delete dialog? But I did go ahead and update the video optimization dialog as well. Safe to say all dialogs are updated.

@csossi the PR description for this one is pretty robust if you need additional context!

Regarding the User Permissions message - it only appears when I try to upload an image via "upload" button. Shouldn't it appear if I try to click-and-drag onto canvas or media panel as well? Video shows what's happening know - let me know if ok-as-is
https://share.getcloudapp.com/WnuY2Brl

(2 more dialogs were created while this has been in QA limbo since testing the permissions dialog is rather obtuse. taking back to in progress to add those dialogs)

Regarding the User Permissions message - it only appears when I try to upload an image via "upload" button. Shouldn't it appear if I try to click-and-drag onto canvas or media panel as well? Video shows what's happening know - let me know if ok-as-is
https://share.getcloudapp.com/WnuY2Brl

@barklund is this right? I can't get the user permissions dialog to trigger either, wondering if this is accurate or just me being unfamiliar with this part of the app.

@csossi I finally figured this out!
So you need to make sure your user doesn't have upload media abilities. It looks like a contributor level of access will get ya there. Then try to upload something on a new story and it'll trigger.

@csossi - if you have capacity today it would be amazing to get this through QA, it's a rather big chunk of code and I know it's going to start holding up the pipeline.

I'm still not seeing the dialog if I click-and-drag to canvas or media section. The only time I see the new dialog is if I click the upload button and try to upload that route. See original video above - that was done as a contributor


Any way to prioritise sections over templates when deploying?

Is your feature request related to a problem? Please describe.
So currently, with OS2.0 themes, when I attempt a full theme deploy to a store, the process crashes because the JSON templates are being pushed before their corresponding sections. The sections do, in fact, exist. ThemeKit just hasn't gotten around to deploying them yet.
Describe the solution you'd like
Some sort of method that pushes the section files before pushing the templates.
Describe alternatives you've considered
The only option I've found is running my Gulp watcher to manually push sections to the store and then run the deploy.
Additional context

I can confirm I have experienced this issue as well. The issue is ThemeKit considers all files equally when uploading. The latest version of the Shopify CLI does not. It prioritizes Liquid files before settings in the push command.
Depending on your use case, you might find it easier to the use the Shopify CLI.


use imports in documentation

fixes #430

Coverage remained the same at 74.483% when pulling 24e648c4c655a171118b2b0d9e3173d81dff5be9 on import-doc-430 into fa3f8d42b049d85d1aba7ebabfbcf4726db44ccb on master.


PSA: pubchem loose (name_type=word) searches failing

pubchem rest api name_type=word that this module uses for loose (e.g., water*) searches appears to be broken. Compare:

FAIL https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/tropolone/property/IUPACName,MolecularFormula,Charge/JSON?name_type=word
FINE https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/tropolone/property/IUPACName,MolecularFormula,Charge/JSON?name_type=complete
FINE https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/tropolone/property/IUPACName,MolecularFormula,Charge/JSON

The name_type=word links at PubChem's own documentation https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest#section=SIDS-CIDS-AIDS are failing, and this was all fine yesterday, so I'm not changing qcel code just yet. For now, one test will fail. avoid with -k "not pubchem_multiout_g"

Looks to be fixed. What an odd partial outage.

This pubchem error is active again. :-(


[Repo Rearchitecture] Review and merge DevEx fork for quickstart validations

Summary
After DevEx finishes the work for validating quickstarts against nerdgraph, we will need to sit down and review the changes with them before merging.

Fork PR

Acceptance Criteria

[ ] Work is handed off to the DevEn team
[ ] Work is merged into main

didn't realize we also had this ticket 🙈
as an update, the PR is mostly good. the one thing we didn't realize was that the current workflow doesn't work correctly for contributions from forks. secrets are not available, so we can't call the api (as part of pull_request trigger) when the contribution comes from a fork.
this means we have to evaluate a different way to move forward. additionally, it seems that no matter what route we choose, we can't get everything we want currently 🙈
something has to be sacrificed in order for us to move forward

we were on board to try using workflow_run and having a workflow trigger another workflow. i've implemented that change here: https://github.com/newrelic/newrelic-quickstarts/pull/665/commits/b50e12608e67f8f2d3714a5bf7445a7c562f455b.


Broken Knowledgebase links in footer and header

Issue
Knowledgebase link is broken (https://ourworldventures.github.io/info_ourworld/intro/intro.html)

Checking to see if we have a public e-book we can link to.


Facing issue while showing hero card for second time using existing object in composer

We are designing the flow using bot composer
As per the requirement we need to show product with images so we are using Hero card(Carousal).
For the first time the card gets displayed properly.
2nd when we are showing the card for adding more items that time it wont display anything.

1st time when we call the cards -

2nd time it look like this -

I'm checking to see if I can reproduce.

I'm checking to see if I can reproduce.

we figured it out.
when we use the same dialog without clearing the user state variables at that time this issue occurs.
I tried deleting all the user state variables then it worked 2nd time as well.

we figured it out.
when we use the same dialog without clearing the user state variables at that time this issue occurs.
I tried deleting all the user state variables then it worked 2nd time as well.


DPE-2215 Fix wait timeout for shared-db

Issue
Mismatch between relation data and server sysvar wait_timeout
Solution
Use mysqld default wait_timeout value.

@paulomach Does this apply for mysql-router VM as well?

No, it's already with the correct value.


Fixed workload property to match reality in Get-RetentionCompliancePolicy.md

https://github.com/MicrosoftDocs/office-docs-powershell/issues/5742

Docs Build status updates of commit ab7ea8c:
:clock10: Full build: the average full build time is 18 min(s) 9 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit ab7ea8c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-RetentionCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit e5e03a8:
:clock10: Full build: the average full build time is 18 min(s) 9 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit e5e03a8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-RetentionCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit dc1ac63:
:clock10: Full build: the average full build time is 18 min(s) 9 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit dc1ac63:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-RetentionCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Allow creating empty list without a CSV file import

Feature request.

I am not sure if this will be taken up, because we don't want the user to simply create empty lists because it's more like a mess if nothing is added to it later.

The user has to be able to start from somewhere if they don't already have a list on some other service. For FCC the use case was migrating from Mailchimp (or some other email service). But for some users it will be starting a new list from scratch (like me).
If they're just starting their list, there won't be a CSV file to import (like it is my case). Requiring a dummy one is confusing and unnecessary.
As far as MfG as a Mailchimp replacement goes, Mailchimp does allow one to create an empty list, then add the opt-in form to a page to get the first signups, so I think this also makes sense for MfG.

@hsribei I agree that you need to create an empty list when you don't have any subscribers, but the thing is, there's also a technical catch to it which I just thought about. When you create a list, you need to say what data (fields) you are going to store about the subscriber other than the Email ID. Those custom fields (eg. Name, City etc ) can be used in the Email Templates to customize and make the Email look more personalized. But all this is possible only if a CSV is imported, as it's the CSV that tells the custom fields, as it has the first row (row header) to mention the columns/fields.
For now, we don't have a feature to add custom fields after creating the list. So, if that's done, then we can add this feature.

@karuppiah7890 So does this mean, Email Subscribers & Unsubscribers are managed by Mail For Good❓
I am just starting out with no subscribers & would love to use Mail For Good. So I was handling a way to manage Emails both the subscribers & unsubscribers, if its already built-in then that might be dumb thing to do 😂
So do I have to do something like
emails.csv
no, email
1<EMAIL_ADDRESS>2<EMAIL_ADDRESS>
to start out & then rest is managed by Mail For Good or do I have to manage my own subscribers & Mail For Good just handles the sending of Emails❓

cc @zhakkarn as you're more active here 😉

Okay I got it. I just created a sample csv file like
email
<EMAIL_ADDRESS>
& imported it & now everything is handled by Mail For Good :)


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/27145

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/40238

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/41161

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/41165

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/49605

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/49619

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/52430

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/53936

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/54592

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/60524

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/61923

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/61925

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/62642

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/62656

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/65821

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/65825

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/65827

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/66421

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/67899

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/69459

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/70241

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/70680

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/103117

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/116506

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.


Media controls won't render in sidebar

For some reason, media controls don't render when you open them as a block in sidebar.
https://user-images.githubusercontent.com/31581044/168424498-91f1af3c-04d2-4e13-bd10-614ae43f91b5.mp4

Hmm now they're rendering in the sidebar but not in the main document

So it looks like it only renders one or the other, it can't render two instances of media controls for a single media source.

Thanks for the detailed report, really appreciated. I just had a quick look, but seems to be related to Logseq itself. Multiple instances of the plugin does work in Logseq 0.6.6, but not in 0.6.7 or the latest version 0.6.8. I'll raise a bug report in Logseq.

I opened an issue https://github.com/logseq/logseq/issues/5335

Turns out the plugin requirements changed a little. I made a small change and now it is working again. Watch out for version 0.3.1

@stefanbuck amazing! thank you


Transition.circularReveal error with Ipad Pro (12.9-inch)

I used get: ^4.6.6 Flutter 3.22.0

The large screen iPad will be black at the 4 corners of the screen if use transition: Transition.circularReveal,

@jonataslaw
Same error in Windows!


The markdown for a "NOTE" is incorrect in this file.

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3a44f766-f2c4-ded3-4cd2-fa91d88bcd44
Version Independent ID: 1995d8a4-fd21-5e6c-fc52-e0972d0c5552
Content: Keep IP addresses after Azure VM failover with Azure Site Recovery - Azure Site Recovery
Content Source: articles/site-recovery/site-recovery-retain-ip-azure-vm-failover.md
Service: site-recovery
GitHub Login: @mayurigupta13
Microsoft Alias: mayg

Thanks for bringing this to our attention. We will investigate it further and update you shortly.

@deltadan - Can you please elaborate on the details of the issue with the doc that you are facing ?

@deltadan - Can you please elaborate on the details of the issue with the doc that you are facing ?

@deltadan -  Since we have not heard back from you we will now proceed to close this thread.
However if you can share additional information regarding the documentation you are referring and circle back on this thread , we will gladly reopen the issue and continue the discussion. Thank you.

if you open the webpage the NOTE markdown is broken, so it doesn't display properly.


BoneAttachment needs care

Bone attachment is node, which is intended to be used as parent to things attached to bones,
like CollisionShapes/Areas and "hats"/"weapons". But currently it is extremely uncear how to use it.
On earlier versions it was used like on video on youtube which I still use as sole reference on
3D setup in Godot: http://www.youtube.com/watch?v=ZyTIiwfn2ag
The problem is that this usage is not flexible as it very much depends on node tree.
The best usage for this should be like physics joints - ability to specify used Skeleton, bone, and affected object (this one can be direct child, allright, but Skeleton should not necessarily be the direct parent of BoneAttachment

The most annoying case for this problem is this:

I import scene from Blender which I don't want to modify in Godot and always import
from scratch (as Godot sometimes doesn't operate correctly on modified scene re-import),
as it is quite complex and partial dependencies are not supported, and are quite hard to support,
so it is easier to handle this leaving imported scenes unmodified and do all extra stuff from upper-level (parent) scene.
Almost everything (animations, joints, physics, etc. supports this workflow well, except for
BoneAttachment, which forces me to edit imported scene again and again (thanks to subscenes,
it is a small edit, though) and it is frustrating and very annoying, like trip-over on flat surface.
I don't think it is complicated in any way to make BoneAttachment be consistent with everything else.

Is this still relevant in the current master branch, and if so to what extent?

This one was fixed, the workflow was stramlined with .escn, and inherited scenes allow fluent operation.
Also the node itself was fixed.


docs(Contrib): Contributing.md addition

closes #305

@javonharper Oh good call!! Thank you I'll add that


SILOptimizer: update bounds check and uniqueness check hoisting optimizations for using _modify in Array subscript.

The optimizations now handle the ref_tail_addr instructions for detecting element addresses
(in addition to the array semantics function _getElementAddress).
After _modify for Array subscript lands, we can get rid of _getElementAddress at all.
This fixes most of the regressions of https://github.com/apple/swift/pull/19154, except XorLoop, which needs more work.

@swift-ci smoke test

@swift-ci benchmark

Build comment file:
No performance and code size changes

How to read the data
The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB


(feature request) - Multiple status codes in savestatus

Hello,
Can you please add the option to savestatus to save multiple status codes?
Thank you

Yes, I think too many arguments look ugly. I suggest also add exclude option.


Push to UUID

Change-type: minor
Signed-off-by: Josh Bowling<EMAIL_ADDRESS>
Add ability to push to a device using its UUID. This works for both local and remote devices by first tunneling the device's supervisor API (port 48484) and the docker service (port 2375) to localhost and then running build as normal but with the target device host being set as localhost. The device must be in local mode in order for this to work (otherwise the necessary ports won't be available for tunneling).

Experimented with a way to stand up a local proxy that pipes directly to a remote socket over SSH. Here's what I came up with. It seems to work, but definitely needs more polish, testing, and a conversion to TypeScript.
const { Client } = require('ssh2');
const net = require('net');

// This forwards the balena-engine socket on <IP_ADDRESS> to local port 9020.
// Test with:
// $ node proxy.js
// $ docker -H tcp://<IP_ADDRESS>:9020 images

const conn = new Client();
const proxyPort = 9020;
const deviceAddress = '<IP_ADDRESS>';

const proxy = net.createServer((socket) => {
	console.log('Client connected to proxy');

	// Create a new connection to the TCP server
	conn.on('ready', () => {
		conn.openssh_forwardOutStreamLocal('/var/run/balena-engine.sock', (err, channel) => {
			if (err) {
				console.log(err);
				return conn.end();
			}

			channel.on('close', () => {
				conn.end();
			});

			socket.pipe(channel).pipe(socket);
		});
	}).connect({
	  host: deviceAddress,
	  port: 22222,
	  username: 'root',
	  password: ''
	});

    socket.on('close', function () {
        console.log('Client disconnected from proxy');
        conn.removeAllListeners();
        conn.end();
    });

    socket.on('error', function (err) {
        console.log('Error: ' + err.toString());
        conn.end();
    });
})

proxy.listen(proxyPort);

Testing against my NUC looked something like this:
13:16:07 josh@work ~ docker -H tcp://<IP_ADDRESS>:9020 images
REPOSITORY                                                       TAG             IMAGE ID       CREATED        SIZE
local_image_main                                                 latest          5ffacbdd8c39   3 hours ago    276MB
<none>                                                           <none>          bd2f75338095   20 hours ago   276MB
<none>                                                           <none>          2ea0df112fef   22 hours ago   276MB
<none>                                                           <none>          0c801a8ddd8d   2 days ago     276MB
<none>                                                           <none>          8080867d9649   2 days ago     276MB
<none>                                                           <none>          43c66f4ce03b   2 days ago     276MB
<none>                                                           <none>          2b17cac2c938   2 days ago     276MB
<none>                                                           <none>          d804c8e5d552   2 days ago     276MB
<none>                                                           <none>          37ed76f4f794   2 days ago     276MB
<none>                                                           <none>          5262fde8a97f   2 days ago     276MB
registry2.balena-cloud.com/v2/3721e0c860cae42a50937ed051b07187   latest          8b1f7dea2ea4   2 days ago     276MB
balenalib/intel-nuc-node                                         14-buster-run   0dfc37b6b150   10 days ago    272MB
balena/amd64-supervisor                                          v12.10.3        0bf494dfd0ef   7 weeks ago    66.6MB
registry2.balena-cloud.com/v2/f75c27bb2e0691569cc8b2cd16902f80   latest          0bf494dfd0ef   7 weeks ago    66.6MB
balena-healthcheck-image                                         latest          d1165f221234   7 months ago   13.3kB


struct.error: unpack requires a buffer of<PHONE_NUMBER> bytes

When running unityextract with ./bin/unityextract --audio -o out/audio2 /d/Games/Hearthstone/Data/Win/*.unity3d, I have the following stack trace:
Traceback (most recent call last):
  File "./bin/unityextract", line 159, in <module>
    main()
  File "./bin/unityextract", line 155, in main
    exit(app.run())
  File "./bin/unityextract", line 57, in run
    self.handle_asset(asset)
  File "./bin/unityextract", line 83, in handle_asset
    if obj.type not in self.handle_formats:
  File "C:\Users\Daedin\AppData\Local\Programs\Python\Python36\lib\site-packages\unitypack-0.9.0-py3.6.egg\unitypack\object.py", line 30, in type
    script = self.read()["m_Script"]
  File "C:\Users\Daedin\AppData\Local\Programs\Python\Python36\lib\site-packages\unitypack-0.9.0-py3.6.egg\unitypack\object.py", line 84, in read
    return self.read_value(self.type_tree, BinaryReader(BytesIO(object_buf)))
  File "C:\Users\Daedin\AppData\Local\Programs\Python\Python36\lib\site-packages\unitypack-0.9.0-py3.6.egg\unitypack\object.py", line 149, in read_value
    result[child.name] = self.read_value(child, buf)
  File "C:\Users\Daedin\AppData\Local\Programs\Python\Python36\lib\site-packages\unitypack-0.9.0-py3.6.egg\unitypack\object.py", line 149, in read_value
    result[child.name] = self.read_value(child, buf)
  File "C:\Users\Daedin\AppData\Local\Programs\Python\Python36\lib\site-packages\unitypack-0.9.0-py3.6.egg\unitypack\object.py", line 118, in read_value
    result = buf.read_string(size)
  File "C:\Users\Daedin\AppData\Local\Programs\Python\Python36\lib\site-packages\unitypack-0.9.0-py3.6.egg\unitypack\utils.py", line 70, in read_string
    ret = struct.unpack(self.endian + "%is" % (size), self.read(size))[0]
struct.error: unpack requires a buffer of<PHONE_NUMBER> bytes

This looked similar to https://github.com/HearthSim/UnityPack/issues/23, and I tried to re-clone unitypack and reinstall from scratch, but the issue still persists.
Do you have any idea how to fix this?

I can reproduce using only the gameobjects0 asset:
./bin/unityextract --audio -o out/audio /d/Games/Hearthstone/Data/Win/gameobjects0.unity3d

Seeing the same in another Unity project. It appears that although the asset metadata is parsed correctly, the type/tree information and/or the actual object reading function is not functioning correctly, and the actual data of the object is not correctly understood.
Haven't discovered the root cause yet, but I'm looking into it (very slowly). If anyone wants to get in touch to debug and discuss improvements, I'd love to get in touch so we can make some improvements to unitypack.

I don't have knowledge of how Unity assets or unitypack works, but I'm willing to help debug if there is anything I can do

Looks like this is probably the result of #8. In my case, I'm looking at format=17 objects, but the "built in" structure definitions that unitypack ships with appears to be format=15; and there are some discrepancies that cause issues. Appears to be a known thing.
Unfortunately, my knowledge of Unity is kind of minimal, I just like to tinker with RE'ing formats. I'm not sure what a "good" solution here would look like, but I'm like 99% sure that any trace people are seeing that results from object.py read() can probably be fixed by focusing on #8.

Good to know :)
While debugging I think the format was format=17, though it was a few weeks ago so I'm not 100% sure.


Possible to switch libraries?

Very happy that this is available!  Thank you.
Currently, the only audio/"Music" rendered is the "Music" library.  I have an additional "Audiobooks" Music library and can't determine how to get to it's audio.  Or is this something simple I've missed.

Not currently possible. If I was to build this, would you prefer a setting to switch libraries (more manual) or something like the homepage starting at libraries instead of playlists and digging through from there?
Also open to suggestions for desired UI

Hey Joey,
If you have multiple "music" libraries, I believe it makes the most sense to put it as a main UI element... to access from the homepage...  In the case where there's a single "music" library it probably makes sense to just enter (as is the case now).
Also, wanted to plug audio speed adjustment as I listen to audiobooks at 1.3-1.5x
Thank you!

Sounds good
When I have time, I can look into adding the library options to the top level navigation.
Audio speed I can possibly add as a button to the player UI. The majority of the complexity is probably with the UI rather than the implementation itself.

I revisited this, and I'm not really understanding the problem.
The app, as it is now, displays playlists which cover multiple libraries. I tested and verified that if a playlist includes songs from multiple music libraries, it plays fine.
Is that not working for you?
There is also a settings page where you should be able to switch to a different server and/or user.
With regard to playback speed, I think that might be tough to add to the player UI, since the only documentation I see says that you can add static buttons to the UI, but not necessarily drop-down menus or similar. I could make it a setting, but that would probably be a bad experience. I'll have to look into the documentation some more and see if there are any good options.

Hey Joey,
The app I have installed on my polestar works as follows:

open app
loading content
playlist screen appears
accessing "All music" only lists the playlist from "Music."  Oh... I don't have any playlists in the library "Audiobooks"...
...and now I understand the "issue".  I expected to be able to interface with my libraries, but I can only interface with Playlists.

Is it correct that Playlists are the only interface you provide to the tracks?
Thanks!

Yes, I didn't build out any other pivots

Okay thanks.  Should I open another issue for this feature request?  Thank you.

Sure, although it's a fairly large feature, and I don't know if or when I'll have time to get to it


Infer correct version of dependencies for a specific date

If I am trying to reproduce some experiment I found somewhere, it would be nice to be able to tell Dockter when this experiment was written, so it can find the correct version of dependencies for that date. It is unlikely that it will work with whatever the latest available versions are.
I had played with that for Python/pip, but obviously this needs integration with other package managers to work in other languages.
This might be out of scope for you, but could be a great feature for reproducibility!

Agreed, that would be great! Hope that pip PR get's merged in.
In Dockter you can do that for R by specifying the date in the DESCRIPTION file (see README). We use the MRAN snapshots to get the version of R and all the packages on that date. See https://github.com/stencila/dockter/blob/master/src/install.R for how we use the specified data to set the MRAN date.


[Improvement-4257][api]  Increase "queryProcessDefinitionByName" API

Increase "queryProcessDefinitionByName" API.
Will queryProcessDefinitionById api "PROCESS_INSTANCE_EXIST" state is modified to "PROCESS_DEFINE_NOT_EXIST".

Codecov Report

Merging #4390 (15e9102) into dev (e2e6a77) will increase coverage by 0.00%.
The diff coverage is 76.47%.

@@            Coverage Diff            @@
##                dev    #4390   +/-   ##
=========================================
  Coverage     43.23%   43.24%
  Complexity     3185     3185
=========================================
  Files           471      471
  Lines         21728    21744   +16
  Branches       2626     2628    +2
=========================================
+ Hits           9395     9403    +8
- Misses        11438    11444    +6
- Partials        895      897    +2

Impacted Files
Coverage Δ
Complexity Δ

...er/api/controller/ProcessDefinitionController.java
73.26% <0.00%> (-3.03%)
20.00 <0.00> (ø)

...api/service/impl/ProcessDefinitionServiceImpl.java
67.16% <100.00%> (+0.49%)
108.00 <3.00> (+3.00)

...inscheduler/service/zk/CuratorZookeeperClient.java
60.97% <0.00%> (-4.88%)
7.00% <0.00%> (-1.00%)

...inscheduler/common/thread/ThreadPoolExecutors.java
19.23% <0.00%> (-1.93%)
3.00% <0.00%> (-2.00%)

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 e2e6a77...15e9102. Read the comment docs.

Codecov Report

Merging #4390 (15e9102) into dev (e2e6a77) will increase coverage by 0.00%.
The diff coverage is 76.47%.

@@            Coverage Diff            @@
##                dev    #4390   +/-   ##
=========================================
  Coverage     43.23%   43.24%
  Complexity     3185     3185
=========================================
  Files           471      471
  Lines         21728    21744   +16
  Branches       2626     2628    +2
=========================================
+ Hits           9395     9403    +8
- Misses        11438    11444    +6
- Partials        895      897    +2

Impacted Files
Coverage Δ
Complexity Δ

...er/api/controller/ProcessDefinitionController.java
73.26% <0.00%> (-3.03%)
20.00 <0.00> (ø)

...api/service/impl/ProcessDefinitionServiceImpl.java
67.16% <100.00%> (+0.49%)
108.00 <3.00> (+3.00)

...inscheduler/service/zk/CuratorZookeeperClient.java
60.97% <0.00%> (-4.88%)
7.00% <0.00%> (-1.00%)

...inscheduler/common/thread/ThreadPoolExecutors.java
19.23% <0.00%> (-1.93%)
3.00% <0.00%> (-2.00%)

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 e2e6a77...15e9102. Read the comment docs.

hi, great, but there is a problem that caused CI check fail, you need to solve it, you can check https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=4390&resolved=false&types=VULNERABILITY

hi, great, but there is a problem that caused CI check fail, you need to solve it, you can check https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=4390&resolved=false&types=VULNERABILITY

@CalvinKirs Thank you for your guidance. It has been modified. Please review it

@CalvinKirs Thank you for your guidance. It has been modified. Please review it


Smooth animation in Large Title Example

https://github.com/rechsteiner/Parchment/issues/210#issuecomment-531847611

This is great! Thank you so much for providing a fix for this 🙌


perf: keep track of already traversed modules when propagating update

Re: https://github.com/vitejs/vite/issues/12062
Not sure this is a complete fix, but probably helps.
This will mostly help people having tree structure like this:

Note: This is not an adviced pattern, and I highly recommend having direct imports from views to components inside the same project. This will always lead to faster HMR (not all views need to refresh on an non self accepting file that is currently re-exported by a  barrel file)
I also changed the data structure of boundaries to an array because a set is misleading

I tried this on my repo where I was having issues with thousands of HMR updates and it fixes the HMR performance for me.

/ecosystem-ci run


"Local: Invalid argument or configuration" when building as 64 bit

Description
Following code runs when building as Any CPU, but when building as 64 bit, it returns a "Local: Invalid argument or configuration" error. Running with Debug all enabled, I can see that it reverts to api v <IP_ADDRESS>
%7|1558374888.039|APIVERSION|rdkafka#producer-1| [thrd:localhost:19092/bootstrap]: localhost:19092/bootstrap: Using (configuration fallback) 0.9.0 protocol features
I could not find this error anywhere on the internet. I am working with some libraries only built for 64 bit, so building as Any CPU is not a feasible workaround.
How to reproduce
    static void Main(string[] args)
    {
        // Generate a byte array via google protobuf
       Byte[] b = new Byte[100];
        rnd.NextBytes(b)

        var message = new Message<Null, byte[]> { Value = packet.ToByteArray() };
        Action<DeliveryReport<Null, byte[]>> handler = r =>
        Console.WriteLine(!r.Error.IsError
        ? $"Delivered message to {r.TopicPartitionOffset}"
        : $"Delivery Error: {r.Error.Reason}");

        ProducerConfig conf = new ProducerConfig { BootstrapServers = "localhost:19092,localhost:29092,localhost:39092" };

        using (var p = new ProducerBuilder<Null, byte[]>(conf).Build())
        {
            for (int i = 0; i < 100; i++)
            {
                try
                {
                    p.Produce("Test Topic", message, handler);
                    Console.WriteLine("Sent packet");
                    Thread.Sleep(5000);
                }
                catch (KafkaException e)
                {
                    Console.WriteLine(e.Message);
                    throw;
                }
            }
        }
    }

Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[ ] Confluent.Kafka nuget version. v 1.0.0
[ ] Apache Kafka version. v2.2.0
[ ] Client configuration. BootstrapServers only
[ ] Operating system. Windows 10 64 bit
[ ] Provide logs (with "debug" : "..." as necessary in configuration).
[ ] Provide broker log excerpts.
[ ] Critical issue.

Updating the issue:
Solved when downgrading to 0.9.5

What does Library.VersionString report in the case that isn't working? Do you have librdkafka installed on your machine elsewhere? It sounds like the library loader may be finding and loading an old version of the library for some reason.

Quite similar problem but happens in x86 and x64
confluent-kafka-dotnet: 1.2.0
librdkafka (Library.VersionString): 1.2.0
Local: Invalid argument or configuration
   at Confluent.Kafka.Impl.SafeKafkaHandle.StoreOffsets(IEnumerable`1 offsets)
   at Confluent.Kafka.Consumer`2.StoreOffset(TopicPartitionOffset offset)
   at Confluent.Kafka.Consumer`2.StoreOffset(ConsumeResult`2 result)
   ....

Same issue during ProduceAsync call on Docker.
Confluent.Kafka nuget version. v 1.3.0
Docker runtime:
mcr.microsoft.com/dotnet/core/runtime:3.1-bionic
On the other hand, out of Docker container - no issues found for Ubuntu 18.04.
librdkafka-dev versions are same for both Docker start and for Ubuntu 18.04:
Installed: 0.11.3-1build1
Candidate: 0.11.3-1build1
Any advises are much appreciated.

don't explicitly install librdkafka - librdkafka 0.11.3 is not compatible with Confluent.Kafka 1.3.0.

don't explicitly install librdkafka - librdkafka 0.11.3 is not compatible with Confluent.Kafka 1.3.0.
I'm using:
RUN apt-get update -y && apt-get install -y librdkafka-dev
In Docker file.
Because It looks like librdkafka is absent in runtime:3.1-bionic.
Should I use something else?

the librdkafka.redist nuget package is a dependency of Confluent.Kafka, it should automatically use the librdkafka version in that.

the librdkafka.redist nuget package is a dependency of Confluent.Kafka, it should automatically use the librdkafka version in that.

Awesome. Previously I had
System.DllNotFoundException: Failed to load the librdkafka native library.
exception without explicitly install librdkafka on my Docker container.
Looks like update to Confluent.Kafka 1.3 solved it.
Thank you very much for help, friend.

@mhowlett I have the same issue when invoking Consumer.StoreOffsets.
Auto commit is set to true.
Auto commit offsets is set to false.
Is there any kind of thread affinity that is tripping the offset store call?
Thank you for any help.

@mhowlett I have the same issue when invoking Consumer.StoreOffsets.
Auto commit is set to true.
Auto commit offsets is set to false.
Is there any kind of thread affinity that is tripping the offset store call?
Thank you for any help.

I was having the same exact issue. In my case I was extending the Confluent.Kafka.ConsumerConfig class overriding with some of my default values. They seem to have conflicted with the base class so I just created my own class and mapped properties back to the ConsumerConfig class. It fixed for me.

Quite similar problem but happens in x86 and x64
confluent-kafka-dotnet: 1.2.0
librdkafka (Library.VersionString): 1.2.0
(only happens when EnableAutoCommit = false )
Local: Invalid argument or configuration
   at Confluent.Kafka.Impl.SafeKafkaHandle.StoreOffsets(IEnumerable`1 offsets)
   at Confluent.Kafka.Consumer`2.StoreOffset(TopicPartitionOffset offset)
   at Confluent.Kafka.Consumer`2.StoreOffset(ConsumeResult`2 result)
   ....

I also encountered the problem of Invalid argument or configuration, how did you solve it later?
Confluent.Kafka 1.7.0

I had this issue and it was fixed by adding"enableAutoOffsetStore": false, in config

Do we have any fix for this?

@vijaybw  what version of .net and confluent-kafka-dotnet are you using?

@mhowlett
librdkafka: stable 1.8.2
.net 6
Confluent.kafka 1.8.2
System: Macbook Pro M1

M1 librdkafka builds are not in librdkafka.redist yet (I believe we plan to add this in v1.9) and apparently the x86 osx build isn't loading on that platform. You could use Library.Load to load a custom build of librdkafka. sorry this isn't ideal!
https://github.com/edenhill/librdkafka#build-from-source

Thank you for the reply. I followed steps from here https://github.com/confluentinc/confluent-kafka-dotnet/issues/1755#issuecomment-1039598261
I am able to run the application now which is better than "Failed to load the librdkafka". But, it fails when it is trying to produce/consume the message.

Do we have any update regarding a workaround for this issue?
Im using Macbook Pro M1 with .net6 and Confluent.kafka 1.8.2 and unable to find a way to Produce/Consume messages.
First got "Failed to load the librdkafka" and after copying the dll's to the project directory getting
"Local: Invalid argument or configuration" while trying to produce a message...

https://github.com/confluentinc/confluent-kafka-dotnet/issues/1769

Thank you tons.

I added paramenter Acks = Acks.Leader into my ProducerConfig. When i use local build (windows x64) it works fine, message sended. But if i use my service in docker in CentOs i've got this error in method ProduceAsync().
Confluent.Kafka version 18.2 and 17.0

Я добавил параментер Acks = Acks.Leader в свой ProducerConfig. Когда я использую локальную сборку (windows x64), она работает нормально, сообщение отправлено. Но если я использую свой сервис в docker в CentOs, я получаю эту ошибку в методе ProduceAsync(). Confluent.Kafka версии 18.2 и 17.0

UPD this problem is not due to parameter Acks. without this parameter still errror

Did anyone got a fix/workaroung with this? The Local : Invalid argument or configuration still happens to me.
I'm using a MacBook Air M1 - Monterey 12.3.1,

Did anyone got a fix/workaroung with this? The Local : Invalid argument or configuration still happens to me.
I'm using a MacBook Air M1 - Monterey 12.3.1,

I had this problem when my topicName was null

Librdkafka supports Mac Arm processors. Closing it. Feel free to reopen if this is still an issue.


Add support for paginating namespaces in various registry "list" namespace APIs

Removed from 7.5 milestone as @CannonLock and I agreed that this is not much needed right now. Put to backlog.

We don't expect thousand fold data for namespaces registration so there's not an urgent need for pagination at this moment. Close the issue for now.


Add script to update choco package TCE version after every release

Signed-off-by: Aman Sharma<EMAIL_ADDRESS>What this PR does / why we need it

This PR adds a script which will update the version of TCE in choco package after ever release.
Files in which TCE version is updating are:

hack/choco/tce-community-edition.nuspec
hack/choco/tools/chocolateyinstall.ps1

Details for the Release Notes (PLEASE PROVIDE)

Which issue(s) this PR fixes

Fixes: #2228
Describe testing done for PR

Publish a release in forked branch after which GitHub workflow ran and update the TCE version in choco package files.
Action logs for release-choco-package workflow: logs
Special notes for your reviewer

Please have a look on the above logs.

@stmcginnis and @nrb Please let me know if any other corrections or I have to squash the commits.