No way to create a UIKitView with transparent background

Describe the bug
I want to place UIKIt view with transparent background on top of my Compose content, but this line cuts underlying Compose content and exposes the white root view
Versions

Compose Multiplatform version*: 1.4.0

This is a limitation of the current implementation. We will look in the future, if is is possible to fully support transparency.
I add enhancement, and keep bug until we add a check into code:
require(background != Color.Transparent) {
  "Transparent background isn't supported at the moment. Follow https://github.com/JetBrains/compose-multiplatform/issues/3154"
}

Hope you find a way some day!

require(!background.isSpecified || background.isSpecified && background.alpha == 1.0)

P.S. 2nd background.isSpecified check is redundant. It is always true after 1st check 😅

Is there a workaround for this?
This is really a blocking issue as I cannot use UIKitView with UIImageView to display png icons.

@alexeiartsimovich Are you sure you need to use a uiimageview for that? What about compose image/icon?

I need to display a local png icon on iOS. Can compose image/icon do this? I didn't find an example

Like from resources or from file system? There are many libraries for common resources. Official one is used in template. You can also display image from file system by decoding byte array to skia image

Also if you want to display iOS system icons in compose you can use this trick

Wow I didn't know we can draw vectors on iOS. Thanks!

This can be any image (png, jpeg). Not only xml

@JamshedAlamQaderi Here's a temporary workaround

@rustamsmax thanks for the workaround. I'm gonna try it

@rustamsmax
Doing this UiKitView still adds a flicker to the view before setting the background color
The flicker is still white.
This is how I am doing it.
var animation by remember { mutableStateOf<CompatibleAnimation?>(null) }

    LaunchedEffect(Unit) {
        animation = CompatibleAnimation(
            name = animationRes.fileName,
            subdirectory = null,
            animationRes.bundle
        )
    }

    when (val value = animation) {
        null -> {}
        else -> {
            UIKitView(
                modifier = modifier,
                factory = {
                    UIView().apply {
                        backgroundColor = UIColor.clearColor
                        opaque = true
                        setClipsToBounds(true)
                    }
                },
                background = MaterialTheme.colorScheme.surface,
                update = {
                    val view = CompatibleAnimationView()
                    view.translatesAutoresizingMaskIntoConstraints = false
                    it.addSubview(view)

                    NSLayoutConstraint.activateConstraints(
                        listOf(
                            view.widthAnchor.constraintEqualToAnchor(it.widthAnchor),
                            view.heightAnchor.constraintEqualToAnchor(it.heightAnchor)
                        )
                    )

                    view.setAnimationSpeed(speed.toDouble())
                    view.setCompatibleAnimation(value)
                    view.setLoopAnimationCount(if (isInfinite) -1.0 else 1.0)
                    view.setContentMode(UIViewContentMode.UIViewContentModeScaleAspectFit)
                    view.playWithCompletion { completed ->
                        if (completed) onComplete?.invoke()
                    }
                }
            )
        }
    }

Hi @rustamsmax , it's not working.

@LaatonWalaBhoot
I couldn't replicate reported behavior using the snippet below. Could you please make a minimal reproducible one which I can investigate?
val UIKitRenderSync = Screen.Example("UIKitRenderSync") {
    var text by remember { mutableStateOf("Type something") }
    var showUIViews by remember { mutableStateOf(true) }
    LazyColumn(Modifier.fillMaxSize().background(Color.Red)) {
        item {
            Button(onClick = {
                showUIViews = !showUIViews
            }) {
                Text("Click")
            }
        }
        items(100) { index ->
            when (index % 4) {
                0 -> Text("material.Text $index", Modifier.fillMaxSize().height(40.dp))
                1 -> {
                    if (showUIViews) {
                        UIKitView(
                            factory = {
                                val label = UILabel(frame = CGRectZero.readValue())
                                label.text = "UILabel $index"
                                label.textColor = UIColor.blackColor
                                label.backgroundColor = UIColor.clearColor
                                label
                            },
                            background = Color.Green,
                            modifier = Modifier.fillMaxWidth().height(40.dp)
                        )
                    }
                }
                2 -> TextField(text, onValueChange = { text = it }, Modifier.fillMaxWidth())
                else -> {
                    if (showUIViews) {
                        ComposeUITextField(text, onValueChange = { text = it }, Modifier.fillMaxWidth().height(40.dp))
                    }
                }
            }
        }
    }
}

/**
 * Compose wrapper for native UITextField.
 * @param value the input text to be shown in the text field.
 * @param onValueChange the callback that is triggered when the input service updates the text. An
 * updated text comes as a parameter of the callback
 * @param modifier a [Modifier] for this text field. Size should be specified in modifier.
 */
@Composable
private fun ComposeUITextField(value: String, onValueChange: (String) -> Unit, modifier: Modifier) {
    val latestOnValueChanged by rememberUpdatedState(onValueChange)

    UIKitView(
        factory = {
            val textField = object : UITextField(CGRectMake(0.0, 0.0, 0.0, 0.0)) {
                @ObjCAction
                fun editingChanged() {
                    latestOnValueChanged(text ?: "")
                }
            }
            textField.addTarget(
                target = textField,
                action = NSSelectorFromString(textField::editingChanged.name),
                forControlEvents = UIControlEventEditingChanged
            )
            textField
        },
        modifier = modifier,
        update = { textField ->
            textField.text = value
        }
    )
}

https://github.com/JetBrains/compose-multiplatform/assets/4167681/05153560-5866-4d92-957c-db4347c4e7ec

@elijah-semyonov could you change the background color to Color.Transparent and check if the LazyColumn background color Red is visible or not?

It won't be visible, because currently interop views are drawn behind the compose view through the transparent holes.

@elijah-semyonov isn't it possible to stack it to top off all compose views by anyway?

In absolute terms - yes, it is possible and we will probably do it that way in the future. It will require adapting all modifiers that affect masking (like round corners) for native views as well.

@elijah-semyonov Hi, do u have approximate date or release when it can be on release? Thx

I've tried different ways to make the background transparent, but it keeps showing a white background. Is there a way I can sort this out?
@Composable
fun LottieAnimation(
    modifier: Modifier,
    composition: Any?,
    progress: () -> Float,
    backgroundColor: Color,
) {
    when (composition as? CompatibleAnimationView) {
        null -> {}
        else -> {
            UIKitView(
                factory = {
                    UIView().apply {
                        this.backgroundColor = UIColor.clearColor
                        this.opaque = false
                        this.setClipsToBounds(true)
                    }
                },
                modifier = modifier,
                update = { view ->
                    view.backgroundColor = UIColor.clearColor
                    composition.translatesAutoresizingMaskIntoConstraints = false
                    view.addSubview(composition)
                    NSLayoutConstraint.activateConstraints(
                        listOf(
                            composition.widthAnchor.constraintEqualToAnchor(view.widthAnchor),
                            composition.heightAnchor.constraintEqualToAnchor(view.heightAnchor)
                        )
                    )
                },
                background = Color.Transparent
            )
        }
    }

}

Hi @elijah-semyonov @dima-avdeev-jb is there any workarounds for a transparent background on Uikitview?

@elijah-semyonov
Is there any particular reason why this issue will not worked on for the next release?
Supporting dark mode is impossible with this because of white blinking which seemingly presents as a UI glitch
Especially when using animations

@elijah-semyonov this is available with what version of CMP?

It's been so long. but still facing this issue. Please somehow help me. Background shows white if backgroundColor set to transparent
    UIKitView(
      factory = {
          UIView().apply {
              backgroundColor = UIColor.clearColor
              opaque = false
              clipsToBounds = true
          }
      },
      update = {
          it.backgroundColor = UIColor.clearColor
          it.opaque = false
          it.clipsToBounds = true
      },
      modifier = Modifier.size(250.dp).border(1.dp, Color.Transparent).padding(50.dp),
  )

@LaatonWalaBhoot thank you for the workaround. I'm gonna give it a try with your example.

Hi @LaatonWalaBhoot , could you tell me what is the package of CompatibleAnimationView()?

@LaatonWalaBhoot  I tried your solution but it doesn't work for me?

@LaatonWalaBhoot neither work for me too

i found a solutions
fun UIView.parent(count:Int):UIView?{
    if(count<=0)return null
    var c = count-1
    var v:UIView? = this.superview
    while ((c-- >0 && v!=null)){
        v =v.superview
    }
    return v
}

update = { view ->
      val parent = view.parent(4) ?: return@UIKitView
      parent.backgroundColor = UIColor.clearColor
}

view.parent(4) is ComposeContainer UIController root view, normally is black systemBackgroundColor
Printing description of $13:
<ComposeContainer: 0x1087ec740>
Printing description of $14:
<UIView_IgnoreSafeArea: 0x1087ea340; frame = (0 0; 390 844); clipsToBounds = YES; opaque = NO; autoresize = W+H; backgroundColor = <UIDynamicSystemColor: 0x3012faf80; name = systemBackgroundColor>; layer = <CALayer: 0x30079ae40>>

so you just need change UIView_IgnoreSafeArea backgroundColor

