runtime: eliminate the notion of a "syscall state"

Abstract
Prevent longer-than-microsecond syscalls from causing excessive context change churn by eliminating the syscall state altogether. Goroutines will no longer enter into a special syscall state when making syscalls or cgo calls. Instead, the syscall will be executed by a separate syscall thread while the original goroutine is in an ordinary parked state. All Go Ms will now consist of a primary thread and a syscall thread.
Background
There are several ongoing issues with scheduler performance related to decisions to scale up or down the number of OS threads (Ms) used for executing goroutines. In https://github.com/golang/go/issues/54622, the case is laid out that unnecessarily raising threads for a brief boost in workload can have undesirable performance implications. Effectively, this task identifies that the largest extant performance issues in the scheduler today are related to unnecessary thread creation and destruction. However, spinning up threads as a result of syscalls can have much more serious performance implications even than what are identified in the task above:

Moving the P the syscall originally came from to a different M can cause a context switch
If there is not enough work to sustain an additional P when the syscall returns (which is almost certainly the case), then the scheduler is extremely likely to return Go to the state it was in before the offending syscall. This means spinning down the M that performed the syscall, in addition to any intermediate states that might be traversed through before Go eventually decides to return to a single P.
If longer syscalls are made repeatedly in a go program, this can cause a very high percentage of system CPU to be dedicated to context switches and thread orchestration.

This usage pattern was recently revealed to be an issue in https://github.com/golang/go/issues/58336, in which it appears that windows network calls via WSARecv/WSASend are blocking rather than nonblocking. A simple go network proxy run in Windows will perform thousands of context switches per second due to long calls repeatedly changing what M the program’s 2 G’s are run on. It does not do this in other operating systems, as those network calls are nonblocking, which allows the G to return to the P it came from without a new M being provisioned on non-Windows systems.
Generally speaking, the behavior of spinning up a new thread for the syscall state is always a problem, the Go team has previously chosen to address it by making short stints in the syscall state not engage in this behavior. By doing so, they have separated syscall behavior into three classes:

In the most common case, nonblocking syscalls return within nanoseconds and do not cause any problems because no new threads are created
In the second-most-common case, blocking syscalls are made rarely and the unnecessary context switch goes mostly unnoticed.

Proposal
I propose that every M be created with two threads instead of one: a thread for executing Go code and a thread for executing syscalls. When a goroutine attempts to execute a syscall, it will be carried out on the syscall thread while the original goroutine will stay in a completely ordinary parked state. Other goroutines that attempt to carry out syscalls during this time will park while waiting on the syscall thread to become available. Additionally, if there are other Ps with syscall threads that have less traffic, they could choose to steal G’s that have syscall work.
This will ensure that while longer syscalls will occupy shared syscall resources, which may become saturated, they will not cause M flapping or context switching. In an advanced case, syscall thread contention could be used as a metric for P scaling, and that would be much easier to measure and respond to than the situation right now, where long syscalls spin up additional Ms that don’t easily fit into the existing scheduler architecture and must be dealt with after the fact.
Rationale
The biggest problem with syscall and cgo performance today is that the threads created by long syscalls do not have any place within the go scheduler’s understanding of itself. It has a very tightly tuned understanding of how many Ms should be running and there is no way for it to respond appropriately to a new M suddenly being dumped in the middle of the scheduler, which is what long syscalls do.
Additionally, while moving the P to a new M after a syscall passes the threshold allows the 90% case to perform very well, it also guarantees a context switch in the 10% case, which is often unacceptable. In order to have a guaranteed route for a context-switch-free syscall, we need a route for syscalls to be handled without pulling the existing M away from the P. That means that there must be some sort of dedicated thread for syscalls, somewhere.
Alternatives
Also considered was the idea of a thread pool that lives outside of the M/P/G scheduler architecture and is used to process syscalls. The thread pool would consist of a stack of threads, which would scale between 1 and GOMAXPROCS threads, and a queue of syscall requests. New threads would be added when wait times on the queue passed a certain threshold, and threads would be removed on the garbage collector cadence in the same way items in an ObjectPool are, using a victim list to remove unused threads and eventually spin them down.
While idle threads would make up a much lower % of total program resources, and it is more flexible with syscall contention, this solution would require much more complicated orchestration. It also has a problem with OS-locked threads, since there is no way to guarantee that the same thread services syscalls for a particular P. This problem could be solved by having syscalls on OS-locked threads be executed inline instead of via the pool (OS-locked threads technically never needed the syscall state since there are no other waiting Gs when a goroutine is running a syscall) but this would require a much larger scope of changes within the scheduler.
Another alternative would be to tune the scheduler to prefer to place goroutines that have recently made long-running syscalls into their own P and avoid spinning it down until some time has passed since the last long syscall. We would then choose not to create a new M during long syscalls in cases the origin P has no additional G’s to serve, even if the syscall extended past the threshold. This has the following downsides:

Today, programs have GOMAXPROCS P’s available for running Go at all times, because long syscalls are removed from the scheduler while they are running. This change would remove available P’s equal to the number of goroutines that interact with long syscalls. If there are more goroutines that interact with long syscalls than GOMAXPROCS, we would be back where we started in terms of context switching and M thrashing.
It seems to me that “time since last long syscall” is not a very good measure of long syscall contention or throughput, and running long syscalls on a dedicated resource would make it easier to measure whether there is contention and whether it can be reduced by P’s stealing work.

Compatibility
Because this is a change to an internal system, it would not cause language compatibility issues. Additionally, while performance characteristics for large programs without long-running syscalls would change slightly (and this is most Go programs), adding even a few dozen idle threads would not make a measurable difference in Go performance. On the other hand, an entire class of Go applications would suddenly perform much better, including network-heavy applications on Windows.
Late edit: It just occurred to me that another class of go performance would perform much worse unless https://github.com/golang/go/issues/21827 is addressed: parking goroutines OS-locked threads tend to create context switches themselves. Alternatively, the very inflammatory title of this issue could be changed, and the syscall state could be used to indicate "I am currently waiting on the syscall thread to work".

cc @golang/runtime

Moving this out of proposal. (In the past we have phrased these kinds of internal changes as proposals but I think we've stopped doing that as the proposal process became more of an actual process. And given that all the changes here would be internal, I don't see a reason as to why this needs to go through the proposal review process. This is more about the merits of the implementation anyway.)

In https://github.com/golang/go/issues/54622, the case is laid out that unnecessarily raising threads for a brief boost in workload can have undesirable performance implications. Effectively, this task identifies that the largest extant performance issues in the scheduler today are related to unnecessary thread creation and destruction.

For clarification, the issue is not unnecessary thread creation and destruction, but unnecessary thread wake and sleep. Most programs reach a steady state of thread count fairly quickly (we ~never destroy threads). It is the wakeup of an idle thread and subsequent sleep when that thread has nothing else to do.
IIUC, this proposal introduces a wakeup of the syscall thread for every syscall (unless the syscall thread is already running). I suspect that this would result in a significant performance degradation for most programs, even if improves the tail case for long syscalls.
In #54622, thread sleep is particularly expensive because the Go runtime does so much work trying to find something to do prior to sleep. This proposal wouldn't have that problem; the conditions for the syscall thread to sleep would be much simpler. But I still think the OS-level churn of requiring a thread wakeup (a several microsecond ordeal) just to make any syscall will be a non-starter.

Compatibility

Users often get/set various bits of thread-specific state via syscall.Syscall and having them fetch from a different thread would break those use cases.
That said, the scheduler can migrate goroutines between threads at any time, so I think we could argue this only matters for goroutines that called runtime.LockOSThread. Those would need to make syscalls directly on the calling thread.

IIUC, this proposal introduces a wakeup of the syscall thread for every syscall (unless the syscall thread is already running). I suspect that this would result in a significant performance degradation for most programs, even if improves the tail case for long syscalls.

The intent was that the threads would be live and waiting on some sort of sync primitive rather than needing to be resumed

Users often get/set various bits of thread-specific state via syscall.Syscall and having them fetch from a different thread would break those use cases.

I would expect syscall.Syscall to be executed on the syscall thread, so for OS-locked thread, thread context would all be present in the same place, the syscall thread.

But I still think the OS-level churn of requiring a thread wakeup (a several microsecond ordeal) just to make any syscall will be a non-starter.

Additionally, not to put too fine a point on it, but this is already the plan for syscalls that take longer than a microsecond.

The intent was that the threads would be live and waiting on some sort of sync primitive rather than needing to be resumed

Could you be more specific about what you mean here? The main options I can think of here are:

Busy loop
Busy loop with PAUSE instruction
Loop calling sched_yield (or equivalent syscall)
Block in futex (or other wake-able syscall)

1 and 2 burn CPU continuously (2 slightly more efficiently), 3 burns CPU unless the system is fully loaded, and 4 requires a wake-up (and is what I was referring to).

The intent was that the threads would be live and waiting on some sort of sync primitive rather than needing to be resumed

Isn't that the same as putting the thread to sleep, assuming you mean something like a Linux FUTEX_WAIT/FUTEX_WAKE? That's already how the runtime suspend threads https://cs.opensource.google/go/go/+/master:src/runtime/proc.go;drc=261fe25c83a94fc3defe064baed3944cd3d16959;l=1528?q=proc.go&ss=go%2Fgo (notesleep just blocks on a FUTEX_WAIT).

The intent was that the threads would be live and waiting on some sort of sync primitive rather than needing to be resumed

Could you be more specific about what you mean here? The main options I can think of here are:

Busy loop
Busy loop with PAUSE instruction
Loop calling sched_yield (or equivalent syscall)
Block in futex (or other wake-able syscall)

1 and 2 burn CPU continuously (2 slightly more efficiently), 3 burns CPU unless the system is fully loaded, and 4 requires a wake-up (and is what I was referring to).

I understand now- I guess the faster wakeups in go primitives are due to the fact that the P stays in motion continuously.
It's safe to say that the design as written won't work, then, but that mainly pushes me toward the alternatives. As you identified, waking and sleeping a thread with every syscall is fairly untenable- Go is in a state right now where network communications on windows have massive performance issues. Having 1 thread burn CPU per P is unacceptable, but having 1 thread total do it + others for a short periods at the tail end of a burst is not. The current situation is fairly dire.

I certainly agree that the bad cases of syscall churn could use improvement. I haven't had a chance to look closely at #58336, but it seems like that provides a good example case.

