externref: implement stack map-based garbage collection

For host VM code, we use plain reference counting, where cloning increments the reference count, and dropping decrements it. We can avoid many of the on-stack increment/decrement operations that typically plague the performance of reference counting via Rust's ownership and borrowing system. Moving a VMExternRef avoids mutating its reference count, and borrowing it either avoids the reference count increment or delays it until if/when the VMExternRef is cloned.
When passing a VMExternRef into compiled Wasm code, we don't want to do reference count mutations for every compiled local.{get,set}, nor for every function call. Therefore, we use a variation of deferred reference counting, where we only mutate reference counts when storing VMExternRefs somewhere that outlives the activation: into a global or table. Simultaneously, we over-approximate the set of VMExternRefs that are inside Wasm function activations. Periodically, we walk the stack at GC safe points, and use stack map information to precisely identify the set of VMExternRefs inside Wasm activations. Then we take the difference between this precise set and our over-approximation, and decrement the reference count for each of the VMExternRefs that are in our over-approximation but not in the precise set. Finally, the over-approximation is replaced with the precise set.
The VMExternRefActivationsTable implements the over-approximized set of VMExternRefs referenced by Wasm activations. Calling a Wasm function and passing it a VMExternRef moves the VMExternRef into the table, and the compiled Wasm function logically "borrows" the VMExternRef from the table. Similarly, global.get and table.get operations clone the gotten
VMExternRef into the VMExternRefActivationsTable and then "borrow" the reference out of the table.
When a VMExternRef is returned to host code from a Wasm function, the host increments the reference count (because the reference is logically "borrowed" from the VMExternRefActivationsTable and the reference count from the table will be dropped at the next GC).
For more general information on deferred reference counting, see An Examination of Deferred Reference Counting and Cycle Detection by Quinane: https://openresearch-repository.anu.edu.au/bitstream/1885/42030/2/hon-thesis.pdf
cc #929
Fixes #1804
Depends on https://github.com/rust-lang/backtrace-rs/pull/341

Very exciting to see this! \o/
One question: does this have any implications for deterministic behavior? ISTM that as long as we don't have weak references anywhere in the system it probably doesn't, right?

One question: does this have any implications for deterministic behavior? ISTM that as long as we don't have weak references anywhere in the system it probably doesn't, right?

This has deterministic (albeit perhaps surprising if you don't know the implementation) behavior. We only GC when either the embedder calls Store::gc or when the VMExternRefActivationsTable is full (which happens after passing in N externrefs to Wasm).
FWIW. VMExternRef doesn't currently support weak references. Shouldn't be too hard to add if we find we need it. It wouldn't change the determinism of GC though.

Very nice! Before I dig too closely into the internal details I wanted to get a grasp of how this is all organized and such. The main thoughts I have is that this is adding a new registry and a lot of separate points where we pass around registries and such. I'm hoping we can perhaps unify all these with existing registries and such we have? Internally it feels better if we don't have an arc and rwlock per-thing that we need to keep track of.

I originally did add this to the existing global frame info, but after our discussions about not wanting implicit global context, I moved it out to its own registry.

One other thing I'm remembering now which I think would be good to happen here, I think this should include an implementation of WasmTy for ExternRef. We'll want to enable closures with Func that take ExternRef as arguments and such, and it'd be cool to see what the monomorphize logic looks like for functions that take a number of ExternRef or produce them.

Yeah, I have this on my TODO list for a follow up PR. Felt like this was big enough as is.

Finally I wanted to write some thoughts about the GC aspect. It feels a bit weird to me that we're using reference counting but still have to have explicit GC points. To make sure I understand, GC only happens right now automatically when you call into a function, right? Or are there other auto-inserted points that GC happens? At a minimum I think we need to make sure that all long-running code is eventually GC'd, so I think both entry and exit needs GC'ing (calling into a host and returning back to wasm may already do the GC, I likely missed it!).
I wanted to dig a bit more into the decision though to use deferred reference counting rather than explicit. Is it possible to somewhat easily get performance number comparisons? For example do we have a handle on what we predict the overhead will be? I'd imagine there are possible optimizations where local.get/local.set don't do reference counting but calling a function does.

Regarding when GC happens see my reply to Till: https://github.com/bytecodealliance/wasmtime/pull/1832#issuecomment-640756824
For long-running Wasm, in the absence of explicit Store::gc calls, GC will happen as the VMExternRefActivationsTable fills up. I don't think it makes sense to GC on entry/exit from every single host<-->wasm function boundary, because it will be too expensive for simple getter/setter host functions that you expect to generally be fast. It might makes sense for the embedder to call Store::gc after the "main" call into Wasm (e.g. after servicing an HTTP request, but not after each wasm -> host call to read an HTTP header; however in this case there should be zero Wasm frames on the stack, so we could provide an unsafe method to just clear the VMExternRefActivationsTable rather than even bothering to walk the stack and do the GC).
Regarding the decision to go with deferred reference counting, let's look at the alternative: we would have to do explicit reference count increments and decrements for references inside Wasm frames, rather than deferring them. First, to get this working at all, this would require extending cranelift-wasm to add ref count increments every time we pushed a reference onto the spec-defined Wasm execution stack (e.g. every local.get), and ref count decrements every time it is popped off the Wasm execution stack (e.g. every local.set). But doing this many reference counting operations is the thing kills reference counting's throughput. So to alleviate that we could either do deferred reference counting, or we could add a static analysis to cranelift-wasm that sums the ref count increments and decrements in a basic block and does only the final effect once (hand waving a bit, would need to think about this a bit more). Then, if coalescing ref count operations within a basic block isn't enough, this static analysis could perhaps further be generalized across basic blocks (really hand waving now).
Note that we can't only do reference counting at function call boundaries because we need to handle the case where a Wasm function takes a reference and drops it. We need to decrement the reference count at the drop site, which is what instrumenting the spec stack pops does.
So that is a bunch of infrastructural work on Cranelift to get something that will perform worse but at least works, followed by more work to start moving towards fewer ref count operations (but never getting as few as deferred reference counting: zero, albeit with occasional stack walking pauses).
On the other hand, we already have stack maps produced by Cranelift, which are the necessary bits required for implementing deferred reference counting. We don't need to build any Cranelift infrastructure and Wasmtime's integration, just the latter. However, yes, this does come with occasional stack-walking pauses and reliance on libunwind or some other way of walking the stack (but also we already require it for unwinding host functions after traps).
So that was basically the calculus: an easier path to getting a better implementation (or at least an easier path to getting a good implementation, if we are comparing against the hypothetical best version of the ref counting coalescing static analysis).
Unfortunately, I don't have benchmarks or performance numbers. It would be hard to get this information without implementing both approaches. And it is hard to know how many reference counting operations we could coalesce with the hypothetical static analysis. But I don't really have any doubt that naively doing all the increments and decrements for on-stack references would be quite slow: this is Well Known(tm) in the memory management world.

This has deterministic (albeit perhaps surprising if you don't know the implementation) behavior.

Great, thank you for the explanation!
One additional question: will it be possible to use the same infrastructure for stack tracing once we start implementing one of the GC proposals? Seems like that should be the case, but I might well be missing something.

One additional question: will it be possible to use the same infrastructure for stack tracing once we start implementing one of the GC proposals? Seems like that should be the case, but I might well be missing something.

Yep, doing that should be a lot easier after this lands.

I assume we can capture the context at the wasm-to-host transition and use unw_init_local to initialize the unwind cursor at that context. We could then step the cursor until we encounter a non-wasm frame.

Yes, we could do this. Adding an out-of-line function call (unw_getcontext) to every wasm->host transition isn't great though. (On arm, it is actually a macro of some inline assembly, but since Rust doesn't have inline assembly, we would probably wrap that in a C function that we call anways...)
AFAICT, there is no blessed way of re-initializing an existing unw_context_t from just a PC and SP, which is all that should really be required for stack walking in principle. On both x86-64 and arm, unw_context_t is just a define of a ucontext_t, so maybe we could just poke the ucontext_t's register values directly...

Agreed, if we go with such a design, I would want to limit the context capturing only to host functions not defined by Wasmtime (and perhaps only via the C API, where there is a chance of another JIT runtime being used).  Perhaps it could even be something embedders opt-in to.
The bottom line is that we shouldn't have to pay the cost for capturing context when calling into Wasmtime's WASI implementation especially, as we are guaranteed to be able to unwind through those frames for both libunwind and Windows.

All that said, I'm comfortable with landing a stack-walking-based GC before we fix the issue that currently only affects .NET hosts.

Maybe there is some way for the .NET implementation to insert a frame whose unwind info doesn't do normal unwinding, but sets the sp to the value before entering the .NET JITtes code, such that all .NET JITted code is skipped. Or has a special personality function that invokes the .NET unwinder and then sets the register state as the .NET unwinder gives back when unwinding past the JITted code.

All that said, I'm comfortable with landing a stack-walking-based GC before we fix the issue that currently only affects .NET hosts (the .NET API doesn't support reference types yet anyway).

While I think that might be fine to do, I'm actually quite glad we have this embedding and thus caught this issue.
What's more, even if we find a workaround specifically for .NET, I think it might make sense to take a closer look at whether we can then have sufficient confidence in our ability to make this approach work in all cases that might become relevant. I.e., would landing this begin painting ourselves into a corner that's increasingly hard to get out of at some later time when we realize we need to?

@fitzgen

I'm not sure what you're talking about here. What explicit code generation? What code generation do we do at all that isn't handled by Cranelift?

Oh by "explicit code generation" I mean "the thing that isn't deferred reference counting".

