Factory 2.0! Input on Factory's future is needed!

Factory is evolving and I'm currently working on Factory 2.0 which adds true container-based dependency injection! This allows Factory to provide a variety of traditional dependency injection and service locator strategies.
class ContentViewModel: ObservableObject {

    // Old-style Factory 1.0 static service Locator
    let oldSchool = Container.oldSchool()

    // New Factory 2.0 shared service Locator
    let service = Container.shared.constructedService()

    // Constructor initialized from container
    let service2: MyConstructedService

    // Lazy initialized dependencies from passed container
    private let container: Container
    private lazy var service3: MyConstructedService = container.constructedService()
    private lazy var service4: MyServiceType = container.cachedService()

    // Annotated, keyPath-based dependency injection from default shared container
    @Injected(\.constructedService) var constructed

    // Annotated, keyPath-based dependency injection from a custom container
    @Injected(\MyContainer.anotherService) var anotherService

    // Constructor with passed container
    init(container: Container) {
        // construct from container
        service2 = container.constructedService()
        // save container reference for lazy resolution
        self.container = container
    }

}

Supporting containers has been one of my goals for awhile now, as it dramatically increases the environments and applications in which Factory can be used and considered.
But, as with most things, there's a catch: In order to do this the dependency definition has to change, making this a breaking change between 1.0 and 2.0.
Here's the existing mechanism.
extension Container {
    static let myServiceType = Factory<MyServiceType> {
        MyService()
    }
}

And here's a version of the same thing in Factory 2.0.
extension Container {
    var service: Factory<MyServiceType> {
        Factory(self) { MyService() }
    }
}

The Factory is now defined as a Container Member, and not a Container Class Member as is done today.
Note that three things must occur to make container Factory definitions work as expected.

The Factory definition is now returned as a computed value.
The Factory return type must be explicitly specified (e.g. Factory<MyServiceType>).
The Factory requires a reference to its container. (self)

extension Container {
   var service: Factory<MyServiceType> {
       Factory(self) { MyService() }
   }
}

This adds a bit of extra code, but makes Factory much, much more powerful.
Note the definition could be written in several ways:
extension SharedContainer {
    var service1: Factory<MyServiceType> {
        Factory(self) { MyService() }
    }
    var service2: Factory<MyServiceType> {
        .init(self) { MyService() }
    }
    var service3: Factory<MyServiceType> {
        factory { MyService() }
    }
    var service4: Factory<MyServiceType> {
        unique { MyService() }
    }
}

The first is fully explicit. The second uses the .init shorthand. The third depends on a helper function that returns the correctly bound Factory; and the fourth introduces a few more helper functions on the container that specifically indicates the scope (unique, singleton, shared, etc.) at the same time.
Updating and reseting services would work much as it does today.
    Container.shared.service.register { MockServiceN(8) }

Or it can be done as follows if you have access to the specific container. This version changes the behavior on that instance of that container and no where else.
    container.service.register { MockServiceN(8) }

This leaves me a few questions. It's possible to make Factory 1.0 and 2.0 work together, but I'm inclined to deprecate the existing methodology as the two approaches differ somewhat in behavior, in how dependencies are managed, and, of course, supporting the old and new code styles increases the library size.
So...