Sorry to chime in, I'll try to be the voice of others:
Problem statement:
My use case is a Cgo call to glfw.SwapBuffers() which is a wrapper for the C function glfwSwapBuffers(), a common graphics API. When VSync is enabled, it internally blocks to synchronize with the user's window compositor / monitor refresh rate. That brief pause will frequently go beyond 20ns and then some overhead of context switching / launching a separate thread to maintain GOMAXPROCS to not starve the goroutines causes a brutal stutter that can skip 1 to 5 frames and is very noticeable in a soft real-time application.
Trying to understand
If I'm understanding correctly the problem, then I'm even more confused because this is happening on the main thread in a os-locked goroutine with os.LockOSThread(), so nothing else can already run on that thread. There's no other goroutines on that thread that can be starved of work, so what are we yielding to here?
Even then, I think a special case of tolerating one core to be blocked momentarily is fairly reasonable when you have other cores available. They'll just do a bit more work. I understand if that happened to all cores, but 1 should be acceptable and so common that I'm surprised it's not handled differently.
Maybe another option is to be able to mark the function as "blocking" and that's actually desirable for some people. We just need an escape hatch somewhere. There's zero control currently.
Closing words
Anyway, I know soft-realtime isn't a priority to the Go team. You'd think garbage collection would be the primary blocker, but it isn't. This issue with cgo and scheduling is actually what has plagued so many before me; Docker, Dqlite [1], etc.
Bounty
It'd be incredible if this got more attention. I've followed https://github.com/golang/go/issues/19574 and https://github.com/golang/go/issues/58336 which were all good improvements.
If someone is able to pick this up and finally seeing CannibalVox's proposal through and throug, I'm putting a personal 2k CAD bounty on your effort and will be eternally thankful. Claim it by emailing me, conditional to it being merged upstream and fixing my frame stutter.
[1] https://dqlite.io/docs/explanation/faq#why-c-7

That brief pause will frequently go beyond 20ns and then some overhead of context switching / launching a separate thread to maintain GOMAXPROCS to not starve the goroutines causes a brutal stutter that can skip 1 to 5 frames and is very noticeable in a soft real-time application.

Oof. That sounds frustrating. (I assume by 20ns you meant 20µs?) I encourage you to file a new issue so that your specific case can be discussed in more detail.
I will say that I don't think this is going to be a very easy issue to resolve. There's a fundamental mismatch between the model expected by graphics libraries and the model of execution Go presents. In Go, all goroutines (locked to an OS thread or not) are treated equal and are anonymous. This interacts poorly with graphics libraries that care a lot about which thread does what. LockOSThread makes calling into graphics libraries possible, but it doesn't resolve the mismatch.
FWIW, releasing the P isn't just about maintaining GOMAXPROCS (in fact, it kinda doesn't, if the thread ends up doing a whole bunch of CPU-bound stuff for a long time). It's about being able to do schedule goroutines cooperatively. If the P was never released off a goroutine that called into C, then the Go runtime couldn't do a whole bunch of important things (for example, stop all goroutines), because it can't preempt or cooperatively interact with C code. It must be the case that the C code, upon returning to Go, blocks until the Go code is allowed to run again.

If I'm understanding correctly the problem, then I'm even more confused because this is happening on the main thread in a os-locked goroutine with os.LockOSThread(), so nothing else can already run on that thread. There's no other goroutines on that thread that can be starved of work, so what are we yielding to here?

Even when a goroutine is locked to an OS thread, it can still yield back into the scheduler. What happens when it does that is that it puts itself on its P's run queue. It then starts up another thread and hands its P to that thread to run some other goroutine, then puts its own thread to sleep. This is necessary because LockOSThread introduces a 1:1 relationship between a goroutine and an OS thread. Thus if a goroutine locked to a thread blocks, the whole thread must block.

I assume by 20ns you meant 20µs?

My mistake, 20µs yes.

There's a fundamental mismatch between the model expected by graphics libraries and the model of execution Go presents.
This interacts poorly with graphics libraries that care a lot about which thread does what.

Well, the largest one that I see is that we usually have a single thread with reliable timing for rendering and then we off-load the heavier computational tasks (fluid simulation, sound, networking, file I/O, etc) asynchronously on the remaining cores. Which ones does what often doesn't quite matter. Go's scheduler would actually improve on a lot of homebrewed schedulers that you see in engines, fully utilising the remaining cores and keeping their workload evenly distributed.
I think that's the fundamental mismatch, it's that Go insist of messing up with the main thread. Specifically, a locked thread.
Beyond the 1:1 for the integrity of the thread-local storage, it comes with the guarantee that there's nothing else running on that thread. It should be able to leverage this. It's dedicated to that one and only task. If it wants to block, that's fine, let it block, the asynchronous workload is elsewhere and there are spare Ps for them.

If the P was never released off a goroutine that called into C, then the Go runtime couldn't do a whole bunch of important things (for example, stop all goroutines)

Would it help Go's scheduler if we could hint that a given Cgo call will not mutate Go's memory, nor callback from C to Go?
Because in this case if it knew that the C call was "safe", the already blocked goroutine could stay blocked, the remaining goroutines could be stopped and the GC can happily STW without being worried about mutators. No need for the strange G/M/P dance.
I'm assuming some check is needed in case C returns prior to the GC finishing, but that seems somewhat doable.
The conversative approach that C and the GC can't execute concurrently seems overly restrictive here.
I'll add that games are also written with great care to not generate garbage in the hot path. They pace themselves pretty nicely and I haven't personally seen (with GODEBUG=gctrace=1) any forceful GC due to outpacing the GC and running out of memory. Maybe it could delay to run the GC just a bit later once we've returned from C land.

I will say that I don't think this is going to be a very easy issue to resolve

I support the idea of a "simple on the surface" and "complex underneath" language, but having something like Cgo and then no mechanism for C and Go to express what's safe and what isn't makes it hard for them to co-exist.
"All Go Ms will now consist of a primary thread and a syscall thread."
This used to be my biggest gripe, the ffi cost. I'm hoping Vox's proposal will make it a lot cheaper to call into C without all the Go baggage (thanks to the dedicated thread/syscall threads) and I'm hoping somewhere in that process, someone finds a way that allows C to block without compromising Go.

Just a note that we should soon have #cgo nocallback support.  See #56378.  I don't know how much it will help this case.

My use case is a Cgo call to glfw.SwapBuffers() which is a wrapper for the C function glfwSwapBuffers(), a common graphics API. When VSync is enabled, it internally blocks to synchronize with the user's window compositor / monitor refresh rate. That brief pause will frequently go beyond 20ns and then some overhead of context switching / launching a separate thread to maintain GOMAXPROCS to not starve the goroutines causes a brutal stutter that can skip 1 to 5 frames and is very noticeable in a soft real-time application.

This seems unexpected to me- context switches are slow, but they're microseconds slow, not milliseconds slow. If you're on windows, be aware that windows is being launched with the default timer granularity of 16.7ms, which applies to native code as well, which could be the issue you're encountering. You can work around this by making the traditional dll calls to reduce this to 1ms

@CannibalVox is right and I think I was overly pessimistic in my previous message. The fact that you get multiple frame drops is really significant and you might be running into some performance bug or corner case. I wouldn't expect that from the syscall/cgo slow path to reenter Go, unless the scheduler is really overloaded on CPU-bound goroutines.
@nitrix Please do file a new issue so we can track it. Please also include the following information:

