runtime: non-cooperative goroutine preemption

I propose that we solve #10958 (preemption of tight loops) using non-cooperative preemption techniques. I have a detailed design proposal, which I will post shortly. This issue will track this specific implementation approach, as opposed to the general problem.
Edit: Design doc
Currently, Go currently uses compiler-inserted cooperative preemption points in function prologues. The majority of the time, this is good enough to allow Go developers to ignore preemption and focus on writing clear parallel code, but it has sharp edges that we've seen degrade the developer experience time and time again. When it goes wrong, it goes spectacularly wrong, leading to mysterious system-wide latency issues (#17831, #19241) and sometimes complete freezes (#543, #12553, #13546, #14561, #15442, #17174, #20793, #21053). And because this is a language implementation issue that exists outside of Go's language semantics, these failures are surprising and very difficult to debug.
@dr2chase has put significant effort into prototyping cooperative preemption points in loops, which is one way to solve this problem. However, even sophisticated approaches to this led to unacceptable slow-downs in tight loops (where slow-downs are generally least acceptable).
I propose that the Go implementation switch to non-cooperative preemption using stack and register maps at (essentially) every instruction. This would allow goroutines to be preempted without explicit
preemption checks. This approach will solve the problem of delayed preemption with zero run-time overhead and have side benefits for debugger function calls (#21678).
I've already prototyped significant components of this solution, including constructing register maps and recording stack and register maps at every instruction and so far the results are quite promising.
/cc @drchase @RLH @randall77 @minux

Forwarding some questions from @hyangah on the CL:

Are code in cgo (or outside Go) considered non-safe points?

All of cgo is currently considered a safe-point (one of the reasons it's relatively expensive to enter and exit cgo) and this won't change.

Or will runtime be careful not to send signal to the threads who may be in cgo land?

I don't think the runtime can avoid sending signals to threads that may be in cgo without expensive synchronization on common paths, but I don't think it matters. When it enters the runtime signal handler it can recognize that it was in cgo and do the appropriate thing (which will probably be to just ignore it, or maybe queue up an action like stack scanning).

Should users or cgo code avoid using the signal?

It should be okay if cgo code uses the signal, as long as it's correctly chained. I'm hoping to use POSIX real-time signals on systems where they're available, so the runtime will attempt to find one that's unused (which is usually all of them anyway), though that isn't an option on Darwin.
And a question from @randall77 (which I answered on the CL, but should have answered here):

Will we stop using the current preemption technique (the dummy large stack bound) altogether, or will the non-coop preemption just be a backstop?

There's really no cost to the current technique and we'll continue to rely on it in the runtime for the foreseeable future, so my current plan is to leave it in. However, we could be much more aggressive about removing stack bounds checks (for example if we can prove that a whole call tree will fit in the nosplit zone).

So it is still possible to make goroutine  nonpreemptable  with  something like:
"sha256.Sum(make([]byte,1000000000))"
where inner loop is written in asm?

Yes, that would still make a goroutine non-preemptible. However, with some extra annotations in the assembly to indicate registers containing pointers it will become preemptible without any extra work or run-time overhead to reach an explicit safe-point. In the case of sha256.Sum these annotations would probably be trivial since it will never construct a pointer that isn't shadowed by the arguments (so it can claim there are no pointers in registers).
I'll add a paragraph to the design doc about this.

will the design doc be posted here?

The doc is now submitted: Proposal: Non-cooperative goroutine preemption

Disclaimer: I'm not a platform expert, or an expert on language implementations, or involved with go aside from having written a few toy programs in it. That said:
There's a (potentially) fatal flaw here: GetThreadContext doesn't actually work on Windows (see here for details). There are several lisp implementations that have exhibited crashes on that platform because they tried to use GetThreadContext/SetThreadContext to implement preemptive signals on Windows.
As some old notes for SBCL point out, Windows has no working version of preemptive signals without loading a kernel driver, which is generally prohibitive for applications.

I think the example code to avoid creating a past-the-end pointer has a problem if the slice has a capacity of 0. You need to declare _p after the first if statement.

@mtstickney looks like it's true but we can look for other implementations, how they go about the same problem. CoreCLR talks about the same problem - they need to preempt threads for GC and talk about the same bugs with wrong thread context. And they also talk about how they solve it without ditching SuspendThread altogether by using redirection.

@creker Nor me, so we're in the same boat there. I hadn't seen the CoreCLR reference before, but that's the same idea as the lisp approach: SuspendThread, retrieve the current register set with GetThreadContext, change IP to point to the signal code to be run, ResumeThread, then when the handler is finished restore the original registers with SetThreadContext.
The trick is capturing the original register set: you can either do it with an OS primitive (GetThreadContext, which is buggy), or roll your own code for it. If you do the latter, you're at risk for getting a bogus set of registers because your register-collecting code is in user-mode, and could be preempted by a kernel APC.
It looks like on some Windows versions, some of the time, you can detect and avoid the race conditions with GetThreadContext (see this post, particularly the comments concerning CONTEXT_EXCEPTION_REQUEST). The CoreCLR code seems to make some attempts to work around the race condition, although I don't know if it's suitable here.

Thanks for the pointers about GetThreadContext! That's really interesting and good to know, but I think it's actually not a problem.
For GC preemption, we can always resume the same goroutine on the same thread after preemption, so there's no need to call SetThreadContext to hijack the thread. We just need to observe its state; not run something else on that thread. Furthermore, my understanding is that GetThreadContext doesn't reliably return all registers if the thread is in a syscall, but in this case there won't be any live pointers in registers anyway (any pointer arguments to the syscall are shadowed on the Go wrapper's stack). Hence, we only need to retrieve the PC and SP in this case. Even this may not matter, since we currently treat a syscall as a giant GC safe-point, so we already save the information we need on the way in to the syscall.
For scheduler preemption, things are a bit more complicated, but I think still okay. In this case we would need to call SetThreadContext to hijack the thread, but we would only do this to threads at Go safe-points, meaning we'd never preempt something in a syscall. Today, if a goroutine has been in a syscall for too long, we don't hijack the thread, we simply flag that it should block upon returning from the syscall and schedule the next goroutine on a different thread (creating a new one or going to a pool). We would keep using that mechanism for rescheduling goroutines that are in system calls.

No alternative to CGO? CGO blocked the development of golang

Hi all, a question about this design.  First, I've only read it from a high level, and haven't followed the use cases where the cooperative preemption is problematic.
But the big picture question I have is:  what about code which depends on cooperative preemption?
I don't think we can know the extent of it.
But I can give an example where non-cooperative preemption might be problematic, on a project I am working on.  The context is communication with an OS/C thread via atomics and not cgo, where timing is very sensitive: real time deadline misses will render things useless (audio i/o).
If currently, some code controls the pre-emption via spinning and runtime.Gosched(), then it seems to me this proposal will break that code because it will introduce preemption and hence delay the thing which is programmed to not be pre-empted.
Again, there is no way for us to know how much such code there is, and without an assessment of that, it seems to me this proposal risks entering a game of whack-a-mole w.r.t. go scheduling, where you solve one problem and as a result another pops up.
Please don't take away programmer control of pre-emption.
Last question: what good could runtime.Gosched() possibly serve with per-instruction pre-emption?
Again, sorry I don't know the details of this proposal, but that might be the case with a lot of other code that uses runtime.Gosched() under the assumption of cooperative pre-emption.

@wsc1 can you provide a code example which breaks without cooperative scheduling?

@wsc1
No one said the test program should run via cloud.

@wsc1
No one said the test program should run via cloud.

@crvv testing audio latency violations is hard.  it isn't expected to agree except on the same hard ware under the same operating conditions or under OS simulation, and the scheduler random seed can come into play.  re-creating those things to placate the interests of pre-emptive scheduling is not my job, although I'm happy to help along the way.  No one said what hardware or OS operating conditions either.
There are also a myriad of reasons why pre-emption in a real-time audio processing loop would cause problems documented there by audio processing professionals. The Go runtime uses locks and the memory management can lock the system.  These things are widely accepted as things which  cause glitches in real time audio because they can take longer than the real-wall-clock-time allocated to a low latency application.  This is widely accepted.  It is also widely accepted that the glitches "will eventually" happen, meaning that it is very hard to create a test in which they do in a snap because it depends on the whole system (OS, hardware, go runtime) state.
I do not find it so credible to quote out of context against the grain of best practice in the field.  You could also provide a reason why you want a test on the github issue tracker.  Do you believe that the worst case real-wall-clock-time of pre-emption doings inserted into a critical segment of real-time audio processing code shouldn't cause problems?  Why?
To me, the burden of proof lies there.  On my end, I'll continue to provide what info and alternatives I can to help inform the discussion.

I propose that the Go implementation switch to non-cooperative preemption using stack and register maps at (essentially) every instruction. This would allow goroutines to be preempted without explicit

As far as I understand, Java VMs have essentially the same issue for GC safepoints, because they need to stop the world for GC heap compaction. Most JVMs use safepoints at function calls, just like Go and on the jumps backwards (i.e. at the end of the loops). Won't this be sufficient?

  See this comment in the original issue:

@dr2chase has put significant effort into prototyping cooperative preemption points in loops, which is one way to solve this problem. However, even sophisticated approaches to this led to unacceptable slow-downs in tight loops (where slow-downs are generally least acceptable).

@aclements Maybe a dumb question, what does our proposal mean for system call handling? Does it mean that every call in the syscall package needs to be retried, since they might be interrupted by the scheduler?

@bergwolf We register all signal handlers with SA_RESTART, so in principle all signal handlers should restart anyhow.  And for the several cases where they don't, we already need to retry them, since otherwise turning on the profiler breaks the program.  So I don't think there is any fundamental change here with regard to signal handling.

@aclements, will this land in 1.13? If so, could you post here when it's working in tip?

@networkimprov, I'm working hard to land it for 1.13, but I'm also uncovering a lot of dark corners of the scheduler, so it's slow going. This issue will be closed when it lands on tip, so you should see that.

Just stumbled across a bug caused by cooperative preemption in real life production code. The code looks essentially like this:
func (c *queue) wait() {
    for {
        c.RLock()
        flushed := c.flushed
        c.RUnlock()
        if flushed {
            return
        }
    }
}

We recently started inlining the fast-paths of sync.RWMutex.RLock and RUnlock, which means the fast path of this loop can execute without preemption points. If that causes the goroutine that should be setting c.flushed to not run, then this leads to a deadlock.
Obviously this busy loop isn't great, but it's interesting because it was in production code, and only started to fail when both RLock and RUnlock were inlined, the RWMutex was uncontended (otherwise it falls back to the slow path, which has a preemption point), and the goroutine schedule led to the goroutine that was supposed to set flushed getting blocked behind the spinning goroutine.

For CL above, the change in binary sizes is surprisingly low.  Benchmarking for time in progress.
https://perf.golang.org/search?q=upload:20190815.1
A superficial test demonstrates that the filtered preemptions are inserted where expected.

First round of results is not bad.  Forget to also test against 1.12 to see if everyone is at least moving forward, am running that now.
https://perf.golang.org/search?q=upload:20190816.1

Can we have an environment variable in 1.14 to en/disable preemptive scheduling?

@networkimprov, GODEBUG=asyncpreemptoff=1 will disable preemptive scheduling.

That said, if it does cause problems, please do report them (assuming this all gets in for 1.14). This ought to be invisible beyond eliminating bizarre deadlocks and improving throughput in some cases. If it's not invisible, we'd love to know why and better understand that.

Ha, I must have been subliminally tickled by the CL that just appeared, which I skimmed over :-)
I've gathered that a few apps rely on non-preemption, but I'm mostly concerned about unintended consequences on platforms that get fewer Go deployments, e.g. Windows and MacOS laptops.