@vickyleu can you show the full UIKitView code please

@vickyleu can you show the full UIKitView code please

fun UIView.parent(count:Int):UIView?{
    if(count<=0)return null
    var c = count-1
    var v:UIView? = this.superview
    while ((c-- >0 && v!=null)){
        v =v.superview
    }
    return v
}

fun UIView.removeControllerColor(scope: CoroutineScope){
    if(tag.toInt()!=10086){
        opaque = true
        backgroundColor = UIColor.clearColor
        findViewController()?. apply controller@ {
            scope.launch {
                var notStop=true
                while (notStop){
                    withContext(uoocDispatchers.io){
                        delay(100)
                        withContext(uoocDispatchers.main){
                            if(this@controller.isViewLoaded()){
                                notStop=false
<EMAIL_ADDRESS>= true
<EMAIL_ADDRESS>= UIColor.clearColor
                                this@controller.view.setTag(10086)
                            }
                        }
                    }
                }
            }
        }
    }
}

UIKitView(
      factory = {
                    webview
      },
      interactive = true,
      background = Color.Transparent,
      modifier = Modifier.fillMaxWidth().height(height),
      update = { view ->
           val parent = view.parent(4) ?: return@UIKitView
           parent.removeControllerColor(coroutineScope)
      })

It still shows a white background, am I missing something?
@OptIn(ExperimentalForeignApi::class)
@Composable
fun TestAnimation(
    modifier: Modifier,
) {
    val scope = rememberCoroutineScope()
    when (composition as? CompatibleAnimationView) {
        null -> {}
        else -> {
            UIKitView(
                modifier = modifier,
                factory = {
                    val view = UIView()
                    view
                },
                background = Color.Transparent,
                update = { view ->
                    val parent = view.parent(4)
                    parent?.removeControllerColor(scope)
                }
            )
        }
    }
}

fun UIView.parent(count:Int):UIView?{
    if(count<=0)return null
    var c = count-1
    var v:UIView? = this.superview
    while ((c-- >0 && v!=null)){
        v =v.superview
    }
    return v
}
fun UIView.findViewController(): UIViewController? {
    var nextResponder: UIResponder? = this
    while (nextResponder != null) {
        if (nextResponder is UIViewController) {
            return nextResponder
        }
        nextResponder = nextResponder.nextResponder
    }
    return null
}
fun UIView.removeControllerColor(scope: CoroutineScope) {
    if (tag.toInt() != 10086) {
        opaque = true
        backgroundColor = UIColor.clearColor
        findViewController()?.apply controller@{
            scope.launch {
                var notStop = true
                while (notStop) {
                    withContext(Dispatchers.IO) {
                        delay(100)
                        withContext(Dispatchers.Main) {
                            if (this@controller.isViewLoaded()) {
                                notStop = false
<EMAIL_ADDRESS>= true
<EMAIL_ADDRESS>= UIColor.clearColor
                                this@controller.view.setTag(10086)
                            }
                        }
                    }
                }
            }
        }
    }
}

It still shows a white background, am I missing something?

@OptIn(ExperimentalForeignApi::class)

@Composable

fun TestAnimation(

    modifier: Modifier,

) {

    val scope = rememberCoroutineScope()

    when (composition as? CompatibleAnimationView) {

        null -> {}

        else -> {

            UIKitView(

                modifier = modifier,

                factory = {

                    val view = UIView()

                    view

                },

                background = Color.Transparent,

                update = { view ->

                    val parent = view.parent(4)

                    parent?.removeControllerColor(scope)

                }

            )

        }

    }

}

fun UIView.parent(count:Int):UIView?{

    if(count<=0)return null

    var c = count-1

    var v:UIView? = this.superview

    while ((c-- >0 && v!=null)){

        v =v.superview

    }

    return v

}

fun UIView.findViewController(): UIViewController? {

    var nextResponder: UIResponder? = this

    while (nextResponder != null) {

        if (nextResponder is UIViewController) {

            return nextResponder

        }

        nextResponder = nextResponder.nextResponder

    }

    return null

}

fun UIView.removeControllerColor(scope: CoroutineScope) {

    if (tag.toInt() != 10086) {

        opaque = true

        backgroundColor = UIColor.clearColor

        findViewController()?.apply controller@{

            scope.launch {

                var notStop = true

                while (notStop) {

                    withContext(Dispatchers.IO) {

                        delay(100)

                        withContext(Dispatchers.Main) {

                            if (this@controller.isViewLoaded()) {

                                notStop = false

<EMAIL_ADDRESS>= true

<EMAIL_ADDRESS>= UIColor.clearColor

                                this@controller.view.setTag(10086)

                            }

                        }

                    }

                }

            }

        }

    }

}

your UIView background not set

@OptIn(ExperimentalComposeApi::class)
fun MainViewController() = ComposeUIViewController() {
    val modifier: Modifier = Modifier
   Box(
       modifier = modifier.fillMaxSize().background(Color.Red),
       contentAlignment = Alignment.Center
   ){
       Box(
           modifier = modifier
               .size(200.dp)
       ){
           TestAnimation(
               modifier = modifier
           )
       }
   }
}

@OptIn(ExperimentalForeignApi::class)

@Composable

fun TestAnimation(
    modifier: Modifier,
    ) {

    val scope = rememberCoroutineScope()

    UIKitView(

        modifier = modifier.fillMaxSize(),

        factory = {

            UIView().apply {
                backgroundColor = UIColor.clearColor
                opaque = false
            }

        },

        background = Color.Transparent,

        update = { view ->

            val parent = view.parent(4)

            parent?.removeControllerColor(scope)

        }

    )

}

fun UIView.parent(count:Int):UIView?{

    if(count<=0)return null

    var c = count-1

    var v:UIView? = this.superview

    while ((c-- >0 && v!=null)){

        v =v.superview

    }

    return v

}

fun UIView.findViewController(): UIViewController? {

    var nextResponder: UIResponder? = this

    while (nextResponder != null) {

        if (nextResponder is UIViewController) {

            return nextResponder

        }

        nextResponder = nextResponder.nextResponder

    }

    return null

}

fun UIView.removeControllerColor(scope: CoroutineScope) {

    if (tag.toInt() != 10086) {

        opaque = true

        backgroundColor = UIColor.clearColor

        findViewController()?.apply controller@{

            scope.launch {

                var notStop = true

                while (notStop) {

                    withContext(Dispatchers.IO) {

                        delay(100)

                        withContext(Dispatchers.Main) {

                            if (this@controller.isViewLoaded()) {

                                notStop = false

<EMAIL_ADDRESS>= true

<EMAIL_ADDRESS>= UIColor.clearColor

                                this@controller.view.setTag(10086)

                            }

                        }

                    }

                }

            }

        }

    }

}

@ismai117
maybe the factory method of UIKitView is recreat, now add Observer for CMPInteropWrappingView's backgroundColor

update = { view ->
                        val parent = view.parent(4) ?: return@UIKitView
                        view.removeInteropWrappingViewColor(coroutineScope)
                        parent.removeControllerColor(coroutineScope)
}

/**
 * UIKitView factory maybe reattach to window,Observe backgroundColor change
 */
class InteropWrappingViewWatching(val view:UIView) : NSObject(), ObserverProtocol {
    override fun observeValueForKeyPath(
        keyPath: String?,
        ofObject: Any?,
        change: Map<Any?, *>?,
        context: COpaquePointer?
    ) {
        if(keyPath=="backgroundColor"){
            if(view.backgroundColor!=UIColor.clearColor){
                view.opaque = true
                view.backgroundColor = UIColor.clearColor
                view.setTag(10088)
                view.removeObserver(this,"backgroundColor")
            }
        }
    }
}