Are you able to collect an execution trace and share it? I suspect that will go a long way toward identifying the root cause. (https://pkg.go.dev/runtime/trace, or if you want to give flight recording a try, see https://go.dev/blog/execution-traces-2024).
Which platform are you seeing the issue on?

Also, I think I may have introduced some misunderstandings as to how the runtime currently works. I made the mistake of assuming the root cause of your issue, and didn't properly consider the magnitude of the issue, which doesn't match up with my expectations of how the runtime should behave. I tried to clarify below.

Would it help Go's scheduler if we could hint that a given Cgo call will not mutate Go's memory, nor callback from C to Go?
Because in this case if it knew that the C call was "safe", the already blocked goroutine could stay blocked, the remaining goroutines could be stopped and the GC can happily STW without being worried about mutators. No need for the strange G/M/P dance.

It does help some things for sure, but keep in mind that even if the GC stops the world, it does still have to force the C call returning to Go to give up its P so that it blocks before reentering Go code.

I'm assuming some check is needed in case C returns prior to the GC finishing, but that seems somewhat doable.
The conversative approach that C and the GC can't execute concurrently seems overly restrictive here.

This is already how it works today: the C code keeps executing until it needs to return back to Go. At that point, the thread checks if it's allowed to run. C code is definitely allowed to execute concurrently with a STW.

I support the idea of a "simple on the surface" and "complex underneath" language, but having something like Cgo and then no mechanism for C and Go to express what's safe and what isn't makes it hard for them to co-exist.

Agreed. Like I said at the start of this reply, I think the excerpt of mine that you quoted was a bit too pessimistic. In principle, I don't see a reason why the latencies you're seeing should be so high.

This used to be my biggest gripe, the ffi cost. I'm hoping Vox's proposal will make it a lot cheaper to call into C without all the Go baggage (thanks to the dedicated thread/syscall threads) and I'm hoping somewhere in that process, someone finds a way that allows C (inside locked os threads) to block without compromising Go.

I think earlier in this issue @prattmic and @CannibalVox came to the conclusion that a separate syscall/C thread isn't quite the right approach to improving C/Go interop.
To quote @CannibalVox (emphasis mine):

It's safe to say that the design as written won't work, then, but that mainly pushes me toward the alternatives. As you identified, waking and sleeping a thread with every syscall is fairly untenable-

Most of the cost of cgo comes from the fact that Go code wants to be able to stop C code from returning to Go so it can maintain its own invariants. This requires synchronization on both syscall/cgo enter and exit. By having a second thread to switch to, that forces an OS-level context switch on each syscall/call to C, with one thread going to sleep so the other one can run. Currently, goroutines have their own stack, and the runtime directly switches from running on the goroutine stack to the thread stack to perform the C call or syscall (it has to anyway because Go stacks can be really small since they're growable). Go context switches are orders of magnitude cheaper than OS context switches. Also, having a second thread doesn't change the fact that upon switching back to the "Go" thread it may need to block until it's OK for Go code to run again.
(Hope is not lost; there are probably ways to make the synchronization cheaper, but it'll take time and effort to explore and implement.)
But again, I think what you're experiencing may not be quite so fundamental to the design of Go, but actually just a bug or some case that isn't handled well.
Lastly, I also want to address this part of your comment:

... it comes with the guarantee that there's nothing else running on that thread. It should be able to leverage this. It's dedicated to that one and only task. If it wants to block, that's fine, let it block, the asynchronous workload is elsewhere and there are spare Ps for them.

To be totally clear, this is true of even non-locked goroutines calling into C or into a syscall. Before a goroutine calls a syscall or enter C code, it binds itself to the thread it's currently running on for the duration of the call. Then the aforementioned switch to the thread stack occurs. Nothing is kicking the goroutine off the thread, and in fact, the runtime may have to spin up a new thread to run more code.

Great clarification. It's on Windows and it's a proof-of-concept 3D game engine for a fancy non euclidean game that has both a C and Go implementation to compare ease of implementation and test the performance.
I'll follow the advice and branch off in its own tracked issue + collect a trace.
Btw, using the dangerous it-shall-not-be-named fastcgo [1] makes whatever stutter is happening with the scheduling/cgo issue completely go away.
[1] https://github.com/petermattis/fastcgo


add support for android-app url's

Parsing android-app:// is not supported. Stringify works as expected
stringify({
  host: 'android-app',
  ...
});


Hey, could you send me the full source with .sln?

My discord: x9987#6666

Open PolarityRecode.vcxproj big brain

Its not that hard to just ctrl c and ctrl v

well, i got no knowledge in c++ and this source would be helpful

its fairly simple if you dont know how to paste it then learn c++


Remove restriction on the non-script and non-style edited element's length

related issue https://github.com/AdguardTeam/AdguardForWindows/issues/2237.

/core/pull-requests/700


Update config.yml

Please add more content to your pull request. Take a look at the issues tab and please solve one of them.

Please add more substance to your pull request. Take a look at the issues tab and please solve one of them.

Personally, I wouldn't allow this action to be fullfilled. That's just me though.


Bugfix/theme generator hex

See ticket for details.

Hey @endigo9740,
I ran a couple of text hex codes through and it seems to generate as expected.
Additionally, I created another PR to correct the Syntax Highlighting for the main Custom CSS CodeBlock of the theme generator.

Thanks for testing @LukeHagar! I'm feeling pretty confident this shouldn't introduce regressions given the change was pretty much plug and play. Will go ahead and merge.


can i update the client while setup ?

Hi
I want to store the bot token in the eeprom, so i need to declare the BOT without token and only while the setup, when i get the token from the eeprom, i will update the token etc.
Something like :
TelegramBotClient client(sslPollClient);
.....
void setup {
 client.setToken(botToken);
}

void loop {

}

Dear guyelg,
thanks for your idea and your request. I am going to integrate this in my next release by hand. Since all lines in your commit are changed, I think we use different line seperators.
Best Regards


Julia has stopped

Hi, I encounter a problem when using Atom as Julia IDE. When I click the "Start Julia" button withinJuliamenu, the console show me that "Julia has stopped". According some early response, it's due to outdated version. But my Julia version is 0.4.2 and even after I updated to the latest 0.5.0, the problem remains.

If you go to the REPL and type in using Atom, do you get an error?


Update DTCModule DM12 messaging/testing to use RequestResults object

Update the DTCModule to use RequestResults and the pattern of the method naming of "requestDM(xx)" and overloading for the global/destination specific requests.  Update/implement any needed unit testing in DTCModuleTest.

#110 Updates completed and merged


Modify store command

Removed the duty of "changing save location of config file" from model, and added it to storage.

Coverage increased (+0.009%) to 83.64% when pulling 6af8cab7ba4e4a8441adbab6fe8d7bd31a0c9fa7 on modify-store-command into 7cf8f6f76fa3903a51872b4f0b39a602423f7a94 on master.

Coverage increased (+0.009%) to 83.647% when pulling 81b19ed037182ae9c3460a9d9197b880c71f92d2 on modify-store-command into bbd243a0688b853ee6a7e258bcc73e57da1cd279 on master.


SYS-0004: Add helm modules and deploy external-dns

Add helm modules that includes the creation of GSA, KSA, Workload identity binding
External DNS addons deployment
Add Helm README.md

Ran Plan for dir: deployment/cloud workspace: default
Show Output
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create

Terraform will perform the following actions:

  # module.external-dns.google_project_iam_member.sa_iam[0] will be created
+ resource "google_project_iam_member" "sa_iam" {
      + etag    = (known after apply)
      + id      = (known after apply)
      + member  = (known after apply)
      + project = "fta-platform"
      + role    = "roles/dns.admin"
    }

  # module.external-dns.google_service_account.gsa[0] will be created
+ resource "google_service_account" "gsa" {
      + account_id   = "fta-mstr-helm-external-dns"
      + disabled     = false
      + display_name = "Service Account for helm fta-mstr-helm-external-dns"
      + email        = (known after apply)
      + id           = (known after apply)
      + member       = (known after apply)
      + name         = (known after apply)
      + project      = "fta-platform"
      + unique_id    = (known after apply)
    }

  # module.external-dns.google_service_account_iam_binding.token_creator[0] will be created
+ resource "google_service_account_iam_binding" "token_creator" {
      + etag               = (known after apply)
      + id                 = (known after apply)
      + members            = [
          + "serviceAccount:fta-platform.svc.id.goog[dns/fta-mstr-helm-external-dns]",
        ]
      + role               = "roles/iam.serviceAccountTokenCreator"
      + service_account_id = (known after apply)
    }

  # module.external-dns.google_service_account_iam_binding.workload_identity_binding[0] will be created
+ resource "google_service_account_iam_binding" "workload_identity_binding" {
      + etag               = (known after apply)
      + id                 = (known after apply)
      + members            = [
          + "serviceAccount:fta-platform.svc.id.goog[dns/fta-mstr-helm-external-dns]",
        ]
      + role               = "roles/iam.workloadIdentityUser"
      + service_account_id = (known after apply)
    }

  # module.external-dns.helm_release.helm will be created
+ resource "helm_release" "helm" {
      + atomic                     = false
      + chart                      = "external-dns"
      + cleanup_on_fail            = false
      + create_namespace           = false
      + dependency_update          = false
      + disable_crd_hooks          = false
      + disable_openapi_validation = false
      + disable_webhooks           = false
      + force_update               = false
      + id                         = (known after apply)
      + lint                       = true
      + manifest                   = (known after apply)
      + max_history                = 0
      + metadata                   = (known after apply)
      + name                       = "fta-helm-external-dns"
      + namespace                  = "dns"
      + pass_credentials           = false
      + recreate_pods              = false
      + render_subchart_notes      = true
      + replace                    = false
      + repository                 = "https://charts.bitnami.com/bitnami"
      + reset_values               = false
      + reuse_values               = false
      + skip_crds                  = false
      + status                     = "deployed"
      + timeout                    = 300
      + values                     = (sensitive value)
      + verify                     = false
      + version                    = "8.3.8"
      + wait                       = true
      + wait_for_jobs              = false

      + set {
          + name  = "google.project"
          + value = "fta-platform"
            # (1 unchanged attribute hidden)
        }
      + set {
          + name  = "policy"
          + value = "sync"
            # (1 unchanged attribute hidden)
        }
      + set {
          + name  = "provider"
          + value = "google"
            # (1 unchanged attribute hidden)
        }
      + set {
          + name  = "zoneVisibility"
          + value = "public"
            # (1 unchanged attribute hidden)
        }
    }

  # module.external-dns.kubernetes_namespace.namespace[0] will be created
+ resource "kubernetes_namespace" "namespace" {
      + id                               = (known after apply)
      + wait_for_default_service_account = false

      + metadata {
          + generation       = (known after apply)
          + name             = "dns"
          + resource_version = (known after apply)
          + uid              = (known after apply)
        }
    }

  # module.gce_atlantis.local_file.ansible_vars[0] will be created
+ resource "local_file" "ansible_vars" {
      + content              = (sensitive value)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = "ansible/atlantis/ansible_vars.json"
      + id                   = (known after apply)
    }

  # module.gce_atlantis.local_file.private_key will be created
+ resource "local_file" "private_key" {
      + content              = (sensitive value)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0700"
      + file_permission      = "0400"
      + filename             = "ansible/atlantis/id_rsa.pem"
      + id                   = (known after apply)
    }

Plan: 8 to add, 0 to change, 0 to destroy.

:arrow_forward: To apply this plan, comment:atlantis apply -d deployment/cloud

:put_litter_in_its_place: To delete this plan and lock, click here
:repeat: To plan this project again, comment:atlantis plan -d deployment/cloud

Plan: 8 to add, 0 to change, 0 to destroy.

:fast_forward: To apply all unapplied plans from this Pull Request, comment:atlantis apply

:put_litter_in_its_place: To delete all plans and locks from this Pull Request, comment:atlantis unlock

atlantis apply

Ran Apply for dir: deployment/cloud workspace: default
Show Output
module.external-dns.kubernetes_namespace.namespace[0]: Creating...
module.external-dns.google_service_account.gsa[0]: Creating...
module.gce_atlantis.local_file.ansible_vars[0]: Creating...
module.gce_atlantis.local_file.private_key: Creating...
module.gce_atlantis.local_file.ansible_vars[0]: Creation complete after 0s [id=ad6fa3a5880ffe828741bcce4ed25351fbf5f2aa]
module.gce_atlantis.local_file.private_key: Creation complete after 0s [id=539d38937a492003fda4bc6dbcd7dd56b2dff441]
module.external-dns.kubernetes_namespace.namespace[0]: Creation complete after 1s [id=dns]
module.external-dns.google_service_account.gsa[0]: Still creating... [10s elapsed]
module.external-dns.google_service_account.gsa[0]: Creation complete after 13s<EMAIL_ADDRESS>module.external-dns.google_service_account_iam_binding.workload_identity_binding[0]: Creating...
module.external-dns.google_service_account_iam_binding.token_creator[0]: Creating...
module.external-dns.google_project_iam_member.sa_iam[0]: Creating...
module.external-dns.google_service_account_iam_binding.workload_identity_binding[0]: Creation complete after 6s<EMAIL_ADDRESS>module.external-dns.google_project_iam_member.sa_iam[0]: Creation complete after 10s<EMAIL_ADDRESS>module.external-dns.google_service_account_iam_binding.token_creator[0]: Still creating... [10s elapsed]
module.external-dns.google_service_account_iam_binding.token_creator[0]: Creation complete after 11s<EMAIL_ADDRESS>module.external-dns.helm_release.helm: Creating...
module.external-dns.helm_release.helm: Still creating... [10s elapsed]
module.external-dns.helm_release.helm: Still creating... [20s elapsed]
module.external-dns.helm_release.helm: Still creating... [30s elapsed]
module.external-dns.helm_release.helm: Still creating... [40s elapsed]
module.external-dns.helm_release.helm: Still creating... [50s elapsed]
module.external-dns.helm_release.helm: Still creating... [1m0s elapsed]
module.external-dns.helm_release.helm: Still creating... [1m10s elapsed]
module.external-dns.helm_release.helm: Still creating... [1m20s elapsed]
module.external-dns.helm_release.helm: Still creating... [1m30s elapsed]
module.external-dns.helm_release.helm: Creation complete after 1m33s [id=fta-helm-external-dns]

Apply complete! Resources: 8 added, 0 changed, 0 destroyed.

Outputs:

bucket_name = "fta-mstr-gcs-tfstate"
bucket_self_link = "https://www.googleapis.com/storage/v1/b/fta-mstr-gcs-tfstate"
bucket_url = "gs://fta-mstr-gcs-tfstate"
iac_repo_fullname = "greyhats13/fta_iac"
iac_repo_http_clone_url = "https://github.com/greyhats13/fta_iac.git"
iac_repo_ssh_clone_url = "git@github.com:greyhats13/fta_iac.git"
main_dns_id = "projects/fta-platform/managedZones/fta-mstr-dns-main"
main_dns_managed_zone_id =<PHONE_NUMBER>482091992
main_dns_name = "fta.blast.co.id."
main_dns_name_servers = tolist([
  "ns-cloud-b1.googledomains.com.",
  "ns-cloud-b2.googledomains.com.",
  "ns-cloud-b3.googledomains.com.",
  "ns-cloud-b4.googledomains.com.",
])
main_dns_zone_name = "fta-mstr-dns-main"
main_dns_zone_visibility = "public"
main_firewall_ids = {
  "icmp" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-icmp"
  "internal" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-internal"
  "rdp" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-rdp"
  "ssh" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-ssh"
}
main_firewall_self_links = {
  "icmp" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-icmp"
  "internal" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-internal"
  "rdp" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-rdp"
  "ssh" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-ssh"
}
main_nat_id = "fta-platform/asia-southeast2/fta-mstr-vpc-main-router/fta-mstr-vpc-main-nat"
main_pods_secondary_range_name = "pods-range"
main_router_id = "projects/fta-platform/regions/asia-southeast2/routers/fta-mstr-vpc-main-router"
main_router_self_link = "https://www.googleapis.com/compute/v1/projects/fta-platform/regions/asia-southeast2/routers/fta-mstr-vpc-main-router"
main_services_secondary_range_name = "services-range"
main_subnet_ip_cidr_range = "<IP_ADDRESS>/16"
main_subnet_self_link = "https://www.googleapis.com/compute/v1/projects/fta-platform/regions/asia-southeast2/subnetworks/fta-mstr-vpc-main-subnet"
main_vpc_gateway_ipv4 = ""
main_vpc_id = "projects/fta-platform/global/networks/fta-mstr-vpc-main"
main_vpc_self_link = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/networks/fta-mstr-vpc-main"
security_cryptokey_id = "projects/fta-platform/locations/global/keyRings/fta-mstr-kms-main-keyring/cryptoKeys/fta-mstr-kms-main-cryptokey"
security_keyring_id = "projects/fta-platform/locations/global/keyRings/fta-mstr-kms-main-keyring"
security_service_account_email =<EMAIL_ADDRESS>security_service_account_id =<EMAIL_ADDRESS>

Locks and plans deleted for the projects and workspaces modified in this pull request:

dir: deployment/cloud workspace: default


Should SIGCHLD always be forwarded?

So a sigchld is used for a child to signal to a parent process it's terminated. The default behaviour is to ignore it and I imagine the std::process::Command stuff or some other process handling things may use it. I saw a number in some of the zebra acceptance tests after vfork events and doing the forwarding fixed the timeout for them.
I have a feeling it should be forwarded but I need to do some more testing to make sure it doesn't mess anything up.

Well it seems past Daniel had this thought, did it and fixed some issues he was having because all my SIGCHLDs are forwarded. So the answer is yes, but at least this got me to look at that code again for a sanity check.


fix(Socket): prevent sockets from leaking

Closes #188

I added a test for this, Coveralls is just being a jerk about the catch block.


237 robustify exciting parser

Make exciting parser more robust against missing parameters.

the tests seem to fail, can you please fix this so develop is healthy?

the tests seem to fail, can you please fix this so develop is healthy?

Sure, but these errors come FHI-aims or other tests, not exciting. I think there are mostly due to the new type checking.
Let's discuss fixing this tomorrow in the common meeting, okay?


Example

Hi Bryan,
I'm intrigued by this idea but I'm not sure how to implement with Aurelia.I'd love to make a showcase to demonstrate at my talk at the next http://www.meetup.com/ng-nyc/.
I have a couple of directives that would be great to implement.
angular-file-upload ("https://github.com/nervgh/angular-file-upload") and angular-xeditable ( "http://vitalets.github.io/angular-xeditable") I'd be happy to post repo as an example.
Thanks,
John

Hi, @johntom.
I wrote up a better readme and totally forgot to push it. Sorry about that! It's up now-- give it a skim & let me know if I can clarify anything.
https://github.com/bryanrsmith/aurelia-angular-loader/blob/master/README.md
As noted in the readme, there are currently some limitations on the directives that can be used. Attribute directives can't currently be used because I have to inject an element to use as the Angular application root. The element that the directive runs on is not the element in the Aurelia view; it's a generated element. Because of this I restricted it to 'E' Angular directives.
I also notice that the Angular file upload directives use scope.$eval(attributes.uploader) to retrieve an uploader instance. This probably won't work right because a new scope is created for each directive (since each directive instance is in a new Angular app). Currently the only way to pass data between the two frameworks is to connect Aurelia bindings to Angular isolate scope properties. I might be able to make the Angular scope inherit Aurelia's binding context to improve this...

BTW, I mostly just implemented this for fun & to see if I could. I probably won't work on it any more unless people are interested in it. In general, I wouldn't recommend loading two large frameworks in the same application, though.

Thanks for the reply, I just read an artilce about converting directives at http://ilikekillnerds.com/. As productive as I am in Aurelia and there is going going back, I do miss some of the directives I've used.
John


Documentation of motion library

Should have an abstract and a detailed explanation for new contributors.
Also explain use with VARUN and in gazebo.

Please look at Wiki/DevGuide for details


When does the next release bundled?

Last Release here on GitHub was on 24 Jul 2018.
When does the next release will be bundled?

Hi,
the plugin has been fixed. please download this release and tell me whether it works on your IDE.
Thanks

It seems to be ok (see #269)

Please tell the Plugin-Version where is it fixed, so that everybody can be sure to have the right plugin installed.


Add support for T8002, T8004 and S7002 (iWatch)

Would love to see iWatch support in gaster :-)

please can you try this commit : https://github.com/0x7ff/gaster/commit/7ffffff9e492d0aac083af10daeb929c71cf5345 for 7002?

last commit work :
C:\Users\BH11040\Desktop\img4tool-winx64-static>gaster.exe pwn
usb_timeout: 50
[libusb] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8002
Found the USB handle.
Stage: RESET
ret: true
[libusb] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8002
Found the USB handle.
Stage: SPRAY
ret: true
[libusb] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8002
Found the USB handle.
Stage: SETUP
ret: true
[libusb] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8002
Found the USB handle.
Stage: PATCH
ret: true
[libusb] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8002
Found the USB handle.
Now you can boot untrusted images.

C:\Users\BH11040\Desktop\img4tool-winx64-static>irecovery.exe -q
CPID: 0x8002
CPRV: 0x10
BDID: 0x0e
ECID: 0x001XXXXXXXXXXXX
CPFM: 0x03
SCEP: 0x01
IBFL: 0x3c
SRTG: IBOOT-26<IP_ADDRESS>.31
SRNM: N/A
IMEI: N/A
NONC: bfcd928fab5e8ff877e641f34fdd0d058bf2cd5cdb1025488fd879a7bb9538fb
SNON: a91c617b076f21f857fe0b047b6079b2cc9f30d2
PWND: GASTER
MODE: DFU
PRODUCT: Watch2,4
MODEL: n75ap
NAME: Apple Watch Series 2 (42mm)

i think gaster dont accept raw files like checkm8_bootkit(from john), first time on iphone im4m per soc and img4 is required, but i dont know about refactoring the code if same now like ipwndfu or like gaster(first code) with other iphones/ipads

i think gaster dont accept raw files like checkm8_bootkit(from john), first time on iphone im4m per soc and img4 is required, but i dont know about refactoring the code if same now like ipwndfu or like gaster(first code) with other iphones/ipads

I know. Tried with properly signed ibss with valid im4m but it's just doing nothing.
Model used: Watch3,1 (Series 3 38mm Cellular)
SHSH used:<PHONE_NUMBER>638636_Watch3,1_n111sap_8.6-19T572_eb56bb53cfc4383dd2d723666e985482cccb8c52b1665d7ea6d6129f010e7cee.shsh2
iBSS used: iBSS.n111s.RELEASE.im4p (watchOS8.6), decrypted, patched, fake-signed

@P5-2005 @j4nf4b3l Please try the latest commit.

@P5-2005 @j4nf4b3l Please try the latest commit.

s2-8002 pwn all fine and first try(with last commit), but cannot load pwned ibss(maybe not patched well i guess?), only @j4nf4b3l can confirm about pwned ibss

@P5-2005 @j4nf4b3l Please try the latest commit.

s2-8002 pwn all fine and first try(with last commit), but cannot load pwned ibss(maybe not patched well i guess?), only @j4nf4b3l can confirm about pwned ibss

PWNing S1-3 works fine so far but I was still not able to load any bootchain. Tried raw bootchain, tried "properly fake-signed" one but still stuck in DFU.
Series 0 went into endless pwning loop for me.

@P5-2005 @j4nf4b3l Please try the latest commit.

@P5-2005 @j4nf4b3l Please try the latest commit.

Only tested S3 yet but it seems to be still the same issue.
Everything else I'll test tonight hopefully and let you know the results :)

The signature patch method will not work as TEXT_BASE is read-only and I made a mistake when replacing ROM's TTB register with the VROM's TTB register. After fixing the mistake, I see that the device hangs after flushing the TLB's so please use checkm8_bootkit for booting the iBSS for these devices. I changed PWND string from gaster to checkm8 for using the tool but S7002 still needs to be tested.

The signature patch method will not work as TEXT_BASE is read-only and I made a mistake when replacing ROM's TTB register with the VROM's TTB register. After fixing the mistake, I see that the device hangs after flushing the TLB's so please use checkm8_bootkit for booting the iBSS for these devices. I changed PWND string from gaster to checkm8 for using the tool but S7002 still needs to be tested.

Alright. So I tested on S3 now and it's now hanging here:
found: CPID:8004 CPRV:10 CPFM:03 SCEP:01 BDID:1C ECID:0019496111D80026 IBFL:3C SRTG:[iBoot-26<IP_ADDRESS>.3] PWND:[checkm8]
constructing command...
constructing payload...
writing 0x488ce031 to 0x48806178...
sending command...
reading 32-bits from 0x48806178...
sending command...
ERROR: invalid response from device
ERROR: failed to re-read value
ERROR: failed to overwrite function pointer

I made gaster compatible with the checkm8 tools so the issue should be fixed.

I made gaster compatible with the checkm8 tools so the issue should be fixed.

Works ☺ Thank you very much!


Having some troubles implementing gsSlicer

Hi, I've been trying to test out your slicer in a windows form application.
Pretty basic one, just a button to generate a Gcode from the exemple given on your website :
`
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using g3;
using gs;
using gs.info;
namespace SlicingApp
{
public partial class Form1 : Form
{
    public static SingleMaterialFFFSettings LastSettings;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        CappedCylinderGenerator cylgen = new CappedCylinderGenerator()
        {
            BaseRadius = 10,
            TopRadius = 5,
            Height = 20,
            Slices = 32
        };
        DMesh3 mesh = cylgen.Generate().MakeDMesh();
        MeshTransforms.ConvertYUpToZUp(mesh);       // g3 meshes are usually Y-up

        // center mesh above origin
        AxisAlignedBox3d bounds = mesh.CachedBounds;
        Vector3d baseCenterPt = bounds.Center - bounds.Extents.z * Vector3d.AxisZ;
        MeshTransforms.Translate(mesh, -baseCenterPt);

        PrintMeshAssembly meshes = new PrintMeshAssembly();
        meshes.AddMesh(mesh);

        GenerateGCodeForMeshes(meshes);
    }

    static string GenerateGCodeForMeshes(PrintMeshAssembly meshes)
    {

        // configure settings
        //RepRapSettings settings = new RepRapSettings(RepRap.Models.Unknown);
        MakerbotSettings settings = new MakerbotSettings(Makerbot.Models.Replicator2);

        LastSettings = settings.CloneAs<SingleMaterialFFFSettings>();

        MeshPlanarSlicer slicer = new MeshPlanarSlicer()
        {
            LayerHeightMM = settings.LayerHeightMM
        };
        slicer.Add(meshes);
        PlanarSliceStack slices = slicer.Compute();

        SingleMaterialFFFPrintGenerator printGen =
            new SingleMaterialFFFPrintGenerator(meshes, slices, settings);
        if (printGen.Generate())
        {
            // export gcode
            GCodeFile gcode = printGen.Result;
            using (StreamWriter w = new StreamWriter("generated.gcode"))
            {
                StandardGCodeWriter writer = new StandardGCodeWriter();
                writer.WriteFile(gcode, w);
            }
        }
        return "";
    }
}

}`
Even though I'm almost using the exact same code as the one in your tutorial, my result is kinda weird, the following screenshot is the Gcode displayed in PronterFace :

So there is space between my layers and it looks like no shells are rendered as you can see here :

The whole slicing looks messed up, Any idea why this happens ?
PS : sorry for bad englendo and formatting!

Alright for those wondering about this I solved the issue,
In fact I analyzed my output Gcode and nothing was really wrong except one thing :
the gcode Writer in the program uses "," instead of "." for the values, which cuts my values and make the whole line impossible to parse.
I do have little problem still, there is a Z up between the prime and my first layer, so it's kinda air-printing
my object.
 It's a localization thing that the OS does automatically, but I can override it to always use dots - thanks for debugging.
For the Z-up issue, you are right, it is a bug. My day-to-day printer is a Replicator2 which has a different header that included a Z-home.
I have just checked in fixes for both these issues, however I haven't done a test print of the Z-up fix on a RepRap yet.

Yeah that's what I thought for the commas, good to hear.
Then I'm just gonna switch to MakerBotSettings and see if it is alright for my printer, since i'm not using a RepRap Machine.
Thanks for the answer !

The makerbot header has special commands that aren't going to work on non-makerbot printers. What do you have? If you can give me a sample GCode file for a simple shape (eg cube or cylinder), and are willing to test a bit, I would try to add support for it.

The RepRap settings are completly compatible, and I'm using a printer based on Marlin firmware.
I've been testing to slice a Tardis stl from thingyverse and the result is really good, only the fact that after the little prime the gCode is moving one layer up  which is annoying.
I resolved the problem myself by opening the file and replacing the Z values soustracting -0.2 each time the algorithm detect a layer Up.
I don't think it's worth your time to add the support for this printer imo.

 Just updated the gsSlicerApps repo with latest code.
These are the first prints anyone else besides me have done with the slicer, so, exciting!! If it is a commercial printer that people can buy then even if I don't have to do anything specific, it is good to be able to include it in the list of 'printers that work'...
I should add additional setting flags for the fan, has not been something I thought about so far. In SingleMaterialFFFCompiler.cs, there is call to Assembler.DisableFan() on line 103, if you comment that out then the fan will not be cycled (and maybe also Assembler.EnableFan() on 121).

Awesome it's working like a charm now !
So, the Model name is HD from a little french company called Alchimies-OpenEdge if you wanna add up on the working list.
Also I was wondering if you were thinking about implementing others infill patterns any time in the future ? (or is it something that I missed lmao)
Thanks for all dude !

Yes I will implement other infills once I ship the printing tool that is being built on top of this slicer, at minimum a diamond-infill. Any other requests? I am kind of more interested in structural integrity than cool patterns/etc.

Okay cool stuff !
Personally I'm interested in Honeycomb pattern, it seems to be the most viable way to infill objects imo.


Docs: Fix a broken anchor link

Docs: Fix a broken anchor link

Thanks for the PR! This file actually gets copied over here from https://github.com/eslint/eslint/blob/master/docs/developer-guide/working-with-rules.md, and so changes need to happen in that file. Would you like to make a PR in https://github.com/eslint/eslint?


OffsetFrame Implementation

Implements the stream function for offset and moving reference frames.

Codecov Report

Merging #2 (e928371) into main (52a80c0) will decrease coverage by 1.50%.
The diff coverage is 0.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main       #2      +/-   ##
==========================================
- Coverage   87.27%   85.77%   -1.50%
==========================================
  Files          19       19
  Lines        1202     1223      +21
==========================================
  Hits         1049     1049
- Misses        153      174      +21

Impacted Files
Coverage Δ

src/solvers/states.jl
32.29% <0.00%> (-9.05%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Added persist method in SyntheticEvent

ref http://facebook.github.io/react/docs/events.html#event-pooling

Nice. When I learned about this method, I had already lost a few hours trying to figure out what the hell was going wrong in my React app when I held a reference to a fired event. Thanks for adding this!
Test failure is unrelated flakiness.
@facebook-github-bot shipit


Creating custom Validator instance with _validator_* method raises SchemaError

Used Cerberus version / latest commit: 1.0.1

I consulted these documentations:

[x] http://docs.python-cerberus.org/en/stable/
[x] http://docs.python-cerberus.org/en/latest/

I consulted these sections of the docs (add more lines as necessary):

http://docs.python-cerberus.org/en/latest/customize.html#custom-validators

[ ] I found nothing relevant to my problem in the docs.

[x] I found the documentation not helpful to my problem.

[ ] I have the capacity to improve the docs when my problem is solved.

[x] I have the capacity to submit a patch when a bug is identified.

Use-case abstract
I am trying to follow the example from the docs to create a custom validator. The example defining a function oddity works, but creating the custom subclass of Validator with the equivalent function raises a SchemaError.

from cerberus import Validator
class AValidator(Validator):
    def _validator_oddity(self, field, value):
        if not value & 1:
            self._error(field, "Must be an odd number")

schema = {'amount': {'validator': 'oddity'}}
v = AValidator(schema)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/bryan/anaconda3/envs/pyteck/lib/python3.5/site-packages/cerberus/validator.py", line 143, in __init__
    self.schema = kwargs.get('schema', None)
  File "/Users/bryan/anaconda3/envs/pyteck/lib/python3.5/site-packages/cerberus/validator.py", line 432, in schema
    self._schema = DefinitionSchema(self, schema)
  File "/Users/bryan/anaconda3/envs/pyteck/lib/python3.5/site-packages/cerberus/schema.py", line 67, in __init__
    self.validate(schema)
  File "/Users/bryan/anaconda3/envs/pyteck/lib/python3.5/site-packages/cerberus/schema.py", line 186, in validate
    self._validate(schema)
  File "/Users/bryan/anaconda3/envs/pyteck/lib/python3.5/site-packages/cerberus/schema.py", line 208, in _validate
    raise SchemaError(self.schema_validator.errors)
cerberus.schema.SchemaError: {'amount': [{'validator': [{'oneof': ['none or more than one rule validate', {'oneof definition 0': ['must be of callable type'], 'oneof definition 1': ['must be of list type'], 'oneof definition 2': ['unallowed value oddity']}]}]}]}

Furthermore, changing the validator to a list in the schema raises a NotImplementedError (once #264 is merged).
schema = {'amount': {'validator': ['oddity']}}
v = AValidator(schema)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/bryan/GitHub/cerberus/cerberus/validator.py", line 143, in __init__
    self.schema = kwargs.get('schema', None)
  File "/Users/bryan/GitHub/cerberus/cerberus/validator.py", line 432, in schema
    self._schema = DefinitionSchema(self, schema)
  File "/Users/bryan/GitHub/cerberus/cerberus/schema.py", line 67, in __init__
    self.validate(schema)
  File "/Users/bryan/GitHub/cerberus/cerberus/schema.py", line 186, in validate
    self._validate(schema)
  File "/Users/bryan/GitHub/cerberus/cerberus/schema.py", line 208, in _validate
    raise SchemaError(self.schema_validator.errors)
  File "/Users/bryan/GitHub/cerberus/cerberus/validator.py", line 360, in errors
    return self.error_handler(self._errors)
  File "/Users/bryan/GitHub/cerberus/cerberus/errors.py", line 443, in __call__
    self.extend(errors)
  File "/Users/bryan/GitHub/cerberus/cerberus/errors.py", line 372, in extend
    self.add(error)
  File "/Users/bryan/GitHub/cerberus/cerberus/errors.py", line 451, in add
    self.insert_logic_error(error)
  File "/Users/bryan/GitHub/cerberus/cerberus/errors.py", line 518, in insert_logic_error
    raise NotImplementedError
NotImplementedError

I believe this is a bug.
I traced the behavior to InspectedValidator.__init__ as it is building the schema to validate a schema. It has a coded assumption that all validation methods begin with _validate_.
Upon changing the custom validator from _validator_foo to _validate_validator_foo, the schema validation now picked up my custom validator -- however, __get_rule_handler() requires that the function name be as documented (ie: _validator_foo).
So either InspectedValidator.__init__ needs to be updated to discover custom validators correctly, or the documentation and __get_rule_handler() need to be updated to match what InspectedValidator.__init__ enforces. My opinion would be to implement the former.
For now, a workaround is to create an alias of your custom validator:
class MyValidatorClass(cerberus.Validator):
    def _validator_my_validator(self, field, value):
        if my_test(value) is False:
            self._error(field, "Nope!")

    _validate_validator_my_validator = _validator_my_validator

yup, that seems correct. since validator obviously belongs to the validation realm, the prefix seems redundant.
on the other hand it's not stringent. type checks do have that realm-prefix.
a short mediation on import this backs your proposal, i guess.

I encountered this issue today, it would be great to see this issue fixed

@bryanwweber thanks for reporting this. Would you (or someone else) be willing to submit a fix?

About a day ago, I was looking at this issue again to see if I could work out a fix. Got beaten to it! Thanks @nicolaiarocci and @funkyfuture!


HI can you port this great datepicker to Metero.js ? :)

HI MO  :
HI can you port this great datepicker to Metero.js ? :)     Meteor.js can really use this ..

Not sure if I'm gonna do that. But I'd be happy to see a PR on it.

+1 for this.
@tomvolek If you find any guidelines on porting such libraries to Meteor I'd be willing to tackle this.

With the introduction of Meteor's new module system in version 1.3, we can use this component in the meteor projects in the same way we use it in other projects, just install the react-persian-datepicker by running the following command:
meteor npm install --save react-persian-datepicker
" or simple by running npm install without meteor prefix

And then importing the required parts of the module to your project's client files:
import { Calendar } from 'react-persian-datepicker';
// if you want to use the packages's default CSS
import 'react-persian-datepicker/css/basic.css';

It works flawlessly, so I think there is no need for creating a separate Atmosphere package and this issue should get closed.

Thanks @alireza-ahmadi.
Ping @arrygoo @tomvolek. Let me know if it works for you.

Thanks @alireza-ahmadi!
I agree with 1.3 you can just use this out of the box.

Thanks Alireza. will give it a try .good work
On Wednesday, July 13, 2016 7:28 PM, Alireza Ahmadi<EMAIL_ADDRESS>wrote:

With the introduction of Meteor's new module system in version 1.3, we can use this component in the meteor projects in the same way we use it in other projects, just install the react-persian-datepicker by running the following command:meteor npm install --save react-persian-datepicker
" or simple by running npm install without meteor prefixAnd then importing the required parts of the module to your project's client files:import { Calendar } from 'react-persian-datepicker';
// if you want to use the packages's default CSS
import 'react-persian-datepicker/css/basic.css';It works flawlessly, so I think there is no need for creating a separate Atmosphere package and this issue should get closed.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Extract tutorials and link to tools

Get tutorials with GTN API with extra information

EDAM operations using EDAM operations of the tools in the tutorial
Visit stats using Plausible API
Video views using YouTube API
Feedback numbers and mean note

Filter for a community using a list of tags
Update the lists of tools to keep and exclude to be sure that tools used in tutorials are in the community tool table

There are things there that should be moved directly to the GTN. Just wanted to implement a prototype to get the tutorial table for microGalaxy

Can you provide a small test case ? At least like this: bin/extract_all_tools_test.sh ? Or how long does it take to run it ?
Can you fix the linting ?

Yes. it is far from done :)


fix: properly handle SC products with no active versions

Issue #, if available:
Fix https://github.com/awslabs/service-workbench-on-aws/issues/461
Description of changes:
Fix an issue where if there was a SC product with no active versions, SWB will crash for calls to /workspace-type-candidates.
2021-04-26T16:43:36.364Z	b08e3a39-bda7-4ce7-b976-45d6d06f63c9	ERROR	TypeError: Cannot set property 'isLatest' of undefined
    at /var/task/src/lambdas/api-handler/webpack:/Users/nestorba/Amazon/AWS/github/service-workbench-on-aws/addons/addon-environment-sc-api/packages/environment-type-mgmt-services/lib/environment-type/env-type-candidate-service.js:209:9

Now it correctly filters out products without versions.
Checklist:

[x] Have you successfully deployed to an AWS account with your changes?
[ ] Have you written new tests for your core changes, as applicable?
[x] Have you successfully tested with your changes locally?
[ ] Have you updated openapi.yaml if you made updates to API definition (including add, delete or update parameter and request data schema)?
[ ] If you had to run manual tests, have you considered automating those tests by adding them to end-to-end tests?

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #468 (d5684d5) into develop (9b30e4e) will decrease coverage by 16.90%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop     #468       +/-   ##
============================================
- Coverage    49.81%   32.90%   -16.91%
============================================
  Files          242       32      -210
  Lines        10297     1240     -9057
  Branches      1438      238     -1200
============================================
- Hits          5129      408     -4721
+ Misses        4351      652     -3699
+ Partials       817      180      -637

Impacted Files
Coverage Δ

lib/user/user-authz-service.js
29.26% <0.00%> (-39.39%)
:arrow_down:

lib/helpers/utils.js
24.00% <0.00%> (-16.33%)
:arrow_down:

src/models/users/UsersStore.js
40.35% <0.00%> (-5.40%)
:arrow_down:

src/helpers/settings.js
100.00% <0.00%> (ø)

src/parts/studies/StudyStepsProgress.js

lib/data/workflow-drafts-transforms.js

lib/compute/data/compute-platforms.js

src/models/environment-types/EnvTypesStore.js

...arts/environments-builtin/EnvironmentDetailPage.js

src/models/forms/AddProjectForm.js

... and 207 more

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 9b30e4e...d5684d5. Read the comment docs.


fix #16

fix #16

I think the issue is here: https://github.com/unnamed/creative/blob/6faf0213fd62750d11c62a737e5ba19353c819c6/serializer-minecraft/src/main/java/team/unnamed/creative/serialize/minecraft/MinecraftResourcePackStructure.java#L114
The texture extension (.png) should not be appended since the Texture key already includes the extension (extensions are part of the keys because they are optional)


updated iexplorer (<IP_ADDRESS>)

Thank you for the contribution. It was merged directly as 30a4c3904b47f91369ab937c916fddcc0e257156 to keep commit history cleaner. Your contribution is still credited to you.


hapi support?

hi does it support for hapi server?
thanks

This duplicates https://github.com/jaydenseric/apollo-upload-server/issues/5.
I don't use it myself, but I know a few people tried to get it working and had troubles.


Update CLI links from documentation

Bug Report
The documentation points to Dockstore CLI source code in several locations. For example, as of today (sorry for blame view, but GitHub doesn't let you view source code, other than in raw form for rst/md files).
The Dockstore CLI has been moved into its own repo so these links don't work.
For now, I am updating in dockstore/dockstore-documentation#31 the links so they point to the master branch, but for 1.8 we need to change the repo they point to.
┆Issue is synchronized with this Jira Story
┆Issue Type: Story
┆Fix Versions: Dockstore 1.8
┆Sprint: Seabright Sprint 27 Barracuda
┆Issue Number: DOCK-1018

➤ David Steinberg commented:
Looks like walt got themhttps://github.com/dockstore/dockstore-documentation/commit/72ba55f531c3643ac506be510c5ed0f702232d33 ( dockstore/dockstore-documentation@72ba55f )

The smart-link is not very smart

Links seem fine


Add base_url support for hipchat2 private servers

This pull request addresses https://github.com/walter-cd/walter/issues/47 by adding support for HipChat on-premises (private) servers to the hipchat2 messenger by doing the following:

bumping the godep for https://github.com/tbruyelle/hipchat-go to match upstream v1.0, which exposes BaseURL
adding a configuration field to the hipchat2 messenger, base_url
documenting the change in the README.md

The other hipchat messenger also supports BaseURL in their client, as of https://github.com/andybons/hipchat/commit/0fd4d621380d2b040f1ee141c8653f3fc7346484 but it has not been tagged as a release, so I did not include version 1 support.
I have verified this change works with our on-premises server.

Thank you very much for the contribution! :+1:

LGTM


Review TreeNode Refactor

Here is an explanation of the changes I made and their reasons:

visit and rewrite were skipping the f_up (post_visit) of the node if f_down (pre_visit) results with "jump". This behavior is inconsistent with the post_visit "jump"s. In two passes traversals, "jump" actually does jump to the next f_down if the operation is f_up, or jump to the next f_up if the operation is f_down (bypassing the nodes children). It is important to establish the same behavior.
pop_enter_mark method is adapted to updated behavior of jump.
TODO in LogicalPlan's map_children is resolved.
There is no need to transform method. Old behavior of transform has been changed while its name is preserved. Since it is a simplification and ease-of-use PR rather than adding new features, we should add it with a separate PR when it is really needed. I also think that having the assumption of first top-down and then bottom-up may also be misleading for a general purpose API.
There is no need for handle_transform_recursion anymore.
I have added more comments and done some renaming that I thought were more explanatory.

Thanks for the fix @berkaysynnada, the changes look good/acceptable to me but let me check it thoroughly tomorrow and come back to you.

I am sending a commit for the mentioned parts. Thanks for your cooperation :)

Sure, thanks for the fixes!

I believe this PR is ready after the transform behavior is updated according to tests. I will add more comments to transform with an example scenario of its usage. It seems easy to understand and use to us because we have been dealing with it for a while, but it may be a difficult API to understand and use for someone using TreeNode for the first time.

Looks good to me now. Let me merge this PR and fix the transform behaviour on the main PR.
I see that you renamed transform to transform_down_up_with_control in https://github.com/peter-toth/arrow-datafusion/pull/1/commits/dbe24db9a1d1210e4b04a4165650b0603c004be1. Shall we call it that? I'm ok with that, but I don't get the with_control part.

Looks good to me now. Let me merge this PR and fix the transform behaviour on the main PR.
I see that you renamed transform to transform_down_up_with_control in dbe24db. Is it a better name for it? I'm ok with that, but I don't get the with_control part.

I tried to emphasize the difference of calling transform_down then transform_up with that. Renamed it transform_down_up only now. Maybe you can show up with better ones. It is an API that should be used with caution and I would like to emphasize that it is quite different from the old transform.
The only TODO is converting transform and related macros to apply f_up on the jumped node also.

Ok, thanks! I will merge this PR later today and fix the TODO.


Add formatters for built-in values

In the spirit of #16, this PR adds formatting options for built-in values.
By convention:

%s returns an s-expression
%#s returns a human-readable representation

I considered inverting the two, but wanted to stay consistent with error formatting, where # means "pretty".
⏱ Estimated review time:  15 min.
❌ WIP. Do not merge.

@spy16 I'm kinda struggling to sensibly define the formatting directives for Slurp values, and would welcome your input.
As I see it, there are basically three special formatting cases for values (as distinct from errors):

Serialization (s-expressions)
I want an exact representation of the value that can be parsed by a reader.  I care about exact correctness.
Pretty-Printing
When calling (print x), the representation of x's value is intended purely for human consumption.  Strings should be printed without quotes (i.e. "foo" and 'foo should both print as foo).  Large containers should be output in full, albeit split across multiple lines and indented for readability.
REPL output
REPL output is a mix between serialization and pretty-printing.  I want a convenient, human-readable representation of a value that preserves some information about type and contents.  I should notably be able to distinguish a string from a symbol, i.e. "foo" and 'foo should print as "foo" and foo, respectively.  It is however desirable to summarize large containers.  For example, a very long vector could be shortened to [0 1 2 3 4 5 6 7 8 9 ...].

It seems like we can distill this behavior down to three orthogonal dimensions:

Rendering vs Printing:  rendering preserves type information; printing elides it.
Representing vs Summarizing:  representing displays the whole value; summarizing displays part of the value.
Minification vs Formatting:  minifying produces a compact output; formatting produces a multiline/indented output.

(These labels are a bit awkward, but bear with me...)
So returning to the use-cases at the beginning of this comment:

Case 1 requires rendering a minified representation.
Case 2 requires printing a formatted representation.
Case 3 requires rendering a minified summary.

An edge case would be applying case 2 to a container such as a vector.  In this case, it seems like we should not elide type information for members of the container.  Thus, rendering ["foo" 'bar] should produce ["foo" bar] and not [foo bar].
Assuming you agree with this assessment, the next question is "how do we encode this in formatting directives?".  One approach is:

"%s" => print a minified representation => produces an s-expression
"%p" => render a minified representation => produces human-readable output with type-elision

From there, we could treat the $ modifier to mean "summarize", thus:

"%$s" => print a minified summary => produces a summarized s-expression
"%$p" => render a minified summary => produces human-readable summary output with type elision

Formatting can be achieved via #, thus:

"%#s" => print a formatted summary => produces a formatted s-expression
"%#p" => render a formatted summary => produces human-readable, formatted output with type elision
"%#$s" => print a formatted summary => produces a formatted, summarized s-expression
"%#$p" => render a formatted summary => produces human-readable, formatted summary output with type elision

Thoughts?

Sorry for the long delay in getting back.
I am bit confused here to be honest 😅 .. I see only 3 cases like you initially listed down (serialisation, pretty-printing, REPL output)..
Even in those cases, serialisation and REPL output are similar except for the fact that REPL output should have some pretty formatting (like  shortening long container)..

serialisation -- use %s -- "foo", 'foo, [1 2 3 4 "foo" :bar 'baz] etc. (parsable)
pretty-print -- use %v --  foo, foo, [1 2 3 4 "foo" :bar 'baz] etc. (non-containers are unquoted, values inside containers should be quoted i think)
repl output -- use %#s or %$s -- "foo", 'foo, [1 2 3 ...] etc.

My only concern with so many combinations of printing is the added complexity.

Yes. That sounds good 👍


"make floating" option not work in godot4.1.1

Godot version
v4.1.1.stable.official [bd6af8e0e]
System information
windows10
Issue description
when i clicked "make floating" option in panel tab,userinterface bloken like this.
i want restore this.
it this bug?

Steps to reproduce
1:making "new project"
2:i clicked "make floating" option in inspecter tab
Minimal reproduction project
test.zip

Thanks for the report! This is a duplicate of https://github.com/godotengine/godot/issues/79673 which is fixed already and will be available in future Godot releases. In the meantime, you can disable the single window mode.

i understand it. thank you very much for support.


No module named 's3fs'

Hey everyone,
i have a small issue, i followed every step according to the aws s3 readme. After inserting the zip file with all its functions i get the errorMessage:
{
"errorMessage": "Unable to import module 'lambda_function.lambda_handler': No module named 's3fs'",
"errorType": "Runtime.ImportModuleError",
"requestId": "57bdff90-ffe6-403c-8a4e-9af062b0e003",
"stackTrace": []
}
After looking up different solutions in stackoverflow they suggested to rename the handler to the created zipfile / lambda_function name. After trying these solutions it still wont work for me. Do you have any suggestions to solve this problem.
Greetings and have a nice week.
Wig

Hi Wig,
did you install the ARN layer as per the guide using the latest ARN layer matching your region?
best,

Hi Matin,
yes the ARN Layer was installed like Line Nr. 7 and 8 instructed.

Greetings,
Wig

Hi again,
I suggest reaching out via our contact form, we may need to be able to login to your account to review your setup to determine what may be the issue here.
best,
Martin


[Issue] azd deploy is not working anymore post upgrade to 1.3.0

[ ] Make sure you've installed the latest version using instructions in the wiki

Output from azd version
Run azd version and copy and paste the output here: azd version 1.3.0 (commit 6605c5768cb3ab6d9e0e6c2d892c9e8b49e1f720)
Describe the bug
Description of issue you're seeing...
Running azd deploy returns
(base) Browls@Wolf-MacBook-Pro OpenAI % azd deploy
Deploying services (azd deploy)
SUCCESS: Your application was deployed to Azure in less than a second.
You can view the resources created under the resource group a44455-dedvri in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/8707508803038308333-333/resourceGroups/a44455-dedvr/overview
To Reproduce
Steps to reproduce the behavior...
azd deploy
Expected behavior
A clear and concise description of what you expected to happen.
Environment
Information on your environment:
* Language name and version
* IDE and version : [e.g. Visual Studio 16.3]
Additional context
Add any other context about the problem here.

Hi @vrajroutu, it looks like azd deploy didn't find anything to deploy:

Are you running in the same directory that contains azure.yaml?
Does azure.yaml contain one or more services?

Can you please run the command with --debug and report what you see?

@jongio  @weikanglim closing this issue. It worked as expected.


Map component refactor

I plan to contribute to this library i use and maybe make infoWindows in the near future, meanwhile i did a small refactor.

Many thanks @VitAndrGuid :pray:


Address API Review comments

Description
Creating another PR to address the API review comments since the previous PR was closed: https://github.com/Azure/azure-sdk-for-python/pull/29399/files
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-ml


Clicking on _ah/admin link causes DevAppServer2Delegate to ApiProxyLocal cast exception

After running the App Engine server, clicking on admin link causes exception.
com.google.appengine.tools.development.devappserver2.DevAppServer2Delegate cannot be cast to com.google.appengine.tools.development.ApiProxyLocal

I filed the full details of the issue here: https://github.com/GoogleCloudPlatform/appengine-maven-archetypes-java/issues/61
It might be a classpath issue related to how it's configured in the archetype.

It appears that the admin is located on: http://localhost:8000/instances. I didn't expect the admin dashboard to be located on this link. I'm not sure what to do with this now.

This is a known issue in dev appserver2. The admin console is by default at http://localhost:8000/, which is shown in the server start log. It's a bug that the log also shows a link with _ah/admin.
https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/236

Ah ha, and it's obvious stated too. :)

Yeah, this should be fixed by the move back to devappserver1

I was getting the same error today. But apparently, you can check it from the adminserver localhost:8000/datastore


ISPN-5714 Add value/metadata aware store expiration listener

https://issues.jboss.org/browse/ISPN-5714
The only store I converted over was the DummyInMemoryStore as it is for tests.  I didn't want to adversely affect performance until we can verify it is alright or not.

1 sec fixing an issue real quick.

Alright should be good now

Integrated, thanks Will!


Test sort merge join on TPC-H benchmark

Which issue does this PR close?

Closes https://github.com/apache/datafusion/issues/13573
Rationale for this change
More testing for sort merge join

What changes are included in this PR?

Split tests into plans and answers
Test answers with datafusion.optimizer.prefer_hash_join = false

Are these changes tested?

Are there any user-facing changes?

Thanks @Dandandan it looks great. One question, is it supposed to have an SMJ in expected plans? I picked some plan files and haven't noticed SMJ plan nodes there

No, they aren't supposed to, I only moved the existing hash join plans and tested both hash join as sort merge  join for answers.

Thanks for the review @comphead


lowercase command as well as param. Issue #61

lowercase command AND parameters. Issue #61

@all-contributors please add @surlydev for code and bugs


[Ordinals] seed from sparrow wallet generating different taproot addresses, not showing ordinals

Cyberdemon, coming from sparrow wallet is having trouble seeing their ordinal inscriptions. Seeded Hiro with the sparrow wallet key. They shared a lot of details from their other wallet that can perhaps help us track down why this is. They are seeing different taproot addresses and ordinals are not loading. They have about 5 inscriptions over 5 addresses.
Here is a screenshot of the account addresses and the addresses in sparrow with the ordinals and they dont line up

OIC, yes but they all show this basically

and if I expand the address they don't line up either.

@kyranjamie does the derivation path line up here?

This is expected. In the switch account list, you're looking at native segwit, not taproot addresses.
If you copy an address from the receive ordinals flow, you should see an address that matches your sparrow wallet

Just tested and the taproot address matches sparrow, as it should.

Suggest closing this @314159265359879 as we have another issue for inscriptions now showing

@kyranjamie mind linking that other issue "we have another issue for inscriptions now showing")? I'm having trouble finding it (and assume it's cache busting specific?) 🙏