That's certainly fair. Part of why I put in the environment variable is because this has a risk of a long bug tail, so it's nice to have a debugging knob (and an emergency escape hatch!).

@aclements what's the effect of runtime.Gosched() after this?

@networkimprov, this doesn't change the behavior of Gosched at all. (I'm not sure how it would... did you have a particular concern in mind?)

It occurred to me that Gosched() might become a no-op, since many (tho not all) uses of it will be unnecessary, and maybe detrimental.

Wouldn't that be nicer to handle through software with tight loops declaring a dependency on goX.Y and then removing the Goscheds that were there purely to break up tight computational loops.
The functionality of Gosched (give others a chance) might still be useful for anything resembling a spinlock, CAS, or such.

I want to use Gosched() as a minimal Sleep(), which is why I brought it up. So yes, we need it.
But if it's mostly detrimental under the preemptive regime, making it a no-op and adding a new API (Goyield?) could make sense.

Is there a reason to leave this issue open, given the existence of #36365?

Nope! Closing.

Is there any way to disable preemption altogether? In most situation I want a simple single-threaded asynchronous model similar to node.js, where locks are mostly not needed.

@szmcdull have you tried this runtime switch? Note that Go had preemption before 1.14...
$ GODEBUG=asyncpreemptoff=1 ./your_app arguments ...

@szmcdull have you tried this runtime switch? Note that Go had preemption before 1.14...
$ GODEBUG=asyncpreemptoff=1 ./your_app arguments ...

Yes I tried. But still got panic: concurrent map iteration and map

I think you were just lucky that you didn't see that before 1.14 :-)
Try https://golang.org/pkg/sync/#Map
For further Q's, I refer you to golang-nuts. You'll get more & faster responses there, generally.


Send service background/terminate lifecycle events from mobile apps

Gives the service an opportunity to request more execution time on iOS if it is e.g. sending a message and adds a new AppState for when the app is about to be terminated. r? @keybase/react-hackers for java/objC and @mmaxim for go

Are you sure this is going to play out exactly like it did with the JS?

It should, I compared it against the native modules for iOS and android to send the same app states.

 The extra Background notifications are from the iOS appWillEnterForeground hook, which RN claims to handle but it looks like it doesn't (this is sent when the state is already 'background' so should be a no-op). Otherwise, it looks like the behavior is the same, with native notifications coming a bit earlier. Testing android now.

It looks like the only difference is on iOS: an extra background call before foregrounding the app (from iOS's appWillEnterForeground). @chrisnojima @mmaxim I think they'll do the same thing, how does this look?


use Barba twice inside himself

nice tool! but now we need barba in barba.
in the 1st .barba-container we need a new .barba-container and in next to this are links which should be loaded inside the 2nd barba-container, is there any way?
i must specify the inner links to call the inner barba, all other links should be replace the complete content in the 1st container.
thank you very much! best greetings from germany :]

Hi @derbenner ,
If I remember correctly this topic was already discussed but I can't find the issue right now.
Actually what you are describing is not supported by barba.js.
The main philosophy behind the library is that it works as progressive enhancement, each page needs to be accessible directly.
Without javascript enabled, your website needs to work normally.
Being said that, having nested containers will results in dynamically create "pages" that don't exists in reality. You won't be able to share an URL that replicates that page.
So, doing what you are asking it's technically possible, but it's not currently supported.
Hope it makes sense.
Cheers


Move PHP IntelliSense out of core

https://github.com/felixfbecker/php-language-server has recently gained advanced completion support which goes way beyond VS Code's internal PHP completion. It resolves types, looks at docblocks and suggests everything from classes, properties, methods etc. depending on context. Validation is also implemented.
It is currently blocked by https://github.com/Microsoft/vscode-languageserver-node/issues/127, but after that I plan to release it. The problem though is that there is no way to disable the built-in completion and snippets for PHP, so you will get a lot of duplicated results (because the built-in completion is not context-aware).
Since PHP is the only language that has bundled completion and validation, I would propose to just remove it from core (only keep syntax highlighting).
@mousetraps

+1 for that!
@mousetraps Let me know if you want to do this..

@aeschli I'm in!
That said, while it is true that this is the only non-fundamental-to-building-vscode language that provides completions out of the box, I believe it would also be the first time we would pull something out of core that has such a significant level of engagement.
So before we make it happen, I think we should try to define "metrics for success" to understand if there's anything more we should measure to understand the resulting the impact on things like new-user experience and user retention. VSCode has struck a chord with a ton of PHP devs, which is awesome, and it would be unfortunate if this change resulted in funneling a greater % of those users to extensions (good) at the expense of the absolute number of users (bad).
I don't have a good answer to this yet, but I'll think on it. Thoughts?
cc @chrmarti

@mousetraps If you need more time to think - can we then get some way to disable the built-in completion and snippets for the short term? We can already disable the validation, but not the completion.

@mousetraps I don't have good answer to the question about the possible impact on new users either. The architectural argument might weigh more anyway. We will also keep working on the discoverability and usability of our extension story (e.g., #16168).

We clearly have to document that in the release notes. Also we must make sure that when a PHP document is opened, there will be the recommendation popup that will recommend to install php-language-server. If that's not enough we can add an extra dialog that explains the situation when one opens a PHP document.
If there are many complaints we can also think of offerering the old support as an extension.
IMO our current support is too simple and blocks the way of a more serious implementation. I'm in favour let the community take over on PHP.

Here's another php offering that ticks a few boxes
https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client

We now have options to disable the builtin support. I think we should keep the builtin support though.

@roblourens Would be curious to hear why?

I think it has some value, I don't think it's getting in anyone's way now that it can be disabled, I think it's nice to have some basic things work out of the box, and it's not taking any effort to maintain, so I don't see why we should remove it.


Finish VivViewer renaming

Right now, it's still MicroscopyViewer internally. When we made the name change on the export we were worried about merge conflicts, otherwise we would have renamed it internally at that point.

Fixed by #102.


[Bug] Monaco editor in a parent with contain: strict renders suggest-details-container at incorrect position

Reproducible in vscode.dev or in VS Code Desktop?

[X] Not reproducible in vscode.dev or VS Code Desktop

Reproducible in the monaco editor playground?

[ ] Not reproducible in the monaco editor playground

Monaco Editor Playground Link
https://jsfiddle.net/5kmzbgq9/
Monaco Editor Playground Code
html, body, #container {
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

#container {
  contain: strict;
  left: 20px;
  top: 20px;
}

body {
  position: relative;
}

Reproduction Steps

add contain: strict to monaco-editor container element which is positioned absolute with non-zero top and left values.
open code suggest (ctrl + space on Mac)
click on right caret to get suggest details
suggest details renders with an offset of top left value of the contain: strict element

