Add FAQ and/or documentation

I am struggling using reakt-native-toolkit.
I get an error and I can't find information where to add the dependency
Execution failed for task ':shared:mapReleaseSourceSetPaths'.
> Could not resolve all files for configuration ':shared:releaseRuntimeClasspath'.
   > Could not find com.facebook.react:react-native:0.69.4.
     Required by:
         project :shared > de.voize:reakt-native-toolkit:0.2.0 > de.voize:reakt-native-toolkit-android:0.2.0

We currently require react-native 0.69.4, if your project uses a different version, you get this error. @friedger which version of react native do you use?

@friedger initially the shared module does not agree any dependencies to react-native. I'm confused how to add it so that gradlew shared:build  works.

Because the android react-native dependency is not available in any public maven repository, the are distributed in the npm package of react-native. But they only include one version. If you get an error telling you react-native could not be found, it is most likely that you have not setup the react-native project correctly, or you have a version mismatch between the npm react-native package and the version used by this library.
You can check if you have setup the project correctly by looking in the node_modules/react-native/android directory, there should be somewhere the react-native android dependency artifact.

Just to clarify, the react-native project is in a separate module?

What do you mean with module? React-native is a separate project https://github.com/facebook/react-native

My project is setup with four modules as follows:
|- shared
|- androiddemo (using shared)
|- iosdemo (using shared)
|- rndemo (using shared)
Therefore, I am not sure how to define the dependency of react-native in the shared module

My project is setup with four modules as follows:
|- shared
|- androiddemo (using shared)
|- iosdemo (using shared)
|- rndemo (using shared)
Therefore, I am not sure how to define the dependency of react-native in the shared module

The project setup we are using with the toolkit (and therefore the tested and supported one) is the standard React Native project setup.
This means the project setup should probably be:
root
| - android
     | - app
     | - shared <- KMM code goes here
| - ios
| - src (JS)
package.json

The shared module needs to be added to the /android directory as described in the project setup documentation.
We need this structure to resolve the React Native dependency (as it is usually done in the Android part of RN projects)
repositories {
    maven {
        url = uri("$rootDir/../js/node_modules/react-native/android")
    }
}

Closing due to inactivity


Feature: Close menu after destroying by menu

When the menu option "Destroy" is clicked, the presentation is destroyed and dropped in the background, but that might not be visible in smaller windows, as the menu may obscure a large part of the screen.
Feature request: close the menu after "Destroy".

Implemented in: fd38065ddd8086c3931eefac1c06c257b99d6e2a


When coverScreen={true}, app does not respond to touches

Environment
System:
    OS: macOS 11.1
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 52.64 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 15.3.0 - /var/folders/dm/6q5tjg9j7bx3kfcy_1yqx9zr0000gn/T/yarn--1610046361449-0.8891466775189378/node
    Yarn: 1.22.10 - /var/folders/dm/6q5tjg9j7bx3kfcy_1yqx9zr0000gn/T/yarn--1610046361449-0.8891466775189378/yarn
    npm: 7.0.15 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.9.3 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.3, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
    Android SDK:
      API Levels: 29, 30
      Build Tools: 28.0.3, 29.0.2, 30.0.2
      System Images: android-29 | Google APIs Intel x86 Atom_64, android-30 | Google APIs Intel x86 Atom
      Android NDK: Not Found
  IDEs:
    Android Studio: 4.1 AI-201.87<IP_ADDRESS>53283
    Xcode: 12.3/12C33 - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_275 - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: ^16.13.1 => 16.14.0
    react-native: 0.63.4 => 0.63.4
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Platforms
iOS Only
Versions

Android: N/A
iOS: 13, 14.1, 14.3
react-native-modal: 11.4.0 - 11.61
react-native: 0.63.4
react: 16.13

Description
Sometimes my iOS simulator get's into a state where I am not able to interact with my app WHILE a modal is open with coverScreen={true}.

I'm unable to determine what sequence of actions I must perform to get the application into this state. It seems like a dice-roll every time I open a modal until it finally happens, after which the app is stuck in this state.
Hot reloading does not fix
Restarting the app from the RN dev console does not fix
Closing and re-opening the app does not fix
At the OS level I also lose the ability to swipe-up from the bottom to switch applications
If a timer or other event causes the modal to become invisible, the app will begin responding again
Setting coverScreen={true} and hot reloading will cause the app respond to again

Reproducible Demo
See the video below this short code-snippet.
const styles = StyleSheet.create({
  root: {
    alignItems: "center",
    justifyContent: "center",
  },
});

const BaseModal = (props) => {
  return (
    <Modal
      style={[styles.root, props.style]}
      isVisible={props.open}
      animationIn="fadeIn"
      animationOut="fadeOut"
      backdropColor={Colors.black}
      backdropOpacity={0.9}
      onBackdropPress={props.close}
      // coverScreen={true} (default) causes iOS simulator to become unresponsive sometimes
      // coverScreen={true}
    >
      {props.children}
    </Modal>
  );
};

https://user-images.githubusercontent.com/16328067/103937478-6ca31e00-50ee-11eb-84e6-714a074d76c8.mov

I'm able to reproduce this issue using Modal directly from react-native.

I'm able to reproduce this issue using Modal directly from react-native.

I believe this issue may be related to having an outdated dependencies, specifically react-native-screens.

I believe this issue may be related to having an outdated dependencies, specifically react-native-screens.

The issue is still happening at least in iOS

Still happening in iOS simulator.

still exits, why close?

still exits, why close?

Finally I found the key

the key is when A modal is showing, and then show B modal, and then dimiss A modal, the bug is comming! such as showLoading -> showDialogIfAccountNotRegister -> hideLoading should be change to showLoading -> hideLoading -> showDialogIfAccountNotRegister

and set the modal animation duration is 1 for react-native-modal and while coverScreen=true
      animationInTiming={1}
      animationOutTiming={1}
      backdropTransitionInTiming={1}
      backdropTransitionOutTiming={1}


Websocket fails with a Kleisli Routes monad

Minimal example:
import scala.concurrent.duration._

import cats.implicits._
import cats.data.Kleisli
import cats.effect._
import fs2._
import org.http4s._
import org.http4s.dsl.Http4sDsl
import org.http4s.implicits._
import org.http4s.server.blaze._
import org.http4s.server.websocket.WebSocketBuilder
import org.http4s.websocket.WebSocketFrame

case class WebSocketRoutes[F[_]: Concurrent: Timer]() extends Http4sDsl[F] {

  val routes: HttpRoutes[F] = HttpRoutes.of[F] {
    case GET -> Root =>
      val toClient: Stream[F, WebSocketFrame] =
        Stream.awakeEvery[F](1.seconds).map(d => WebSocketFrame.Text(s"Ping! $d"))
      val fromClient: Pipe[F, WebSocketFrame, Unit] = _.evalMap {
        case WebSocketFrame.Text(t, _) => F.delay(println(t))
        case f                         => F.delay(println(s"Unknown type: $f"))
      }
      WebSocketBuilder[F].build(toClient, fromClient)
  }

}

object Middleware {

  def apply[F[_]: Sync](
      name: String
  )(httpApp: HttpApp[Kleisli[F, String, *]]): HttpApp[F] =
    Kleisli { request =>
      for {
        appRequest <- F.pure(request.mapK(Kleisli.liftK[F, String]))
        appResponse <- httpApp.run(appRequest).run(name)
        response = appResponse.mapK(Kleisli.applyK(name))
      } yield response
    }

}

object Main extends IOApp {

  type AppIO[A] = Kleisli[IO, String, A]

  def run(args: List[String]): IO[ExitCode] = {
    val routes = WebSocketRoutes[AppIO]().routes.orNotFound

    val app = Middleware("test")(routes)

    BlazeServerBuilder[IO](scala.concurrent.ExecutionContext.global)
      .bindHttp(8080, "localhost")
      .withHttpApp(app)
      .serve
      .compile
      .drain
      .as(ExitCode.Success)

  }

}