this one https://github.com/hirosystems/stacks-wallet-web/issues/3297 ? @markmhx


day_input_data.m file?

Got confused...
this is the console output:
(It said it twice.)
Choose DATA folder.
For Athina: DATA
For CPG: 'day_input_data.mat' in day files.
Load in day input file.
For CPG: 'day_input_data.mat' in day files.
I tried copying the previous input_data.mat file from the last time I did this into the DATA/2021215_Torrey directory, but I think maybe it doesn't have all the variables I need? Because I get this in the console:
ans =
'2 Hz data can be pulled from 10 Hz data'

ans =
'10 Hz data can be pulled from 10 Hz data'

Unrecognized function or variable 'drone_type'.
Error in input_day_flight_data (line 236)
if contains(drone_type, 'DJI')
Error in UAV_rectification_v01_2024 (line 190)
input_day_flight_data

oh I updated the files to include a timezone variable (tz) to make sure all the datetime's are consistent and the drone_type for the data prefix. So yeah, it needs to be new.

also now fixed the double console input

sorry - where is the file though? I was looking in DATA/2021215_Torrey/...
(also the filename is missing a number...is it 20231215?)

Hmmm, it doesn't automatically make me do it. Here's the console output:

UAV_rectification_v01_2024
Currently running on a Mac OS.
Choose UAV Rectification folder.
For Athina: UAV_automated_rectification
Please download cBathy v2.0 codes from GitHub.
ffmpeg version 6.0-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1<IP_ADDRESS>)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
libpostproc    57.  1.100 / 57.  1.100