So overall I feel like my thinking above is still somewhat attractive. That scheme is where on a call to Store::gc it doesn't actually do anything if we're missing some blessed marker on the stack (or some other mechanism to detect that our stack trace is likely incomplete).
The downside of that is that runtimes like .NET will GC less, but that seems like it's not really that much of an issue given that our "GC" here is very small. The GC'd aspect is you gave a value to wasm and then it became unreachable during the execution of wasm. If we don't eagerly clean those up it doesn't seem like it's the end of the world, especially because we'll want to eventually fix this.
I think that explicit reference counting is a defunkt strategy given our unwinding strategy. I don't really see how implementing unwinding correctly with explicit reference counting is going to be any less hazardous or any less work than this already was. If that's taken as an assumption then the final appearance of this feature will be exactly this PR except with more changes to the gc function and codegen (to manage JitActivation entries and such). @fitzgen brings up a good point though that the backtrace crate will likely no longer be what we use.
Personally I see a few directions to go from here:

Land this PR, work afterwards to fix .NET
Don't land this PR, fix .NET, then land this PR. (e.g. JitActivation or similar)
Switch this PR to explicit reference counting.

I don't think (3) is feasible and I think 1/2 are pretty close. I think it might be good to sketch out in more detail how JitActivation could work though.

Personally I see a few directions to go from here

I find this convincing, and support (1), given that @peterhuene also voiced support for it.

Ok so we talked about this in today's wasmtime meeting. The conclusion we came to was to implement a canary stack frame in this PR for now, so we can detect situations where libunwind cannot walk the full stack, and then we can skip GC rather than get potential unsoundness. But long term, we want to do the precise JitActivation approach (it would allow other additional benefits, such as getting wasm stack traces for .net traps, which aren't currently available).
Thanks everyone for the discussion and design input!

@alexcrichton ok, I've implemented the stack canary and rebased, so this should be ready for another round of review.
We will probably want a new release of backtrace before we merge this (or at least we'll need one before we publish again after merging this).

Wow that was fast!
I'll take a look tomorrow!

Apart from the inline comments the only other thing I'd say is that I think it'd be good to look into not having two registrations per module (GlobalFrameInfoRegistration and StackMapRegistration) and trying to lump that all into one (also deduplicating the BTreeMap lookups and such)

Ah, I just remembered why it has to be this way: the GlobalFrameInfo is in the wasmtime crate, but we need the stack map stuff inside the wasmtime-runtime crate, so it can't be added as part of GlobalFrameInfo. The split between wasmtime and wasmtime-runtime crates is a bit annoying...

I had to cfg(target_arch = "x86_64") the reference types-related tests because Cranelift doesn't support safepoints/stack maps for any other targets (notably aarch64).

Confused why the aarch64 CI job is running the reference types tests despite them being ignored if !cfg!(target_arch = "x86_64"). Feel like I must be missing some simple typo or something like that, but I just don't see it...

Gah, its because the build.rs is being compiled for x64.


Add Subresource Integrity support for ModuleFederation

Feature request

What is the expected behavior?
I am working in a large enterprise org, and we are using ModuleFederation for our MicroFrontEnds implementation.
I would like to have the ability to use SRI (via plugin or some flag in the ModFed settings)
What is motivation or use case for adding/changing the behavior?
The dynamic loading of JS code is an opening for supply chain attack, this concern was raised by our security team and we need some mechanism to ensure the integrity of the loaded JS.
How should this be implemented in your opinion?
the createElement in LoadScriptRuntimeModule.js should be modified to enable adding the "integrity=[contentHash]" attribute, and it should be flaggable in the config.
if there's a better way i would like to hear about it (there is no documentation online about SRI and ModFed)
Are you willing to work on this yourself?
yes, but I would need some help in order to "do no harm"

Anyway you can do it using plugin

how? the SubResource integrity plugin doesn't work with federated modules as far as I can see...

Where should we get the integrity from?
The idea with module federation is that the remote script can change independent from the consuming script. So it can't be passed via config. It need to be provided at runtime.
I would recommend to opt-out of automatic remote script loading and let your server compose a html with remote script tags including integrity.

The chunk integrity can be hardcoded in the remote-entry.js file, for the top level, there are several options depending on what you are implementing, if there is a declaration of the remotes, you can include the integrity hash in that definition, if it is more dynamic than that (as it is in our case as well),
the top level integrity should be coming from the same code that knows which concrete module you will be consuming (in our app we resolve a tree of modules with semver queries into concrete versions, that can have a hash associated with each).
in summary: in the more dynamic cases, you should leave the top level open to receive the integrity from outside.

I am in the same boat as you @amitbet : big corporation with need for both module federation and SRI. Did you figure out a way? I’m wondering if we could simply limit SRI to app level, and ignore it for chunks coming from the remotes? We are using the webpack-subresource-integrity plugin but it doesn’t seem to being able to let us bypass some chunks - it’s all or nothing…

I just stumbled upon this, and I have a hypothetical solution.
https://webpack.js.org/concepts/module-federation/#promise-based-dynamic-remotes
using this guide you could resolve the url from some sort of rest-api (json/http) which responds with the latest file-name and it's hash. The script would then create the

Any updates on this?

bump

+1 to this

bump

+1

+1

hi, I made a temporary package @sowtame/webpack-subresource-integrity, supports wmf.
it's created from this pr

This wasn't actually resolved, was it? That's just the stale bot closing the issue?

It is a plugin side, there is a PR https://github.com/waysact/webpack-subresource-integrity/pull/220


Automated cherry pick of #5116: Use k8s 1.27.2 and containerd for e2e

Cherry pick of #5116 on release-1.11.
#5116: Use k8s 1.27.2 and containerd for e2e
For details on the cherry pick process, see the cherry pick requests page.

/test-flexible-ipam-e2e

/test-flexible-ipam-e2e

@tnqn  the new test is passed, could you merge this one? thanks.

/skip-all


Thor Internal Search Does Not Show Images

This page is what is returned when no results are found. It should show images, as it does in production.

No search results (production):

@namimody This should be resolved now. The site needed a Drupal Cron run (which there is another ticket for) to actually populate the search functionality. This is fixed now. Please confirm with your login.

@namimody Actually, search is fixed. Pictures are still an issue. Addressing that.

@namimody Pictures showing up now. They reference www.ds.com for some reason, but they're showing up. I'll work to update the proper references with @blisteringherb laster.

@sheydari-ds I've reindex all of the items, and now the image URLs are using thor.ds.org. Not sure why they were using www before. The url for the cron job may need adjusting.

@sergii-tkachenko Confirmed via Morgan and using Safari that the setup was correct, we just saw browser caching :angry:

@namimody This is resolved.

Confirming this works in Chrome with cmd+r.

Hey @sergii-tkachenko and @sheydari-ds  -- I just cleared cache and am still seeing this?

Tested on staging:


Limit query words number

This pr adds a limit to the number of words taken into account in a search query. Using query string that are too long leads to huge performance hits and ressources consumtion, that occasionally crashes the machine. The limit has been hard set to 10, and tests have been added to make sure that it is taken into account.
close #941

@react-learner what are the relevant part of the documentation I should update?

@react-learner what are the relevant part of the documentation I should update?

I understand 10 is a safe bet. Can we anticipate this hard limit be raised in the future? I worried that 10 might be too short for my use cases.

I understand 10 is a safe bet. Can we anticipate this hard limit be raised in the future? I worried that 10 might be too short for my use cases.

Yes why not, we could make it an option in the future, this would require a bit more thinking though.
Can you tell me more about your use case? How many words would you need?

Yes why not, we could make it an option in the future, this would require a bit more thinking though.
Can you tell me more about your use case? How many words would you need?

Yes why not, we could make it an option in the future, this would require a bit more thinking though.
Can you tell me more about your use case? How many words would you need?

I initially thought u meant 10 letters. (I need sleeeeep)
Oppsie, I'll come back to you when I have more to share.

Yes why not, we could make it an option in the future, this would require a bit more thinking though.
Can you tell me more about your use case? How many words would you need?

I initially thought u meant 10 letters. (I need sleeeeep)
Oppsie, I'll come back to you when I have more to share.

bors merge

bors merge

Thank you so much! Was hitting this very issue. After updating to the latest version, the issue was resolved. Great work!


45 day retention in Synapse Pipelines vs ADF

This page is hosted under the Synapse Pipelines section.
Yet the page linked from it, https://learn.microsoft.com/en-us/azure/data-factory/monitor-using-azure-monitor, is marked as only being applicable to ADF.
Can you please clarify this aspect and update the page(s) as appropriate? It seems the statements made are mutually exclusive and thus only one of the 2 pages can be correct.

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

ID: 69b0b608-35fd-8fd9-c036-1c8e82ea7f4e
Version Independent ID: 847ccb05-e062-0811-ea0f-08985d40ee08
Content: Monitor pipeline runs using Synapse Studio - Azure Synapse Analytics
Content Source: articles/synapse-analytics/monitoring/how-to-monitor-pipeline-runs.md
Service: synapse-analytics
Sub-service: monitoring
GitHub Login: @matt1883
Microsoft Alias: mahi

@VitalyMCT
Thanks for your feedback! We will investigate and update as appropriate.

@VitalyMCT
I've delegated this to @matt1883 , a content author, to review and share their valuable insights.

Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. We are closing this issue for now, but if you feel that it's still a concern, please respond and let us know. If you determine another possible update to our documentation, please don't hesitate to reach out again. #please-close


docker: fixed compose dev environment

Signed-off-by: Miquel Sabaté Solà<EMAIL_ADDRESS>

This fixes the situation for the original reporter original reporter. Since it's a simple fix, I'm merging this myself. This file will be updated hopefully by this week too, when I provide more examples on how to deploy a containerized version of Portus 😀


Don't choose first controller if no matching StimulusReflex-enabled controller was found

Type of PR
Bug Fix
Description
This pull request solves an edge-case for scenarios when StimulusReflex tries to detect the right controller to use for performing the StimulusReflex __perform controller action for executing reflexes.
For example, if an element had a data-controller and a data-reflex attribute, and the controller in data-controller was a StimulusReflex-enabled controller, but didn't match the Reflex specified in the data-reflex there were some cases where it wouldn't add the default stimulus-reflex controller to the element, but would still reference the stimulus-reflex controller in the data-action attribute. This basically lead to a no-op for the reflex action.
Like:
Example#doSomething"
>

was expanded to this in some cases:
Example#doSomething"
+ data-action="click->stimulus-reflex#__perform"
>

Whereas it should have been:
Example#doSomething"
+ data-action="click->stimulus-reflex#__perform"
>

With this, the data-action is not referencing an undefined Stimulus controller anymore and the reflex should execute again.
Why should this be added
For consitancy reasons, so that the declarative reflex syntax still continues to make sense and work as expected.
Maybe this is even fixing @Laykou's issue in #659 which I couldn't reproduce.
Thanks to @foliosus for helping to debug this!
Checklist

[x] My code follows the style guidelines of this project
[x] Checks (StandardRB & Prettier-Standard) are passing

@marcoroth Shouldn't it be expanding into data-action="click->some-sr-controller#__perform"?

@Laykou it could, but I feel like it's weird if it "leaks" the lifecycle callbacks into a controller which potentially is not related to the reflex itself.
Maybe maybe it should?
The issue could also be resolved if we do this instead, yeah:
Example#doSomething"
>

was expanded to this in some cases:
Example#doSomething"
+ data-action="click->some-sr-controller#__perform"
>

How would this work then? https://docs.stimulusreflex.com/guide/lifecycle.html#callback-methods
having

  Eat

I believe it must expand to

  example#__perform">Eat

in order to calll callbacks in example_controller.js, right?
import ApplicationController from './application_controller.js'

export default class extends ApplicationController {
  beforeReflex(anchorElement) {
    const { reflex } = anchorElement.dataset
    if (reflex.match(/masticate$/)) anchorElement.innerText = 'Eating...'
    if (reflex.match(/defecate$/)) anchorElement.innerText = 'Pooping...'
  }
}

Otherwise how would this beforeReflex from example_controlller.js be called if it expands only to generic data-action="click->stimulus-reflex#__perform" ?

Yeah, this is currently how it works. It will also look on any ancestor to find a matching StimulusReflex-enabled controller.

  Example#masticate" data-action="click->example#__perform">Eat

Only if the reflex specified in data-reflex doesn't match a StimulusReflex-enabled controller it will add the stimulus-reflex controller.

Just for the record - this PR also solved a case in which i had a stimulus_reflex button with plain stimulus controller attached to it and thanks to that fact - adding stimulus-reflex actions were not triggered because stimulus-reflex controller was not being attached to the element alongside with the original controller.

@marcoroth May I get back to this - is it possible to override the default stimulus-reflex e.g. when I want to use my-custom-base-stimulus-reflex controller instead?
I'd like to setup som default beforeReflex and afterReflex actions (like always adding spinner, if element is a button, etc...) and it would help a lot to be able to define this globally


compile command generates build target directories case-sensitively

Although targets k64f and K64F are effectively the same, typing the targets in different cases causes new build target folder to be created and thus causes the recompilation of the whole project. Same applies to toolchain directory under the target directory.

Closed #530 as there are non-uppercase targets also.

@theotherjimmy, sorry didn't fully catch what you meant with the Mbed OS tools. I'm not familiar with the relation of mbed-cli with Mbed OS tools.
Was the idea that the platform name would be verified before compilation, but not touched in the mbed-cli phase?

I'm not familiar with the relation of mbed-cli with Mbed OS tools.

Simple Explanation:
mbed CLI:

target detection
Source control
Running tests
mbed OS tools:
Compiling
Exporting
Building tests

Was the idea that the platform name would be verified before compilation, but not touched in the mbed-cli phase?

Actually, I was recommending that you just uppercase them without concern. The mbed OS tools will figure out what to build if you use the wrong case, so rely on that.

Thanks for that task split explanation.
About the uppercasing, wasn't that what the original PR was doing, just uppercasing without concern? Or is it that it was on the wrong place and should be at Mbed OS tools.

For anyone that would like to help out: I think that upcasing the directory names would be a path forward here. I don't currently have time, and I would like to see this changed.

This is now available in Mbed CLI 1.7.3


[jib-cli-jar] Implement 'packaged' mode for standard jar.

Option to containerize a jar as it is.

Closed with #2888


Generating summary fits file and using it in timeseries

Within qqa summary, in addition to generating the summary.json, it will also generate a qa-n{night}.fits file, which is structured like qa-{expid}.fits, but vertically stacked over all exposures within that night.
Also, now when calling timeseries, rather than calling each qa-{expid}.fits, it will just read qa-n{night}.fits if it exists. The qa-n{night}.fits files also seems useful when plotting thresholds, or other applications that will aggregate exposure data over many nights.
Followup to issue #37.

Looks like it generates an aggregated summary json file for me, no issues


Task - Filter CO - batch add repository - confirmation message

As a confirmation message I get "0 determinations were updated", it should check how many repositories were updated. The repositories were correctly assigned.

It's already fixed, but not in production yet.


RGB 24-bit colour support not working in tmux 2.7

I recently updated my tmux from 2.6 to 2.7 and suddenly this tmux configuration failed. After checking for bug I found out that setting tmux_conf_theme_24b_colour=false solved the issue.
It worked fine with tmux_conf_theme_24b_colour=true in tmux 2.6.
 # RGB 24-bit colour support (tmux >= 2.2), possible values are:
 #  - true
 #  - false (default)
 tmux_conf_theme_24b_colour=false

Hey @AniketSanghi 👋
Works for me 🤷♂ on macOS and iTerm2.
Outside of tmux I have TERM set to xterm-256color. Then I set tmux_conf_theme_24b_colour=true in my ~/.tmux.conf.local copy. Inside tmux, TERM is screen-256color.

That being said, tmux CHANGES file states:

Use RGB terminfo(5) capability to detect RGB colour terminals (the existing
Tc extension remains unchanged).

Hi @gpakosz 👋
I again checked it and now it worked fine even with true. Now, I am in a dilemma of what happened back then. Seems like my System really need some working. Thanks for helping :)

Closing.
Here's the 24-bit-color.sh script for reference: https://github.com/gnachman/iTerm2/blob/master/tests/24-bit-color.sh


Check multiple locations to download spells

This provides the ability to pull from multiple locations for spells
Signed-off-by: Adam Stokes<EMAIL_ADDRESS>

only minor comments. 👍  to merge with or without any changes. up to you


'bower install' downloads outdated files

When installing JSONForms via bower install jsonforms I end up with outdated files (the date in the copyright header is 2015-06-29).
Is this on purpose since the latest changes have not been officially 'released' yet or is this some kind of Bower registry caching issue?

You are right the latest changes are not released yet. Bower uses the git tags of the repository to distribute the files. Our latest tag is from 2015-06-09 so everything works as intended ;)
We will release a new version later today!

Great! Thanks for the quick reply and sorry for the confusion ;)


Support manylinux_x_y in --python-platform

See: https://github.com/astral-sh/uv/pull/4965.
This is a bit tricky because we still want great output in the --help menu and JSON schema, but it will no longer be static and I don't think we can use ValueEnum or other derives.

I think this was fixed per 7925d255f7de18cc0e658955a71f9f50bee6b32d ?

That added support for manylinux_2_31 but not arbitrary manylinux_x_y.

Would you accept a PR that adds enumerations for the manylinux policies in this table just like what was done in #4965?
I understand it is not the general support for manylinux_x_y that this issue is about, but if you're okay with it, I'd be happy to make a PR.

Here it is: #9234

Closed by https://github.com/astral-sh/uv/pull/9234.


New package: NetworkInterfaces v0.1.0

Registering package: NetworkInterfaces
Repository: https://github.com/JuliaParallel/NetworkInterfaces.jl
Created by: @JBlaschke
Version: v0.1.0
Commit: 5e5c21752944d51a6630eecae40fe83957980b94
Git reference: HEAD
Description: Extensions to Julia's LibUV to help with working with multiple NICs per node

[noblock]
Hi there, congrats on the new contribution!
Coming from graph theory, I'm just mildly concerned that users may think this package has something to do with network analysis or graph structures. Would there be a way to make the name more explicit?

[noblock]
I'm seeing CI errors which I don't understand. In case someone know what I can do to fix this, please let me know.
@gdalle I see! This package provides functions to interact with network interface controllers via libuv. It's the networking side of the work I'm currently doing for Hwloc.jl. So I don't know what else to call it.
That said, I'm not the most creative, so if someone has a suggestion for a better name, please let me know.

[noblock]

This package provides functions to interact with network interface controllers via libuv. It's the networking side of the work I'm currently doing for Hwloc.jl. So I don't know what else to call it.

I don't know anything about this domain, but what about NetworkInterfaceControllers.jl or NetworkInterfacesLibUV.jl?

[noblock]

I don't know anything about this domain, but what about NetworkInterfaceControllers.jl or NetworkInterfacesLibUV.jl?

@gdalle  I am partial of NetworkInterfaceControllers.jl -- should I create a fresh registration request and close this PR? Or is there a way to rename these?

I think you can close this PR, rename the package and re register, it will create a new one

Got it -- new PR here https://github.com/JuliaRegistries/General/pull/88149
Closing this RP

HA! So used to being able to close PRs -- @gdalle requesting that this RP be closed.


Long tab names styling

Hello,
Am trying to find if there is a way add ellipsis to the long label names.
Currently the names get wrapped to a second line, which doesnt looks good.

Any ideas how can i get them to nowrap ?

You can return your own Text component where you can add ellipsizeMode to. With renderLabel in the TabBarTop component. For instance:
            <TabBarTop
                {...props}
                renderLabel={this.renderLabel}
            />

    renderLabel = () => {
        return (
            <Text
                style={styles.label}
                numberOfLines={1}
                ellipsizeMode='tail'
            >
               This is a long text you see
            </Text>
        );
    };

This has worked for me.

If you need to hide a part of the name of the tab, you should probably think of a shorter name. It's more difficult to recognize the tab for the user if you don't show the full name.
Material design guidelines also advise against it: https://material.io/guidelines/components/tabs.html#tabs-usage