Full Stack trace:
[info] 23:11:17.950 [blaze-selector-1] INFO org.http4s.blaze.channel.nio1.NIO1SocketServerGroup - Accepted connection from /<IP_ADDRESS>:51343
[info] 23:11:17.974 [ioapp-compute-1] DEBUG org.http4s.server.blaze.Http1ServerStage$$anon$1 - Websocket key: Some(WebSocketContext(WebSocket(Stream(..),org.http4s.server.websocket.WebSocketBuilder$Builder$$Lambda$299/1538312351@2487cace,Kleisli(cats.data.KleisliFunctions$$Lambda$298/754950929@33f502e0)),Headers(),Kleisli(cats.data.KleisliFunctions$$Lambda$298/754950929@365d5f01)))
[info] Request headers: Headers(Host: <IP_ADDRESS>:8080, Connection: Upgrade, Upgrade: websocket, Sec-WebSocket-Version: 13, Sec-WebSocket-Key: 4+mLlx5cT/kKSia8zG5MSw==)
[info] 23:11:17.985 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.Http1ServerStage$$anon$1 - Switching pipeline segments for websocket
[info] 23:11:17.999 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.Http1ServerStage$$anon$1 - Shutting down HttpPipeline
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.Http1ServerStage$$anon$1 - Canceled request
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.Http1ServerStage$$anon$1 - Shutting down.
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.blazecore.IdleTimeoutStage - Stage IdleTimeoutStage sending inbound command: Connected
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.WebSocketDecoder - Starting up.
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.WebSocketDecoder - Stage WebSocketDecoder sending inbound command: Connected
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.WSFrameAggregator - Starting up.
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.WSFrameAggregator - Stage WSFrameAggregator sending inbound command: Connected
[info] 23:11:18.000 [scala-execution-context-global-38] DEBUG org.http4s.blazecore.websocket.Http4sWSStage - Starting up.
[info] 23:11:18.006 [scala-execution-context-global-38] ERROR org.http4s.server.blaze.WSFrameAggregator - Exception caught when attempting inbound command
[info] java.lang.ClassCastException: cats.data.Kleisli cannot be cast to cats.effect.IO
[info]  at cats.effect.IOLowPriorityInstances$IOEffect.attempt(IO.scala:863)
[info]  at cats.syntax.ApplicativeErrorOps$.attempt$extension(applicativeError.scala:52)
[info]  at org.http4s.blazecore.websocket.Http4sWSStage.stageStartup(Http4sWSStage.scala:132)
[info]  at org.http4s.blaze.pipeline.Stage.inboundCommand(Stages.scala:75)
[info]  at org.http4s.blaze.pipeline.Stage.inboundCommand$(Stages.scala:73)
[info]  at org.http4s.blazecore.websocket.Http4sWSStage.inboundCommand(Http4sWSStage.scala:26)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand(Stages.scala:258)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand$(Stages.scala:254)
[info]  at org.http4s.server.blaze.WSFrameAggregator.sendInboundCommand(WSFrameAggregator.scala:22)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand(Stages.scala:276)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand$(Stages.scala:274)
[info]  at org.http4s.server.blaze.WSFrameAggregator.inboundCommand(WSFrameAggregator.scala:22)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand(Stages.scala:258)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand$(Stages.scala:254)
[info]  at org.http4s.server.blaze.WebSocketDecoder.sendInboundCommand(WebSocketDecoder.scala:14)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand(Stages.scala:276)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand$(Stages.scala:274)
[info]  at org.http4s.server.blaze.WebSocketDecoder.inboundCommand(WebSocketDecoder.scala:14)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand(Stages.scala:258)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand$(Stages.scala:254)
[info]  at org.http4s.blazecore.IdleTimeoutStage.sendInboundCommand(IdleTimeoutStage.scala:18)
[info]  at org.http4s.blaze.pipeline.Tail.replaceTail(Stages.scala:183)
[info]  at org.http4s.blaze.pipeline.Tail.replaceTail$(Stages.scala:162)
[info]  at org.http4s.server.blaze.Http1ServerStage.replaceTail(Http1ServerStage.scala:73)
[info]  at org.http4s.server.blaze.WebSocketSupport.$anonfun$renderResponse$7(WebSocketSupport.scala:83)
[info]  at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:447)
[info]  at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
[info]  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[info]  at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
[info]  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
[info]  at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
[info] 23:11:18.006 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.WSFrameAggregator - Shutting down.
[info] 23:11:18.006 [scala-execution-context-global-38] DEBUG org.http4s.server.blaze.WebSocketDecoder - Shutting down.
[info] 23:11:18.006 [scala-execution-context-global-38] DEBUG org.http4s.blazecore.IdleTimeoutStage - Shutting down idle timeout stage
[info] 23:11:18.006 [scala-execution-context-global-38] DEBUG org.http4s.blazecore.IdleTimeoutStage - Shutting down.
[info] 23:11:18.006 [scala-execution-context-global-38] DEBUG org.http4s.blaze.channel.nio1.NIO1HeadStage - Shutting down.
[info] 23:11:18.007 [blaze-selector-1] ERROR org.http4s.blaze.channel.nio1.NIO1HeadStage - Abnormal NIO1HeadStage termination
[info] java.lang.ClassCastException: cats.data.Kleisli cannot be cast to cats.effect.IO
[info]  at cats.effect.IOLowPriorityInstances$IOEffect.attempt(IO.scala:863)
[info]  at cats.syntax.ApplicativeErrorOps$.attempt$extension(applicativeError.scala:52)
[info]  at org.http4s.blazecore.websocket.Http4sWSStage.stageStartup(Http4sWSStage.scala:132)
[info]  at org.http4s.blaze.pipeline.Stage.inboundCommand(Stages.scala:75)
[info]  at org.http4s.blaze.pipeline.Stage.inboundCommand$(Stages.scala:73)
[info]  at org.http4s.blazecore.websocket.Http4sWSStage.inboundCommand(Http4sWSStage.scala:26)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand(Stages.scala:258)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand$(Stages.scala:254)
[info]  at org.http4s.server.blaze.WSFrameAggregator.sendInboundCommand(WSFrameAggregator.scala:22)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand(Stages.scala:276)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand$(Stages.scala:274)
[info]  at org.http4s.server.blaze.WSFrameAggregator.inboundCommand(WSFrameAggregator.scala:22)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand(Stages.scala:258)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand$(Stages.scala:254)
[info]  at org.http4s.server.blaze.WebSocketDecoder.sendInboundCommand(WebSocketDecoder.scala:14)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand(Stages.scala:276)
[info]  at org.http4s.blaze.pipeline.Head.inboundCommand$(Stages.scala:274)
[info]  at org.http4s.server.blaze.WebSocketDecoder.inboundCommand(WebSocketDecoder.scala:14)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand(Stages.scala:258)
[info]  at org.http4s.blaze.pipeline.Head.sendInboundCommand$(Stages.scala:254)
[info]  at org.http4s.blazecore.IdleTimeoutStage.sendInboundCommand(IdleTimeoutStage.scala:18)
[info]  at org.http4s.blaze.pipeline.Tail.replaceTail(Stages.scala:183)
[info]  at org.http4s.blaze.pipeline.Tail.replaceTail$(Stages.scala:162)
[info]  at org.http4s.server.blaze.Http1ServerStage.replaceTail(Http1ServerStage.scala:73)
[info]  at org.http4s.server.blaze.WebSocketSupport.$anonfun$renderResponse$7(WebSocketSupport.scala:83)
[info]  at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:447)
[info]  at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
[info]  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[info]  at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
[info]  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
[info]  at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
[info] 23:11:18.007 [blaze-selector-1] DEBUG org.http4s.blaze.channel.nio1.NIO1HeadStage - Stage NIO1HeadStage sending inbound command: Disconnected
[info] 23:11:18.007 [blaze-selector-1] DEBUG org.http4s.blazecore.IdleTimeoutStage - Shutting down idle timeout stage
[info] 23:11:18.007 [blaze-selector-1] DEBUG org.http4s.blazecore.IdleTimeoutStage - Shutting down.
[info] 23:11:18.007 [blaze-selector-1] DEBUG org.http4s.blazecore.IdleTimeoutStage - Stage IdleTimeoutStage sending inbound command: Disconnected
[info] 23:11:18.007 [blaze-selector-1] DEBUG org.http4s.server.blaze.WebSocketDecoder - Shutting down.
[info] 23:11:18.007 [blaze-selector-1] DEBUG org.http4s.server.blaze.WebSocketDecoder - Stage WebSocketDecoder sending inbound command: Disconnected
[info] 23:11:18.007 [blaze-selector-1] DEBUG org.http4s.server.blaze.WSFrameAggregator - Shutting down.
[info] 23:11:18.008 [blaze-selector-1] DEBUG org.http4s.server.blaze.WSFrameAggregator - Stage WSFrameAggregator sending inbound command: Disconnected
[info] 23:11:18.010 [blaze-selector-1] DEBUG org.http4s.blazecore.websocket.Http4sWSStage - Shutting down.

I tried debugging it for a the past 2 hours, but I'm not deep enough in the http4s codebase to resolve this within a reasonable amount of time. Hopeful the solution for this will be obvious to someone around here.

Looks like the problem's with the attribute field of the response.
When you do this:
        response = appResponse.mapK(Kleisli.applyK(name))

mapK doesn't run every Kleisli and turn it back into F (despite the type telling you so!)
See the implementation of mapK:
https://github.com/http4s/http4s/blob/fef26ec6c14433490969a8e5bd221121288c8de0/core/src/main/scala/org/http4s/Message.scala#L529-L536
The attributes  field is passed as-is without any modification.
See how the WebSocket object is stored inside Response.
https://github.com/http4s/http4s/blob/b6608e43682b37529a299ce5ab05994e102c2bd0/server/src/main/scala/org/http4s/server/websocket/WebSocketBuilder.scala#L75-L77
All of its fields, the send/receive streams and onClose effect are still Kleislis even after mapK -- so if you try to run them with IO, it blows up with a ClassCastException.

Thanks for the pointer, @yoohaemin.
Based on this, I dug a bit deeper and was able to resolve this in a local branch, but the changes required, while straightforward, break the current API:

pull the WebSocketContext out of the attributes in its own variable on the Response

final case class Response[F[_]](
    status: Status = Status.Ok,
    httpVersion: HttpVersion = HttpVersion.`HTTP/1.1`,
    headers: Headers = Headers.empty,
    body: EntityBody[F] = EmptyBody,
    attributes: Vault = Vault.empty,
    wsCtx: Option[WebSocketContext[F]] = None
) extends Message[F] ...

mapK on response needs to act on the wsCtx. Given that WebSocketContext[F] wraps around WebSocket, and WebSocket[F] has a Pipe[F], we also need the inverse natural translation of F ~> G (G ~> F), so the shape is more that of what is called translate within this codebase. We need a functor instance of F, since WebsocketContext[F] has failureResponse as F[Response[F]] which we need to become G[Response[G]]

(for Response[F]: mapK -> translate)
  def translate[G[_]](fk: F ~> G)(gK: G ~> F)(implicit F: Functor[F]): Response[G] =
    Response[G](
      status = status,
      httpVersion = httpVersion,
      headers = headers,
      body = body.translate(fk),
      attributes = attributes,
      wsCtx = wsCtx.map(_.translate(fk)(gK))
    )

(for WebsocketContext: translate)
  def translate[G[_]](fk: F ~> G)(gK: G ~> F)(implicit F: Functor[F]): WebSocketContext[G] =
    WebSocketContext[G](
      webSocket.translate(fk)(gK),
      headers,
      fk(F.map(failureResponse)(_.translate(fk)(gK)))
    )

(for Websocket: translate)
  def translate[G[_]](fk: F ~> G)(gK: G ~> F): WebSocket[G] =
    WebSocket[G](
      send = send.translate(fk),
      receive = stream => receive(stream.translate(gK)).translate(fk),
      onClose = fk(onClose)
    )

Update build of WebsocketBuilder to store the context in the newly introduced wsCtx variable on the Response instead of in the arguments