ans =
 0

Choose DATA folder.
For Athina: DATA
Load in day input file.
For CPG: 'day_input_data.mat' in day files.
Error using load
Unable to read file ' / '. Input cannot be a directory.
Error in input_day_flight_data (line 119)
load(fullfile(temp_file_path, temp_file)); clear temp_file*
Error in UAV_rectification_v01_2024 (line 190)
input_day_flight_data

(Also I have cbathy2.0 but it still includes this line: "Please download cBathy v2.0 codes from GitHub.") I can add a check for that.

I think this is solved per our discussion today.


Update overflow ellipsis in panel

Fixes https://github.com/microsoft/vscode/issues/84387

This PR was trying to merge into master 🤦♂  will create a new one that merges into the release branch


Multiple trackers with DRF

Making a note here in case someone encounters something similar.
With an out of the box setup for pghistory with the admin integration enabled I am running multiple trackers on a model.
@pghistory.track(
    pghistory.Snapshot(label='ap.snapshot'),
    pghistory.BeforeDelete(label='ap.beforedelete')
)

I have a DRF endpoint using filters that uses my ap model.  The endpoint results in the pg history error:
ap has more than one tracker. Use the pgh_event_models dictionary to retrieve the event model by label.
Stemming from rest_framework/filters.py in get_default_valid_fields at line 230:

        model_property_names = [
            # 'pk' is a property added in Django's Model class, however it is valid for ordering.
            attr for attr in dir(model_class) if isinstance(getattr(model_class, attr), property) and attr != 'pk'
        ]