Should Factory 1.0 be deprecated?
Or should we accept that Factory 2.0 will be a breaking change and be done with it?
And in any case, which definition style (1-4) shown above would be preferred? (Or just provide all of 'em?)

I really want Factory to be the best DI system for Swift, and to do that I really need some help here. So leave a comment if you approve, disapprove, or have questions.

@rydamckinney Resolver has a .container scope that's basically a cache for the current Resolver instance.
That scope didn't make a lot of sense for Factory since it didn't really have containers, but I was in fact planning on adding that capability (or something similar) back to Factory 2.0.
That said, I was also thinking of having a container simply zap any cached instances associated with it from the various scopes when it was released. I mean, if the container goes away you're not going to be able to ask it for a new singleton, are you?

I like this way of definition:

 var service4A: Factory<MyServiceType> {
        factory { MyService() }
    }

It makes sense but I have a suggestion, instead of passing the container scope, let's use a typed container for example, factory for an instance, shared for a singleton, and graph for graph, etc...
 var service4A1: Factory<MyServiceType> {
        factory { MyService() }
    }

     var service4A2: Factory<MyServiceType> {
        shared { MyService() }
    }

    var service4A3: Factory<MyServiceType> {
        graph { MyService() }
    }

      var service4A3: Factory<MyServiceType> {
        scoped(.myScope) { MyService() }
    }

Regarding this point: ParameterFactory would be going away as well, I guess it is also a good idea, but why don't we change everything from variable to function just to keep all the styles of declaring a factory similar ?

func service4A1() -> Factory<MyServiceType> {
        factory { MyServiceType() }
    }

The only thing I don't like is accessing the container as a singleton instance using shared, I think it is better to expose container functions as static functions, as is, and hide the singleton accessor,.

It makes sense but I have a suggestion, instead of passing the container scope, let's use a typed container for example, factory for an instance, shared for a singleton, and graph for graph, etc...

I mentioned that above, "The fifth variant adds a few more helpers that do the same thing as factory but specifically indicates the scope (unique, singleton, shared, etc.) at the same time."

Regarding this point: ParameterFactory would be going away as well, I guess it is also a good idea, but why don't we change everything from variable to function just to keep all the styles of declaring a factory similar ?

Property wrapper key paths depend on variables.

The only thing I don't like is accessing the container as a singleton instance using shared, I think it is better to expose container functions as static functions, as is, and hide the singleton accessor,.

Factory 2.0 is multi-modal. You can use "pure" containers for DI, or you can use .shared and basically do a variant of what's done today. The shared variable ensures that you know what instance of what container is responsible for caching and registrations.
It's also required if you decide you want to use the annotation property wrappers keypaths as they need to be able to find an instance of a container to use.

I mentioned that above, "The fifth variant adds a few more helpers that do the same thing as factory but specifically indicates the scope (unique, singleton, shared, etc.) at the same time."

Just seconding your point 😄

Property wrapper key paths depend on variables.

You are right, I usually rely on constructor injection so I missed the injection using the property wrapper feature.

So in defining a 2.0-version Factory I could do...
    var sample1: Factory<MyServiceType> { Factory(self, scope: .shared) { MyService() } }

But that's clunky. I'd prefer to do...
    var sample2: Factory<MyServiceType> { Shared { MyService() } }

Which is a lot cleaner. The problem, however, is that the capitalized Shared object in that sample is in fact an inlinable function that basically returns Factory(self, scope: .shared, factory: factory) for you.
I could write it as follows...
    var sample3: Factory<MyServiceType> { shared { MyService() } }

But some stubborn part of me prefers the capitalized version. Anyone for or against?

It's great to read up on the new plans, looking forward to it! And cool that you gather feedback here :)
I prefer .shared as static function to allow auto completion
var sample3: Factory<MyServiceType> { .shared { MyService() } }

That seems to me the swifty way. An uppercased Shared gives me the notion that it is a constructor rather than a function.

@bensLine  The shared function works because it's an extension on the container and as such knows about the container.
    var sample9: Factory<MyServiceType> {
        shared { MyService() }
    }

A shared would be a static on the Factory itself and as such it won't work. Or, rather, it would, but it would then need to be .shared(self) in order to pass the container.
    var sample9: Factory<MyServiceType> {
        .shared(self) { MyService() }
    }

Narrowing in on container helper names. Which is preferable?
extension ContaineAr {
    var service: Factory<MyServiceType> {
        factory { MyService() }
    }
    var cachedService: Factory<MyServiceType> {
        factory.cached { MyService() }
    }
    var singletonService: Factory<SimpleService> {
        factory.singleton { SimpleService() }
    }
    var sharedService: Factory<MyServiceType> {
        factory.shared { MyService() }
    }
}

Or...
extension ContainerB {
    var service: Factory<MyServiceType> {
         scope.unique { MyService() }
    }
    var cachedService: Factory<MyServiceType> {
         scope.cached { MyService() }
    }
    var singletonService: Factory<SimpleService> {
         scope.singleton { SimpleService() }
    }
    var sharedService: Factory<MyServiceType> {
         scope.shared { MyService() }
    }
}

The helper functions define the proper scope and also correctly bind the returned Factory to the current container. I've come to the decision to use a single branch point (factory/scope) to minimize pollution of the container's namespace with Factory-specific helper functions.
The factory version only requires the scope if you want something different than the default unique scope, while the scope versions require you to define (and consider) the scope for each definition.
Both make Factory easier to use than writing out the full, formal definition.
extension Container {
    var service: Factory<MyServiceType> {
        Factory(container: self, scope: .unique) {
            MyService()
        }
    }
}

At the moment I think I prefer the scope version.
Thoughts?

Closing in on final syntax for Factory registrations.
// Example of basic registration in a Factory 2.0 container.
extension Container {
    var service: Factory<MyServiceType> {
        factory { MyService() }
    }
}

// Examples of scoped services in a Factory 2.0 container
extension Container {
    var cachedService: Factory<MyServiceType> {
        factory(scope: .cached) { MyService() }
    }
    var singletonService: Factory<SimpleService> {
        factory(scope: .singleton) { SimpleService() }
    }
    var sharedService: Factory<MyServiceType> {
        factory(scope: .shared) { MyService() }
    }
}

// Example of service with constructor injection that requires another services
extension Container {
    var constructedService: Factory<MyConstructedService> {
        factory { MyConstructedService(service: self.cachedService()) }
    }
}

// Example of parameterized functional registration in a Factory 2.0 container
extension Container {
    func parameterized(_ n: Int) -> Factory<ParameterService> {
        factory { ParameterService(count: n) }
    }
}

Think this provides a good compromise between clarity and expressiveness. Thoughts?

A working version of 2.0 I in the develop branch...

I'm not a fan of defining a factory with a scope this way:
var sharedService: Factory<ServiceType> {
       factory { MyService() }.shared
}

I guess passing it as a type would be more elegant.
var sharedService: Factory {
factory(.shared) { MyService() }
}

So in defining a 2.0-version Factory I could do...
    var sample1: Factory<MyServiceType> { Factory(self, scope: .shared) { MyService() } }

But that's clunky. I'd prefer to do...
    var sample2: Factory<MyServiceType> { Shared { MyService() } }

Which is a lot cleaner. The problem, however, is that the capitalized Shared object in that sample is in fact an inlinable function that basically returns Factory(self, scope: .shared, factory: factory) for you.
I could write it as follows...
    var sample3: Factory<MyServiceType> { shared { MyService() } }

But some stubborn part of me prefers the capitalized version. Anyone for or against?

I prefer the non-capitalized version, makes more sense to me.

// Example of parameterized functional registration in a Factory 2.0 container
extension Container {
    var parameterService: ParameterFactory<Int, ParameterService> {
        ParameterFactory(self) { ParameterService(value: $0) }
    }
}

So you reverted from this ?
extension Container {
    func parameterized(_ n: Int) -> Factory<ParameterService> {
        unique { ParameterService(count: n) }
    }
}

I would prefer the second to be honest, it is cleaner than the first.

Would something speak against providing functions in the Container extension to modify the scope? Using your example:
// Example of basic registration in a Factory 2.0 container.
extension Container {
    var service: Factory<MyServiceType> {
        factory { MyService() }
    }
}

// Examples of scoped services in a Factory 2.0 container
extension Container {
    var cachedService: Factory<MyServiceType> {
        cachedFactory { MyService() }
    }
    var singletonService: Factory<SimpleService> {
        singletonFactory { SimpleService() }
    }
    var sharedService: Factory<MyServiceType> {
        sharedFactory { MyService() }
            .decorated { print("DECORATING \($0.id)") }
    }
}

// Example of service with constructor injection that requires another service
extension Container {
    var constructedService: Factory<MyConstructedService> {
        factory { MyConstructedService(service: self.cachedService()) }
    }
}

// Example of parameterized functional registration in a Factory 2.0 container
extension Container {
    var parameterService: ParameterFactory<Int, ParameterService> {
        ParameterFactory(self) { ParameterService(value: $0) }
    }
}

So you reverted from this ?
extension Container {
    func parameterized(_ n: Int) -> Factory<ParameterService> {
        unique { ParameterService(count: n) }
    }
}

I would prefer the second to be honest, it is cleaner than the first.

So did I, except it doesn't work. You need access to the factory to resolve it and pass in the parameter (service(5)). And written as a function you can't get to the Factory to register a new closure w/o calling the function with a parameter.
Turns out I originally wrote it that way for a reason.

Would something speak against providing functions in the Container extension to modify the scope? Also, to me it feels weird to use a noun for a function. Could it be named as an action, as is common practice? This way you get natural readability, as in "this is a Factory making MyService"

One could, but I was really trying to avoid polluting the container namespace with a lot of factory-specific helper functions for each and every scope. The modifier syntax helped eliminate that, came in handy for adding decorator, and will be useful for a few other things I have in mind.
Will consider the verb thing, but haven't found one I really like...

Consider...
extension Container {

    // Formal definition constructing Factory and binding it to current container
    var service1: Factory<SimpleService> {
        Factory(self) { SimpleService() }
    }

     // Asking container to make an associated factory for you...
    var service2: Factory<MyServiceType> {
        self { MyService() }
    }

}

Playing with options and thought the latercallAsFunction version was fun... if a bit mind bending.

What about my other comments ? 😄

I'm not a fan of defining a factory with a scope this way:
var sharedService: Factory<ServiceType> {
       factory { MyService() }.shared
}

I guess passing it as a type would be more elegant.
var sharedService: Factory<ServiceType> {
       factory(.shared) { MyService() }
}

What about this point ? 😄

@ahmadmssm  As mentioned, the modifier syntax helped eliminate a lot of the container namespace pollution, came in handy for adding decorator, and will be useful for a few other things I have in mind. I really don't want to start providing 15 different ways of doing the same thing.

So no hope to change it ?, because even from a convention perspective, it seems misleading a little bit and for me, the function param makes much more sense, but this is just my opinion.

Once again closing in on final syntax for Factory registrations, using SwiftUI-style modifiers for scopes and decorators.
// Example of formal registration in a Factory 2.0 container.
extension Container {
    var service: Factory<MyServiceType> {
        Factory(self) { MyService() }
    }
}

// Same as above, but asks current container to build and bind Factory for us.
extension Container {
    var service: Factory<MyServiceType> {
        self { MyService() }
    }
}

// Examples of scoped services in a Factory 2.0 container using scope modifiers
extension Container {
    var cachedService: Factory<MyServiceType> {
        self { MyService() }.cached
    }
    var singletonService: Factory<SimpleService> {
        self { SimpleService() }.singleton
    }
    var sharedService: Factory<MyServiceType> {
        self { MyService() }
            .decorator { print("DECORATING \($0.id)") }
            .shared
    }
}

// Example of service with constructor injection that requires another service
extension Container {
    var constructedService: Factory<MyConstructedService> {
        self { MyConstructedService(service: self.cachedService()) }
    }
}

// Example of parameterized functional registration in a Factory 2.0 container
extension Container {
    var parameterService: ParameterFactory<Int, ParameterService> {
        self { ParameterService(value: $0) }
    }
}

Note that any factory modifiers added (.shared, .decorator, .etc) work on both Factory and ParameterFactory. This simplifies implementation internally and helps prevent the multiplication of helper functions on the Container.

One more suggestion, could we change make to create ?

With Factory 2.0 can be possible a dynamic resolver like koin library does? Ex:
let service: XPTOProtocol? = container.get()

With Factory 2.0 can be possible a dynamic resolver like koin library does? Ex:
let service: XPTOProtocol? = container.get()

Well, you could do something like...
let service: XPTOProtocol? = container.get(\.xptqService)
But why?
let service: XPTOProtocol? = container.xptqService()
Bottom line is that it defeats the compile-time-safe rationale behind Factory. If you want blind registrations and resolutions look at Resolver.

With 2.0, it seems like we'll have to write an initializer to pass on the container first. One of the benefits we were reaping of the 1.0 design was conciseness. We didn't had to write down an init function at all for a lot of our constructs. Also, if containers are gonna be on the heap, there could be chances of dynamic resolution failures. What are some of the benefits of allocating containers on the heap ?
Also, as far as the following syntax goes, it looks ambiguous compared to 1.0.
var cachedService: Factory<MyServiceType> {
    factory { MyService() }.cached
}

So, the way someone will read the above is - create a member variable that is a Factory returning type MyServiceType. To initialize an instance, use some magical factory helper (then there's Factory before that) within it and create the instance within the factory's closure. Then apply the scope decorator. It seems like we are trying too hard to skew the API design to follow SwiftUI coding style.
Then, the following is a different way of creating a Factory where self is passed to ParameterFactory compared to the previous approach where helper is used. This looks inconsistent as far as API design goes.
extension Container {
    var parameterService: ParameterFactory<Int, ParameterService> {
        ParameterFactory(self) { ParameterService(value: $0) }
    }
}

Would it make sense to create scope based Factory sub-classes rather than using factory helper ?

@kamaldeep-earnin You have to have a reference to a container in order to resolve the factory.If, for some reason, you were to extract a Factory and save it somewhere, it maintains an internal reference to its container. Either way, it's not going to fail.
If you want to use the current "service locator" design like let s = Container.myService() you can.
extension Container {
    static var myService: Factory<MyServiceType> {
        makes { MyService() }
    }

That said, unless dependencies are in a container you won't be able to grab them using the property wrappers.
Then again, you can still do let s = Container.shared.myService(). Which basically does the same thing as the previous version while also allowing the shared container to be swapped and/or replaced.
As shown, the current "magical" helper name was....
extension Container {
    var cachedService: Factory<MyServiceType> {
        makes { MyService() }.cached
    }
    var parameterService: ParameterFactory<Int, ParameterService> {
        makes { ParameterService(value: $0) }
    }

And those were created to avoid the more formal Factory(self) {} or .init(self) {} initializers with the parameter needed to bind the factory to the container.
A lot of people seem to want...
extension Container {
    var cachedService: Factory<MyServiceType> {
        cached { MyService() }
    }
    var parameterService: ParameterFactory<Int, ParameterService> {
        shared { ParameterService(value: $0) }
    }

But I was trying to avoid autocompletion pollution with adding cached, shared, singleton, unique, custom() and so on such that half the things you see when you type "." on a container are factory helpers and not your own own factories.
Finally, yeah, the modifier syntax is SwiftUI-like, as are the new keyPath-style initializers. But those work with scopes, the new per-dependency decorator option, as well as a few other things that are in the pipeline.

Liking the new design so far. The only thing I found a bit confusing at first was the order of the parameters on ParameterFactory. I think I would've preferred listing the parameters at the end rather than at the beginning.

@peterfriese  Liking the new design so far. The only thing I found a bit confusing at first was the order of the parameters on ParameterFactory. I think I would've preferred listing the parameters at the end rather than at the beginning.

Thanks. The order is the same as it was in 1.0, and that order matches the order in the name itself:
ParameterFactory<Parameter Type, Factory Type>
Have any opinions on the helper name/scope name debate?

Personally I do not get why there is a need for a container and would have to see the code of 2.0 to reason about it. I'm a big fan of a simple injection system that is type safe. Only I do not see the point of Container. So what would I like to do

Set dependencies
reset them all
set them again while app is runnning

This I do now inside a library that has its own namespace. So I figured as global variables are lazy and thread safe by default that I configure the facturies like globals and not as an extension on Container
public private(set) var typographyFactory: Factory<TypographyManager> = Factory(scope: .cached) { TypographyManager()  }

// and reset them

func bootstrap(  typography: @autoclosure @escaping () -> TypographyManager ) {
  typographyFactory.reset()
  typographyFactory.register { typography() }
}

In code I can use it then
import Factory

struct FooView: View {
@Injected(typographyFactory) private var typography
/// ...
}

I do not see why this has to change and become more complex and I'm also more worried about thread safety and lazy instantiation. Factories in my humble opinion can slow down startup time of they are all injected at once.
I'm now, without more knowledge of the code, strongly against adding the need for a Container. I find it refreshing to not use it. But I stand to be convinced otherwise?
Thanks for this awesome lib and the fact that we can discuss about its future! Just a tip could we not use githubs discussion thing for that instate of an issue?


Render day/night

I'd do it like a Light hack - the blocks are still lit perfectly, but the sandbox changes depending on the time.

Also, on latest (1.10) I can't see water blocks

Also, on latest (1.10) I can't see water blocks

Are you testing a version older than 1.13 ? I think we have a bug with water for old version, but it should be rendering on 1.13+.

I am using 1.12.2

Ok this deserve its own issue https://github.com/PrismarineJS/prismarine-viewer/issues/98


[ACM-7321] Configure alerts to detect acm hub compactor problems

These alerts are modeled after RHOBS compactor alerts

/lgtm

@subbarao-meduri we also have seen Thanos fail when the Compactor PV run out of space. It is interesting that you chose not to monitor the space. Probably because it would get reflected in the halted metric?

@subbarao-meduri we also have seen Compactor fail when the Compactor PV run out of space. It is interesting that you chose not to monitor the space. Probably because it would get reflected in the halted metric?

@bjoydeep yes, any underlying infrastructure problems will surface through failing metrics, compactor halting, compactions failing, bucket operations failing etc. We could add another alert for PV size, but I think that would be somewhat redundant, imo.

/test test-e2e

/lgtm

/test test-e2e

/test test-e2e

/test test-e2e


[WIP][MB-7362] Services counselor can edit move contact info backend

Description
The backend piece for allowing the service counselor to edit move contact info ("customer info" in the UI.)
Reviewer Notes
This is still a WIP, but I could use some help if you all have time. I left some TODOs in the code. Etag is either not working properly or I don't know how to set it up locally. The other thing is, I'm running into panics when trying to write the address to the DB (and I didn't yet try to add backup contact info updating.)
I mostly tried to follow the way editing orders is handled, for reference.
I'm sure there is a lot more to discuss, I'm pretty new to all of this. I just thought getting it up earlier is better.
Setup
Add any steps or code to run in this section to help others prepare to run your code:
make server_run
make client_run

Get the cookie values from the client app/Postman, as described here.
Code Review Verification Steps
Before I added the eTag, I was able to update the basic info: name, email, phone. It's a PATCH to http://officelocal:3000/ghc/v1/customer/{customerID}
A sample request body is here (from swagger):
{
    "first_name": "John",
    "last_name": "Doe",
    "phone": "213-504-5967",
    "email"<EMAIL_ADDRESS>    "current_address": {
        "street_address_1": "123 Main Ave",
        "city": "Anytown",
        "state": "AZ",
        "postal_code": "90210",
        "id": "c56a4180-65aa-42ec-a945-5fd21dec0538",
        "street_address_2": "Apartment 9000",
        "street_address_3": "Montmârtre",
        "eTag": "magna commodo nostrud irure",
        "country": "USA"
    },
    "backup_contact": {
        "name": "in fugiat sed",
        "email"<EMAIL_ADDRESS>        "phone": "373-781-9295"
    },
    "id": "c56a4180-65aa-42ec-a945-5fd21dec0538"
}

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Screenshots

Messages

:book:
:link: MB-7362

  Generated by :no_entry_sign: dangerJS against 2f41c957447ff2c20de209999d1b1ecb441d6dde


Is there a way to create an XML string element with attributes?

Is there a way to create a service configuration for a string element with attributes like this with two parameters name (as an attribute) and value (as the element content)?
In my case it is an array of elements, but that's not the point.
<Request>
  <Item name="foo">bar</Item>
  <Item name="buzz">bar</Item>
</Request>

I tried a lot of variation but the closest I got is this:
'Item' => [
    'required' => false,
    'type' => 'array',
    'data' => [
        'xmlFlattened' => true
    ],
    'items' => [
        'required' => false,
        'type' => 'object',
        'sentAs' => 'Item',
        'properties' => [
            'name' => [
                'required' => true,
                'type' => 'string',
                'description' => 'Item name',
                'data'   => [
                    'xmlAttribute' => true
                ]
            ],
            'value' => [
                'required' => true,
                'type' => 'string',
                'description' => 'Item value'
            ]
        ]
    ]
]

<Request>
  <Item name="foo"><value>bar</value></Item>
  <Item name="buzz"><value>bar</value></Item>
</Request>

Thank you very much in advance for any hint!

Closing since stale - I'm doing a cleanup across the whole organization, to enable us to focus on the tickets that are still live and have interest. Please feel free to open a new issue if this still is important to you. :)


Show wait loader(spinner)in Android

I am able to successfully implement this library(plugin) into my project and it is working great.
 In iOS there is a default wait loader which is shown till the image is displayed.
How can I implement a similar wait loader(spinner) in Android?Please help.

Hello Debe22, any update?
Regards

Hi i fixed this issue and added a indicator for loading
Please use following edited package
https://www.nuget.org/packages/PhotoBrowser_Edited.Forms/
Regards


WIP: TASK: Wording nitpicks

This is still WIP, I will translate all Flash Messages

I integrated the changes into the base branch and will merge the feature now as it is.
Once you created the translations just open another PR.
Thank you 🙂


Canonical way to be 'invisible' to touches / forward / delegate responder?

hi. I have a top layer view that is getting the touch, and I would like it to /not/ be involved at all in the touch handling -- have the events go to the views underneath. What is the "standard" way this should be coded when using react-native? Thank you.

You should use pointerEvents: https://facebook.github.io/react-native/docs/view.html#pointerevents


Images doc fixes

fixes naming inconsistencies
erases traces of the page being copied from layout / display
adds an image and a bit of vertical padding to it
spreads the open source love

Before merging:

check if the image included is alright where it is
check if image included is styled properly and according to the style shown so far in the docs

Suggestions:

add more images making grids etc. to show the power of Tachyons

EDIT:
I forgot to add this:

CLOSURE NOTICE:
This pull request was closed due to:

Conflicts with file
Fix by author without merging

author fixed it better

Additional Thoughts: Why no cat gif in the doc!?
 The purpose is to make images larger than viewport shrink down so they don't bleed out of their container element. I didn't want to find a 3000px wide gif to put in.

I see. Anyway, good job on fixing it quickly.
Regards,
Enoch Appathurai
On Tue, Aug 18, 2015 at 8:07 PM, Adam Morse<EMAIL_ADDRESS>wrote:

@enociz a small image doesn't show what happens with max-width. The purpose is to make images larger than viewport shrink down so they don't bleed out of their container element. I didn't want to find a 3000px wide gif to put in.
Reply to this email directly or view it on GitHub:
https://github.com/mrmrs/tachyons/pull/42#issuecomment-132154628


Inserting/Updating ID -2147482647

I am running Npgsql.EntityFrameworkCore.PostgreSQL Version="2.0.1" and it is updating records in my database to have -2147482647 as their ID.
This happens randomly but often, I have not been able to reproduce it but it seems to happen on Attach(). Everything I have researched says that there should never be negative IDs inserted into the database but this keeps happening and after it does it throws an error.

The instance of entity type 'Table' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.

Once I update the ID to something appropriate I no longer get that error.
Here is a screenshot of my Postgres database after an Attach() was run. I apologize the screenshot is cut off but the left column is the ID, far right is the Modified Date, and left of that is the Created Date.

I am not sure if this was a known issue in version 2.0.1 and I am upgrading my package to 2.1.2 as I cannot find any issue in the code and have not seen any reports of this happening.

To troubleshoot this, we'll need to see a minimal reproduction of the issue, preferably in the form of a GitHub repository we can clone locally.
Would you be able to put something like that together and report back?

Closing as no additional info was provided within 7 days. But please feel free to post back here with the relevant information and I'll reopen if necessary.


Increase Free Tier Maximum Pin Time To 12 Months

:construction_worker: Purpose
We're adjusting the maximum time that free accounts can pin data for, and removing the limitation where free users are unable to extend their pins. The new maximum limit is 12 months for free users, while paid users stay the same at 24 months.
The database dependency update will pull in the ability to remove pins + claim partial refunds, however this will be enabled in a different PR
:rocket: Changes

Update database dep adding ability to remove pins but not enabling
Set maximum free tier pin time to 12 months
Enable free tier users to extend their pins for up to 12 months
Update welcome email message to indicate that warp (our IPFS HTTP API) endpoint for free users will set the pin time to 12 months, but not do this for  paid tier accounts. We dont want to overcharge paid users, so paid users must as usual extend pins.

:warning: Breaking Changes
TODO

Update database dependency once merge
Update new playground to reflect the change (different PR)
Update playground to enable removing pins (differnet PR)

I think where possible, we should use time.Duration for all internal duration representations, instead of a mix of months and hour in ints and floats.

We already sort of do this,  "months" are just used to feed into time.Now().AddDate; The problem with using time.Duration for this is that it doesn't have a concept of months, and the maximum time period is hour increments. The only thing we use hours for is the refund calculations, which uses time.Duration and time.Time to derive the hours from the garbage collect date in the upload model which is stored as time.Time.
Because we only allow users to pin in month long increments that cap out at 24 I think its ok because all the numeric types we deal with can correctly swap between each other.
That being said eventually when we do release the v3 API we should migrate to time.Duration not have the int, and floats stuff that we do now.


feat: add endpoints Story for form-json-schema

Issue
n/a
Description
add endpoints Story for form-json-schema
Additional context

🧪  Gravitee.io Automatic Prerelease
npm install<EMAIL_ADDRESS>
yarn add<EMAIL_ADDRESS>

📚  View the storybook of this branch here

:tada: This PR is included in version 5.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
npm package (@latest dist-tag)
npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


opt remote scanner thread num is changed to core num * 10

Proposed changes
if equal to -1, value is std::max(512, CpuInfo::num_cores() * 10)
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 48.33 seconds
stream load tsv:          509 seconds loaded<PHONE_NUMBER>9 Bytes, about 140 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.1 seconds inserted 10000000 Rows, about 343K ops/s
storage size:<PHONE_NUMBER>8 Bytes


SCT-1147 clean up style issues

Based on comments from https://github.com/jgi-kbase/IDMappingService/pull/2

Pull Request Test Coverage Report for Build 6

0 of 15 (0.0%)  changed or added relevant lines in 7 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 9.589%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/jgikbase/idmapping/core/namespace.py
0
1
0.0%

src/jgikbase/idmapping/core/namespace_id.py
0
1
0.0%

src/jgikbase/idmapping/core/user.py
0
1
0.0%

src/jgikbase/idmapping/core/tokens.py
0
2
0.0%

src/jgikbase/idmapping/core/namespaced_id.py
0
2
0.0%

src/jgikbase/idmapping/storage/mongo/id_mapping_mongo_storage.py
0
2
0.0%

src/jgikbase/idmapping/storage/id_mapping_storage.py
0
6
0.0%

Totals

Change from base Build 5:
0.0%

Covered Lines:
7

Relevant Lines:
73

💛  - Coveralls

per @jayrbolton I have verbal permission to merge


Select folder don't show on windows (mingw64)

I tried this library, it's really great but select folder don't show when I run the function (the programm don't crash it just wait).
I tried the file "example.cpp" every function work except for select_folder.
I also tried this code from the doc:
// Folder selection dialog
auto dialog = pfd::select_folder("Select folder to open");

// Do something while waiting for user input
while (!dialog.ready(1000))
    std::cout << "Waited 1 second for user input...\n";

// Act depending on the user choice
std::cout << "Selected folder: " << dialog.result() << "\n";

Thanks for the help,
Flayme
(Sorry for my poor english)

I can reproduce using the MXE toolchain, which uses MinGW-w64. All dialogs seem to work, except select_folder hangs forever.


Display what a user applied as in the admin users list

What happens when there are no "applicationBranch" in the system? Is there always a default branch?

@BunsenMcDubbs If the user has applied, the applicationBranch will always be set. If the user deletes their application, they unmarked as having applied so applicationBranch should not be read.
The last two conditions are based on the assumption that users go from applied to accepted to attending. If for some weird reason applicationBranch isn't defined, interpolating undefined into that string will simply result in text that reads like Applied (undefined) rather than causing a crash or anything.


Bug Fixes

Bugs Fixed:

User Profile Not being displayed on
the Menu Bar after initial setup.

Remove focus from Name in
Profile setup Window.

Codecov Report

Merging #214 (eb65340) into master (76ae4b4) will decrease coverage by 0.16%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #214      +/-   ##
============================================
- Coverage     58.30%   58.13%   -0.17%
  Complexity      661      661
============================================
  Files           109      109
  Lines          2763     2771       +8
  Branches        288      287       -1
============================================
  Hits           1611     1611
- Misses         1048     1056       +8
  Partials        104      104

Impacted Files
Coverage Δ

src/main/java/seedu/address/ui/MainWindow.java
0.00% <0.00%> (ø)

...main/java/seedu/address/ui/ProfileSetUpWindow.java
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Fix type error

Addresses #9. @glimmer/application was being installed as a nested dependency because the blueprint installed<EMAIL_ADDRESS>and<EMAIL_ADDRESS>$ npm ls @glimmer/application
<EMAIL_ADDRESS>/Users/rpitts/repos/personal/hello-wc
├──<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>  └──<EMAIL_ADDRESS>
This resulted in two different versions of Environment to be used, causing the type error.
This PR goes beyond upgrading @glimmer/application and moves it to devDependencies. We should not be seeing @glimmer/application inside node_modules/@glimmer/web-component/node_modules now.

Good catch @robbiepitts - I was just about to dig into #9 myself 👍


Race in hashicorp/memberlist

I've found race in hashicorp/memberlist:
Oct 04 20:17:35 Swarm01 dockerd[15116]: WARNING: DATA RACE
Oct 04 20:17:35 Swarm01 dockerd[15116]: Write at 0x00c420ff4850 by goroutine 166:
Oct 04 20:17:35 Swarm01 dockerd[15116]:   github.com/hashicorp/memberlist.(*Memberlist).deadNode()
Oct 04 20:17:35 Swarm01 dockerd[15116]:       /home/moroz/project/workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/state.go:977 +0x7ed
Oct 04 20:17:35 Swarm01 dockerd[15116]:   github.com/hashicorp/memberlist.(*Memberlist).handleDead()
Oct 04 20:17:35 Swarm01 dockerd[15116]:       /home/moroz/project/workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/net.go:508 +0x293
Oct 04 20:17:35 Swarm01 dockerd[15116]:   github.com/hashicorp/memberlist.(*Memberlist).udpHandler()
Oct 04 20:17:35 Swarm01 dockerd[15116]:       /home/moroz/project/workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/net.go:382 +0x3c4
Oct 04 20:17:35 Swarm01 dockerd[15116]: Previous read at 0x00c420ff4850 by goroutine 322:
Oct 04 20:17:35 Swarm01 dockerd[15116]:   github.com/hashicorp/memberlist.(*Memberlist).suspectTimeout()
Oct 04 20:17:35 Swarm01 dockerd[15116]:       /home/moroz/project/workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/state.go:915 +0x16f
Oct 04 20:17:35 Swarm01 dockerd[15116]:   github.com/hashicorp/memberlist.(*Memberlist).suspectNode.func1()
Oct 04 20:17:35 Swarm01 dockerd[15116]:       /home/moroz/project/workspace/src/github.com/docker/docker/vendor/src/github.com/hashicorp/memberlist/state.go:906 +0x160

I'm posting it here because master code of memberlist drastically different from vendored version, so it's probably time for update.
ping @aboch @mrjana @sanimej

@LK4D4 It has been detected that this issue has not received any activity in over 6 months. Can you please let us know if it is still relevant:

For a bug: do you still experience the issue with the latest version?
For a feature request: was your request appropriately answered in a later version?

Thank you!
This issue will be automatically closed in 1 week unless it is commented on.
For more information please refer to https://github.com/docker/libnetwork/issues/1926

ping @LK4D4


Code formatting broken. Please review other WDF code snippets as well. This problem is pretty widespread

Please review other WDF code snippets as well. This problem is pretty widespread

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

ID: 05480c0c-78c1-8904-c7d9-e3840867b6ba
Version Independent ID: f9adf17b-4b8e-6dd0-d446-68b833e97be5
Content: WdfIoTargetCloseForQueryRemove function (wdfiotarget.h) - Windows drivers
Content Source: wdk-ddi-src/content/wdfiotarget/nf-wdfiotarget-wdfiotargetcloseforqueryremove.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @tedhudek
Microsoft Alias: tedhudek

Fix should be live in half an hour.  Thanks for the examples.


Duplicati "HTTP Report Url"

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
I used to use duplicati's "HTTP Report Url" advanced add-on to send a "push" to my self hosted "healthchecks" service.
It was a simmilar "ping" url as the ones you can use with uptime-kuma "push" monitor type.
But when i try to use a uptime-kuma push-url i get a error message in duplicati saying:
30 nov 2021 11:31: HTTP Response: 404 - Not Found: <!DOCTYPE html>   <meta charset="utf-8"> <title>Error</title>
Cannot POST /api/push/DKUODSY1z5

I have tried a lot of diffrent settings in duplicati but no success.
I would love to use uptime-kuma as monitor for all my duplicati backups, but im not sure if this is something that can be fixed on the uptime-kuma side, or if it needs to be fixed on the duplicati side.
Have anyone else made this work with running a script after backup maybe? (I have not tried the script way)
🐻 Uptime-Kuma Version
1.10.2
💻 Operating System and Arch
Ubuntu 20.04
🌐 Browser
Chrome Version 96.0.4664.45
🐋 Docker Version
Docker 20.10.11
🟩 NodeJS Version
No response

The push monitor only responds to GET requests, and looks like your Duplicati is sending POST request. For now I think you might have to look for another method of reporting in Duplicati.

While this isn't the most elegant solution, I use Node-RED, and instead of Duplicati POSTing directly to Uptime Kuma (which only accepts GET requests), I post to a Node-RED flow that accepts a POST and then makes a GET to the Uptime Kuma ping address.


Upgrading from 0.7.0 to 0.8.0 yields "incompatible"

OS:  Android 10

Can you elaborate? What do you mean "incompatible"?

Also what device?

When installing it, the OS says in a popup "incompatible".
Device: Samsung A01

In some testing, I tried to uninstall the 0.7.0 and then tried to install the 0.8.0, however I get the same "incompatible".
I thought perhaps it was a signing key issue, however that does not seem so.

FYI that phone should have an update to Android 11.

But AppVerifier should work on Android 10. Could you try updating it and see what happens?

FYI that phone should have an update to Android 11.

No, it doesn't, because it is a Tracfone brand, and those don't receive updates.

Ah rip. On the install screen can you see the app icon of AppVerifier?

I am installing it through Obtainium app.
I see the icon in the popup that says " Do you want to install this application?"

To rule out Obtainium being an issue, I have downloaded the apk directly from:
https://github.com/soupslurpr/AppVerifier/releases/download/0.8.0/AppVerifier-0.8.0.apk
This time instead of getting the error "incompatible", it instead say:  "App not installed."

Could you try this staging apk?
app-staging.zip

I would prefer not to.  I don't know what it is, and you haven't told me anything about it.  I'm not in the habit of just installing random things at someone's request.  This is not a development phone, it is my daily phone.

VirusTotal reports this file as malicious also. Perhaps a false positive, but as I said before I don't know anything about this file or where it comes from.
https://www.virustotal.com/gui/url/2332321a3035ba414d1cb754b395bf0146b3f89c69cde4582f86b917ad6ba846?nocache=1
Antiy-AVL     Malicious     Forcepoint ThreatSeeker     Suspicious

Sorry if it wasn't clear, it's just AppVerifier with an addition reverted that I thought might've been causing the issue. Specifically https://github.com/soupslurpr/AppVerifier/blob/6aa73cb516e150eadc8a00f11470ab8697828c06/app/build.gradle.kts#L22

I can assure you it is not malicious and originates from my laptop. Be mindful that anti-virus software often has false positives and shouldn't be relied upon for detecting malware.

Did you try it?

 I can't help you without your help. If you decide to respond then I'll open it again.

I had this issue on a new install.  The staging  app fixed it.

@samvde thanks for testing, this means the device or OS you are using is 32-bit. Could you tell me what device and OS you are having this issue on?

Sure, it is a Samsung Galaxy a13, running Android 14 and One UI 6.1, Android patch level June 2024.
Never expected this to be 32 bit. Not sure how to check that.

Reading the specs, it isn't 32 bit so I'm not sure why Samsung is blocking installation of apps that don't support it.

Apparently Samsung decided to make them run a 32-bit OS for some reason.
https://play.google.com/store/apps/details?id=com.finalwire.aida64 should say 32-bit mode in "Instruction Set"

Yes,  I can confirm. Here I am thinking 32 bit was athing of a decade ago. Not for arm I guess.
So this is the issue,  the patched apk worked.
Not sure if you can/want to bring this to the release version, understand if you won't.
Many thanks for the rapid troubleshooting!

I technically could re-enable it for AppVerifier as it isn't an issue for it but its unfortunate that Samsung is doing this. Running a 32-bit OS reduces security.


Windows cygwin build fails

Installing via opam pin add -y reason 'https://github.com/facebook/reason.git#0.0.6' after the prior commands were successful.
Error message:
=-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[reason] git+https://github.com/facebook/reason.git#0.0.6 already up-to-date

=-=- Processing actions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ERROR] The compilation of reason failed at "ocaml pkg/build.ml native=true native-dynlink=true utop=true".

#=== ERROR while compiling reason.0.0.5 =======================================#
# opam-version 1.3.0~dev (98188f141dbeb429258f2b2c00f6240d0af02b84)
# os           win32
# command      ocaml pkg/build.ml native=true native-dynlink=true utop=true
# path         C:/Users/<user>/.opam/4.02.3+mingw64c/build/reason.0.0.5
# exit-code    1
# env-file     C:/Users/<user>/.opam/4.02.3+mingw64c/build/reason.0.0.5\reason-428-6d07ae.env
# stdout-file  C:/Users/<user>/.opam/4.02.3+mingw64c/build/reason.0.0.5\reason-428-6d07ae.out
# stderr-file  C:/Users/<user>/.opam/4.02.3+mingw64c/build/reason.0.0.5\reason-428-6d07ae.err
### stdout ###
# Usage ocamlbuild [options] <target>
# [...]
#   -ocamldoc <command>         Set the OCaml documentation generator
#   -ocamlyacc <command>        Set the ocamlyacc tool
#   -menhir <command>           Set the menhir tool (use it after -use-menhir)
#   -ocamllex <command>         Set the ocamllex tool
#   -ocamlmklib <command>       Set the ocamlmklib tool
#   -ocamlmktop <command>       Set the ocamlmktop tool
#   -ocamlrun <command>         Set the ocamlrun tool
#   --                          Stop argument processing, remaining arguments are given to the user program
#   -help                       Display this list of options
#   --help                      Display this list of options
#

=-=- Error report -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following actions failed
  λ  build reason 0.0.5
No changes have been performed

An interesting mix of "0.0.5" and "0.0.6" too I must say.

yep, we screwed up the versioning. https://github.com/facebook/reason/pull/781 is proposed to prevent this from happening again...
In the meanwhlie, do you mind try dogfooding our new installation flow here? https://github.com/reasonml/ExampleProject
also feel free to chat at gitter.im/facebook/reason

Already there in the chat, just not always easy to use without a full GUI available.  :-)
Tried the ExampleProject, interesting errors I must say.  ;-)
~/Projects/tmp/ExampleProject
$ npm install
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2: Cloning into 'C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2'...
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2: fatal: '/cygdrive/c/Users/<user>/AppData/Roaming/npm-cache/_git-remotes/git-https-github-com-npm-ml-dependency-env-git-3aee2b1b/C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b' does not appear to be a git repository
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2: fatal: Could not read from remote repository.
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2:
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2: Please make sure you have the correct access rights
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2: and the repository exists.
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2:
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0: Cloning into 'C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0'...
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0: fatal: '/cygdrive/c/Users/<user>/AppData/Roaming/npm-cache/_git-remotes/git-https-github-com-yunxing-nopam-git-54296e8d/C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d' does not appear to be a git repository
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0: fatal: Could not read from remote repository.
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0:
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0: Please make sure you have the correct access rights
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0: and the repository exists.
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-yunxing-nopam-git-54296e8d C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-6db82d40\6a4fa5431c86b8a000b2055b5ce5de50e76ae6a0:
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66 C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397: Cloning into 'C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397'...
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66 C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397: fatal: '/cygdrive/c/Users/<user>/AppData/Roaming/npm-cache/_git-remotes/git-https-github-com-facebook-reason-git-2d5bbb66/C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66' does not appear to be a git repository
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66 C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397: fatal: Could not read from remote repository.
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66 C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397:
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66 C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397: Please make sure you have the correct access rights
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66 C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397: and the repository exists.
npm ERR! git clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-facebook-reason-git-2d5bbb66 C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-a7a39989\18095b12721ed1a62767fd72026d6ca6f3263397:
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v6.2.0
npm ERR! npm  v3.8.9
npm ERR! code 128

npm ERR! Command failed: git -c core.longpaths=true clone C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2
npm ERR! Cloning into 'C:\OCaml64\tmp\npm-25004-8ab4eb69\git-cache-c94506e6\be55b16cb3a80942e596821451e44d9500e5d1a2'...
npm ERR! fatal: '/cygdrive/c/Users/<user>/AppData/Roaming/npm-cache/_git-remotes/git-https-github-com-npm-ml-dependency-env-git-3aee2b1b/C:\Users\<user>\AppData\Roaming\npm-cache\_git-remotes\git-https-github-com-npm-ml-dependency-env-git-3aee2b1b' does not appear to be a git repository
npm ERR! fatal: Could not read from remote repository.
npm ERR!

You can leave the report right here. Thanks for testing

I have Windows 10 for development at work (Linux at home) so if you need something tested on Windows just ping me here again and I'll be happy to test.  :-)

What version of NPM are you using in Cygwin and is it a Cygwin build or the Windows one. Also same question for git. Is it ms-sys?

Sure, information:

Git is cygwin's:  C:\OCaml64\bin\git.exe
I've also tried mingw's git in the path first at:  C:\Program Files\Git\mingw64\bin\git.exe
Node is the system node (there is no node in cygwin and compiling it sounds painful):  c:\Program Files\nodejs\node.exe
The Cygwin is the one built for OCaml, I'm using the output ocaml system-wide.
The above error happens both within the OCaml cygwin as well as in the global terminal outside of cygwin.
I also have and use Bucklescript straight, it works perfectly, able to install it via cloning and manually building it or via just npm install bs-platform successfully.

Versions:
$ ocamlc -v
The OCaml compiler, version 4.02.3
Standard library directory: C:/Users/<user>/.opam/4.02.3+mingw64c/lib/ocaml

$ node -v
v6.2.0

$ npm -v
3.8.9

$ git --version
git version 2.8.3

hmm, looks to me it is an issue related npm/git on Cygwin when the dependency has a git url. I will get a windows machine to try to reproduce this.

@OvermindDL1 you might have seen https://github.com/reasonml/reasonml.github.io/issues/195 already. That one's a centralized discussion & solution for Windows. Sorry for all the trouble.

Fwiw i spent some time a couple weeks ago to test on Cygwin and things were working for me (though I bypassed opam).

@OvermindDL1 you might have seen reasonml/reasonml.github.io#195 already. That one's a centralized discussion & solution for Windows. Sorry for all the trouble.

Yep already saw and been following it, I managed to convince my work to let me switch my desktop to linux (finally!) and even started converting others now, so less of an issue.  ^.^


Missing China regions in elb_service_accounts

Description
PR: https://github.com/terraform-aws-modules/terraform-aws-s3-bucket/pull/264
In release 3.8.2, a fix was made to support newer AWS regions which use a different log delivery policy:
https://github.com/terraform-aws-modules/terraform-aws-s3-bucket/commit/3c094b32333a177a07477c4079ef3bd8cc56eea8#diff-dc46acf24afd63ef8c556b77c126ccc6e578bc87e3aa09a931f33d9bf2532fbb
The fix was essentially "if the old region exists in this list, use the old way, otherwise use the new way". Unfortunately, the China regions were left out of this list, so this module treats them as though they're new regions, and sets the Principal to "Service": "logdelivery.elasticloadbalancing.amazonaws.com, when it should be the old format: "AWS": "arn:aws-cn:iam::638102146993:root" (example given is for cn-north-1)
Documentation here describes regions excluding China: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/enable-access-logging.html#attach-bucket-policy
China regions are listed here: https://docs.amazonaws.cn/en_us/elasticloadbalancing/latest/application/enable-access-logging.html#attach-bucket-policy

[x] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]:
3.15.1 (really, any version since 3.8.2)

Terraform version:

Terraform v1.4.5
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v5.29.0
+ provider registry.terraform.io/hashicorp/random v3.6.0

Provider version(s):

Terraform v1.4.5
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v5.29.0
+ provider registry.terraform.io/hashicorp/random v3.6.0

Reproduction Code [Required]
Included example code in PR, but pasting the main body here:
provider "aws" {
  region = local.region

  # Make it faster by skipping something
  skip_metadata_api_check     = true
  skip_region_validation      = true
  skip_credentials_validation = true
  skip_requesting_account_id  = true
}

data "aws_availability_zones" "available" {}
data "aws_caller_identity" "current" {}

locals {
  bucket_name = "s3-bucket-${random_pet.this.id}"
  region      = "cn-north-1"
  name        = "china-alb-fail-${random_pet.this.id}"
  vpc_cidr    = "<IP_ADDRESS>/16"

  azs = slice(data.aws_availability_zones.available.names, 0, 3)
}

##################################################################
# S3 log bucket
##################################################################

resource "random_pet" "this" {
  length = 2
}

resource "aws_kms_key" "objects" {
  description             = "KMS key is used to encrypt bucket objects"
  deletion_window_in_days = 7
}

resource "aws_iam_role" "this" {
  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

module "log_bucket" {
  source = "terraform-aws-modules/s3-bucket/aws"
  #  source = "git::https://github.com/bohnjamin/terraform-aws-s3-bucket.git?ref=add-china-regions"

  bucket        = "logs-${random_pet.this.id}"
  force_destroy = true

  control_object_ownership = true

  attach_elb_log_delivery_policy        = true
  attach_lb_log_delivery_policy         = true
  attach_access_log_delivery_policy     = true
  attach_deny_insecure_transport_policy = true
  attach_require_latest_tls_policy      = true

  access_log_delivery_policy_source_accounts = [data.aws_caller_identity.current.account_id]
  access_log_delivery_policy_source_buckets  = ["arn:aws:s3:::${local.bucket_name}"]
}

##################################################################
# Application Load Balancer
##################################################################

module "alb" {
  source = "terraform-aws-modules/alb/aws"

  name    = local.name
  vpc_id  = module.vpc.vpc_id
  subnets = module.vpc.public_subnets

  # For example only
  enable_deletion_protection = false

  # Security Group
  security_group_ingress_rules = {
    all_http = {
      from_port   = 80
      to_port     = 80
      ip_protocol = "tcp"
      description = "HTTP web traffic"
      cidr_ipv4   = "<IP_ADDRESS>/0"
    }
  }
  security_group_egress_rules = {
    all = {
      ip_protocol = "-1"
      cidr_ipv4   = "<IP_ADDRESS>/16"
    }
  }

  access_logs = {
    bucket = module.log_bucket.s3_bucket_id
  }

  listeners = {
    ex-fixed-response = {
      port     = 89
      protocol = "HTTP"
      fixed_response = {
        content_type = "text/plain"
        message_body = "Fixed message"
        status_code  = "200"
      }
    }
  }

}

################################################################################
# Supporting resources
################################################################################

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "~> 5.0"

  name = local.name
  cidr = local.vpc_cidr

  azs             = local.azs
  private_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 4, k)]
  public_subnets  = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k + 48)]

}

Steps to reproduce the behavior:
Create an ELB log bucket in S3 in an AWS China region, with attach_elb_log_delivery_policy and attach_lb_log_delivery_policy set to true, then create an ALB and set access_logs to your bucket ID.
Expected behavior
bucket should get created with correct permissions, and the ALB should be able to write to it
Actual behavior
The incorrect principal gets set in the bucket permissions, and the log delivery fails. This causes terraform to fail with an error like this:
│ Error: failure configuring LB attributes: InvalidConfigurationRequest: Access Denied for bucket: logs-wanted-mule. Please check S3bucket permission
│ 	status code: 400, request id: <redacted>
│
│   with module.alb.aws_lb.this[0],
│   on .terraform/modules/alb/main.tf line 12, in resource "aws_lb" "this":
│   12: resource "aws_lb" "this" {

Terminal Output Screenshot(s)
Additional context
Submitted PR with example code here: https://github.com/terraform-aws-modules/terraform-aws-s3-bucket/pull/264

Fixed by #264


Using RSS3 on your project? Let us know!

Feel free to talk about your project and give us some feedback!

Why abandon the js sdk? Do you need to contribute？


Idea!

(after having had a semester of Fundamental Algorithms)    it became obvious to me that the way to solve #18 is to implement a dynamic programming strategy to solve...

implemented


[Bug] Double-Click link CMS Page loading issue

What happened?

When double-clicking a link, which results in a route change, the CMS Elements are not being loaded correctly.
e.g. when double clicking a link changing from route / to /JEANS, the CMS Element for / is still being displayed.
Changing with a double-click to /KIDS, displays the CMS Element for /JEANS. The url updates, but not the content.

My analysis so far
In the src/pages/_.vue file the values for the page, cmsPage. staticPage (...) refs are not correct after double-clicking a link when the setup() for the DynamicRoute component is being called, which leads to the wrong CMS Element being displayed. Using computed recognises the changes, but it breaks the product-listing and still often displays the wrong content, and also results in Elements loading multiple times.
It somehow does work correctly on https://shopware-pwa.storefrontcloud.io (Edit: Just tested it again, and it now happens every time I double click a link in the navigation), but I'm always getting this issue on my local shopware-pwa instance. I tried pwa v1.1.0 and v1.2.0, using my local shopware backend and also https://pwa-demo-api.shopware.com/trunk
Steps To Reproduce

Install shopware-pwa using the latest (v1.2.0) version, using https://pwa-demo-api.shopware.com/trunk as the backend
build production (or dev) with yarn build + yarn start
Start on the start-page (e.g. localhost:3000/)
Double-click JEANS in the navigation (leads to localhost:3000/JEANS)
Double-click the Home-Icon next to JEANS in the navigation (leads back to localhost:3000/)
Notice how the CMS Elements on the page changes

Expected result:

When double-clicking JEANS, the product-listing for Jeans should be displayed
When double-clicking the home-icon, the start page should be displayed

Actual result:

When double-clicking JEANS, the start-page CMS Element is still being displayed (or the last visited page)
When double clicking the home-icon, it now displays the product-listing for JEANS

Is there an existing issue for this?

[X] I have searched the existing issues

Version
Latest stable (generated by CLI)
Which element is affected?
composables
Environment
- OS: Linux
- Node: 14.18.1
- Shopware API: <IP_ADDRESS>
- Shopware PWA version: 1.2.0 and 1.1.0

Relevant log output
No response

I have the same issue, any news on this issue? @mkucmus

Is there any chance that this issue will be resolved in the near future? :eyes:
It's been over a year now...


set up Kanban board

Hey there, we are two.

https://github.com/xJokeer/Space-Travelers-Hub/projects/2

Status: Approved ✔
Hi @xJokeer &  @YuvrajM108,
Good job on implementing all the requirements. Well Done.
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
You may close this Pull Request and merge the changes
Keep being awesome devs and good luck with your next milestone!
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Dipesh Kumar

As described in the Code reviews limits policy you have a limited number of reviews per project(check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


add rows function for Ui , split an Ui into several rows.

I know there is a ui.columns and this may seem natural, but have you tried out egui_extras::StripBuilder? It is a more powerful API, and I am considering deprecating ui.columns in favor of it.


Update packages

Codecov Report

Merging #14 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #14   +/-   ##
=======================================
  Coverage   98.13%   98.13%
=======================================
  Files           7        7
  Lines         375      375
  Branches       57       57
=======================================
  Hits          368      368
  Misses          4        4
  Partials        3        3

Continue to review full report at Codecov.

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


Storage requester pays sample code + tests

Code samples + tests are complete and ready for review.
HOWEVER, we should not merge this until a bug in the client library is resolved (https://github.com/GoogleCloudPlatform/google-cloud-php/issues/667). The bug prevents the download function from working properly when using different accounts for the Storage owner and the requester.

Hmm, the 5.6 build errored with "Your requirements could not be resolved to an installable set of packages". I restarted the build because I've never seen this error before. 🤞

Pending open issue.
Sample design LGTM!

It could be an issue where I've been testing everything using PHP version 7.1 on my computer, and that updates the composer files to use something that is unusable in version 5.6.
If this build fails again I can try moving to 5.6 and push any updates to the composer files.


pull request for e2e test at 01/24/2017 20:15:07

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


is the following planned for 1.0.2 branch ?

hello,
I observe that openssl-1.0.2 still does not include https://github.com/openssl/openssl/commit/e9d26dc85238c071117d911704f5f769e79b46a1
(branches 1.1.0 and 1.1.1 do include).
are there any plans to backport that to 1.0.2 ?
we encountered that openssl-1.0.2 behaves in different way https://github.com/haproxy/haproxy/issues/429

I'm afraid not. The 1.0.2 branch is out of support since December 2019


first path segment in URL cannot contain colon

-x  HTTP Proxy address as host:port
hey.exe -n 1 -c 1 -x <IP_ADDRESS>:8888  http://www.test.com:8060/hello
error:
parse <IP_ADDRESS>:8888: first path segment in URL cannot contain colon

Is there some workaround?

you can try below:
hey.exe -n 1 -c 1 -x http://www.test.com:8060/hello

I think this is just a README issue. I've raised a PR but the value of -x should be a URL which can be parsed by net/url Parse:
https://github.com/rakyll/hey/blob/33a965eeeb7b0351b50c8e1d8de7ae50bff3d2be/hey.go#L186
i.e. http://<IP_ADDRESS>:8888.

Works fine,thank you!


Hades2 load flow parameters

Signed-off-by: Anne Tilloy<EMAIL_ADDRESS>Please check if the PR fulfills these requirements (please use '[x]' to check the checkboxes, or submit the PR and then click the checkboxes)

[x] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Does this PR already have an issue describing the problem ? If so, link to this issue using '#XXX' and skip the rest
No.
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Move the parameter description https://rte-france.github.io/hades2/configuration/ADNLoadFlowParameters.html into powsybl web site.
Add parameters bilanPV and distributeSlackAtBoundaries.

The ADN limit reduction parameters have not been moved. It should be done with the ADN security analysis parameters.
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change or deprecate an API? If yes, check the following:

[ ] The Breaking Change or Deprecated label has been added
[ ] The migration guide has been updated in the github wiki (What changes might users need to make in their application due to this PR?)

Other information:
(if any of the questions/checkboxes don't apply, please delete them entirely)

It is okay for me but just a question: should we add a link to the Import export parameters part in Hades2 Securyt Analysis configuration as well?


Cannot get pivot model's id attribute on deleted event

Laravel Version: 6.17
PHP Version: 7.3
Database Driver & Version: MySQL 5.7

Description:
Having a custom MorphPivot (with primary key id) and listening to deleting or deleted events will not return all attributes.
Similar to: https://github.com/laravel/framework/issues/29678
Steps To Reproduce:
Considering :

A Role can have many Permission :

    public function permissions(): MorphToMany
    {
        return $this
            ->morphToMany(
                Permission::class,
                'model',
                'model_has_permissions',
                'model_id',
                'permission_id'
            )
            ->using(PermissionPivot::class)->withPivot('id')
            ->withTimestamps();
    }

Intermediate/pivot table model_has_permissions has primary key id.
PermissionPivot extends MorphPivot.
Listening on deleted (or deleting) model event on the pivot table will only return 2 attributes :

above is a dump and die of $role->permissions()->sync([]); which detaches/deletes all entries in the pivot table.

        Schema::create('model_has_permissions', function (Blueprint $table) {
            $table->uuid('id')->primary();
            $table->string('model_type');
            $table->uuid('model_id');
            $table->uuid('permission_id');
            $table->index(['model_type', 'model_id'], 'model_has_permissions_mtype_mid_index');
            $table->timestamps();
        });

Expected Behavior:
Return all the attributes, that is to say: all the columns of the pivot table.
If not possible, at least return what I enforce and expect to obtain with ->withPivot('id')

Heya, thanks for submitting this.
This seems like a feature request or an improvement. It's best to post these at the laravel/ideas repository to get support for your idea. After that you may send a PR to the framework. Please only use this issue tracker to report bugs and issues with the framework.
Thanks!

This makes doing work inside the observer's deleting/deleted function (next to) impossible.
Why is this considered a feature instead of a bug?
(Laravel/ideas is archived so I couldn't think of a better place to resurface it)

+1 here. Working on some audit log feature on a project and deleting events on MorphPivot only have the 2 related model IDs, doesn't have the pivot ID or even the type attribute, which makes it impossible to find what exact model was impacted.

+1 too.  Also working on some audit code which needs to be able to keep a journal all changes throughout the system for compliance reasons which users can then review and see what has changed when.

Hi all, not going to weigh in on feature of bug but for me adding "id" to the list of withPivot() columns was a fine solution.

A workaround: add $this->refresh(); to MorphPivot model deleting event (or $model->refresh(); if you use boot in some cases). This will load MorphPivot model all fields.


Multiplatform Support

As the title mentions.
Is it possible to port Jsoup implementation to this this
I saw on reddit, you were looking to do it earlier so perhaps you maybe still interested.
I had been using unfurl in Android projects but since moving to multiplatform I have been out of options.

I definitely am. Wanna help me out by migrating unfurl to ksoup and ktor?

Yes. I am starting with Ktor. However, I cannot promise a time frame.
My day job would not allow me to. Whatever time I can find during weekends and in spare, I will contribute
Also, I wanted to ask if we can extend it to add functionality similar to this

Sure, let's do the migration incrementally then. I'd say migrating to ksoup would be a good first step.

Also, I wanted to ask if we can extend it to add functionality similar to this

Are you referring to article extraction? I think that's out of the scope for unfurl but you can always implement it yourself and use it as an unfurl extension.

Do we want to instantly move to sourceSets implementation or replace OkHttp with Ktor-Okhttp client?

@saket Please take a look https://github.com/saket/unfurl/pull/2
Have not been able to replace MockWebServer.
Looking at how to do that with Ktor.
Once you approve this maybe we can work on migrating to sourceSets and proper multiplatform library from a jvm one?

Have not been able to replace MockWebServer.
Looking at how to do that with Ktor.

Good idea, we can create a Ktor server

Yes, I am looking at it. Made some more changes around input stream

@saket We will follow this one: https://github.com/saket/unfurl/pull/3
Just adding it here for future reference.

I'm sorry, but I had to revert all your KMP changes after failing to make ksoup work with ktor and okio. It also didn't help that ksoup is significantly slower than jsoup.
The author of ksoup seems to be working on fixing these issues in the near future, so I'll keep an eye on it: https://github.com/fleeksoft/ksoup/issues/39


Generic/SpaceAfterNot: improve code coverage

Description
This PR improves code coverage for the Generic.Formatting.SpaceAfterNot sniff.
Related issues/external references
Part of https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/146
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

[ ] This change is only breaking for integrators, not for external standards or end-users.

[ ] Documentation improvement

PR checklist

[x] I have checked there is no other PR open for the same change.
[x] I have read the Contribution Guidelines.
[x] I grant the project the right to include and distribute the code under the BSD-3-Clause license (and I have the right to grant these rights).
[x] I have added tests to cover my changes.
[x] I have verified that the code complies with the projects coding standards.
[ ] [Required for new sniffs] I have added XML documentation for the sniff.

Rebased without changes. Merging once the build passes.


TypeError: Expected sixth argument to be a 32-bit signed integer

When trying to read the Zotero database, the plugin gives me the following error:
app.js:1 Obsidian Developer Console
node:electron/js2c/renderer_init:89 Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security
  Policy set or a policy with "unsafe-eval" enabled. This exposes users of
  this app to unnecessary security risks.

For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.
warnAboutInsecureCSP @ node:electron/js2c/renderer_init:89
plugin:quickadd:16120 Loading QuickAdd
plugin:obsidian42-brat:23 loading Obsidian42 - BRAT
plugin:obsidian-zotero-plugin:6 [2022-10-28T12:52:21.960] [INFO] obsidian-zotero:main - loading Obsidian Zotero Plugin
plugin:obsidian-zotero-plugin:6 [2022-10-28T12:52:21.969] [INFO] obsidian-zotero:main - Auto refresh set to true
de8e4076-43c4-4622-9fc8-36dcd3274334:48 [2022-10-28T12:52:22.075] [INFO] obsidian-zotero:db-worker - Database opened:  /home/richard/Zotero/zotero.sqlite
de8e4076-43c4-4622-9fc8-36dcd3274334:48 [2022-10-28T12:52:22.077] [INFO] obsidian-zotero:db-worker - Unable to open bbt database, no database found at /home/richard/Zotero/zotero.sqlite
plugin:obsidian-zotero-plugin:6 [2022-10-28T12:52:22.079] [INFO] obsidian-zotero:main - Failed to open Better BibTeX database, skipping...
de8e4076-43c4-4622-9fc8-36dcd3274334:58 TypeError: Expected sixth argument to be a 32-bit signed integer
    at new de (de8e4076-43c4-4622-9fc8-36dcd3274334:48:13144)
    at Bs.acquireRawConnection (de8e4076-43c4-4622-9fc8-36dcd3274334:48:13863)
    at create (de8e4076-43c4-4622-9fc8-36dcd3274334:46:873)
(anonymous) @ de8e4076-43c4-4622-9fc8-36dcd3274334:58
plugin:obsidian-zotero-plugin:193 Uncaught (in promise) TypeError: Expected sixth argument to be a 32-bit signed integer
    at new de (blob:app://obsidian.md/de8e4076-43c4-4622-9fc8-36dcd3274334:48:13144)
    at Bs.acquireRawConnection (blob:app://obsidian.md/de8e4076-43c4-4622-9fc8-36dcd3274334:48:13863)
    at create (blob:app://obsidian.md/de8e4076-43c4-4622-9fc8-36dcd3274334:46:873)

What system are you using? you can post debug info with show debug info command:

output of show debug info:
SYSTEM INFO:
	Obsidian version: v1.0.3
	Installer version: v1.0.3
	Operating system: #1 SMP PREEMPT_DYNAMIC Wed, 26 Oct 2022 15:25:45 +0000 6.0.5-arch1-1
	Login status: not logged in
	Insider build toggle: off
	Live preview: on
	Legacy editor: off
	Base theme: dark
	Community theme: none
	Snippets enabled: 0
	Restricted mode: off
	Plugins installed: 4
	Plugins enabled: 2
		1: QuickAdd v0.5.5
		2: Zotero Plugin v1.0.0-beta.0

RECOMMENDATIONS:
	Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

I am using Arch Linux btw :)

Could you try to reinstall the binary? You can manually delete better-sqlite3-*.node in .obsidian to trigger the install page


Load env variables from .env

You could export them before running any command but I think it would be nice to load them from a .env file for convenience.
Maybe even specify the path and/or variable names in .fauna-migrate.js :)

supporting dotenv would probably be most logical right?

yeah I think that would be best. If I have some time later, I'll add it but I can't promise.

If you've got a repo that uses fauna-schema-migrate packed in with app code there could be conflicts with where you would want to stash the variables for just fauna-schema-migrate.  Possibly even keeping them separate from serverless-function env variable and also from those exposed to the browser.
I am thinking of at least CreateReactApp and NextJS apps.  There's like a whole hierarchy for which files to use when...
Maybe ".env" located inside the required fauna folder would be appropriate?
DOTENV specifically advises against having multiple env files, but when a single repo comprises dev tools, node server code, and browser app code, I feel like it's kindof inevitable.  So conflicts and preferences should be accounted for.

Those are good points @ptpaterson. I might opt to make it configurable as well via the fauna migrate config that is already there. Some users might want to use the same FAUNA admin key and don't want to have two .env files. The default probably should go in the fauna folder. Would also make it easy to generate it initially, considering adding an option in the init to generate that file.

Maybe there are better variations on this, but I was experimenting with a temporary workaround, adding this script to package.json:
  "scripts": {
    "fauna-schema-migrate": "DOTENV_CONFIG_PATH=./.env node -r dotenv/config<EMAIL_ADDRESS>  },

Then run with:
npm run fauna-schema-migrate apply

and it will apply the config from a .env file at the root of your project. Or change the path to ./fauna/.env if you want a separate .env file at the root of the fauna folder as @ptpaterson mentioned.


how to use autoaugment.py?

hello,I want to  know how to use autoaugment.py? thanks

autoaugment.py uses PIL.  Assuming you're stuck on how to feed in (and get out) NumPy arrays, here's an example.
from autoaugment import CIFAR10Policy
from PIL import Image
import numpy as np
transform = CIFAR10Policy()
x = (np.random.rand(100, 100, 3) * 255).astype('uint8')  # fake test image
y = np.array(transform(Image.fromarray(x)))

Thanks @mathandy for answering. :)


HTML issues csirt.divd.nl website

Error: Bad character   after <. Probable cause: Unescaped <. Try escaping it as <.

At line 453, column 125
rends Server  < v...

Error: Bad character   after <. Probable cause: Unescaped <. Try escaping it as <.

At line 477, column 117
in Kaseya VSA < v9.5.6...

Error: Bad character = after <. Probable cause: Unescaped <. Try escaping it as <.

At line 483, column 93
in Kaseya VSA <= v9.5.6...

Error: Bad character = after <. Probable cause: Unescaped <. Try escaping it as <.

At line 489, column 125
in Kaseya VSA <= ...

Error: Bad character   after <. Probable cause: Unescaped <. Try escaping it as <.

At line 495, column 101
in Kaseya VSA < v9.5.5...

Error: Bad character   after <. Probable cause: Unescaped <. Try escaping it as <.

At line 501, column 109
in Kaseya VSA < v9.5.6...

Source: https://validator.w3.org/nu/?doc=https%3A%2F%2Fcsirt.divd.nl%2F

These are in file _includes/menu.html

Gefixt in #154
@klaver Dank!

I guess this issue can be closed hen


Load 6to5 runtime once for compiled code

I should turn off the runtime per-file, and load it once for the entire suite when building the code that runs in the tests.

All that I need to do is add it to the browser tests. 6to5/register automatically includes the polyfill.


Unknown error when add Callout

Is this a bug report?
Yes
Have you read the Installation Instructions?
Yes
Environment
react-native: 0.48.4
react: 16.0.0-alpha.12
react-native-maps: 0.21.0
Steps to Reproduce
I try to add Callout
<MapView
...>
            {this.state.data
              ? this.state.data.map((gara, index) => (
                <MapView.Marker
                  key={index}
                  image={require('../../../assets/images/marker-65x87.png')}
                  coordinate={{
                    latitude: Number(gara.lat),
                    longitude: Number(gara.long)
                  }}
                  onPress={this._loadInitialState}
                >
                  <MapView.Callout>
                    <Text>{gara.name}</Text>
                    <Text>{`Available: ${gara.current_bike}`}</Text>
                  </MapView.Callout>

                  <View style={{
                    flex: 1,
                    justifyContent: 'center',
                    alignItems: 'center',
                    width: 35, height: 35,
                  }}>
                    <Text>
                      {gara.current_bike}
                    </Text>
                  </View>

                </MapView.Marker>
              ))
              : null}
</MapView>

Expected Behavior
Show Callout when press marker
Actual Behavior
I get this error every time open app and markers disappear:

Your Callout has 2 Texts inside, try to add a single child ( or a wrapper View around the texts)

No luck with that. Still get the same error.


Complete overhaul of 0500-10-24-tm-admin_en.md

Reviewing and updating given new onboarding process and Tasking Manager updates since last changes. Have got down to Entities to Map row 220, saving for now, will continue next week.

@SColchester @ramyaragupathy
Hi Sam,
I guess I forgot to mention a few bits from our usual workflow for LearnOSM. You can find more details about this on https://learnosm.org/en/contribute/translator/ where some technical details are outlined. Apologies tor any confusion this might have created now.
When we edit the English master text we usually do so on our staging site (nick-tallguy.github.io,  repository is github.com/Nick-Tallguy/Nick-Tallguy.github.io). This is a particularly good idea if you want to make it in several batches. Even if some formatting goes havoc or something in the headers is wrong then our production site is not affected. Once we are satisfied what we see then we transfer that to the production repository (and on to Transifex for translation). Never edit foreign language documents on the staging site - they will automatically be overwritten by updates from Transifex.
No matter how you want to continue - I synchronized the staging site with this pull request.
I'll update the screenshots so that they match the current forms for editing a project - I still have the dummy project used here on the TM staging site thus new screenshots will thematically match the remainder of this guide.
Let me know if you need any further explanations or clarifications - and thank you for taking your time to update this document!

@michael63-osm fantastic, thanks for this guidance! I'll edit the remainder on the staging site, that workflow makese a lot more sense!

@michael63-osm completed text review now and added here under the staging site: https://github.com/Nick-Tallguy/Nick-Tallguy.github.io/pull/148


Class validator does not exist

Laravel Version: 5.8.3
PHP Version: 7.1.7
Database Driver & Version:  mysql-5.7.19-winx64

Description:
Class validator does not exist {"exception":"[object] (ReflectionException(code: -1): Class validator does not exist
Steps To Reproduce:
create app/Validators folder
create file CompanyRegistrationNumberValidator.php
add code
<?php

namespace App\Validators;

class CompanyRegistrationNumberValidator
{
    public static function validate($attribute, $value, $parameters)
    {
        return (preg_match('#^\d{4}/\d{6}/\d{2}$#', $value) === 1);
    }
}

go to app\Providers\AppServiceProvider.php
add
use Illuminate\Support\Facades\Validator;

in
public function register()

add
Validator::extend('company_reg_no','App\Validators\CompanyRegistrationNumberValidator@validate');

run
composer dump-autoload

[2019-03-06 22:00:15] local.ERROR: Class validator does not exist {"exception":"[object] (ReflectionException(code: -1): Class validator does not exist at \vendor\laravel\framework\src\Illuminate\Container\Container.php:794)

Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

In Container.php line 794:

  Class validator does not exist

Script @php artisan package:discover --ansi handling the post-autoload-dump even
t returned with error code 1

Don't put the Validator::extend line in the register method, put it in the boot method. Your service provider obviously gets executed before the ValidationServiceProvider provider and at that time there is nothing in the container under the "validator" key. By placing it into the boot method (which is executed after all providers register method gets executed) you are sure that everything you need (in this case the validator) is registered in the container.

Thanks, will try that. With all the previous versions of Laravel, this worked without an issue, very odd


fix: type

Checklist

[x] npm test passes
[x] tests and/or benchmarks are included
[x] commit message follows commit guidelines

Description of change
当没有图形需要绘制时，接受undefined返回

感谢 PR！烦请查看评论

The PR didn't work for too long, so it was shut down. If necessary, turn it on again.


Add login support

Since we're adding auth for Reaper's Web UI and REST API, we need to support the login operation so that K8ssandra can interact with Reaper when auth is on.
This PR adds that operation in the client and handles setting the appropriate auth headers so that the other operations don't have to deal with auth explicitly.
I removed the reliance on a script to declare the test clusters and use the client instead. This allows to leverage the new login function as well in the tests.

@adutra, I made the changes you requested. Could you make another pass?
Thanks!


Workspace - New user with long mail id is truncated differently in search results of WS

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

Version Number: 9.0.7
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4727420
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Launch app in both mweb and Android
Tap profile - workspaces - workspace
Tap members
4.Enter a long email id of new<EMAIL_ADDRESS>
Expected Result:
New user with long mail id must be truncated in same way in mweb& Android in search results of Workspace members
Actual Result:
New user with long mail id is truncated differently in mweb& Android in search results of Workspace members
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
https://github.com/user-attachments/assets/a0e2dfa0-b1d7-4a16-a89d-1eea28e95b75

View all open jobs on GitHub

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


[suggestion]: add pagination to blog index page

I notice that there is a comment in getBlogIndex.ts:
// only get 10 most recent post's previews
I dont't know why only 10, but I guess too much preview may effect performance, so I suggest maybe pagination is a good way to solve this.

This is because the content is prerendered and it's a tradeoff between fetching more preview data with the cost of longer build times or limiting the number of previews and having more reasonable build times.
Pagination wouldn't solve this specific case and currently is above the scope of the example so I'm going to close this for now but thanks for the recommendation!


Better handling of multiple AsyncCoroutineRunner

Overview
This PR takes a more flexible approach to cases where multiple AsyncCoroutineRunner are present in the scene in recognition of the necessity of such arrangement under certain circumstances (e.g. scene transition).
Changes

Fixes: #9896

/azp run


💭 Consider supporting deno.

Rather than installing this via npm or yarn, I believe deno should be the first-class installation method. It'd be more forward-thinking, I think, to write against deno, another "reboot" by an influential author, and it would help differentiate from the current Babel/Webpack/ESLint toolchain. I believe this should be achievable especially since you are aiming for zero dependencies, and the project is still very young.

Deno already has its own built in tools to deal with these issues. If anything, feels like an unnecessary addition considering the idea would be too make the experience simpler to use.

I know I closed this, but I wanted to add for posterity that deno bundle isn't currently intended for browsers:

deno bundle is for running code in Deno.

https://github.com/denoland/deno/issues/6516#issuecomment-650756464
Other features like linting would still be a clash, though.


Missing carriage returns in notebook dl1/lesson2-download.ipynb

Some lines of code were wrapped into the comments in the previous line, so they wouldn't appear to the user (and wouldn't run).

Thanks!