def build(
  ...
): F[Response[F] = {
  ...

       WebSocketBuilder(
        send,
        finalReceive,
        headers,
        onNonWebSocketRequest,
        onHandshakeFailure).onNonWebSocketRequest
        .map(
          _.copy(wsCtx = Some(
            WebSocketContext(WebSocket(send, finalReceive, onClose), headers, onHandshakeFailure)))
...
}

some minor changes (pattern match of Response, calling of mapK on response, ...) in Logger.scala, Client.scala, Status.scala, Message.scala and KleisliSyntax.scala

Stats:  9 files changed, 43 insertions(+), 20 deletions(-)
LMK if this is an acceptable solution, @rossabaker. If so, I'm happy to open a PR, even addressing suggestions one might have on how to do it more elegantly.

@pjan I think this could definitely work and a cleaner solution of the root cause. However, if the maintainers decide that the api breakage is a problem I can think of another way to solve this.
We could store a list of FunctionKs in the vault, and append at the list whenever mapK in the Response is called. After that, when the websocket stuffs are actually invoked, run foldK on that list and apply the resulting FunctionK to the websocket effects. This ensures no FunctionKs are thrown away, and there will be no api breakage.
If performance of storing a list is a problem, we could take the eager route and store a single FunctionK, but compose them with a new one whenever mapK is called.
WDYT?

Given that we need both an F ~> G as well as a G ~>F for the transformation of the Pipe (inside the Websocket > WebsocketContext > Response) for this to work, it would still come with API breakage.

Good find @pjan
Not all backends support Websockets at the moment, leaving us with a problem of how to model this without having to expose it in the base model. Attributes swallows the original type, but exposing it as a response field may signal to users that all backends support websockets. IDK what is the best solution here. We cannot query the attributes of which effectful attributes exists. Meaning that if we continue storing them there, we would need to mapK them as well, and maybe allow users to translate user-defined attribute keys as well.
Api breakages needs to to target the master branch.

@pjan Have you resolved this problem in your project somehow? or just forked http4s

Yeah, it seems like we're definitely in breaking change territory here.  Great work finding the cause of the problem.
The current model of trying to smuggle a web socket through a Response is impossible to support on the servlet backends, even though servlets support web sockets.  Elevating it to a field on the response as proposed here would solve this issue, but not permit broader backend support.  If we're making a breaking change, I wonder about separating web sockets from HttpApp / HttpRoutes entirely: two different Kleisli shapes, each with their own mount method on the backend builders.  This would unfortunately push some additional routing logic into Blaze and probably Ember.
Another thing that makes me hesitant to elevate the websocket to a field on the response is that it will cost memory on the vast majority of responses in the http4s universe that aren't web sockets.

On the servlet front, not that people are clamoring for that support, the current model will be possible in Jetty 10.  So that argument against the status quo is weakened.
Would still like to find a way around this.

Opening it up would get around the memory concerns, but we almost always end up regretting subtyping.  There's so much to think about on all the return types.  I'd consider reviving the idea of Message as a typeclass before subtyping.

As a temporary band aid, could Request be sealed too?

We have ContextRequest and ContextResponse for the "more compositional" approach, but I think this demands subtyping: it still has to be a request coming in and a response going out.
I guess sealing it would work, but everything else websocket is neatly tucked away into its package.  That feels like an awful hack.

I'm working on this.

@pjan is absolutely correct. To translate a WebSocket[F] to a WebSocket[G], both an F ~> G and G ~> F and Functor[F] are needed. If we look at the existing API (mapK exists on Response[F], but not translate), IMO, it is a violation to stick a WebSocket[F] inside a Response[F], because we are essentially lying that it is possible to then mapK the resulting Response[F] which contains the websocket. So even if we do solve the problem of providing the f: F ~> G to the websocket object, it is still not enough to achieve a proper translation.

So, maybe a subtype of Response with a def translate[G[_]](f: F ~> G, g: G ~> F): WSResponse[G] is the only lawful way to proceed...

Fixed in https://github.com/http4s/http4s/pull/5152 I believe.


Persistence of Results

We should create a model(s) to allow us to persist tournament results in the database.
This will allow the data produced to be made available to anyone who wishes to analyse it.

The results are already persisted in the tournament table. I'm not sure if this is enough though. Does this need augmenting?

I created this issue simply as an attempt to record the discussion early on Thursday morning at Djangocon where, I think, we concluded that we needed models for the results themselves.
The use case was a researcher who perhaps wanted to study how machine learning strategies perform across all tournaments.
We also recognised that this was a longer term development.


🐛 ORM hydrator can't fill behavior fields

No duplicates 🥲.

[X] I have searched for a similar issue in our bug tracker and didn't find any solutions.

What happened?
How to reproduce?

Install cycle orm with entity-behavior package

"cycle/orm": "^2",
"cycle/entity-behavior": "^1.0",

Register CreatedAt and UpdatedAt behaviors via php attributes using any entity your like

# e.g.
#[
    Cycle\Entity(repository: Repository\User::class, scope: Scope\NotDeleted::class),
    Behavior\Uuid\Uuid6(field: 'id'),
    Behavior\CreatedAt(column: 'created_at'),
    Behavior\UpdatedAt(column: 'updated_at'),
    Behavior\SoftDelete(column: 'deleted_at'),
]
class User
{
   #[Cycle\Column(type: 'datetime')]
    private DateTimeImmutable $createdAt;

    public function getCreatedAt(): DateTimeImmutable
    {
        return $this->createdAt;
    }
}

Please try to select data from table

$userRepository->all();

You're should get an error:
Typed property App\\Entity\\User::$createdAt must not be accessed before initialization

I will expect when $createdAt filled from database recordset but isn't happened.
Version
ORM 2.0.2
Entity-behavior: 1.1.0
PHP 8.1

@roquie
Hi, I tried to reproduce this issue and created a simple example:
https://github.com/msmakouz/app/tree/orm-issue-323
created_at field corrects filled by Entity Behaviour and correctly hydrated by Cycle ORM.
Can you create an example with this bug? (or modify my example: https://github.com/msmakouz/app/tree/orm-issue-323)
Thanks!

@roquie Do you have any updates?

Oh sorry, I missed notification. Okay, I try again.

I tried it twice. It's my mistake, sorry.


Enabling SSL for Redis-API

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

perhaps this was meant to reference GEODE-7816?  There is no such ticket as GEODE-8618


App Crash - Try using VS2022 developer command prompt

Windows Terminal version
1.12.10733.0
Windows build number
10.0.22000.613
Other Software
Visual studio 2022 64 bit edition
Steps to reproduce
I integrated the VS2022 dev command prompt by adding the settings blurb below
{
"backgroundImage": "C:\Users\mikedice\OneDrive - Microsoft\Pictures\Dune Art\78129.jpg",
"backgroundImageOpacity": 0.29999999999999999,
"commandline": "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat",
"font":
{
"size": 16
},
"foreground": "#16C60C",
"guid": "{b3c68d96-cac9-4989-9f9c-ff61f248c02e}",
"icon": "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
"name": "IDK",
"startingDirectory": "C:\Users\mikedice\repos",
"useAcrylic": false
},
This is also the default profile
"defaultProfile": "{b3c68d96-cac9-4989-9f9c-ff61f248c02e}",
Open Terminal
It shows the VS2022 command prompt intro banner for a couple of seconds
The Terminal App disappears. I assume the app crashed. I don't know where the logs are for this app.
If I change the defaultProfile to the GUID of one of my other configurations the app starts successfully. Now, though, if I try to start the "IDK" prompt that tab will disappear after showing the VS2022 command prompt intro banner briefly
Need to be able to use the VS2022 command prompt so I'll just use the old Windows console outside of terminal for now but, I won't be able to see my cool Dune background art :(
Expected Behavior
Can integrate VS 2022 command prompt into WIndows Terminal. I have been using the VS2019 command prompt in Windows Terminal for quite some time.
Actual Behavior
Cannot use VS2022 command prompt in WIndows Terminal. The terminal tab crashes.

I attached the debugger - here is the output:
onecore\com\combase\objact\objact.cxx(4080)\combase.dll!00007FFFAB3B5105: (caller: 00007FFFAB3B1B12) ReturnHr(15) tid(df8) 80040154 Class not registered onecore\com\combase\objact\objact.cxx(4080)\combase.dll!00007FFFAB3B5105: (caller: 00007FFFAB3B1B12) ReturnHr(16) tid(df8) 80040154 Class not registered onecore\com\combase\objact\objact.cxx(4080)\combase.dll!00007FFFAB3B5105: (caller: 00007FFFAB3B1B12) ReturnHr(17) tid(df8) 80040154 Class not registered Exception thrown at 0x00007FFFAA37466C in WindowsTerminal.exe: Microsoft C++ exception: std::out_of_range at memory location 0x000000DB4DFFF680. Exception thrown at 0x00007FFFAA37466C in WindowsTerminal.exe: Microsoft C++ exception: [rethrow] at memory location 0x0000000000000000. C:\a\_work\1\s\src\renderer\uia\UiaRenderer.cpp(312)\Microsoft.Terminal.Control.dll!00007FFF8E84CB5A: (caller: 00007FFF8E79159F) LogHr(8) tid(41c4) 8000000B The operation attempted to access data outside the valid range     Msg:[std::exception: invalid string_view position]  Exception thrown at 0x00007FFFAA37466C in WindowsTerminal.exe: Microsoft C++ exception: std::out_of_range at memory location 0x000000DB4DFFF680. Exception thrown at 0x00007FFFAA37466C in WindowsTerminal.exe: Microsoft C++ exception: [rethrow] at memory location 0x0000000000000000. C:\a\_work\1\s\src\renderer\uia\UiaRenderer.cpp(312)\Microsoft.Terminal.Control.dll!00007FFF8E84CB5A: (caller: 00007FFF8E79159F) LogHr(9) tid(41c4) 8000000B The operation attempted to access data outside the valid range     Msg:[std::exception: invalid string_view position]  The thread 0x29c0 has exited with code 0 (0x0). The thread 0x7e8 has exited with code 0 (0x0).

@mikedice yum might want to change the command to LauchDevCmd.bat. Using your custom profile, background picture included, this is the output:

Notice I'm using VS community edition not enterprise.

Thanks for looking and for the work around. The solution you provided above is working on my machine too.

Glad you got this sorted out!
In 1.12 the Terminal should have also automatically detected your VS installs and created profiles for you. Did you not see those?


⚠ SkipTheTrailers has degraded performance

In e6af703, SkipTheTrailers ($STT) experienced degraded performance:

HTTP code: 200
Response time: 1586 ms

Resolved: SkipTheTrailers performance has improved in c190c9c.


Enh: Count applied/reverted migrations in case of error

Currently MigrateController outputs this

2 from 5 migrations were applied

only when a migration does return false;.  If I want to undo migrations just applied (2 from 5), I need to count them manually in the output. It's annoying at least or sometimes may be impossible due too flood produced by each real query.
The suggestion is either to show same summary "2 from 5 migrations were applied" in case of error or output "$index/$count" on each processed migration.
What steps will reproduce the problem?

Create N migrations.
One migration somewhere in the middle (7th for example) is bad due to some typos.
./yii migrate/up

What is the expected result?
*** applying foo
    ...
*** applyed foo

*** applying bar
6 of 10 migrations were applied
7th one was failed with error
Exception 'Exception' with message 'message'

in ...

What do you get instead?
*** applying foo
    ...
*** applyed foo

*** applying bar
Exception 'Exception' with message 'message'

in ...

Additional info

Q
A

Yii version
<IP_ADDRESS>

what about wrapping all migrations Up or Down inside a transaction, and make them atomic? would that be an acceptable solution?

@njasm , no, at least until MySQL would run set of DDL statements under transaction.


Add safe_extract

Description of changes: Similar to #2484, add safe_extract utility to sanitize destination paths before extracting archives.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Please tag this pr with at least one of these labels to make our release process faster: BREAKING, new feature, bug fix, other change, dev setup

Ah! This can be simplified a lot

Can we put this into util?


Check if parameter table is correct

After my commit 4ddf3a7ed2be337ab26c0a4d7bfe19ce05ed5ee9 see if all the parameters in Table tab:parameters are correct, and previously explained and justified.

Re-opening, @fergunet, could the table be a little smaller?


Benchmarks are off

Benchmarks in the readme are confusing; looks like there are some leftover rows from the 4.0 release which should no longer be there.

Oh, nice catch! They probably should be re-done since the numbers will have slightly increased in 4.0.

I've just done small benchmark for my project - about 2800 modules, a lot of css, files with css modules, postcss, etc.
macOS, i7 2.2, 16 gb
https://docs.google.com/spreadsheets/d/16mQDv4Zg2ON1ky1o3aeUD-2yhMwoCUY_CpnDLLMlZmY/edit?usp=sharing

Thanks for sharing @AleksandrZhukov ! Will incorporate this along with the new benchmarks I make

Forgot to add, tests were made for webpack 2.6.1


I can't Build It

Do you have release Version. Or Exe version

Sorry I missed this issue, I'm getting used to the way GitHub handles notifications (in particular, it doesn't email me when people open issues, so it's a different workflow)
Anyway, I have a change to add <IP_ADDRESS> support coming in the next couple days, so I will upload prebuilt executables and let you know. I assume you are on Windows?

Yes, I use windows
When I compile, he will say that there is a front end missing and cannot be downloaded
After I tried to remove it, I managed to compile it
I still hope you can upload a compiled program

Thanks! I have just published a release with 0.9.7 support here and attached an executable which should work on 64-bit Windows. Let me know if it doesn't work for you, and I'll re-open this issue.


test optimization

All Submissions Basics:

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[ ] Have you checked all Issues to tie the PR to a specific one?

All Submissions Cores:

[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully ran tests with your changes locally?
[ ] Does your submission pass tests, including CircleCI, Travis CI, and AppVeyor?
[ ] Does your submission have appropriate code coverage? The cutoff threshold is 95% by Coversall.

New Model Submissions:

[ ] Have you created a .py in ~/pyod/models/?
[ ] Have you created a _example.py in ~/examples/?
[ ] Have you created a test_.py in ~/pyod/test/?
[ ] Have you lint your code locally prior to submission?

Pull Request Test Coverage Report for Build 1497

155 of 155 (100.0%)  changed or added relevant lines in 23 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 95.621%

Totals

Change from base Build 1475:
-0.02%

Covered Lines:
4389

Relevant Lines:
4590

💛  - Coveralls

I love it!


Sorting disappears after refreshing sales page

Every time the sales page is reloaded in browser, current titles sorting is lost despite sorting symbol reappears in the right place and form.

Huh, could you elaborate?

It seems that titles are sorted by score by default, and this sorting returns after the page refreshing. And i was wrong about the sorting symbol behavior. Anytime after the page refreshing, three columns are marked as sorted in descending order: name, discount percentage and score (which is not true for the first two).

It won't keep your sorting after you refresh the page, that's expected.
It sorts by: category (where daily deal is at the very top), reviews and then the discount percentage.

Ok, i uderstand. But it may be much better if i can store my own sorting criteria somehow. So, consider that i request such a feature for future development.


Deploy model in GCP

using either Functions or Run as the backend

Used FastAPI with GC Run for single and batch image classification.


-ScanAvgCPULoadFactor

Is it a hard limit or not. this document doesn't say if it is or it isn't but this doc say it's not a hard limit so have edited this one. Need someone to confirm which is true: https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-antivirus/configure-advanced-scan-types-microsoft-defender-antivirus

Docs Build status updates of commit 1a94d65:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/windows/defender/Set-MpPreference.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

cc @JohanFreelancer9 Final copy editing may be needed before merging this PR. Thank you.

Docs Build status updates of commit 334fbb1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/windows/defender/Set-MpPreference.md
:white_check_mark:Succeeded
View (win10-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit a9fc592:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/windows/defender/Set-MpPreference.md
:white_check_mark:Succeeded
View (win10-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


[BUG] DATAX_HOME directory is overwritten with an empty jsons folder

Describe the bug
After configuring DATAX_HOME, the directory is overwritten with an empty jsons folder
To Reproduce
Steps to reproduce the behavior, for example:

Set DATAX_HOME variables
The DATX_HOME is the original datax
When run the sync job ,DATX_HOME is overwritten

Expected behavior
Keep the datax directory, and accurately identify datax.py
Which version of DataX Web:

dev branch

misinformation


Added individual configuration feature

With this feature we can use multiple file managers with different options for each individually.
++ Small bugfix with search bar.
++ Added new configuration option which allows enable or disable language selector.

Hi @mrwogu thanks for that crontibution.
What are you meaning with "multiple file managers with different options " ?
Regards.

@joni2back, with your current version - you have global configuration for whole module.  It means that you can use countless times file manager directives and all of them will have one configuration.
My feature allows to set individual configuration for several file manager's directive.
Ex. you can use
<angular-filemanager config="managerOptions1"></angular-filemanager>
<angular-filemanager config="managerOptions2"></angular-filemanager>

It could be helpful if you want use file manager for many servers in your angular application.

Great, and the last doubt..
Where and which scope do you need to set your
$scope.managerOptions

In controller when you use filemanager directive.

So, how you extend the configuration for each instance without modifying the source code? (because we have a workaround to do that currently)

@joni2back just check example in my edited readme.md

Hi.. This is interesting, but please we need to find a way to do it wihout modifying the source code of the controller, etc.. just using the config extension.


CVE-2024-45337, CVE-2024-45338

Fixes:

https://github.com/aserto-dev/self-decision-logger/security/dependabot/10
https://github.com/aserto-dev/self-decision-logger/security/dependabot/11

Also removes circular dependency on topaz.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

4 of 5 (80.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.5%) to 72.905%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

logger/self/logger.go
4
5
80.0%

Totals

Change from base Build<PHONE_NUMBER>6:
0.5%

Covered Lines:
261

Relevant Lines:
358

💛  - Coveralls


Added Wikidata Quantity type 'quantity

Hello,
I added the acceptance of the datatype Quantity.
When I requested the population property P1082 , I got the error " Unkown property type quantity", so thats why I added this type.
I would be happy for feedback, if something is wrong/missing etc.
Thanks!

Thanks

Published https://rubygems.org/gems/wikidata-client/versions/0.0.12


add send sms permission.

It's now available in the 1.2.0! Please check the changelog https://github.com/react-native-community/react-native-permissions/releases/tag/1.2.0


Changed spoke detection for klusterlet instead of clusterclaim for failed joining of managed clusters

@dislbenn Tagging here since I can't add reviewers.

/lgtm


support more UTF-16 characters in natlang

fix for #442
this pr should add support for all Unicode Lo characters (e.g. arabic, herbrew, ä, ö, ß etc)
But grammars and matching might not work with weird characters - i might look at that in the future.
Pull request status:

[x] Tests added/updated
[x] 80 % Coverage
[ ] Code conventions
[x] Doku required and added
[x] Ready for review

wrong commits in here... sorry


zmq_publisher is unrecoverable after a subscriber closes

https://github.com/iscoe/ezmsg/blob/0e78703cdaad3f136fbde8b2df91aeadbf7bae37/extensions/ezmsg-zmq/src/ezmsg/zmq/units.py#L205-L213
In the above snippet, the publisher advances from waiting for the socket to open to continuous publishing until the socket has closed, then the publisher returns and is never heard from again until the pipeline is restarted.
Is this intentional?
I think a more flexible solution would be something like the following:
while True:
    if not self.socket_open:
        await asyncio.sleep(POLL_TIME)

    if self.socket_open:
        poll_result = await self.STATE.socket.poll(
            self.SETTINGS.poll_time * 1000, zmq.POLLIN
        )
        if poll_result:
            ...

Actually, after looking over socket_monitor, it seems as though this is intentional. i.e., if a socket was open then it is closed, theZMQPollerUnit should shutdown.
What's the use case? Why does the ezmsg pipeline's zmq publishers care what the subscribers are doing?

I agree with your read @cboulay.  Although I think @pperanich might have more to say about this, I believe some of the early work we supported with this Unit facilitated a connection between an external data sink (in a Docker container) and our ezmsg system.  It was a one-to-one connection and this code-path was never really evaluated.
I believe your commit above to your working branch is pretty innocuous and I don't believe we're currently running any systems with zmq_publisher that would be directly affected by this change.  Id be happy to accept this change in a PR in pretty short order


[BUG] Slow VisualStudioCredential performance when accessing Azure App Config in a multi-tenant setup

Library name and version
Azure.Identity 1.10.4
Microsoft.Azure.AppConfiguration.AspNetCore 7.0.0
Describe the bug
The situation is that I'm setting up a ChainedTokenCredential to use the Visual Studio Credentials followed by Azure CLI Credentials when running locally.  Weirdly I'm seeing a connection time between 15-45 seconds when calling builder.Configuration.AddAzureAppConfiguration(...) using the Visual Studio Credential.  But the connection is less than a second when using Azure CLI alone.  Same behavior persists when I used only Visual Studio Credentials.  Neither do I have the same issue connecting to an Azure Key Vault.  Do note that this is in a multi-tenant scenario.
Expected behavior
Expect that the call to builder.Configuration.AddAzureAppConfiguration(...) completes in less than a second, just like when adding a Key Vault or using the Azure CLI Credentials.
Actual behavior
The builder.Configuration.AddAzureAppConfiguration(...) call takes anywhere from 15 to 45 seconds to complete.
Reproduction Steps
My user is on Tenant A while my App Config is on Tenant B.  The Tenant ID in my code is the Tenant B TenantID.
`List credentials = new List();
VisualStudioCredentialOptions vscOptions = new VisualStudioCredentialOptions()
{
AdditionallyAllowedTenants = { "*" },
//Not a real Tenant ID
TenantId = "88909005-48a7-48b4-b99b-73b1295c6424",
};
credentials.Add(new VisualStudioCredential(vscOptions));
var AzureIdentity = new ChainedTokenCredential(credentials.ToArray());
config.AddAzureAppConfiguration(options =>
{
options.Connect("https://insertappconfignamehere.azconfig.io/", AzureIdentity)
.Select(KeyFilter.Any, LabelFilter.Null);
});`
For comparison swap VisualStudioCredential & Options with AzureCliCredential & Options.
Environment
Windows 11
Visual Studio 2022 64 bit - Version 17.8.3
C#
Asp.Net 6.0

//fyi: @christothes

Hi @clbarrett.  Thanks for reaching out and we regret that you're experiencing difficulties.  As you've noted that the slow performance seems isolated to use with the AppConfig extension, I've transferred this over to the team that maintains the extension as #513 to ensure that the folks best able to assist have visibility.   We'll work with them as needed to provide information on the Identity credentials.
For now, I'm going to close this issue out.   Should the AppConfig team's investigation indicate that this is a credential-related issue, we'll reactivate.

Thanks for helping me get this to the right place.


Add capabilities attributes/properties for MusicProviders

This comes in handy when/if a provider does not support all features or is in the process of being added

Can't we turn this into an opt-in thing? Now we are using so many booleans all over the place, which would be harder to maintain.
Could we use for example a new MediaProviderCapability class with an enum of capabilties (e.g. MediaProviderCapability.PLAYLIST_EDIT. Then as a property of each provider we can just use:
_supported_capabilities: List[MediaProviderCapability]


Could you add support to grab the "All Reviews" or "Recent Reviews" rating

Title says it all. I'd like to impose the rating of the games on the wishlist card.

Looks like the api does return this data, will just need to do a little investigation to figure out the mapping as they are returned as numbers (8) instead of labels like (Extremely Positive).

@djvj1 Three new attributes were added in the latest release: https://github.com/boralyl/steam-wishlist/releases/tag/v2.1.0

Thanks so much for the quick update!! Once HACS shows the update, I'll test it out.

Would you be able to put an example on how to add this to your wishlist card? Still new to HA and not sure how to add attributes in YAML:
type: custom:nintendo-wishlist-card
entity: sensor.steam_wishlist_#####
title: Steam Wishlist
secondary_info:
  attribute: review_desc
entities:
  - attribute: review_desc
    name: Review
image_style: backgroundart
max: 10

Above doesn't work, just showing what I tried.

Unfortunately the card only supports the documented options since it was made specifically for the nintendo wishlist custom component which doesn't have those review attributes.
You have 2 options if you want to try to get the review data to show on the card:

Modify the javascript manually to be able to get those attributes to show up on the card itself.  Somewhere around here: https://github.com/custom-cards/nintendo-wishlist-card/blob/master/nintendo-wishlist-card.js#L307-L323
If you are familiar with css and image software (photoshop / gimp / etc.) you might be able to recreate it using a picture-elements card.


File provider with dynamic configuration does not pickup changes from file watcher

Hey there,
I'm using the traefik snap on Ubuntu 22.04.02 LTS using the file provider configuration.
The static configuration I put into /etc/traefik/traefik.yml and the dynamic configuration is configured here as:
providers:
  file:
    directory: "/etc/traefik/conf.d"
    watch: true

The dynamic configuration is then picked up upon start, but the file watcher does not pick up changes to the files. After changing the dynamic configuration the snap has to be restarted manually in order to pick up changes.
Is there any way that this can be changed?

It is working for me with traefik 2.10.1


Unable to get a token

Hi ! I have a problem

You have a solution please ?

Yes, but I don't plan to release the patch publicly.
Have a nice day! :)


Add twitter amp support

+1

+1

[B]

+1

@towanda
Why are you reverting the symbols? much nicer than the hash rockets :(

@dsager because they are not compatible with ruby 2.1


add backsolved option to SubmitAnswerModal

Adds a backsolved checkbox option to the submit answer modal.
I know this is simple, but I have no idea what I'm doing, so any feedback would be appreciated.
Addresses #675 .

==>

==>


TypeError: Cannot read property 'length' of undefined when using Yup.addMethod()

I'm using formik with yup and using Yup.addMethod().
I'm using React 16.5
Example:
validationSchema: Yup.object().shape({     file:Yup.addMethod(Yup.string, 'file',(file)=>{       console.log(file);   return "This is not a valid file.";     })   }),
I'm getting error:
TypeError: Cannot read property 'length' of undefined

I’m not sure this is a Formik error. Can you please provide a codesandbox and complete the issue template.

@jaredpalmer Thanks for reply.
Here is my codesandbox URL: https://codesandbox.io/s/wz6y0qwrm8
When you will upload any file this will through the error.
If you will comment the following part you will not see on change error:
file: Yup.addMethod(Yup.array, "file", file => {
      console.log(file);
      return "This is not a valid file.";
    })

I'm also getting this error; I'm using yup, but not using .addMethod.

I am also getting this error, with .addMethod

updated yup from 0.24.1 to latest and now getting this error

@raq929 , @nathanhannig
Make sure the variable you're checking is defined inside the validationSchema regardless whether its 'required'.
See this answer for an example: https://stackoverflow.com/questions/49394391/conditional-validation-in-yup?rq=1

What @fullmetalsheep wrote helped me in one case. Other case was that my custom string().test() method had an error inside and crashed silently resulting in this message. See inside all your custom test() methods if they do not crash (In my case I didn't handle undefined value passed to it)

Hey @fullmetalsheep I am getting this error while using Formal & Yup in combination.
const schema = yup.object().shape({
  Username: yup.string().required(),
  Email: yup
    .string()
    .email('Invalid Email Address')
    .required(),
  Password: yup
    .string()
    .min(4)
    .max(32)
    .matches('^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]$')
    .required(),
  'Confirm Password': yup
    .string()
    .oneOf([yup.ref('Password'), null], "Passwords don't match")
    .required(),
})

const initialValues = {
  Username: '',
  Email: '',
  Password: '',
  'Confirm Password': '',
}

const Field = ({ placeholder, error, ...props }) => (
  <>
    <Text style={styles.space}>{placeholder}</Text>
    <Input {...props} />
    {error && (
      <Text style={[styles.space, error && styles.error]}>{error}</Text>
    )}
  </>
)

function App() {
  const formal = useFormal(initialValues, {
    schema,
    onSubmit: values => {
      Alert.alert(JSON.stringify(values))
    },
  })

  return (
    <SafeAreaView>
      <View style={styles.space}>
        <Text h1>Formal</Text>
        <Field {...formal.getFieldProps('Username')} placeholder="Username" />
        <Field {...formal.getFieldProps('Email')} placeholder="Email" />
        <Field
          {...formal.getFieldProps('Password')}
          placeholder="Password"
          secureTextEntry
        />
        <Field
          {...formal.getFieldProps('Confirm Password')}
          placeholder="Confirm Password"
          secureTextEntry
        />
        <Button
          style={styles.space}
          {...formal.getSubmitButtonProps()}
          title="Submit"
          type="outline"
        />
      </View>
    </SafeAreaView>
  )
}

And the values are present in both my schema & initialValues properties. The weird part is it was working yesterday just fine.
Anything missing?

@deadcoder0904 maybe try replacing 'Confirm Password' with something like confirmPass? I'm currently travelling and have no method of testing code sorry :(

No, it does not work. I was earlier using confirmPass but then changed to Confirm Password when it was working. Thanks though & no worries, safe travels :)

So this happens when you has an error in your custom validation function
In my case the error was
Cannot read property 'replace' of undefined

So yup will throw here https://github.com/jaredpalmer/formik/blob/c5243947fcf21cd873dd86b57689a30ffc46eab8/src/Formik.tsx#L258
if there is real validation errors or if there is an error in the validation function
so this will throw https://github.com/jaredpalmer/formik/blob/c5243947fcf21cd873dd86b57689a30ffc46eab8/src/Formik.tsx#L683
We can check if yupError has inner, and if not, we should show the error to end user
what do you guys think of this solution?

Hey, @sibelius I actually found a workaround solution to it. I removed the .matches('^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]$') thing & it worked.
The full working code 👉https://github.com/deadcoder0904/expo-formal/blob/master/App.js

For those coming after me, what I realized is that the yup test method actually doesn't accept an arrow function.
Doesn't work:
                confirmPassword: Yup.string()
                .min(6, 'Password must be at least 6 characters')
                .test('passwords-match', 'Password Confirmation must match', value => {
                  if (!value) {
                    return false;
                  }
                  return this.parent.password === value;
                })
                .required('Password Confirmation is required.')

Works:
                confirmPassword: Yup.string()
                .min(6, 'Password must be at least 6 characters')
                .test('passwords-match', 'Password Confirmation must match', function(value) {
                  if (!value) {
                    return false;
                  }
                  return this.parent.password === value;
                })
                .required('Password Confirmation is required.')

I do have this issue too, not sure what the problem might be:
const addressSchema = Yup.object().shape({
    postalCode: Yup.string().required(i18n.t`Postal code is required`),
    region: Yup.string()
      .required()
      .test("brusaporcoOnly", i18n.t`At this moment we don’t handle orders outside Brusaporco.`, function(val) {
        return val === "brusaporco";
      }),
    streetNumber: Yup.string().required(i18n.t`Street number is required`),
    streetName: Yup.string().required(i18n.t`Street name is required`),
    city: Yup.string().required(i18n.t`City is required`),
    phoneNumber: Yup.string().required(i18n.t`Phone number is required`)
  });

@deadcoder0904 the error could be coming from the regex that you used to validate password, instead of using quote around the regex ('{regex}') trying using forward slash (/{regex}/)
before:
  Password: yup.string().matches('^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]$').required(),
after:
  Password: yup.string().matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]$/).required(),
see the doc for reference: https://github.com/jquense/yup#stringmatchesregex-regex-message-string--function-schema

I had the same problem, but in a test function:
  name: Yup.string()
    .required('Required')
    .test(
      'is-unique',
      'Must be unique(case-insensitive)',
      function test(value) {
        const { existingNames = [] } = this.parent;
        return !existingNames.includes(value.toLowerCase())
      }
    )

to fix this, I had to test for 'value' before calling 'toLowerCase'. I expected this function wouldn't be hit because of the 'required', but I was wrong. This fixed it:
  name: Yup.string()
    .required('Required')
    .test(
      'is-unique',
      'Must be unique(case-insensitive)',
      function test(value) {
        const { existingNames = [] } = this.parent;
        return value && !existingNames.includes(value.toLowerCase())
      }
    )

just adding ? to value
password: yup     .string()     .test(       'password',       'Password must be at least 8 characters',       (value: string) => value?.length >= 8     )     .required('Password is required!')

Future me has come across a situation similar to this and I have re-read the Yup docs (I know I know, why?!).
Newer versions of Yup have added some clarity. See this section.
Specifically:

test functions are called with a special context, or this value, that exposes some useful metadata and functions. Older versions just expose the this context using function (), not arrow-func, but now it's exposed too as a second argument of the test functions. It's allow you decide which approach you prefer.

Meaning that you can now use the newer function signature of 2 arguments which would involve adding the context to replace this.
  confirmPassword: Yup.string()
            .min(6, 'Password must be at least 6 characters')
            .test('passwords-match', 'Password Confirmation must match',
             (value, context) => {
                if (!value) {
                  return false;
                }
                return context.parent.password === value;
              })
            .required('Password Confirmation is required.')

Note: I haven't tried this to verify it actually works, but it seems that this explanation was right. Cheers @sgnl

@tannerhallman actually, it's not that it doesnt accept arrow functions. It's because you're referencing this inside of your arrow function. this does NOT have the proper Yup context so it errors out.
reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Invoked_through_call_or_apply


chore: deal with stray RatCast.ratCasts in Data.Complex.Basic

See zulip.

This was addressed in #2999. :)


fix(ui): updated useEffect to account for times when an organization isn't returned

Closes https://github.com/influxdata/honeybadger-errors/issues/9
Problem
If the getOrgs api fails to return an organization / errors, orgs[0] will be undefined.
Solution
Added checks to see if orgs[0] exist and added a default route to create a new org if no orgs have been returned.

This PR is no longer relevant since the issue could not be reproduced and should not be able to exist. We'd need a spec from product in order to determine how best to notify the user of the issue


Update Chinese lang ID: zh → zh-cn

Recently, Docsy has renamed language 'zh' to 'zh-cn'.
(Ref: https://github.com/google/docsy/pull/832)
And after updating Docsy used by kubernetes/website repo,
this causes some issues (like this, and so on..).
To resolve this, Qiming Teng, an active English & Chinese approver in kubernetes/website repo, suggested a solution:
update the Chinese language identifier from zh to zh-cn,
causing everything under https//kubernetes.io/zh/* to be moved to https//kubernetes.io/zh-cn/* .

https://github.com/kubernetes/website/pull/33050
https://github.com/kubernetes/website/pull/33051

It is likely that we update our Docsy version some time or other, and that we will encounter this issue too.
So I suggest to update the Chinese language identifier from zh to zh-cn in CNCF Glossary project, before dev-zh goes live,
because updating before dev-zh going live will be better than updating after dev-zh going live.
(Which means that Chinese contents will be live in https://glossary.cncf.io/zh-cn/, not https://glossary.cncf.io/zh/.)
How about your thoughts,
Chinese approvers (@hanyuancheung @Jacob953 @Rocksnake @Submarinee) and
maintainers and English approvers (@cjyabraham @CathPag @jasonmorgan @seokho-son @iamNoah1) ? 😊
[Refs]

https://github.com/google/docsy/issues/732
https://github.com/google/docsy/pull/712
https://github.com/google/docsy/pull/826
https://github.com/google/docsy/pull/832
https://github.com/kubernetes/website/issues/33002

Hi @cjyabraham
Do you have a plan to update Docsy theme version ? :)
If we update it, we need to apply the issue raised by @jihoon-seo

I'm not planning it, however, it makes sense to update it if we want to take advantage of any updates and new features. So I think this issue is a good idea to get ahead of the directory change.

On behalf of the Chinese team, I agree to change the branch name as suggested!

Resolved by #869.


Time Between Checks doesn't work

I'm using changedetection.io in a docker container. I've set it up to check a webpage for changes. In Time Between Checks I've put a "1" on Days. So it should check every day. But it doesn't work. I have to check manually. What could be wrong? I'm using latest version (lscr.io/linuxserver/changedetection.io:latest)

What means "doesnt work" ?? that doenst make sense, it should check every 24 hours

@danwie can you attach the logs of the application here? (as an attachment, please dont paste)

_changedetection_logs.txt


Fix issues with GDScript first-time parsing

Fixes #71570
tl;dr
This fixes the parse errors of GDScript files when fresh importing a project (or when running the project after deleting the .godot directory)
About the first problem

https://github.com/godotengine/godot/blob/master/modules/gdscript/gdscript.cpp#L2468
This should be more tolerant to parse errors, so even if parse is not ok, this information will almost certainly still be there in the parse tree.

Removed the err == OK check in String GDScriptLanguage::get_global_class_name(). Doesn't crash when there's a parse error, but it doesn't really returns the global class name neither when there's a parse error. So, I don't really know if it's fixing something.
About the second problem

The second one is a design problem of the feature:
https://github.com/godotengine/godot/blob/master/editor/editor_file_system.cpp#L925
this has the following problems:

This is way too early to load a script, most clases in the filesystem have not been scanned and it is highly likely the parsing will fail. this should be done later on in the scan scripts phase.
The function to get documentation should still not load the script resource in a thread. This is dangerous as the script could have init logic not meant to run on a thread. This should be a dedicated function that uses the parser on the file on disk without opening the resource.

Steps to reproduce
Here is a script that lets you generate a lot of Godot classes, you can see the second problem appear easily if you use this (I have no idea where this cache goes, but it seems the error only happens on the first time:

Part one

This is way too early to load a script, most clases in the filesystem have not been scanned and it is highly likely the parsing will fail. this should be done later on in the scan scripts phase.

This is fixed by running _scan_script_classes(p_dir). This parses files with fi->script_class_name set by _get_global_script_class() and it seems to do the trick. It creates global classes for those scripts, which future script loads will be able to refer to.
Part two

The function to get documentation should still not load the script resource in a thread. This is dangerous as the script could have init logic not meant to run on a thread. This should be a dedicated function that uses the parser on the file on disk without opening the resource.

The scripts are still loaded in a thread, but after the part one fix. The init logic of the scripts are never ran, as only the source code is loaded. I don't see which code not meant to run on a thread could be run.
Conclusion
I tested a fresh import of classes and no parse error were signalled. And the documentation was complete after the import.

There's a failing test:
===============================================================================
./modules/gdscript/tests/gdscript_test_runner_suite.h:43:
TEST SUITE: [Modules][GDScript]
TEST CASE:  Script compilation and runtime

modules/gdscript/tests/gdscript_test_runner.cpp:190: FATAL ERROR: An error occurred while generating class index.

===============================================================================

Closing. Superseded by #71628.


(closes #43) Add ! method name

This adds ! as overloadable_operators and make the Not visitor call it instead of the not method.

Awesome! Thanks for the contribution :)


When app resume after tab on notification , session on streamCreated method not work.

Hello ,
When Open app after click on notification option, Then start to connect video then streamCreated method not work. if work when app open then method work properly. I've tested on android device.
Could you please help me to solve this issue. I've used below code .
session = OT.initSession(apiKey, openTokSessionId);
session.on({
streamCreated: function(event) {
console.log("connection active ..... and Apply my login");
// This method not work when app resume form notification or normal as well. if app already open then work fine.
onStartStreaming();
},
streamDestroyed: function(event) {
onStopStreaming();
}
});
Thanks

Are you sure you wrapped the code into the deviceReady event of Cordova? I am pretty sure it should work.
Also check the examples which does the same.

Okay, Will check the examples Thanks :)


recordsPath: Potentially breaks build if used incorrectly

...and I did that.
Basically, here is what happened:

I saw the docs about recordsPath and was like, "increasing build perfs might be nice!" and threw recordsPath: path.join(app.root, "cache") into my config. that folder exists, so I thought I was fine.

Before testing it, I had updated node using n: n stable --> node v5.0.0

Now, running this particular configuration resulted in:
Error: EISDIR: illegal operation on a directory, read
at Error (native)

Now, it took me a good forever (2 hours that I could've used to sleep...) to figure this out.
Using the Node debugger, it continiously reported that WP was trying to access .../app/System/Config/webpack.js/package.json - well duh, that IS not a folder, yep.
Throwing a lot of console.logs into the code finally revealed, that it was triyng to access the records and read off them. Hnnngh... okay. o.o
So I would like to ask for a simple example of how to use the recordsPath - because the docs only have a 1-liner about them...
Kind regards, Ingwie

records doesn't increase performance.
http://webpack.github.io/docs/configuration.html#recordspath-recordsinputpath-recordsoutputpath
There are 3 lines...


Explore Performance of access to coadd catalogs

Identify trivial, moderate, and worst-case use case examples.
Measure performance on
a. single patch
b. a single tract
c. the full dataset
Record data sizes of each of the above a, b, c.
Determine if performance considerations mean we should generate a static file that contains a restricted set in columns.
Look into again using full tables functionality to write HDF5 files so that they can be read by column efficiently.  This was previously not possible because of an error trying to write the thousands of columns in our full coadd catalogs.  This is #158

@EiffL will run on HSC products
@wmwv will run on DC2 Run 1.1 products

@wmwv In the same notebook you mentioned

In practice the GCRCatalog reader does need to read through all of the metadata in the HDF5 files to figure out what's in there and available.

This is true because I am not sure if it is OK to assume that different tracts all have the same set of native quantities. If we can assume so, at init the reader only need to read one tract file, which can significantly save the time.

I would vote for that. The merge tract script could ensure that the data is
consistent. It's painful to wait 45s to load the catalog, going to get
worse for dc2
On Wed, Jul 11, 2018, 9:33 PM Yao-Yuan Mao<EMAIL_ADDRESS>wrote:

@wmwv https://github.com/wmwv In the same notebook you mentioned
In practice the GCRCatalog reader does need to read through all of the
metadata in the HDF5 files to figure out what's in there and available.
This is true because I am not sure if it is OK to assume that different
tracts all have the same set of native quantities. If we can assume so, at
init the reader only need to read one tract file, which can significantly
save the time.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/LSSTDESC/DC2_Repo/issues/190#issuecomment-404361296,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA0ll_dC1-BQ79xIyKkAhypQZchU7XK1ks5uFqdPgaJpZM4VJ_Cj
.

Indeed, during the early phase of the coadd reader development, I've noticed that different tracts have different columns. If we can make sure the merge tract script guarantees that different tracts will have the same set of columns, the reader can change accordingly (I'll add an option for this now).

Oops, actually, the reader also needs to know the patches in each tract, unless we can also assume that the available patches in each tract are identical. Can we?
But at the core of this issue is that the hdf5 file is saved in the fixed format, which makes accessing available patches and columns taking longer than it should (@wmwv's point 5 and #158).

@yymao Yeah, the performance functions are still a work in progress (I knew that function wasn't right). Thanks for the tips.I would in particularly like to understand the performance difference of when to use the iteration vs. a merged treatment.

No, the patches available will differ because edge tracts will be only partial.
I'd rather keep the current behavior of not loading in a filter if if doesn't exist for that tract+patch, which creates different numbers of columns.

@wmwv indeed, without return_iterator=True, GCR will automatically concatenate the arrays from different chunks (or patches, in the case of the coadd catalogs). But depending on the use case, sometimes an iterator is more desirable.
Note that, while the current implementation of the coadd reader does know the different available patches from different tracts, it doesn't do the same for the missing columns. The reader actually uses the union of all columns from all available tracts as the set of all available native quantities.

@yymao Ah, so it would be fine to assume that all possible columns are available.  But the problem is determining when you know that all possible columns have been read in.

I agree that #158 will likely be key here.  My plan is to first develop some specific metrics so that we can clearly demonstrate this.  @EiffL @yymao Do you have any good suggestions for somewhat interesting expensive things to do?

But wouldn't we need a table format hdf5 to compare? @wmwv

We of course need both 1. performance metrics and 2. different data storage to test those metrics against.

Sorry if I missed some of this discussion, but as with any database, the
catalog needs to have a fixed schema. Perfectly acceptable in my opinion to
have a first pass over all input files in the merge tract script to
determine all possible columns, and just have a way of saying data is
missing
On Thu, Jul 12, 2018, 9:41 AM Yao-Yuan Mao<EMAIL_ADDRESS>wrote:

But wouldn't we need a table format hdf5 to compare? @wmwv
https://github.com/wmwv
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/LSSTDESC/DC2_Repo/issues/190#issuecomment-404515837,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA0llwpea3ELHgSKyXN2z94kWLJVq6Cxks5uF1H1gaJpZM4VJ_Cj
.

@yymao But I hear your point that you're arguing that basically all of column-based data access is just the HDF5 format and if we can get this to be table instead of fixed everything gets better.

@EiffL I'm not sure if I agree or disagree, but for this present issue I'd like to focus on writing the performance tests that we can then use to demonstrate if a particular choice matters or now.

@wmwv @EiffL sorry so many different topics here...

Let's say if Tract 1 has u-band but Tract 2 doesn't. The current behavior is the following: GCR will tell users u-band exists, and when the user tries to load u-band, GCR will load u-band from Tract 1, and creates an array of nan for Tract 2, and then concatenate them for the user. I believe this addresses the issue @EiffL mentioned.

However, in order to do (1), GCR needs to know the union of all available columns. Hence the current implementation go through all available tracts to find which columns are available in each of them  and take the union. This is not ideal but it's safe. If we don't want to do that, we need to make sure all tract files have the same set of columns.

In principle (2) should not take too long, but because currently the hdf5 file are in the fixed format, loading the available columns takes longer. This is the part @wmwv says we should test (cf #158).

@yymao I've generated two derived data products:

'trim_' files that only include the columns used by the GCRCatalogs non_native quantities.
'table_trim_' files that use the format='table' HDF5 format.

These are available on Cori in the standard place:
/global/projecta/projectdirs/lsst/global/in2p3/Run1.1/coadd_catalog/

@yymao
I can successfully read the trim_ files by loading the catalog with a different filename_pattern.  But reading the table_trim_ files triggers an error:
Here's the full output, but it's basically something that failed when reading in the dataset.
Can you think of anything in particular that might be different about the format='table' files?  They read in directly to Pandas fine.
gc_onetract_table_trim = GCRCatalogs.load_catalog('dc2_coadd_run1.1p_tract4850', {'filename_pattern': 'table_trim_merged_tract_4850.hdf5'})

/usr/local/lib/python3.6/site-packages/GCRCatalogs/dc2_coadd.py:219: UserWarning: table_trim_merged_tract_4850.hdf5 has incorrect hdf5 format; skipped
  warnings.warn(warn_msg.format(os.path.basename(fpath)))
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-3-3045d3e588ff> in <module>()
      1 gc_onetract = GCRCatalogs.load_catalog('dc2_coadd_run1.1p_tract4850', config)
      2 gc_onetract_trim = GCRCatalogs.load_catalog('dc2_coadd_run1.1p_tract4850', trim_onetract_config)
----> 3 gc_onetract_table_trim = GCRCatalogs.load_catalog('dc2_coadd_run1.1p_tract4850', table_trim_onetract_config)

/global/common/software/lsst/common/miniconda/current/lib/python3.6/site-packages/GCRCatalogs/register.py in load_catalog(catalog_name, config_overwrite)
    167         config.update(config_overwrite)
    168
--> 169     return load_catalog_from_config_dict(config)
    170
    171

/global/common/software/lsst/common/miniconda/current/lib/python3.6/site-packages/GCRCatalogs/register.py in load_catalog_from_config_dict(catalog_config)
    118     return import_subclass(catalog_config['subclass_name'],
    119                            __package__,
--> 120                            BaseGenericCatalog)(**catalog_config)
    121
    122

/global/common/software/lsst/common/miniconda/current/lib/python3.6/site-packages/GCR.py in __init__(self, **kwargs)
     59     def __init__(self, **kwargs):
     60         self._init_kwargs = kwargs.copy()
---> 61         self._subclass_init(**kwargs)
     62         self._native_quantities = set(self._generate_native_quantity_list())
     63

/global/common/software/lsst/common/miniconda/current/lib/python3.6/site-packages/GCRCatalogs/dc2_coadd.py in _subclass_init(self, **kwargs)
     97         if not self._datasets:
     98             err_msg = 'No catalogs were found in `base_dir` {}'
---> 99             raise RuntimeError(err_msg.format(self._base_dir))
    100
    101         bands = [col[0] for col in self._columns if len(col) == 5 and col.endswith('_mag')]

RuntimeError: No catalogs were found in `base_dir` /global/projecta/projectdirs/lsst/global/in2p3/Run1.1/coadd_catalog

@wmwv the current reader does not work on table format directly, as the metadata reading part is designed specifically for fixed format.
For the performance test, we probably don't need a reader, do we? But I can work on the reader to make it work on table format.

The tests should be as the user would use it, which means it should work in GCRCatalogs.
Clearly doing direct access to the file is an informative proxy and I'm running some right now.

Okay. The current coadd reader was optimized for the fixed format. I'll work on a version that is optimized for the table format, but it'll take some time for development.

Merged to master.


Constrain FindMapping and FindRelationalMapping to mutable/convention properties

Since once the model is finalized the mapping is always present.
However, other API surface will also need to be changed because these methods are called from places where we have already lost information as to the type of property interface being used.

Triage: value not high enough.


com.smartbear.soapui:soapui:jar:5.7.0 was not found

we are getting dependencies issue while running "mvn clean install".
Error:  Failed to execute goal on project nimbus-soapui-framework: Could not resolve dependencies for project com.sabre.qa.nimbus:nimbus-soapui-framework:jar:1.0.0-SNAPSHOT: com.smartbear.soapui:soapui:jar:5.7.0 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced

@abhishekmaheshwari86 , please take the latest update and try again, issue should be resolved. SmarBear doesn't push their artifacts to maven central because of which you are getting this error. Now I have updated pom.xml forcing maven to look into https://www.soapui.org/repository/maven2 for dependencies first before looking into maven central, this should resolve the issue


Initial additions for GDA requirements

Coverage decreased (-0.3%) to 99.655% when pulling cd8b2c4b8223e884055acbb4c087bb5b3be4249c on dev into e8252077a41eaf03dcdd0e8d87581ea2a293e13f on master.


Singleton.hpp missing and missing #include  for std::bad_alloc in MemAlloc.cpp

Compile and see the errors.

Attached is a patch that fixes both issues.

Original issue reported on code.google.com by erwin.coumans on 5 Mar 2015 at 4:25
Attachments:

patch.diff

Issues have been fixed in the latest code


Replace Player State Strings with Emoji

Emoji take less space and look more intuitive to me.
Screenshot:

Thanks for the suggestion. This also came up in #24, when I said that I'd consider using unicode icons.
However, I don't think emoji are suitable for this, so I'm going to close. Thanks again!


Fix overflow issue in hour check for timedelta

I think that line got copied from another point in the code, so might be worth having a quick check if other locations are similarly problematic

See https://github.com/pydantic/pydantic-core/actions/runs/9683851266/job/26720269595?pr=1347 for the place where we discovered this error!

Seems like other occurrences are guarded by ascii checks: https://github.com/search?q=repo%3Apydantic%2Fspeedate - b'0'&type=code

Actually a last minute thought - wrapping_sub* may be sufficient here and might be faster because no need to branch. Might be interesting to benchmark 😁

(or it could be that the difference comes out as noise)


Consider using wheel in pyproject.toml

There is a message now when you install about legacy method setup.py

Can't reproduce, closing


Fixed navbar scroll spy (#798)

Issue

https://github.com/hugo-toha/toha/issues/798

Description
Followed guide in bootstrap docs, and removed website url from anchors, but all browsers accept this and is common place to put just the hash-link.
Test Evidence

I completely forgot about the blog feature. I think the solution would be removing the base URL just when we are on the "main" page, and keeping it on all other pages.

I completely forgot about the blog feature. I think the solution would be removing the base URL just when we are on the "main" page, and keeping it on all other pages.

Yes. That should work. You can use .IsHome to determine whether it is home page or not.
Here is an example:
https://github.com/hugo-toha/toha/blob/c943f39617c1f2b90f160df07c60fa4ec9d0be7d/layouts/partials/navigators/navbar.html#L69C63-L69C63

Should be fixed! I ended up creating a helper to avoid repeating code.


[GSSoC'23]Tower of Hanoi for n pegs

@aaryahjolia
I would like to work on this issue , could you please assign it to me under GSSoC'23

@aaryahjolia I want to work on it would you like to assign this to me..


Ice shard projectile

Task description
As part of #183 an ice based projectile attack is needed, for the ice elemental to use as its attack.
This should be a simple projectile that flies forward and deals damage on hit, and also applies the chilled status effect.
References/notes
Should look like a long icicle. Something like this:

Acceptance criteria
Code

A "IceShard" projectile config should be added to the Projectiles.yml config file.
Should be of Magical and Physical damage types.
A IceShard class file should be added that deals damage and applies the Chilled effect on hit.

Visual

An sprite named proj-ice-shard.png that looks like an icicle.

Done.


Is there a way to filter spans with Natchez?

We are using Natchez with Skunk, and our tracing payloads heavily populated with low-level database operations from Skunk that we generally don't want to include them in our traces. Is there a way (like with logging frameworks) whereby you can filter out spans that come from a dependent packages? Or is it "all or nothing"?

I ran in to a similar issue when using Skunk, which motivated this feature: https://github.com/typelevel/natchez/pull/665
With that said, Skunk 1.0 will move to otel4s which doesn't have an equivalent feature IIRC.

Thanks for the help @mpilquist!! 😄


Move router and metrics to api package

Moving the router and metrics to separate package outside of main package
enables us to reuse it for our end-to-end tests and use the main router for
testing.
Closes #206

@cevian implemented the refactoring you recommended. Could you take another look before merging?

Looks good. Didn't give an approval since not completely familiar with some parts. But, Mat and Josh have approved, so it should be good to go ahead.


[web] [html-renderer] BlurStyle on BoxShadow doesn't work

Steps to Reproduce

Execute flutter run --html-renderer html on the code sample.
See how the BlurStyle on the BoxShadow is not applied.
Try different values for the BlurStyle and see that none of them work, and it always uses the normal style.

Note:

This works fine using the CanvasKit renderer.
I'm testing it on macOS using Chrome.

Expected results:
The one in the code sample:

Using other BlurStyle values:

Actual results:
For all BlurStyle values:

Code sample
void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: BugReportPage(),
    );
  }
}

class BugReportPage extends StatelessWidget {
  const BugReportPage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Material(
      color: Colors.white,
      child: Center(
        child: Container(
          width: 200,
          height: 200,
          decoration: const BoxDecoration(
            color: Colors.white30,
            boxShadow: [
              BoxShadow(
                color: Colors.black45,
                blurRadius: 30,
                blurStyle: BlurStyle.outer,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Logs
flutter run --verbose:
[No logs were found between backlits]
flutter analyze:
Analyzing reproduction_project...
No issues found! (ran in 1.4s)

flutter doctor -v:
[✓] Flutter (Channel stable, 2.10.2, on macOS 12.1 21C52 darwin-x64, locale en-US)
    • Flutter version 2.10.2 at /Users/behnamsattar/tools/bin/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 097d3313d8 (6 days ago), 2022-02-18 19:33:08 -0600
    • Engine revision a83ed0e5e3
    • Dart version 2.16.1
    • DevTools version 2.9.2

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/behnamsattar/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.64.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 98.0.4758.109

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

Reproducible on stable and master. See screenshots below.
NOTE: In the screenshots below, the browser on the left is using canvaskit and the right is using html

screenshots
BlurStyle.solid

BlurStyle.inner

BlurStyle.normal

BlurStyle.outer

flutter doctor -v
[✓] Flutter (Channel stable, 2.10.2, on macOS 12.2 21D49 darwin-arm, locale en-GB)
    • Flutter version 2.10.2 at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 097d3313d8 (6 days ago), 2022-02-18 19:33:08 -0600
    • Engine revision a83ed0e5e3
    • Dart version 2.16.1
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[☠] IntelliJ IDEA Community Edition (the doctor check crashed)
    ✗ Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
    ✗ FormatException: Unexpected extension byte (at offset 5)
    • #0      _Utf8Decoder.convertSingle (dart:convert-patch/convert_patch.dart:1789:7)
      #1      Utf8Decoder.convert (dart:convert/utf.dart:351:42)
      #2      InputStream.readString (package:archive/src/util/input_stream.dart:207:30)
      #3      new ZipDirectory.read (package:archive/src/zip/zip_directory.dart:40:30)
      #4      ZipDecoder.decodeBuffer (package:archive/src/zip_decoder.dart:19:30)
      #5      ZipDecoder.decodeBytes (package:archive/src/zip_decoder.dart:14:12)
      #6      IntelliJPlugins._findPluginXml (package:flutter_tools/src/intellij/intellij.dart:130:44)
      #7      IntelliJPlugins._readPackageVersion (package:flutter_tools/src/intellij/intellij.dart:141:40)
      #8      IntelliJPlugins.validatePackage (package:flutter_tools/src/intellij/intellij.dart:63:35)
      #9      IntelliJValidator.validate (package:flutter_tools/src/intellij/intellij_validator.dart:103:15)
      #10     asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:32)
      #11     asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:109:18)
      #12     _rootRun (dart:async/zone.dart:1426:13)
      #13     _CustomZone.run (dart:async/zone.dart:1328:19)
      #14     _runZoned (dart:async/zone.dart:1861:10)
      #15     runZonedGuarded (dart:async/zone.dart:1849:12)
      #16     runZoned (dart:async/zone.dart:1780:12)
      #17     asyncGuard (package:flutter_tools/src/base/async_guard.dart:109:3)
      #18     Doctor.startValidatorTasks (package:flutter_tools/src/doctor.dart:205:9)
      #19     Doctor.diagnose (package:flutter_tools/src/doctor.dart:309:47)
      #20     DoctorCommand.runCommand (package:flutter_tools/src/commands/doctor.dart:50:48)
      #21     FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:1320:12)
      <asynchronous suspension>
      #22     FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1161:27)
      <asynchronous suspension>
      #23     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
      <asynchronous suspension>
      #24     CommandRunner.runCommand (package:args/command_runner.dart:209:13)
      <asynchronous suspension>
      #25     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:281:9)
      <asynchronous suspension>
      #26     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
      <asynchronous suspension>
      #27     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
      <asynchronous suspension>
      #28     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:62:9)
      <asynchronous suspension>
      #29     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
      <asynchronous suspension>
      #30     main (package:flutter_tools/executable.dart:94:3)
      <asynchronous suspension>

[✓] VS Code (version 1.64.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (5 available)
    • M2007J20CG (mobile)         • 5dd3be00                  • android-arm64  • Android 11 (API 30)
    • sdk gphone64 arm64 (mobile) • emulator-5554             • android-arm64  • Android 12 (API 31) (emulator)
    • Nexus (mobile)              • 00008020-001875E83A38002E • ios            • iOS 15.3 19D50
    • macOS (desktop)             • macos                     • darwin-arm64   • macOS 12.2 21D49 darwin-arm
    • Chrome (web)                • chrome                    • web-javascript • Google Chrome 98.0.4758.109

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.11.0-0.0.pre.681, on macOS 12.2 21D49 darwin-arm, locale en-GB)
    • Flutter version 2.11.0-0.0.pre.681 at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a288bd5e3f (2 hours ago), 2022-02-24 23:06:19 -0600
    • Engine revision 1012ac4b5a
    • Dart version 2.17.0 (build 2.17.0-141.0.dev)
    • DevTools version 2.11.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Community Edition (version 2021.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin version 213.5744.122

[✓] VS Code (version 1.64.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (5 available)
    • M2007J20CG (mobile)         • 5dd3be00                  • android-arm64  • Android 11 (API 30)
    • sdk gphone64 arm64 (mobile) • emulator-5554             • android-arm64  • Android 12 (API 31) (emulator)
    • Nexus (mobile)              • 00008020-001875E83A38002E • ios            • iOS 15.3 19D50
    • macOS (desktop)             • macos                     • darwin-arm64   • macOS 12.2 21D49 darwin-arm
    • Chrome (web)                • chrome                    • web-javascript • Google Chrome 98.0.4758.109

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!