I'm following up on some issues I left stale. There have been a lot of changes since this was reported, and Im not totally sure how to recreate this one. If anyone encounters this and it is still an issue, feel free to re-open this and I will see if I can add a failing test for it in the suite


Email override option?

Is there a way to provide an email, but allow the user to override it during checkout?

Sorry, I just saw this was covered in #23


[Test fix] improve AOT test

the test in Wilson was timing out sporadically. There is a better way - instead of it being an XUnit test, use a powershell script called from a GH action.
ex:
https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/build/test-aot-compatibility.ps1
https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/.github/workflows/verifyaotcompat.yml
this is the test: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/ea42b6b3d03c258a16f00601a6ee5994f2c61406/test/Microsoft.IdentityModel.AotCompatibility.Tests/AotCompatibilityTests.cs#L35

Attempting to assign the issue to myself.


start charging user using charge API and order identifier

working on it 👍

to be done after #301

@simarsingh24 let me send the PR as I have already solved this issue locally


[Errno 1] General SSLEngine problem (javax.net.ssl.SSLHandshakeException: General SSLEngine problem)

Hi @bulkan,
I encountered this issue when using this framework. I was trying to get response from a website without SSL certificate (and I set verify = false to skip verification). The error comes out as Java exception instead of python. I have located the error to RequestsKeywords.py line 340. Can you advise?
Regards,
Michael