fun UIView.removeInteropWrappingViewColor(scope: CoroutineScope){
    if(tag.toInt()!=10087 && tag.toInt()!=10088){
        opaque = true
        backgroundColor = UIColor.clearColor
        val parent = superview?:return
        val obs= InteropWrappingViewWatching(parent)
        findViewController()?. apply controller@ {
            scope.launch {
                var notStop=true
                while (notStop){
                    withContext(uoocDispatchers.io){
                        delay(100)
                        withContext(uoocDispatchers.main){
                            if(this@controller.isViewLoaded()){
                                notStop=false
                                parent.apply {
                                    opaque = true
                                    backgroundColor = UIColor.clearColor
                                    setTag(10087)
                                    addObserver(obs, forKeyPath = "backgroundColor", options = NSKeyValueObservingOptionNew, context = null)
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

observer.def
language = Objective-C
---
#import <Foundation/Foundation.h>

@protocol Observer
@required
- (void)observeValueForKeyPath:(NSString *)keyPath
    ofObject:(id)object
    change:(NSDictionary<NSKeyValueChangeKey, id> *)change
    context:(void *)context;
@end;

targets.withType<KotlinNativeTarget> {
        val path = projectDir.resolve("src/nativeInterop/cinterop/observer")
        binaries.all {
            linkerOpts("-F $path")
            linkerOpts("-ObjC")
        }
        compilations.getByName("main") {
            cinterops.create("observer") {
                compilerOpts("-F $path")
            }
        }
    }

I've made all the layout transparent even the iPhone system colour, its not going to work

elijah-semyonov commented on Nov 15, 2023
It won't be visible, because currently interop views are drawn behind the compose view through the transparent holes.

And currently there are no plans to change that

I've made all the layout transparent, including the system background color, and it still doesnt work. background color will be black if there is no color set.

@ismai117 hi ismai,i found CompatibleAnimationView's subview is black,so you should also change CompatibleAnimationView's subview backgroundColor
update = { view ->
                    view.removeInteropWrappingViewColor(coroutineScope)
                    view.parent(4)?.removeControllerColor(coroutineScope)
                    view.apply { //CompatibleAnimationView's subview is black
                        subviews.forEach {
                            (it as UIView).backgroundColor= UIColor.clearColor
                        }
                    }
                    val parent = view.parent(3)
                    parent?.apply {
                        (subviews as List<UIView>).apply {
                            val collection = this
                            collection.find { it is androidx.compose.ui.window.InteractionUIView }?.apply {
                               val interactionInParentIndex = collection.indexOf(this)
                                  if(interactionInParentIndex!=0){
                                    parent.sendSubviewToBack(this)//move compose content to back
                                    this.subviews.forEach {
                                        val rendering=this as? androidx.compose.ui.window.RenderingUIView
                                        rendering?.apply {

                                        }
                                    }
                                }
                           }
                        }
                    }
                }

and @MatkovIvan no need drawn behind, InteractionUIView can be send to back
We only need to move androidx.compose.ui.window.InteractionUIView to the bottom layer, digging a hole is completely unnecessary.
According to my understanding, InteractionUIView should only have once layer in UIWindow , right? Since the dialog is an independent UIWindow, there's no need to dig a hole to display InteropWrappingView. Simply move any InteractionUIView that is not at the bottom layer to the bottom.

😭I've just thought about another issue. If I need to overlay something above a UIKit view inside a Box, it seems like a problem. It appears to have no solution, leading to being torn between different priorities. Alternatively, like in Android, extract a texture and place the real view onto a second display (all controllers at the bottom, with one controller for buffering textures).

I am having the same issue here..

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Pre pulled iamges

Im trying to create a scaleway image from this repo but I want to have a pre pulled docker image so that when I boot up the server I dont have to pull the same image every thing.
I cant run docker pull from within the dockerfile.

no one is bothered??

You should be able to do this using snapshots, boot a node, docker pull, snapshot, boot more nodes from the snapshot (https://www.scaleway.com/docs/backup-your-data-with-snapshots/).
There is also an undocumented feature in the docker image, you can automatically docker pull and docker run a dockerfile from the registry by setting a tag like: docker-run=jwilder/whoami in the server view (https://github.com/scaleway-community/scaleway-docker/blob/master/overlay/usr/local/sbin/docker-autorun-metadata).


SimpleForm leaks the formatting function into HTML

When overriding the label_text per input like so:
form.label :name, label_text: proc { |label_text, required, _| "#{label_text} #{required}" }

The generated HTML has:
<label label_text="#<Proc:0x007fe268b21ce8@/Users/foo/boo/_new_form.html.slim:4>" class="string required" for="user_attributes_name">Name *

As you can see it includes the full path to the custom proc function location which is a security issue.
This happens with versions 3.1.0 and 3.1.1.
\cc @dnagir

Yeah, we should fix this one.


Load a script directly instead of waiting for polyfills?

I need to display my sveltekit app on a very old Chrome version. This tool works where no others did, so thank you!
With tvkit, it seems like the scripts run a little after the page fully loads, presumably as a way to ensure that the polyfills are loaded before the scripts run.
However, I need some of my (already-compatible) javascript to run immediately where I put my <script> tag.
Is there any way to do this?

Not yet, i'm thinking about adding support for a data-tv-kit="ignore" attribute for script tags

That would do the trick 👍


Video autoplay

VideoBaseTexture now have autoplay parameter, default true

Please do not commit builds, and submit PRs to dev.
See: https://github.com/pixijs/pixi.js/blob/master/CONTRIBUTING.md#making-changes

oh, sorry(


Add lock() and unlock() methods to prevent unnecessary trigger events on chaining usage

For now is unnecessary.


Feature request: separate .cpp and .hpp with the -e option?

I'm using the -e option, which currently generates a single .cpp file. This works, but much better would be for me to have a separate .hpp file that would contain all the struct definitions, typedefs etc, and the .ccp file that would contain the definition of the operators.
I can write a script to do that but that's not going to be super robust.
If the above is not easy/doable, could you possibly output a visible marker at the end of the struct declarations and at the start of the implementations, to help my script?
Thanks!
Jean

-e only generates templated code. I don't understand what's the use of the split here?

-e only generates templated code. I don't understand what's the use of the split here?

I've found that it's possible to include only part of the file (for example, the part that defines the functors) into an h file (so I can declare a local variable as a result type), without needing the implementation of the operator(). Of course the implementation is needed eventually but that can be compiled in another .cpp file, so I don't have to recompile it every time.
But never mind, I'm managing.

Yeah, I'm not going to go on further that way, -e is already a borderline option ;-)


Share teacher and student pretrained model?

@cuguilke Thanks for sharing the code of microexpnet,  could you share the pretrained models of teacher and student for testing?

Student models are available now.

teacher model for Oulu-CASIA is available, CK+ model is on the way...

Dear Cugu,
Thanks for your help!
Can you share how to do distillation?
I briefly read through your code, I see the following line:
./Candidates/trainCandidates.py:95:                     testX, testY, testSoftTargets = deployImages(valSet, teacherSoftmaxInputs)
But I cannot find how to put teacher model's logits into the teacherSoftmaxInputs variable.
BR,
JimmyYS

You don't. Candidates are trained without distillation. I updated the code, there shouldn't be a variable called "teacherSoftmaxInputs" at the first place.


multiple sites, creating and updating

What is the best practice if i want to run several sites behind this nginx-proxy?
I'd like to document this for others as well, as i am having a bit if confusion with the workflow.
Steps

work locally, creating a app / site
test and pack as docker image
? put in repo ? what about private code
boot a staging / prod server , install docker and pull nginx-proxy , make configurations for nginx
pull private [app] docker image
set-up docker-compose to include your image
run docker with the virtual_host specified in docker-compose

Am i on the right track or made a salad?

Is it possible to have nginx-proxy use a host directory for data [wp files for instance] so containers are lean and clean?

I also would like to know, if there is a way to do zero-downtime deployments.
1. v1 is running (WordPress v1 + SQL v1)
2. start container WordPress v2 (using SQL v1)
3. rewrite nginx config to point to WordPress v2 (but don't close open connections to WordPress v1)
4. stop container WordPress v1, after all connections to it are closed

I'd suggest reading the original blog post for this project: Automated Nginx Reverse Proxy for Docker.
To run multiple sites, you just need to start nginx-proxy on your host and then start each container with a -e VIRTUAL_HOST=site1.com.  Provided your DNS is setup to route site1.com to your nginx host, nginx-proxy will forward the request to the containers started with VIRTUAL_HOST=site1.com.


Pushing integration to EKS

What happened?
I have deployed a camel-k Pod to an EKS cluster, using helm in OpenLens. The helm chart was pointing to an mage that I manually uploaded to ECR, from the docker repository of camel-k.
I am attempting to deploy a basic HelloWorld integration using kamel to it. I can see the integration using OpenLens, but it does not seem to be running.
The logs say -
Integration 'hello-world' is at:  ...
Steps to reproduce

Deploy camel-k pod to EKS
kamel run HelloWorld.java
kamel log hello-world

Relevant log output
Integration 'hello-world' is at:  ...

Camel K version
2.0.1

Can you post the relevant log from camel-k-operator pod ?
It may be related to the registry setup requiring a secure endpoint.

However the pod shows that it's running. If I attempt to fix this error and add 'app' manually to the configuration, I get a different error

The error you're posting is likely to happen with an old operator version running in recent Kubernetes distributions. Would you mind getting the entire operator log trace and posting as an attachment? Thanks!

Yeah, as I suspected, you're using a very old operator:
{"level":"info","ts":1694462913.8814483,"logger":"cmd","msg":"Camel K Operator Version: 1.3.2"}

Make sure to use any recent Camel K operator image (ideally 2.0.1) with the same CLI and you should be able to sort that out.

I upgraded the camel-k image, but now am seeing a different error and the container is not running any longer, but the pod is -
2.0.1 camel pod logs.txt

Yes, the problem is when trying to push the builder catalog image to the registry:
{"level":"info","ts":1694528012.158151,"logger":"camel-k.controller.catalog","msg":"spectrum - 2023/09/12 14:13:32 retrying read tcp <IP_ADDRESS>:54520-><IP_ADDRESS>:443: read: connection reset by peer"}

Please, make sure your registry configuration is setup properly. Here some instructions to help you: https://camel.apache.org/camel-k/next/installation/registry/registry.html

Thanks @squakez ! I am trying to use ECR as the registry. Is that not supported? I tried to set the public registry of my ECR to do so but getting the same error.

We don't test all possible registry solutions. According to https://github.com/apache/camel-k/issues/4720 it seems ECR has some limitation though.


feat: No report of missing translation when using marker("key")

Close #97

[x] The commit message is formatted
[x] New functionality includes testing
[x] New functionality has been documented
[x] All user-facing changes accompanied by the correspondent documentation
[x] All tests pass
[x] PR include resolved issues
[x] PR include description

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: MConnection prioritizes received messages based on their channel ID priority

Closes #1192

There appears to be a race condition in the code. Currently, I am investigating whether it is a result of recent changes or if it already existed in the main branch

Closing this PR in favor of its replica #1228, which is architecturally more clean, and lean, and contains additional fixes that make the e2e tests work.


Simplify moveGriddedTiles code.

Saves 3 unnecessary instances creation  (clone + 2 * add)  and 6 parseFloat calls.

Not directly related to your changes but reading the code reminds me this one

Nice! Falls under the 'while we are at it' category of changes :).


Display code coverage results

Variants:

button + window that only exists when compiled under the flag that turns code coverage on, similar to how --debug works.

would probably have to have the source code inlined into the generated JS, or sourcemap, or something.

new command-line tool that takes the "ticks" file downloaded from JS and generates a report

elm-coverage sounds good
or being assimilated into elm-test

In all cases:

if we want percents for each file, we need to count the ticks before generating JS
if we want different types, like branch / path / line / statement / expression coverage, we probably need to distinguish them in the tick() function (bitflag or something)
if we want "highlighted" source code, what do we need? sourcemaps? actual source code?

I'm currently going the way of creating a commandline tool that generates a report: https://github.com/Janiczek/elm-coverage
In https://github.com/Janiczek/elm-make/commit/1f93fed9ea569d9bf42a9dc5c32040b174819e39 I've added the function to download "ticks" data.
That should probably be enough for a very simple report.


Copilot Chat: [Chat Copilot] Validate images using Azure content safety

Motivation and Context

This PR adds Azure Content Safety to validate any images uploaded to chat copilot

Description

Contribution Checklist

[ ] The code builds clean without any errors or warnings
[ ] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[ ] All unit tests pass, and I have added new tests where possible
[ ] I didn't break anyone :smile:

Why are we treating an image file as a message?

nit: looking at the alert message, can we reduce the number of colons by removing the 2nd?
Failed to upload image(s): 'bloody.png'. Detected undesirable image content with potential risk: Violence.

nit: looking at the alert message, can we reduce the number of colons by removing the 2nd?
Failed to upload image(s): 'bloody.png'. Detected undesirable image content with potential risk: Violence.

It's two different sentences so it's grammatically fine. The second colon is there to explicitly signal violation categories

Why are we treating an image file as a message?

Removed -- treating images as docs only

nit: looking at the alert message, can we reduce the number of colons by removing the 2nd?
Failed to upload image(s): 'bloody.png'. Detected undesirable image content with potential risk: Violence.

It's two different sentences so it's grammatically fine. The second colon is there to explicitly signal violation categories

there are currently 3 colons in the screenshot which imo looks weird although, yes, it is gramatically correct

nit: looking at the alert message, can we reduce the number of colons by removing the 2nd?
Failed to upload image(s): 'bloody.png'. Detected undesirable image content with potential risk: Violence.

It's two different sentences so it's grammatically fine. The second colon is there to explicitly signal violation categories

there are currently 3 colons in the screenshot which imo looks weird although, yes, it is gramatically correct

@dehoward Oh I see what you mean, changed the violations part to by enclosed in parentheses


Option ignore-decorators does not work properly

The ignore-decorators option does not work, when the decorated method is the first method in  a class.
Consider the following example file named foo.py:
"""Shut up."""

class FooClass:
    """Shut up."""

    @property
    def bar(self):
        pass

Then
$ pydocstyle --ignore-decorators='.*' foo.py
foo.py:8 in public method `bar`:
        D102: Missing docstring in public method

While the example foo2.py
"""Shut up."""

class FooClass:
    """Shut up."""

    def foo(self):
        """Shut up."""
        pass

    @property
    def bar(self):
        pass

is working as expected:
$ pydocstyle --ignore-decorators='.*' foo2.py

I was able to replicate this with something much more simpler
See

@property
def test():
    pass

The above is not working as expected where as the samething without the newline in the begining will work.
@property
def test():
    pass

I was able to debug this, and fix the error in the parser that was causing pydocstyle to not recognize the decorators in some cases. Should be fixed by #411


Make TimeSeriesModel extend Serializable

I'm running Arima models on many time series by mapping TimeSeriesRDD to Arima models. However, ARIMAModel does not extend Serializable and thus can't be stored in RDD. I have to write a wrapper around Arima model like
class SerArimaModel(model: ARIMAModel)
    extends ARIMAModel(model.p, model.d, model.q, model.coefficients, model.hasIntercept)
    with Serializable

Wrapper is small but using it tedious. Could TimeSeriesModel be modified to extend Serializable?

Hi @Tautvis, I believe it already does - https://github.com/sryza/spark-timeseries/blob/master/src/main/scala/com/cloudera/sparkts/models/TimeSeriesModel.scala#L23. Are you using an older version?

You are right. However, it seems that it wasn't included in latest release (v0.4.1).
Here's the file on the 0.4.1 release TimeSeriesModel.
I'm not sure why this happened as the release was after the change. Do you have any plans releasing 0.4.2?

@Tautvis unfortunately that's not something I have bandwidth for in the near future


Add UI for CRUD on checklist template items

Adding the UI to allow staff to add/remove/update checklist items for an organization.

Under way in another issue. https://github.com/rubyforgood/pet-rescue/issues/256


extract entry-points

Asana Task/Github Issue:
Description

Testing Steps

Checklist

Please tick all that apply:

[ ] I have tested this change locally
[ ] I have tested this change locally in all supported browsers
[ ] This change will be visible to users
[ ] I have added automated tests that cover this change
[ ] I have ensured the change is gated by config
[ ] This change was covered by a ship review
[ ] This change was covered by a tech design
[ ] Any dependent config has been merged

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1150
#1190  👈
#1176
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @shakyShane and the rest of your teammates on  Graphite


Add custom padding to alert dialog

Since i noticed that there is fixed padding on the alert dialog i thought that i might be cool to be able to customize it.

LGTM!


Support python 3.11 in conda-forge

We should allow pyhdk to be installed into conda-forge environment using python 3.11.

Let's do a new 0.5 build. Does it need a new version or just a new build?

should I update the source for the new build? if yes, the release version should be >= 0.6.0

Just a new build

Done w/ https://github.com/conda-forge/hdk-feedstock/pull/23


Deliver upload error

New Issue Checklist

[x ] Updated fastlane to the latest version
[x ] I have read the Contribution Guidelines

Issue Description
Executing deliver fails with following error.
Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

deliver
[15:34:40]: Successfully loaded '/path/Deliverfile' 📄

Looking for related GitHub issues on fastlane/fastlane...

Found no similar issues. To create a new issue, please visit:
https://github.com/fastlane/fastlane/issues/new
/Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:248:in `block (2 levels) in recalc_column_widths': [!] undefined method `to_h' for [[17, [1]], [0, [0]]]:Array (NoMethodError)
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:225:in `each'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:225:in `block in recalc_column_widths'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:223:in `each'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:223:in `recalc_column_widths'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:339:in `column_widths'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:97:in `column_width'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/separator.rb:7:in `block in render'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/separator.rb:6:in `map'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/separator.rb:6:in `render'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:142:in `block in render'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:142:in `map'
	from /Library/Ruby/Gems/2.0.0/gems/terminal-table-1.7.2/lib/terminal-table/table.rb:142:in `render'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.53.0/lib/fastlane_core/configuration/configuration_file.rb:49:in `puts'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.53.0/lib/fastlane_core/configuration/configuration_file.rb:49:in `puts'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.53.0/lib/fastlane_core/configuration/configuration_file.rb:49:in `print_resulting_config_values'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.53.0/lib/fastlane_core/configuration/configuration_file.rb:27:in `initialize'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.53.0/lib/fastlane_core/configuration/configuration.rb:157:in `new'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.53.0/lib/fastlane_core/configuration/configuration.rb:157:in `load_configuration_file'
	from /Library/Ruby/Gems/2.0.0/gems/deliver-1.15.0/lib/deliver/commands_generator.rb:52:in `block (2 levels) in run'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/command.rb:178:in `call'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/command.rb:178:in `call'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/command.rb:153:in `run'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/runner.rb:444:in `run_active_command'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.53.0/lib/fastlane_core/ui/fastlane_runner.rb:38:in `run!'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/delegates.rb:15:in `run!'
	from /Library/Ruby/Gems/2.0.0/gems/deliver-1.15.0/lib/deliver/commands_generator.rb:149:in `run'
	from /Library/Ruby/Gems/2.0.0/gems/deliver-1.15.0/lib/deliver/commands_generator.rb:12:in `start'
	from /Library/Ruby/Gems/2.0.0/gems/deliver-1.15.0/bin/deliver:5:in `<top (required)>'
	from /usr/local/bin/deliver:23:in `load'
	from /usr/local/bin/deliver:23:in `'

Environment
Please run fastlane env and copy the output below. This will help us help you :+1:
If you used --capture_output option please remove this block - as it is already included there.
Generating fastlane environment output, this might take a few seconds...
✅ fastlane environment ✅

### Stack

| Key                 | Value                                                          |
| ------------------- | -------------------------------------------------------------- |
| OS                  | 10.12                                                          |
| Ruby                | 2.0.0                                                          |
| Bundler?            | false                                                          |
| Xcode Path          | /Applications/Xcode.app/Contents/Developer/                    |
| Xcode Version       | 8.0                                                            |
| Git                 | git version 2.8.4 (Apple Git-73)                               |
| Installation Source | /usr/local/bin/fastlane                                        |
| Host                | Mac OS X 10.12 (16A323)                                        |
| Ruby Lib Dir        | /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib |
| OpenSSL Version     | OpenSSL 0.9.8zc 19 Mar 2015                                    |

### fastlane files:

**No Fastfile found**

**No Appfile found**

### fastlane gems

| Gem                 | Version | Update-Status |
| ------------------- | ------- | ------------- |
| credentials_manager | 0.16.2  | ✅ Up-To-Date  |
| fastlane_core       | 0.53.0  | ✅ Up-To-Date  |
| spaceship           | 0.37.0  | ✅ Up-To-Date  |
| deliver             | 1.15.0  | ✅ Up-To-Date  |
| snapshot            | 1.16.3  | ✅ Up-To-Date  |
| frameit             | 3.0.0   | ✅ Up-To-Date  |
| pem                 | 1.4.0   | ✅ Up-To-Date  |
| cert                | 1.4.3   | ✅ Up-To-Date  |
| sigh                | 1.11.2  | ✅ Up-To-Date  |
| produce             | 1.3.0   | ✅ Up-To-Date  |
| gym                 | 1.12.0  | ✅ Up-To-Date  |
| pilot               | 1.12.0  | ✅ Up-To-Date  |
| scan                | 0.14.1  | ✅ Up-To-Date  |
| supply              | 0.7.1   | ✅ Up-To-Date  |
| match               | 0.10.0  | ✅ Up-To-Date  |
| screengrab          | 0.5.5   | ✅ Up-To-Date  |
| fastlane            | 1.107.0 | ✅ Up-To-Date  |

### Loaded fastlane plugins:

**No plugins Loaded**

Loaded gems

| Gem                       | Version |
| ------------------------- | ------- |
| terminal-table            | 1.4.5   |
| json                      | 1.8.2   |
| faraday_middleware        | 0.10.0  |
| dotenv                    | 2.1.1   |
| net-ssh                   | 3.2.0   |
| net-sftp                  | 2.1.2   |
| plist                     | 3.1.0   |
| security                  | 0.1.3   |
| krausefx-shenzhen         | 0.14.10 |
| slack-notifier            | 1.5.1   |
| i18n                      | 0.7.0   |
| thread_safe               | 0.3.5   |
| tzinfo                    | 1.2.2   |
| activesupport             | <IP_ADDRESS> |
| CFPropertyList            | 2.3.3   |
| claide                    | 1.0.1   |
| colored                   | 1.2     |
| nanaimo                   | 0.2.2   |
| xcodeproj                 | 1.4.1   |
| rouge                     | 1.11.1  |
| xcpretty                  | 0.2.4   |
| terminal-notifier         | 1.7.1   |
| multipart-post            | 2.0.0   |
| xcode-install             | 2.0.8   |
| word_wrap                 | 1.0.0   |
| commander                 | 4.4.0   |
| babosa                    | 1.0.2   |
| gh_inspector              | 1.0.2   |
| credentials_manager       | 0.16.2  |
| fastlane_core             | 0.53.0  |
| bundler                   | 1.13.6  |
| multi_xml                 | 0.5.5   |
| http-cookie               | 1.0.2   |
| faraday-cookie_jar        | 0.0.6   |
| mini_magick               | 4.5.1   |
| xcpretty-travis-formatter | 0.0.4   |
| uber                      | 0.0.15  |
| representable             | 2.3.0   |
| retriable                 | 2.1.0   |
| hurley                    | 0.2     |
| little-plugger            | 1.1.4   |
| logging                   | 2.1.0   |
| jwt                       | 1.5.6   |
| memoist                   | 0.15.0  |
| os                        | 0.9.6   |
| signet                    | 0.7.3   |
| googleauth                | 0.5.1   |
| httpclient                | <IP_ADDRESS> |
| google-api-client         | 0.9.19  |
| highline                  | 1.7.8   |
| excon                     | 0.52.0  |
| rubyzip                   | 1.1.7   |

*generated on:* **2016-11-08**

can you please share your Deliverfile - seems to be some wrong variable inside

app_identifier "com.eclipsesource.tabrisjs" # The bundle identifier of your app
username<EMAIL_ADDRESS># your Apple ID user
app_version "1.11.0" # App version
automatic_release false # Set to manual release
ipa "./tabris-js-app.ipa" # App location
#screenshots_path "./resources/ios/screenshots" # Path to screenshots
force true # Disabled HTML report generation

Updating ruby to 2.3.0 helped ...sort of. Everything works from terminal however when Jenkins invokes deliver it still uses 2.0.0. Rebooting build machine didn't help. Closing for now.

I've had a failure with a very similar stack trace when calling "fastlane" (fastlane version 2.x.x).
What helped in my case: Uninstall fastlane und terminal-table. After reinstall of fastlane I now have terminal-table version 1.7.3 instead of 1.7.2 - this might have been the problem.
Ruby version is the preinstalled one from El Capitan: ruby 2.0.0p648

I had this issue as well and was able to resolve it by updating terminal-table to version 1.7.3. (gem update terminal-table)


GEODE-5055: Handle index in progress for old clients

        * If the Lucene query function is executed by an old client (<=1.6.0) on a new server, it will wait for the index to be created.
        * Server wont return a LuceneIndexCreationInProgressException back to the old client resulting in a ClassNotFoundException.

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, you check travis-ci 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>

@nabarunnag Looks like a lot of good work went into this, but hasn't even gotten any reviews yet. Do you want to add some reviewers and move this along or do you think it's not needed anymore?

@pivotal-amurmann This is the fix to GEM-2057 which is a feature development for lucene reindex. I am currently working on this.


Compiler error

Hi, I am a student trying to port some Java code to Ceylon to learn the language. I'm new to both Github and the language, please let me know if this is better discussed on a mailing list or forum.
 :)
// Boiled the actual code down to the following... looks pointless without more
// context I guess, but it triggers the error. The Java version makes an anonymous
// instance using surrounding generic type parameters. Is this the equivalent Ceylon code?
interface EngineFactory<B>
{
    shared EngineFactory<LOGTYPE> createFactory<LOGTYPE>(B backend) =>
        object satisfies EngineFactory<LOGTYPE>
        {
            // ...
        };
}

Output:
error: anonymous_0_ is not abstract and does not override abstract method <LOGTYPE#1>createFactory(TypeDescriptor,LOGTYPE#2) in EngineFactory
  where LOGTYPE#1,B#1,LOGTYPE#2,B#2 are type-variables:
    LOGTYPE#1 extends Object declared in method <LOGTYPE#1>createFactory(TypeDescriptor,B#1)
    B#1 extends Object declared in interface EngineFactory
    LOGTYPE#2 extends Object declared in method <LOGTYPE#2>createFactory(TypeDescriptor,B#2)
    B#2 extends Object declared in class EngineFactory$impl
Note: Created module testpck/1.0.0
ceylon compile: Fatal error: The compiler exited abnormally (4) due to a bug in the compiler.

@JohnWillow, thanks for the bug report. This is actually the same as https://github.com/ceylon/ceylon/issues/2072, so I'm going to close it as a dup.
Definitely feel free to post to the mailing list or join the gitter channel for help with workarounds or design questions.

Thanks, sorry that I didn't spot the duplicate. Since that is an old issue, I suppose I need to find a workaround for now.

Definitely feel free to post to the mailing list or join the gitter channel for help with workarounds or design questions.

@jvasileff I did, but am no longer able to access the Ceylon rooms.
As for this issue, I was able to find a workaround. Thanks!


Poll, even if the last event was late.

Again, I'm sorry for all the noise on this, I'm quite new to elixir and the linux joystick system and am definitely stumbling around some.  I see that the timestamps match what jstest gives and all make sense with the guard.  It seems like the issue is that this needs to poll, even if a late event comes in.  Seems to make my gamepad work, any thoughts?

Lgtm!


fix(action): always store outputs, even when test fails.

See #46  that introduced the change.
cc @LucaGuerra

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: FedeDP
Once this PR has been reviewed and has the lgtm label, please assign lucaguerra for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

See https://github.com/falcosecurity/falco/actions/runs/8802240019/job/24158771651?pr=3177 for the CI failures.
/cc @jasondellaluce

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Move custom colors used by Khan into macros.js

This is a step towards resolving #28. I moved the color definitions from Options.js and functions/color.js into macro.js.

Codecov Report

Merging #1933 into master will increase coverage by 0.07%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1933      +/-   ##
==========================================
+ Coverage   94.83%   94.91%   +0.07%
==========================================
  Files          79       79
  Lines        4784     4835      +51
  Branches      845      844       -1
==========================================
+ Hits         4537     4589      +52
+ Misses        223      222       -1
  Partials       24       24

Flag
Coverage Δ

#screenshotter
89.47% <100%> (+0.13%)
:arrow_up:

#test
85.99% <100%> (+0.17%)
:arrow_up:

Impacted Files
Coverage Δ

src/functions/color.js
100% <ø> (ø)
:arrow_up:

src/Options.js
100% <ø> (ø)
:arrow_up:

src/macros.js
97.58% <100%> (+0.37%)
:arrow_up:

src/MacroExpander.js
96.55% <0%> (+0.86%)
:arrow_up:

Continue to review full report at Codecov.

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

I wonder whether the color mapping should not be in a separate JSON file. There are other places in the Khan Academy codebase where these are used so this might be valuable...

@danielhollas thanks for the PR.  This saves a little space so I think we should go ahead with this PR.
Long term though I think we should move these custom colors out of the KaTeX codebase altogether.  The downside of doing so right now is that we'd have to reparse these colors each time we render any math on khanacademy.org on in the mobile apps.  I think we should implement katex.globalEval as suggested in #750 before moving these custom colors out of KaTeX.


KeyMap

The goal is to have 3 json mapping files.
1 for windows
1 for linux
1 for OSX
Tasks

[x] Support zeit#233
[ ] Support zeit#251
[x] Support zeit#657
[x] Support zeit#783
[ ] Support zeit#814
[x] Support zeit#833
[x] Support zeit#872
[ ] Support zeit#1047
[x] Support zeit#1069
[x] Support zeit#1100
[ ] Support zeit#1120
[ ] Support zeit#1121
[x] Support zeit#1178
[x] Support zeit#1185
[x] Support zeit#1199
[x] Support zeit#1200
[x] Support zeit#1279
[ ] Support zeit#1306
[x] Support zeit#1361
[x] Support zeit#1424
[ ] Support zeit#1458
[x] Support zeit#1584
[x] Support zeit#1589
[x] Support zeit#1627
[ ] Support zeit#1716
[x] Support zeit#1776

hi, can you submit WIP PR to original repo, so we can track?

Yes will do eventually.

here is WIP pr for everybody coming here https://github.com/zeit/hyper/pull/1509

Is there any hope of changing the reload command? ctrl-r  is for bash reverse search. Right now the Linux and Windows keymaps make this standard bash feature impossible to use.

The reload command is ctrl+shift+r
See: https://github.com/zeit/hyper/pull/1876
``https://github.com/zeit/hyper/blob/master/app/config/config-default.js#L121

Ctrl-r currently reloads, as does ctrl-r shift-r, by default on both
Windows and Linux. The standard reverse search functionality of ctrl-r is
impossible to access in Hyper right now unless on a Mac.
On Jun 26, 2017 9:28 PM, "Philippe Potvin"<EMAIL_ADDRESS>wrote:

The reload command is ctrl+shift+r
See: https://github.com/zeit/hyper/pull/1876
``https://github.com/zeit/hyper/blob/master/app/config/
config-default.js#L121
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ppot/hyper/issues/11#issuecomment-311249846, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIZ80Q401E1jAaFp81yjs7jYFhTWndtnks5sIIUKgaJpZM4L87pl
.

@natejgardner In the current master branch you can use the
keymaps: {
}

object extension in config to define your own binding commands keys

Hi, I have a question, why the key-maps are different on each operative system?
I want to use this terminal but I work with an Mac Book (job computer) and PC with Ubuntu (Home computer).
Sorry if is silly question

Hi, I have a question, why the key-maps are different on each operative system?
I want to use this terminal but I work with an Mac Book (job computer) and PC with Ubuntu (Home computer).
Sorry if is silly question

@pycarlos Since OS X have cmd and other doesn't, you can't bind the same keys for commands. But you can tweet you own if you want and they will be set instead.


Sidecar CR without egress denied by Pilot

Bug description
Applying a sidecar resource without spec.egress results in Error from server: error when creating "STDIN": admission webhook "pilot.validation.istio.io" denied the request: configuration is invalid: sidecar: missing egress
Affected product area (please put an X in all that apply)
[x] Configuration Infrastructure
[x] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[x] User Experience
[ ] Developer Infrastructure
Expected behavior
According to the documentation, egress should be omit-able with following effect: If omitted, Istio will automatically configure the sidecar to be able to reach every service in the mesh that is visible to this namespace.
Steps to reproduce the bug
cat <<EOF | kubectl apply -f -
apiVersion: networking.istio.io/v1alpha3
kind: Sidecar
metadata:
  name: default
EOF

Version (include the output of istioctl version --remote and kubectl version)

`istioctl version --remote`

client version: version.BuildInfo{Version:"1.1.8", GitRevision:"145b18a441045d6fad33d7916380d8642c7bf21d", User:"root", Host:"11387264-87af-11e9-b00d-0a580a2c0205", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.7-14-g145b18a"}
citadel version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
galley version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
galley version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
ingressgateway version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.6-6-geec7a74"}
ingressgateway version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.6-6-geec7a74"}
pilot version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
pilot version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
policy version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
policy version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
sidecar-injector version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
telemetry version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}
telemetry version: version.BuildInfo{Version:"1.1.7", GitRevision:"eec7a74473deee98cad0a996f41a32a47dd453c2-dirty", User:"root", Host:"341b3bf0-76ac-11e9-b644-0a580a2c0404", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.6-6-geec7a74"}

kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:36:19Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

How was Istio installed?
We used the official helm chart with some minor adjustments for our environment.
Environment where bug was observed (cloud vendor, OS, etc)
Custom
I also could reproduce the bug on a quickly installed istio 1.1.7 setup in a katacoda environment
Additionally, please consider attaching a cluster state archive by attaching
the dump file to this issue.

/assign @rshriram
what is correct, the validation or the docs?

Without egress should equals to egress.hosts : "*/*"

This wasn't obvious to me, but the following Sidecar was indeed accepted by Galley:
apiVersion: networking.istio.io/v1alpha3
kind: Sidecar
metadata:
  name: default
spec:
  egress:
  - hosts:
    - "*/*"

Should this be clarified somewhere in the docs? For me this configuration reads more as a wildcard egress host than without egress.


trackers.es6:1: Integrate trackers to STB and SE

The puzzle 292-ba927d60 from #292 has to be resolved:
https://github.com/fidals/refarm-site/blob/b266a28a585db5d12c1465276b8735b8483b6f08/ecommerce/front/trackers.es6#L1-L1
The puzzle was created by Artemiy on 05-Jun-18.
Estimate: 0 minutes,
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

fidals/shopelectro#292

@duker33 May I take this issue?

@artemiy312 , seems you provided 2much code for 1 hour in related PR.
This task was hard to split?
I suggest to mark it as 2 hour.
Remark it if you are agree

@duker33  PO wants us to complete with this tasks as soon as possible, so I decided to not split it


Failed: ng-mocks is not in JIT mode and cannot resolve declarations

I'm using Angular 9 and I'm receiving this message on Karma report. Is there a solution?

Hi, thanks for the report.
Might you provide an example with the reproduction of the failure?

Hi @viniciostorres, any update on this?

I'll close the issue, feel free to reopen it with more details.

I'm having this issue too, and I'm not using the mock in production; only in a Jest test suite.

Hi @cl-ax, great to hear! might you create a sandbox project that reproduces the issue?

I'll try. It's a pretty heavy setup (legacy code of course) so I don't know how long before I get to it.

@cl-ax, thanks, I very appreciate it. if it worked for you or your company - you can invite me private to the repo, I promise to check only the issue and delete the code right after fixing it.

Oh man I found the issue. It was my mistake... Under my import statements, I had a stray jest.mock() for that particular module. So by the time MockModule was getting the component, is was a Jest mock and not an Angular module anymore!

Ah, cool, thanks for the info. Should be a helpful finding in future for other developers.
I'll close the issue. Feel free to comment it any time.


Organize previews inside tabs

See #25 for the Tab component.
Currently Preview, Form model and Form value blocks are on the main screen. These could be changed inside tabs.

This has been implemented now.


xfsprogs: fix cross compilation

Motivation for this change
Fixes https://github.com/NixOS/nixpkgs/issues/51131
Things done

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

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

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

@GrahamcOfBorg build pkgsCross.aarch64-multiplatform.xfsprogs xfsprogs

Success on aarch64-linux (full log)
Attempted: pkgsCross.aarch64-multiplatform.xfsprogs, xfsprogs
Partial log (click to expand)
strip is /nix/store/kjh00kmvpdvy82y17rxgj41c908my324-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/56wv4d0rk90g0zyfk9xk41hk9aif4bnl-xfsprogs-4.14.0/lib
patching script interpreter paths in /nix/store/56wv4d0rk90g0zyfk9xk41hk9aif4bnl-xfsprogs-4.14.0
checking for references to /build/ in /nix/store/56wv4d0rk90g0zyfk9xk41hk9aif4bnl-xfsprogs-4.14.0...
shrinking RPATHs of ELF executables and libraries in /nix/store/zz6753yw0n7smwl2pn2bqqrb2k87v5f9-xfsprogs-4.14.0-doc
strip is /nix/store/kjh00kmvpdvy82y17rxgj41c908my324-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/zz6753yw0n7smwl2pn2bqqrb2k87v5f9-xfsprogs-4.14.0-doc
checking for references to /build/ in /nix/store/zz6753yw0n7smwl2pn2bqqrb2k87v5f9-xfsprogs-4.14.0-doc...
/nix/store/jb8q3v4jg652rab4sv0gr6061cbwrdgv-xfsprogs-4.14.0-bin
/nix/store/637r1vizwxrm66s9sjsi25fdlzq8jfpy-xfsprogs-4.14.0-bin

Timed out, unknown build status on x86_64-darwin (full log)
Attempted: pkgsCross.aarch64-multiplatform.xfsprogs
The following builds were skipped because they don't evaluate on x86_64-darwin: xfsprogs
Partial log (click to expand)
cannot build derivation '/nix/store/kf4wgmddnp6g2pdj5viqaa99cm858jhy-python2.7-setuptools-40.4.3.drv': 4 dependencies couldn't be built
cannot build derivation '/nix/store/4fwzbzf1knxnnhsmnpq7d49ydw6h1pfa-zlib-1.2.11-aarch64-unknown-linux-gnu.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/d6ng8jpl0ch6fw2cc81347q0pgf6byam-cracklib-2.9.6-aarch64-unknown-linux-gnu.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/2qh4r8774pjpqnbia6jjy43yn9hj5v9h-gnome-doc-utils-0.20.10.drv': 9 dependencies couldn't be built
cannot build derivation '/nix/store/qd8lapz3akk28mfy5yb3v1rfdb47gm96-readline-6.3p08-aarch64-unknown-linux-gnu.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/vv1aifnnxs76f6drc6jwwwj7g124s36c-linux-pam-1.3.0-aarch64-unknown-linux-gnu.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/jb0dfrdzwzi5bhvsaylz2szwpv2mck4l-shadow-4.6-aarch64-unknown-linux-gnu.drv': 13 dependencies couldn't be built
cannot build derivation '/nix/store/d98whwyanzdnfwgzm18s5xn2wsl9vim2-util-linux-2.33-aarch64-unknown-linux-gnu.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/86kkq6a220rl9dcjf94xry4d0jq3qif1-xfsprogs-4.14.0-aarch64-unknown-linux-gnu.drv': 8 dependencies couldn't be built
error: build of '/nix/store/86kkq6a220rl9dcjf94xry4d0jq3qif1-xfsprogs-4.14.0-aarch64-unknown-linux-gnu.drv' failed

Timed out, unknown build status on x86_64-linux (full log)
Attempted: pkgsCross.aarch64-multiplatform.xfsprogs, xfsprogs
Partial log (click to expand)
cannot build derivation '/nix/store/ymgsxh7ln909jrpr9vbai7irsf3d3s73-ncurses-6.1-20181027-aarch64-unknown-linux-gnu.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/fa8yq4lb956fx9y4hb7vidiaacc61ja2-xfsprogs-4.14.0.drv': 9 dependencies couldn't be built
cannot build derivation '/nix/store/dzj5g3lyqbwj899l86mavhaqyw253g3g-zlib-1.2.11-aarch64-unknown-linux-gnu.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/8098ib2zfdjb943dwb2wlcksy86f6kff-cracklib-2.9.6-aarch64-unknown-linux-gnu.drv': 4 dependencies couldn't be built
cannot build derivation '/nix/store/h5yvnc79ya3x8dp34sq7csyid7ryial7-readline-6.3p08-aarch64-unknown-linux-gnu.drv': 3 dependencies couldn't be built
cannot build derivation '/nix/store/nhx4y3vny2l9ib7sl374bx8sxc9cjffh-linux-pam-1.3.0-aarch64-unknown-linux-gnu.drv': 6 dependencies couldn't be built
cannot build derivation '/nix/store/rqlxwdv5dyhlmr9r2p76q50hlqx603ps-shadow-4.6-aarch64-unknown-linux-gnu.drv': 14 dependencies couldn't be built
cannot build derivation '/nix/store/hbwwvqiqraiarfb9bb37myxx476zhwy9-util-linux-2.33-aarch64-unknown-linux-gnu.drv': 6 dependencies couldn't be built
cannot build derivation '/nix/store/m6hchpgqp5gixgaal0gnj8sscpz3shvi-xfsprogs-4.14.0-aarch64-unknown-linux-gnu.drv': 10 dependencies couldn't be built
error: build of '/nix/store/fa8yq4lb956fx9y4hb7vidiaacc61ja2-xfsprogs-4.14.0.drv', '/nix/store/m6hchpgqp5gixgaal0gnj8sscpz3shvi-xfsprogs-4.14.0-aarch64-unknown-linux-gnu.drv' failed


Subnet length for bring-your-own-subnet Container Apps

Under Create the environment there's a Note stating -
Note

Network address prefixes requires a CDIR range of /23.

We should probably make this a bit more imperative and also explain what could go wrong if a /24 is selected instead (e.g. revisions may get stuck in 'Provisioning' state and never complete due to lack of IP space). We probably don't need to be that explicit but a little more explaining would create trust and lower the risk of someone overlooking the recommendation.

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

ID: b0aa5af5-831d-77e2-480c-41ab2bbb5be3
Version Independent ID: 583217b2-1821-2cd9-629d-779af221a436
Content: Provide an external virtual network to an Azure Container Apps environment
Content Source: articles/container-apps/vnet-custom.md
Service: container-apps
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

Thank you for your feedback! We have assigned this issue to the author to review further and take the next course of action.

Thanks for your feedback and your contribution to Azure docs.
Feedback for this repository is moving away from GitHub to a system specific to the Microsoft Learn platform. Issues for this repository will soon be disabled, and additional comments from GitHub will no longer be possible. However, we are now tracking and triaging this issue in the new feedback system.
To learn more about our feedback systems, please see Provide feedback for Microsoft Learn content.
#please-close


Undefined object error in room_models.js

Uncaught TypeError: Cannot read property 'hasPlayingSong' of undefined
at dj.drewgottlieb.net:9867/scripts/room_models.js:454

QueuedSong seems to have no "collection" object.

I haven't seen this occur since then, so I'm closing this for now.


Challenge01

name: Mohammad Saquib
github_user_name: saquib000

Challenge02
URL of forked repo : https://github.com/saquib000/oss101

Challenge03

Intermediate Challenge 3 :


Add focusable tests

fixes: #401

Pull Request Test Coverage Report for Build 912

7 of 7 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 77.934%

Totals

Change from base Build 890:
0.02%

Covered Lines:
1300

Relevant Lines:
1597

💛  - Coveralls


escape quotes for commas

creating new enhancement for point brought up in https://github.com/vishysank/console-log-atom/issues/12 by @designofhumanity

@pdonias thanks for fixing this.


Warning "Endroid Installer did not detect a compatible project type"

I want to use installer in my project "Endroid Installer did not detect a compatible project type". I try to use it even on empty project, but i have the same probrem (i want to use endroid/qr-code, but installer is dependensy for this project).
What i need to do to use it on my project?
Empty project composer json:
{     "name": "bla/bla",     "description": "Test",     "require": {} }
Composer lock:
{     "_readme": [         "This file locks the dependencies of your project to a known state",         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",         "This file is @generated automatically"     ],     "content-hash": "8d92478768248d4c582a4fe5a83acb4e",     "packages": [         {             "name": "endroid/installer",             "version": "1.0.5",             "source": {                 "type": "git",                 "url": "https://github.com/endroid/installer.git",                 "reference": "1472a01e730e5ba37e82bd99694daae92dda0578"             },             "dist": {                 "type": "zip",                 "url": "https://api.github.com/repos/endroid/installer/zipball/1472a01e730e5ba37e82bd99694daae92dda0578",                 "reference": "1472a01e730e5ba37e82bd99694daae92dda0578",                 "shasum": ""             },             "require": {                 "composer-plugin-api": "^1.1",                 "php": ">=7.1"             },             "require-dev": {                 "phpunit/phpunit": "^5.7|^6.0"             },             "type": "composer-plugin",             "extra": {                 "branch-alias": {                     "dev-master": "1.x-dev"                 },                 "class": "Endroid\\Installer\\Installer"             },             "autoload": {                 "psr-4": {                     "Endroid\\Installer\\": "src"                 }             },             "notification-url": "https://packagist.org/downloads/",             "license": [                 "MIT"             ],             "authors": [                 {                     "name": "Jeroen van den Enden",                     "email"<EMAIL_ADDRESS>               }             ],             "time": "2018-07-15T08:21:39+00:00"         }     ],     "packages-dev": [],     "aliases": [],     "minimum-stability": "stable",     "stability-flags": [],     "prefer-stable": false,     "prefer-lowest": false,     "platform": [],     "platform-dev": [] }

Hi @lashnag this is not a warning, just a notice. If you have no framework installed the installer doesn't need to do anything. The reason the message is there is that people who intend to use auto configuration should be notified when no compatible project type is detected.
However, I can imagine the message can be interpreted differently so I will see if I can change it to something like "No auto configuration available for this project type".
Thank you!


How to inject a dependency to NancyModule which itself depends on the Request?

Prerequisites

[x] I have written a descriptive issue title
[x] I have verified that I am running the latest version of Nancy
[x] I have verified if the problem exist in both DEBUG and RELEASE mode
[x] I have searched open and closed issues to ensure it has not already been reported

Description
Sometimes I need to read data from the request itself to initialize a service that a certain NancyModule depends on. Take the following example:
public interface IApiKeyProvider
{
     string GetApiKey();
}

public class Service : IService
{
    private readonly IApiKeyProvider apiKeyProvider;
    public Service(IApiKeyProvider apiKeyProvider)
    {
           this.apiKeyProvider = apiKeyProvider;
    }

    // ... implementation
}

I would register both like this:
container.Register<IService, Service>();
container.Register<IApiKeyProvider, FromRequestApiKeyProvider>();

where the class FromRequestApiKeyProvider provides the api key by reading data from the request. This is what I need to be able to do:
// Hypothetical class
public class FromRequestApiKeyProvider : IApiKeyProvider
{
    private readonly NancyRequest request;
    public FromRequestApiKeyProvider(NancyRequest request)
    {
         this.request = request;
    }

    public string GetApiKey()
    {
         return this.request.Query["apiKey"];
    }
}

Not being able to do this forces me into initializing a concrete implementation of Service inside the request handlers which in turn forbids me from unit-testing my NancyModule.
Another scenario where this popped up is where I put data into the Items of a NancyContext in the Before pipeline (in Bootstrapper -> ApplicationStartup) and then needing to read the data I put in the NancyContext to initialize some service like the above.
As an example for the latter scenario, see the Nancy.Serilog library where you have to get a contexual logger from inside the request handler i.e. var logger = this.CreateLogger(); where ideally this would be injected as a dependency to the NancyModule at the constructor level.

Can't you just register the context or request in the request container?

Wait, there is a standard way to do this 😅, please, where can I find examples?

I don't know about standard, but I think it can be achieved by registering the context or request in the request container. Just override ConfigureRequesyContainer in your bootstrapper.

Wow, this actually worked, thanks a lot :heart: :pray: I used this code:

protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context)
{
    Func<ILogger> getLogger = () =>
    {
        if(!context.Items.ContainsKey("RequestId"))
        {
            return Log.Logger;
        }

        var requestId = (string)context.Items["RequestId"];
        var contextualLogger = Log.ForContext("RequestId", requestId);
        return contextualLogger;
    };

    container.Register((tinyIoc, namedParams) => getLogger());
}


Parent route does not show when modal is opened

When a link is clicked that routes to a modal, I can't get the parent path to show in the background like in the examples. The modal itself shows fine and when clicking the backdrop it does go back to the parent route.
I'm using connected-react-router and redux.

@davidmfoley Hi! If I will be going to modal route link from various routes , how can I save visibility of the last route of component without setting property parentPath? because parentPath may be variously, like as / or /search?q=bla

Just I have same problem but my implementing some another. I setting globally modal route and I want to route from various components, but when I do it then previous route data has been removed from DOM


LABEL com.example.version.is-beta

docker version:
Client:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:19:00 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:19:00 UTC 2015
 OS/Arch:      linux/amd64

docker info:
Containers: 408
Images: 121
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 937
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.16.0-49-generic
Operating System: Ubuntu 14.04.3 LTS
CPUs: 8
Total Memory: 11.73 GiB
Name: mobile-lab
ID: MNKA:XEBM:UGJ7:HGT4:MN5L:WMCP:ZYIL:7FZZ:K4S2:6Q7I:3K7S:XCTG
WARNING: No swap limit support

uname -a:
Linux mobile-lab 3.16.0-49-generic #65~14.04.1-Ubuntu SMP Wed Sep 9 10:03:23 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Steps to reproduce:

Create a basic dockerfile with only one LABEL layer

FROM ubuntu
LABEL com.example.version.is-beta

Try to build this container

Results received:
Error response from daemon: Syntax error - can't find = in "com.example.version.is-beta". Must be of the form: name=value

Expected results:
The container is built correctly.
Additional info:
In the official userguide, it is mentioned that "The LABEL instruction adds a label to your image, optionally setting its value. ". There are examples in the same context, showing this functionality.
However that is not the case in the actual program, as shown in line_parsers.go

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

Not sure if this is a code bug, or a documentation bug.

I would say docs bug, I think a value is required.

--label accepts a string with no value.

IIRC, the intent was to be able to add a label without value (which would default to an empty string). If the code doesn't support that, sounds like a bug to me.
/cc @ibuildthecloud to confirm if this was indeed the intent.

This sounds weird because I get:
$ docker build -t labelbug - <<EOF
heredoc> FROM ubuntu
heredoc> LABEL com.example.version.is-beta
heredoc> EOF
Sending build context to Docker daemon 2.048 kB
Error response from daemon: LABEL must have two arguments

Which it's hitting https://github.com/docker/docker/blob/1ffff4c8e2b208664b6f63ea6cd3c4c3dace3cc9/builder/parser/line_parsers.go#L156 because LABEL w/o value is evaluated at this check https://github.com/docker/docker/blob/1ffff4c8e2b208664b6f63ea6cd3c4c3dace3cc9/builder/parser/line_parsers.go#L150
So, is your repro example wrong somewhere? I also think it's a code bug though because doc says it's optional to set a value


example for measuring.

Example based on the OSM example showing the measuring of a length and a possible transformation to lat/lon (measure in degrees).

Thanks!


Add a new proto DeviceParametersDiff which provides a compact way to bundle multiple DeviceParameters and their values

This is based on a design reviews to add "device parameters overrides" before executing circuits sweeping.
I renamed some proto type names from similar internal data structure to prevent reference to internal infrastructures.

cc @dstrain115

How will users interact with this new proto? IIUC, the internal diff proto has an abstraction layer that clients can easily interact with for creating a Diff which can then be easily packaged into its proto form. Can a similar well defined abstraction layer e.g class DeviceParameterDiff exist for this proto as well? It doesn't have to include all the APIs as the one linked, but a clear abstraction layer will help me see how this proto will later get integrated into a Job's run context. WDYT?

thanks for the comment.
the PR includes a helper function to construct a DeviceParametersDiff proto out of a list of DeviceParameter and their values. please see the module run_context.py in this PR. Suppose you want to override some readout parameters on 2 qubits, you may use the following code

import run_context

device_params_override = run_context.to_device_parameters_diff([
    (
        run_context_pb2.DeviceParameter(
            path=["q1_2", "readout_default", "readoutDemodDelay"], units="ns"
        ),
        program_pb2.ArgValue(float_value=5.0),
    ),
    (
        run_context_pb2.DeviceParameter(
            path=["q3_4", "readout_default", "readoutFidelities"]),
        program_pb2.ArgValue(
            double_values=program_pb2.RepeatedDouble(values=[0.991, 0.993])
        ),
    ),
])


no fallback

Do not fall back to python protocols if accelerated protocols cannot be imported

@ugodiggi are we sure its a good idea to change the actual thrift lib for this? if we ever moved back on to mainline thrift we would lose this change


Error when working with multiple models

When working with 2 different models, it seems like mongox is ignoring the collection name and inserting into the first one's collection.
Currently, I have 2 models defined in 2 different files:
class UserAction(mongox.Model, db=db, collection="user_actions"):
    server_id: int
    name: str
    aliases: list[str]
    emoji: str
    self_text: str
    receivers_text: list[str]

class ServerSetting(mongox.Model, db=db, collection="server_settings"):
    server_id: int
    ignored_channels: list[int]

Firstly, I insert into server_settings, but when I try to insert into user_actions, the object gets created inside the server_settings collection instead.

I have made a simple script to run that displays the bug in full.
import asyncio

import mongox

client = mongox.Client("mongodb://localhost:27017")
db = client.get_database("test_db")

class Movie(mongox.Model, db=db, collection="movies"):
    name: str
    year: int
    genres: list[str]

class Book(mongox.Model, db=db, collection="books"):
    title: str
    author: str
    year: int

async def test() -> None:
    forrest_gump = await Movie(name="Forrest Gump", year=1994, genres=["Comedy", "Tragedy"]).insert()
    nineteen84 = await Book(title="1984", author="George Orwell", year=1949).insert()
    print(forrest_gump.name)
    print(nineteen84.title)

if __name__ == "__main__":
    asyncio.run(test())

In this case, we get the following result when viewed in Compass: