[WIP] FirebaseFunctionsSwift

A possible implementation of #8528
Builds on top of a previous PR #8853 , so that should be merged before this one.
Still needs testing and verification that it actually works.

Now rebased on codable-refactor branch which includes the merged #8853

We could also go for something a little more opinionated.
In my own code I like to create type safety around things that are stringly typed as follows:
public protocol CallableType {
    associatedtype RequestType: Encodable
    associatedtype ResponseType: Decodable
    static var name: String { get }
}

public struct Callable<C: CallableType> {
    private let httpsCallable: HTTPSCallable
    internal init(_ httpsCallable: HTTPSCallable) {
        self.httpsCallable = httpsCallable
    }
    public func call(_ data: C.RequestType,
              encoder: StructureEncoder = StructureEncoder(),
              decoder: StructureDecoder = StructureDecoder(),
              completion: @escaping (Result<C.ResponseType, Error>)
                -> Void) throws {
        try httpsCallable.call(data,
                               resultAs: C.ResponseType.self,
                               encoder: encoder,
                               decoder: decoder,
                               completion: completion)
    }

#if compiler(>=5.5) && canImport(_Concurrency)
  @available(iOS 15, tvOS 15, macOS 12, watchOS 8, *)
    public func call(_ data: C.RequestType,
                   encoder: StructureEncoder = StructureEncoder(),
                   decoder: StructureDecoder =
                     StructureDecoder()) async throws -> C.ResponseType {
        try await httpsCallable.call(data, resultAs: C.ResponseType.self)
  }
#endif

}

extension Functions {
    public func httpsCallable<C: CallableType>(_: C.Type) -> Callable<C> {
        Callable<C>(self.httpsCallable(C.name))
    }
}

The use would be:
struct CalculatePiRequest: Encodable {
    var numberOfDecimals: Int
}

struct CalculatePiResponse: Decodable {
    var pi: String
    var executionTime: TimeInterval
}

struct CalculatePi: CallableType {
    typealias RequestType = CalculatePiRequest
    typealias ResponseType = CalculatePiResponse
    static var name: String = "calculatePi"
}

func usercode() async throws {
    let callable = Functions().httpsCallable(CalculatePi.self)
    let piResponse = try await callable.call(a)
}

This means that the callable above will only accept CalculatePiRequest as input and return a CalculatePiResponse.
If this is a style you like, then that could either be added to the current PR - or the other call implementation could even be removed in order to encourage using this more type safe API.
Let me know what you think. And also about the naming (CallableType, Callable, RequestType, ResponseType).

Let me know if you like the requestType and responseType argument names, or if you can think of better names.

Now that we have Swift test infrastructure for FirebaseFunctions after #8957, #8959 and #8960, we should be able to add integration tests. The integration tests could also potentially be used to demonstrate the Functions Codable API for the API proposal.
I rebased the codable-refactor branch with #8853 on the latest master and pushed it in codable-refactor2. This PR could rebase to codable-refactor2 and change its merge target to that branch and then add the tests to https://github.com/firebase/firebase-ios-sdk/tree/master/FirebaseFunctions/Tests/SwiftIntegration

Let me know if you like the requestType and responseType argument names, or if you can think of better names.

I am trying to understand why we need those arguments. Are they provided to let the compiler infer the types correctly?

Exactly - so that's the way to say: this callable always takes requestType as it's input and returns a responseType. As opposed to supplying the types at the call site with the risk of using the same callable with different types from different call sites.

It looks like the requestType/responseType is decoupled from the encoder though. How do we enforce that a custom encoder returns the right types? Could we do something like:
func httpsCallable<Request: Encodable,
    Response: Decodable>(_ name: String,
                         encoder: StructureEncoder<Request.Type>,
                         decoder: StructureEncoder<Response.Type>)
    -> Callable<Request, Response> {... }

or:
func httpsCallable<Request: Encodable,
    Response: Decodable>(_ name: String,
                         requestType: Request.Type,
                         responseType: Response.Type)
    -> Callable<Request, Response> {...

 public func call(_ data: Request,
                   encoder: StructureEncoder<Request.Type> = StructureEncoder(),
                   decoder: StructureDecoder<Response.Type> = StructureDecoder(),
                    ...
``

The encoder and decoder is indeed decoupled from the Encodable and Decodable types. That's a big part of the design of the Codable system.
You'll notice that the StructureEncoder and StructureDecoder are not generic types. They do have generic functions, however, and these generic functions are precisely resolved by the two supplied types.

Also: there's no dynamism in play, so there's no ensuring that custom decoders return the correct type - it's all baked in to the type system at compile time. And there's also not really any custom decoders - just different parametrizations of the supplied implementation of StructureDecoder. It's not a protocol, and though it's a class it's not subclassable.

Morten, can you provide a few sample calls to the new API surface (either in https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseFunctions/Tests/SwiftIntegration/APITests.swift or https://github.com/firebase/firebase-ios-sdk/tree/master/FirebaseFunctions/Tests/SwiftIntegration/IntegrationTests.swift)?
I'm mostly curious about whether you need to write
functions.httpsCallable("functionName", requestType: SomeType.self, responseType: SomeOtherType.self);

or if we can specify the request / response type after httpsCallable:
functions.httpsCallable<SomeType, SomeOtherType>("functionName");

Sure, I'm not at a computer right now, so it will have to wait.
But for the current version you supply the types 'up front' (at 'httpsCallable') rather than at the 'call site' (quite literally where you call 'call').
The initial version had it the other way around (generics all resolved at 'call').
You can get it just like you want, but not both ways at once. 😊
I changed it since I got the impression that you'd rather have the configuration 'up front' (including the encoder/decoder arguments that I haven't moved yet due to ongoing discussion).
I also think it makes sense since you'll likely call 'call' more often than 'httpsCallable' which gives you type safety and stability at the call site. Calling 'httpsCallable' is almost like stating a scheme for your function in this way.
But let me know which you prefer. 😊

Hi again @peterfriese ,
I've added a test target to test the FirebaseFunctionsSwift. You can see the invocations in FirebaseFunctionsSwift/Tests/IntegrationTests.swift
But to show you, it's currently:
      let function = functions.httpsCallable("dataTest",
                                             requestType: DataTestRequest.self,
                                             responseType: DataTestResponse.self)

and then at the call site:
      let response = try await function.call(data)

and what you get is: compiler enforces that data is of type DataTestRequest and that reponse is of type DataTestResponse - also known as strong typing.
Just to show you the call sites of the previous implementation for comparison:
 let function = functions.httpsCallable("dataTest")

and at the callsite:
  let response = try await function.call(data, responseAs: DataTestResponse.self)

Here there is no requirements for data other than it must be Encodable - and the response type must be present for each invocation. As @schmidt-sebastian , the response type could of course also be inferred:
  let response: DataTestResponse = try await function.call(data)

But this goes a bit against the precedence set by both JSONDecoder and for instance the overlay for Firestore where you also supply the type as an argument when decoding a DocumentSnapshot.
Also, inferring the response type in the callback based version requires the callback closure to specify it's type, which many people find a bit verbose.
Comparing the two different styles above we have a more verbose definition of the callable - but that verbosity can exactly be equated with type safety - and since the request and response types are part of what defines a callable function (conceptually), then I think it makes sense to 'lock in' the types at this point.

Thanks for adding the tests @mortenbekditlevsen !  I've have two follow-up PRs in progress - #8981 for a long-standing documentation issue I noticed in your PR and #8983 to integrate the tests into CI.

Excellent, let me know if you need me to do something in relation to this PRs.

No immediate need. I can manage them after the PR merges.
However, if you do additional changes in this branch, it would be good to pull in #8983 for CI.

#8981 is now merged and this PR should be similarly updated.

I have a question regarding the following API:
  public func call(_ data: Request,
                   completion: @escaping (Result<Response, Error>)
                     -> Void) throws {
...
}

The throws is there as encoding can fail. But error handling is also performed inside of the callback (when unwrapping the Result).
Should I remove the throws here and call the completion handler with the error from encoding if that fails?
That would remove the double point of error handling...

The throws is there as encoding can fail. But error handling is also performed inside of the callback (when unwrapping the Result).
Should I remove the throws here and call the completion handler with the error from encoding if that fails?
That would remove the double point of error handling...

We generally try to throw for API input validations and raise error callbacks for network errors. In this case, though, I think we should remove the throws declaration as we can use the callback for errors during encoding and decoding. I think it would be confusing to only use the callback for network errors and decoding errors.

I just requested an approval for this API change. Currently, this is scheduled for Dec 6 (sorry for the long waiting time). The API in the approval is as follows:
public extension Functions {
  func httpsCallable<Request: Encodable,
    Response: Decodable>(_ name: String,
                        encoder: StructureEncoder = StructureEncoder(),
                        decoder: StructureDecoder = StructureDecoder())
    -> Callable<Request, Response> { }
}

public struct Callable<Request: Encodable, Response: Decodable> {
  public func call(_ data: Request,
                   completion: @escaping (Result<Response, Error>)
                     -> Void) {}
  public func call(_ data: Request) async throws -> Response { }

  public func callAsFunction(_ data: Request,
                   completion: @escaping (Result<Response, Error>)
                     -> Void) {}
  public func callAsFunction(_ data: Request) async throws -> Response { }
}

We can update the proposal until the 6th.

I just requested an approval for this API change. Currently, this is scheduled for Dec 6 (sorry for the long waiting time). The API in the approval is as follows:
public extension Functions {
  func httpsCallable<Request: Encodable,
    Response: Decodable>(_ name: String,
                        encoder: StructureEncoder = StructureEncoder(),
                        decoder: StructureDecoder = StructureDecoder())
    -> Callable<Request, Response> { }
}

public struct Callable<Request: Encodable, Response: Decodable> {
  public func call(_ data: Request,
                   completion: @escaping (Result<Response, Error>)
                     -> Void) {}
  public func call(_ data: Request) async throws -> Response { }

  public func callAsFunction(_ data: Request,
                   completion: @escaping (Result<Response, Error>)
                     -> Void) {}
  public func callAsFunction(_ data: Request) async throws -> Response { }
}

We can update the proposal until the 6th.

Hi @schmidt-sebastian ,
No worries about the timing, I've been using similar overlays since forever, so contributing with these APIs is mainly just for fun. :-)
I agree with your suggestion to bake in both the Request and Response types as well as the configuration for encoding and decoding when defining the Callable - perfect.
Also great with the addition of callAsFunction. This is one of the rare cases where this niche Swift feature actually makes sense. :-)
So the usage point for defining the callable using the above API would be require the type of the Callable to be spelled out:
let callable: Callable<MyRequest, MyResponse> = functions.httpsCallable("calculatePi")

Do you like that better than:
let callable = functions.httpsCallable("calculatePi", requestAs: MyRequest.self, responseAs: MyResponse.self)

I guess there are pros and cons, but I would love to hear your reasoning about them.
For myself, I can think of the following pros and cons:
Pros:

The call site is shorter with the inferred case

Cons:

The end user needs to look up the type returned by the function in order to know what type (Callable) to use. If you just write let callable = functions.httpsCallable("myCallable"), then you automatically get the previous style, untyped API. So basically it's hard to know that you can define the callable to be of type Callable<A, B> and suddenly get this new behaviour.
Even if it had a function name that did not clash with the existing API, the compiler just writes Generic parameter Request could not be inferred and similar for Response, you still need to look up the function signature to know that those generic parameters belong to a type called Callable.

I think the discoverability of the new API is better when the types are given explicitly as arguments.
With those things said, good documentation and examples can get you a long way. :-)
Looking forward to hearing the conclusions of the review.

I talked to @peterfriese about this in the API proposal and we both prefer the shorter version, but I agree that it comes at the cost of discoverability. Let me explicitly highlight this as we go through the approval process.

I can recommend just trying out both versions in Xcode.
Another idea could be to name the function differently - like perhaps callable(...) rather than overloading httpsCallable. Don't know if it's a good idea, but it's something to consider, perhaps.

Thanks @mortenbekditlevsen for the PR!
Catching up on this thread now, but wanted to check in on one thing related to the custom encoder/decoder. I can't remember the reason for needing a custom encoder/decoder vs using the built in JSON(Encoder|Decoder). As far as I can tell at a quick glance of the diff, the two differences are removing the outputFormatting property, and removing usage of JSONSerialization. My main curiosity is if we can eliminate the need for the custom encoder/decoder, stick with the JSON encoder and remove the duplicated code and extra lib. Any insight to what I'm missing would be very helpful 😄

@mortenbekditlevsen thanks for the details, that's super helpful! I see the small changes now and understand the issue (and saw your posts on the Swift forums). It would be nice to just use the JSONEncoder/Decoder but I think since we aren't making massive changes to it, the fork makes sense to avoid the extra CPU cycles wasted (and potential data loss for Firestore). Sorry again for the long delay in things but I'm still catching up on it and hope to be able to give it a full review within the next week!

Hey @mortenbekditlevsen - wanted to give you an idea as to what I am looking into and maybe you have some thoughts here.
Thinking of the higher level API and the decoder for RTDB and Functions (haven't re-evaluated Firestore yet so these comments don't apply):

I'm wondering if the encoder/decoder APIs for each product need to be different (or necessary for all products). Example: do we need to provide a custom way to encode the date, or are the respective Firebase backends expecting a specific format and we should disallow custom encoding of the date?  I'm going to look into these, cc @schmidt-sebastian for thoughts on RTDB (and maybe Firestore)

a) If they are necessary, should we have the StructureEncoder as an implementation detail and have a small custom encoder for each one, only surfacing the customizations that make sense? I don't see a huge benefit of using the same customized encoder for both Functions and RTDB, but could be wrong.
b) If they're not necessary, we could remove the parameter and just leave it as an implementation detail.
My hunch: we may want some sort of customization, but it could be for specialized use cases. If that's the case, maybe we could remove the parameter and evaluate re-introducing it once we hear some reasonable and valid use cases.

Hi @ryanwilson ,
For the three services, functions, RTDB and Firestore, only Firestore is really opinionated about the format of Date in that it supplies its own Timestamp type.
Which encoding is better for the other two services? And do you even really want to enforce dates to always be encoded as the timestamp type in Firestore? Are Dates even encoded as Timestamps in the existing FirestoreEncoder? I think I saw that Timestamp can decode to Date directly, but I don't recall seeing any special measures during encoding, so I assume that Dates Codable implementation is used on encoding. Please correct me if I'm wrong. 😊
The use case is that these encodings are (at least in my eyes) purely a matter of preference, style and taste.
If your functions are written in typescript you may like milliseconds since epoch. If your functions are written in rust and you use 'serde' for serialization it appears that iso8601 strings are the default.
Similarly your preferences may differ for RTDB and Firestore based on commonality between client languages or frameworks or may be dictated by a dominating language or by precedence or by the whims of a platforms architect.
The custom case is important too. You could prefer to have your dates encoded as YYYY-MM-DD-HH-mm in local time zone in order to perform time based queries on prefixes of the strings. Not that you can't do similar queries with numerical encodings, but it's an easy way to get 'start of period (year, month, day, hour, minute)' without doing calendrical calculations.
I think that my best argument for keeping the strategies that are already proposed by JSONEncoder is: you don't need to squint very hard in order to see functions arguments, RTDB data and Firestore data as json. Swift already defines a great set of strategies for encoding Date to json in Foundation, and this concept is likely familiar to users of Swift. Since the three Firebase services can be thought of as mechanisms for communication, synchronization and storage of json, then it seems natural to give the same amount of expressiveness in how that json can be generated as present in JSONEncoder.
That said, I like the hiding away of StructureEncoder behind small wrappers rather than indirectly exposing it through the typealias. But I really hope that all wrappers can get the same flexibility.
That's a big part of my motivation for suggesting the use of the same encoder across the services: I am lacking flexibility with the current FirestoreEncoder. 😊