Hi @MichaelQinLin ,
Are you using Jython to run Robot Framework ?

@bulkan  Yes. Is that why the error occurs?

@MichaelQinLin Did you resolved this issue? If possible can you share stack trace?

@MichaelQinLin any updates?

Hi @vkosuri , sry for the late reply. The issue has not been resolved. I am avoiding this error by not using Jython when it comes to selenium tests.


python.EXE is v3.5.2, which is not supported by gyp

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>node-gyp configure
gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| win32 | x64
gyp ERR! configure error
gyp ERR! stack Error: Python executable "C:\Users\tomas_brand\AppData\Local\Programs\Python\Python35-32\python.EXE" is v3.5.2, which is not supported by gyp.
gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.
gyp ERR! stack     at failPythonVersion (C:\Users\tomas_brand\AppData\Roaming\npm\node_modules\node-gyp\lib\configure.js:454:14)
gyp ERR! stack     at C:\Users\tomas_brand\AppData\Roaming\npm\node_modules\node-gyp\lib\configure.js:443:9
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:197:7)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at maybeClose (internal/child_process.js:877:16)
gyp ERR! stack     at Socket.<anonymous> (internal/child_process.js:334:11)
gyp ERR! stack     at emitOne (events.js:96:13)
gyp ERR! stack     at Socket.emit (events.js:188:7)
gyp ERR! stack     at Pipe._handle.close [as _onclose] (net.js:498:12)
gyp ERR!

