/healthz endpoint always returns 500 code

I decided to try this component, but apparently it got obsolete since its last update last year. Trying on HA 2023.9.3
The endpoint always returns 500 code, and I get the following in the logs:
  warnings.warn(
2023-10-01 21:09:30.323 WARNING (MainThread) [homeassistant.util.async_] Detected blocking call to _do_get_db_connection_protected inside the event loop. This is causing stability issues. Please report issue for recorder doing blocking calls at homeassistant/components/recorder/pool.py, line 78: check_loop(
2023-10-01 21:09:30.325 ERROR (MainThread) [homeassistant.components.recorder.util] Error executing query: Blocking calls must be done in the executor or a separate thread; Use homeassistant.components.recorder.get_instance(hass).async_add_executor_job(); at homeassistant/components/recorder/pool.py, line 78: check_loop(
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/recorder/util.py", line 130, in session_scope
    yield session
  File "/usr/src/homeassistant/homeassistant/components/recorder/history/modern.py", line 508, in get_last_state_changes
    states = list(execute_stmt_lambda_element(session, stmt, orm_rows=False))
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/recorder/util.py", line 221, in execute_stmt_lambda_element
    executed = session.connection().execute(stmt)
               ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1968, in connection
    return self._connection_for_bind(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1984, in _connection_for_bind
    return trans._connection_for_bind(engine, execution_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 2, in _connection_for_bind
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
    ret_value = fn(self, *arg, **kw)
                ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1111, in _connection_for_bind
    conn = bind.connect()
           ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 3269, in connect
    return self._connection_cls(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 145, in __init__
    self._dbapi_connection = engine.raw_connection()
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 3293, in raw_connection
    return self.pool.connect()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/pool/impl.py", line 420, in connect
    return _ConnectionFairy._checkout(self, self._fairy)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 1268, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 716, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/recorder/pool.py", line 78, in _do_get
    check_loop(
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 151, in check_loop
    raise RuntimeError(
RuntimeError: Blocking calls must be done in the executor or a separate thread; Use homeassistant.components.recorder.get_instance(hass).async_add_executor_job(); at homeassistant/components/recorder/pool.py, line 78: check_loop(
2023-10-01 21:09:30.338 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 150, in handle
    result = handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/simple_healthcheck/__init__.py", line 89, in get
    entity_history = recorder.history.get_last_state_changes(hass, 1, ENTITY_NAME)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/recorder/history/__init__.py", line 80, in get_last_state_changes
    return _target(hass, number_of_states, entity_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/recorder/history/modern.py", line 508, in get_last_state_changes
    states = list(execute_stmt_lambda_element(session, stmt, orm_rows=False))
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/recorder/util.py", line 221, in execute_stmt_lambda_element
    executed = session.connection().execute(stmt)
               ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1968, in connection
    return self._connection_for_bind(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1984, in _connection_for_bind
    return trans._connection_for_bind(engine, execution_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 2, in _connection_for_bind
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
    ret_value = fn(self, *arg, **kw)
                ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1111, in _connection_for_bind
    conn = bind.connect()
           ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 3269, in connect
    return self._connection_cls(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 145, in __init__
    self._dbapi_connection = engine.raw_connection()
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 3293, in raw_connection
    return self.pool.connect()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/pool/impl.py", line 420, in connect
    return _ConnectionFairy._checkout(self, self._fairy)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 1268, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/pool/base.py", line 716, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/recorder/pool.py", line 78, in _do_get
    check_loop(
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 151, in check_loop
    raise RuntimeError(
RuntimeError: Blocking calls must be done in the executor or a separate thread; Use homeassistant.components.recorder.get_instance(hass).async_add_executor_job(); at homeassistant/components/recorder/pool.py, line 78: check_loop(

@mortee i will fix that probably today. In the meantime you can disable recorder for healthcheck.
recorder:
  exclude:
    entity_globs:
      - simple_healthcheck.last_seen

Wow, seeing how it hasn't been updated for almost 1.5 years, I wasn't expecting such quick response. Great news!
While we're at it, let me mention that the README says that the simple_healthcheck dir needs to be put inside the custom_integrations directory, which I assumed was just another special place HA looks for stuff which I just haven't happened to hear about previously. But no, it's simply wrong: the correct directory is custom_components. You might as well fix that too!

Fixed with https://github.com/bkupidura/hass-simple-healthcheck/commit/41a1e5fb2bbaa41cb45b0230c9b7d8e8b9686ae1


Implicit json post does not send content, --form POST required

I'm testing a webapp2 server and found that the server-side request object was always empty. I found this answer which provides a workaround.
http :8080/api/test arg1=val1 arg2=val2 does not work
http --form POST :8080/api/test arg1=val1 arg2=val2 does work
Is this working as intended or is it a bug?

It seems to me that by default we execute GET request, on it the request body and shouldn't come, it just also carry out POST requests. But this is only a guess.

I tested it with these codes:
from bottle import route, request, run

@route("/", method="POST")
def main():
    name = request.forms.get("name")
    return f"Hello {name}!"

run(host="localhost", port=5600)

C:\>http POST :5600 name=Mustafa
HTTP/1.0 200 OK
Content-Length: 11
Content-Type: text/html; charset=UTF-8
Date: Sat, 27 Jul 2019 13:39:04 GMT
Server: WSGIServer/0.2 CPython/3.7.3

Hello None!

As you see, it didn't send any data.
But when I write:
C:\>http POST :5600 name=Mustafa --form
HTTP/1.0 200 OK
Content-Length: 14
Content-Type: text/html; charset=UTF-8
Date: Sat, 27 Jul 2019 14:35:55 GMT
Server: WSGIServer/0.2 CPython/3.7.3

Hello Mustafa!

I will send a PR for make --form default.

@mustafaemirtan  You should use request.json not request.forms, not a bug. See README.md: https://github.com/jakubroztocil/httpie#request-items

README.md
Data Fields field=value<EMAIL_ADDRESS>| Request data fields to be serialized as a JSON object (default), or to be form-encoded (--form, -f).

Details also refer to: http --debug :5600 name=Mustafa

This is the intended behaviour (json by default, form with --form).


Test of u2 for empty followers table

Hello Miguel
I found that u1 is tested twice for empty followers, and one of the tests should be changed to u2.
Assuming that the error is related to a copy/paste operation and persists from tag V0.8 until latest revision.
Thanks for a really nice tutorial.
Jesper

What do you think this is an error? The unit test is verifying that after u1 is created, both its followed and follower lists are empty.

Hello Miguel.
Sorry for the late reply.
After re-reading the changed code I see what you mean, and that I was wrong. This pull request should be rolled back. I do apollogize for causing problems,

@JayKayAce No problem at all. Thanks for the reply.


[token-cli] Add support for transfer-hook account resolution for transfers with the transfer-fee extension.

Per #7059
Adds a new offchain helper offchain::create_transfer_checked_with_fee_instruction_with_extra_metas.
Adds a new onchain helper onchain::invoke_transfer_checked_with_fee
Adds logic to transfer_with_fee in token/client/src/token.rs to add the extra-account-metas using the offchain helper if the token uses the transfer-hook extension.

What tests if any needed to be added?

@buffalojoec I am working in token/program-2022-test/transfer_hook.rs and I noticed that rust-analyser/cargo is not working in this directory. Is this a known thing?

And actually, does it make sense to add the combination test here in token/program-2022-test? Shouldn't there then be tests for every arbitrary combination of extensions?

@buffalojoec I am working in token/program-2022-test/transfer_hook.rs and I noticed that rust-analyser/cargo is not working in this directory. Is this a known thing?

Yeah, you need to add test-sbf to Rust Analyzer's default features. Even after doing that, I don't think it ever really worked for me. Sometimes I just comment out the #[cfg(feature = "test-sbf")] at the top, handle all of my compile errors, then add it back.

And actually, does it make sense to add the combination test here in token/program-2022-test? Shouldn't there then be tests for every arbitrary combination of extensions?

I didn't want to dump that whole workload on you. 😅

Looking at the rest of the tests, I actually think its okay to have these mixed extension tests in token/program-2022-test/transfer_hook.rs because of the special treatment needed for the extra metas. So I will go ahead and add tests for the w/ fee conditions.
Also there are no tests here for  spl_token_2022::offchain, only spl_transfer_hook_interface. Is this by design? Would it even make sense to test the higher level helper functions here?

Then maybe add a block in the Token CLI's transfer_hook tests to ensure we can parse a transfer instruction with a fee and all the extra transfer hook accounts as arguments.

I am having trouble trying to add the arguments for the expected fee to the transfer test. I have confirmed that I can successfully create the token with both the transfer-hook and transfer-fee extensions, so this is not a problem. Could this be caused by '--sign-onlyand doing process_command()` in offline mode?
I assume it's a catch-22 because we need the associated token account to be created meaning it cannot be done in offline mode. If it is online mode, the transfer-hook program would need to be deployed and initialized. Is this correct?

Then maybe add a block in the Token CLI's transfer_hook tests to ensure we can parse a transfer instruction with a fee and all the extra transfer hook accounts as arguments.

I am having trouble trying to add the arguments for the expected fee to the transfer test. I have confirmed that I can successfully create the token with both the transfer-hook and transfer-fee extensions in the test, so this is not a problem. Could this be caused by --sign-only and doing process_command() in offline mode?
I assume it's a catch-22 because we need the associated token account to be created meaning it cannot be done in offline mode. If it is online mode, the transfer-hook program would need to be deployed and initialized. Is this correct?

Yeah that's correct. The test I linked is sending the command to create the token, then disable the transfer hook (set program to None), but the middle bit where made the permalink is doing --sign-only so that it doesn't actually invoke the client but it's testing the parsing of the arguments and validation against the mint's extensions.
Maybe duplicate that test and set the token up with a fee config, similar to this test here, and then add the fee argument to the parsing test block?

Okay I figured it out! In sign-only + offline mode you need to explicitly pass the --program-id or else it will default to Tokenkeg. This is a problem for the transfer-fee extension but not the transfer-hook extension because transfer_checked() checks if it is either Tokenkeg or Token2022  while transfer_checked_with_fee() checks if it is Token2022.  I guess this is just a weird quirk of testing this way.

I think this is good to go!

Will this auto close and not be added? 😅

Will this auto close and not be added? 😅

Whoops, sorry! I thought you could merge after I approved.

I'd need to be employed to do that right? 😉


fix: pygame requirements

The pygame compatibility issue with python 3.7 first appeared in pygame 2.1.3.dev6 (pygame/pygame@a462721e) and has been fully resolved in 2.2.0.dev2 (pygame/pygame#3723, pygame/pygame#3722, pygame/pygame@aab517c7). Therefore, the requirement tightened in #67 can be relaxed and only pygame 2.1.3.* needs to be excluded.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Nothing happened when click to play

Component always doesn't ready, and it happened nothing when click to play
Version
"vue": "2.6.10"
"vue-video-player": "5.0.1"
"videojs-flash": "2.1.0"
Steps to reproduce
I just copy the usage example which in repository main page. As below:
main.js
import VueVideoPlayer from 'vue-video-player'
import 'video.js/dist/video-js.css'
import 'vue-video-player/src/custom-theme.css'
Vue.use(VueVideoPlayer)

live.vue
<template>
  <video-player class="video-player-box" ref="videoPlayer" :options="playerOptions" :playsinline="true" custom-event-name="customstatechangedeventname"
                @play="onPlayerPlay($event)" @pause="onPlayerPause($event)" @ended="onPlayerEnded($event)" @waiting="onPlayerWaiting($event)"
                @playing="onPlayerPlaying($event)" @loadeddata="onPlayerLoadeddata($event)" @timeupdate="onPlayerTimeupdate($event)"
                @canplay="onPlayerCanplay($event)" @canplaythrough="onPlayerCanplaythrough($event)" @statechanged="playerStateChanged($event)"
                @ready="playerReadied"></video-player>
</template>

<script>
  // Similarly, you can also introduce the plugin resource pack you want to use within the component
  // import 'some-videojs-plugin'
  import 'videojs-flash'

  export default {
    data() {
      return {
        playerOptions: {
          // videojs options
          muted: true,
          language: 'en',
          techOrder: ['flash', 'html5'],
          playbackRates: [0.7, 1.0, 1.5, 2.0],
          sources: [
            {
              type: 'rtmp/mp4',
              src: 'rtmp://<IP_ADDRESS>:1935/live'
            }],
          poster: '/static/images/author.jpg'
        }
      }
    },
    computed: {
      player() {
        return this.$refs.videoPlayer.player
      }
    },
    mounted() {
      console.log('this is current player instance object', this.player)
    },
    methods: {
      // listen event
      onPlayerPlay(player) {
        console.log('player play!', player)
      },
      onPlayerPause(player) {
        console.log('player pause!', player)
      },
      // ...player event

      // or listen state event
      playerStateChanged(playerCurrentState) {
        console.log('player current update state', playerCurrentState)
      },

      // player is ready
      playerReadied(player) {
        console.log('the player is readied', player)
        // you can use it to do something...
        // player.[methods]
      }

What is Expected?
It's expected that the live streaming can play when i click the player.
What is actually happening?
Nothing happened. Without any error and warning and log.
Things in console:
this is current player instance object Player {…}

Sorry, my fault!
The flash was disabled by browser default configuration.
It's so weird, the broswer didn't show the prompt.
Anyway, it's worked now! Sorry


Resolved Bug 973 : All charts height width not working

Description

Removed height & width props from the charts where it was not required
For Polar Area chart radius is added instead of height & width
For Mixed chart it is currently working with height & width, so doesn't removed those props for this chart

Screenshots :

Pie Chart

Area Chart

Horizontal Bar Chart

Vertical Bar Chart

Stacked Bar Chart

Performance Stacked Bar Chart

Bar Chart With Border Radius

Mixed Chart

Polar Area Chart

Radar Chart

Scatter Chart

Scatter Chart With Multiple Axis

Stacked Chart

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

conflicts resolved

@poojagurav21 Resolved build issues


Connection string examples

We currently have drivers listed, as well as connection strings as part of code samples (example), but we do not have connection string examples for simple copy/pasting.
See a use for this because of a large volume of searches for "connection string" related to different databases.

Thanks for adding this, @sploiselle. So are you thinking a separate page with these examples, where the connections strings just have placeholders?

I think this was addressed by #2853?

Yep. Thanks, @knz!


Fix the index for looping through the array

Closes #1125

Hi, @helpermethod @marc0der
I’m curious as to why you weren’t able to replicate issue #1125, as I’m also using the newest version of zsh (build from the latest commit) and I can still reproduce it.
Is there anything different about ZSH for macOS compared to other systems? Or do you use setopt ksh_arrays?
And this code is incorrect in both Bash and Zsh, even though it produces the desired result:
https://github.com/sdkman/sdkman-cli/blob/41a2743e1c23910e239ab8b9ff3ecd93fa94a856/src/main/bash/sdkman-list.sh#L79
In bash, #{versions} return the length of #versions[0](the command result is always right because #versions[0] is much longer than array's length).
bash-5.2$ bash --version
GNU bash, version 5.2.15(1)-release (aarch64-apple-darwin22.1.0)
....
bash-5.2$ versions=("1" "2" "3"); echo ${#versions}
1
bash-5.2$ versions=("$PWD" "2" "3"); echo ${#versions}
69
bash-5.2$ versions=("$PWD" "2" "3"); for ((i = ${#versions} - 1; i >= 0; i--)); do echo "index-$i ${versions[$i]}"; done
index-68
...
...
index-2 3
index-1 2
index-0 /private/var/folders/hz/zlxrt0dn56gcyygny7mmyb_h0000gn/T/tmp.ShxROGHO

In zsh, the last index of versions is missing.
Look%  zsh --version
zsh <IP_ADDRESS>-dev (arm-apple-darwin22.4.0)
Look%  versions=("1234567" "2" "3"); for ((i = ${#versions} - 1; i >= 0; i--)); do echo "index-$i ${versions[$i]}"; done
index-2 2
index-1 1234567
index-0
Look% setopt KSH_arrays
Look% setopt | grep -i KSHarrays
ksharrays
Look% versions=("$PWD" "2" "3"); for ((i = ${#versions} - 1; i >= 0; i--)); do echo "index-$i ${versions[$i]}"; done
index-68
...
...
index-2 3
index-1 2
index-0 /private/var/folders/hz/zlxrt0dn56gcyygny7mmyb_h0000gn/T/tmp.ShxROGHO

Use ${#array[@]} to return the correct length, and do't subtract 1 as the default last index of an array in Zsh is its length.
Now
Look% versions=("$PWD" "2" "3"); for ((i = ${#versions[@]}; i >= 0; i--)); do echo "index-$i ${versions[$i]}"; done
index-3 3
index-2 2
index-1 /private/var/folders/hz/zlxrt0dn56gcyygny7mmyb_h0000gn/T/tmp.107a1NQ3
index-0
Look% bash
bash-5.2$ versions=("$PWD" "2" "3"); for ((i = ${#versions[@]}; i >= 0; i--)); do echo "index-$i ${versions[$i]}"; done
index-3
index-2 3
index-1 2
index-0 /private/var/folders/hz/zlxrt0dn56gcyygny7mmyb_h0000gn/T/tmp.107a1NQ3
bash-3.2$ versions=("$PWD" "2" "3"); for ((i = ${#versions[@]}; i >= 0; i--)); do echo "index-$i ${versions[$i]}"; done
index-3
index-2 3
index-1 2
index-0 /private/var/folders/hz/zlxrt0dn56gcyygny7mmyb_h0000gn/T/tmp.107a1NQ3


[Keyvault] BREAKING CHANGE: az keyvault storage: Remove this command group since service doesn't maintain anymore

Related command

az keyvault storage
Description

We have announced the deprecation of az keyvault storage in https://github.com/Azure/azure-cli/pull/27249
Keyvault service doesn't maintain related feature since long ago. It's time to fully remove CLI's support during this breaking change window
History Notes

[Keyvault] BREAKING CHANGE: az keyvault storage: Remove this command group since service doesn't maintain anymore

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Keyvault


java.lang.UnsatisfiedLinkError: No implementation found for void slib.platform.android.Android.nativeOnCreateActivity(android.app.Activity)

Me again.
As I am waiting for the iOS example, I've been trying to at least test the Android part as I saw there was a JNI example in the examples folder.
So the basic example does run. But as soon as I try to use the SLibActivity on the Java side I end up with the error specified in the title
Here is the full bug report:
What steps will reproduce the problem?

Build and run the JNI example
JNI example runs without any error
In MainActivity,  add

Intent intent = new Intent(this, VideoActivity.class);
this.startActivity(intent);

to onCreate
with VideoActivity as follows:
public class VideoActivity extends SlibActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        Log.d("VideoActivity", "onCreate");

    }
}

The app crashes

What is the expected result?
The app should not crash
What do you see instead?

The app crashes with:

Java_slib_platform_android_Android_nativeOnCreateActivity and Java_slib_platform_android_Android_nativeOnCreateActivity__Landroid_app_Activity_2)
                                                       at slib.platform.android.Android.nativeOnCreateActivity(Native Method)
                                                       at slib.platform.android.Android.onCreateActivity(Android.java:42)
                                                       at slib.platform.android.SlibActivity.onCreate(SlibActivity.java:39)
                                                       at android.app.Activity.performCreate(Activity.java:6813)
                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1121)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
                                                       at android.os.Handler.dispatchMessage(Handler.java:110)
                                                       at android.os.Looper.loop(Looper.java:203)
                                                       at android.app.ActivityThread.main(ActivityThread.java:6251)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)

What version of the product are you using? On what operating system?
Version v0.1.4 - Android 7.0
Please provide any additional information below.

I am not sure what is going on, why the linking error happens as thenative-lib.so gets loaded properly but then at runtime, calling Android.nativeOnCreateActivity crashes

Hope you will be able to help out, I'm just trying to get a camera feed.

Please make sure that you added following code in main.cpp for .so file
#include <slib/core/platform_android.h>

JNIEXPORT jint JNI_OnLoad(JavaVM* jvm, void* reserved)
{
	slib::Android::initialize(jvm);
	return JNI_VERSION_1_4;
}

I do have that. Sorry for not specifying it.
Here is what I have in native-lib.cpp
#include <jni.h>

#include <slib/core.h>
#include <slib/core/platform_android.h>
#include <slib/ui/platform.h>
#include "slib/ui/screen.h"
#include "slib/ui/platform.h"
#include "slib/ui/mobile_app.h"
#include "slib/core/io.h"
#include "slib/core/log.h"
#include "slib/core/safe_static.h"

using namespace slib;

JNIEXPORT jint JNI_OnLoad(JavaVM* jvm, void* reserved)
{
	Android::initialize(jvm);
	return JNI_VERSION_1_4;
}

I even added others headers as you can see. But with or without them, still crashes on Android.nativeOnCreateActivity

You don't need to include other headers.
Please check you are loaded native library.
public class VideoActivity extends SlibActivity {

   static {
      System.loadLibrary("native-lib");
   }

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        Log.d("VideoActivity", "onCreate");

    }
}

Additionally,
You should check your device abi - x86, arm7, arm64, and you are building .so file regarding that abi.

I already had
    static {
        System.loadLibrary("native-lib");
    }

in VideoActivity.
I also removed the unnecessary headers but still no success.
As for the .so library when I build the JNI example, all the different abi flavours got resp. generated in
SLib/examples/JNI(Android)/app/build/intermediates/cmake/debug/obj/arm64-v8a/libnative-lib.so
SLib/examples/JNI(Android)/app/build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so
SLib/examples/JNI(Android)/app/build/intermediates/cmake/debug/obj/x86/libnative-lib.so

I just followed the build instructions for Android but maybe the way the static libraries are linked to the libnative-lib.so shared library is wrong somehow

Ah,
To use UI related features, you have to define Application in native side.
Please add following snippet in main.cpp
#include <slib/ui.h>
#include <slib/core/platform_android.h>

using namespace slib;

class TestApp : public MobileApp {
public:
 SLIB_DECLARE_APPLICATION(TestApp);
 void onStart() {
 }
 void onCreateActivity() {
 }
 void onDestroyActivity() {
 }
 void onResume() {
 }
 void onPause() {
 }
};

SLIB_DEFINE_APPLICATION(TestApp, MobileApp);

JNIEXPORT jint JNI_OnLoad(JavaVM* jvm, void* reserved)
{
	Android::initialize(jvm);
        TestApp::main();
	return JNI_VERSION_1_4;
}

Just put that in my native-lib.cpp and got errors related to opengl_impl.h
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:externalNativeBuildDebug'.
> Build command failed.
  Error while executing process /Users/bils/Library/Android/sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /Users/bils/Github/SLib/examples/JNI(Android)/app/.externalNativeBuild/cmake/debug/x86 --target native-lib}
  [1/2] /Users/bils/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++  --target=i686-none-linux-android --gcc-toolchain=/Users/bils/Library/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/darwin-x86_64 --sysroot=/Users/bils/Library/Android/sdk/ndk-bundle/sysroot  -Dnative_lib_EXPORTS -I/Users/bils/Github/SLib/include -isystem /Users/bils/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /Users/bils/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include -isystem /Users/bils/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -isystem /Users/bils/Library/Android/sdk/ndk-bundle/sysroot/usr/include/i686-linux-android -D__ANDROID_API__=15 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security  -std=c++11 -O0 -fno-limit-debug-info  -fPIC -MD -MT CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -MF CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o.d -o CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -c "/Users/bils/Github/SLib/examples/JNI(Android)/app/src/main/cpp/native-lib.cpp"
  [2/2] : && /Users/bils/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++  --target=i686-none-linux-android --gcc-toolchain=/Users/bils/Library/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/darwin-x86_64 --sysroot=/Users/bils/Library/Android/sdk/ndk-bundle/sysroot -fPIC -isystem /Users/bils/Library/Android/sdk/ndk-bundle/sysroot/usr/include/i686-linux-android -D__ANDROID_API__=15 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security  -std=c++11 -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a --sysroot /Users/bils/Library/Android/sdk/ndk-bundle/platforms/android-15/arch-x86 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ../../../../build/intermediates/cmake/debug/obj/x86/libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -L/Users/bils/Github/SLib/lib/Android/Debug-x86 -lslib -llog -latomic -lm "/Users/bils/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && :
  FAILED: : && /Users/bils/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++  --target=i686-none-linux-android --gcc-toolchain=/Users/bils/Library/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/darwin-x86_64 --sysroot=/Users/bils/Library/Android/sdk/ndk-bundle/sysroot -fPIC -isystem /Users/bils/Library/Android/sdk/ndk-bundle/sysroot/usr/include/i686-linux-android -D__ANDROID_API__=15 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security  -std=c++11 -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a --sysroot /Users/bils/Library/Android/sdk/ndk-bundle/platforms/android-15/arch-x86 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ../../../../build/intermediates/cmake/debug/obj/x86/libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -L/Users/bils/Github/SLib/lib/Android/Debug-x86 -lslib -llog -latomic -lm "/Users/bils/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && :
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:38: error: undefined reference to 'glViewport'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:45: error: undefined reference to 'glClearColor'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:52: error: undefined reference to 'glClearDepthf'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:57: error: undefined reference to 'glClearStencil'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:61: error: undefined reference to 'glClear'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:96: error: undefined reference to 'glEnable'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:98: error: undefined reference to 'glDisable'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:104: error: undefined reference to 'glDepthMask'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:132: error: undefined reference to 'glDepthFunc'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:138: error: undefined reference to 'glEnable'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:139: error: undefined reference to 'glCullFace'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:141: error: undefined reference to 'glFrontFace'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:143: error: undefined reference to 'glFrontFace'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:146: error: undefined reference to 'glDisable'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:203: error: undefined reference to 'glEnable'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:207: error: undefined reference to 'glBlendEquationSeparate'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:209: error: undefined reference to 'glBlendEquation'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:216: error: undefined reference to 'glBlendFunc'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:218: error: undefined reference to 'glBlendFuncSeparate'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:220: error: undefined reference to 'glBlendColor'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:222: error: undefined reference to 'glDisable'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:234: error: undefined reference to 'glCreateShader'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:239: error: undefined reference to 'glShaderSource'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:240: error: undefined reference to 'glCompileShader'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:242: error: undefined reference to 'glGetShaderiv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:248: error: undefined reference to 'glGetShaderInfoLog'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:257: error: undefined reference to 'glDeleteShader'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:275: error: undefined reference to 'glDeleteShader'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:281: error: undefined reference to 'glCreateProgram'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:288: error: undefined reference to 'glAttachShader'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:295: error: undefined reference to 'glLinkProgram'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:297: error: undefined reference to 'glGetProgramiv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:303: error: undefined reference to 'glGetProgramInfoLog'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:312: error: undefined reference to 'glCreateProgram'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:334: error: undefined reference to 'glDeleteProgram'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:327: error: undefined reference to 'glUseProgram'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:341: error: undefined reference to 'glGenBuffers'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:343: error: undefined reference to 'glBindBuffer'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:344: error: undefined reference to 'glBufferData'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:353: error: undefined reference to 'glBindBuffer'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:354: error: undefined reference to 'glBufferSubData'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:375: error: undefined reference to 'glBindBuffer'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:380: error: undefined reference to 'glBindBuffer'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:412: error: undefined reference to 'glDeleteBuffers'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:419: error: undefined reference to 'glGetAttribLocation'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:428: error: undefined reference to 'glEnableVertexAttribArray'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:429: error: undefined reference to 'glVertexAttribPointer'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:452: error: undefined reference to 'glDisableVertexAttribArray'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:459: error: undefined reference to 'glGetUniformLocation'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:468: error: undefined reference to 'glUniform1f'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:475: error: undefined reference to 'glUniform1fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:482: error: undefined reference to 'glUniform1i'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:489: error: undefined reference to 'glUniform1iv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:496: error: undefined reference to 'glUniform2f'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:503: error: undefined reference to 'glUniform2f'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:510: error: undefined reference to 'glUniform2fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:517: error: undefined reference to 'glUniform2i'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:524: error: undefined reference to 'glUniform2iv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:531: error: undefined reference to 'glUniform3f'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:538: error: undefined reference to 'glUniform3f'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:545: error: undefined reference to 'glUniform3fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:552: error: undefined reference to 'glUniform3i'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:559: error: undefined reference to 'glUniform3iv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:566: error: undefined reference to 'glUniform4f'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:573: error: undefined reference to 'glUniform4f'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:580: error: undefined reference to 'glUniform4fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:587: error: undefined reference to 'glUniform4i'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:594: error: undefined reference to 'glUniform4iv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:606: error: undefined reference to 'glUniformMatrix2fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:622: error: undefined reference to 'glUniformMatrix2fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:639: error: undefined reference to 'glUniformMatrix3fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:660: error: undefined reference to 'glUniformMatrix3fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:684: error: undefined reference to 'glUniformMatrix4fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:712: error: undefined reference to 'glUniformMatrix4fv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:719: error: undefined reference to 'glUniform1i'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:730: error: undefined reference to 'glUniform1iv'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:757: error: undefined reference to 'glDrawArrays'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:762: error: undefined reference to 'glDrawElements'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:767: error: undefined reference to 'glLineWidth'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:772: error: undefined reference to 'glFlush'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:778: error: undefined reference to 'glGenTextures'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:782: error: undefined reference to 'glBindTexture'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:784: error: undefined reference to 'glTexImage2D'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:795: error: undefined reference to 'glTexImage2D'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:809: error: undefined reference to 'glGenTextures'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:811: error: undefined reference to 'glBindTexture'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:812: error: undefined reference to 'glTexImage2D'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:906: error: undefined reference to 'glTexSubImage2D'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:917: error: undefined reference to 'glTexSubImage2D'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:971: error: undefined reference to 'glActiveTexture'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:976: error: undefined reference to 'glBindTexture'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:981: error: undefined reference to 'glBindTexture'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:1010: error: undefined reference to 'glTexParameteri'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:1014: error: undefined reference to 'glTexParameteri'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:1041: error: undefined reference to 'glTexParameteri'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:1045: error: undefined reference to 'glTexParameteri'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:1058: error: undefined reference to 'glDeleteTextures'
  /Users/bils/Github/SLib/src/slib/render/opengl_impl.h:1562: error: undefined reference to 'glGetIntegerv'
  clang++: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.124 secs

it will be fixed by adding gl dependency in CMakeLists.txt
target_link_libraries {
 native_lib
 slib
 GLESv2
 ${log-lib}
)

I had to remove the x86 filter in         ndk {   abiFilters 'armeabi-v7a', 'arm64-v8a' } but now it runs without crashing, thanks a lot for your help. It could not find the slib static lib for x86 for whatever reason.
Now I need to start that camera and render it so I can see something.

Just did that, managed to create the camera and starting it after making sure the permissions are granted.
Only things is I can't see any camera feed on my VideoActivity. Do I need to attach the SurfaceTexture somehow to my VideoActivity view ?
Here is what I have right now:
native-lib.cpp
#include <jni.h>

#include <slib/core.h>
#include <slib/core/platform_android.h>
#include <slib/ui.h>

using namespace slib;

class CameraApp : public MobileApp {
public:
SLIB_DECLARE_APPLICATION(CameraApp);
	void onStart() override {

	}

	void onCreateActivity() override {

	}

	void onDestroyActivity() override {

	}

	void onResume() override {

	}

	void onPause() override {

	}

	auto getCamera() -> Ref<Camera> const {
		return mCamera;
	}

	auto setCamera(Ref<Camera> camera) {
		mCamera = camera;
	}

private:
    Ref<Camera> mCamera;
};

SLIB_DEFINE_APPLICATION(CameraApp, MobileApp);

JNIEXPORT jint JNI_OnLoad(JavaVM* jvm, void* reserved)
{
	Android::initialize(jvm);
	CameraApp::main();
	return JNI_VERSION_1_4;
}

SLIB_JNI_BEGIN_CLASS(MainActivity, "io/slib/examplejni/MainActivity")
    SLIB_JNI_METHOD(startCameraJava, "startCameraJava", "()V")
SLIB_JNI_END_CLASS

extern "C"
JNIEXPORT void JNICALL
Java_io_slib_examplejni_MainActivity_startCameraCpp(JNIEnv *env, jobject thiz) {
	JniGlobal<jobject> activity(thiz);

	const auto camApp = CameraApp::getApp();
	camApp->setCamera(Camera::create(CameraParam()));

	const auto camera = camApp->getCamera();
	camera->start();

	MainActivity::startCameraJava.call(activity.get());

	Log("JNI", "Started camera");
}

MainActivity.java
public class MainActivity extends AppCompatActivity {

	static {
		System.loadLibrary("native-lib");
	}

	private static final int CAMERA_REQUEST_CODE = 100;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
			if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
				requestPermissions(new String[] {
									Manifest.permission.CAMERA
								   }, CAMERA_REQUEST_CODE);
			} else {
				startCameraCpp();
			}
		} else {
			startCameraCpp();
		}
	}

	private void startVideoActivity() {
		Intent intent = new Intent(this, VideoActivity.class);
		intent.setAction(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
		this.startActivity(intent);
	}

	@Override
	public void onRequestPermissionsResult(int requestCode,
										   @NonNull String[] permissions,
										   @NonNull int[] grantResults) {

		super.onRequestPermissionsResult(requestCode, permissions, grantResults);

		if (requestCode == CAMERA_REQUEST_CODE) {

			if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
				Toast.makeText(this, "camera permission granted", Toast.LENGTH_LONG).show();

				startCameraCpp();
			} else {
				Toast.makeText(this, "camera permission denied", Toast.LENGTH_LONG).show();
			}

		}
	}

	/**
	 * A native method that is implemented by the 'native-lib' native library,
	 * which is packaged with this application.
	 */
	public native void startCameraCpp();

	public void startCameraJava() {
		runOnUiThread(new Runnable() {
			@Override
			public void run() {
				startVideoActivity();
			}
		});
	}
}

VideoActivity.java

package io.slib.examplejni;

import android.os.Bundle;
import android.util.Log;

import slib.platform.android.SlibActivity;

/**
 * Created by bils on 26/02/2018.
 */

public class VideoActivity extends SlibActivity {

    static {
        System.loadLibrary("native-lib");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        Log.d("VideoActivity", "onCreate");

    }
}

I saw that you were drawing on a window object so I added those to the manifest:
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-feature android:glEsVersion="0x00020000" android:required="true" />

    <uses-permission android:name="android.permission.CAMERA" />

Let me know if I'm missing something and thanks a lot for your help

Camera can listen incoming video frames via listener interface.
If you want to display that video frames, you have to add a GLSurfaceView, and draw the grabbed frames by OpenGL in cpp

Indeed I saw straight after posting my message that you had a setOnCaptureVideoFrame on the VideoCapture base type. I am not sure what you mean, can I draw directly the VideoCaptureFrame frames on the Java side or do I need to use the C++ RenderEngine present in the library ?
Would you have any small example/sample app that would show the camera feed ? IMHO it would be much easier to directly look at that than going back and forth via Github.

You have to render that in c++. I think you can refer src/ui/camera_view.cpp
The example will be cross-platform camera rendering example.
I can provide the example late this week because I am working hard on other side.

Ok I will look into camera_view.cpp.
I reckon it's a mere normal view I can add to my layout ?
My final goal is to actually retrieve the video frames directly as textures and  pass that
C++ <-> Java/ObjC. I don't really want to manipulate buffers as it is slower than directly rendering textures. So on Android I would like to directly build a SurfaceTexure object and on iOS EAGLView.
I will be waiting for the example then, once again thanks a lot for your help.

Sorry for bothering once again, I know I said I would for your example app. But as there is no documentation, I'm just doing some manual tests with regards to some Slib functionalities.
I'm trying to save theVideoCaptureFrame to disk via its BitmapData.
Here is what I currently have which does not work.
``
extern "C"
JNIEXPORT void JNICALL
Java_io_slib_examplejni_MainActivity_startCameraCpp(JNIEnv *env, jobject self) {
JniGlobal activity(self);
const auto camApp = CameraApp::getApp();
camApp->setCamera(Camera::create(CameraParam()));

const auto camera = camApp->getCamera();
camera->start();
camera->setOnCaptureVideoFrame([](VideoCapture* capture, VideoCaptureFrame* frame) {
    Log("JNI", "%d %d", frame->image.width, frame->image.height);
	auto image = Image::create(frame->image);
	auto file = File::openForWrite(std::string("VideoFrameImage.jpg"));
	auto filePath = file->getPath();
	image->saveToJPEG(filePath);
});

MainActivity::startCameraJava.call(activity.get());

Log("JNI", "Started camera");

}
I added the permissions to the manifest

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Is there any way of saving the image to the app documents' folder ?

You should not call File::openForWrite, since it is opening file and lock the writing operation.
Please refer following snippet
Log("JNI", "%d %d", frame->image.width, frame->image.height);
auto image = Image::create(frame->image);
image->saveToJPEG("/mnt/sdcard/test.jpg");

Thanks a lot, it works.
I am really going to wait this week for your sample app to have a better understanding of how the things I am interested in work out.
Your library looks amazingly done and does a lot of useful things and as it is open source I have no right to complain whatsoever. But, to be honest, the lack of examples and documentation is just a huge blocker. I am wasting so much time just going into the sources and looking how things are working together. So I have no right to ask for more, but if I see I keep on spending huge amount of time searching through the files for the most basic features, I will just give up on it.
Looking forward to getting your sample app though, thanks again.


CommonJS and System.import

We're typically defining CommonJS modules as the default export for interop.
This means if I use System.import to load a CommonJS module, I will need to manually access the default property:
System.import('cjs-module').then(function(m) {
  var cjsModule = m.default;
});

It would be nice to be able to somehow indicate to the loader that this module is just a default export, and hence that System.import can return the default export directly.
It's possible to do this by overriding System.import with a wrapper function, but I'm not sure if that would carry through to the contextual import as well.
Alternatively if users will just be expected to access the default property that is fine too, but it would be good to know.

I don't think that would be a good idea. I think it would be bad if m in the promise callback is not a module instance object.

The imperative form does not provide a way to implicitly access the default export when importing a module, not today. So, the question here is not about the interpretability with other formats, but whether or not we should consider to have imperative forms that are symmetrical do the declarative forms. Today, we are aiming for the imperative Loader.import() api that is symmetrical to import * as m from "./foo" while the other forms are not available.
System.import('./foo').then(m => {
   m['default']('do something');
});

If we want to stick to that principle, and forget about an api that is symmetric to  import foo from "./foo";, then I don't see why we need a way to bypass this invariance.
As for @matthewp's question, having a hook to control the value of m is going to be bad business because you will need a way to differentiate when the module is being imported using the imperative form, vs declarative form. This will be a mess.

@caridy Superb explanation. Then I agree, it should be the module instance.

@matthewp Also, the type of m will change depending on if the module was implemented using CJS/ADM/MMM. Better to always use m.default.
@caridy No need for m['default'], m.default works just as well.

What about the case of an ES6 module that has just a single default export?
export default {
  some: 'config'
};

Would it not make sense to use the default property here as well on System.import?

no. that will be a huge refactor hazard, if I change my module by just adding export var f = 1;, it will automatically break my app, there is an invariant that we have to maintain in System.import(), also, keep in mind that default is really a convention in ES6 modules, but under the hood it is just an exported name called default.

Sure, completely agreed - while this will be somewhat inconvenient for CommonJS, AMD and global loading, it is consistent and sensible for a spec.


GPU is doing unnecessary work when skybox is enabled.

If you run the image-based-lighting sample with enhanced systrace, you'll see lots of
"unresolve" events (GMEM loads).  These go away after removing the following line from MainActivity.
scene.skybox = ibl.skybox

Each unresolve seems to consume more than one-third of all GPU work in each bin, so it would be good to fix this up.

The skybox is just a regular draw call, removing it will allow the GPU to not resolve tiles where we don't draw anything. Not sure there's an actual issue here.

Yes but the unresolve events seem strange since we do not need to preserve framebuffer content.  Blending is disabled so we should discard the existing content.

No actually the skybox is special because it deactivates the clear, and the framegraph has a special case when clear is activated, it always forces a discard. I think we introduced a bug where the discard flags are either not set properly or not taken into account.
When drawing the first view, whether we clear or draw the skybox, we shouldn't reload the tile, I can't see why we'd even need the (unknown) content of the framebuffer (even with blending actually).


Firefox History Check

The -BrowserHistory option does not correctly identify when Firefox is not installed on the host. Expected to see https://github.com/cedowens/SwiftBelt/blob/master/Sources/SwiftBelt/main.swift#L716 when Firefox is not installed.
There is a stray 75 bytes at the end of the output. I couldn't quickly determine where it came from.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 _______  _     _  ___   _______  _______  _______  _______  ___      _______
|       || | _ | ||   | |       ||       ||  _    ||       ||   |    |       |
|  _____|| || || ||   | |    ___||_     _|| |_|   ||    ___||   |    |_     _|
| |_____ |       ||   | |   |___   |   |  |       ||   |___ |   |      |   |
|_____  ||       ||   | |    ___|  |   |  |  _   | |    ___||   |___   |   |
 _____| ||   _   ||   | |   |      |   |  | |_|   ||   |___ |       |  |   |
|_______||__| |__||___| |___|      |___|  |_______||_______||_______|  |___|

SwiftBelt: A MacOS enumerator similar to @harmjoy's Seatbelt. Does not use any command line utilities
author: @cedowens
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

##########################################
==>Browser History Info:

***************Quarantine History Results for user zeroCool***************
Date: 1989-06-05 14:26:31 | App: com.apple.Safari | File: https://raw.githubusercontent.com/cedowens/SwiftBelt/master/SwiftBelt | OriginURL:

***************Safari history results for user zeroCool***************
[-] Could not open the Safari History.db file for user zeroCool

***************Chrome history results for user zeroCool***************
Date: 2020-06-05 14:27:46 | URL: https://www.rickrolled.com/ | Title: Rick Rolled
75 bytes
##########################################

Thanks for sharing. Interesting...the else clause should catch that condition and print a message regarding the Firefox file not being present. I'l also do some additional testing on this.


[2.0-wip] Buttons hover

The hover effect is still enough visible only for the standard .btn class.
Maybe making the hover more bright than normal state would make this better.

I've darkened the hover a bit, but that's as far as I'll go for now. Not completely happy with the colors, so I'll noodle with them later.

ok


connect-exchangeonline Missing closing ')' in expression.

I have problems running V3
My profile path is based on Azure AD Displayname and is: "C:\Users\TorbjörnGranheden(Co"
it contains both international and special characters.
When you install Exchange Online PowerShell v3 you get the following error when trying to run connect-exchangeonline:
At line:1 char:103

... den(Co\AppData\Local\Temp\tmpEXO_m03w2t4r.mpe -Recurse -Force;$null = ...

                                                             ~

Missing closing ')' in expression.
The path contain a ( and powershell interprets this as a start of a section () and misses the end )

@Mr-Tbone Hope this comment is helpful for you. Considering the nature of the issue, as advised, please open a service ticket in your tenant and follow with them for the resolution. We proceed to close it as here we are limited to documentation fixes and improvements only.
We will be very happy if you can share the outcome or resolution with us if you see documentation update is required. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Bad/Old session breaks dalli

I think I had an old session in my memcached instance.  When I went to login, the UI code tries to call handle_invalid_session -> reset_session -> delete_session which causes undefined method 'private_id' for nil:NilClass.  This private_id was handled in https://github.com/ManageIQ/manageiq/blob/40a437342ec46511cc65f8f89f1701a16e5c0ac2/app/models/user.rb#L237-L240, for one path, and I think it just needs to go to another path.
[----] D, [2022-03-11T12:02:46.021204 #34423:ac648] DEBUG -- : down_retry_delay not reached for <IP_ADDRESS>:11211 (28.862 seconds left)
[----] F, [2022-03-11T12:02:46.026129 #34423:ac648] FATAL -- : Error caught: [NoMethodError] undefined method `private_id' for nil:NilClass
/Users/jfrey/.gem/ruby/2.7.4/gems/dalli-3.1.6/lib/rack/session/dalli.rb:101:in `memcached_key_from_sid'
/Users/jfrey/.gem/ruby/2.7.4/gems/dalli-3.1.6/lib/rack/session/dalli.rb:93:in `block in delete_session'
/Users/jfrey/.gem/ruby/2.7.4/gems/connection_pool-2.2.5/lib/connection_pool.rb:63:in `block (2 levels) in with'
/Users/jfrey/.gem/ruby/2.7.4/gems/connection_pool-2.2.5/lib/connection_pool.rb:62:in `handle_interrupt'
/Users/jfrey/.gem/ruby/2.7.4/gems/connection_pool-2.2.5/lib/connection_pool.rb:62:in `block in with'
/Users/jfrey/.gem/ruby/2.7.4/gems/connection_pool-2.2.5/lib/connection_pool.rb:59:in `handle_interrupt'
/Users/jfrey/.gem/ruby/2.7.4/gems/connection_pool-2.2.5/lib/connection_pool.rb:59:in `with'
/Users/jfrey/.gem/ruby/2.7.4/gems/dalli-3.1.6/lib/rack/session/dalli.rb:170:in `with_dalli_client'
/Users/jfrey/.gem/ruby/2.7.4/gems/dalli-3.1.6/lib/rack/session/dalli.rb:92:in `delete_session'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/request/session.rb:82:in `destroy'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/http/request.rb:361:in `reset_session'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/flash.rb:77:in `reset_session'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal.rb:209:in `reset_session'
/Users/jfrey/.gem/ruby/2.7.4/bundler/gems/manageiq-ui-classic-e1c1adcde1dc/app/controllers/application_controller.rb:898:in `handle_invalid_session'
/Users/jfrey/.gem/ruby/2.7.4/bundler/gems/manageiq-ui-classic-e1c1adcde1dc/app/controllers/application_controller.rb:971:in `check_privileges'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:428:in `block in make_lambda'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:200:in `block (2 levels) in halting'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:201:in `block in halting'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:513:in `block in invoke_before'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:513:in `each'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:513:in `invoke_before'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:134:in `run_callbacks'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/abstract_controller/callbacks.rb:41:in `process_action'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/rescue.rb:22:in `process_action'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications.rb:180:in `block in instrument'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications.rb:180:in `instrument'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
/Users/jfrey/.gem/ruby/2.7.4/gems/activerecord-<IP_ADDRESS>/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/abstract_controller/base.rb:136:in `process'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionview-<IP_ADDRESS>/lib/action_view/rendering.rb:39:in `process'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal.rb:190:in `dispatch'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_controller/metal.rb:254:in `dispatch'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/routing/route_set.rb:33:in `serve'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/journey/router.rb:32:in `each'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/journey/router.rb:32:in `serve'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/routing/route_set.rb:834:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-attack-6.5.0/lib/rack/attack.rb:113:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/routes_lazy_routes-0.4.2/lib/routes_lazy_routes/lazy_routes_middleware.rb:16:in `call'
/Users/jfrey/dev/manageiq/lib/request_started_on_middleware.rb:12:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/conditional_get.rb:27:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/cookies.rb:654:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/callbacks.rb:101:in `run_callbacks'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/executor.rb:14:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/railties-<IP_ADDRESS>/lib/rails/rack/logger.rb:37:in `call_app'
/Users/jfrey/.gem/ruby/2.7.4/gems/railties-<IP_ADDRESS>/lib/rails/rack/logger.rb:28:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/sprockets-rails-3.4.2/lib/sprockets/rails/quiet_assets.rb:13:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/activesupport-<IP_ADDRESS>/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/executor.rb:14:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/static.rb:126:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/actionpack-<IP_ADDRESS>/lib/action_dispatch/middleware/host_authorization.rb:103:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/secure_headers-3.9.0/lib/secure_headers/middleware.rb:12:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/railties-<IP_ADDRESS>/lib/rails/engine.rb:527:in `call'
/Users/jfrey/.gem/ruby/2.7.4/gems/railties-<IP_ADDRESS>/lib/rails/railtie.rb:190:in `public_send'
/Users/jfrey/.gem/ruby/2.7.4/gems/railties-<IP_ADDRESS>/lib/rails/rail...

This seems like a fix that belongs in dalli proper
Wonder if you could just change delete_session() to handle the case where record_id == nil for a given session, and instead use dc.delete(sid) (This is just an idea. I have not tested).
Then again, It seems valid to just require you dump memcached after upgrading the dalli gem version across major versions.

This seems like a fix that belongs in dalli proper

This was changed in https://github.com/petergoldstein/dalli/commit/3abf71533c5288dd49c4756fb1c9f2989e263e89 (dalli 3.1.0)
It was called out in https://github.com/petergoldstein/dalli/blob/main/History.md#310
BREAKING CHANGE: Update Rack::Session::Dalli to inherit from Abstract::PersistedSecure. This will invalidate existing sessions (petergoldstein)
We only had the change in User: session_id = session_id.private_id if session_id.respond_to?(:private_id) to allow us to use either 3.1.x or earlier dalli for testing different versions on master.
I can see deleting sessions when we upgrade on our end but I'm not sure we can reasonably get a 3.0/3.1 compatible change in upstream dalli.  There is no reason for them to do it as they don't support both 3.0/3.1+ going forward, it's only 3.1+.

I'm fine with the way we do it currently, it just seems like a missed path. Ironically the ui-classic method is named handle_invalid_session, and yet we can't handle it 😉

haha.  yeah, we'd need delete_session to be able to handle it.  Maybe we can try that upstream but it seems odd that an installation would have <3.1 dalli session data with 3.1 dalli.  I don't know how feasible it is to get them to accept it.

So you are deleting a session that is not valid... Seems that it would be able to delete a session that was found.
The solution should live in delete_session, guess monkey patch it is.

Yeah, maybe?  I don't know.  We could possible monkey patch the old class Rack::Session::Dalli < Abstract::Persisted to have a private_id method that returned self so it looks more like Abstract::PersistedSecure

@jrafanie @kbrock  I think this is fixed right?  Can we close this one?

I don't know that all edges cases regarding the content of session have been fixed, especially if objects in session have had their class change since it was persisted in session, such as if we remove a class, which happens occasionally.  Without a recipe though, I don't know that using the sledgehammer of whacking the session if we failed is a good general workaround.  I'd rather we deal with issues and try to fix them if we can recreate them.

Dali also updated their session code to handle this case. (goldstein rocks)
So in the future, we potentially can drop our custom code.
I just never had a good test bed to test this.


fix Issue 13889 - mscoff32 libs not available

Issue 13889 – mscoff32 libs not available

LGTM

It seems I don't have access rights to merge this...


Add project's status information and disclaimer to README

This PR will add a note on OrbitDB's status to the README. This is to improve users understanding of what to expect using OrbitDB.

100%. Good addition. Thanks, @haadcode.


Fix typographical error in README.md

replace "autometed" with "automated"

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Other information:

thanks!


Create new dashboard mode

This is for @eherman

Tested and mode is available. Merging into develop.

Passed in develop


Official Spec for Signify

Hello,
I was wondering if there was an official RFC-esque spec for Signify for other implementations to refer to. I was reading through the source code for signify-rs and that does give me an idea of what the standard is, but I would prefer to have something official.
I do realize that signify is just a relatively small layer above ED25519, however I still feel a format for keys/comments etc is warranted.

For example, the only way of knowing the format of keys stored in base64 after the comment is reading the source code here: https://github.com/aperezdc/signify/blob/7960f786e4925b49d73be70a8af4f9834555b97a/signify.c#L52
Secondly, I also believe the comment is strictly only allowed to be one line, but I can't find this written anywhere. Perhaps I could help put together a spec markdown file by reading the source code.

Oh okay, thanks for the reply. If i ever end up writing a specification document myself I'll make sure to upstream/make generally available


MS-DOS 2.01 / 2.05 / 2.1 / 2.10 / 2.10a / 2.11 / 2.12 / 2.13 / 2.2

Are there any plans or chances for the source code of MS-DOS 2.01 / 2.05 / 2.1 / 2.10 / 2.10a / 2.11 / 2.12 / 2.13 / 2.2 including the translationed variants? According to the Internet, MS-DOS 2.11 was likely the first version with a German translation…

Yes, I think we could learn a lot through that code.

Microsoft can't release the source code before deleting bill gates nudes
it will take them 20 years approximately

Aren't a lot of these versions OEM specific ones? Microsoft can't release these. They could technically only release the versions that were shipped to manufacturers.

@DC7IA I honestly think that there is very little to be learned from this code anymore... at least not anything that wasn't historical like "Hey kids... you wouldn't believe how us old folk used to roll"
DOS was a very very simplistic operating system and it's truly amazing it wasn't cloned more. If I had been 10 years older back then, I might have hacked together my own as it wasn't particularly difficult... well except that compatibility could be difficult to achieve.
These days, even the most simplistic operating system would be based on some form of an ABI that allowed C style calls from applications to the kernel. This in itself is a massive improvement over DOS. The simple fact that DOS did everything using software interrupts stacked on other software interrupts etc... was one of the main reasons DOS was a disaster in architectural terms (at least by modern standards). Consider that every other operating system which was WAY more advanced were so much more advanced because they could just add functions and APIs without difficulty. DOS was a nightmare to maintain. But this was the architecture chosen by the authors of CP/M since in many ways, it was really easy to make single tasking applications that could directly access hardware without fears of semaphores and race conditions.
But as I said, if you wanted to make a new operating system today... starting in a VM which could simulate BIOS instead of UEFI can be helpful. This is because the boot process of UEFI is more complex than DOS as a whole ever was. This isn't a bad thing, it's just a difficult thing to manage.
The next step is to write code to load code. Simply make an OS loader which can read the OS kernel into RAM.
Finally, if you're looking to make something DOS like, put things in fixed memory locations and then just jump to the start of a program's memory. Otherwise, you can make a kernel with proper system calls. Multitasking will still be difficult as it will require understanding how to push and pop full CPU states and how to schedule and handle hardware interrupts (which are actually MMIO operations today).
But to be completely honest, you can make something WAY WAY WAY more advanced today in hours than DOS was after years by using what we've learned since then.

Sorry - no plans to publish more recent versions.

For now.


AndrewMa not AndrewMa

It should say Andrew Ma (with a space) not AndrewMa.

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

ID: 8345d077-5dab-e3b0-4109-facb509c8b68
Version Independent ID: c666ff4f-6f8d-28b6-c4cf-57f433fc2688
Content: Use row-level security with Power BI embedded content - Power BI
Content Source: powerbi-docs/developer/embedded/embedded-row-level-security.md
Service: powerbi
Sub-service: powerbi-developer
GitHub Login: @KesemSharabi
Microsoft Alias: kesharab

Hi @ADefWebserver, thanks for pointing that out! Forwarding your observation over to the doc author.

@ADefWebserver,
Thank you for spotting this!
I added a gap between 'Andrew' and 'Ma' - see Adding roles with Power BI Desktop.
Thanks again for your contribution,
Kesem


delete events when receive 404 from events building block

Description
Please provide a summary of the pull request and the issue it fixes. Please add necessary details, context, dependencies, explanation of when review is needed (see next section), etc.
Fixes #(add issue number here and remove parentheses)
Review Time Estimate
Please give your idea of how soon this pull request needs to be reviewed by selecting one of the options below. This can be based on the criticality of the issue at hand and/or other relevant factors.

[ ] Immediately
[ ] Within a week
[ ] When possible

Type of changes
Please select a relevant option:

[ ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
[ ] Other (any another change that does not fall in one of the above categories.)

Checklist:
Please select all applicable options:

[ ] I have signed the Rokwire Contributor License Agreement (CLA). (Any contributor who is not an employee of the University of Illinois whose official duties include contributing to the Rokwire software, or who is not paid by the Rokwire project, needs to sign the CLA before their contribution can be accepted.)
[ ] I have updated the CHANGELOG.
[ ] I have read the Contributor Guidelines.
[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] My change requires updating the documentation.
[ ] I have made necessary changes to the documentation.
[ ] I have added tests related to my changes.
[ ] My changes generate no new warnings.
[ ] New and existing unit tests pass locally with my changes.
[ ] Any dependent changes have been merged and published in downstream modules.

@bingzhang, please fix the merge conflict too. Thanks.

@bingzhang, could you please fix the merge conflicts too? We can merge this PR after that. Thanks.


No test coverage for NuGet tasks

I believe this is about not having Unit tests for the Nuget tasks. @ericsciple : will this be you?

Packaging team owns that. Matt opened that issue when he was PM of that team. I'll send them an email, I can't find an appropriate owner in the assignee dropdown.

Keeping this open for a bit longer but untagging Dev15.  We have a lot of scenario tests we've written in a private vsts account, we're looking to see what value can be had from UTs given a majority of what is interesting to test here is versions of nuget and interactions with the repo, not the bits of code around the call to nuget.  Still looking to add something, but not blocking dev15 given our other tests.

#2677 integrated our L0s.  Our scenario tests are still outside the code here


Bug: Divider / Page Content not centered when tableOfContents disabled

What version of starlight are you using?
0.9.1
What version of astro are you using?
3.0.10
What package manager are you using?
npm
What operating system are you using?
Windows
What browser are you using?
Chrome, Firefox
Describe the Bug
When the tableOfContents option is disabled via the frontmatter in an MDX file, as shown below:
---
title: Title of the Page
description: Description of the Page
tableOfContents: false
---

Referring to Discord (message)
The resulting website exhibits a formatting issue where the divider and content are not properly centered on the page. This misalignment disrupts the visual presentation of the content.
First time using stackblitz, so hopefully it's correct. The two examples are given in the two pre-made files.

 Basically nothing is centered.
Smaller screens / How it's supposed to be:

Link to Minimal Reproducible Example
https://stackblitz.com/edit/github-7maapr
Participation

[ ] I am willing to submit a pull request for this issue.

Thanks for the report @Faf4a! I can confirm this is a bug. If anyone wants to try fixing it, we'd love a PR!


Not an issue, just want some info.

I'm interested in installing a Jdownloader2 LXC, but would like some info on possibly installing with 1 or maybe 2gb storage instead of the 32gb as I'll be linking to my Synology nas via NFC. Thank you for any help.

Just replace 32GB with the value you prefer in line 133


Force download option.

How would you go about the force download option? Is that something you could achieve with twig {% header %} tags alone? I'm stumbling on how to include the raw contents of the file after the headers with twig...
{% header 'Content-Description: File Transfer' %}
{% header 'Content-Type: '~asset.mimetype %}
{% header 'Content-Disposition: attachment; filename='~asset.filename %}
{% header 'Content-Transfer-Encoding: binary' %}
{% header 'Expires: 0' %}
{% header 'Cache-Control: must-revalidate' %}
{% header 'Pragma: public' %}
{% header 'Content-Length: '.asset.size %}
{# Somehow print raw source of asset.filename #}

(Also, I swear I just stumbled upon this through a Google search, but so weird that we found each other's plugins on the same day and are each requesting features)

Small world! I should think this is more a twig thing, but if there is anything that I can do to help plugin side just let me know?
In the past I have used a plugin called Safelink,by Ben from DUKT / P&T :), although i'm not sure what plans he has for it.

Thanks Sam. I'm giving this a try, seems like it should do the job.
https://github.com/masonn/craft-yii-sendfile

Where about's are you based? It would be good to catch up and talk Craf / PHP dev, we have projects coming out of our ears it would be good to talk?

I'm in Berlin, where are you guys? Would be very happy to talk, let's set up a Skype chat? Send me an email if you like: mike (at) someoneandsons.net.

Is this something that you still feel would be beneficial to this field type?

Sure, why not!?
I think in the end I used this plugin to achieve the effect, maybe you can draw some inspiration there? https://github.com/masonn/craft-yii-sendfile

On the roadmap.


how to pass target url

Hello
Thanks for your efort .
how to pass target url ?
Best regard
Dj

You can do that e.g. with environment variables.
TARGET_URL=https://staging.foo.bar folio tests
and in the code you can access it with console.log(process.env.TARGET_ENV).
Does this fit for your needs?

See  Parameterize your tests
https://github.com/microsoft/playwright-test/tree/mxschmitt-docs/rename-test-runner-npx

See  Parameterize your tests
https://github.com/microsoft/playwright-test/tree/mxschmitt-docs/rename-test-runner-npx


Creating Wiki Page Results in Error

Gitea version (or commit ref): 1.11.5
Git version: 2.26.2
Operating system: Arch Linux
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Log gist:

Description

Create a new repo.
Go to the Wiki tab.
Click "Create the First Page"
Click "Save Page"
See error:
template: repo/wiki/view:48:14: executing "repo/wiki/view" at <(not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))>: can't give argument to non-function not $.DisableHTTP

Duplicate of https://github.com/go-gitea/gitea/issues/10552
The problem comes from building Gitea 1.11.x (or presumably earlier versions as well) using Go 1.14 rather than 1.13 (or below)
This issue is fixed and will be included in Gitea 1.12+


Add (optional) custom error code

Makes an optional custom error code available on the error object
Also fixes a stale test

Added Travis in the commit as well. Going to merge this one since it is passing tests and fixes the error you found @esclapes :raised_hands:
After that I'll publish a new version


Nav bar item/hover height

@Hellowlol just a random question on the theming - when hovering over the nav-menu items the highlight doesn't cover the full height of the navbar.  I've tried changing ever value I can find but can't get it to cover the full height.    What value do I need to target to change that please?
It's the same in the existing themes - if you look at United you'll see what I mean.  Not as noticeable on themes like Slate or on those like Simplex which have no hover highlighting but it seems to be present on all of them.

.nav-menu-item {
  line-height: 28px !important;
}

Thanks :)


M05-Unit 4 Deploy Azure application gateway.md

Module: 05
Lab/Demo: 06
Description of issue : Reviewer wants lines removed and added to M05-Unit 4 Deploy Azure application gateway.md
Repro steps: Open file M05-Unit 4 Deploy Azure application gateway.md
See image below

Pull request: https://github.com/MicrosoftLearning/AZ-700-Designing-and-Implementing-Microsoft-Azure-Networking-Solutions.ja-jp/pull/5/commits/428c354aa35d456658c2f5c97c21c51b7438f172


No instructions for MacOS brew install

There are no installation instructions for installing on Mac using brew.

Duplicate of #98


The Mix manifest does not exist

ErrorException (E_ERROR)
The Mix manifest does not exist. (View: C:\Users\Genius HP\Desktop\cmslaravel\resources\views\layouts\application.blade.php) (View: C:\Users\Genius HP\Desktop\cmslaravel\resources\views\layouts\application.blade.php)

You need to run the command below to generate assets.
$ npm install && npm run dev


Fix examples in readme

I've been messing around a bit with COMMENT_TEMPLATE in my private repository and noticed that the examples in the README don't all work or cause unwanted effects (visible marker).
Regarding the quotes in the last commit: when I tried to use the example without quotes, Github did not interpret the input as a string, but tried to process it somehow differently. While this is not a problem with some other examples, it might make sense to make all examples with quotes and add a note to that effect, but that's their decision.

Thank you very much :)
Hey, I'm noticing you're quite active on the project, and I'm not that much. Would you be interested with an official "position" in the project ? Not that it's something with lots of activity (as you've seen), but you seem interested, so I'm asking :)

Sure, glad to help :)
First of all, I am very honored. Thank you for the offer. What would that mean explicitly?
I am happy to take some responsibility for the project and help especially with opened issues or questions.

What would that mean explicitly?

I can give you maintainer rights to the repo, or commit permissions if you want, list you on the readme as a maintainer with me, set you as a codeowner, etc. You tell me :) You're in the team :)

You're in the team :)

Thank you :)
Commit permission would be great to be able to directly fix small bugs (like the one in this PR). For big changes I would still open PRs to get your approval.
You are also welcome to write me in the README and add me as codeowner.


Bump version from 8.1.1 to 8.1.2. This is the new final version for release 8.1.2

Bump version from 8.1.1 to 8.1.2. This is the new final version for release 8.1.2

Added new class AzureAISearchOptions to configure connection parameters for Azure AI Search.
Added new extension method AddAzureAISearchMemoryStore to add Azure AI Search as a valid vector database for a IMemoryStore instance.
Improved extensions methods for adding IMemoryStore to consider debouncing when monitoring changes in parameters.
Added default values for TextSplitterOptions to allow using it without explicit configuration.
Some code improvements to use .NET 8 and C# 12 features.
Added new Debouncer class to provide mechanisms to prevent multiple calls to a method or event.
Updated dependencies:

Updated Semantic Kernel from 1.1.0 to 1.3.0 (third final version of Semantic Kernel).
Updated Microsoft.Azure.Cosmos from version 3.37.1 to 3.38.0.
Updated Microsoft.Bot.Builder.Azure from version 4.21.2 to 4.22.0.
Updated Microsoft.Bot.Builder.Azure.Blobs from version 4.21.2 to 4.22.0.
Updated Microsoft.Bot.Builder.Dialogs from version 4.21.2 to 4.22.0.
Updated Microsoft.Bot.Builder.Integration.ApplicationInsights.Core from version 4.21.2 to 4.22.0.

There are no breaking changes 😄


Persistent Input Method Candidate Words and UI Ghosting Bug

Hyprland Version
 System/Version info
Hyprland, built from branch  at commit ae52b7f4680716976d05b638aaa90e169d199117  ().
Date: 2024-03-26
Tag:

flags: (if any)

System Information:
System name: Linux
Node name: Wanten-Nixos-Uakari
Release: 6.6.22
Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar 15 18:25:07 UTC 2024

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630] [8086:3e9b] (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106M [GeForce RTX 2060 Mobile] [10de:1f11] (rev a1) (prog-if 00 [VGA controller])

os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05pre-git"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"

plugins:

Bug or Regression?
Bug
Description
After inputting text, remnants of the input method candidate words persist on the screen, creating a ghosting effect. Additionally, when navigating to a new page in various browser extensions, the display remains stuck on the previous page until manually scrolled, revealing the new content at the bottom. It appears that the page fails to refresh immediately, resulting in residual artifacts.
How to reproduce
Please watch the video below.
Crash reports, logs, images, videos
https://github.com/hyprwm/Hyprland/assets/41904684/4dafc977-c17a-40dd-aee7-33942caf7410

Is this related to https://github.com/hyprwm/Hyprland/issues/5256 ?
On another note, not related to IME at all but I get a lot of redraw artifacts in Qt applications specifically:
kwrite_popup_ghosting.webm
Example above is KWrite's word suggestion popup. I don't know if it is worth yet another issue so I'm posting it here since it seems to be redraw-related as well. Same in Cantata (a Qt mpd GUI) where popup tooltips will leave behind flickering remnants like crazy sometimes.

that was fixed in git @M4he

to me this is #5256 so I will redirect you there

that was fixed in git @M4he

Does not seem to be the case unfortunately, I can still repro what is shown in my above recording of KWrite on ae52b7f4680716976d05b638aaa90e169d199117 but maybe it is really a different root cause than the IME stuff and only seems similar visually ...

that's not IME lmao

@vaxerski @M4he
The system I use is NixOS, which allows for convenient rollback to previous commit versions, but I forgot to do so at the time.
Today, after repeated rollbacks and upgrades, I identified the issue. The candidate words in the input method (fcitx5) persist after input and create a residual shadow due to this commit: "IME: Improve handling of text-input and ime-relay" (5c1097cbc19131a7770b2a3f01f6f24e626991d2).
My current flake.lock version:

    "hyprcursor": {
      "inputs": {
        "hyprlang": "hyprlang",
        "nixpkgs": [
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified":<PHONE_NUMBER>,
        "narHash": "sha256-sArxGyUBiCA1in+q6t0QqT+ZJiZ1PyBp7cNPKLmREM0=",
        "owner": "hyprwm",
        "repo": "hyprcursor",
        "rev": "d3876f34779cc03ee51e4aafc0d00a4f187c7544",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprcursor",
        "type": "github"
      }
    },
    "hyprland": {
      "inputs": {
        "hyprcursor": "hyprcursor",
        "hyprland-protocols": "hyprland-protocols",
        "hyprlang": "hyprlang_2",
        "nixpkgs": "nixpkgs",
        "systems": "systems_2",
        "wlroots": "wlroots",
        "xdph": "xdph"
      },
      "locked": {
        "lastModified":<PHONE_NUMBER>,
        "narHash": "sha256-8PyLk/gfMo4asjbqsoXw1I3zfnkCPSSX0r6UCJP3ctw=",
        "owner": "hyprwm",
        "repo": "Hyprland",
        "rev": "05c84304ccb1169b550504830139e07e28500a3b",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "Hyprland",
        "type": "github"
      }
    },
    "hyprland-protocols": {
      "inputs": {
        "nixpkgs": [
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified":<PHONE_NUMBER>,
        "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
        "owner": "hyprwm",
        "repo": "hyprland-protocols",
        "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprland-protocols",
        "type": "github"
      }
    },
    "hyprlang": {
      "inputs": {
        "nixpkgs": [
          "hyprland",
          "hyprcursor",
          "nixpkgs"
        ],
        "systems": "systems"
      },
      "locked": {
        "lastModified":<PHONE_NUMBER>,
        "narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=",
        "owner": "hyprwm",
        "repo": "hyprlang",
        "rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprlang",
        "type": "github"
      }
    },
    "hyprlang_2": {
      "inputs": {
        "nixpkgs": [
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified":<PHONE_NUMBER>,
        "narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=",
        "owner": "hyprwm",
        "repo": "hyprlang",
        "rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprlang",
        "type": "github"
      }
    },

If I modify (upgrade) 05c84304ccb1169b550504830139e07e28500a3b to 5c1097cbc19131a7770b2a3f01f6f24e626991d2, the aforementioned issue occurs.
This commit's code diff altered the logic related to input methods, thereby causing this problem.

feel free to MR, IMEs work properly on my end on -git.


Resource level logging testcase added.

Related Isssue:
https://github.com/wso2/api-manager/issues/1564
Related PRs:
https://github.com/wso2/wso2-synapse/pull/2083
https://github.com/wso2/carbon-apimgt/pull/12106

Closing as the changes are addressed by the PR [1].
[1] https://github.com/wso2/product-apim/pull/13384


Enhance build process

Issue description
Describe your issue in detail here
Enhance build process with windows & mac builds, artifact downloading (test coverage, build files, ...)
See https://docs.github.com/de/actions/using-workflows/storing-workflow-data-as-artifacts
Definition Of Ready (DoR)
This issue can be worked on if

[x] a developer is assigned
[x] the issue is labeled
[ ] the issue is assigned to the current sprint
[ ] the issue is estimated
[x] a meaningful title has been set
[x] the issue is described in detail

it may even be possible to automatically attach binaries to a new release