Actual (Problematic) Behavior
by default suggest-details-container is being rendered with position: fixed where as suggest-widget is rendered with position: absolute in monaco-overflowing-widgets-container and the position of suggest-details-container is calculated using suggest-widget 's position as an anchor and assuming page coordinates are top left 0,0. Whereas if any ancestor of the element has contain: strict it resets the origin, making the position calculation incorrect.
I could find that there is a way to set a custom parent element for suggest-widget where it can be rendered as fixed position, but couldn't find for suggest-details-container
Expected Behavior
suggest-details-container should render with one of its edge touching suggest-widget
_placeAtAnchor function should either accommodate for scenarios where the origin of the parent is reset, or allow consumers to render suggest-details-container in a custom container element
Additional Context
In the previous versions suggest-details-container was rendered in the same parent as suggest-widget. Thereby allowing the consumer to render them in a custom element which isn't affected by contain: strict.
monaco-editor version: 0.39.0
Browser: Chrome
OS: MacOS

We have also encountered this issue and would appreciate it being looked into. We had to modify placeAnchor and _placeAnchor to consider offsets (and any other values/settings of spacing influencing the location/placement of the popovers) of parent elements to correct the value of the left setting for the suggest widget, which is not ideal.

Please provide a link to the monaco editor playground.

Hello @hediet I have pasted the jsfiddle link in the first comment. Pasting here again for your convenience:
https://jsfiddle.net/5kmzbgq9/
Here's a screenshot of how it appears:

As you can see the offset at which the editor is rendered is transferred on to the suggest-detail widget.

We can only investigate issues if they are reproducible in the monaco editor playground.

Okay, here's a link of playground with the same issue.

While the above link reproduces the issue, I discovered the issue persists for transform without contain: strict. So I have created another playground which specifically highlights the issue when the editor is positioned absolute with a contain: strict link

@hediet as the rendering offset is reproducible in monaco-playground can we reopen the issue?


Error in log

What version of Spook are you using?
1.3.2
What version of Home Assistant are you using?
2023.11.3
The problem
I found a error every 15 sec in the log. (pasted below)
Anything in the logs? Paste it here!
2023-12-02 23:35:22.078 ERROR (MainThread) [custom_components.spook] Unexpected exception from <function AbstractSpookRepair.async_activate.<locals>._async_inspect at 0x7f35d3598400>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 114, in _handle_timer_finish
    await task
  File "/config/custom_components/spook/repairs.py", line 130, in _async_inspect
    await self.async_inspect()
  File "/config/custom_components/spook/ectoplasms/script/repairs/unknown_entity_references.py", line 99, in async_inspect
    for entity_id in entity.script.referenced_entities
                     ^^^^^^^^^^^^^
AttributeError: 'UnavailableScriptEntity' object has no attribute 'script'

Fixed in #497


MH-13355 Increase the default timeout for TrustedHttpClientImpl

Inter-server operations like ingest -> admin to start a new workflow on an ingested mediapackage use a POST to start a workflow.
Under some conditions, this can take longer than 60s, in which case the calling node (ingest server) thinks the request has failed, whereas it actually executes fine.
This increases the default timeout for HttpTrustedClient from 1 minute to 5 minutes so it doesn't fail prematurely, which will make Opencast a little more robust and avoid services being flagged as WARN or ERROR unnecessarily.

@smarquard  we had also problems with this at switch. I wrote a patch which makes this configurable. Had no time so far to make pr against community version.  In there i changed the DEFAULT_CONNECTION_TIMEOUT. Do you know the difference behavior between this and the DEFAULT_SOCKET_TIMEOUT?

Connection timeout is how long to wait while attempting to open the TCP connection, and the socket timeout is the read response (how long to wait between receiving data, or for the request to return the final response).
I think it's reasonable to leave the connection timeout as-is (e.g. if a worker node was down in such a way that it didn't return connection refused but just no response to tcp connections), then you'd want to move on sooner rather than later. On the other hand once the TCP connection has opened, then you're waiting for the server to return something in response to the GET/POST which is the socket timeout.


Decoding empty JSON string value into nil with Codable

normal case:
{
    "maintenance": true
}

{
    "maintenance": false
}

If there is no maintenance station then it will become empty  string
{
    "maintenance": ""
}

i want to have nil if maintenance is empty string in json
struct Demo: Codable {
    var maintenance: Bool?
}

Is there a good way to do it?

I think something like this should work, no testing done though:
struct NilBoolFallback: FallbackValueProvider {
    public static var defaultValue: Bool? { nil }
}

@FallbackDecoding<NilBoolFallback>
var maintenance: Bool?

The idea being if it's anything other than a Bool (and thus fails to decode) it will use the defaultValue

@WingCH Re-open if you have any more questions


Backup creation failed, please check the dsmr_backend logfile.

