Using painterResource(:DrawableResource) outside desktop Window can produce UnsatisfiedLinkError

Describe the bug
Using the new painterResource(:DrawableResource) from 1.6.0-beta01 outside desktop Window Composable produce an exception when launching the JVM app version packaged from Conveyor.
It's useful to display an icon in the Tray for example.
Affected platforms

Desktop

Versions

Kotlin version*: 1.9.22
Compose Multiplatform version*: 1.6.0-beta01
OS version(s)* (required for Desktop and iOS issues): macOS 14.2.1 (23C71)
OS architecture (x86 or arm64): Apple M1 Pro
JDK (for desktop issues):

> java --version
openjdk 17.0.8 2023-07-18
OpenJDK Runtime Environment Temurin-17.0.8+7 (build 17.0.8+7)
OpenJDK 64-Bit Server VM Temurin-17.0.8+7 (build 17.0.8+7, mixed mode)

To Reproduce
Steps and/or the code snippet to reproduce the behavior:

Add Conveyor to a project containing JVM target

gradle/libs.versions.toml
[versions]
conveyor = "1.8"

[plugins]
conveyor = { id = "dev.hydraulic.conveyor", version.ref = "conveyor" }

build.gradle.kts
plugins {
    ...
    alias(libs.plugins.conveyor) apply false
}

composeApp/build.gradle.kts

Note you need to use jvm() with Conveyor and not jvm("desktop"): https://github.com/hydraulic-software/conveyor/discussions/97#discussion-6151837

plugins {
    ...
    alias(libs.plugins.conveyor)
}

version = 0.1.0

kotlin {
    ...

    jvm()
    jvmToolchain(17)

    ...
}

dependencies {
    linuxAmd64(compose.desktop.linux_x64)
    macAmd64(compose.desktop.macos_x64)
    macAarch64(compose.desktop.macos_arm64)
    windowsAmd64(compose.desktop.windows_x64)
}

configurations.all {
    attributes {
        attribute(Attribute.of("ui", String::class.java), "awt")
    }
}

Add an image to commonMain/composeResources/drawable like compose-multiplatform.xml

Update jvmMain/kotlin/main.kt with this code:

import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.size
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
import kotlinproject.composeapp.generated.resources.Res
import org.jetbrains.compose.resources.ExperimentalResourceApi
import org.jetbrains.compose.resources.painterResource

@OptIn(ExperimentalResourceApi::class)
fun main() = application {
    val painter = painterResource(Res.drawable.compose_multiplatform) // androidx.compose.ui.res.painterResource("drawable/compose-multiplatform.xml")

    Window(
        title = "Kotlin",
        onCloseRequest = ::exitApplication,
    ) {
        Column {
            Image(
                painter = painter,
                contentDescription = null,
                modifier = Modifier.size(50.dp)
            )
        }
    }
}

Run ./gradlew jvmJar

Build app with something like conveyor -Kapp.machines=mac.amd64 make mac-app. See here for more details: https://conveyor.hydraulic.dev/13.1/tutorial/tortoise/4-build-unpackaged

Open the app in the output folder. See screenshot for result.

Reproduction repository
https://github.com/vinceglb/ComposeMultiplatformUnsatisfiedLinkError

Run ./gradlew jvmJar
Run conveyor -Kapp.machines=mac.amd64 make mac-app if you are using ARM Mac
Open app in the output directory

Expected behavior
Launch the app normally.
Screenshots

Additional context
The code is working fine in debug mode. Also, I do not reproduce using packageDmg for example. It only happens when using conveyor command.
Finally, if we replace painterResource(Res.drawable.compose_multiplatform) by the old method: painterResource(Res.drawable.compose_multiplatform), it will work.
Here is the modal log:
The application has experienced an internal error and must quit.

java.lang.UnsatisfiedLinkError: 'int org.jetbrains.skiko.SystemTheme_awtKt.getCurrentSystemTheme()'   @ org.jetbrains.skiko.SystemTheme_awtKt.getCurrentSystemTheme(Native Method)

I've encountered this issue in a different situation. It seems we're not loading skiko from getCurrentSystemTheme(), so if that function is called before skiko has been loaded by something else, it will fail.

@vinceglb is this specific to Conveyor? If you run the same code without Conveyor, does it also crash?

I tried to replicate the crash without Conveyor, but I didn't succeed. I can run the app in debug, and it's also working by using packageDmg.
I'm not sure if it's 100% related to Conveyor because everything is working except using this new method painterResource() outside of Window 🤷♂
By running conveyor run, I got the whole stack:
❌ /Users/vincent/Library/Caches/Hydraulic/Conveyor/entries/21/ec/21eca544cfe8dca8/content/app/My Amazing Project.app/Contents/MacOS/My Amazing Project: Returned non-zero exit code 1
   java.lang.UnsatisfiedLinkError: 'int org.jetbrains.skiko.SystemTheme_awtKt.getCurrentSystemTheme()'
           at org.jetbrains.skiko.SystemTheme_awtKt.getCurrentSystemTheme(Native Method)
           at org.jetbrains.skiko.SystemTheme_awtKt.getCurrentSystemTheme(SystemTheme.awt.kt:4)
           at androidx.compose.ui.SystemThemeKt$LocalSystemTheme$1.invoke(SystemTheme.kt:30)
           at androidx.compose.ui.SystemThemeKt$LocalSystemTheme$1.invoke(SystemTheme.kt:29)
           at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
           at androidx.compose.runtime.LazyValueHolder.getCurrent(ValueHolders.kt:29)
           at androidx.compose.runtime.LazyValueHolder.getValue(ValueHolders.kt:31)
           at androidx.compose.runtime.CompositionLocalMapKt.read(CompositionLocalMap.kt:90)
           at androidx.compose.runtime.ComposerImpl.consume(Composer.kt:2136)
           at androidx.compose.foundation.DarkTheme_skikoKt._isSystemInDarkTheme(DarkTheme.skiko.kt:53)
           at androidx.compose.foundation.DarkThemeKt.isSystemInDarkTheme(DarkTheme.kt:41)
           at org.jetbrains.compose.resources.ResourceEnvironmentKt$DefaultComposeEnvironment$1.rememberEnvironment(ResourceEnvironment.kt:26)
           at org.jetbrains.compose.resources.ImageResourcesKt.painterResource(ImageResources.kt:52)
           at ComposableSingletons$MainKt$lambda-1$1.invoke(main.kt:14)
           at ComposableSingletons$MainKt$lambda-1$1.invoke(main.kt:13)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:116)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
           at androidx.compose.ui.window.Application_desktopKt$application$1$1.invoke(Application.desktop.kt:115)
           at androidx.compose.ui.window.Application_desktopKt$application$1$1.invoke(Application.desktop.kt:114)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:116)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
           at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1$1.invoke(Application.desktop.kt:227)
           at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1$1.invoke(Application.desktop.kt:226)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
           at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
           at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:221)
           at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2$1.invoke(Application.desktop.kt:219)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
           at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
           at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:33)
           at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3303)
           at androidx.compose.runtime.ComposerImpl.composeContent$runtime(Composer.kt:3236)
           at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:723)
           at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1071)
           at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:631)
           at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:617)
           at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:219)
           at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
           at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
           at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
           at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
           at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
           at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
           at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
           at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
           at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
           at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
           at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
           at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
           at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
           at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
           at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Here is the reproduction repository: https://github.com/vinceglb/ComposeMultiplatformUnsatisfiedLinkError

This should be fixed in the next release that upgrades Skiko. Please reopen the issue if it doesn't.

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


add github branch policy definition

example https://github.com/microsoft/kiota-http-guzzle-php/pull/123

You can use the https://github.com/MIchaelMainer/policyservicetoolkit to export existing settings. The suggested workflow is:

Export existing branch protection rules in the yaml file.
Check-in existing branch protection rules file at /.github/policies/.
Validate the rules are working as expected.
Update the branch protection rules in the yaml file and open PR.

Now you have gitop enabled your branch protection rules.


[SonarScanner] Add exclusions and inclusions of source and test files

This adds additional exclusion/inclusion filters according to the "Analysis Scope" page of SonarQube projects

Thanks for your contribution! 😄🎉


[IA-3433] Analysis Modal - Added width back to image style for flaky tests.

Issue
UI tests were failing because a clickable element was not yet rendered. Adding width back in should fix the failing test.
Testing done
My testing was to check the UI to ensure the images maintained a proper aspect ratio.
Also checked Cromwell logo - visually it looks good.
configOverridesStore.set({ isCromwellAppVisible: true })

Going to go ahead and merge - the flaky tests are not related to my changes.


Suggestion for URL schema

I've been trying to use this with redis socket and it will not work as documented.
Firstly using redis:///unix/path/to/redis.sock/db/prefix results in :unix as the path and generally a mess.
Secondly this method of specifying a socket rather than a TCP connection isn't very standard. Usually I see it as scheme:///path/to/socket/db This is used for example with MySQL connection URLs (mysql:///var/lib/mysql/mysql.sock/test_database). The tricky part comes with the optional prefix.
So here's my suggestion; move the prefix to a query resulting in the following:
scheme:///path/to/socket/db?prefix

Example:
redis:///var/run/redis/redis.sock/0?my_prefix

I can implement this for you along with (rewriting) the tests but wanted to run it by you first.

Addressed in #17 and released in 1.0.0


Using @Schema implementation overrides @Schema name

Using: io.swagger.core.v3:swagger-annotations:jar:2.2.0
When defining a @Parameter with a @Schema, setting the schema.implementation field to some class Class results in the Schema's name being set to "Class". This is sensible. However, when field schema.name has also been set, then this value should take priority.
At the moment, setting
@Parameter(schema = @Schema(name "Dog", implementation = DogRestRequestBody.class))

results in a Schema with name DogRestRequestBody. I would expect it to be Dog.

It seems to be working fine on 2.2.1-SNAPSHOT


REGAIN ACCESS TO LOST CRYPTO ASSETS HIRE TECHNOCRATE RECOVERY

In the world of cryptocurrency recovery, innovation is key – and Technocrate Recovery knows it. They harness the power of innovative data recovery algorithms to sift through vast amounts of information, pinpointing the exact location of your lost Bitcoins with precision and accuracy. With their advanced tools at hand, your recovery is in good hands. Behind every successful recovery is a team of skilled specialists, and Technocrate Recovery doesn't disappoint. Their squad of cryptocurrency wizards knows the ins and outs of Bitcoin recovery like the back of their hand, turning seemingly impossible situations into success stories with their expertise and dedication. Technocrate Recovery stands out as a formidable force in the Bitcoin recovery sector
Send a direct message to Technocrate Recovery with number:
(TECHNOCRATRECOVERY(@)CONTRACTOR.NET)     (WW W.TECHNOCRATERECOVERY(.)SITE)
ALSO SEND ENQUIRIES ON TELEGRAM: (@)TECHNOCRATE_RECOVERY

CONTACT A PROFESSIONAL RECOVERY EXPERT FROM ---->REVENANT CYBER HACKER
Let's be real here - discovering that your Bitcoin wallet has been hijacked is enough to send even the most composed individual into a frenzy. The initial shock, the disbelief, and the questions swirling in your mind - it's an emotional rollercoaster that can leave you feeling vulnerable and violated. In the midst of the fear, though, I rapidly understood how important time is. The likelihood of irreparable harm increases with time. This insight strengthened my resolve to act right away and contact Revenant Cyber Hacker, the cryptocurrency recovery business that assured me it could retrieve my pilfered Bitcoins from the dark depths of the blockchain. With my hopes pinned on Revenant Cyber Hacker, I mustered the courage to reach out to their team. From the moment I made contact, the process was seamless. Their responsiveness was impressive, offering immediate guidance and assurance that I was in capable hands. They walked me through the necessary steps and provided clear instructions on what information they needed to begin the recovery process. The group from Revenant Cyber Hacker didn't skip any steps in their quest for healing. They made sure I understood the procedure and was at ease at every turn by taking the time to explain each phase of the journey. Revenant Cyber Hacker knowledge was evident in everything from the analysis of the attack to the pursuit of the attackers. Their dedication to openness and communication made the difficult process of recovering my misplaced bitcoin wallet seem surprisingly doable. After what felt like an eternity, the moment of truth arrived. Revenant Cyber Hacker had successfully recovered my hijacked bitcoin wallet. I am very grateful for this service, call Revenant Cyber Hacker through: Email: revenantcyberhacker (AT) Gmail DOT com
Website: revenantcyberhacker (DOT) net
WhatsApp: +1(913) 820–0739
Telegram: @revenantcyberhacker


Introduce an Analyser phase

Taking advantage of the strongly typed nature of oxide, I propose the following:

Type checking phase: Invalid operations on expressions such as -"asdf", !12 are being checked at runtime, when they can be checked statically because we already know the types and their operations. This would involve writing a static type checker.
I suspect, however, that this has an issue due to the any type. The current behavior, lets a variable with the type any to take on values of other types without an explicit cast. Due to this, it would be hard to reason about operations on such a variable.
Therefore, we can't really get away with runtime checks due to any, unless of course, we change the way it behaves.

I would prefer an explicit cast when applying operators to variables of the type any. For instance,
let x: any;
x = 12;
let y = (x as int) + 12;

We can introduce a lot more checks before the interpreter is run, leading to reporting more errors before the interpreter is run (at runtime), and also better performance(by getting away with unnecessary checks):

Accessing invalid properties of a struct instance.

struct Person {
    pub name: String
}
let p: Person = Person::new();
println(p.age);

If p were of the type any, it would be very difficult and probably inefficient(in the worst case) to reason about the invalid property access.

Same as the above with enum values.
Matching argument types of a function call to its declaration (signature).

Apart from type checking, we can perform some basic analyses for things such as:

Arity match check for function calls.
Prevent re-declarations of struct/enums.

fn f() {
    fn g() {}
    enum E {}
}
f();
f();

In this case, any declaration inside a block is re-declared each time the block is run. The analyzer can possibly prune such declarations and hoist it at the top level.
@tuqqu please let me know what you think about these. Also, please feel free to correct me wherever necessary.
Is this in line with the vision you have for oxide?

I overall share your vision and agree that static analysis would be a great improvement to the language on the whole.
However creating such a tool would be quite an undertaking, as it introduces a whole new phase for the parsed AST.
This raises an issue that performing static analysis every time could slow the whole process, because analysing code statically is an interpretation to some degree that will affect the performance. Basically what we would be doing is interpreting the code twice: first we would go through the AST seeking errors and then interpreting as usual (on success).
I think that due to the interpreted nature of the language we could benefit from borrowing the similar approaches other big languages use (like JavaScript/PHP/Python/Ruby). Correct me if I'm wrong, but they all have static analysis tools that are run optionally (e.g. JSLint, Psalm), either on deploy or manually to ensure you wrote a correct program.
This optional built-in static analysis tool could be called for instance like
oxide --lint script.ox

Probably the tool is best to be placed in a separate crate within the project. I am not really experienced in multi-crate Rust projects, but for reference serde is doing something similar.
As for the ideas themselves:

I like the idea of having to explicitly cast variable of type any before using it. Once we have type casting through as this is definitely what should be implemented. This any type is something I have not decided on to be honest. It is a bit quirky, yet sometimes handy to have in a dynamic language. There is a chance we drop it altogether though. A big one :)
Catching the invalid enum value or struct property is a + from me
Function signature validation and arity + as well

I am not sure what you mean by

The analyzer can possibly prune such declarations and hoist it at the top level.

A enum/struct/const/fn declaration inside a function is not visible from the outside scope (and it is good), so hoisting them would not be correct. Maybe I am misunderstanding what you mean, but the optimisation here would be interpreting those declarations once and caching them somewhere. The next time this function gets called we can just use the cached declarations.
But inner declarations are not really a common thing, are they? They are syntactically valid, but... a bit useless. Even in Rust I do not see people using them much. Is there much point in implementing the caching system for such a rare case? Maybe in the future.

This raises an issue that performing static analysis every time could slow the whole process, because analysing code statically is an interpretation to some degree that will affect the performance. Basically what we would be doing is interpreting the code twice: first we would go through the AST seeking errors and then interpreting as usual (on success).

Currently, the pipeline of the program is as follows:
Source Code -> [Lexical Analyser] -> tokens -> [Parser] -> Syntax Tree -> [Interpreter] -> Result

I'm suggesting to operate on the syntax tree, and then pass the altered syntax tree to the interpreter.
We would be sacrificing some performance due to this analysis. However, the runtime can be much faster because it would become devoid of unnecessary checks (for types and their operations, and so on). It's something like: the compilation takes a bit longer, but it runs much faster.
For starters, we can have the optional linter like you suggest. Once it is mature, we can integrate it with the pipeline before the Interpreter stage.

Correct me if I'm wrong, but they all have static analysis tools that are run optionally (e.g. JSLint, Psalm), either on deploy or manually to ensure you wrote a correct program.

AFAIK, due to their dynamic types, only a limited amount of static analysis can be performed. Due to this, we face a lot of unforeseen errors at runtime (which might have been caught at compile time, if it were a statically typed language)
python3 has optional type annotations which many linters use. But those are not enforced at runtime. JavaScript has other tricks up its sleeves. It performs an optimization phase for "hot" code at runtime. (Interesting blog post)
For oxide, I suggested static analysis because it is statically typed, unlike JavaScript or python.

the optimisation here would be interpreting those declarations once and caching them somewhere.

Absolutely! Like you said however, its not a very common practice and we can have it on low priority.

However creating such a tool would be quite an undertaking, as it introduces a whole new phase for the parsed AST.

Yes, this is a mini project in itself. But it should be really interesting to work on IMO.
By no means, this is an exhaustive list of analyses we can work on. I'm sure a lot more can be added. We can add them to a list and assign priorities to each of them and tackle them one at a time. :)
Let me know if this works with you.

To be honest, I have to say that in the near future I envision myself mostly involved in the new features development (e.g. I am currently working on traits). Here is an approximate list of necessary improvements as I see it for now:

trait support
modules support
multifile support (in pair with modules)
type casting (with as)

I also would like to see in the language:

generics support
types support with intersection types (idea borrowed from TypeScript)
enum satellite data support (not yet sure how it is gonna look tbh)
primitive types boxing/unboxing (basically methods on numbers/str/bool).
tuples (this is gonna be a hard one to implement I think)

This is I definitely support and agree with:

For starters, we can have the optional linter like you suggest. Once it is mature, we can integrate it with the pipeline before the Interpreter stage.

As for this one:

Due to this, we face a lot of unforeseen errors at runtime (which might have been caught at compile time, if it were a statically typed language)

I am a bit sceptical static analysis will help to speed up the runtime significantly. I am glad to be mistaken tho.
Don't get me wrong, I am very much interested in your proposition and support it, I am just a bit unsure it is easily achievable.  I am also not sure if speed is the concern right now. Speed is always a good thing however.
If you are interested in the development of the static analysis tool, you have the green light for sure, either you choose to integrate it directly within this project (through a separate crate) or first develop as a standalone tool in its own repository to experiment with.
This is a great opportunity to dive into such a thing and I am sure it is an interesting initiative. Let me know what you decide to get involved with.

trait support
modules support
multifile support (in pair with modules)
type casting (with as)

That would be very cool!

I am a bit sceptical static analysis will help to speed up the runtime significantly. I am glad to be mistaken tho.

Yes, I think you are right. It would not be anything major. A major speedup boost can be obtained by interpreting bytecode rather than syntax trees (since you would not be jumping around the heap as much).
Static analysis could result in some speedup, however, a greater benefit lies in having the errors reported to the programmer at compile time.

If you are interested in the development of the static analysis tool, you have the green light for sure, either you choose to integrate it directly within this project (through a separate crate) or first develop as a standalone tool in its own repository to experiment with.
This is a great opportunity to dive into such a thing and I am sure it is an interesting initiative. Let me know what you decide to get involved with.

Sure. I'll keep you posted regarding this.


app automatically exits

when i try to open the app (the one from the zip file), it opens then exits by its own
how can i solve dis?

I assume this is the cs-hud-win32-x64.zip, not config or radar?
Currently the EXE from cs-hud-win32-x64.zip will not show anything if you're not spectating a CS match, so maybe it is running and just invisible.
If you run both the EXE and CS, and you're spectating a match in CS, does it still not show anything? You may need to Alt+Tab to the HUD window.
Note that you cannot be playing yourself. You need to be either watching a demo, watching CSTV/GOTV, or spectating a live match. Easiest way: Start an offline match versus bots, then join the Spectators team.

can't see anythign when spectating a match, hud window doesn't even pop up

Interesting... :/ I don't have a Windows machine available right now unfortunately, so could you try running the EXE from the command line?
I think you can do that by Ctrl+Shift+Right-clicking in the Explorer window where the EXE is, then selecting something like Open Powershell. In the blue window that opens up, type cmd, press Enter, then cs-hud.exe, then press Enter again.
Could you then copy the output of that in here (or take a screenshot)?

sure wait

You're not running this in a virtual machine or anything, right? If you are, that might be the issue :D
Assuming you're not in a VM though, a couple things you could try:

Move the entire folder to the C: drive.
Run cs-hud.exe --disable-gpu. Will probably work, but will probably also make animations in the HUD choppy.
Run cs-hud.exe --no-sandbox.

Do any of these work?

moved the entire thing to my c drive and it opens, but it not showing the overlay

If you mean that the window shows up in the taskbar/Alt+Tab but there's nothing is in there:
What do you see when you open http://localhost:31982/hud in your browser?
If you mean that the window doesn't show up at all, could you do the cmd thing again and post the output again?

just got the app overlay working, but it is flickering a lot

Welp at least it's kinda working :D
Could you kill and restart the EXE from the ZIP file? But keep cs-hud-win.exe (the one that opens a console by itself) running.

@42Firehawk have you seen something like this by any chance?

I haven't had issues with it not launching, and do run it from a secondary drive (D in my case), and definitely no issues with a black box covering a large portion of my display. The only thing I do see is no spec or observer cfg to clear the default hud out (like draw_only_deathnotices or smth). But the black screen I haven't seen ever before.

Gonna close this for now as it seems out of the HUD's control, but feel free to reopen if you're still having trouble :)


UPNP: Don't delete previous mappings when adding new port mappings

Currently when adding UPNP port mappings, the code tries to delete previously existing mappings first.
As discussed on Rocketchat, this was leftover code from a previous workaround for a specific router, its better to remove this.
It also results in misleading error messages if no previous mapping exists, misleading users (see issue below).
If its still needed in specific cases, it can be done in user code.
Fixes https://github.com/godotengine/godot/issues/38149.

@akien-mga One sentence may need some changes indeed, and I also want to test this on another UPNP device I have to confirm this doesn't in fact break anything. Seems to work fine with my router though.

Alright, finally found some time to test this - works on all routers I have available, no issues. Yay.

Merged, as it is approved by Fabio and Rémi :)

Cherry-picked for 3.6.


修复未返回templateId

这个 PR 实现什么功能/修复什么问题:
修复未返回templateId
是否需要 backport 到之前的 release 分支:

release/2.9.0
release/2.8.0
release/2.7.0
release/2.6.0

/cc @swordqiu @yousong

/cherrypick release/2.9.0

/cherrypick release/2.8.0

/cherrypick release/2.7.0

/cherrypick release/2.6.0

Codecov Report

Merging #665 into master will not change coverage.
The diff coverage is 0%.

@@          Coverage Diff           @@
##           master    #665   +/-   ##
======================================
  Coverage    7.42%   7.42%
======================================
  Files         346     346
  Lines       54865   54865
======================================
  Hits         4073    4073
  Misses      50413   50413
  Partials      379     379

Flag
Coverage Δ

#aFlag
7.42% <0%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/compute/models/guest_actions.go
0% <0%> (ø)
: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 728fd26...959ce29. Read the comment docs.

/lgtm
/approve


Add preload=auto so that firefox begins loading crossorigin videos

Without this, Firefox (mac, 46.0) doesn't actually load the crossorigin video so the canPlayThrough event never fires.

I signed it

Obsolete as of VR View 2.0


Add shutdownTrigger for registration engine

Hello,
If the procedure inside of ClientInitiatedBootstrapTask, UpdateRegistrationTask, and/or RegistrationTask raises an unexpected exception, that exception caught by a catch clause and it logs that, but that task never works after caught and unfortunately the process still alive.
For example, if registerWithRetry() that is in RegistrationTask#run() raises a RuntimeException, that task never scheduled anymore.
This behavior makes a little bit hard to implement a robust LwM2M client. I think it would be better to exit when it falls an unexpected situation, as like as "let it crash".
So this patch introduces the shutdownTrigger mechanism to shut down the client when an unexpected exception occurred. shutdownTrigger is an implementation of Runnable, so the user can hand over the user-defined shutdown procedure to the registration engine.

I'm sorry, I had to make an issue at first instead of pull-request. I opened issue #933, so I close this pull-request for now.

No problem, I just have time to look at this when you open the PR, after I must confess that I forget you :grimacing:


Trapping exception from config serialization

The Serialization of the config can through an exception due to
'Input string is not in the proper format'.  When the exception
is thrown the CT thread stops and the _configQueue grows without
bound.

There were no unit tests for this method, and I wasn't sure how to set them up.  Also, I did the most naive fix by wrapping the serialization, you may want to do something different.

closing in favor of internal patch.


[Regression] Resolving metadata fails when referencing a C++/WinRT project from a C# UWP project

Original issue opened by @matthew4850 in https://github.com/dotnet/msbuild/issues/5412
Since CppWinRT nuget version 2.0.191023.3, generating the appxbundle of C# UWP project consuming a CppWinRT component fails because of a Metadata file [path] could not be found error.
See https://github.com/dotnet/msbuild/issues/5412 for further details and a sample solution to repro the issue.
Note: here are the results using different releases of CppWinRT nuget:

CppWinRT nuget release
Issue does repro?

Microsoft.Windows.CppWinRT.2.0.191018.6
No

Microsoft.Windows.CppWinRT.2.0.191023.3
Yes

Microsoft.Windows.CppWinRT.2.0.200316.3
Yes

Microsoft.Windows.CppWinRT.2.0.201113.7(current latest release)
Yes

Thanks Julien, unfortunately I don't have any experience with msbuild. Build and package management with msbuild/nuget has been a longstanding problem. I recently reverted all the changes to msbuild support in an attempt to stabilize a bit. If someone from the msbuild team would like to contribute a fix I'd be happy to look at it. Otherwise, there isn't much I can do. @jlaanstra is trying to fix things but that's not his day job either and without serious review by the msbuild team I'm not sure we can accept that either.

@jbrianceau I am currently using:

CppWinRT project (compile for desktop removing <AppContainerApplication>false</AppContainerApplication>): version 2.0.201113.7
Projection assembly (.NET 5.0) using Microsoft.Windows.CsWinRT version 1.1.0
C# Console client (.NET 5.0)

This solution compile and works correctly.

For the record, fix is available in the Microsoft.Windows.CppWinRT.2.0.201217.4 nuget release.


vCard UID -- belongs to a card representation?

https://tools.ietf.org/html/rfc6350#section-6.7.6 says for the  'UID':

Purpose:  To specify a value that represents a globally unique identifier corresponding to the entity associated with the vCard.

Shouldn't that imply an vCard imported from another source already having a UID would hold the same UID in the system which imports that card. So always and on all card systems a specific card would have the same (unchanged) UID.
AFAIS fruux changes the UID for a card with importing. Checked with exporting from fruux and compared with the one which was imported.

Hi @neandr ,
This doesn't sound right. We set UID's, but only for the cards that don't already have one. I agree that vCard UID's should be stable.

Scrap that, it turns out we do reset them. I don't know why we originally did that. A normal (non-import) does do this correctly. I feel that we may have added this because people were doing the same import multiple times and this avoids problems with that.
The regular PUT requests does maintain the UID (if it's set). Since this is a fruux bug, it doesn't really belong here though. Not sure what we should do about it. This repository is more about sabre/dav and general caldav/carddav issues. Maybe @DominikTo has an opinion?

The hunch @evert had is correct, fruux sets new UIDs on purpose to deal with problems when people are doing the same import multiple times.


Understanding move to Extensions Registry?

I'm trying to understand why the utils registry went from the array looking system to a strict 'register/deregister' methods?
Viewing the register as an array of items, with the semantics for appending (to lowest priority), deleting (with del), replacing and iterating seemed very pythonic.  The add() function did have its wart of the '>other_filter' syntax; it seems to want keyword only before and after arguments.   In contrast the register() argument seems to require separate calls to determine the priority or just hardcoding numbers after reading the markdown source.
I feel like I'm missing something.   If it just code issues, would you welcome a pull request?

This was discussed extensively in #418 and #688. I think the title of #688 sums up the primary motivation for the change. We also discuss some of the problems with using before and after. In the end, hardcoding numbers provide way more flexibility. I wouldn't ever want to go back.


[Enhancement] common components + functional test list for use cases

Codecov Report

Merging #912 into feature/review_and_confirm will increase coverage by <.01%.
The diff coverage is 25.78%.

@@                      Coverage Diff                       @@
##           feature/review_and_confirm     #912      +/-   ##
==============================================================
+ Coverage                       30.37%   30.38%   +<.01%
==============================================================
  Files                             364      367       +3
  Lines                           17961    17953       -8
  Branches                         1611     1610       -1
==============================================================
- Hits                             5456     5455       -1
+ Misses                          11852    11845       -7
  Partials                          653      653

Impacted Files
Coverage Δ

...rcadopago/paymentresult/PaymentResultActivity.java
0% <ø> (ø)
:arrow_up:

...in/java/com/mercadopago/components/ButtonLink.java
0% <0%> (ø)

...go/plugins/components/BusinessPaymentRenderer.java
0% <0%> (ø)
:arrow_up:

...aymentresult/components/PaymentResultRenderer.java
0% <0%> (ø)
:arrow_up:

...dopago/paymentresult/components/LineSeparator.java
0% <0%> (ø)

...d_confirm/components/ReviewAndConfirmRenderer.java
0% <0%> (ø)
:arrow_up:

...mentresult/components/FooterContainerRenderer.java
0% <0%> (ø)
:arrow_up:

...java/com/mercadopago/components/ButtonPrimary.java
0% <0%> (ø)

...com/mercadopago/plugins/model/BusinessPayment.java
0% <0%> (ø)
:arrow_up:

...a/com/mercadopago/components/CompactComponent.java
28.57% <0%> (ø)

... and 14 more

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 146e147...f0dc4c2. Read the comment docs.


c99 callbacks broken in windows x64 & ARM

The function pointers are declared as __stdcall with no this argument, which works on win32 because class member functions are called using __thiscall which shoves the this pointer into a register while the other arguments get put on the stack like __stdcall.
However, in Windows x64 and ARM "__stdcall is accepted and ignored by the compiler [visual studio]; on ARM and x64 architectures, by convention, arguments are passed in registers when possible, and subsequent arguments are passed on the stack" (MSDN). So the __stdcall declaration for the callback function pointers has no effect, and this is passed in as the first argument, which shifts all the arguments over by one position.
This could be solved by adding some more cases to that preprocessor block to add back an explicit this argument to the callback functions in win64/arm, but in general I think the approach of reinterpret casting a C struct into a C++ class is brittle and the better solution is to create a proper wrapper class around the function pointers like so:
https://github.com/PyryM/bgfx/tree/c99-callback-fix

Your adapter seems better solution. But it still needs to pass this argument since it might be needed for some user data.

Also it seems your fix leaks memory, since callbacks get initialized but not destroyed.

Yeah, I know. That's why I didn't actually submit a pull request. :-)
The easiest solution would be for bgfx to keep one static adaptor around--
is it possible to have bgfx initted more than once at the same time?
On Jun 9, 2015 10:21 PM, "Branimir Karadžić"<EMAIL_ADDRESS>wrote:

Also it seems your fix leaks memory, since callbacks get initialized but
not destroyed.
—
Reply to this email directly or view it on GitHub
https://github.com/bkaradzic/bgfx/issues/429#issuecomment-110560769.

Ok check my fix.

That works, thanks.


How do I change the time zone of prometheus, please

Is it configured in prometheus.yml ?

Prometheus always keep data in UTC timezone.
However, you can use timezone-related settings in Grafana.

@AndorCS The time zone of Grafana can be set, but it is inconvenient to view. It is more flexible and convenient to check on Prometheus.

It is more flexible and convenient to check on Prometheus.

Check what? What exactly are you trying to do when you need timezones?

It is more flexible and convenient to check on Prometheus.

Check what? What exactly are you trying to do when you need timezones?

For example, I want to see the data of an index, (such as ((sum by(pod_name) (rate(container_network_receive_bytes_total{pod_name="alertmanager-wechat-5b665cdbc7-bbsqx"}[1m]))) / 1024) .)
On the graph of Prometheus, I can quickly get the historical data of the index, which is very flexible.

This is dupe of #500 See https://prometheus.io/docs/introduction/faq/#can-i-change-the-timezone?-why-is-everything-in-utc? for reasoning.

This is dupe of #500 See https://prometheus.io/docs/introduction/faq/#can-i-change-the-timezone?-why-is-everything-in-utc? for reasoning.

thx


Libvirt appears to be treating our instance UUID as a libvirt UUID

They're different...
Oct  7 21:31:43 sfci-tpcecl sh[22086]: libvirt: QEMU Driver error : Domain not found: no domain with matching uuid '308c120d-ac56-4535-a7dd-d90f006c7b8a' (sf:308c120d-ac56-4535-a7dd-d90f006c7b8a)
Oct  7 21:31:43 sfci-tpcecl sh[22086]: libvirt: QEMU Driver error : Domain not found: no domain with matching uuid '308c120d-ac56-4535-a7dd-d90f006c7b8a' (sf:308c120d-ac56-4535-a7dd-d90f006c7b8a)
Oct  7 21:31:43 sfci-tpcecl INFO sf-queues-1602106288.1677623-000[31368] Finish delete netns; duration=0.009617328643798828; network=eedfe72d-a15c-4cb5-ad69-3965c0333d13
Oct  7 21:31:43 sfci-tpcecl ERROR sf-resources[22167] [Exception] Ignored error in resource statistics: Domain not found: no domain with matching uuid '308c120d-ac56-4535-a7dd-d90f006c7b8a' (sf:308c120d-ac56-4535-a7dd-d90f006c7b8a)
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/shakenfist/daemons/resources.py", line 171, in run
    update_metrics()
  File "/usr/local/lib/python3.6/dist-packages/shakenfist/daemons/resources.py", line 155, in update_metrics
    stats = _get_stats()
  File "/usr/local/lib/python3.6/dist-packages/shakenfist/daemons/resources.py", line 102, in _get_stats
    _, maxmem, mem, cpus, cpu_time = guest.info()
  File "/usr/lib/python3/dist-packages/libvirt.py", line 1320, in info
    if ret is None: raise libvirtError ('virDomainGetInfo() failed', dom=self)
libvirt.libvirtError: Domain not found: no domain with matching uuid '308c120d-ac56-4535-a7dd-d90f006c7b8a' (sf:308c120d-ac56-4535-a7dd-d90f006c7b8a)

This instance had already been deleted, so this might be a race condition? https://jenkins.shakenfist.com/job/shakenfist/job/stabilise-ci/11/execution/node/28/log/?consoleFull is the relevant log.

Haven't seen this one in ages.


Scene: change options to required

Even though i know :

Generally, a scene is not created directly.

in the Scene.js：
function Scene(options) {
  options = defaultValue(options, defaultValue.EMPTY_OBJECT);
  ...
}

Cesium.d.ts
export class Scene {
    constructor(options?: {
        canvas: HTMLCanvasElement;
        ...
    )
}

But if you really do
var scene = new Cesium.Scene();

Throws:
DeveloperError : options and options.canvas are required.

Emm...
I think that is not a good type description.
So:
- * @param {Object} [options] Object with the following properties:
+ * @param {Object} options Object with the following properties:

Thanks for the pull request @puxiao!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

@puxiao Thanks for the pull request. I think this is a fine change, especially since options.canvas was already required per the JS docs. It looks like the Cesium build fails because we now have a broken Scene constructor call in Specs/Typescript/index.ts -
https://github.com/CesiumGS/cesium/blob/61876fb494c0783a6f688937b02504ec2032904d/Specs/TypeScript/index.ts#L157.
I wonder if the best fix is to do something like:
let canvasElement = document.createElement("canvas");
dataSource = new KmlDataSource({
  canvas: canvasElement,
  camera: new Camera(new Scene({ canvas: canvasElement })),
});

@mramato does that seem fine here?

@ebogo1 yes, if that gets it to bass then you're golden. This was just an oversight when we originally wrote that smokescreen (probably because the TS definition was wrong to begin with!)  Thanks @puxiao!

What should I do next ?
Go to modify Specs/TypeScript/index.ts ?

@puxiao Yes please; I believe the fix I suggested will fix the build issues. Thanks.


gcov cannot find source files

Dear every body,
I want ask you about error "gcov cannot find source files" (urgent).
Can you feedback me soon, please?
I have unit_test folder is created by ceedling.
/src: include .so library, not include .h, .c files. These .so files were compiled by gcc for app/src.
/test: include test files.
In the project.yml file, I configured below:
:include:
- ../../app/inc/**
//inc folder is not in unit test, inc folder include .h files.
//src folder is not in unit test, src folder include .c files.
I can type 'ceedling clobber', 'ceedling' to build unit test well.
But when i use gcovr -r . (in app/src/.gcno; app/src/.gcda; app/src/.o; app/src/.c), result report is 0%.
But when i use gcov -b -l -p -c *.gcno, i have error "gcov cannot find source files".
Can you tell me about solutions to fix that bug, please?
Thank you so much!

Add more information,
If I use lcov to generate html report from .gnco, .gcda files, i have problem which is  "WARNING: cannot find an entry for...(file .c)".

Do you have - gcov in plugins -> enabled?

Do you have - gcov added to project.yml under plugins enabled?

Yes, I do.
Below is config for - gcov:
:gcov_post_report:
:executable: gcovr
:optional: FALSE
:arguments:
# Exclude directories from search path that match this regular expression.
- --exclude-directories='^.launches.|^.settings.|^asm.|^debug.|^doc.|^inc.|^src.|^targetConfigs.|^test.|^test-build.|^tools.|^vendor.'
# Generate HTML output for source file coverage
- --html-details
# Print output to this filename. Used with --html-details results in ..html
- -r .
- -o test-build/artifacts/gcov/coverage.html
:plugins:
:load_paths:
- vendor/ceedling/plugins
:enabled:
- stdout_pretty_tests_report
- stdout_gtestlike_tests_report
- module_generator
- raw_output_report
- gcov

Hi,
I do not know exactly, but do you run gcc and gcov from the same directory, like it is mentioned in gcov documentation?

gcov should be run with the current directory the same as that when you invoked the compiler. Otherwise it will not be able to locate the source files. gcov produces files called mangledname.gcov in the current directory.

Dear every body,
I think root cause  of "gcov cannot find source files" issue is duplicate header file in paths.
So, Ceedling can't understand what is true path.
You can remove paths which are duplicated.
You can check duplicate header file via command:
ceedling files:header | grep "your_header_name.h"


Fix defaultProps detection when ObjectExpression

defaultProps defined as objects in React.CreateClass were
not being recorded causing false positives. Added test
case. Added corresponding ES6 version test as none was present.

whoops, the bug was in my understanding of how defaultProps works in React.CreateClass


[SPARK-34394][SQL] Unify output of SHOW FUNCTIONS and pass output attributes properly

What changes were proposed in this pull request?
The current implement of some DDL not unify the output and not pass the output properly to physical command.
Such as: The output attributes of ShowFunctions does't pass to ShowFunctionsCommand properly.
As the query plan, this PR pass the output attributes from ShowFunctions to ShowFunctionsCommand.
Why are the changes needed?
This PR pass the output attributes could keep the expr ID unchanged, so that avoid bugs when we apply more operators above the command output dataframe.
Does this PR introduce any user-facing change?
'No'.
How was this patch tested?
Jenkins test.

Test build #135010 has started for PR 31519 at commit a980eb4.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39593/

Test build #135010 has finished for PR 31519 at commit a980eb4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/135010/

cc @cloud-fan

thanks, merging to master!

@cloud-fan Thanks for your work!


Create CODEOWNERS

This PR adds a CODEOWNERS file assigning the repository to @guardian/content-platforms. This is primarily to keep track of which repositories our team maintains.
GitHub will also automatically add this team as a reviewer if a PR is made on this repo.

Because if we won't own it, who will?


TransferManager: any plans for supporting resumable download (across sessions)?

Are there any plans for TransferManager (or any other part of the S3 library) to support resumable downloads?
I don't mean pause/resume in same session, I mean for the case that a (multi-part) download is in progress... network or power outage happens... then a new session later comes along requesting to download the same resource (for which there is still a partial download file stored locally). If I have 3.9GB of a 4.0GB file stored locally before an outage, it hurts pretty bad to start back at byte 0.

To be clear, do you want to do a in process resume or resume after restart of your service? The later one would be tedious since you'll have to maintain the download status in a file.

I suppose I'm talking about a restart scenario -- that's what I tried to describe with not in the same session; there would be no in-memory state persistence.

I think that is a very interesting feature request, and I appreciate you sharing your suggestion. We regularly review suggestions like these to help prioritize what features we add to the SDK. But currently there are no plans to expand the S3 transfer manager with resumable downloads.


Remove links from topics in edit mode

Fixes #4992
Now topic labels are not clickable in edit mode (previously they redirected to search page even when clicking close button next to them, now they don't)

Codecov Report

Merging #5026 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #5026      +/-   ##
=========================================
- Coverage   37.41%   37.4%   -0.01%
=========================================
  Files         306     306
  Lines       45374   45374
=========================================
- Hits        16975   16972       -3
- Misses      25945   25947       +2
- Partials     2454    2455       +1

Impacted Files
Coverage Δ

modules/process/manager.go
76.81% <0%> (-4.35%)
:arrow_down:

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 378af8e...57516ce. Read the comment docs.

But then on non-edit mode, click topic will not redirect to search page.

No, in non-edit mode it works as before (they are output in different parts of template)


Reorder date fields in tasks

CO determination, New Collection Object, new extract

Codecov Report

Merging #2450 (c2f6ba1) into development (a921521) will decrease coverage by 21.68%.
The diff coverage is n/a.

@@               Coverage Diff                @@
##           development    #2450       +/-   ##
================================================
- Coverage        87.64%   65.95%   -21.69%
================================================
  Files             1809     1324      -485
  Lines            62628    36362    -26266
================================================
- Hits             54888    23984    -30904
- Misses            7740    12378     +4638

Impacted Files
Coverage Δ

spec/support/concerns/random_token_methods.rb
2.63% <0.00%> (-97.37%)
:arrow_down:

spec/support/concerns/request/api.rb
11.11% <0.00%> (-88.89%)
:arrow_down:

app/models/identifier/global/issn.rb
14.28% <0.00%> (-85.72%)
:arrow_down:

app/models/identifier/global/isbn.rb
8.33% <0.00%> (-85.42%)
:arrow_down:

app/models/protonym/becomes.rb
16.43% <0.00%> (-79.46%)
:arrow_down:

lib/catalog/description_from_observation_matrix.rb
13.22% <0.00%> (-78.10%)
:arrow_down:

app/models/identifier/global/orcid.rb
22.22% <0.00%> (-77.78%)
:arrow_down:

app/models/identifier/global/lccn.rb
11.53% <0.00%> (-76.93%)
:arrow_down:

lib/batch_load/import/otus.rb
24.24% <0.00%> (-75.76%)
:arrow_down:

app/models/geographic_item/geometry_collection.rb
20.58% <0.00%> (-73.53%)
:arrow_down:

... and 988 more

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 a921521...c2f6ba1. Read the comment docs.


Initial Documentation

I started working on our documentation. Currently there are our diagrams and most the content of the power point document. I'd suggest we try to get this incomplete version of the documentation on the main branch and fill it then with targeted pull requests, which document only one topic.
Like this we are able to discuss and improve each topic separately. A multi purpose documentation pull request is probably not a good idea.
Things we should still discuss are

documentation structure
content of the documentation already added

Dominik Pinsel<EMAIL_ADDRESS>Daimler TSS GmbH, legal info/Impressum

I removed some of the documentation text. Like this it should be less prone to dicsussion and can be merged more easily.

The following changes and improvements are suggested:
* Replace the section name “Preface” with “Overview”.

* Add top level section “Core Framework”. Move sections “Contracts” and “Data Transfer” as subsections below “Core Framework”.

* Add top level section “Development of Extensions”. Instead of the generic term “Use Cases”, add more specific section names below “Development of Extensions”, e.g., “Data Offering”, “Contract Templating”, etc.

* Add top level sections “Installation”, “Configuration”, and “Troubleshooting”.

* The document Agenda.md seems to be more related to the development process than to the documentation of the result and should be moved.

Hello Alexandru,
thanks a lot for your feedback. I made the following adjustments

Replace the section name “Preface” with “Overview”.

That sounds really better. Done.

Add top level section “Core Framework”. Move sections “Contracts” and “Data Transfer” as subsections below “Core Framework”

Great idea to document all the core components. I named the top level section "Core Extensions".  I hope this name is also fine.

Add top level section “Development of Extensions”. Instead of the generic term “Use Cases”, add more specific section names below “Development of Extensions”, e.g., “Data Offering”, “Contract Templating”, etc.

You are correct that we need this documented, but that's not what I meant when I added use cases. I see now that the section there is probably just confusing and removed it. Hope this is also fine.

Add top level sections “Installation”, “Configuration”, and “Troubleshooting”.

Yea, we are missing these. Done.

The document Agenda.md seems to be more related to the development process than to the documentation of the result and should be moved.

Yea. This is probably not something we want on the main branch. I removed the file and will make issues in the repository here for the stuff mentioned there.
Are you fine with this?

The following improvements are proposed:
The structure of the sections on the architecture could be perceived as inconsistent:

In Readme.md: Section “Architecture” consisting of subsection “Core Extensions”
In Architecture.md: Section “Architecture” consisting of subsection “Runtime and Extensions”
A solution would be to move “Core Extensions” in the Readme.md one level up (which maybe was already intended).

Currently, we are using both the terms “Core Extension” and “Extension”. This could suggest, there are multiple types of extensions (core and non-core). I propose the following two alternatives:

To only refer to “Extensions” (which implies that the existing core is extended).
To distinguish between “Core Extensions” and “IDS Extensions”, as there is a dedicated IDS SPI layer.

The section “Installation” is missing. If it was intended, then it probably was forgotten.

@alexandrudanciu
You are right, I totally forgot the installation section. I've added it to the README.md.
Now that you've said it I also see that there is not something like a core extension. I just assumed it because there are some "more important" extensions in the core folder. But it's definatelly wrong to just introduce the term like this.
As I think there are still some extension discussions still ongoing, maybe it's again an idea to just remove these sections for now from the README.md (Core Extensions, Contracts & Data Transfer). I also removed the core-extension and how-to directory.

think we should add a disclaimer like this "docs is work in progress, all content reflect the current state of discussion, not final decisions" to the README.md under docs


Add Drawer and Fix Navbar

Authors:
What does this PR contain?
How did you test these changes?
Attach images (if applicable)
Closes #24

hello, please take a look at the figma that was made just now here: https://www.figma.com/file/7eBxLZEstTe8Gtuo2Rduio/Dev-Ready-Components?node-id=404%3A3852&t=u7rkh68GJWTZ8J15-0
also if you can make the buttons on the navbar a bit smaller cuz some of them r massive in mobile view. that would really help!


Qhc 802 update qblox cluster firmware to 092 latest

This PR updates the version of qblox-instruments to latest and changes all references to the QcmQrm to the new generic Module as qblox has made this changes in the library.

Also, deprecations need to be fixed. I found the following, we should do some tests with oscilloscope before merging, just to be sure:
All deprecations: https://docs.qblox.com/en/main/getting_started/deprecated.html#deprecated
https://docs.qblox.com/en/main/getting_started/whats_new.html#deprecations

Will work on these. I has been talking to Adrián on how to test this on the oscilloscope as we will need to do special setup for some of the cluster modules.


explain the chain rule?

In Bayesian Networks (the first meaty chapter),

Recall that by the chain rule, we can write any probability pp as...

Search Probability review for definition of the chain rule - nothing.
Search any earlier chapter for mention of the chain rule - nothing.

good catch! thanks!


fix: rating to use db primary key

Updated the Rating model to spec and match the database schema

asdfadsf

LGTM!


Rewrite RenderWindow::capture

Implements what was discussed here: http://en.sfml-dev.org/forums/index.php?topic=19260.0

It makes this function look rather useless now. It would be more efficient for users to have their texture and just call update + copyToImage whenever they want to capture the window :stuck_out_tongue:
More seriously, is the performance improvement something that we're sure of? On all kind of platforms/drivers?

Old (Release) [µs]:

New (Release) [µs]:

Code used:
#include <SFML/Graphics.hpp>
#include <iostream>
#include <vector>

int main()
{
    sf::RenderWindow window({1024, 768}, "Test");
    window.setFramerateLimit(60);

    sf::Clock cl;
    std::vector<sf::Time> times;

    while(window.isOpen())
    {
        sf::Event event;
        while(window.pollEvent(event))
        {
            if(event.type == sf::Event::Closed)
            {
                window.close();
            }
            else if(event.type == sf::Event::KeyPressed)
            {
                if(event.key.code == sf::Keyboard::Escape)
                {
                    double average = 0.;
                    for(auto t : times)
                        average += t.asMicroseconds();
                    average /= times.size();
                    std::cout << "AVG: " << average << "\n";
                }
                else
                {
                    cl.restart();
                    sf::Image img = window.capture();
                    sf::Time time = cl.getElapsedTime();
                    times.push_back(time);
                    std::cout << time.asMicroseconds() << "\n";
                }
            }
        }

        window.clear();
        window.display();
    }
}

On all kind of platforms/drivers?

Feel free to test on all the other platforms and drivers...

Feel free to test on all the other platforms and drivers...

That's not what I meant. The question was more "is this a known technique that we can rely on, or something that we're trying".

Speed up: 1383%

That's huge! :smiley:
Would be interesting to run the same test, but with a pre-allocated texture and just calling update + copyToImage in the loop. If there is a significant difference, maybe we could just deprecate the function and advise to use Texture::update directly?

is this a known technique that we can rely on, or something that we're trying

Why shouldn't it be?

maybe we could just deprecate the function and advise to use Texture::update directly?

If we deprecate the function, I'd still change the implementation, nobody will lose anything.

we should not merge this until it is tested properly on mobile platforms, where Texture::copyToImage is implemented differently.

The mobile platforms are still experimental. Sure it's nice if we can test the change as soon as possible, but it should not be a reason to hold back the merge.

If we deprecate the function, I'd still change the implementation, nobody will lose anything.

:+1:

Mark it as deprecated?

[ ] Yes
[ ] No

[X] Yes
[ ] No

:+1:

Rebased onto master and added SFML_DEPRECATED.

You should add the \deprecated to the header documentation and briefly explain what to use instead.

Fixed.

Android 6.0 - armeabi-v7a - Nexus 5
Avg. master: 718866
Avg. feature/capture: 173961

Has anybody checked whether compilers are able to apply RVO here?
I'm asking because there are still quite a few lines of code necessary to achieve the same behavior as RenderWindow::capture(), and quite a few error sources (like forgetting to set the size before calling update()). If we reduce the usability of taking screenshots, we should not deprecate this function in my opinion.

Has anybody checked whether compilers are able to apply RVO here?

Even if they do, there's still the unnecessary creation of a texture every time the function is called.
And if they don't, it will be "fixed" in SFML 3 when sf::Image supports move semantics.

there are still quite a few lines of code necessary to achieve the same behavior as RenderWindow::capture()

Two lines of code, plus one other in the Resized event handler. If someone requested a new functon to replace 3 lines of user code, I think we all know what the answer would be ;)
If we keep this function, people will just use it and never wonder if they can do something better themselves. And everytime someone asks on the forum about the most efficient way to take a screenshot, we'll say "don't use capture(), use this code instead".
If we deprecate it, the most efficient code will be clearly mentioned in the doc and tutorials, and people will quickly get used to it without being confused by this capture() function.

Two lines of code, plus one other in the Resized event handler. If someone requested a new functon to replace 3 lines of user code, I think we all know what the answer would be ;)

It's more than that. The user has to keep both a sf::Image and sf::Texture instance around, react to events and know how 3 classes interact. It's not a big deal, but still rather complicated for somebody who may only be interested in taking a screenshot once :wink:
And I still don't know about the setActive() call. Is it needed for correctness? If not, why does capture() have it?

On the other hand, if we deprecate it, the most efficient code will be clearly mentioned in the doc and tutorials and FAQ, and people will quickly get used to it without being confused by this capture() function.

If we clearly document it, okay. I think we should even include such a code in the RenderWindow::capture() documentation, to make the transition easier.

The user has to keep both a sf::Image and sf::Texture instance around

Just the texture.

react to Resized events

He can also compare the size every time he takes a screenshot, so all the code is kept at the same place and doesn't involve events.

and know how 3 classes interact

He just needs to know 2 functions, which are (or will be, if not) properly documented and explained in the tutorials.

And I still don't know about the setActive() call. Is it needed for correctness? If not, why does capture() have it?

setActive is only needed for raw OpenGL calls. So it's not needed anymore with the new implementation (Texture::update correctly calls it).

If we clearly document it, okay. I think we should even include such a code in the RenderWindow::capture() documentation, to make the transition easier.

:+1:

:+1: if we add some transition code to the deprecated function's documentation. And so we can remove setActive() from this PR, right?

And so we can remove setActive() from this PR, right?

Yes, unless I'm missing something.

Fixed.

Looks good!

Ignore the build failure for OS X... I'll have to look into why it fails but it's most certainly not related to this PR.
:+1:

This PR has been added to my merge list, meaning it will be merged soon, unless someone raises any concerns.


Operator is not able to push builder image to the internal registry (OpenShift cluster)

I have OpenShift cluster and I am testing Camel-K 2.0 nightly build. I would like to use OCP internal registry. I install Camel-K operator with the followngn command
 kamel install --olm=false --maven-repository=https://repository.apache.org/content/repositories/snapshots@id=apache-snapshots@snapshots --operator-image docker.io/testcamelk/camel-k:2.0.0-nightly
Created IntegrationPlatform is
apiVersion: camel.apache.org/v1
kind: IntegrationPlatform
metadata:
  annotations:
    camel.apache.org/operator.id: camel-k
  creationTimestamp: "2023-04-27T15:59:58Z"
  generation: 1
  labels:
    app: camel-k
  name: camel-k
  namespace: test
  resourceVersion: "76135016"
  uid: 7ecf1ee9-bd47-4c3c-abaf-db66585801e9
spec:
  build:
    maven:
      settings:
        configMapKeyRef:
          key: settings.xml
          name: camel-k-maven-settings
      settingsSecurity: {}
    registry: {}
  kamelet: {}
  traits: {}
status:
  build:
    PublishStrategyOptions:
      KanikoPersistentVolumeClaim: camel-k
    baseImage: docker.io/eclipse-temurin:11
    buildCatalogToolTimeout: 1m0s
    buildStrategy: pod
    maven:
      cliOptions:
      - -V
      - --no-transfer-progress
      - -Dstyle.color=never
      localRepository: /etc/maven/m2
      settings:
        configMapKeyRef:
          key: settings.xml
          name: camel-k-maven-settings
    publishStrategy: S2I
    runtimeVersion: 3.20.1-SNAPSHOT
    timeout: 5m0s
  cluster: OpenShift
  conditions:
  - lastTransitionTime: "2023-04-27T16:00:01Z"
    lastUpdateTime: "2023-04-27T16:00:01Z"
    message: integration platform created
    reason: IntegrationPlatformCreated
    status: "True"
    type: Ready
  info:
    gitCommit: 1ff6dc40829ca1c200a11d2cb4a07ec376ae4b8d
    goOS: linux
    goVersion: go1.18.10
  kamelet:
    repositories:
    - uri: none
  observedGeneration: 1
  phase: Ready
  version: 2.0.0-nightly

but the operator is not able to push the builder image
- apiVersion: camel.apache.org/v1
  kind: IntegrationPlatform
  metadata:
    annotations:
      camel.apache.org/operator.id: camel-k
    creationTimestamp: "2023-04-27T15:59:58Z"
    generation: 1
    labels:
      app: camel-k
    name: camel-k
    namespace: test
    resourceVersion: "76135016"
    uid: 7ecf1ee9-bd47-4c3c-abaf-db66585801e9
  spec:
    build:
      maven:
        settings:
          configMapKeyRef:
            key: settings.xml
            name: camel-k-maven-settings
        settingsSecurity: {}
      registry: {}
    kamelet: {}
    traits: {}
  status:
    build:
      PublishStrategyOptions:
        KanikoPersistentVolumeClaim: camel-k
      baseImage: docker.io/eclipse-temurin:11
      buildCatalogToolTimeout: 1m0s
      buildStrategy: pod
      maven:
        cliOptions:
        - -V
        - --no-transfer-progress
        - -Dstyle.color=never
        localRepository: /etc/maven/m2
        settings:
          configMapKeyRef:
            key: settings.xml
            name: camel-k-maven-settings
      publishStrategy: S2I
      runtimeVersion: 3.20.1-SNAPSHOT
      timeout: 5m0s
    cluster: OpenShift
    conditions:
    - lastTransitionTime: "2023-04-27T16:00:01Z"
      lastUpdateTime: "2023-04-27T16:00:01Z"
      message: integration platform created
      reason: IntegrationPlatformCreated
      status: "True"
      type: Ready
    info:
      gitCommit: 1ff6dc40829ca1c200a11d2cb4a07ec376ae4b8d
      goOS: linux
      goVersion: go1.18.10
    kamelet:
      repositories:
      - uri: none
    observedGeneration: 1
    phase: Ready
    version: 2.0.0-nightly
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""
➜  camel-k git:(config_ids) ✗ oc get IntegrationPlatform camel-k -o yaml
apiVersion: camel.apache.org/v1
kind: IntegrationPlatform
metadata:
  annotations:
    camel.apache.org/operator.id: camel-k
  creationTimestamp: "2023-04-27T15:59:58Z"
  generation: 1
  labels:
    app: camel-k
  name: camel-k
  namespace: test
  resourceVersion: "76135016"
  uid: 7ecf1ee9-bd47-4c3c-abaf-db66585801e9
spec:
  build:
    maven:
      settings:
        configMapKeyRef:
          key: settings.xml
          name: camel-k-maven-settings
      settingsSecurity: {}
    registry: {}
  kamelet: {}
  traits: {}
status:
  build:
    PublishStrategyOptions:
      KanikoPersistentVolumeClaim: camel-k
    baseImage: docker.io/eclipse-temurin:11
    buildCatalogToolTimeout: 1m0s
    buildStrategy: pod
    maven:
      cliOptions:
      - -V
      - --no-transfer-progress
      - -Dstyle.color=never
      localRepository: /etc/maven/m2
      settings:
        configMapKeyRef:
          key: settings.xml
          name: camel-k-maven-settings
    publishStrategy: S2I
    runtimeVersion: 3.20.1-SNAPSHOT
    timeout: 5m0s
  cluster: OpenShift
  conditions:
  - lastTransitionTime: "2023-04-27T16:00:01Z"
    lastUpdateTime: "2023-04-27T16:00:01Z"
    message: integration platform created
    reason: IntegrationPlatformCreated
    status: "True"
    type: Ready
  info:
    gitCommit: 1ff6dc40829ca1c200a11d2cb4a07ec376ae4b8d
    goOS: linux
    goVersion: go1.18.10
  kamelet:
    repositories:
    - uri: none
  observedGeneration: 1
  phase: Ready
  version: 2.0.0-nightly
➜  camel-k git:(config_ids) ✗ oc get CamelCatalog -o yaml
apiVersion: v1
items:
- apiVersion: camel.apache.org/v1
  kind: CamelCatalog
  metadata:
    annotations:
      camel.apache.org/operator.id: camel-k
    creationTimestamp: "2023-04-27T16:00:01Z"
    generation: 1
    labels:
      app: camel-k
      camel.apache.org/catalog.loader.version: 3.20.1
      camel.apache.org/catalog.version: 3.20.1
      camel.apache.org/runtime.version: 3.20.1-SNAPSHOT
    name: camel-catalog-3.20.1-snapshot
    namespace: test
    resourceVersion: "76135454"
    uid: e74bbe32-44be-4020-92b2-7932b7721882
  spec:
    artifacts:
      camel-k-cron:
        artifactId: camel-k-cron
        groupId: org.apache.camel.k

      metadata:
        camel-quarkus.version: 2.16.0
        camel.version: 3.20.1
        quarkus.native-builder-image: quay.io/quarkus/ubi-quarkus-mandrel:<IP_ADDRESS>-Final-java11
        quarkus.version: 2.16.0.Final
      provider: quarkus
      version: 3.20.1-SNAPSHOT
  status:
    conditions:
    - lastTransitionTime: "2023-04-27T16:00:14Z"
      lastUpdateTime: "2023-04-27T16:00:14Z"
      message: |
        Head "https://index.docker.io/v2/camel-k-runtime-quarkus-builder/blobs/sha256:eab66ae1072584be15ec16ad61037111bc2770ba0c04a1443506c619d6663267": GET https://auth.docker.io/token?scope=repository%3A%2Fcamel-k-runtime-quarkus-builder%3Apush%2Cpull&scope=repository%3Acamel-k-runtime-quarkus-builder%3Apull&service=registry.docker.io: unexpected status code 400 Bad Request: {"details":"invalid repository name"}
      reason: Builder Image
      status: "False"
      type: Ready
    observedGeneration: 1
    phase: Error

I did a little digging and it seems that the Catalog initialize action is trying to get the registry from the IntegrationPlatform which is empty in my case. See https://github.com/apache/camel-k/blob/main/pkg/controller/catalog/initialize.go#L80-L85. It seems that the image name is resolved as /camel-k-runtime-quarkus-builder that is substituted as docker.io/camel-k-runtime-quarkus-builder

Thanks for reporting. Yes, we need to support S2I or any other Openshift way of building images, see https://github.com/apache/camel-k/blob/main/pkg/controller/catalog/initialize.go#L192

I would like to take care of adding the s2i (or any other openshift way) for the builder images generation.

I think we can close this issue @squakez . The other created does not prevent the feature from working.


Add ability to register/unregister via listener class

The neat thing about NSNotificationManager is that I can do this:
class ViewController: UIViewController {
    override func viewDidLoad() {
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "onNotification:", name: "Notification", object: nil)
    }

    deinit {
        NSNotificationCenter.defaultCenter().removeObserver(self, name: "Notification")
    }
}

Which, instead of providing an observer token, allows to unsubscribe by just specifying self. I really like this pattern because I don't have to store the observer token somewhere and unregister later using that token.
What I'd love to see is this:
NotificationObserver.register(self, notification: notification) { value, sender in
    // ...
}

NotificationObserver.unregister(self, notification: notification)

instead of
self.observer = NotificationObserver(notification: notification) { (value, sender) in
    // ...
}

// Somewhere else
observer = nil

What do you think about this pattern? Any chance it could be implemented easily?

Thanks @ldiqual ! :smile:
This would definitely work! But it feels like stylistic differences more than anything else.
The library's current design vs. your suggestion:

Both still require 2 calls to register/unregister
The library requires storing the observer, but your suggestion needs to store the notification

One benefit of the library's solution: if you forget to set the observer to nil, it would happen implicitly when it's owner is destroyed.
Stylistically, I prefer the observer / nil pattern. (Obviously :grin:)

If you wanted to do that, there'd be no point to this set of classes.  The main benefit to this, over NSNotificationCenter directly, is that you don't have to remember to unregister your observers.  If you want to explicitly unregister them, why use these classes at all, @ldiqual ?

Another great point from @grosch !
Going to close this out. :smile:

@jessesquires You don't have to keep a reference on the notification object if you want to unregister self from all notifications. So there's no equivalent of
notificationManager.removeObserver(self)

with this library. I use this pattern a lot because I don't have to store a reference to notification in self, and all I need to do is call removeObserver(self) in deinit.
@grosch I'd argue that the main benefit of JSQNotificationObserverKit is type-safety. Automatic unregistration is a plus, but quite frankly it seems more error prone to have something that unregisters automatically if you don't save a token or assign it to a weak property, than having an observer that you have to manually unregister.
Anyway, thanks for your comments! I understand that my proposal is not the architecture that was in mind during the creation of the library and that the pattern I use might not fit most usages. I'll probably go ahead with a custom solution to my issue (type safety, no token saving).


Include build folder as part of .gitignore

Fixes #44

What do you think about this change @lurch ? :)

I've got no comments to make on this one, but it's not up to me to decide which PRs get merged or not.

who is a good point of contact for this project?

Hello @kilograham what do you think about this PR? Not sure if you are a good point of contact for this repo :)


Fixed #25068, #23521 - Migration support for multi bases and metaclass.

Tickets:
https://code.djangoproject.com/ticket/25068
https://code.djangoproject.com/ticket/23521
Will add docs if this design gets approved.
Based on:
https://github.com/django/django/pull/13021
https://github.com/django/django/pull/13384
Thanks.

@felixxm Would appreciate your feedback here when you have time to review it :)
Added a test that tracks a change in the model metaclass as you suggested on #13384.

First check test failures: migrations.test_commands.MakeMigrationsTests.test_makemigrations_consistency_checks_respect_routers.

I just want to point something that might flew under the radar with regards to adding support for custom metaclasses.
As Markus pointed out 9 years ago this approach will break for any metaclass that adds field to models as they'll now be duplicated on model rendering.
As an example, if a TranslatedModelBase(ModelBase) adds a LANGUAGES specific variant for each fields except for the default language then for a settings.LANGUAGE_CODE = 'en'; settings.LANGUAGES = {"en", "fr"} we'd have the following model
class Article(models.Model, metaclass=TranslatedModelBase):
   title = models.CharField()
   content = models.TextField()

serialized as ModelState("Article", fields={"title": models.CharField(), "content": models.TextField(), "title_fr": models.CharField(), "content_fr": models.TextField()}).
If we start including the metaclass now TranslatedModelBase has no way to know that it's being re-rendered so rendering the model associated with
ModelState(
    "Article",
    fields={
        "title": models.CharField(),
        "content": models.TextField(),
        "title_fr": models.CharField(),
        "content_fr": models.TextField()
    },
    metaclass=TranslatedModelBase
)

Will create a model of the form
class Article(models.Model):
    title = models.CharField()
    content = models.TextField()
    title_fr = models.CharField()
    content_fr = models.TextField()
    title_fr_fr = models.CharField()
    content_fr_fr = models.CharField()

Which is what will ultimately be used to create the table as rendered models are used for this purpose.
All that to say that there are likely many BaseModel subclasses out there for third party apps that are going to broken by this change as they were not designed to take different actions when "re-rendered" against a model a definition they augmented already and are going to get picked up as AlterModelMetaclass the moment this is merged.
Note that the exact same thing can happen for non-abstract based tracking as well now that Python supports __init_subclasses__.
The tests provided with this PR do not capture this problem at all and would benefit from using realistic use cases of metaclass to at least decide how we'll direct users that are running into non-trivial problems with metaclasses that were not designed to be used in this manner.


Harder tests

@l3r8yJ the puzzle #8 is still not solved.

@l3r8yJ the puzzle #19 is still not solved; solved: #8.

@l3r8yJ the puzzle #99 is still not solved.


Bug: Pagination on Nodes View on Devtron Dashboard not working properly

📜 Description
Hi team i am seeing an issue with the devtron dashboard in case of multiple nodes with list of pages, if you try to switch to next page, it takes you to the pop go to resource manager
this is currently observed at nodes list, pods list is working good, the behavior goes into loop
👟 Reproduction steps
Have multiple nodes added to the cluster so pagination comes into affect, try browsing the next page, it goes to resource manager and back to the first page
👍 Expected behavior
pagination should work normally
👎 Actual Behavior
Hi team i am seeing an issue with the devtron dashboard in case of multiple nodes with list of pages, if you try to switch to next page, it takes you to the pop go to resource manager
this is currently observed at nodes list, pods list is working good, the behavior goes into loop
☸ Kubernetes version
eks 1.26.2
Cloud provider

AWS

🌍 Browser
Chrome
🧱 Your Environment
Developer
✅ Proposed Solution
Raised it on Discord server with the team
👀 Have you spent some time to check if this issue has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

AB#5853

Fixed by https://github.com/devtron-labs/dashboard/pull/1351


Unable to set a default font for Icons in theme

Description
I would like to set a default font for icons in my theme so I don't have to specify as={MaterialIcons} every time I use an Icon when using only one icon set. Other default properties can be specified but as seems to be a special exception for some reason.
CodeSandbox/Snack link
https://snack.expo.dev/47A_iMdvj
Steps to reproduce

Create a custom theme
Set defaultProps for Icon to as: <FontHere>
Render an icon with <Icon name="<icon name here> />
See icon won't render without specifying as

NativeBase Version
3.4.3
Platform

[X] Android
[ ] CRA
[ ] Expo
[X] iOS
[ ] Next

Other Platform
No response
Additional Information
You could probably use resolvedProps.as instead of props.as but I don't know know the implications of doing so.

Hello @Bendetta, Thanks for reporting this issue, we'll fix it soon!

Hi @Bendetta, This issue has been fixed in v3.4.6.

Thank you for the PR, it works! For those who wonder how to use it here is a small snippet.
import { MaterialCommunityIcons } from '@native-base/icons'

const theme = extendTheme({
    components: {
        Icon: {
            defaultProps: {
                as: MaterialCommunityIcons,
            },
        },
    },
})

// Usage
// Notice that there is no need to specify "as" prop
const back = () => <Icon size="lg" name="chevron-left" color="white" />

Be aware that this also upsets Typescript and you will get a following Typescript error when trying to set size prop of Icon.
Type 'string' is not assignable to type 'ThemeComponentSizeType<"Icon">'.ts(2322)
types.d.ts(18, 5): The expected type comes from property 'size' which is declared here on type 'IntrinsicAttributes & InterfaceIconProps & Partial<{}> & RefAttributes<unknown>'

This issue appers regardles of version 3.4.5 or 3.4.6.


auto import is not working in TypeScript.

code-server: v3.10.2
VS Code: v1.56.1
Commit: 387b12ef4ca404ffd39d84834e1f0776e9e3c005
Date: 2021-05-21T23:13:00Z
Browser: Mozilla/5.0 (iPad; CPU OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1
When I try to use external function, it doesn’t suggest me to import proper module.

@alexey1966 can you please redo your issue description and fill out the bug report? That way we can look into this.
Thanks!


Change transaction confirmation screen popup in TS actions #2026

Closes #2026

Will check. But Throttler sounds similar to RateLimiter.swift. Can you see if you can use it?

Will check. But Throttler sounds similar to RateLimiter.swift. Can you see if you can use it?

ok, shure.


Link organisation name

I noticed a mismatch between the live service and the prototype.
The prototype needs a link from the Support > Claims > Claim details view to the Support > Organisations > Organisation details view.

 As a support user when viewing claims it would be ideal if the school was had a clickable link to view the organisation details


Objective-C docs needs some SEO

@xster filed this on the website repo, https://github.com/flutter/website/issues/3631, but it belongs here.  From the original bug:
For instance, FlutterBinaryCodec isn't searcheable. https://www.google.com/search?q=flutterbinarycodec
Wonder if it being a frame in a page makes it worse.

Let me just add that I agree 1000%. This is also true for the Java docs on api.flutter.dev. But this is a non-trivial issue for the tooling team to address.
@tvolkert

Currently, I also can't find FlutterBinaryCodec result on Google as stated or on docs.flutter.dev (https://docs.flutter.dev/search?q=FlutterBinaryCodec).
It only can be found on Flutter GitHub repository search: https://github.com/search?q=repo%3Aflutter%2Fflutter FlutterBinaryCodec&type=code. Not sure which team can take this issue.

cc @gspencergoog

It's interesting, because https://www.google.com/search?q=FlutterCallbackCache returns the objc doc as the first hit, so at least the robots.txt file is correctly configured.
I'm not sure how we can optimize for the missing symbol above.  Perhaps it is because there is another class with the a similar name (BinaryCodec), and the search algorithm is splitting up the name into "Flutter Binary Codec" before returning results? The query https://www.google.com/search?q=Flutter+Binary+Codec indeed seems to return similar results, and the query https://www.google.com/search?q="flutterbinarycodec" returns the only page that contains the term as the first hit.
I think this is a result of the way that jazzy creates the docs for objective C, since the only result that includes FlutterBinaryCodec is on a page where the term only appears once unless you click on it to expand it.
The good news is that we've completely replaced Jazzy with docs generated by Doxygen, and the new iOS docs pages are organized completely differently, hopefully with better SEO.  Once those changes reach the stable channel where the robots.txt allows indexing, the results should be better.

The FlutterBinaryCodec page is now the 5th hit returned. I think adding links to the main API docs landing page and the Doxygen conversion have helped.  We can always improve the SEO more, but I think this specific issue is resolved.


Getting RGBA8 texture

Hello everybody,
can't understand how can I get usual RGBA8 data from the generator.
All generators output floats.
Documentation does not exist.
There is FastNoise::ConvertRGBA8 but it has float output.
Convert RGBA8 in NoiseTool GUI as well shows something veeery strange.
Can you please help & in future document it at least somehow ??

If you case the output of ConvertRGBA8 from float* to uint8* you will have the correct format. The noisetool does this internally for all the texture previews if you want a reference.
I'm currently working on better docs, I know it is lacking.

Great, works, thank you much!!


DuckDBDataReader.cs does not implement GetSchemaTable() method that causes DataTable.Loader(IDataReader) and Dapper's Query() method fail

Please add the followings to fix the issue. Thank you so much. (ref: https://github.com/mgravell/fast-member/blob/e7423b71d98fc0dd1d3a6eebf425fd987d5da56e/FastMember/ObjectReader.cs#L111)
public override DataTable GetSchemaTable() {     // these are the columns used by DataTable load     DataTable table = new DataTable     {         Columns =         {             {"ColumnOrdinal", typeof(int)},             {"ColumnName", typeof(string)},             {"DataType", typeof(Type)},             {"ColumnSize", typeof(int)},             {"AllowDBNull", typeof(bool)}         }     };     object[] rowData = new object[5];     for (int i = 0; i < FieldCount; i++)     {         rowData[0] = i;         rowData[1] = GetName(i);         rowData[2] = GetFieldType(i);         rowData[3] = -1;         rowData[4] = true;         table.Rows.Add(rowData);     }     return table; }

@erisonliang Want to send a PR?

I was looking for this feature too. Was the PR send/merged yet?

No, there is no PR for this feature.

Ok, just submitted one.

Implemented in #73. Thanks @mikeTWC1984


How to generate dense depth images from lidar point cloud?

Hello Wang:
@hlwang1124 I found that the generated dense depth image may influence the inference performance. Can you provide the dense depth image generation code for us? I try your method mentioned in #7. But it seems that generated result is different from your privided depth_u16 data. My EMAIL<EMAIL_ADDRESS>Thanks a lot!

Hi, @mei123hao . I will organize the code and send it to you.

Hi, @mei123hao . I will organize the code and send it to you.

Thanks a lot !

Hi, @mei123hao . I will organize the code and send it to you.

Hi Wang:
Have you sent the code to me? I still don't receive it?

Sorry that I am busy with other projects. I will send the code to you before the next weekend. Thanks for your understanding.

Hi Wang：
I am sorry to bother you again!! Have you sent me the code? It has past three weeks, I still don't receive your code?

Hi, @mei123hao . So sorry for the late response. I have sent the code to your email. Thanks for your understanding.

Hi, @mei123hao . So sorry for the late response. I have sent the code to your email. Thanks for your understanding.

Thank you very much!

Can you share the script generously，thanks.

Hi, @mei123hao . So sorry for the late response. I have sent the code to your email. Thanks for your understanding.

Thank you very much!

Can you share the script generously，thanks.

Hello @hlwang1124 and @mei123hao. I am also interested in the code for the depth map generation. Can one of you kindly email it to me also<EMAIL_ADDRESS>Thanks

@DaniloXiao Can you provide your email for me?
@rwhitley7 I have sent the code to your email.

Got it. Thank you so much

@DaniloXiao Can you provide your email for me?
@rwhitley7 I have sent the code to your email.
My email<EMAIL_ADDRESS>appreciate your help.

@DaniloXiao Got it!

hello! Can you share the script generously? thanks!
My email<EMAIL_ADDRESS>

Hi, @hlwang1124 . I also want the script. Can you share it with me? Thanks!
My email<EMAIL_ADDRESS>

Hi, @hlwang1124 . I also want the script. Can you share it with me? Thanks!
My email<EMAIL_ADDRESS>

Hello, @hlwang1124 So sorry to bother you, can you share it with me? Thank you very much~
This is my Email<EMAIL_ADDRESS>

Hi, @hlwang1124 Could you please share the script with me? I also want to learn about it. Thank you very much!
My email<EMAIL_ADDRESS>

Hi @hlwang1124, I'm interested in the script, too. Could you please share with me? Thanks a lot!
E-mail<EMAIL_ADDRESS>

Hi, @mei123hao . So sorry for the late response. I have sent the code to your email. Thanks for your understanding.

Thank you very much!

Hi, could share the script with me? Thank you<EMAIL_ADDRESS>

@mei123hao  I'm interested in the script, too. Could you please share with me? Thanks you!
Email<EMAIL_ADDRESS>

I'm working on a road estimation project. So I'm interested in the script, too. Could you please share with me? Thanks you!
Email<EMAIL_ADDRESS>

Hello @hlwang1124 , I'm also interested in the script since our research aim generating depth image based on your model SNE-RoadSeg. Would you share the script for generating depth image? Thanks in advance.
Email<EMAIL_ADDRESS>

Hi, @hlwang1124 Could you please share the script with me? I also want to learn about it. Thank you very much!
Email<EMAIL_ADDRESS>

Is it possible to share the code with me as well, my email is<EMAIL_ADDRESS>It would be highly appreciated,

Hi, @mei123hao . I will organize the code and send it to you.

hi，Could you please share the code how to generate dense depth images from lidar point cloud with me<EMAIL_ADDRESS>

@TonyX19 @hlwang1124 Hello, I am also doing research in this field recently, and I want to make my own dataset by kitti dataset, but I cannot achieve the reproduction of depth map, could you please send me the relevant code? My email is<EMAIL_ADDRESS>Thank you very much!


[BUG]: The workflow is stuck on join

Dynamic fork runs 3 sub_workflows. When all sub_workflows are completed the workflow is stuck on join task.
Conductor version: 3.2
Database persistence type: conductor.db.type=dynomite
(using default config.properties)

When I looking on the tasks in the queue (API /api/tasks/queue/all), the task "_deciderQueue": has value 1. All other tasks have value 0

The issue disappear after I changed the Database persistence type to mysql. When using dynomite, the workflow suck in ~10% of runs (out of ~100 runs). When using mysql - issue wasn't recreated in more than 300 runs.

@evgvain We have had such issues with Dynomite internally and switched Cassandra for persistence and Redis for queues. We will be replacing with a pure Redis implementation.

@aravindanr is the issue related to Dynomite? Does using lock fix this issue?


What about education?

This tells me nothing about the licensing I need for an education sku.  I don't have:
Azure AD Free | Microsoft 365 Business Standard | Microsoft 365 Business Premium | Azure AD Premium P1 or P2

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

ID: 650b028a-16b9-f560-a2aa-8613d85ffce6
Version Independent ID: 0e2c2f6b-65bd-4dc8-1a45-956d20bf8a9b
Content: License self-service password reset - Azure Active Directory
Content Source: articles/active-directory/authentication/concept-sspr-licensing.md
Service: active-directory
Sub-service: authentication
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

@schnitz76 Thanks for your comment! We will review and provide an update as appropriate.

@schnitz76
You are correct . The Azure AD EDU license is mentioned in the licensing page but does not provide any detail here as to what kind of features it includes. I am certain that the EDU edition includes SSPR for cloud users . The table below is from the article. I will engage the content authors on this one to see how best we can provide the information you requested on this page.

Microsoft 365 A1
M365EDU_A1
b17653a4-2443-4e8c-a550-18249dda78bb
AAD_EDU (3a3976ce-de18-4a87-a78e-5e9245e252df)INTUNE_EDU (da24caf9-af8e-485c-b7c8-e73336da2693)INTUNE_A (c1ec4a95-1f05-45b3-a911-aa3fa01094f5)WINDOWS_STORE (a420f25f-a7b3-4ff5-a9d0-5d58f73b537d)
Azure Active Directory for Education (3a3976ce-de18-4a87-a78e-5e9245e252df)Intune for Education (da24caf9-af8e-485c-b7c8-e73336da2693)Microsoft Intune (c1ec4a95-1f05-45b3-a911-aa3fa01094f5)Windows Store Service (a420f25f-a7b3-4ff5-a9d0-5d58f73b537d)

@iainfoulds Could you please review this request and update the thread ?

Microsoft 365 A3 maps to E3 / A5 maps to E5 #assign @MicrosoftGuyJFlo #unassign @iainfoulds

#please-close


[feat] A function that returns an 8-byte hash value and its xor sum.

When using SQLite3 as a key-value store, I found it convenient to use the first 8 bytes of the hash as the rowid and create a table from the xor value of the full hash, rather than mixing-up the hash and checksum to create a rowid.
It is light and fast.

We decided not to implement this.


Next Phase of the project

To complete this as soon as possible.

Code optimisation and admin login page development. Sorted components routing flow.


[GHSA-6h5x-7c5m-7cr7] Exposure of Sensitive Information in eventsource

Updates

Affected products
References

I confirmed with multiple security scans across multiple projects that v1.1.1 was still vulnerable.
I created a PR to remove v1.1.1 as a "patched" version, here: https://github.com/github/advisory-database/pull/366
However, that PR was incorrectly closed after a cursory review.
I then posted about the vulnerability on eventsource repo and a maintainer responded and then created a new version (v1.1.2) to fix the vulnerability. That PR is here: https://github.com/EventSource/eventsource/pull/281
Following along that path, this PR now updates to indicate v1.1.2 as a patched version, and versions beneath that as affected.
Please do not close this PR.

Hey @DaleGardner, please re-read this comment https://github.com/EventSource/eventsource/pull/273#issuecomment-1149225869
As my colleague has already made clear here this GHSA applies only to the lack of header removal. Please make a request to the eventsource project maintainers for a new GHSA and we would be happy to include that in our database should they make one.

Hey @DaleGardner, please re-read this comment EventSource/eventsource#273 (comment)
As my colleague has already made clear here this GHSA applies only to the lack of header removal. Please make a request to the eventsource project maintainers for a new GHSA and we would be happy to include that in our database should they make one.

@darakian My apologies. I guess the coincidence of having two security issues fixed in the same version of the same repo at the same time got me confused when someone else was claiming they were resolved in 1.1.1 based on the advisory, when apparently only one of the two was backported to 1.1.1 at that time, and now 1.1.2 corrects the other, ugh.
I'll close this