Rebased to codable-refactor3(which is the shared Codable from #8853 rebased on current master)

I'm going to merge to enable setting up a full review on the codable-refactor3 branch


Matching seeds from Bedrock

I know that the only thing that would change would be the structures, could it be done?

It would be interesting to have only the current generation of worlds for now, but I don't know how difficult it would be to implement.

It would be pointless to implement a 1.18+ Bedrock world generator, as it is very much out of scope. However a v0.9.0 Bedrock world generator or a 1.17 Bedrock generator might be considered.


Use docker to validate packages in js docindex

We plan to wrap the CI build command into docker image and use it to validate packages in docker.
The PR is to replace the sanity check first. Will have a follow up PR for creating issues whenever the package got filtered out.
Here is the testing pipeline:
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1174856&view=logs&j=dc056dfc-c0cf-5958-c8c4-8da4f91a3739

/check-enforcer override

@danieljurek do you have time to review the PR? I will merge it after a test run and keep an eye on the performance once gets check in if no further response.

Done with testing. Testing link pasted in description.


update default export, istanbul, undo last typings changes and improve typings, add TS tests

last one, I promise 🥇
the last merge (#128) isn't valid because export = sift cannot happen when using other exports in the same declaration. the exports were wrong in the sift.js (that I made earlier), and should now work with vanilla JS, Typescript with allowSyntheticDefaultImports and without. and now $elemMatch is safer
added the test.ts so it can be checked without interfering with existing code (and can be ignored in the .npmignore file)

Coverage remained the same at 100.0% when pulling 9dee596a0651fcbe99941b73f2a0a2d6a2338f24 on pocesar:esModule into 2d051def12f8e6745a15d9c7f2f7a895bf12ef4b on crcn:master.

Yeah, this is awesome, and thanks for adding tests! Code's been pushed up to NPM as 3.3.7. :)


Address Accessibility Issues flagged by Chrome Lighthouse Tool

While we currently have a reasonable rating for a11y based on the Chrome Lighthouse Tool, there do seem to be a few issues. Please address these issue to raise the score and open followup issues for major accessibility issues that you encounter. You can rerun Lighthouse via the Audit tab in Dev Tools.

One of the issues flagged by the Lighthouse is due to react-select added div next to our drop down filters not having aria-owns attribute (related issue on react-select github https://github.com/JedWatson/react-select/issues/1544 )

Holy smokes, so you're saying react-select is essentially inaccessible?

Not exactly, there are just slight issues with it. I tested that box with mac's voiceOver and you can navigate it and it tells you options, but the issue is when you select the option, the box doesn't tell you what option is currently selected. I'd say thats pretty accessible but not perfect.

@spmcbride1201 ran the lighhouse tool on all the pages... we don't get below 86 on any of them.
There are only 3 things that remain that would get us to 100 across all the pages:

React-select related flags are responsible for most of the reduction in our score
Contrast on few elements (grayed out elements such as version and copyright). For some reason, despite my tweaks, they still get flagged (we get 97 on those pages)
There are some pages where glyph contents have same ids and that gets flagged (unique IDs), I expect this to be solved by my/Karina/Stuart refactoring on those svgs.


Support to withEnv em file .jenkins

I am using JenkinsPipelineUtil to tests our files de pipeline.
I am not having success used withEnv.
Is this implementation possible?

Hi, did you try to mock it?

Hi @AnselmoPfeifer
I don't know in which context are you using withEnv.
In most cases, the variables you are binding in the scope of the withEnv will be run by a mocked sh or mocked bat, and a simple mock like this will be enough:
helper.registerAllowedMethod('env', [List, Closure], null)
In this case, env is never really used in the test context. The withEnv step will then be known as an existing step in your pipelines, and you won't get any error when calling this. The closure you pass as parameter in your pipeline will be executed. I would suppose, this change in env variable is used for sh or bat step execution, which are both supposed to be mocked. Then that should be fine.
However, you can go further and use this kind of mock:
// Just in case it has never been set:
binding.setVariable('env', [:])
//
helper.registerAllowedMethod('withEnv', [List, Closure], { List additionalVariables, Closure closure ->
            // Make a copy of the current environment variables into previousEnv
            def previousEnv = new HashMap(env ?: [:])
            additionalVariables.each { String additionalVariable ->
                // Bind every additionnal variable to the current environment
                int equalsIndex = additionalVariable.indexOf('=')
                String variableName = additionalVariable[0..equalsIndex-1]
                String variableValue = additionalVariable[equalsIndex+1..-1]
                println "binding $variableName to $variableValue"
                env[variableName] = variableValue
            }
            // Executes the closure with the extended environment
            closure()
            // Rollback to the previous environment
            env = previousEnv
        })

Note env is usually an instance of EnvActionImpl but use a map in your pipeline test should work fine.
I hope it helps.

Hey, guys, tks for helpers.
To we are work withwithEnv, we created one new helper and implemented on Interceptor:
helper.registerAllowedMethod("withEnv", [List, Closure], withEnvInterceptor)
def withEnvInterceptor = { list, closure ->
        def env = binding.getVariable('env')

        for (String pair : list) {
            int split = pair.indexOf('=')
            if (split !=-1)
                env.put(pair.substring(0, split), pair.substring(split +1))
        }
        binding.setVariable('env', env)
        def res = closure.call()
        return res
    }

@anspfeifer can be simplified further:
    def withEnvInterceptor = { list, closure ->
        def env = binding.getVariable('env')
        list.each { pair ->
            def (k, v) = pair.split('=')
            env.put(k, v)
        }
        binding.setVariable('env', env)
        closure.call()
    }


Contract deployment error -  [error, Error(WasmVm, InvalidInput)], data:["contract pre-release number for current protocol does not match host", 51, 57]

What version are you using?
soroban-cli v20.0.0-rc4
What did you do?
https://stellar.stackexchange.com/questions/6239/unable-to-deploy-hello-world-contract-using-soroban-cli-tool
What did you expect to see?
Contract addres
What did you see instead?
error massage
i tried using command - soroban contract deploy --wasm target/wasm32-unknown-unknown/release/hello_soroban.wasm --source alice --network futurenet
I tried on futurenet and test net both
used soroban --version -- soroban 20.0.0-rc4
i have attached screenshot in stack exchange link

The error means the contract needs to be recompiled.
I do think this error should be clearer. Perhaps it could check before deploying.

ok thanks ... but i have tried after cargo clean and then compiling again and also i am using a very simple smart contract of hallo world from documents . so what can be reaseon

What is the version of the sdk? I should have been clearer. It means that it needs to be recompiled with an sdk that is compatible with futurenet.

Going to close this since it's been almost 2 months with no further discussion. Please try to recompile with an SDK that is compatible with futurenet and re-open if you're still experiencing an issue.


Fail code

// Clear placeholder values upon page reload
		$(window).bind('beforeunload.placeholder', function() {
			$('.placeholder').each(function() {
				this.value = '';
			});
		});

please review this part, i have some problems when append some of html and then use .placeholder() but it fired this park and i see placeholders after focus -> unfocus. Thanks But i comment this part and work fine. I cant understand for what it

Need example code to show the issue you're speaking about.


File uploads file size limitations

Fixes #27680
Thanks @Kevin-Andrew! 🚀
Internal Review Topic (links to section)

Remove the existing NOTE and replace it with a dedicated section on this subject.
Pivot and version the content for Server vs. WASM and >=6.0 and <6.0 (for changes that occurred to lift the limit that only pertained to the InputFile component.
Because BrowserHttpHandler is internal, it isn't in the API docs. Therefore, I'm going to code-fence it and supply the reference source link so that interested devs can track it down.

❓ ...

Mackinnon/Pavel ... On one issue (dotnet/aspnetcore #31873), Javier recommended Streaming requests with the fetch API; however, on another issue (dotnet/aspnetcore #35899), he recommended HTTP Ranges. This PR currently only has the HTTP Ranges suggestion. Do you want me to swap that for streaming fetch API or add streaming fetch API as another alternative?

Pavel ... I specifically mention that devs can add a 👍 to the runtime issue (dotnet/runtime #36634) because it's merely marked "Future" at this time and you might have interest in gauging feedback for possibly placing it on the .NET 8 roadmap. Do you want me to strike the 👍 suggestion part of that and just leave the cross-link? I think at least the cross-link should be here because otherwise devs will think that the PU isn't aware of the problem/suggestion. I think we can curtail folks opening more issues on either the ASP.NET Core or runtime repos if we at least mention the issue. However, we can strike the 'you can add a 👍' part if you like.

Cross-references:

Blazor Support Large File Uploads (dotnet/aspnetcore #33638)
Net6P7: Blazor WASM can't upload large files (500MB, 1GB, 2GB) (dotnet/aspnetcore #35899)
[Blazor] [WASM] Large File Upload Via Stream not Work as Expected + Memory Leak (dotnet/aspnetcore #31873)
[browser][wasm] Request Streaming upload via http handler (dotnet/runtime #36634)

@Kevin-Andrew ... Look again. On the latest commit, I seek to explain what happened back in 5.0 to help the reader understand what aspect was introducing the limit and when.

From https://learn.microsoft.com/en-us/aspnet/core/blazor/file-uploads?view=aspnetcore-5.0&pivots=webassembly:

is what you're referring to when you say:

They fixed it at 6.0. Anyone who knows that it was limited in the past, perhaps from a PU issue that they might have come across while researching this, should have a clear statement that the limit isn't related to the component.

In response to my question of:

...what are you even trying to accomplish with the first sentence?

I think there in lies the problem and confusion. That Note is a very vague statement. And we are unfortunately talking about two different things. That Note is simply referring to the ability to read the file contents as a stream. However, all of these issues are referring to the ability to upload a file. Granted, you can't accomplish the upload without the ability to read, but in my opinion, they are two, very different topics.
I may have a web application that reads a large (> 2GB) file completely on the client side, to gather statistics about a video file or something. That would be completely possible with C#, Blazor WASM, and the InputFile component now allowing file sizes larger than 2GB. But at no point in time am I trying to upload that file from the client to the server.
How about something like:

There is no longer a file size limitation when using the <xref:Microsoft.AspNetCore.Components.Forms.InputFile> component to read the contents of a file. However, there is a limit when attempting to upload a file using the <xref:Microsoft.AspNetCore.Components.Forms.InputFile> component  in Blazor WebAssembly apps. When used for uploading, BrowserHttpHandler.SendAsync (reference source) reads the file's bytes into a single JavaScript array buffer when marshalling the data from JavaScript to C#, so large file uploads (> 250 MB) may fail. For more information, see Net6P7: Blazor WASM can't upload large files (500MB, 1GB, 2GB) (dotnet/aspnetcore #35899).

Let me get back to on Monday morning. I have a HUGE move coming up that I'm packing for ... moving across the state of Florida 🚚😩. It's exciting, of course, moving to the Space Coast region, but the actual physical packing and moving part is 😩😩😩... I'm getting too old for this sort of thing! 😄 I'll get back to you on Monday, and we can iron that out before I ping Mackinnon and Pavel to assist further.

Do you want to drop the ...

where you can express your interest in the proposal by adding a thumbs-up (👍) to the issue's opening comment.

... suggestion? I actually think that's kind'a obvious these days.

Do you want to drop the ...

where you can express your interest in the proposal by adding a thumbs-up (👍) to the issue's opening comment.

... suggestion? I actually think that's kind'a obvious these days.
I didn't know if that would be helpful to you in gauging interest or not.

Since we could not deliver it on all browsers yet I would not lure people.

Yes ... I just killed both links. I think I'll keep a tracking item (not issue) on my .NET 8 tracking issue to see how it played out and what needs to change here, if anything.

Thx @pavelsavara! 🎸 ... I'll see if Mackinnon has any feedback on it before merging.
@danroth27 ... We eliminated the links to both issues. Now, it just says that a future runtime release may address this.

@guardrex , thanks. On a side note, out of my own curiosity, when you merged this PR, did you do a Squash Merge? I looked at the main branch and it appears to only have one actual commit, versus the 15 that were done here.

Squash for this PR, yes ... but for our merges to live, no ... not squashed.
One of things that that helps with you know is keeping the history lighter (IIRC 😄). It also gives us as doc authors the right amount of "credit" in terms of working here for management's tracking. We get the commit credit for the PR, not for all of the churn on PR.


Application crash

Application crashes, when trying to clone an entity with an Anim Component that has more than 1 animation layer.
Repro:
Open engine example: https://playcanvas.github.io/#/animation/layer-masks
And add to the end:
modelEntity.clone();

vote for clone button in every example - such a good Litmus test :sweat_smile: :see_no_evil:
The lack of JSDoc makes it hard to figure out, but I got this to work anyway:
const clone = pc.app.root.children[2].clone();
pc.app.root.addChild(clone);
clone.translate(0.5, 0, 0);

I saw multiple issues:

Using object spreading for... cloning?

Example:
class Test {
    _hi = 123;
    get hi() {
        return _hi;
    }
}
test = new Test();
const obj = {...test};
console.log("obj", obj);

Outputs: {_hi: 123}, but we need {hi: 123}!
Happens in two places:
https://github.com/playcanvas/engine/blob/e3217c4522d55271a5543ee71f14689d048f5622/src/framework/components/anim/component.js#L378-L383
https://github.com/playcanvas/engine/blob/e3217c4522d55271a5543ee71f14689d048f5622/src/framework/anim/controller/anim-controller.js#L131-L134

data.stateGraph lacks extra layer

https://github.com/playcanvas/engine/blob/e3217c4522d55271a5543ee71f14689d048f5622/src/framework/components/anim/system.js#L46-L49
You can hack it up like this for making it work:
        if (data.stateGraph) {
            data.stateGraph.layers[0] = data.layers[0]; // hack
            data.stateGraph.layers[1] = data.layers[1]; // hack
            component.stateGraph = data.stateGraph;
            component.loadStateGraph(component.stateGraph);
        }

And then there are even more issues, just simple type bugs basically. The component just needs more JSDoc and such issues would be automatically detectable.
I tried it in the past, but it was blocked: https://github.com/playcanvas/engine/pull/2986

vote for clone button in every example - such a good Litmus test 😅 🙈

I would suggest that the unit tests are designed exactly for checking this type of thing rather than the examples.


We should do something similar with minikube flags, so you can do things like minikube start --vm=true --cni=cilium --kubernetes-version='v1.19.4' --bootstrapper=kubeadm, and ctlptl can ensure your cluster has the right settings. (This is a little tricky, because we want to make sure people aren't setting flags that are incompatible with how ctlptl sets up the cluster, but I think it can be done).

Minikube supports persisting options to a configuration file (e.g. ~/.minikube/config/config.json)  on Linux; however, It appears that ctlptl does not respect this user configuration. It currently creates minikube clusters based on whatever the minikube installed defaults are

I need this. The ctlptl only allows setting specific flags or --extra-config, but there are many minikube flags that are important for specific setups. For example --ports.
Why not accept any command-line flag in the ctlptl configuration?

@remram44 we do have an API for accepting minikube flags in the YAML configs, see https://github.com/tilt-dev/ctlptl/commit/d59471bd52017a1e9a4c7c574c493639a14c2b37
it's a little bit more complex than just forwarding flags, since we have to reconcile against what ctlptl is doing, and some flags are incompatible with how ctlptl sets it up.

Like I said, this is only for --extra-config and not any of the numerous other flags, even the harmless (to ctlptl) ones like --ports

ya, that's a fair point


[Docs] Match headers for large and small callouts

Previously the large and small callouts were headed with 'This is a secondary panel' even though it wasn't actually a secondary callout and as a visual description doesn't match the styles used in the coloring section.
This PR modifies the header text in these examples to match the style used in the coloring section and explains the example using the class names ('small callout' and 'large callout') in the same manner as with the coloring section.

👍


Feature/tutorial kbathmann

This changes adds a ratio check to UFO QC. Observations are rejected if the ratio of two parameters is above a threshold.
This change does not affect other repositories, no new test data is needed and there are no other dependencies or things to note.

@KristenBathmann-NOAA should not assign this to us, but make us reviewers.


x/website:

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

go version go1.16.5 windows/amd64

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\thesc\AppData\Local\go-build
set GOENV=C:\Users\thesc\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\thesc\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\thesc\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.16.5
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:\src\hello-go\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\thesc\AppData\Local\Temp\go-build3399508646=/tmp/go-build -gno-record-gcc-switches

What did you do?
Followed the example for calling your code from another module, step 5.1
What did you expect to see?
A successful output.
What did you see instead?
go mod: -replace=example: need old[@v]=new[@w] (missing =)

The solution seems to be to avoid the first =, i.e. go mod edit -replace example.com/greetings=../greetings. As this is a beginner tutorial, it's important to get the small details right as to not discourage new gophers.

Duplicate of #44924


Update Egress status when configuring static Egress

Signed-off-by: Wenqi Qiu<EMAIL_ADDRESS>

Codecov Report

Merging #2444 (798ec1d) into main (7469d7e) will decrease coverage by 20.77%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##             main    #2444       +/-   ##
===========================================
- Coverage   59.63%   38.85%   -20.78%
===========================================
  Files         284      278        -6
  Lines       22178    21348      -830
===========================================
- Hits        13226     8295     -4931
- Misses       7527    11873     +4346
+ Partials     1425     1180      -245

Flag
Coverage Δ

kind-e2e-tests
38.85% <0.00%> (-8.01%)
:arrow_down:

unit-tests
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/agent/controller/egress/egress_controller.go
0.00% <0.00%> (-35.53%)
:arrow_down:

pkg/agent/controller/egress/id_allocator.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/controller/networkpolicy/crd_utils.go
0.00% <0.00%> (-89.16%)
:arrow_down:

pkg/controller/networkpolicy/endpoint_querier.go
2.85% <0.00%> (-88.58%)
:arrow_down:

pkg/controller/egress/controller.go
0.00% <0.00%> (-87.21%)
:arrow_down:

pkg/apis/controlplane/v1beta1/conversion.go
1.20% <0.00%> (-83.14%)
:arrow_down:

...kg/controller/networkpolicy/antreanetworkpolicy.go
0.00% <0.00%> (-83.00%)
:arrow_down:

pkg/controller/egress/ipallocator/allocator.go
0.00% <0.00%> (-82.98%)
:arrow_down:

pkg/agent/util/iptables/lock.go
0.00% <0.00%> (-81.82%)
:arrow_down:

pkg/agent/controller/networkpolicy/priority.go
8.49% <0.00%> (-81.70%)
:arrow_down:

... and 129 more

It seems all comments have been addressed. PTAL. @tnqn

@wenqiq Please add more details in the PR description or file an issue about what this PR is for, so other members can understand it without digging into the code.

/test-all

I just noticed that this was merged as a commit with a message that simply says: "Fix Egress status updating". This is misleading because this is not a bug fix IMO. It also does not provide any useful information about the change. Please be mindful in the future that the squashed commit matches the PR description. Thanks!

Thanks for noticing this and sorry my carelessness, can we revert this merge or add some comments in the commit or force rewrite the commit? @antoninbas @tnqn

Thanks for noticing this and sorry my carelessness, can we revert this merge or add some comments in the commit or force rewrite the commit? @antoninbas @tnqn

We cannot change anything now, but it's ok we'll keep it in mind for future merges


EKS Config types

Issue:
Relates to EKSv2 integration and should facilitate:
https://github.com/rancher/rancher/issues/27739

Seems fine, small thing. This is just adding right ? No modifications of existing types.

Seems fine, small thing. This is just adding right ? No modifications of existing types.

Correct, it is adding a field to cluster type but it is not taking anything away and should not interfere with any current behavior on its own.

@rmweir can we close this and move to rancher


Remove passthrough_exception parameter in run_in_ns()

Post https://github.com/Granulate/granulate-utils/pull/97

I'll let the full tests run


Fixed incorrect sudo command

This should resolve #14956

@ClydeDz : Thanks for your contribution! The author, @cynthn, has been notified to review your proposed change.


Rate limits

Does this SDK have any rate limits? I would like to send roughly 60-90 buy transactions at once. I looked at your code and you seem to be talking directly to the blockchain right? So if that's the case wondering if there is rate limits.
Note: RPC I use allows more than 100 sendTransactions per second

Its straight to chain, I only provider helpers to simplify the buy and sell.

Thank you!


Work/manual builds

I've added a short block mentioning a workaround if antivirus programs block the download.
Hopefully the Trojan warnings can be fixed in the future, but for now this should help.
I was unable to get the project to build using the dotnet cli alone.

Closing in favor of a fix to antivirus detection. see #7


Add ListAllowedLocationsWithOptions and tests of that

Added the methods to get the lists of allowed datacenters and public clouds with options parameters. Also added the tests to test it.

This does not even compile now. ALWAYS compile the stuff and run the tests before pushing any change!

+1!

:+1:

:)

Merged


Create CODE_OF_CONDUCT.md

Include code of conduct following the template.

Closing as wrongly created from the protected branch.


Adding CircleCI

We need a CI to enforce tests being run and code to be well formatted.

Duplicate of #3


Incompatible jQuery version error from Bootstrap

We recently added the datatables npm dependency to our project. Datatables requires jQuery > 1.x.x, and as a result, npm is installing jQuery latest (version 3.x). This causes a compatibility issue with Bootstrap.
Limit the maximum jQuery version to prior to 3.0.0.
Output
$ npm install
...
<EMAIL_ADDRESS>node_modules/datatables
└──<EMAIL_ADDRESS>...

Related error(s)
bootstrap.js:15 Uncaught Error: Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3

There is a second error related to jQuery, which may or may not be related to this issue:
settingsWizard.js:57 Uncaught TypeError: $(...).carousel is not a function

@brylie what is the actual error this fixes? I assigned to review #1150

@philippeluickx can you please help verify the error? I am having trouble reproducing on my laptop.

@jykae I have updated the issue with error message(s).

We just ran a second test on a fresh install. Switching the jQuery version to be < 3.0.0 resolves both errors in the task description.

Ping @bajiat.

Also, might be a good idea to comment any limits to version numbers, so we know that we need to keep an eye on this when we update to bootstrap v4 (that should support jquery 3)

@nnn you might need to re-run npm install after pulling changes from develop.

@nnn Can this be closed? Is it fixed for you?

Yes, it's fixed.
Tested in the latest develop.
No errors even after meteor reset.


tvOS support?

when trying to use motion-cocoapods on a tvOS project, I get the error:
ERROR! Unknown CocoaPods platform: AppleTVOS

+1
Please add support!

To build CocoaPods library, it need http://hipbyte.myjetbrains.com/youtrack/issue/RM-983 fixing.
It will be shipped with next RubyMotion version.


Add --output-path option to cloe-engine

I pushed a fix-up with my suggested changes. If you are fine with that, rebase and fixup the two commits into a single one.

I rebased on ben/develop, so you'll have to reset to your origin.

Do we would need to write tests for this?

Do we need to write tests for this?

Let's write a system test. Should be pretty straightforward.


[Request] Custom Equipped Armor Weight Multiplier

This is mostly an upgrade from an existing feature. Change the "Feature: Do not apply weight for equipped armor item" for "Feature: Equipped Armor Weight Multiplier", and let input a number, so we could change specifically only equipped armor, instead of being a 0 or 1 option.
Reasoning: As is kinda annoying to equip and unequip weapons in character sheet, letting all weapons be equipped is better for the flux of the game, but the features for equipped and proficient multipliers can affect too many items. For a simple rule change, we could get a multiplier just for equipped armor, one of the most common and heavier items on adventurers, and this way, the old rule can be used too, just with a zero value.

You need this only for armor or for any item equipped ?

Yes. It is a request for only equipped armor multiplier.

Added on v0.11.11


fix: arrow positioning

add 'x-arrow' to let popper.js know the arrow element and fix its position
this commit closes #23

Fixed in #36, thanks for your time :-)


Bug: "random" option is missing from model dropdown.

A recent change inadvertently removed the random option from the models dropdown.

Fixed and deployed: 18e4cd1edd08ca7


(bug) cdk-virtual-scroll-viewport unfluency when item height is uncertain.

Bug, feature request, or proposal:

In the official example, I make each element have a different height, and then during the test, I found that there was unfluency when the next two elements were different in height.
What is the expected behavior?
Views slide smoothly
What is the current behavior?
Views slide unfluency
What are the steps to reproduce?

Item: {{item}}

What is the use-case or motivation for changing an existing behavior?
Repair problems
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Same as example
Is there anything else we should know?
no~

Something related with this issue?
I think this feature is really required, most cases we actually we use items with different heights.
And is there any way to give some preload section so we can use this scroll with img tags? right now it is very jumpy when there is an img tag with the item.

@Eusen I have tested autosize feature from experimental lib, and it works well, I think we can close this stream and watch the issue #10113 together.

haha I see, thanks~


Route [admin.homepages.landing] not defined

Reproduce:
mkdir -p app/Twill/Capsules
php artisan twill:capsule:install homepages --copy
Add to twill-navigation.php:
'homepages' => [
     'title' => 'Homepage',
     'route' => 'admin.homepages.landing',
 ],

Navigate to admin panel and you see the error.

Looks like it isn't loading the routes/admin.php from the capsule.

Hello @MarcelWeidum!
Thanks for the report, it looks like this is the same problem mentioned here.
There was indeed a problem with the creation of the page (the admin.homepages.landing route was supposed to create a new entry in the database), we just pushed a modification that takes over this part.
I let you try again to install the capsule on a new project with Twill installed and tell me if you encounter the problem.
If not, I'll let you close the ticket 🙏🏽
Cheers ✌🏽

Hi,
I have the same error with Twill 3.0.0-rc4
I followed the readme instructions, it's a totally new project.
Do you have any idea for solution?
Thank you!

Hello @MDylan,
For the moment this capsule doesn't support twill 3, I'm going to set up a 2.x branch as soon as I have some time 🏃🏽.
I'll keep you posted here as soon as it's available 🕐
Thanks for the report 🙏🏽


Style wide characters at charWidth*2 in DOM

Fixes #439

Adds a new util class that encapsulates measuring of characters and restricts it to only be performed during at start up and after a resize (which I think should also be called when char size is changed).
Before:

After:

It appears to work when resizing using crazy sizes too:

Note that some half width chars are rendered to wide with some fonts. Also fonts may differ in the wcwidth calculation for some glyphs. Thats the reason why I ended up with a precalculated dictionary of glyph widths for a critial subset of characters.

Note that some half width chars are rendered to wide with some fonts. Also fonts may differ in the wcwidth calculation for some glyphs. Thats the reason why I ended up with a precalculated dictionary of glyph widths for a critial subset of characters.

Viewport's usage of CharMeasure in this PR should actually make a significant performance impact as long running commands seem to spend ~20% time in getBoundingClientRect :open_mouth:

Tested after merge :+1:


"Navigate to your bot's Bot Channels Registration blade on the Azure Portal." What???

What's the "Bot's Bot Channel Registration blade?" I don't see it. Is this out of date?

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

 Once you've done that, you can get to its properties and settings by searching your resources for the Bot Channels Registration you just created.
I'll update the topic to remove the jargon, "blade", which I'm probably misusing here anyway.

Hey @JonathanFingold! Thanks for the reply! Here's a screenshot of my Azure portal. I don't know what or where the "Registration blade" is.

Hey @JonathanFingold. Let me explain more of what I'm trying to do. I would like to create a web chat bot where users can sign in using Microsoft Open Graph. Then the bot can help with their calendar events or emails. So I would need users to authenticate themselves using the bot.

@AskYous You are on the right page. Just click on 'Settings' under the section 'Bot Management', which is visible on your screenshot. From there on you could just follow the guidance on the Microsoft Docs page.

Navigate to your bot's Bot Channels Registration blade on the Azure Portal.
Click Settings.

No problem @AskYous . It looks like you've created the wrong type of resource.
First, create a Bot Channels Registration:

Then, this is what you should see when you navigate to the page for that resource:

You'll still be able to publish your web app bot to this resource, but it may be a slightly different process than you've used in the past. Deploy your bot to Azure describes how to do so from Visual Studio.

Thanks guys!


kcc: init at 5.5.1

Motivation for this change
Add KindleComicConverter
https://kcc.iosphe.re
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

We might want something like the following for cbz support:
  postFixup = ''
    wrapProgram $out/bin/kcc --prefix PATH : ${ stdenv.lib.makeBinPath [ p7zip ]}
  '';

We might want something like the following for cbz support:
  postFixup = ''
    wrapProgram $out/bin/kcc --prefix PATH : ${ lib.makeBinPath [ p7zip ]}
  '';

Sorry if I ask, I'm new to nix, but why would we need these lines?
I've opened archives (with p7zip installed) without adding them.

We might want the expression to be self-contained.


fix(New/EditProjectController): fix incorrect use of the Projects service

Fixes #171

I haven't run the tests (not that are any tests for those controllers), because test don't run out-of-the-box on Windows (some commands are not compatible; one needs to make some changes (which I can't recall any more) and don't have time to fiddle around :flushed:).

It also fix #166.

LGTM


[DOCS] Add contributing to README, and disable vscode autoformat

The vscode autoformatter is completely at odds with prettier, so if you don't have the prettier extension installed, you end up with wild changes.
Additionally if you've got both the beautify and prettier extensions installed, it can cause some serious issues.
Forcing it to be on will probably cause a lot of headaches to anyone trying to contribute unless they get their environment setup perfectly (sorry @weirdpattern for earlier!!)

One more thing, now that I've merged #186, you might want to add a new rule to the .gitignore file... I'm excluding everything in the .vscode except for specific files (currently just the settings.json).
I'm OK with inverting the rule to exclude specific files instead... whatever makes it easier to understand...

I just thought of something else... what about moving the contributing section from the README.md to its own CONTRIBUTING.md file? it seems to be a common practice and is even suggested in the insights/community tab

Man github handles rebases weirdly..
I just:

Moved to separate CONTRIBUTING.md
Adjusted yarn test/precommit/travis so they match the docs better.

yarn test only runs the tests
precommit / travis both now run the lint, format, test and docs checks


[Desktop] Import account stucks at Mnemonic Passphrase stage

v0.13.6
WTR:

Open Desktop app
Import any account with mnemonic
Logout
Import another account with mnemonic: movie lizard elbow young print subject model tower security crisp monkey damp elite must option drastic liberty april position vanish bunker glory gospel solution

Result: you get stuck at the Mnemonic Passphrase stage despite that you are getting successful toast messages  Video
Note: If I click back to create profile window, I can see that all fields are dropped, but when I go back to Mnemonic Passphrase, I can see manemonic passphrase is already filled in.

Fixed


Refactor tui tests to include tui tests in github actions workflow

For now, tests written to check and render tui are just written locally and are commented, before pushing on GitHub. The tests fail because BubbleTea can't find a terminal to render on while running an actions workflow. We need to find a way to make these tests run on GitHub actions as well to catch any unwanted behavior before pushing it to the main. We need to find a way to fool bubbletea that it is throwing output on a terminal and convert the output to a byte buffer, hash it using any hashing algorithm. Some functions to hash a string using SHA algo, already exist in the repo. and compare the hash with the desired output's hash, which was stored separately after manually verifying the correct output.

Hard Coding a hash in a test will not be acceptable. It is better to store the desired byte buffer in a separate file and hash it during runtime because it might be possible that a different hash gets generated for the same byte buffer in a different environment.

So, we need to refactor the tui tests code to produce the above-written behavior.
Acceptance Criteria:

Work-flows should pass on GitHub actions in all environments without commenting the tui test codes.

One problem to be noted will be that tui tests will always require manual intervention as the output byte buffer is also subject to change, for example, in the case of ListModel while rendering results from a search query. So, we definitely have to make sure that all the models are properly getting rendered on the terminal. It might be possible that commenting ListModel tests is unavoidable but this condition will not be applicable to PlayerModel or any other model which will not change for a long period of time.


Hint not displaying on VerticalBarSeries

I've created I codepan
https://codepen.io/anon/pen/mjpxee
forking
https://codepen.io/ubervisualization/pen/BZOeZB
and I want to show Hint on red series in a way it is done here:
https://github.com/uber/react-vis/blob/master/showcase/sunbursts/sunburst-with-tooltips.js
But code on lines 39-44 does not produce tooltips as desired.

Hey @VVranic
Sorry about the slow reply. I spent some time looking at your chart and it appears that you have a syntax error. Specifically you are listing the Hint as a child of one of the bar series. Series never have children: their children are the marks representing their data and we control that for you. In order to fix this I moved your hint out side of the series like so:
(<XYPlot
           height={300}
           width= {800}
           xType="ordinal"
           stackBy="y"
           style={{marginTop:"100px"}}
           >
          <XAxis />
          <VerticalBarSeries
            onValueMouseOver={MOUSEOVER}
           onValueMouseOut={MOUSEOUT}
            color="#ff5b3c"
            data={DATA} />
          <VerticalBarSeries color="#9f6eff"  data={DATA}/>
          <VerticalBarSeries color="#ffeb30" data={[DATA]}/>
          <VerticalBarSeries color="#2be84e" data={[DATA]}/>
          <VerticalBarSeries color="#3cadff" data={[DATA]}/>
          {hoveredCell && <Hint value={hoveredCell}>HINT FORMATTING STUFF</Hint>}
        </XYPlot>);

(I've contracted a bunch of your example into shouting constants for legibility)

Hi @mcnuttandrew,
thank you very much for your time and explanation.
It works very well, when you put it in the right place :)

Happy to help!

How to convert individual stacked bar data in one tooltip, just like first bar graph shown here: https://uber.github.io/react-vis/examples/showcases/plots


Revert domain fronting fix

What does this PR do?
This PR:

reverts the domain fronting fix (introduced in v2.2.2)
keeps the HostHeader rule matcher for routers (introduced in v2.2.2)

Motivation

This PR fallback to v2.2.1 behavior because of regression issues, notably in case of connection reuse with http2
Fixes #7020
More

[x] Added/updated tests
[x] Added/updated documentation

Hi all,
i got some problem with my tcp router and the hostSNI Rule. Maybe someone from here can help me.
I got 404 after some request in my Browser. See https://github.com/containous/traefik/issues/7135
thanks a lot


[DOCS] Typo mistake in faqs section.

Description
It should be How much does it cost to use BioDrop ? instead of How much does it cost to use.
Page URL: https://www.biodrop.io/docs/faqs
Screenshots

Do you want to work on this issue?
Yes
Additional information
No response

Thank you for raising @ikunal-04 I have assigned this to you.


Walk through commits  history in reverse order.

Hello everyone! Is there any way to walk through history from older commit to newer one? I guess I need to use RevWalk for these purposes, but I can't make it work.
For example:
const newRevWalk = repo.createRevWalk();

newRevWalk.sorting(Git.Revwalk.SORT.Time, Git.Revwalk.SORT.Reverse);
newRevWalk.push(commit.sha());

newRevWalk.next().then(prevCommit => ...);

Where commit is some commit in the middle of history (for example 2 weeks ago). So, what I want to do is to walk through all commit starting from 2 weeks ago up to the most recent.
Did I miss something?

you need to reset the walker before doing anything: revwalk.reset() - i think this what you're missing
your promise chain will continue for a while, you need to iterate with something like [p-whilst](https://www.npmjs.com/package/p-whilst) or similar, below i just use async/await in a loop
from my experience: use commit.id() which returns an Oid, not commit.sha() which returns string; with Revwalk#push i couldn't get strings to work, then again, i was using References instead of the commit hash

The below is based on existing working code, but i haven't tested this snippet specifically:
(async () => {
    const revwalk = git.Revwalk.create(myRepo);
    revwalk.reset();
    revwalk.sorting(git.Revwalk.SORT.TIME , git.Revwalk.SORT.REVERSE);
    revwalk.push(commit.id());

    // step through all OIDs for the given reference
    const allOids = [];
    let hasNext = true;
    while (hasNext) {
      try {
        const oid = await revwalk.next();
        allOids.push(oid);
      } catch (err) {
        hasNext = false;
      }
    }
    revwalk.free();
    console.log('all Oids', allOids);
})();

@zamnuts thanks for response, I have finally got reverse order of history, but I still have one issue. Here is piece of my code:
revWalk.reset();
revWalk.push(someCommit.id());
revWalk.sorting(Git.Revwalk.SORT.TIME, Git.Revwalk.SORT.REVERSE);

revWalk.next().then(commit => console.log(commit.sha()));

so, in this code revWalk starts walking from the first commit in history (the oldest one), but desired behavior is to start from someCommit (which is somewhere in the middle of history), since I pushed it before calling .next().

hi, where to apply these codes to get the reverse order of commit ?


chore(refactor): move all terraform code into ./terraform

customarily, all tf templates are organized in the ./terraform directory

This should seem like a fairly simply task, but we should make sure the Lambda packer still functions.
The Lambda packer uses path.module
module "go_lambda_packer_event_parser" {
  source      = "./modules/go-lambda-packer"
  source_path = "${path.module}/lambda/event-parser"
  output_path = "${path.module}/event-parser.zip"
}

event-parser-lambda.tf

Done: https://github.com/tiborhercz/AWScissors/pull/7


Add support for dbt-teradata

Description
Establish a new profile configuration tailored for Teradata. This is essential as Teradata employs the dbt adapter named  dbt-teradata  and utilizes the Airflow Provider known as Teradata Provider.
Use case/motivation
This is essential as Teradata employs the dbt adapter named  dbt-teradata  and utilizes the Airflow Provider known as Teradata Provider.
Related issues
No response
Are you willing to submit a PR?

[X] Yes, I am willing to submit a PR!

Currently, Team from Teradata  is contributing to Airflow, dbt, Airbyte and Mulesoft. So, we wanted to contribute for this request as well.

Currently, Team from Teradata is contributing to Airflow, dbt, Airbyte and Mulesoft. So, we wanted to contribute for this request as well.

That's great to hear! Please feel free to submit a PR.

Currently, Team from Teradata is contributing to Airflow, dbt, Airbyte and Mulesoft. So, we wanted to contribute for this request as well.

That's great to hear! Please feel free to submit a PR.

I have developed a new profile mapping class for Teradata, which can be viewed at the following link: [link]. Unit tests have been successfully executed. However, an error occurs when attempting to install the package via the whl installer.

cosmos.dbt.graph.CosmosLoadDbtException: Unable to run ['/usr/local/bin/dbt', 'ls', '--output', 'json', '--project-dir', '/tmp/tmppe3rpgg5', '--profiles-dir', '/tmp/tmpe6bag4ak', '--profile', 'generated_profile', '--target', 'dev'] due to the error:
12:37:10  Running with dbt=1.7.11
12:37:11  Encountered an error:
Runtime Error
Credentials in profile "generated_profile", target "dev" invalid: 1025 is not valid under any of the given schemas

Currently, Team from Teradata is contributing to Airflow, dbt, Airbyte and Mulesoft. So, we wanted to contribute for this request as well.

That's great to hear! Please feel free to submit a PR.

Here the PR - https://github.com/astronomer/astronomer-cosmos/pull/1077

Currently, Team from Teradata is contributing to Airflow, dbt, Airbyte and Mulesoft. So, we wanted to contribute for this request as well.

That's great to hear! Please feel free to submit a PR.

I have developed a new profile mapping class for Teradata, which can be viewed at the following link. Unit tests have been successfully executed. However, an error occurs when attempting to install the package via the whl installer. Could someone help with creating integration tests to validate the functionality?

cosmos.dbt.graph.CosmosLoadDbtException: Unable to run ['/usr/local/bin/dbt', 'ls', '--output', 'json', '--project-dir', '/tmp/tmppe3rpgg5', '--profiles-dir', '/tmp/tmpe6bag4ak', '--profile', 'generated_profile', '--target', 'dev'] due to the error:
12:37:10  Running with dbt=1.7.11
12:37:11  Encountered an error:
Runtime Error
Credentials in profile "generated_profile", target "dev" invalid: 1025 is not valid under any of the given schemas

Issue got resolved and Able to run dbt teradata projects from with Airflow with new Teradata cosmos profile mapping configuraton.


Added item icon addresses to drop down token type menu

This update only includes MoM BASE items.
The idea is to make campaing designers capable of droping items, placing them on specific locations of the (virtual) board.
Tutorial wiki explains how to do so, but showing just the location, not a fancy icon of the item. Morever, the sample image is outdated regard the current version: 2.5.6
Sample image that seems outdated:

Looks good, thank you!

I am unsure what to test here. It seems to describe a feature that already works: when you place a QItem and use the 'highlight' setting in the event, Its shows the selected Qitem on the indicated location.

Aha! I figured it out.
when you create a new token or edit an existing one, you can now select its appearance from one of the item images from the base set.
It works on windows build 2.5.8a


Bugfix/doc errors

fix recent doc errors

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.142%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4982

Relevant Lines:
5292

💛  - Coveralls

Thanks for this!


Add context manager

This would let you run the model like this:
with model.hooks(fwd_hooks=hooks):
    hooked_loss = model(text, return_type="loss")

A quick example:
from transformer_lens.evals import sanity_check, induction_loss
from transformer_lens.HookedTransformer import HookedTransformer
import transformer_lens.utils as utils

model = HookedTransformer.from_pretrained('gpt2-small')
text = "The quick brown fox jumps over the lazy dog"
def head_ablation_hook(value, hook):
    value[:, :, 8, :] = 0.
    return value
hooks = [(utils.get_act_name("v", 0), head_ablation_hook)]

###### This allows us to do: ######
print("Normal induction loss", induction_loss(model))
with model.hooks(fwd_hooks=hooks):
    print('Hooked induction loss', induction_loss(model))

###### Making sure we can still do basic stuff ######
normal_loss = model(text, return_type="loss")
print(f"Normal loss: {normal_loss}")

ablated_loss = model.run_with_hooks(
    text,
    return_type="loss",
    fwd_hooks=hooks,
    )
print(f"Ablated loss: {ablated_loss}")

with model.hooks(fwd_hooks=hooks):
    hooked_loss = model(text, return_type="loss")
print(f"Hooked loss: {hooked_loss}")

normal_loss = model(text, return_type="loss")
print(f"Normal loss: {normal_loss}")

@slavachalnev just want you to know I'm not ignoring these. They (this and the other one) look like good PRs and I'm planning to review them properly in the next week.

Looks good!

tests are good (good coverage, cover reasonable test cases)
logical changes seem reasonable, possibly some added complexity but worth it for the feature.
Thanks so much!


drop dependency on whenjs

So your dependency when.js has its last commit about 4 years ago - https://github.com/cujojs/when/commits/master
I am pushing all my backend code esbuild (it is deployed on lambda) - this dependency's archaic way of exporting modules was cause my build to fail.
I have my own fork now but I though I would make a pull just in case you wanted to merge this.
All the tests are passing but I am not sure if there is more testing that might need to be done ...

Hi @des-des! I will be partnering with @nathanbuchar to review this PR. I just began my initial review and I noticed that if we are to remove this dependency, we will also need to update our SDK documentation. Can you please update your PR to remove line #86 from the README.md file which references this promise library? Thanks!

Hi @des-des! I will be partnering with @nathanbuchar to review this PR. I just began my initial review and I noticed that if we are to remove this dependency, we will also need to update our SDK documentation. Can you please update your PR to remove line #86 from the README.md file which references this promise library? Thanks!

@latoyazamill thanks for having a look, see what you think about my above comment. :)
I made the change you requested

@latoyazamill thanks for having a look, see what you think about my above comment. :)
I made the change you requested

Hi @des-des! I think I speak for the entire HS team when I say that I really appreciate your interest in contributing to our SDK and help us out. This is definitely a change I'd love to make, but as you pointed out, this is a potentially breaking change — even if it would be only on (very) old versions of Node.
To be safe, if we were to make any breaking changes we'd probably want to release them under a new major version. As of right now, I think that might be a bit overkill for such a small change. That said, we do also have other things we'd like to accomplish for a new major version of the SDK, so we'll definitely keep this in our back pocket :-)


Add MQTT support for Motion Detect

Just publish to topic, no message
homebridge/motion/Camera_name
you must add _ if you have space in name of camera
"platform": "Camera-ffmpeg",
"mqtt": "<IP_ADDRESS>",
"topics": "homebridge/motion/#",
"cameras": [
{
"name": "Camera name",
"motion": true,
"videoConfig": {
"source": "-re -i http://<IP_ADDRESS>",
"stillImageSource": "-i http://<IP_ADDRESS>",
"maxStreams": 5,
"maxWidth": 1280,
"maxHeight": 720,
"maxFPS": 15,
"maxBitrate": 1000
}
}

See #527, you will want to incorporate this into the breaking changes there to get merged.

@fennec622 Would you mind fixing this for the beta branch? I would gladly merge after that!

I try to make that this night
Thanks

I try to make that this night
Thanks

Awesome! I have released v2.0.0. Once you are done we can release v2.1.0


Drupal Solr Search API module reporting issues now on wodby image post-merge

From https://github.com/Islandora-Devops/isle-dc/issues/21#issuecomment-624796276
Re-testing the current setup has revealed now that the current wodby image and the Drupal build are having the following issues.

Drupal Report Status now indicating You are using an incompatible Solr schema

Solr path needs to be / not /solr.

This feels like something changed in the Drupal settings / code level. Putting back on the TO DO list for us to test / fix.

@g7morris have you looked at https://www.drupal.org/project/search_api_solr/issues/3070455 especially if we are using drupal search api solr 4.x?

@nikathone I think the question is if this can be fixed, should we move away from using wodby as the Solr image? (I've put you on this for both images to see what it reveals)


Terminal text becomes corrupted on Linux

Recently I've been having issues with the integrated terminal on Linux, where the terminal seems to get into some sort of bad state where glyph textures seem to be corrupted or missing. When this happens, the terminal is still functional in the sense that the connected process is still alive and you can type and enter shell commands. But much of the text is missing and makes the terminal unusable. Sometimes instead of being blank, characters will be distorted, white squares, or random color noise.
Simply closing the terminal completely and opening it again seems to resolve the issue, but then I have to start any commands I've been running the terminal again which makes this bug annoying.
I first experienced this bug I think with either 1.32 or 1.33, fairly recently. I use VSCode on Mac and Windows too but haven't seen it happen on those platforms yet.
It usually happens when I have a terminal open for a while, say 30 minutes, with a single command running (like watch). Interestingly, I can tell it is about to happen, because CPU and memory usage typically spikes up a few seconds prior, and then my whole system freezes for a couple seconds. Then this bug occurs immediately after.

VSCode Version: 1.33.1
OS Version: Ubuntu 18.04 amd64

Steps to Reproduce:
Below is the easiest way I've been able to reproduce it, but it isn't the only time it happens.

Open a terminal window with something in it.
Suspend the computer.
Resume the computer.

Does this issue occur when all extensions are disabled?: Yes
Here's some screenshots:

/duplicate https://github.com/Microsoft/vscode/issues/69665


Modify test so it updates the timestamp on FSs with 1-second resolution

Temporarily modify the test until a proper fix is applied.
rdar://56045388

@swift-ci please smoke test


Invalid JSON

The JSON template in this repository is broken. Please upload/redownload the template from the custom template editor to ensure the code is correct.

Thanks for the feedback!
Unfortunately i wasn't able to reproduce the issue. Please make sure you are importing the tag in a GTM server container.
We have also updated our YAML file to contain the latest version of the tracking tag.


Use of UIView.bounds from the background thread

I found with thread checker that (at least on iOS11) method
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
is used on the background thread.
That probably can explaid some of the accidental crashes because method uses self.bounds that should be called from main thread only.

To resolve this issue, I'd declare a property (cachedBounds)  which can be access from background threads and is updated in -(void)layoutSubviews

Pull requests welcome to implement this behaviour or a fix for this warning

@mmackh why have you create property of  cachedBounds.and what type of object is this...can you please share complete code of this methods causing thread warning and some time shows black screen on iPad.


julia: backport test tweak for mpfr-4.1.1

Without the change julia test fails on staging-next as:
Error in testset MPFR_jll:
Test Failed at /build/julia-1.8.3/usr/share/julia/stdlib/v1.8/MPFR_jll/test/runtests.jl:7
  Expression: vn == v"4.1.0"
   Evaluated: v"4.1.1" == v"4.1.0"
ERROR: LoadError: Test run finished with errors

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Let's drop version check with https://github.com/NixOS/nixpkgs/pull/206301


new: judge commit command

Ei @jasondellaluce
I refactored the parsing logic to be more robust and added filenames to stderr in case of a bad commit
Let me know WDYT


Create task shortcuts

As a project manager familiar with TaskHub, I want to be able to access shortcuts to create/delegate commonly repeated tasks.

This user story was not implemented in v1.4.


Issue with setMaxTopicLength with dev branch

Hi,
First of all, thank you VERY MUCH for your work. I really like Homie library !
I have just replaced the master (still v1) with the v2 release. After adapting code as mentioned in documentation, I still have an issue with AsyncMQTTClient library when I try to compile the examples or my own sketchs.
The error message is:
Arduino: 1.6.8 (Linux), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"

/root/Arduino/libraries/homie-esp8266-develop/src/Homie/Boot/BootNormal.cpp: In member function 'virtual void HomieInternals::BootNormal::setup()':
/root/Arduino/libraries/homie-esp8266-develop/src/Homie/Boot/BootNormal.cpp:497:44: error: 'class AsyncMqttClient' has no member named 'setMaxTopicLength'
   _interface->mqttClient->setKeepAlive(10).setMaxTopicLength(MAX_MQTT_TOPIC_LENGTH);
                                            ^
exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

I have commented following line in BootNormal.cpp (line 497) and it seems to work fine:
``_interface->mqttClient->setKeepAlive(10).setMaxTopicLength(MAX_MQTT_TOPIC_LENGTH);
`
I have looked for a new version (or a dev branch for async-mqtt-client) of AsycMQTTClient lib but I did not find any. May I have miss something or is it a bug ?
Thank you
Alex

This was implemented 6 days ago, in https://github.com/marvinroger/async-mqtt-client/commit/3f8cc2fe63dd9911e57a83ca0f2a8ffc8805bc16
Download the latest .zip tree and you shoud be fine!

And glad you like the project. 😉

Ok thanks. I will make a try.

@AlexValois any update?

With latest versions of async and homie-esp8266, it works fine.
Thank you


UE4 Editor shutdown crash fix

Fix for a crash during UE4 editor shutdown when python editor was opened before

Thanks !


[Prioritized] JSON normalization is not consistent between playback and record

When recording, we attempt to normalize the JSON of the request body as long as it is a text content type. When matching in playback, we only normalize the request if the content type contains "json". This can result in playback mismatches when the actual request is valid JSON, but the content type is some other text type. Should be fairly rare in practice but would be good to fix this to be consistent.

I think that addressing this will probably address the other normalize line endings issue as well.

I think that addressing this will probably address the other normalize line endings issue as well.

It will for content that can be parsed as JSON. But it won't help for other content.


Hessian of linalg.norm

Hello,
I'd like to report a possible bug I encountered when computing Hessians of functions involving jax.numpy.linalg.norm.
If the input is different from zero, results are OK, however, if the Hessian is evaluated at zero it returns nans.
Thanks in advance!
import jax
T = lambda v : jax.numpy.linalg.norm(v)
jax.hessian(T)(0.0)

# returns DeviceArray(nan, dtype=float64, weak_type=True)

Hey! Not a maintainer, but mathematically, that result actually makes sense: The Euclidean norm is not differentiable at the origin, and hence, since gradients do not exist, the Hessian will not exist, either.
For a proof of this, see this thread on SO (among others, this seems to be a frequently asked question): https://math.stackexchange.com/questions/1175277/why-isnt-the-l-2-norm-differentiable-at-x-0
An immediate corollary of that discussion is that the sequence $h \rightarrow 0$ that you use to form the partial derivative will determine the value of that derivative along that direction (in math, this is usually called a "directional derivative"). But, from a library developer point of view, if you were to choose a limit here, say, from the desire to avoid NaN values, which one would it be? This ambiguity poses more problems than it solves here (e.g., how would people without a math background debug unexpected values?), and thus it is (imo) good behavior that the result is NaN.
That being said, if you want to fix a desired zero-behavior in your function, I think your best bet might be defining a "piecewise" gradient using jnp.where with a conditional on the input 0. Mathematically, this is changing the gradient on a null set, which preserves things like Lebesgue integrals, but it can be used to conveniently eliminate numerical issues like this. I think there is a section in the docs on that, as well as some previous discussions, since this problem comes up frequently, albeit in slightly different formulations (I think @jakevdp is quite the expert on it).
Let me know if anything is unclear, then I am happy to clarify :)

Thanks! Yes of course, I should have noticed this before posting.
I'm not sure if its really a bug, but I still get nan's when computing the hessian of np.linalg.norm(v)**2 (at v=0), even though this one mathematically should be defined.


Inference produces dotted segmentation output [deepmedic]

Hello,
I'm trying to train the 'deepmedic' model with the BraTS 2018 dataset.
Data: The BraTS 2018 dataset is very similar to the BraTS 2017 dataset. The only difference is that there are 3 tumour sub-regions (BraTS 2018) instead of 4 tumour sub-regions (BraTS2017). Therefore, including the background, the number of classes is 4 for BraTS 2017. The BraTS 2018 images are from size 240x240x155. No other pre-processing was done despite the image normalization to zero-mean and unit variance with the setting  "whitening = True" in the config.
Training: First, I trained the model using all cases from the BraTS 2018 dataset (Figure 1). Then, I decided to use just 10 BraTS 2018 cases: 5 HGG, and 5 LGG (Figure 2). As one can see in the config file according to the fraction parameters, the 10 cases are split in: 7 cases for training, 2 cases for validation, and 1 case for inference.
After training two 'deepmedic' models with the settings in the attached config file and the two different data sets, the following segmentations will be produced. The coloured area is the ground truth segmentation. In Figure 1, the similarity between both segmentations seems not too bad besides the fact of all the other grey pixels.
Figure 1: all cases, and settings exactly as in the attached config file.

Figure 2: just 10 cases, and settings exactly as in the attached config file.

I read a lot through all the issues related to this problem, tried different settings etc. but wasn't able to train the model properly. For example, I tried 30000 iterations and then the segmentation output was entirely white (a plain white output image). The Dice loss was nearly the same as in the training/validation curves above (Figure 3). I am not sure but I guess this has to do with the number of classes I am trying to segment and is normal?
Figure 3: Training and validation curve for 30k iterations with Dice loss.

At the moment I have no idea how to fix this problem and train the model properly. I hope you can help me out, because I am using NiftyNet for my masters dissertation and also try to implement a novel solution in parallel.
Thank you in advance.
Best,
Andreas
dm_config.txt

So weird.
I do not have experience with deepmedic, but I try U-Net with brats2018, it works well.
Do you have similar problem with U-Net in niftynet.

Hi there,
I had a look at the config file and I think the most likely culprit is the 'window sampling' parameter. You have chosen uniform, which means that the 9x9x9 label window is equally likely to be anywhere in the volume. This means that you will see relatively few foreground patches.
In the DeepMedic MIA paper, they say

Specifically, we build the training batches by extracting segments from the training images with 50% probability being centred on a foreground or background voxel, alleviating class-imbalance.

What I'd try is making a foreground mask (binary mask that is >0 for any non-background label) and using that as an input to use balanced window sampling.
I would also use the Dice + Cross Entropy loss instead of just Dice: the cross-entropy bit does well at pushing down the probabilities of foreground in empty regions.
Please update when you've tried these things!

So weird.
I do not have experience with deepmedic, but I try U-Net with brats2018, it works well.
Do you have similar problem with U-Net in niftynet.

@JunMa11 Any chance you could share your config for training U-Net on Brats2018?
Thanks in advance!


Error: invalid data

Hi,
What I did:
cordova plugin add https://github.com/mircoc/cordova-plugin-settings-hook
Added the following to config.xml:
   <platform name="android">
    <config-file target="AndroidManifest.xml" parent="/*">
      <uses-permission android:name="android.permission.READ_CONTACTS" android:maxSdkVersion="15"/>
      <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
    </config-file>
   </platform>

And I get the dreaded invalid data. The problem is with the parent tag. The examples are wrong since they use invalid xml:
<config-file target="AndroidManifest.xml" parent="/*>  <- note that there is no ending quote in parent
        <supports-screens

Next I tried to set parent="manifest" (because I want to insert stuff under manifest). There is no error, but the file isn't changed either.
FYI: I then saw the demo directory... run cordova platform add android -> Error: invalid data

cordova -v
6.0.0

Mirco, thanks for updating the readme.
I still get the same error. I'm willing to debug it, but I don't know how - tried using node-inspector but I can't attach to it (only to the parent node.exe). How do you debug it?

Thank you for your very detailed bug report!
Can you send to me your config.xml, so i can reproduce the bug on my machine ?

Of course, here it is...
config.zip
The /* will cause invalid data:
<config-file platform="android" target="AndroidManifest.xml" parent="/*">
The next line will not cause the invalid data error, but doesn't work (I want to insert stuff under manifest, same level as uses-permission):
<config-file platform="android" target="AndroidManifest.xml" parent="manifest">
I did some debugging but it's getting weirder ;) Put a lot of console.log's throughout the code but I'm getting the error at different places... also the error seems to be printed from the catch block in main but if you put another console.log after the stdout.write(e) - it's not displayed. [sorry I'm very new to js]
After some investigation... found this:
data = {
  "_id": 1239,
  "tag": "supports-screens",
  "attrib": {
    "android:xlargeScreens": "false",
    "android:largeScreens": "false",
    "android:smallScreens": "false"
  },
  "text": "",
  "tail": "\n            ",
  "_children": []
}

-> executes till here
// copy all config.xml data except for the generated _id property
                        data.forEach( function (prop, propName) {

-> this is never reached
I guess the problem is in data.forEach...Isn't forEach supposed to work on arrays ([]) and not objects ({})?
Excuse my noobnes ;)

Grazie mille! Works perfectly now.
BTW: Can you please update the cordova plugins registry so that 'cordova plugin add' fetches the latest version? Or is that not in your control?

I just updated also npm. I had an issue doing it because a demo project were making the upload too big and npm refusing update. Now i solved it adding a .npmignore and we have 0.2.2 available.

Thanks!

Hi,
If I want to replace an element defined within the config-file how can I do that. Below one is not working for android. It's get appended to the same element
<config-file target="AndroidManifest.xml" parent="application">             <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/fb_app_id"/> </config-file>


[zero-copy] stabilize InputRef

Makes public the minimal API for custom parsers - no state access, non non-terminal errors, but you can parse, recover, and error correctly.

Ready to merge?

Yep


Restoring packages is slow in x64-osx CI

Restoring cached package in vcpkg CI takes much longer for x64-osx. E.g.
https://dev.azure.com/vcpkg/public/_build/results?buildId=82899&view=logs&j=7922e5c4-0103-5f8f-ad17-45ce9bb98e80&t=66eef212-08d6-5e6c-a560-7d01149d0188&l=6237

x64-windows: Restored 64 package(s) from HTTP servers in 18.47 s.
x64-linux: Restored 115 package(s) from HTTP servers in 2.795 min.
x64-osx: Restored 60 package(s) from HTTP servers in 4.589 min.

@dg0yt Unfortunately, there is nothing we can do about this. The previous approach was to run failed unzip operations again which didn't work well. See https://github.com/microsoft/vcpkg-tool/pull/842 and https://github.com/microsoft/vcpkg-tool/pull/695 for more details.

I don't think that it has something to do with the mutextes. I guess the osx ci machines are simply a lot slower because the hardware is worse

I didn't want to jump into conclusions.

I guess the osx ci machines are simply a lot slower because the hardware is worse

Sounds reasonable. After reducing a qt5 dependency to qt5-base for the same PR, I see

x64-windows: Restored 49 package(s) from HTTP servers in 12 s.
x64-linux: Restored 107 package(s) from HTTP servers in 2.518 min.
x64-osx: Restored 46 package(s) from HTTP servers in 40.6 s.

I would take this as an indication the the time scales more with the total size in bytes than with the number of packages.

We really can't make changes for this new device in a short period of time. :(

I don't think that it has something to do with the mutextes. I guess the osx ci machines are simply a lot slower because the hardware is worse

We really can't make changes for this new device in a short period of time.

I would take this as an indication the the time scales more with the total size in bytes than with the number of packages.

Thanks for the data. Different systems are built and handle bytes differently and the way the port is built is determined upstream, even if we update the machine it won't solve the problem.
According to the time policy, I need to close it. Because I think you have found the answer. (even if it is not perfect)


Incorrect device name/type

Finaly got this up and running today. Found an oddity; Looks like either the name was incorrectly duplicated the second time GMS3 is listed, or there is a device mismatch going on .
Based on everything around it, looks like it's one line all the way across per device , then I found this on:

GMS3 is a Ring Gen 2 Motion sensor, no way it could be LR.

LRMS2 is a Zooz ZSE18LR,  and should be paired LR. so how did these two end up on the same line?

For comparison, here is the rest of the table

Figured it out. Found a entry error.


TiptapTransformer shows error while trying to set initial content from a template HTML to YDoc

Description
As per this (https://tiptap.dev/hocuspocus/server/hooks#on-load-document) documentation, we can create a Y.js document from JSON/HTML (once) to set the initial content of the editor, which fetches an html template content from a Laravel API. It is for setting the initial content only once and after that, I am using RethinkDB for persistent storage using the Database Extension. But when I try to convert the html, it shows the error :
RangeError: Unknown node type: undefined
    at Schema.nodeType (file:///collab_server/node_modules/prosemirror-model/dist/index.js:2445:19)
    at Function.fromJSON (file:///collab_server/node_modules/prosemirror-model/dist/index.js:1522:23)
    at prosemirrorJSONToYDoc (file:///collab_server/node_modules/y-prosemirror/src/lib.js:251:20)
    at Prosemirror.toYdoc (file:///collab_server/node_modules/@hocuspocus/transformer/dist/hocuspocus-transformer.esm.js:2643:20)
    at Tiptap.toYdoc (file:///collab_server/node_modules/@hocuspocus/transformer/dist/hocuspocus-transformer.esm.js:2669:39)
    at fetchContent (file:///collab_server/server.rethink.js:49:34)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

The sample html fetched from API is as simple as:

My First Heading

My first paragraph.

 {
			...
			...
			...

fetchContent code:
async function fetchContent() {
	try {
		console.log("Fetching from API....");
		const response = await fetch(
			"http://webserver/api/template?room=Lqwvcz4"
		);
		const data = await response.json();
		const ydoc = TiptapTransformer.toYdoc(
			data.template_content,
			"default",
			[StarterKit]
		);
		return ydoc;
	} catch (error) {
		console.error(error);
	}
}

Expected behavior
Set the initial content from the html.
Environment?

operating system: MAC OS 12.1, Ubuntu
browser: Chrome, Firefox, Safari
mobile/desktop: Desktop
Hocuspocus version: 1.0.0-beta.2

hey @binurajrvt, indeed our documentation is inaccurate here, thanks for this! Will fix it now.
You have to pass JSON to the transformer, so this should work for you:

const html = `

My First Heading

My first paragraph.

`

new HocuspocusProvider({
  document: TiptapTransformer.toYdoc(
    generateJSON(html, [StarterKit]), // this is the important part
  ),
})

So this has to be on client side where we initialise provider? I moved the transformation part from hocuspocus server code and added in client side like:
const html = `

My First Heading

My first paragraph.

`;

const ydoc = TiptapTransformer.toYdoc(
	generateJSON(html, [StarterKit]) // this is the important part
);

const initialiseSocket = (room) => {
	const websocketProvider = new HocuspocusProvider({
		document: ydoc,
		url: process.env.REACT_APP_HOCUSPOCUS_WS_URL,
		parameters: {
			key: "321456987",
		},
		name: room,
	});
	return websocketProvider;
};

const websocketProvider = initialiseSocket(room));

But now content is duplicated several times when we open the editor.  Should this be used on the client side or server side Server.configure on onLoadDocument ? How to do that only once for initial setting? I am using rethink db on server side for persistence with Database extension as mentioned above.


Slides disappear in RTL with virtual slides and renderExternal

This is a (multiple allowed):

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

Swiper Version: 4.5.0, 4.0.0

Platform/Target and Browser Versions: Chrome 74, Firefox 66, Safari 12.1 (all macOS)

Live Link or JSFiddle/Codepen or website with isssue: https://codesandbox.io/s/8no41jp6l8

What you did

Open the CodeSandbox. Slide 1 will be displayed.
Swipe to the right for the next slide (because on RTL). Swipe again a second time. Now there are no slides displayed. You can slide back to the second and it re-appears.

Expected Behavior
It's expected for the slides to keep appearing.
Actual Behavior
After the second slide (probably slidesPerView + 1 more as a buffer), the other slides aren't displayed (probably the wrong offset is returned on virtual slides data?).

@alejandroiglesias  - did you manage to find a workaround for this bug?

@joshudev no. Unfortunately, I had to force the slider to work as LTR even on RTL languages.

@alejandroiglesias - ok, thanks. We've dropped the use of virtual slides for now instead.


./setup.sh not working

Context
I followed the README file (docker pull, curl setup.sh, docker-compose.yml, .env), edet the .env file and started docker-compose up -d mail
Works so far!
However, when I want to add an email account with the command:
./setup.sh email add<EMAIL_ADDRESS>'mysecret'
I get:
/bin/sh: 0: Can't open ./setup.sh
Even I have no parameters, like
./setup.sh
gives me:
/bin/sh: 0: Can't open ./setup.sh
Where do I start to find out, what happens, or why not happening?

I might have solved it. There was no permission to read on setup.sh
chmod 771 setup.sh   solved that!