I have same issue. I think we need have property for width auto text. The default width will same as each tab. Admin should update this function in our library:
_getTabWidth = props => {
    const { layout, navigationState, tabStyle } = props;
    const flattened = StyleSheet.flatten(tabStyle);

    if (flattened) {
      switch (typeof flattened.width) {
        case 'number':
          return flattened.width;
        case 'string':
          if (flattened.width.endsWith('%')) {
            const width = parseFloat(flattened.width);
            if (Number.isFinite(width)) {
              return layout.width * (width / 100);
            }
          }
      }
    }

    if (props.scrollEnabled) {
      return (layout.width / 5) * 2;
    }

    return layout.width / navigationState.routes.length;
  };

An api option for this component to simulate a whitespace: 'no wrap' feature as exists in web should be available for this component. I would be happy to submit a pull request.

Hey, I just released a new alpha 2.0.0-alpha.0 of the library. It's rewritten using react-native-gesture-handler and react-native-reanimated addresses a many platform specific bugs and performance problems. The documentation is updated as well.
Please try the new version and see if it addresses your issue. If not, please open a new issue following the issue template.


Laguerre quadrature

Any plans on adding code for computing Gauss–Laguerre quadrature points and weights?

I do not know a reliable fast O(n) algorithm for Gauss--Laguerre quadrature.  Do you?

Would it be more accurate to say: "the algorithm could be adapted to Laguerre quadrature, but we don't know the necessary data to  implement it"?
Sent from my iPhone

On Oct 12, 2015, at 4:21 PM, Alex Townsend<EMAIL_ADDRESS>wrote:
I do not know a reliable fast O(n) algorithm for Gauss--Laguerre quadrature. Do you?
—
Reply to this email directly or view it on GitHub.

Yes, that is more accurate.  The fast Gauss quadrature code is based on two things:

Relatively accuracy initial guesses,
Very accurate asymptotic expansions for Laguerre polynomials,
A Newton iteration.

I believe that 1) is known in the literature. But, I am not aware of good enough asymptotic expansions for Laguerre polynomial to fill the shoes for 2). Newton iteration in 3) is fine.

I don't know anything about the algorithms you use. What do you mean with asymptotic expansions in point 2?

12 okt. 2015 kl. 21:33 skrev Alex Townsend<EMAIL_ADDRESS>Yes, that is more accurate. The fast Gauss quadrature code is based on two things:
Relatively accuracy initial guesses,
Very accurate asymptotic expansions for Laguerre polynomials,
A Newton iteration.
I believe that 1) is known in the literature. But, I am not aware of good enough asymptotic expansions for Laguerre polynomial to fill the shoes for 2). Newton iteration in 3) is fine.
—
Reply to this email directly or view it on GitHub.

The algorithms (expect for GaussLegendre) require a fast evaluation scheme for the associated orthogonal polynomial.   For example, Gauss-Jacobi for point 2 can be http://dlmf.nist.gov/18.15#E6.  This means that a Jacobi polynomial can be evaluated much faster than using the three-term recurrence.
For the complete algorithmic details, see http://epubs.siam.org/doi/pdf/10.1137/120889873.
For Laguerre, see http://dlmf.nist.gov/18.15#iv.   But I am not sure if we know enough terms in the asymptotic expansions to make this a viable fast evaluation scheme.

I see in reference 5 in the readme, 2nd paragraph of the conclusions section that "Presumably, extensions of these ideas can be made to the Laguerre weights".
Does the statement "Again, we expect the asymptotic expansion to be useful in
the classical case of V (x) = −x..." essentially mean that they need more terms in the asymptotic expansion?
This is a topic I have been curious about myself since summer 2015 but do not have the mathematical knowledge to understand what is going on.

Yes, I believe that asymptotic expansions for Laguerre polynomials are not sufficiently mature.
I have a summer student (starting in June 2016) that may work on exactly this. So, I am hoping for significant progress very soon.

Just connected the dots that you are on that paper!
Literally could not have asked a better person, wow.
I look forward to hearing of the progress.

Yes, two of the authors from that paper happen to be replying to this tread. :+1:  Meanwhile, if you have any significant ideas then I would be glad to discuss. At the moment it may not even be that hard as we have not invested that much time into the Laguerre case.
I see that you are in the Department of Nuclear Engineering so I am very interested to hear what you are using Gauss quadrature for.

I stand corrected, I did not know at the time that I had come to the resource for quadratures, not that I'm complaining.
There are several uses I (and the Nuclear Engineering community) have for various quadratures.

In my master's work, I used quadratures to calculate "semi-analytic" solutions of thermal radiative transfer (used Gauss Legendre).
Quadrature sets for the solid angle discretization in the discrete ordinates formulation of the linear Boltzmann transport equation (neutron transport).

A usual choice is for a Gauss-Legendre quadrature in the polar angle and a Gauss-Chebyshev quadrature in the azimuthal angle.
Other quadratures are under active research such as adaptive quadrature methods, but my knowledge on that area is limited.

In my current research, I need to compute photo-ionization rates in a plasma, those integrals are perfectly suited for Gauss-Leguerre quadratures. In a given simulation, there could potentially be billions of these integrals to be done. There are some adaptive methods we are looking at, but I think this could be a better solution, especially if we are no longer constrained by having to precompute and store the quadrature set(s).

Thanks for the details @dholladay00.  I hope to have a gausslaguerre code soon.

I added a gausslaguerre command that is O(n), using the Glaser-Lui-Rokhlin algorithm.  It does not use asymptotic expansions.
This is a first implementation and there is room for efficiency improvements.


In-App purchases break

This breaks in-app purchases and those apps crash when opened. Reinstalling the app makes it open the app but restoring in-app purchases stuck and then app start crashing. Tested by uninstalling and reinstalling the tweak. iPhone  6s, 13.5.1, chekra1n jailbreak, app crashed Focos.

Okay. noted. I have made a new issue that fits this description as well as others that have been reported


Backtick issues in various files

There are some small issues that need to be fixed in the following files:
https://github.com/freeCodeCamp/freeCodeCamp/blob/efe1b655a0ee7038dc631b3b37f1782550794968/curriculum/challenges/english/25-front-end-development/workshop-hotel-feedback-form/66a97ca8c4cbae7d0bb6e0ad.md?plain=1#L10
option text => `option` text
https://github.com/freeCodeCamp/freeCodeCamp/blob/efe1b655a0ee7038dc631b3b37f1782550794968/curriculum/challenges/english/25-front-end-development/workshop-hotel-feedback-form/66a962954f4e0d76223b37ed.md?plain=1#L14
for attribute => `for` attribute
https://github.com/freeCodeCamp/freeCodeCamp/blob/efe1b655a0ee7038dc631b3b37f1782550794968/curriculum/challenges/english/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md?plain=1#L9
inline `elements` => `inline` elements
https://github.com/freeCodeCamp/freeCodeCamp/blob/efe1b655a0ee7038dc631b3b37f1782550794968/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6672e579cc11472272ab23e6.md?plain=1#L17
`"Check your code"` button => "Check your code" button
https://github.com/freeCodeCamp/freeCodeCamp/blob/efe1b655a0ee7038dc631b3b37f1782550794968/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md?plain=1#L10
`String` => String

This looks like something that can be fixed by "first-time" code contributors to this repository. The files you should look at to work on a fix are those linked above.
Please make sure you read our guidelines for contributing, we prioritize contributors following the instructions in our guides. Join us in our chat room or our forum if you need help contributing; our moderators will guide you through this.
Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first.
Happy contributing.

Hi @ilenia-magoni, I'd like to work on this issue.
Thanks

Hey @itsjatinnagar
We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue.
Issues labelled with help wanted or first timers only are open for contributions.
Please make sure you read our guidelines for contributing. We prioritize contributors following the instructions in our guide. Join us in our chat room or the forum if you need help contributing - our community will be happy to assist you.


Fix #211: Allow other primary keys than id for infer_schema

Implement detection of primary keys
Print an error if there is a composite primary key
If there is only one primary key, use this one

@weiznich Is this ready to go?

Yes

Thank you for working on this!


Fix ipmi reboot

+1

+1 for the second commit, but I do not understand why the random part is needed

@aplanas it is a workaround for the crowbar locking issues. Currently all 7 nodes are coming up within 2s from each other and hammer the crowbar server and then it falls apart due to the transaction lockups.


ArgumentOutOfRangeException in Microsoft.Windows.EventTracing.Power.ProcessorFrequencyObjectContext.GetAverageFrequency

Some ETW Data does lead to exceptions while retrieving CPU frequency:
 ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
   at System.SZArrayHelper.get_Item[T](Int32 index)
   at Microsoft.Windows.EventTracing.Power.ProcessorFrequencyObjectContext.GetAverageFrequency(ProcessorFrequencyIntervalFlyweight flyweight)
   at ETWAnalyzer.Extractors.CPU.CpuFrequencyExtractor.Extract(ITraceProcessor processor, ETWExtract results) in D:\a\ETWAnalyzer\ETWAnalyzer\ETWAnalyzer\Extractors\CPU\CpuFrequencyExtractor.cs:line 32
   at ETWAnalyzer.Extractors.ExtractSingleFile.Execute(OutDir outputDirectory, Boolean haveToDeleteTemp) in D:\a\ETWAnalyzer\ETWAnalyzer\ETWAnalyzer\Extractors\ExtractSingleFile.cs:line 211

Fixed with 98a5f800505f4cd4838a976be2850911c7f0e086


Bosun function tail

There are a good amount of changes here so I will break them down here.

Added new NewSortableSeries function. This allows you to convert a series into a sortable series but it doesn't do the sorting for you. This is useful if you want to use the comparison operators and hold onto state but you don't care about it being ordered from the onset.

Added new Tail function to builtins. This function uses a very basic quickSelect to find the latest data points and returns just the final k data points. I will be adding additional documentation for this in the next commit. If there are less data points in the series than requested for by tail the series is left untouched.

New unit test for the tail function and the quickSelect function are now part of the funcs_test.go

New quickSelect function is available for anything implementing sort.Interface A few things here. Im not sure if we want to just eat the log(n) and just use sort.Sort() from the std lib. Im also not sure if we want to move these kinds of helpers out of the funcs.go to someplace else and not sure if there is an outside lib we would rather use.

Use cases for tail are inspired by tail_avg that you see in the skyline project https://github.com/etsy/skyline/blob/master/src/analyzer/algorithms.py Having the tail function will allow us to use some of the other bosun machinery to do math on a known length set of the most recent data points. Increasing the tail length will make the metrics more resilient to changes while shortening it will make it more sensitive. This will be helpful for situations where metrics are pushed by external systems and you cannot make guarantees about when metrics will arrive and at what density.

@captncraig Any opinion on the sort? My vote is to keep the standard sort, but if you think differently I defer to you

Unless we have a convincing benchmark why this is significantly better in a realistic case, I would rather not add our own sort function.

Yeah that is totally reasonable. There are probably smarter ways to pick the pivot there anyway and Id feel better going with stdlib. Updating this now. Thanks for feedback

@kylebrandt @captncraig knocked out some of those things you requested. This allows you to pass int numberSets now and we are using the built in sort functions for now. All of the cruft is ripped out and tests are updated.
I think we should add some documentation for that match function as it take a little to read through what that thing is doing. Maybe in another pull later on.

Not sure what is up with those failing tests. Happy to make changes but local seems to checkout.

@CheRuisiBesares Failing because you need a gofmt funcs.go

Ah sorry my go is rusty. Thanks for the help.


[HowStuffWorks] Unable to extract clip info

[x] I've verified and I assure that I'm running youtube-dl 2016.08.28

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

$ y -v 'http://adventure.howstuffworks.com/5266-cool-jobs-iditarod-musher-video.htm'
[debug] System config: []
[debug] User config: ['-4', '-f', 'best', '--prefer-free-formats', '--no-cache-dir', '--no-mtime', '--youtube-skip-dash-manifest']
[debug] Command-line args: ['-v', 'http://adventure.howstuffworks.com/5266-cool-jobs-iditarod-musher-video.htm']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.08.28
[debug] Python version 3.6.0a4 - Linux-4.7.0-rc7-686-i686-with-debian-stretch-sid
[debug] exe versions: ffmpeg 3.1.3, ffprobe 3.1.3, rtmpdump 2.4
[debug] Proxy map: {}
[HowStuffWorks] cool-jobs-iditarod-musher: Downloading webpage
ERROR: Unable to extract clip info; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/youtube_dl/YoutubeDL.py", line 691, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python3.6/dist-packages/youtube_dl/extractor/common.py", line 347, in extract
    return self._real_extract(url)
  File "/usr/local/lib/python3.6/dist-packages/youtube_dl/extractor/howstuffworks.py", line 61, in _real_extract
    r'(?s)var clip = ({.*?});', webpage, 'clip info')
  File "/usr/local/lib/python3.6/dist-packages/youtube_dl/extractor/common.py", line 650, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract clip info; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

http://adventure.howstuffworks.com/5266-cool-jobs-iditarod-musher-video.htm

redirects to: http://www.howstuffworks.com.


A more POLA to_s on Collection

As announced in #1385, this PR change the default to_s on collections.
Before: [1, 2, 3].to_s == "123"
After: [1, 2, 3].to_s == "[1,2,3]"
The main issue is for code that used to_s on array to get a fast concatenation.
Those should now use plain_to_s (or join("")).
Close #off-line issue signaled by @ablondin
Note: this PR fails on bootstrap (to_s is used internally) thus requires that c_src is regenerated.

+1

+1

:shipit:

reroll: six typo + add nitunits to plain_to_s

rebase with new master to solve conflicts


add development network seperation in network selector

Segregates production and development networks in the network selector in different categories:

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


Updated docs for End Event form

10.2 will feature a refreshed UI for the End Event form

 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.Alisa Pakshaeva 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.


processed data lack of coordinates coordinates.pt

I download the Yingrenshi's processed data and find it lack of coordinates.pt and mappings.txt. So geometry field could not trianed.
Could you please add them?

Thanks for pointing out. I will check it later.


MQTT Publisher

We should be able to deliver VSS data to a MQTT broker for further processing by northbound apps.
I.e. a path such as `Vehicle.OBD.Speed' shall be published to /prefix/Vehicle/OBD/Speed
To do so we need to get config parameters for MQTT Server, Port, unsername, PW. We also need a config file specifying which paths to push (an alternative mode should allow pushing ALL data, but this may not be always feasible if there are many high-
datarate signals). Pushing ALL data is useful for feeding a local MQTT, pushing only a select view signals is useful for driectly connecting kuksa.val to a cloud MQTT broker without any intermediate processing app.
MQTT library should be  some Eclipse Paho derivative for license reasons. this should be part of the kuksa.val server and not an external program

Optional

Add a command&control channel, so during runtime you configure which data points are sent or net (publish/unpublish)
Also allow kuksa.val to subscribe MQTT (enabling a MQTT feeder)

Closed by #17


Documentation/basic

Q
A

Documented?
yes

License
MIT

Introducing the docs

Coverage remained the same at 100.0% when pulling d35c64da30fd6170a79107ef1acc515e50803907 on renatomefi:documentation/basic into 2e673f32c52a1c665c84c98188a63d70665e922c on overblog:master.


Current model

Several options, not mutually exclusive:

Interpolate harmonic predictions
Machine learning with harmonic and Navier-Stokes heuristics
Negotiation with Saildrone or Tidetech (contacts attempted; negotiations didn't get anywhere)

https://currents.bask.org/t/noaa-forecast-guidance-data/595

Tracking performance work:
https://github.com/flutter/flutter/issues/113381#issuecomment-1494954460: -6 ms (~500 ms)
https://github.com/flutter/flutter/issues/41731 for asset images: -250ms (~250 ms)

Sadly the remaining 250 ms seems to come from the native maps library, which, I don't even know if that's open source.

It may be possible to cheat by turning the arrows into a single polyline with a transparent alternating pattern, as it doesn't seem to have as much trouble with a single large polyline.

Looks like the API isn't flexible enough to allow that yet. While we could try to implement the v3 API in the Flutter plugin, factors are mounting in favor of just migrating to https://pub.dev/packages/flutter_map. It's not like we're using the Google base map at this time anyway.

Looks like we can bring it down to 30-100 ms for updates by updating only the locations, but that's still not quite jank free. We're also seeing some frame tear. Still leaning towards flutter_map.

flutter_map may not wrap over the 180 meridian, so it might not be so great for an expedition across the Bering Strait.

Here's the trace with caps themselves also being cached:

Still not performant enough for animation, and still a lot of expensive serialization going on in GMS.
(Currently largely punting on Android performance and focusing on web service to enable web view, with plans to migrate to flutter_map for performant rendering.)

And here's the performance gain from migrating to flutter_map.
https://user-images.githubusercontent.com/13222934/233232389-cc29df3b-27c3-4114-aa35-c76f40d940cd.mp4
This isn't a pure apples-to-apples comparison because we're using a custom paint widget here rather than polylines, but to have done something like this in google_maps_flutter we'd at the very least have had to turn this into a tile overlay, which would run us against https://github.com/flutter/flutter/issues/116132. While on web we'd (probably) end up rendering into HTML5 canvases due to our hack, on Android we'd still end up having to toByteData, which while not on the main thread would still likely fall short of our target frame time, though it's hard to say for sure without having tried it.

And here it is on Android:
https://user-images.githubusercontent.com/13222934/234726024-d6fa500b-b436-4767-90de-b897f5d9e0de.mp4
Also, we got a response back from NOAA. There don't seem to be any quotas or licensing terms to worry about.


Synthesis failed for java-core

Hello! Autosynth couldn't regenerate java-core. :broken_heart:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to branch 'autosynth'
Running synthtool
['/tmpfs/src/git/autosynth/env/bin/python3', '-m', 'synthtool', 'synth.py', '--']
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
On branch autosynth
nothing to commit, working tree clean
HEAD detached at FETCH_HEAD
nothing to commit, working tree clean
synthtool > Wrote metadata to synth.metadata.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/tmpfs/src/git/autosynth/working_repo/synth.py", line 22, in <module>
    templates = common_templates.java_library()
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/gcp/common.py", line 75, in java_library
    return self._generic_library("java_library", **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/gcp/common.py", line 43, in _generic_library
    if not kwargs["metadata"]["samples"]:
KeyError: 'samples'

Synthesis failed

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


clippy-lints

Fix all kinds of clippy lints, again
Upgrade lazy-static
Add IDEA config to repo
Check in the Cargo.lock file (we're a cmdline binary)

bors r+


Android - Room - Enter key saves the room description instead of entering the next line

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.15-4
Reproducible in staging?: Y
Reproducible in production?: N
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:
Precondition:

Device keyboard must be Samsung keyboard.
This issue is not reproducible with Gboard.

Launch New Expensify app.
Go to any room.
Tap on the room header.
Tap on Room description.
Enter some text.
Tap Enter on the keyboard.

Expected Result:
Enter key will enter the next line (production behavior with Samsung keyboard).
Actual Result:
Enter key saves the room description instead of entering the next line.
This issue is only reproducible on Samsung keyboard and not Gboard.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/889f5630-c9e5-4558-8b17-7efa9a00f98e

View all open jobs on GitHub

We think this issue might be related to the #vip-vsb

Production
https://github.com/user-attachments/assets/bb16b222-91f4-490f-bef8-04e40d815094

Proposal
Please re-state the problem that we are trying to solve in this issue.
Enter key saves the room description instead of entering the next line
What is the root cause of that problem?
Missing disablePressOnEnter in FormProvider to disable saving on Enter key press.
What changes do you think we should make in order to solve the problem?
Add disablePressOnEnter in FormProvider to disable saving on Enter key press.
// src/pages/RoomDescriptionPage.tsx#L76

              <FormProvider
                    style={[styles.flexGrow1, styles.ph5]}
                    formID={ONYXKEYS.FORMS.REPORT_DESCRIPTION_FORM}
                    onSubmit={submitForm}
                    submitButtonText={translate('common.save')}
                    enabledWhenOffline
+                   disablePressOnEnter
                >

POC
https://github.com/user-attachments/assets/3a77e29a-2598-45fd-bf20-d37973e30ef1

Demoting from blocker as it happens on samsung keyboards only. Commented on the suspicious PR. I think this should be handled as a regression

Thank you for looking. If you don't mind, I'll assign you to this issue as a C+

Thank you @nyomanjyotisa! I have assigned you to the issue

Sounds good, thanks all for the help!


Support dynamic choices

Actual Situation
I'd like to ask for some choices (my case aws-regions) and in the second step I want that the user selects the primary region from the previously specified region.
Sadly the choices field is not evaluated as expression
Desired Situation
What happens right now:
the String is destructed as an array and I can chose a letter from my expression
What should happen:
The user should have a way how to dynamicly specify the choices
Proposed solution
I'd like that this works:
list_input:
  type: str
  help: "Enter a comma-separated list of items."
  default: "item1,item2,item3"

selected_choice:
  type: str
  help: "Select one of the items from your list."
  choices: "{{ list_input.split(',') | map('trim') | list }}"

The request for dynamic choices has come up a few times. We have a design proposal that looks promising. Would you happen to be interested in attempting an implementation?

the design proposal is coincidentially the same as my proposal :D
I most likely won't find the time the next months, however if nobody has attempted a PR I'll look into it

the design proposal is coincidentially the same as my proposal :D

Ah, yes, of course, I had a Jinja for-loop with explicit YAML list syntax in mind, but you're right. :+1:

I've submitted a PR that adds support for dynamic choices: #1804


Is 5900HX iGPU is supported by ROCm now ?

hi , as the title, i have brought a board which 5900 HX cpu,  i am looking to install an Ubuntu 20.04, and use ROCm to predict some PyTorch pretrainned mode (using TorchServe)
any idea ?

It is a gfx90c iGPU, not officially supported. But there is a hack, just run like this.
`
$ HSA_OVERRIDE_GFX_VERSION=9.0.0 python3

import torch
torch.cuda.is_available()
True

`

thanks a lot , i will make a try and post the result here , thanks again :)

@xfyucg Did it work?

Hi @timiil, please check latest ROCm Documentation and ROCm 6.0.0 to see if your query has been resolved.  If resolved, please close the ticket.  Thanks.

Hi @timiil, any luck with using xfyucg's work-around?  Thanks.
$ HSA_OVERRIDE_GFX_VERSION=9.0.0 python3

import torch
torch.cuda.is_available()
True

Closing this ticket as no response from @timiil.  Please re-open if you are not able to work-around the issue.  Thanks.


Verrrrrry rough draft of trie walking for results :)

julia> cursor = output(r)
ResultsCursor with <TODO> tuples in 5 physical relations:
":output" =>
        ":x" =>
        ":y" =>
           100 =>
        ":a" =>
           1 =>
           2 =>
           3 =>
             "hi" =>
        ":b" =>
           "hi" =>
              ":c" =>
                 2 =>
                 3 =>
                 4 =>
                 ⋮

julia> cursor[":output"]
ResultsCursor with <TODO> tuples in 5 physical relations:
":x" =>
":y" =>
   100 =>
":a" =>
   1 =>
   2 =>
   3 =>
     "hi" =>
":b" =>
   "hi" =>
      ":c" =>
         2 =>
         3 =>
         4 =>
         5 =>
         ⋮

julia> cursor[":output"][":a"]
ResultsCursor with <TODO> tuples in 2 physical relations:
1 =>
2 =>
3 =>
  "hi" =>

julia> cursor[":output"][":a"][2]
ResultsCursor with <TODO> tuples in 1 physical relations:

julia> cursor[":output"][":a"][4]
ResultsCursor with <TODO> tuples in 0 physical relations:

julia> cursor[":output"][":a"][3]
ResultsCursor with <TODO> tuples in 1 physical relations:
"hi" =>

Obviously very rough draft, missing the tuples counts, and looks
terrible, but more or less captures the idea! :)
For comparison:
julia> collect(tuples(cursor))
19-element Vector{Tuple}:
 (:output, :a, 1)
 (:output, :a, 2)
 (:output, :a, 3, "hi")
 (:output, :b, "hi", :c, 2)
 (:output, :b, "hi", :c, 3)
 (:output, :b, "hi", :c, 4)
 (:output, :b, "hi", :c, 5)
 (:output, :b, "hi", :c, 6)
 (:output, :b, "hi", :c, 7)
 (:output, :b, "hi", :c, 8)
 (:output, :b, "hi", :c, 9)
 (:output, :b, "hi", :c, 10)
 (:output, :b, "hi", :c, 11)
 (:output, :b, "hi", :c, 12)
 (:output, :b, "hi", :c, 13)
 (:output, :b, "hi", :c, 14)
 (:output, :b, "hi", :c, 15)
 (:output, :x)
 (:output, :y, 100)

Filter relations(::Cursor) to only the matching relations

julia> relations(cursor[":output"][":a"])
2-element Vector{PhysicalRelation}:
 PhysicalRelation([":output", ":a", "Int64"], TuplesIterator(Tuple[(:output, :a, 1), (:output, :a, 2)]))
 PhysicalRelation([":output", ":a", "Int64", "String"], TuplesIterator(Tuple[(:output, :a, 3, "hi")]))

julia> tuples(cursor[":output"][":a"])
TuplesIterator with 3 tuples:
  (:output, :a, 1)
  (:output, :a, 2)
  (:output, :a, 3, "hi")

filter tuples(::Cursor) to only the tuple suffixes

julia> tuples(cursor[":output"][":y"])
TuplesIterator with 1 tuples:
  (100,)

julia> tuples(cursor[":output"][":x"])
TuplesIterator with 1 tuples:
  ()

julia> tuples(cursor[":output"][":a"])
TuplesIterator with 3 tuples:
  (1,)
  (2,)
  (3, "hi")

julia> tuples(cursor[":output"][":a"][3])
TuplesIterator with 1 tuples:
  ("hi",)

Add tuples(::Vector{PhysicalRelation})
julia> cursor[":output"][":a"]
ResultsCursor with <TODO> tuples in 2 physical relations:
1 =>
2 =>
3 =>
  "hi" =>

julia> tuples(cursor[":output"][":a"])
TuplesIterator with 3 tuples:
  (1,)
  (2,)
  (3, "hi")

julia> relations(cursor[":output"][":a"])
2-element Vector{PhysicalRelation}:
 PhysicalRelation([":output", ":a", "Int64"], TuplesIterator(Tuple[(:output, :a, 1), (:output, :a, 2)]))
 PhysicalRelation([":output", ":a", "Int64", "String"], TuplesIterator(Tuple[(:output, :a, 3, "hi")]))

julia> tuples(relations(cursor[":output"][":a"]))
TuplesIterator with 3 tuples:
  (:output, :a, 1)
  (:output, :a, 2)
  (:output, :a, 3, "hi")

Merged now even though still rough, so that we can play with it easily. :)


Prerender Self hosted Service failing intermittently

Hi,
I am using angularjs based website with nginx as the server and without node js.
I have used the nginx settings as mentioned here: https://gist.github.com/thoop/8165802
I have configured a two server approach:

Website is running on a server: www.mywebsite.com. Running on SSL port 443
Prerender is running on another server: www.myprerenderservice.com. Running on port 80

The prerender service is running with PM2 as the process manager
In google crawler, I have used ?escaped_fragment= as well
The google crawler is sometimes able to return the results, while sometimes not. If it fails, I just tried killing the Prerender PM2 service and start it again and clear memory on server and then try it again. It starts working again for once. But it fails again. Don't know what is happening. Can somebody help?

Guys,
Thank you for the continued support. Would appreciate if I could get a quick response. This is a production issue for us and requires little urgency.
Truly appreciate the help,
Manik Mittal

Feel free to send your logs to<EMAIL_ADDRESS>if that's easier. We'll take a look.

Thanks a lot Todd,
I was able to resolve the issue. Yes, looking at the logs helped.
So for the sake of community, I am adding the issue details and resolution.
I have two front-end servers take them as www.mywebsite.com and www.mywebsite2.com. On both the servers, Prerender is enabled in nginx. On the basis of some business logic, the app is redirecting the requests from 1 server to another.
So, what happened is the request flows like this:

Request comes to www.mywebsite1.com from google crawler
It gets redirected to www.myprerenderservice.com
Which internally makes a call to www.mywebsite1.com
Which redirectes to www.mywebsite2.com
As the prerender is enabled there as well, it redirects to www.myprerenderservice.com

In this whole loop, the request gets time out (i guess) and failed.

the fix is did is to stop the redirection in step 3 if the call is with user-agent="Prerender"

Make sure you are doing a proxy request to your prerender server and not a redirect. If you do a redirect, that's signaling Google that you want your users to be sent to your prerender server which is very bad. Proxying the request to your prerender server to return to the crawler will return the HTML through your website and it the correct way to set that up.

Thankyou Todd for the continued support,
Yes, I am following your config mentioned here: https://gist.github.com/thoop/8165802


Branch final dg

No diagrams yet

Codecov Report

Merging #255 (5a55edf) into master (57ae904) will not change coverage.
The diff coverage is n/a.

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


SLMGAN based discriminators

Hi! Have you tried SLMGAN based discriminators as described in this paper:
https://arxiv.org/abs/2307.09435
If not, what do you think of this approach? This can be an addition to using HiFTNet vocoder during pre-training of SVC system.

I have not try SLMGAN based discriminators. Maybe it requires more computing resources, but it is really a good approach.


Add installation rake task

It should append Polaris ViewComponents JS to app/javascript/controllers/index.js:
//...

import "polaris-view-components"
registerPolarisControllers(application)

Closed via https://github.com/baoagency/polaris_view_components/pull/120


Show root folder name in tabs when same file name is opened in different group

If I have two files with the same name from different root folders open, the root folder is displayed in the tab in grey, as well (there was an issue for this, but didn't found it):

Viewing one of this files on the side, the root folders are not displayed but should as well:

cc #28344

This actually is https://github.com/Microsoft/vscode/issues/13350


Example

Can you give a photo to test?

I have the same question. Could you please kindly upload an image from dokicam camera?

I think this one was directly from my dokicam

this looks like the output.. after projection.. Do you have the original fisheye image?


3.4.0

@rvdb is your PR working fine?

Hi @arturluizbr, apologies, my PR was a mistake; I hadn't noticed I was about to issue a PR to your repo. I was trying to update the OJS version to 3.4.0, which works fine. But I don't think you'll need all the unrelated fuss, so I tried to withdraw by closing it.


Blazor call webAPI enhancements

Fixes #15687
Fixes #15843
Fixes #15555

Call out the package requirement in a Package section.
Clarify further via a NOTE in the introduction and remark the Package section that these JSON helpers are for Blazor WebAssembly apps at this time.
Cross-link the hosting models to the Hosting model topic.
Make sample app cross-link text specify the BlazorWebAssemblySample specifically (but don't link directly to it to future-proof the doc for upcoming major releases).
Remove property dict for WebAssemblyHttpMessageHandler.FetchArgs per https://github.com/aspnet/AspNetCore.Docs/issues/15555#issuecomment-558241640 and latest version of the HttpRequestsComponent.

Thanks @sarathlalsaseendran and @BattlefieldHou.

@danroth27 It required significant changes to resolve the delta between WebAssembly and Server. Best for you to :eye: the last commit.
Note that I searched for adding an HttpClient in the docs (services.AddScoped<HttpClient>()), and I can't find a spot to cross-link where we actually show that. We seem to be pushing devs in the direction of the factory approach described in Make HTTP requests using IHttpClientFactory in ASP.NET Core. Options seem to be ......

Leave what I have on the last commit in place. They can research that out if they want.
Work out an example here for devs who don't want to use the factory approach.
Remove the bit on registering the HttpClient and only describe the factory approach with the cross-link our HTTP Requests topic.


Define config protobuf message type

This is a build configuration option and can vary for different binaries. We should add the tick frequency to the protobuf message so that we can obtain timing information correctly and other fields related to the ChibiOS configuration.
tentative config schema
enum EnumSetupType {
    SIMULATOR = 0;
    STEERBYWIRE = 1;
}

enum EnumProjectType {
    UNSPECIFIED = 0;
    FLIMNAP_AREND = 1;
    FLIMNAP_KINEMATIC = 2;
    FLIMNAP_WHIPPLE = 3;
    FLIMNAP_ZERO_INPUT = 4;
}

message pbConfig {
    required EnumSetupType setup = 0;
    required EnumProjectType project = 1;
    required FirmwareVersion gitsha1 = 2;
    required bool build_ndebug = 3;
    required bool ch_st_resolution_32 = 4; // 16-bit if false
    required uint32 ch_st_frequency = 5;
    required uint32 ch_rtc_frequency = 6;
    optional uint32 heartbeat_period = 7; // to be used for two-way communication?
}

Or you could scale timing information.

Right now we record:
timestamp - units of system ticks (10 kHz in current master f2c686b, but I want to increase it to 100 kHz in PR #152)
computation time - units of realtime counter ticks (168 MHz)
transmission time - units of realtime counter ticks (168 MHz)
We could scale to microseconds and transmit. The issue that I can think of is if we reduce the size of the unsigned int use to store/transmit timing information from uint32_t to uint16_t or uint8_t, we'd have to be careful about overflow.
With uint32_t the timestamp will overflow in 4.97 days at 10 kHz and 11.9 hours at 100 kHz.

The way I see it now there are three options:

leave as is, read clock frequencies from .h files

:+1: simple
:-1: fields do not have a consistent unit

scale to a unit that works for all possible clock frequencies

:+1: fields have a consistent unit
:-1:  chosen scaling might not work well if the clock frequency changes to a non-anticipated value

transmit the counter frequencies

:+1: values can be expressed in consistent unit
:-1: lots of duplication in the output
:-1: mimicking what the exponent in a float does for you

leave as is, read clock frequencies from .h files

One issue that could arise is if we use different clock frequencies in different headers/projects, we would need to know which is the right frequency when decoding.

transmit the counter frequencies

I think we could just send the clock frequency once in the first message

scale to a unit that works for all possible clock frequencies

Floats are precise up to 6 significant digits (23 bits give steps of ).
Usually relative timestamps can be represented by a float but an absolute timestamp cannot. The value must be < 2^23 to prevent loss of precision.

I think we could just send the clock frequency once in the first message

If we can send a few extra bytes per message to make each message individually interpret-able we should.

We already do this (dependent messages) for model stuff since we would be
retransmitting a lot of data that doesn't change with each message.
On Mar 23, 2017 12:55, "Mick van Gelderen"<EMAIL_ADDRESS>wrote:

scale to a unit that works for all possible clock frequencies

Floats are precise up to 6 significant digits (23 bits give steps of [image:
2^{-23} \approx 1.19\cdot10^{-7}]
https://camo.githubusercontent.com/6f1545b90841c60597ff1a8c45f08eada0b96aa9/68747470733a2f2f6c617465782e636f6465636f67732e636f6d2f6769662e6c617465783f322535452537422d3233253744253230253543617070726f78253230312e313925354363646f7431302535452537422d37253744
).
Usually relative timestamps can be represented by a float but an absolute
timestamp cannot. The value must be < 2^23 to prevent loss of precision.
I think we could just send the clock frequency once in the first message
If we can send a few extra bytes per message to make each message
individually interpret-able we should.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/oliverlee/phobos/issues/153#issuecomment-288695733,
or mute
the thread
https://github.com/notifications/unsubscribe-auth/AC0-J7e57Xo0aiADCeycwozWNmW_Cu1aks5rol2WgaJpZM4MZd_f
.

I think we need to fully define the protobuf message types, specifically the "configuration type", and the corresponding fields.
This is related to https://github.com/oliverlee/phobos/issues/181

I'm also in favor of dropping the Message suffix and replacing it with a pb prefix until namespaces are supported.

Just thought of something. We should include a session number because that might come in handy.

Let's try to switch to proto3 when implementing this and two-way communication, but fall back to proto2 if it doesn't work.


All WPF-UI templates stopped working

Describe the bug
Upgraded WPFUI extension/nuget package to 3.0.3 (i get the same problem with 3.0.2 also, so it might be something on my pc) on Visual Studio 2022 17.9.5 (Visual Studio Installer 3.9.2164.57262) and all 3 WPF-UI sample templates, stopped working.
Every time i try to run/debug them, it exists with this message:
The program '[8676] (SOLUTIONNAME).exe' has exited with code<PHONE_NUMBER> (0x80131506).
To Reproduce
Upgrade WPFUI extension/nuget package to latest version 3.0.3
Expected behavior
A working WPFUI Sample project.
Screenshots
WINDOWS:

VISUALSTUDIO:

VISUAL STUDIO INSTALLER:

EXTENSION:

NUGET:

SOLUTIONS;

ERROR:

OS version
Windows 10 Pro 22H2 24/03/2024 19045.4239
Windows Feature Experience Pack 1000.19055.1000.0
.NET version
CORE 8
WPF-UI NuGet version
3.0.3
Additional context
Clean Windows Instalation.
Clean Visual Studio Instalation.
No other nuget packages/extensions installed, just WPF-UI.

You're not alone, I fix one issue and 10 more issues arise. At this point, I'll start over from scratch.
I wish I had time to contribute to this project...

Not sure your up for it, but i totally moved to using https://github.com/CommunityToolkit/Windows instead of WPF-UI.
It has everything i needed, but you will need to migrate from WPF to one of these two:
CommunityToolkit.Uwp.* for UWP + WinUI 2 or Uno.UI
CommunityToolkit.WinUI.* for Windows App SDK + WinUI 3 or Uno.WinUI

Thanks for the idea. I definitely am moving to this one. Despite giving another chance to wpf-ui, even the demo and documentation contradict themselves, thus leading to more frustration.
Which one of those two are you migration ? why?
Which one is straight forward like WPF-UI, just build and share the .exe, no package installation required.
Do they have some sample or template project for starting ?
thanks


feat: recommend and support Bun

Description
Bun was recently released and it claims to be a faster alternative to node and npm. It also includes a test suite that might be worth considering.
This issue aims to ask if there are plans to migrate the samples to use Bun or if there are plans to recommend using Bun. If so, the issue may be used to track the progress of the such plans.
Further context

Bun
Bun 1.0 blog announcement
Bun 1.0 video announcement
https://github.com/oven-sh/bun/pull/4543

You can use whatever tools you want to build your extension but we try to keep these samples simple and fairly generic


Fixed nullability annotation for static code analysis tools

Fixes - https://github.com/Microsoft/thrifty/issues/162.
There are 2 changes:

The nullability check for the field is moved from Builder's build method to constructor since we are enforcing nullness on object's field.
Current code:

    @Override
    public Email build() {
      if (this.From == null) {
        throw new IllegalStateException("Required field 'From' is missing");
      }
      if (this.Attachments == null) {
        throw new IllegalStateException("Required field 'Attachments' is missing");
      }
      return new Email(this);
    }

Proposed code:
  private Arbit(Builder builder) {
    if (builder.From == null) {
      throw new IllegalStateException("Required field 'From' is missing");
    }
    this.From = builder.From;
    this.To = builder.To == null ? null : Collections.unmodifiableList(builder.To);
    this.CC = builder.CC == null ? null : Collections.unmodifiableList(builder.CC);
    this.BCC = builder.BCC == null ? null : Collections.unmodifiableList(builder.BCC);
    this.Subject = builder.Subject;
    this.Body = builder.Body;
  }

Nullable annotations for all the fields in builder and non-null/null checks on parameters. This is optional but can increase safety at compile time. IDE flags nullness check redundant.

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

Codecov Report

Merging #164 into master will decrease coverage by 0.07%.
The diff coverage is 61.53%.

@@             Coverage Diff              @@
##             master     #164      +/-   ##
============================================
- Coverage     66.09%   66.02%   -0.08%
+ Complexity     1011     1010       -1
============================================
  Files            90       90
  Lines          5271     5277       +6
  Branches        612      615       +3
============================================
  Hits           3484     3484
- Misses         1526     1529       +3
- Partials        261      264       +3

Impacted Files
Coverage Δ
Complexity Δ

...om/microsoft/thrifty/gen/ThriftyCodeGenerator.java
64.01% <61.53%> (-0.46%)
68 <0> (ø)

...in/java/com/microsoft/thrifty/schema/Location.java
73.17% <0%> (-2.44%)
14% <0%> (-1%)

Continue to review full report at Codecov.

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

Thanks, and nice work!
I'll merge this one, but in the future I'd prefer if we kept unrelated changes in separate PRs - makes reviewing much easier.


Playback issue?

It would seem as though audio playback ceases and then starts from the beginning. It does this over and over only getting to about 7 seconds in.
An example of this can be found at https://soundbytez.io/@FeralLogic:e/FeralLogic0x0001

Hello @kcseb

This probably is because your file are too large (~55mb);
What are the current player flow ?

This project are just the front-end
Project purpose: back-end less (magics just in front-end hahaha)

Start player
Download 7 ~ 10 seconds of music (this is about bits and kb downloaded) with one request
Clone the response to read stream body and close her (the original request stay downloading)
When the audio context time are close of the end => read the finished original request and play full song

Now, what is probably the problem ?

The request are not finished when the player try read him again to load full song

How Spotify handle his musics ?

The back-end sends just fragments of full song in every request

Try with small file size... (maybe max 20mb), I already have an idea to solve this issue, but i'm very busy now and in the next days, I'll back to this project in one or two weeks;
I hope these explanation can answer your question / trouble;
If not, please, reply and let me know.

I gave this a try wth a much smaller audio file. Ths is no more than 5MB in size.
https://soundbytez.io/@SoundBytez:8/soundbytez-test-recording
However, the issue still persists. The React Player plays a second or two then loops. It refuses to play the full audio stream, however, the in-built HTML audio player will play the entire audio stream just fine.
The same thing occurs with my previous example of a much longer stream. The in-built HTML audio player handles both files fine.

Thank you @kcseb for the report and show the error;

@kcseb just a little feedback, i'm so busy now, but i'll take a look in this issue when i back code into player project okay.

@kcseb can you give-me a feedback plase ? I'm back now...

No feedback received.


Upgrade uglifier to version 4.0.2

Libraries.io has found that there is a newer version of uglifier that this project depends on.
More info: https://libraries.io/rubygems/uglifier/4.0.2

According to Gemfile.lock, this has been addressed.


Scan query gracefully closing connections which results in partial data read from datasource

We are running Druid 0.19.1.
The scenario arises when we fire a Scan query to read all rows for a given day (typically around 1mill records, takes around 10-15 min to complete) from the datasource.
We observe that if there are N records for that given day, sometimes it will read <N records and throws no errors/timeouts resulting in a mismatch of data. We believe Druid is closing the connection gracefully. Is there a definite way to find out the same? We have set a very high query timeout on all of our components as well (around 60min).

Bit of a context, I work with @bharadwajrembar and we are experiencing this issue in Production.
We pull all the rows falling for a given time range (typically a day) via ScanQuery with array as response format.
What we have noticed is the connection closes before all the rows for a given day are fetched and since this is "graceful" no exception is thrown while parsing the response and we experience inconsistent data pull.
We have noticed the above behaviour for a datasource which has about 200 columns and data in tune of 3 million rows for a given day (we have 365 days worth of data), for our other less heavy datasources it's not an issue
To validate our hypothesis I wrote below two scripts, one of them counts the number of rows scanned from the datasource and then compares it against the total number of rows present obtained via count(1)

# Driver script
#!/bin/bash

for (( i=1; i<=$N; i++ ))
do
   #echo $i
    nohup sh -c "time ./sql.sh" > log_$i.log &
done

sleep 3
tail -f log_*.log | grep Consumed

# Executes query agains datasource and counts the number of rows returned and compares it against number of rows actually present
#!/bin/bash

LINES=$(curl --location --request POST 'druid-router.io/druid/v2/sql' \
--header 'Content-Type: application/json' \
--data-raw '
{
    "query": "select  col1, col2, col3, col4, col200   from    \"large-datasource\" where  __time in (?)",
    "resultFormat": "arrayLines",
    "header": "false",
    "parameters":
    [
        {
            "type": "TIMESTAMP",
            "value": "2021-05-01"
        }
    ]
}' | wc -l)

EXPECTED_LINES=$(curl --location --request POST 'druid-router.io/druid/v2/sql' \
--header 'Content-Type: application/json' \
--data-raw '
{
    "query": "select  count(1) from    \"large-datasource\" where __time in (?)",
    "resultFormat": "arrayLines",
    "header": "false",
    "parameters":
    [
        {
            "type": "TIMESTAMP",
            "value": "2021-05-01"
        }
    ]
}' | tail -n 2)

echo "Consumed [$LINES] rows  out of [$EXPECTED_LINES] rows for time range 2021-05-01"

Below is the output of the above script
nohup: redirecting stderr to stdout
nohup: redirecting stderr to stdout
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01

========

Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
**Consumed [3435173] rows  out of [[3696999]] rows for time range 2021-05-01**
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
**Consumed [3435173] rows  out of [[3696999]] rows for time range 2021-05-01**
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
**Consumed [3435173] rows  out of [[3696999]] rows for time range 2021-05-01**
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01
Consumed [3697000] rows  out of [[3696999]] rows for time range 2021-05-01

As you can see from the above we receive less number of rows then present via ScanQuery and since Druid terminates the connection gracefully, we have no way of knowing if we were able to read all the rows.
We have checked our logs and tweaked all timeout parameters but the root cause of this issue remains elusive.


Hardcode test input based on the output of the SGX application (DO NOT MERGE)

Can we close this too @pbeza ?

Yes, let's close it. 👍🏼


Add no_std feature?

I think the generated code can easily be #![no_std]. We only need std to impl std::error::Error for rinja::Error. We need alloc for a few filters. Both use cases can the feature-gated. Then I think, we can add the features ↓ and be useful to a marginally wider audience.
default = […, "std"]
std = ["alloc"]
alloc = []

What do you think?

Hum... Do you know any project where it could be useful? Because unless there is one, I'm not sure if it's worth it (even though it'd likely be a very small amount of code). I'm not against it, just not convinced.

No, spontaneously I cannot come up with a use cases. Probably there isn't one. I guess there won't be many IoT device developers who need a template engine. :)

Who knows? World is a surprising place.

We only need std to impl std::error::Error for rinja::Error.

Just in case you decide to have a MSRV 1.81: https://github.com/rust-lang/rust/issues/103765


Please fix for FlameCord

Please fix for FlameCord (BungeeCord protection from Netty) FlameCord disconnects the player from the server in another way, which causes MoveMeNow to falsely move the player to the lobby who has already left the server.
https://github.com/2lstudios-mc/FlameCord/releases

This plugin is more-or-less abandonned, as I don't play or work on minecraft anymore. If you submit a PR, I will gladly merge it and publish a new release though.

what is PR?

A Pull Request.

The problem has already been solved. It turned out that your plugin checks the reason even for those who left the server. I want to thank you for your answers and for a nice plugin.
Also recommended that you use serverconnectedevent.
But this is no longer necessary

The problem is still there.
Can you see what they changed in the plugin? It is open source
https://github.com/2lstudios-mc/FlameCord

The connection to the server was lost and the problem went away.
list:

"Lost connection to server-"

There are no problems in this mode.
mode: whitelist


Internal error on delete

Hello,
When I delete one parent comment and after that trying to delete it's child comment, i got a js alert popup, what says only: "Internal Server error".
I know that I not must to delete a childs of a deleted parent, but I can, because there won't hide after parents deletion.
Maybe it would enough to disable/hide the delete link of the child coments.
in the debug-bar I see only this message: "Model not updated due to validation error."
Anyway, great module, thanks for that!

Ok I see now, what causes a problem. On save of the CommentModel, the validation checks the parentId. (validateParentId()) and because the parent is deleted already, it stops the saving of the childs model.


adjusting hr and adding drivers license

new config + slight changes to hr and readme

changes made based on your feedback

fixed typo


Example thoroughly broken

I'm trying to run the example code provided, but it seems to be outdated and broken. It relies on files that don't exist, including swipecards.js. And when I try to fix the code and run it, I still get an empty cards array for some reason. Not sure how to fix this, or I would have updated it and submitted a pull request myself.

Agreed.  The example needs some love.  Until someone has time to fix it, maybe take a look at this example:  https://github.com/trendicity/trendicity

Thanks @keithdmoore for the quick response. I have very little experience with Angular, so that example is quite overwhelming in its complexity, hard to see where in the Javascript for the example in this repo do the card objects need to be instantiated.

I see.  The cards in trendicity are actually in the form of instagram posts.  They get initialized in  home.js like this:
$scope.model =  PostsService.getModel();

+1. Thanks for this. Wish the README was more descriptive.


Pull out organization admin check

Currently AuthorOwnerCheck is the one which checks for organization admin if the name doesn't match.
This is not right since we cannot tell whether perform() returns false because the check logically failed (the author does not own the repo at all) or returns false because there was an error, in which case we need to let the user know something went wrong.
Thus, the organizations check has to be taken out and treated as the other preconditions.

done