No follow-up, closing.

I don't know about the OP but yeah it'd be good if gyp made the switch to Python3.

It'd be very good, as this is roadblocking us on our site trying to use Nimvelo.

A switch to python3 is unlikely to happen anytime soon but see https://github.com/nodejs/node-gyp/pull/1092.


Allow debuging Lua built as a DLL

Add support for debugging Lua built as a DLL by also searching in modules that have "lua" in there name when looking for lua_newstate instead of just the main exe.

Great fix, thank you!


Unbiased Tilde-models

Below I create two logistic regression tilde models, full_model and hat_model.
Note that the hat_model is stochastic and its gradient is an unbiased estimate of the full model, scaled by K/N, because
each observation is picked with probability K/N.
You see that I use a trick for the global parameters which are picked alway (with probability 1) because   α ~ Tilde.Normal(0,sqrt(N1/K)) gives a log-likelihood which, when scaled together with the data, goes back to α  ~ Tilde.Normal(0,1).
full_model = @Tilde.model N1, C, c, y begin
    α ~ Tilde.Normal(0,1)
    cc ~ Tilde.Normal(0,1)^C
    for i in 1:N1
        v = α + cc[c[i]]
        y[i] ~ Soss.Bernoulli(logistic(v))
    end
end

hat_model = @Tilde.model N1, C, c, K, seed, y begin
    α ~ Tilde.Normal(0,sqrt(N1/K))
    cc ~ Tilde.Normal(0,sqrt(N1/K))^C
    sampler = Random.SamplerRangeNDL(1:N1)
    rng = ZZB.Rng(seed)
    for _ in 1:K
        i = rand(rng, sampler)
        v = α + cc[c[i]]
        y[i] ~ Soss.Bernoulli(logistic(v))
    end
end

It would be nice to tell Tilde to put a weight/factor on the log-likelihood, like this:
hat_model = @Tilde.model N1, C, c, K, seed, y begin
    α ~ Tilde.Normal(0,1)
    cc ~ Tilde.Normal(0,1)^C
    sampler = Random.SamplerRangeNDL(1:N1)
    rng = ZZB.Rng(seed)
    for _ in 1:K
        i = rand(rng, sampler)
        v = α + cc[c[i]]
        y[i] ~ Soss.Bernoulli(logistic(v), weight=N/K)
    end
end

Does this do what you want?
https://github.com/cscherrer/MeasureBase.jl/blob/master/src/combinators/powerweighted.jl
So I think you'd write
y[i] ~ Soss.Bernoulli(logistic(v)) ↑ (N/K)


Update security-passwords.md to more correct word

Fundamentally, hashes cannot be reversed, rather they are cracked.

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues

Well, I almost had better wording. Thanks for catching that.

Thank you.


[Mon / Qt Apps] Fixed filter-function

Description
The MultiColumnSortFilterProxyModel now supports QRegexp and QRegularExpression depending on the Qt Version
Related issues

Fixes #1589

Tested with Qt 5.9 / 5.15 / 6.6.1


[feat] Rust Wasm crate with the Tauri API

Describe the problem
We use Yew to wrote our web application in full Rust.
We wanna to use Tauri, that requires today to make call via the Javascript.
Describe the solution you'd like
Create 2 crates, one for tauri-api in full Rust, 1 for tauri-api-mock to handle unit tests with mockup.
Alternatives considered
No response
Additional context
No response

there has been an effort in this PR https://github.com/tauri-apps/tauri/pull/2239/files but it got stalled and I think @JonasKruckenberg is cooking something too

Cool ! @JonasKruckenberg don't hesitate if you wanna some testers ! We will be happy to contribute.

I've been working around this with some macros for now (https://github.com/jvatic/tauri-bindgen-rs-macros) in case anyone's looking for something to experiment with until we get official bindings. (It'd be really nice to get tauri-bindgen updated with the latest WIT spec though! That route forward seems really promising.)

I should also mention that there is https://github.com/JonasKruckenberg/tauri-sys