Hi i did install your add-on of DSMR reader > Home Assistant Add-on: DSMR Reader, great plugin thanks!
No ones a day i get > Backup creation failed, please check the dsmr_backend logfile. (i don't know where to find that log)
this in unread notification in the dsmr tool itself, what's somewhat odd because if i look at the directory via SMB there is are files like dsmrreader-postgresql-backup-Friday.sql.gz in there.
Did i do something wrong? any tips hints?
Thanks

What set-up do you have?

I'm using Home Assistant Supervised on a rpi4 > i saw your there is a update i will do that first. will let you know.

Upgrading did the trick, did not see the error again.
Thanks!


Set up protected branches and github actions

[x] protect master branch
[x] require reviews
[ ] add action to test package
[ ] add action to deploy to internal RSPM

Let's use the Roche workflows @gravesti


Posting Module creation part 2.

Posting my 3rd blog post. Yay!

Everything looks good. Proof read and such.


[CONTROLLER] optimizes cloud real time

This PR is for:

Server

optimizes cloud real time
Checklist

[ ] Added unit test.

Backport to branches

main

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.zhengya seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Bofrost.lu has degraded performance

In f19e453, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2891 ms

Resolved: Bofrost.lu performance has improved in efff727 after 33 minutes.


Improve filtering in the filters pane on the Search view

Feature Request
Is your feature request related to a problem or unsupported use case? Please describe.
Right now the search filters pane is pretty crude. The basic functionality is there (for organizations and subjects) but we're missing key parts and the experience is not great.
Describe the solution you'd like

Implement the filters for other facets
The filters are not implemented nor the facets displayed for other dimensions than organizations & subjects. They are available on the backend and just need to be plugged in here.

Improve the readability of active filters
Active filters are displayed at the top of their category and are made bolder. This is not enough to distinguish them. We need to add eg. a ticked box in the place where their facet count would be to make it obvious they are enabled.
We can additionally list some active filters with an icon to remove them directly in the search box. This can be somewhat more complex (we need to scale it when users add a lot of filters) and is therefore a lower priority.

Support more than 10 values for the organizations & subjects categories.
The existing implementation is just picking up whatever the backend is returning as top facets for this category. This is fine as a default view, but we need to be able to filter by other values straight from the filters pane.
We can do this by adding a small autosuggest field below the list of top filter values. Ideally it would display facet counts along with the suggestions. As a first version, we can use the generic endpoints and not display any counts.

Describe alternatives you've considered
Any other suggestions for improving the experience and exhaustiveness of our search filters is welcome.
Discovery, Documentation, Adoption, Migration Strategy
All of the suggestions above add visual elements and should be easy to discover this way. Of note: existing implementations might not be completely accessible: any refactors should look to improve on this. We need our search to be as accessible as possible.
Do you want to work on it through a Pull Request?
Yes. Also meant as proposals for @lunika to pick from.

[x] Filters for Language, Availability & New courses are implemented
[x] Active filters are more distinguishable
[x] Non-top-10 organizations & subjects can be added to filters through a search box
[x] They show facet counts
[ ] Search box shows a (redundant) list of active filters

Implement the filters for other facets
The filters are not implemented nor the facets displayed for other dimensions than organizations & subjects. They are available on the backend and just need to be plugged in here.

I would like to work on this point. Where can I found the api resources related to current harcoded filters ? I saw there is a documentation for the search endpoints and I see nothing related to availatbility, language or new resources.
Is it possible to have the endpoint and a payload example for each resources allowing me to implement it in the front application ? Or maybe the good documentation is somewhere else and I didn't see it.
Thanks.

Unfortunately these docs are not up-to-date; I created #382 to fix this.
In the meantime you can just inspect the Response for the /api/v1.0/courses request. It contains facets and facet counts for the other dimensions.
Facets & values along with relevant messages are already available in settings through FILTERS_HARDCODED.
For the outgoing requests, you need to reuse the machine names for filters & values.

This can be closed: everything was done but the last bullet point which has its own expanded issue.


Support different help texts for normal and advanced users and restore legacy mode

These series partially reverts commit 173ad2bd0044c82973fe17b6f077e7202602cb99.

New help texts:
$ tesseract --help
Usage:
  tesseract --help | --help-extra | --version
  tesseract --list-langs
  tesseract imagename outputbase [options...] [configfile...]

OCR options:
  -l LANG[+LANG]        Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.

Single options:
  --help                Show this help message.
  --help-extra          Show extra help for advanced users.
  --version             Show version information.
  --list-langs          List available languages for tesseract engine.

$ tesseract --help-extra
Usage:
  tesseract --help | --help-extra | --help-psm | --help-oem | --version
  tesseract --list-langs [--tessdata-dir PATH]
  tesseract --print-parameters [options...] [configfile...]
  tesseract imagename|imagelist|stdin outputbase|stdout [options...] [configfile...]

OCR options:
  --tessdata-dir PATH   Specify the location of tessdata path.
  --user-words PATH     Specify the location of user words file.
  --user-patterns PATH  Specify the location of user patterns file.
  -l LANG[+LANG]        Specify language(s) used for OCR.
  -c VAR=VALUE          Set value for config variables.
                        Multiple -c arguments are allowed.
  --psm NUM             Specify page segmentation mode.
  --oem NUM             Specify OCR Engine mode.
NOTE: These options must occur before any configfile.

Page segmentation modes:
  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single word.
  9    Treat the image as a single word in a circle.
 10    Treat the image as a single character.
 11    Sparse text. Find as much text as possible in no particular order.
 12    Sparse text with OSD.
 13    Raw line. Treat the image as a single text line,
       bypassing hacks that are Tesseract-specific.

OCR Engine modes:
  0    Legacy Tesseract only.
  1    Neural nets LSTM only.
  2    Legacy + LSTM Tesseract.
  3    Default, based on what is available.

Single options:
  -h, --help            Show minimal help message.
  --help-extra          Show extra help for advanced users.
  --help-psm            Show page segmentation modes.
  --help-oem            Show OCR Engine modes.
  -v, --version         Show version information.
  --list-langs          List available languages for tesseract engine.
  --print-parameters    Print tesseract parameters.

My notes:

user still can easily run legacy engine that will cause a crash
legacy engine is not supported anymore and this is not indicated by help => users will continue open issues...

When I run the legacy engine, I don't get a crash. Which crash scenario are you referring to? You could add a tag "legacy" to issues related to the legacy engine.

Doesn't "legacy" already say that it is old? And I don't think that it is completely unsupported. As I already said, I'll try to fix issues which are reported. It should be easy to add some help text which clarifies the situation. What about this text:
...
OCR Engine modes:
0    Legacy Tesseract only.
1    Neural nets LSTM only.
2    Legacy + LSTM Tesseract.
3    Default, based on what is available.
Please note that the legacy engine is no longer supported by Google!
...

See issue #707 and also https://github.com/tesseract-ocr/tesseract/issues/1074#issuecomment-327814244 on the role of the legacy engine.

@stweil
The crash scenario is because traineddata from tessdata_fast do not have
legacy models in them (at least for some languages).
For some languages such as Hindi, sanskrit etc it is intentional, as the
accuracy is very much improved with LSTM engine and model.
However, for other Latin script based languages, 'tesseract' may provide
better results (as you have mentioned).
I will test and post some specific crash scenarios for you. I am sure the
crash can be avoided by checking for available models in the traineddata
files. I will also add link to issues where I have commented about the same.

0 Legacy Tesseract only.

2 Legacy + LSTM Tesseract.

Tesseract is (also) the name of the legacy enigne.
What about:

OCR Engine modes:
0 Legacy engine only
1 Neural nets LSTM engine only
2 Legacy + LSTM engines
3 Default, based on what is available

?

Fine for me. Adding "engine" in the descriptions looks indeed better. Do you want to send a pull request, or should I prepare one?

You.

I think the periods are unnecessary.

PrintHelpForPSM also has periods, and so do the other help texts. I'd keep them for now, but yes, it would also be possible to have a good help text without those periods.

The crash scenario is because traineddata from tessdata_fast do not have
legacy models in them (at least for some languages).

@stweil
I checked and my earlier comment seems not to be correct.  It is NOT a crash/assert. I will open a new issue with what I noticed.

'extra' => 'advanced'


fix: global is not defined (fixes #259)

@elsigh is there a plan to release a new version?

@elsigh is there a plan to release a new version?

@elsigh @scniro Any release updates planned ?

I don't think either of us intend to make a release as neither of us are using the project. I don't have the ability to add more committers so I think fork is your best bet.


Add additional type-annotation related methods

All added methods are necessary in order to support alternate syntax extensions such as Flow (for my use-case) and likely TypeScript too.
One thing this PR doesn't do is implement the same methods for the loose parser. Happy to add those if necessary, unsure if method/plugin parity and parameters are a priority.
Please feel free to be pedantic as I'm more than happy to change method names or justify the existence of them.
Thanks!

Just found some code style inconsistencies. I'll fix them up ASAP.

@marijnh Please take a look.

Sorry about the slow response. Too much going on. This looks good, and I've merged it as 3095abc

All good, thanks @marijnh!


feat(jetton-master): allow updating owner field

PR Summary

Feature: Added the ability to update the owner field in the Jetton Master contract using the JettonSetParameter message. Setting the owner to an empty address revokes ownership.
Tests: Implemented comprehensive tests to verify:

Ownership updates.
Ownership revocation (setting to zero address).

Refactor:

Split the message definitions into separate files for better modularity.

Thank you! You made great PR!
Splitting messages is great idea, also let's update README for new file structure

also let's update [README]

ah yes, ill make the change on that as well. I'll push the updates sometime tomorrow

Not sure if we want to keep the ownership change through JettonSetParameter. The OwnableTransferable trait is defined in the standard library

Oh. I didn't know about that trait in Tact standard library. But it seems this message ChangeOwner not any kind of standard in TON, it's just non required helper function. It even doesn't have constant opcode.
So i believe we can use our own message for updating owner (using JettonSetParameter) because if we not, we will have overcomplicated API with one endpoint for some parameters and another endopoint for others.
What do you think about it?

I found out about OwnableTransferable yesterday after implementing this PR 😄.
I'm in favor of using OwnableTransferable because:

If its in the standard lib, people are familiar with this and will probably want to use that.
Already implements a reply with "ChangeOwnerOk"
The JettonSetParameter might end up handling many different, unrelated functionalities with each having its own complex logic. I think its better if functionality that impacts the state of the contract (such us roles/ownership/mint control/lock/pause/tax ) would be on its own receive message:

We dont end up with a huge JettonSetParameter function/reducer
Scalability, not limited to a key/value
Better manage the project file structure with segregation of receive messages

Ok then, I have to agree with you, let's use standard solution using stdlib/ownable for transfer ownership

Alright, i'll implement the change and adjust the tests

PR Summary
Contract

Added OwnableTransferable trait with ChangeOwner for ownership updates and revocations.

Tests

Test  the use of ChangeOwner for ownership changes.
Test ownership revocation via zero address.
Test ownership through the minting functionality.

Thank you!


dataDescription

This function does not seem to be working. The examples return things with 0 rows.
The documentation does not explain what should come back.  So the issue is fairly complex

What is the purpose of this function?  Anyone reading the man page should be able to understand what it is doing,
and why.
It does not seem to work -the examples should have some way of testing if they worked.  We discussed the importance
of having check or validation components.
The function says:
This function returns a data frame containing metadata on the specified variables. Only unique variable names and variable descriptions are returned, i.e., if the list contains the same questionnaire/variables across different survey years, and if all metadata is consistent, then only one row for this variable will be return
I am a bit doubtful that this can be done.  We likely can't succeed at that goal.  We will need a lot more work to identify issues
that arise when combining across cycles - this is complex and I am not sure we can get there...at least not yet.

and the example from the man page doesn't work:

dataDescription(list(BPQ_J=c("BPQ020", "BPQ050A"), DEMO_J=c("RIDAGEYR","RIAGENDR")))
data frame with 0 columns and 0 rows


Add cas server url path support

My PR allow define cas server url like https://cas-example.com/cas

gopkg.in/cas.v1 can use cas server url https://cas-example.com/cas/, but not https://cas-example.com/cas.
My PR can use both.

@geoffgarside


Update Staff Page

Informed by Matthew Wilson - He left the role of 'initial flight instructor' ~6 months ago.

Accidentally added multiple commits, sorry @CalumTowers. You already know I'm a newb!

Accidentally added multiple commits, sorry @CalumTowers. You already know I'm a newb!

:tada: This PR is included in version 6.9.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Detected package version outside of dependency constraint: Duende.IdentityServer.EntityFramework.Storage 5.2.0 requires AutoMapper (>= 10.0.0 && < 11.0.0) but version AutoMapper 11.0.1 was resolved.

Detected package version outside of dependency constraint: Duende.IdentityServer.EntityFramework.Storage 5.2.0 requires AutoMapper (>= 10.0.0 && < 11.0.0) but version AutoMapper 11.0.1 was resolved.

Important update
This organization is not maintained anymore besides critical security bugfixes (if feasible). This organization will be archived when .NET Core 3.1 end of support is reached (3rd Dec 2022). All new development is happening in the new Duende Software organization.
The new Duende IdentityServer comes with a commercial license but is free for dev/testing/personal projects and companies or individuals making less than 1M USD gross annnual revenue. Please get in touch with us if you have any question.


Add custom audience entries?

[Y] Administration

What is your question
Is it possible to add custom audience entries so that some of the options match our organisation?
I would then be able to offer playlists suited to different audiences about the same app. Without this would I have to add separate custom subcategories for different teams using the same app?
thanks, Ian

No, we do not have a way to customize the audience metadata for the content that Microsoft provides you.  You would need to create your own custom content pack to do that, which you could do by copying and customizing the Microsoft provided content in the docs library of this repo and hosting it yourself. More information on custom content packs can be found in the overview video: https://www.youtube.com/watch?v=-sLXl_rKGxQ


[Question] How to show fullscreenDialog

I wonder how to show a page with fullscreenDialog.
Components like VWidget don't provide this option.
Only utilizing by VBasePage seems to allow this behavior.
Could one be so kind and share with my a best practice example in this regard?

Hi,
Just added fullscreenDialog attribute to VWidget. I think this is reasonable, I just never used it so did not think about it.
Just use VRouter >= 1.1.1+4

Perfect, thank you very much!


[#203] New Presentation Cards

PR Title
The purpose of this Pull Request is to Create a new Feature Card component using Tailwind! #203
Description
The whole idea is to create a new feature card component.
How you solved
Created new presentation cards using only Tailwind CSS.
Screenshots

Reviewer
@jsvigneshkanna
Checklist

[x] I have Made this contribution as per the CONTRIBUTING guide in this repo
[x] I have tested in local Environment.
[x] I have made the fix as per issue converstaion
[x] I have starred the repository ⭐

@richardnikolas Perfect 🚀
Please check other open issues too !


[Ahuna] Assistant Details modal

Related task and figma
NOTE: shipping the PR would have no user facing impact since the Assistant Details modal is not yet accessible anywhere in the app. This is a prep for AssistantGallery Modal & My assistants pages that I'll do next.
Priorization & product questions

Assistant instructions

Since prompt can be very long (e.g. help see screenshot below) and summarizing is non trivial (store? or latency to display window?) and non essential, settled for scroll auto with a max-h-64 as v1
Do we show prompts of system agents here? (@help in particular) => would say no, and just answer "Instructions of this assistant are not available." WDYT?

assistant deletion -> ux wise it is shown for any assistant in the user's list -- but not if it's not in their list, to minimize mishaps

Would we prefer to always show it but disabled when deletion is not possible?
There can be user frustrations when an assistant they created and published is deleted by somebody else => just to confirm we are clear on that

global assistants => at the time they are considered on the user's list, can only be triggered on / off for the whole workspace

allowing users to opt out of them (e.g. opt out of @gpt4) is slightly more work + I'm not sure we want that?

Add / remove from my list

Only show for 'workspace' / 'published'
Not operational as per this PR

Not yet done - to priorize

modal display: removing the blur
modal closing: replacing the cross on right by a chevron on left
display usage stats in the modal
duplicate button (planned soon though)

To discuss whether:  should be done before user-facingness / ok v2 but guaranteed in climb / ok v3, should be done but we can wait  / actually not that important
Shots
With dust app action, already in list, deletable

Not yet in list, deletable, no action

Data sources

Delete popup

Long instructions

Raw model

Since this is not user visible. The answer to all your questions are: this is fine, we can finetune as we go :)

Since this is not user visible. The answer to all your questions are: this is fine, we can finetune as we go :)

Excellent :) I'll merge -- but the user visibleness will hopefully come very soon!

How can I test these?
Visually, we're not done yet, needs a bit of love.

Yep, true -- cf the list of notes in the PR summary above, glad to have your opinion on the best tradeoffs
You can test on front-edge in ~5mns (deploying) => go to the existing assistants page, and click on the assistants descriptions to make the modal appear


flutter run -d linux fails on Flutter 1.27.0-1.0.pre

Steps to Reproduce

Run flutter create bug.
Run flutter run -d linux

Expected results:
Running desktop Linux app
Actual results:
Launching lib/main.dart on Linux in debug mode...
CMake Error at cmake_install.cmake:61 (file):
  file INSTALL cannot copy file
  "/home/brett/flutter-projects/desktop_thingey/build/linux/debug/intermediates_do_not_run/desktop_thingey"
  to "/usr/local/desktop_thingey": Permission denied.

Building Linux application...
Exception: Build process failed

Logs

$ flutter run -d linux --verbose
[  +98 ms] executing: [/home/brett/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +41 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 68c96f100e42ab3dbf43e61e9e2fc875a2d50cb8
[   +1 ms] executing: [/home/brett/flutter/] git tag --points-at 68c96f100e42ab3dbf43e61e9e2fc875a2d50cb8
[  +19 ms] Exit code 0 from: git tag --points-at 68c96f100e42ab3dbf43e61e9e2fc875a2d50cb8
[        ] 1.27.0-1.0.pre
[  +63 ms] executing: [/home/brett/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/dev
[        ] executing: [/home/brett/flutter/] git ls-remote --get-url origin
[   +7 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +58 ms] Unable to locate an Android SDK.
[   +7 ms] executing: [/home/brett/flutter/] git rev-parse --abbrev-ref HEAD
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] dev
[ +101 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +5 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +103 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +97 ms] Skipping pub get: version match.
[ +221 ms] Initializing file store
[  +12 ms] Skipping target: gen_localizations
[   +9 ms] complete
[   +5 ms] Launching lib/main.dart on Linux in debug mode...
[   +6 ms] /home/brett/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /home/brett/flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot
--sdk-root /home/brett/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names
--experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill /tmp/flutter_tools.IKPOFX/flutter_tool.ALXYBF/app.dill --packages
/home/brett/flutter-projects/desktop_thingey/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation
--filesystem-scheme org-dartlang-root --initialize-from-dill build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill
[  +41 ms] Building Linux application...
[  +35 ms] <- compile package:desktop_thingey/main.dart
[   +3 ms] executing: [build/linux/debug/] cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug /home/brett/flutter-projects/desktop_thingey/linux
[ +108 ms] -- Configuring done
[   +7 ms] -- Generating done
[   +8 ms] -- Build files have been written to: /home/brett/flutter-projects/desktop_thingey/build/linux/debug
[  +15 ms] executing: ninja -C build/linux/debug install
[  +15 ms] ninja: Entering directory `build/linux/debug'
[+6193 ms] [1/5] Generating /home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/libflutter_linux_gtk.so,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_engine.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_method_call.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_method_response.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_value.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/fl_view.h,
/home/brett/flutter-projects/desktop_thingey/linux/flutter/ephemeral/flutter_linux/flutter_linux.h, _phony_
[  +28 ms] [ +150 ms] executing: [/home/brett/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [  +59 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] 68c96f100e42ab3dbf43e61e9e2fc875a2d50cb8
[        ] [        ] executing: [/home/brett/flutter/] git tag --points-at 68c96f100e42ab3dbf43e61e9e2fc875a2d50cb8
[        ] [  +18 ms] Exit code 0 from: git tag --points-at 68c96f100e42ab3dbf43e61e9e2fc875a2d50cb8
[        ] [        ] 1.27.0-1.0.pre
[        ] [  +71 ms] executing: [/home/brett/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[        ] [   +8 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] [        ] origin/dev
[        ] [        ] executing: [/home/brett/flutter/] git ls-remote --get-url origin
[        ] [   +7 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] [        ] https://github.com/flutter/flutter.git
[        ] [  +70 ms] Unable to locate an Android SDK.
[        ] [   +9 ms] executing: [/home/brett/flutter/] git rev-parse --abbrev-ref HEAD
[        ] [   +8 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] dev
[        ] [ +125 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [   +5 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [ +128 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[   +4 ms] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[   +4 ms] [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[        ] [ +110 ms] Initializing file store
[        ] [  +13 ms] Done initializing file store
[        ] [  +66 ms] Skipping target: gen_localizations
[        ] [+2743 ms] Skipping target: unpack_linux
[        ] [ +647 ms] Skipping target: kernel_snapshot
[        ] [ +533 ms] Skipping target: debug_bundle_linux_assets
[        ] [   +1 ms] Persisting file store
[        ] [  +19 ms] Done persisting file store
[        ] [  +10 ms] build succeeded.
[        ] [  +17 ms] "flutter assemble" took 4,341ms.
[        ] [ +262 ms] ensureAnalyticsSent: 255ms
[        ] [   +2 ms] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [        ] exiting with code 0
[+1015 ms] [2/5] Building CXX object CMakeFiles/desktop_thingey.dir/flutter/generated_plugin_registrant.cc.o
[  +71 ms] [3/5] Building CXX object CMakeFiles/desktop_thingey.dir/my_application.cc.o
[ +231 ms] [4/5] Linking CXX executable intermediates_do_not_run/desktop_thingey
[        ] [4/5] Install the project...
[  +13 ms] -- Install configuration: "Debug"
[        ] -- Installing: /usr/local/desktop_thingey
[        ] CMake Error at cmake_install.cmake:61 (file):
[   +3 ms]   file INSTALL cannot copy file
[        ]   "/home/brett/flutter-projects/desktop_thingey/build/linux/debug/intermediates_do_not_run/desktop_thingey"
[        ]   to "/usr/local/desktop_thingey": Permission denied.
[   +1 ms] FAILED: CMakeFiles/install.util
[        ] cd /home/brett/flutter-projects/desktop_thingey/build/linux/debug && /usr/bin/cmake -P cmake_install.cmake
[        ] ninja: build stopped: subcommand failed.
[  +20 ms] Building Linux application... (completed in 7.8s)
[+6440 ms] Exception: Build process failed
[   +3 ms] "flutter run" took 14,804ms.
[   +7 ms]
           #0      throwToolExit (package:flutter_tools/src/base/common.dart:12:3)
           #1      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:647:9)
           <asynchronous suspension>
           #2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:1174:12)
           <asynchronous suspension>
           #3      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1026:27)
           <asynchronous suspension>
           #4      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:152:19)
           <asynchronous suspension>
           #5      AppContext.run (package:flutter_tools/src/base/context.dart:151:12)
           <asynchronous suspension>
           #6      CommandRunner.runCommand (package:args/command_runner.dart:197:13)
           <asynchronous suspension>
           #7      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:280:9)
           <asynchronous suspension>
           #8      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:152:19)
           <asynchronous suspension>
           #9      AppContext.run (package:flutter_tools/src/base/context.dart:151:12)
           <asynchronous suspension>
           #10     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:236:5)
           <asynchronous suspension>
           #11     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:66:9)
           <asynchronous suspension>
           #12     run.<anonymous closure> (package:flutter_tools/runner.dart:64:12)
           <asynchronous suspension>
           #13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:152:19)
           <asynchronous suspension>
           #14     AppContext.run (package:flutter_tools/src/base/context.dart:151:12)
           <asynchronous suspension>
           #15     runInContext (package:flutter_tools/src/context_runner.dart:75:10)
           <asynchronous suspension>
           #16     main (package:flutter_tools/executable.dart:92:3)
           <asynchronous suspension>

[ +105 ms] ensureAnalyticsSent: 103ms
[   +1 ms] Running shutdown hooks
[        ] Shutdown hook priority 4
[   +5 ms] Shutdown hooks complete
[        ] exiting with code 1

$ flutter analyze
Analyzing desktop_thingey...
No issues found! (ran in 2.0s)

$ flutter doctor -v
[✓] Flutter (Channel dev, 1.27.0-1.0.pre, on Linux, locale en_AU.UTF-8)
    • Flutter version 1.27.0-1.0.pre at /home/brett/flutter
    • Framework revision 68c96f100e (7 days ago), 2021-02-08 16:14:15 -0800
    • Engine revision b04955656c
    • Dart version 2.13.0 (build 2.13.0-0.0.dev)

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.1

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux
    • Chrome (web)    • chrome • web-javascript • Google Chrome 88.0.4324.150

! Doctor found issues in 2 categories.

I hate this bug :/ It's a duplicate of https://github.com/flutter/flutter/issues/59890 and some others; see my comment at https://github.com/flutter/flutter/issues/73881#issuecomment-760216098
Can you currently repro this every time you make s new project?

@stuartmorgan Nope, my just created project works fine. Argh. Closing to de-dupe

Drat. I was hoping we finally had a case we could catch in the act of writing the wrong scripts.

Closing to de-dupe it again. :-)


Service updates for Umbrel Compose v0.1.1

This PR updates the services in accordance with their next release.
Will be merged after:

[x] Umbrel Dashboard v0.2.1 is released
[x] Umbrel Middleware v0.1.1 is released
[x] Umbrel Manager v0.1.1 is released

After which Umbrel Compose v0.1.1 will be ready for release.

Yo @nolim1t we're ready for testing! I've updated the images in docker-compose.yml with :master tag. They are built from the latest source from their master branches. Once you test them out, let's release:

umbrel-dashboard v0.2.1
umbrel-manager v0.1.1
umbrel-middleware v0.1.1

And then we're ready to merge this PR and release umbrel-compose v0.1.1.
Some critical things you should test:

Change the password on the settings page. Verify that you can log in with the new password, and it unlocks lnd wallet, and that the stored seed is re-encrypted with the new password (view it on the lightning page in dashboard, in the side menu)

Delete $HOME/db/user.json and $HOME/lnd/data/ to register as a new user on the dashboard, then try recovering using an existing seed phrase.

In the BTC wallet, there's a new switch to "withdraw all funds". Please try that too - it should empty your wallet ;)

I've tested all changes locally + on a regtest RPi + deployed them on testnet.getumbrel.com too. No issues so far.

All services released and tested. Lemme know if you wanna test it too before we merge this and release compose v0.1.1!

LGTM


Cannot open "Documentation.docc" as a "Swift Package Folder" because it is already open as a "Folder"

Hi,
I'm having an issue building this package. It's only started since we moved to Xcode 14 and 14.1. When archiving with xcodebuild it reports:
2022-11-06 22:12:10.919 xcodebuild[5632:81577] [MT] IDEFileReferenceDebug: [Load] <IDESwiftPackageCore.IDESwiftPackageSpecialFolderFileReference, 0x600003fa1400: name:Documentation.docc path:group:Documentation.docc> Failed to load container at path: /Users/runner/Library/Developer/Xcode/DerivedData/XXXXXX-flaewjllgygaoobtikmjykvcbuow/SourcePackages/checkouts/xctest-dynamic-overlay/Sources/XCTestDynamicOverlay/Documentation.docc, Error: Error Domain=com.apple.dt.IDEContainerErrorDomain Code=6 "Cannot open "Documentation.docc" as a "Swift Package Folder" because it is already open as a "Folder"." UserInfo={NSLocalizedDescription=Cannot open "Documentation.docc" as a "Swift Package Folder" because it is already open as a "Folder".}

Or more easily:
Cannot open "Documentation.docc" as a "Swift Package Folder" because it is already open as a "Folder"

Really unsure as to what we can do here. We're brining XCTDynamicOverlay as a transitive dependency via SwiftUI-Navigation.
If it helps, here's a (sanitised) version of our xcodebuild command:
xcodebuild -workspace XXXXXX.xcworkspace -scheme XXXXXX -sdk iphoneos -disableAutomaticPackageResolution -archivePath 'Build/XXXXXX.xcarchive' archive -xcconfig XXXXXX/XXXXXX/Resources/Config/Distribution-AppStore.xcconfig XXXXXX_BUILD_NUMBER=477

Little more background: A very similar issue occurred over in Nuke: https://github.com/kean/Nuke/issues/609 Their solution was actually to remove the docc folders 😢

Okay, I'm closing the issue because it's not actually a problem. It was a bit of a red-herring. My main issue was solved in a very similar way to other people's here.

Hi @huwr, thanks for looking into it more and letting us know what the underlying issue was. Glad we don't have to move docs out of Sources/, but also still bizarre how a provisioning profile setting would surface an error about docs. 😐

Yeah. It's actually a totally separate issue. I still have the original error, in fact, but it is not causing any archive failures! I downgraded temporarily back to SwiftUI-Navigation 0.2.0 (which didn't have XCTestDynamicOverlay) and the warning went away, but the archive failure persisted. It turns out, there was errors elsewhere that my CI had made less than obvious. Just thought I'd leave the link to the solution in the thread in case someone finds this same issue and is having a similar trouble.

What solved for me in the project I work on was to add the .docc relative path to the target's exclude
.target(
    name: "MyTarget",
    // ...
    exclude: ["PathToDocc/MyDocs.docc"]
  ),

The paths to source and resource files that you don’t want to include in the target.
https://developer.apple.com/documentation/packagedescription/target/exclude

It looks like xcodebuild / Swift compiler considers that as valid (re)source path which causes those log entries.
After excluding the logs were gone, and docc can still be compiled via the Build Documentation option / xcodebuild docbuild


With the release of Elasticsearch 6.0 today, when will the ARM templates support it?

Today is an exciting day with the release of Elasticsearch 6.0.  Can you tell us when you think the ARM templates will support it?
Thanks in advance.

The .NET client currently takes priority from our team which will take another week.
After that we have the bandwidth to get 6.0 support baked in to the ARM template. It will take an estimated week to make sure we cover all the x-pack breaking changes.
Note: rough estimates only, trying to be open about the roadmap without committing to a hard date.

Any word on when this might happen?

Do you have an estimate of when this might be available?

This is currently blocking our upgrade to 6.0. When do you know when this will be implemented?

@dpoole73 @okke-formsma I've started looking at supporting 6.x this week.


Freeplay Sections work, while Difficulty Change doesn't.

Describe your problem here.
Hello! I have gotten the VS Dave Freeplay Sections in PE 0.5.2h, but the difficulty change won't work.
I tried copying almost everything that had "difficulty" in it. Guess what?
IT DIDN'T WORK! I am hoping someone will help me out with difficulty change.
I'll drop here my FreeplayState.hx just for someone to edit it for me.
Regards, Gab. Thanks for reading
FreeplayStateB.txt
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
It was touched until, I completely gave up, so I "almost" anything that had "difficulty change".

i think you can dont use difficulties lol


Add processPushSecret key

Problem Statement
Unlike ClusterExternalSecret and ClusterStore that have both CRD installation toggles and processing toggles in the helm chart, PushSecret has only the CRD installation toggle.
Related Issue
Fixes #2471
Proposed Changes
Add the processing toggle, same as the one for the cluster resources to the helm chart.
Checklist

[x] I have read the contribution guidelines
[x] All commits are signed with git commit --signoff
[x] My changes have reasonable test coverage
[ ] All tests pass with make test
[ ] I ensured my PR is ready for review with make reviewable

/ok-to-test sha=b5d148c

/ok-to-test sha=b5d148c

/ok-to-test-managed sha=b5d148c provider=aws

/ok-to-test-managed sha=b5d148c provider=gcp

@moolen @sebagomez can you review and approve the PR please?

/ok-to-test sha=46b8bfa


[Feature] GDP calculator

Description
Gross domestic product is defined by the Organisation for Economic Co-operation and Development (OECD) as "an aggregate measure of production equal to the sum of the gross values added of all resident and institutional units engaged in production (plus any taxes, and minus any subsidies, on products not included in the value of their outputs." More simply, it can be defined as a monetary measure of the market value of final goods produced over a period of time, typically quarterly or yearly, that is often used to determine the economic performance of a region or country. Generally, growth of more than two percent indicates significant prosperous activity in the economy. On the other hand, two consecutive three-month periods of contraction may indicate that an economy is in recession.
Implementing a GDP calculator which uses Expenditure approach which takes parameters :

Personal Consumption
Gross Investment
Government Consumption
Exports
Imports

GDP =  personal consumption + gross investment + government consumption + net exports of goods and services
Screenshots
Proposed protoype (UI will be improved)

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Go ahead @AnandK-pm


Ability to Change background

It would be cool to be able to change the canvas background, so I can make it look like a solar system or galaxy.

You can now change the color of the background as well as the max/min speed colors of the balls.


Make region and failure domain configurable by the user. Removed code…

The current fix will take a configurable values of region and fault domain from the user. The zone will comprise of these values which in turn will be used Kubernetes in making decision on where to deploy the node/pod.
Previously, once the node is deployed the code will try to retrieve the cluster name and datacenter and use it to assign to failure domain and region respectively. This information varies from each vcenter set up to set up. We should not limit to always pick up these values which doesn't any sense in current scenario. Also the existing implementation panics sometimes - see issue 36295 for more details.
@abrarshivani @pdhamdhere @kerneltime

The best approach is to query the vCenter using govc implementation to get the fault domain and the region in which the node is deployed. The current govc has no support for it. Once this is implemented we can take full advantage of it. Since this could not be possible we went ahead and made these values configurable so that it will atleast be in the control of the user.

Fixes #33


Ensure map translations make it into map

I thought I saw in prod a translation not appearing in maps, but it looked like it happened to some maps and not others. Need to make sure that's not happening

in order to investigate it we need exact case in the dev database (to check which exactly map and why glitches),
theoretically, there may be just unsuitabe map structure.

I remember it took a long time to create the map.
Ihor, you said it would take more than 6 hours before, right?
Maybe that's the problem?

@ForeverYoung1208
Here's a list in prod:
Translating to: Old Tamil
Phrase translated: 100 Kilometers
##Translation NOT found
Tyndale Gen-8_4.oty.cf.svg
Tyndale Is36-37.oty.cf.svg
Tyndale Jonah1.oty.cf.svg
Tyndale Gen-12_4.oty.cf.svg
##Translation found
Tyndale Ezra6_2.oty.cf.svg
Tyndale Neh2_9.oty.cf.svg

I remember it took a long time to create the map. Ihor, you said it would take more than 6 hours before, right? Maybe that's the problem?

nonono, 6 hours had taken the translation of all maps to all nanguages.
Yes it is slow due to the process of dowloading the original, then translation, then uploading translated map to s3 bucket. But no so slow to take 6 hours for single map ))).
That's some enother issue, i'll investigate it.


Discuss merge function from listview table

The generic list view contains an option to merge entities. If enabled in the APIS_ENTITIES setting for an entity, it is possible to choose a merge column for the table (one has to fix the apis_entities.table module first, I leave that as an exercise to the reader 😜).
It then looks like this:

Apparently it is also possible to delete entities using these checkboxes. Given that the functionality is broken and no one noticed - do we need it? (I think it might be useful, but the implementation as a column could be enhanced - I'm thinking of a static checkbox and combining that with an action menu (delete, merge, duplicate, ...))

Given that its broken I opt for removing it for now and adding a feature issue to the backlog for a reimplementation at a later stage.

remove that for the time being


3D Mesh Generation from DSM Images from Sat-NeRF output

Dear Centre Borelli,
I hope this message finds you well. I'm senior undergraduate student of Yonsei University, Civil & Environmental engineering. First and foremost, thank you for your incredible work on the Sat-NeRF and making it as open-source on GitHub. It has been an invaluable resource for those of us who are interesting in working with geospatial data and 3D modeling.
After using your model to generate DSM images, I found myself in need of a method to convert these DSMs into 3D mesh files that could be easily visualized and used in other applications. To address this need, I developed a script that takes your DSM outputs and converts them into high-quality 3D meshes, outputting the results in both .ply and .obj formats. The script leverages Open3D for point cloud processing, normal estimation, and Poisson surface reconstruction, with the added benefit of GPU acceleration where available.
Given that this script complements your existing work, I thought it might be a useful addition to your repository. I’ve included it in this pull request, along with clear documentation on how to use it.
What I did :

Converts DSM images into 3D point clouds.
Generates 3D meshes using Poisson surface reconstruction.
Exports meshes in .ply and .obj formats.
Includes a progress bar for real-time feedback.
Optimized for performance with GPU support.
I believe this functionality could be a valuable extension for users who are looking to further utilize the DSM images generated by your model. I have so much interests about Geospatial data processing and NeRF, so I would be honored if you would consider merging this pull request into your repository.

Please feel free to reach out if you have any questions or need any adjustments. I’m also open to any feedback or suggestions you might have.
Thank you again for your outstanding contributions to the field.
Best regards,

This is the target image that I used for 3D data creation and outputs are below.

Thank you.

https://github.com/tersite1/DSMtoPLY
This is the Project page for more explanation. And I added height parameter for better 3D creation.
sample


Information missing from notifications

The following is a proof request screen shot from "Cool Clothes Online". The notification details are missing:

Replication Procedure

Run through one of the sample cases in the BC Wallet Demo (https://bc-wallet-demo-test.apps.silver.devops.gov.bc.ca/digital-trust/showcase/)
Once you hit the 'Start Proving' step, scan your credential.
When you see the option to share your information, navigate directly back to the home screen by tapping the home button in the header

Observed Behavior

A notification appears with no content and only a 'view' button (see above screenshot)

Expected Behavior

Information about the proof request (e.g. Who the requests from, etc.)

Replication Procedure

Run through one of the sample cases in the BC Wallet Demo (https://bc-wallet-demo-test.apps.silver.devops.gov.bc.ca/digital-trust/showcase/)
Once you hit the 'Start Proving' step, scan your credential.
When you see the option to share your information, navigate directly back to the home screen by tapping the home button in the header

Is also reproducible with other proof request flows, (ie. Animo showcase) so it's a wallet problem, not a showcase one.

This appears to be resolved - 1.0.21 (1936)


Getting Started tutorial references renamed and no longer existing streams in v1

Getting Started tutorial references some streams, that are renamed or no longer exist in v1. I've caught at least these three:
  error • The getter 'onAudioPositionChanged' isn't defined for the type
         'AudioPlayer' • lib/main.dart:1004:17 • undefined_getter
  error • The getter 'onPlayerCompletion' isn't defined for the type
         'AudioPlayer' • lib/main.dart:1023:17 • undefined_getter
  error • The getter 'onPlayerError' isn't defined for the type 'AudioPlayer' •
         lib/main.dart:1033:17 • undefined_getter

The first two obviously have just been renamed. They should be renamed in the tutorial as well. But the third one seems no longer existing in the audioplayers package - at least I haven't found it yet.
Code to Reproduce

Open the Getting Started tutorial ( https://github.com/bluefireteam/audioplayers/blob/main/getting_started.md )
Add audioplayers as a dependency into some Flutter app
Copy and paste the code examples for the three streams mentioned above directly from Getting Started tutorial to your Flutter app
Run flutter pub get && flutter analyze

Platforms

flutter version: 3.0.4
audioplayers version: 1.0.1

The last one covered by #1179
The second one fixed in #1189

First one via: #1275


Actually make the exit code nonzero for regressions.

https://github.com/microsoft/vcpkg-tool/pull/1468 didn't work in testing: https://dev.azure.com/vcpkg/public/_build/results?buildId=105566&view=logs&j=7922e5c4-0103-5f8f-ad17-45ce9bb98e80&t=7922e5c4-0103-5f8f-ad17-45ce9bb98e80

https://dev.azure.com/vcpkg/public/_build/results?buildId=105567&view=logs&j=7922e5c4-0103-5f8f-ad17-45ce9bb98e80&t=8ceef4ed-9be5-594f-e707-4e1dd58a3d21 Did work in testing


Fix #31: Calling sendTextMessage after sending MMS causes message to …

…be incorrectly sent as MMS
This is a breaking change because it changes the behavior of sendTextMessage(...) in some cases (such as when the previous message was sent as an MMS). sendTextMessage(...) should always send as an SMS according to the comment above the function.

I will try to get this in with the next release.
As this might have more impact than it should have, for customers that are using:
setAllowedChannels.


When stack names are long , the text overflows on the hosts view.

rancher server version - V0.58.0-rc2

Version - master 3/8
Verified fixed


Should we provide example manifests/charts/etc. to test against

Interested to see others thoughts on whether we should add examples to test our policies against. Seems like it could be a bit of overhead involved, but feels like a bit of context would also make them a bit more useful.

Closed by #8


"Ad Hoc Filters fix" breaks complex filters in version 1.9.2

Complex filters are impossible with the latest change to sql_query.ts:74
We often use the IN operator which unfortunately become impossible with the change, but its a common operator in clickhouse queries.
Expected Filter Clause
ipv4DstString IN ('<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>')
Current Filter Clause with 1.9.2
ipv4DstString IN '('<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>')'
I can't find anything about the reason why the "fix" was required. Possible a more general fix would be great to match both requirements.

@Kenterfie , should be fixed in 1.9.3 by https://github.com/Vertamedia/clickhouse-grafana/pull/153/commits/4b1d3bffd48a8bfff1c610b603a23adb7bad81f4
Could you confirm, please?

Thanks for the quick fix.

Ok, change has broken more. I have reverted the change entirely.
On integer values also the new quoting produce errors.
dstPort < '1024'
->
Code: 43, e.displayText() = DB::Exception: Illegal types of arguments (UInt16, String) of function less, e.what() = DB::Exception

@Kenterfie , this is technically correct. '1024' is a string and ClickHouse is strictly typed. How do you suggest it can be fixed for generic case?

@Kenterfie is this error still relevant for you?


Empty view snapshots

Hey all. I'm having a really weird, intermittent problem when I try and snapshot a view belonging to a controller that's been loaded from a Storyboard in iOS 8. Lots of details of what I've tried so far are here, but the gist of it is that the image rendered from drawViewHierarchyInRect is empty – the correct size, but transparent.
Has anyone else seen this?

For what it's worth..
It seems like when auto layout is involved, it almost always fails. However, pausing by putting a breakpoint makes it pass which made me think this is related to timing issue.
And.. with this code,
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        UBSnapshotVerifyView(view, @"Should pass!");
    });

I confirmed that it always passes (at least I didn't get any intermittent failure).. so it is definitely related to some timing issue. Until someone has a correct fix, I'll stick to this hack..

@toddlee That's odd – we've been using this on our project for months with no problems. If it's not too much trouble, could you provide a sample project demonstrating the problem?

@ashfurrow Sorry.. it was actually not doing its job correctly. Since that block is run after the test ends, it doesn't actually compare images.
I am still getting empty snapshots and using renderAsLayer doesn't fix it either (it renders something, but not in the correct way)

@toddlee We've also had troubles with the renderAsLayer approach - views not properly being laid out  by the time the screenshot is taken. We've had to resort to running all our snapshots against the iOS7 simulator which is 100% reliable.
In our case I think the issue relates to views with nested custom views with their own constraints - or views that have conditionally updated constraints - but I haven't been able to replicate it yet in a simple project.

@grantjk We have the same nested custom views with own constraints. We also have other views that don't use AutoLayout and are not seeing this issue. We're in the middle of migrating to autolayout and those views using autolayout seem to fail.
Interestingly, if only the failing test is run, it passes. However if I run the whole test suites, it fails.

Anyone willing to contribute a failing test case?

I will see if I can whip something together in the next few days

On Jan 16, 2015, at 4:31 PM, Dustin Barker<EMAIL_ADDRESS>wrote:
Anyone willing to contribute a failing test case?
—
Reply to this email directly or view it on GitHub.

We have some similar issues and also suspect a timing issue. Our working workaround is adding the following lines to our basic XCTestCase subclass from which all our other test cases inherit.
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    NSDate *runUntil = [NSDate dateWithTimeIntervalSinceNow:1.0];
    [[NSRunLoop currentRunLoop] runUntilDate:runUntil];
});

We assume that some UIKit framework stuff isn't initialised when the tests start and waiting a little while gives the frameworks enough time to settle.

@dstnbrkr Here's an example showing renderAsLayer = YES and NO producing a much different layout.  We can't use renderAsLayer = NO in iOS8 because of the aforementioned empty views. We've resorted to just recording and running everything on iOS7
https://github.com/grantjk/SnapshotLayerFailingTestCase
Hope that helps

this is great. thanks!
On Thu, Jan 22, 2015 at 8:49 PM, jgapps<EMAIL_ADDRESS>wrote:

@dstnbrkr https://github.com/dstnbrkr Here's an example showing
renderAsLayer = YES and NO producing a much different layout. We can't use
renderAsLayer = NO in iOS8 because of the aforementioned empty views. We've
resorted to just recording and running everything on iOS7
https://github.com/grantjk/SnapshotLayerFailingTestCase
Hope that helps
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/ios-snapshot-test-case/issues/52#issuecomment-71147339
.

@jgapps That renderAsLayer=NO/iOS8 looks pretty similar to our case. Thanks for providing a reproducible test! Looking forward to the fix.

If I'm understanding right, @ashfurrow describes this case:
fails when renderAsLayer = NO (i.e. drawViewHierarchyInRect)
succeeds when renderAsLayer = YES
however, @grantjk's test case demonstrates the opposite:
succeeds when renderAsLayer = NO
fails when renderAsLayer = YES

Is it possible that we're seeing more than one problem? In my use, I always call beginAppearanceTransition() and endAppearanceTransition() on the view controller before snapshotting it to avoid incorrect states. Since @grantjk's example loads the view from a nib instead of a view controller (in a nib or otherwise), I don't know what an equivalent fix would be.

@ashfurrow In our test case, we instantiated a view directly without the view controller. Looks like I can't try out that beginAppearanceTransition() endAppearanceTransition(). Any suggestion?

@toddlee I wish I did – I've never had to snapshot views that are loaded from a nib. Usually they're programmatically constructed or belong to a view controller in a storyboard/xib.

@ashfurrow We construct all views programmatically too..
I'll try to create a test that reproduces our issue.

Tried @grantjk's test case. It doesn't show us a snapshot bug. It does illustrate the layout differences between with and without calling drawViewHierarchyInRect:afterScreenUpdates:.
I used chisel visualize to see that self.emptyView looks off center before FBSnapshotVerifyView is called. Calling drawViewHierarchyInRect:afterScreenUpdates: before FBSnapshotVerifyView fixes self.emptyView's layout regardless of the value of renderAsLayer.
My guess is that drawViewHierarchyInRect:afterScreenUpdates: places self.emptyView in a containing view which has some default constraints that affect self.emptyView's layout and correct it. Maybe some tweaks to self.emptyView's constraints would fix this. For renderAsLayer to work, self.emptyView would need to be laid out correctly before FBSnapshotVerifyView is called.

Removed drawViewHierarchyInRect:afterScreenUpdates:, as that was the culprit of the original reported issue. If the tangent issues still persist, please open a new issue.


Avoid SerDe for aggregation query with object pool

For https://github.com/apache/incubator-doris/pull/1610  "avoid serialize and deserialize from Scannode to Aggnode".
For aggregation query, we directly pass agg object from scan node to Agg node and avoid unnecessary serialize and deserialize.

@kangkaisen
I suddenly remembered that you need to modify HLL related functions in be/src/exprs/aggregate_functions.cpp. Otherwise, it will cause BE Crash during the upgrade process.

@kangkaisen
I suddenly remembered that you need to modify HLL related functions in be/src/exprs/aggregate_functions.cpp. Otherwise, it will cause BE Crash during the upgrade process.

Thanks for your reminder. update.


Negative Hours alias

Hello Robin, first of all, thank you for developing this insanely useful plugin.
I know this is an odd request, but I need an editor with the hh:mm alias but with support for negative  values (i.e -01:00). I've tried using regex but doing so, breaks the behaviour of the default datetime editor.
Is there any way you can help me achieve this?
Thank you so much.

@mydoom5 ,
Is this one sufficient?
Inputmask({
			regex: "^-?([01][0-9]|2[0-3]):[0-5][0-9]$"
}).mask(selector);

Thanks for the response @RobinHerbots  :)
I have tried something along those lines, but unfortunately it doesn't fully cover all my needs.
I need to have 0 as a placeholder for the numbers, but if I use '0' or '-00:00' as my placeholder, the value starts to break when I press backspace.
Another issue is that, if the value is previously filled, I need to delete a position in order to change the value of said position (i.e.: If I have 02:00 and want to write 01:00, I first need to delete the 2 and only then I'm able to enter 1). This doesn't happen with the default hh:mm alias.
Thank you.

I tried to use this but now my placeholder is wonky.
I have not yet figured out how to implement negative hours for my "Duration" field.


Fix sign in callback redirect and add request specs for this functionality

Description
This fixes a bug whereby non-OPSS users would be redirected to /cases after sign in, rather than the correct path which could be either the introduction slides or the root path (which is a different page with a link to /cases), depending on whether the user has previously viewed the slides.
The home page controller correctly manages this so we now redirect to this controller.
Also added request specs around all of the scenarios handled by the callback action. This functionality wasn't covered by any existing unit test.
Checklist:

[x] Automated checks are passing locally.
[ ] CHANGELOG updated if change is worth telling users about.

General testing

[ ] Test without javascript
[ ] Test on small screen

Accessibility testing

[ ] Works keyboard only
[ ] Tested with one screen reader
[ ] Zoom page to 400% - content still visible
[ ] Disable css - does content make sense and appear in a logical order?
[ ] Passes automated checker (automated in build or manual)

@slorek  can you pls spin up a review app?

@slorek can you pls spin up a review app?

@nasirkhanbeis this happens when the PR is being deployed

Review app deploy is broken for now, working on a fix.


openssl-qat-engine: update component versions

Signed-off-by: Mikko Ylinen<EMAIL_ADDRESS>

Codecov Report

Merging #1120 (a3f30d8) into main (d826548) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head a3f30d8 differs from pull request most recent head 326f102. Consider uploading reports for the commit 326f102 to get more accurate results

@@           Coverage Diff           @@
##             main    #1120   +/-   ##
=======================================
  Coverage   52.99%   52.99%
=======================================
  Files          40       40
  Lines        4357     4357
=======================================
  Hits         2309     2309
  Misses       1921     1921
  Partials      127      127

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


Add StoreEventDeserializer for kafka incoming deserialization

This is a additional patch for indy repo event model, so merged directly.