Dismiss detail view controller

Is there a way to dismiss the detail view controller only by performing a gesture on the image view rather than the whole content of the detail view controller?

Actually, I don't think so.
You can try preventing user interaction in the scroll view of DetailViewController file,
and then call dismiss() on backroungIV view.
Let me know if you're having troubles ;)

I can’t seem to figure out how to do what you said above? Do you have any example code that can achieve this?

Forgive me if I have expressed myself badly, english isn't my first language.
Anyway,  the detail view controller's view is composed of a scrollview that contains the card content on top and the view managed by a 3rd ViewController below.
So actually there isn't a way to do what you asked for, but you can try to achieve this by playing with the scroll view Delegate methods:
// Line 176 //MARK: - ScrollView Behaviour
extension DetailViewController: UIScrollViewDelegate {

  public func scrollViewDidScroll(_ scrollView: UIScrollView) {

        let y = scrollView.contentOffset.y
        let offset = scrollView.frame.origin.y - scrollViewOriginalYPosition

        // Behavior when scroll view is pulled down
        if (y<0) {
            scrollView.frame.origin.y -= y/2
            scrollView.contentOffset.y = 0

          // Behavior when scroll view is pulled down and then up
        } else if ( offset > 0) {

            scrollView.contentOffset.y = 0
            scrollView.frame.origin.y -= y/2
        }

        card.delegate?.cardDetailIsScrolling?(card: card)
    }

    public func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

        let offset = scrollView.frame.origin.y - scrollViewOriginalYPosition

        // Pull down speed calculations
        let max = 4.0
        let min = 2.0
        var speed = Double(-velocity.y)
        if speed > max { speed = max }
        if speed < min { speed = min }
        speed = (max/speed*min)/10

        guard offset < 60 else { dismissVC(); return }
        guard offset > 0 else { return }

        // Come back after pull animation
        UIView.animate(withDuration: speed, animations: {
            scrollView.frame.origin.y = self.scrollViewOriginalYPosition
            self.scrollView.contentOffset.y = 0
        })
    }

    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {

        let offset = scrollView.frame.origin.y - scrollViewOriginalYPosition
        guard offset > 0 else { return }

        // Come back after pull animation
        UIView.animate(withDuration: 0.1, animations: {
            scrollView.frame.origin.y = self.scrollViewOriginalYPosition
            self.scrollView.contentOffset.y = 0
        })
    }

}

Some tips:
You could try to save the position of the first touch and block the scroll in the scrollviewdidscroll() method if the offset is > 0 and the starting position is inside the card content (BackgroundIV)

OK because I am trying t get the card animation to look exactly like that on the app store where you can only dismiss the detail view controller by scrolling on the image view, no the whole content because then the user can easily/accidentally dismiss the view controller.


Support make install-crc

https://github.com/code-ready/crc
I can take a look at this if it's ok

That would be great. The only thing that was not solved up to last time I looked into CRC, is how to make a local container image available to CRC.
In the early days of minishift we did eval $(minishift docker-env), then we built the image. But that approach did not work with CRC.


[Doc] Add doc for RotatE

Issue #, if available:
#980
Description of changes:
Add doc for RotatE
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Can we have a preview link for these updated pages?


[BEAM-2939] Mark Deduplicate as experimental

https://github.com/apache/beam/pull/11065#discussion_r389407728

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

R: @iemejia


Docs page for writing adapters refers to old polyfill package name

Describe the problem
The page for writing adapters refers to @sveltejs/kit/install-fetch but this package was renamed to @sveltejs/kit/node/polyfills.
https://github.com/sveltejs/kit/blob/67c02148a9526d49a147b865c4742e8b7c48b3a8/documentation/docs/25-build-and-deploy/99-writing-adapters.md?plain=1#L40
Describe the proposed solution

Change the package name to @sveltejs/kit/node/polyfills.
Update language to also say that crypto is shimmed as part of the package.

Alternatives considered
No response
Importance
nice to have
Additional Information
No response

Hello, I am new to this world of contributing to open source project. And I would like give my firs contribution on solving this. Could you please asign this to me?


CRTORD.CMD references non-existent program CRTORD

I built the project per the Sample Build instructions (of course getting redirected to this, the active repository).
The build was successful.
Objects:             0 failed 116 succeed 116 total
Build Completed!

I looked for a command to try it out and I found BOBTEST/CRTORD which fails referencing a non-existent program CRTORD.

Fixed in the latest.
Thanks for bringing it to our attention.


SIGTRAP on reloading window

I am developing an extension for VS Code, so I work with Typescript and the integrated debugger.
I restarted the debugging session (workbench.action.debug.restart, Ctrl + Shift + F5), when the whole editor and the guest suddenly crashed.
Last line of dmesg in a terminal:
[12917.255906] traps: code-insiders[20724] trap invalid opcode ip:563e5fa8160e sp:7ffe542f6a90 error:0 in code-insiders (deleted)[563e5e038000+4c02000]

I had my extensions enabled.
I will add more info whenever it reproduces.
I guess we can't find the guilty line from the instruction pointer!
VS Code version: Code - Insiders 1.38.0-insider (ada79d72be36ecbfed6f88bb16edcc5cc3f5c2a8, 2019-08-21T13:25:25.587Z)
OS version: Linux x64 4.15.0-58-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (12 x 3900)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwareoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: unavailable_offviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 0, 0

Memory (System)
15.51GB (8.55GB free)

Process Argv
--unity-launch

Screen Reader
no

VM
0%

Now I can reproduce on a Linux machine that has apt

Downgrade VS Code
sudo apt install code-insiders:amd64=1.38.0-1566394450

Open code-insiders or run it in gdb
gdb /usr/share/code-insiders/code-insiders
run

Upgrade VS Code
sudo apt install -y code-insiders:amd64=1.38.0-1566813268

Run command "Developer: Reload Window" or reload existing debugging session

GDB log
Thread 1 "code-insiders" received signal SIGTRAP, Trace/breakpoint trap.
0x0000555558d7660e in ?? ()
(gdb) display/i $pc
1: x/i $pc
=> 0x555558d7660e:	ud2

@sguillia I do not understand how the 4 steps from above are related to extension debugging?
In step 2 you are using "gdb" to debug VS Code itself (and I'm not aware that this is supported at all).

@weinand I apologize, I never said that this was related to extension debugging.
The crash can happen when reloading the window, or restarting the debug session, which is the only link with extension debugging.
When opening the issue, I didn't knew what caused the problem. I mentionned it to make it easier to reproduce on your side.
I launched GDB to show that VS Code received a signal because of a trap in your code.
GDB is optional, you can just try to reproduce, and VS Code will crash with no error message other than the one in dmesg.

@sguillia does the problem reproduce if you disable all extensions?

@weinand yes

We are building exploration builds that use a much newer version of our UI framework (Electron version 6.0.x). I wonder if this issue reproduces with one of these builds, could you try? Download:

macOS: Download
Linux (DEB): Download
Linux (RPM): Download
Windows: Download

@bpasero Sure but I need to have two versions of your exploration builds to try reproduce

Newer: https://az764295.vo.msecnd.net/exploration/6d1e7d3efea60198cf65d06cc519b622a46e33ba/code-exploration_1.38.0-1567147127_amd64.deb

Yes it still reproduces, sorry
$ code-exploration --version
1.37.0-exploration
960208fdf9aa06e6892aa14c9c84ddd607fbeb2f
x64

$ code-exploration

$ sudo dpkg -i code-exploration_1.38.0-1567147127_amd64.deb

$ code-exploration --version
1.38.0-exploration
6d1e7d3efea60198cf65d06cc519b622a46e33ba
x64

$ # Reload window

Crashes with SIGTRAP:
$ sudo dmesg
...
[217135.857019] traps: code-exploratio[28294] trap invalid opcode ip:558554274dec sp:7fffb71b4910 error:0 in code-exploration (deleted)[558552404000+531d000]

I guess that this issue will affect few users. It happened to me because Insiders updates are very frequent, and I always had VS Code open when running sudo apt upgrade. Then sometimes I launch a debug session or I reload the window.

disable all extensions?

even the ones bundled with vs code?

using "gdb" to debug VS Code itself

wait, SIGTRAP is generated for reloading window? thought it would be when launching a debug session. and what is the signal for a debug session?

I guess that this issue will affect few users. It ... running sudo apt upgrade. Then sometimes I launch a debug session or I reload the window.

well, to be sure will need more info as to why this is happening.

@annoying258

disable all extensions?

Yes
Didn't knew there were built-in extension, nor that they aren't disabled by "Disable all extensions".
Still reproduces with all extensions and built-in extensions disabled.
I wish there were a "Disable all built-ins" button, this would have saved me 72 manual disabling (ping #52639).

using "gdb" to debug VS Code itself

SIGTRAP is generated when reloading window
SIGTRAP is also generated when restarting a debug session
There is no difference, VS Code crashes the same way
The SIGTRAP is emitted by the ud2 instruction

Can you reproduce on your side?

@sguillia to clarify you can now reproduce the crash simply by reloading the window using Exploration builds and Insiders?

@bpasero Reproduces from
$ code-insiders --version
1.39.0-insider
9f6a745027fc7b2a12495970f64625e24f410224
x64

I need the link to two exploration builds to reproduce

@sguillia and latest insiders (which is 1.40 and also has an Electron update - same as exploration)?

@bpasero Also reproduces when downgrading from this one:
$ code-insiders --version
1.40.0-insider
3f6ed25939b8ef157a7a41e0dc43b517898d4005
x64

To 1.38.0-insider.

@sguillia does it reproduce when you do this:

open command line
run code-insiders --user-data-dir <some dir on disk>
Reload Window

The VS Code instance I am reloading have to be open before I do apt install code-insiders. It will not reproduce with these steps.
I will try the following tomorrow:

open command line
run code-insiders --user-data-dir <some dir on disk>
run apt install code-insiders
Reload window

Thanks

@bpasero It still crashes from 1.40.0-insider with a custom empty user-data-dir

Can you please follow the steps in https://github.com/Microsoft/vscode/wiki/Native-Crash-Issues to get at more details around the crash and attach the result here? Thanks!

Well this still reproduces but I have no time for this until next week
I hope you can re-open when I'll add more info here @bpasero
Please don't lock

Can you please follow the steps in https://github.com/Microsoft/vscode/wiki/Native-Crash-Issues to get at more details around the crash and attach the result here? Thanks!

You will be disappointed by the backtrace.
(gdb) bt
#0  0x0000556c6891bed1 in ?? ()
#1  0x0000000000000000 in ?? ()

Fulll GDB log
$ gdb /usr/share/code-insiders/code-insiders ./core
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/share/code-insiders/code-insiders...(no debugging symbols found)...done.
[New LWP 20388]
[New LWP 20405]
[New LWP 20404]
[New LWP 20395]
[New LWP 20413]
[New LWP 20401]
[New LWP 20400]
[New LWP 20403]
[New LWP 20414]
[New LWP 20412]
[New LWP 20420]
[New LWP 20407]
[New LWP 20443]
[New LWP 20411]
[New LWP 20397]
[New LWP 20393]
[New LWP 20408]
[New LWP 20399]
[New LWP 20424]
[New LWP 20398]
[New LWP 20419]
[New LWP 20417]
[New LWP 20418]
[New LWP 20422]
[New LWP 20409]
[New LWP 20430]
[New LWP 20406]
[New LWP 20402]
[New LWP 20415]
[New LWP 20421]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/share/code-insiders/code-insiders --no-sandbox .'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0x0000556c6891bed1 in ?? ()
[Current thread is 1 (Thread 0x7fa212f78b40 (LWP 20388))]
(gdb) bt
#0  0x0000556c6891bed1 in ?? ()
#1  0x0000000000000000 in ?? ()

@bpasero

This issue does not need more information (otherwise I can provide them)
@bpasero Can you remove the needs-more-info flag and re-open?

I'm experiencing this problem as well on v1.63.2.  I encounter it when I try to create a new window of code (File, New Window), although it only appears after code has been running for some time (eg: if I reopen it after a crash, I can open several windows without any issue).
kernel: [600032.730954] traps: code[2954934] trap invalid opcode ip:562af0719331 sp:7ffc39fe7fc0 error:0 in code (deleted)[562af036e000+5ee0000]

Version: 1.63.2
Commit: 899d46d82c4c95423fb7e10e68eba52050e30ba3
Date: 2021-12-15T09:39:46.686Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Linux x64 5.11.0-41-generic
Let me know if I can provide any further info.


Can this tool generate resx from cshtml?

I've cshtml (razor view) files (in an ASP.NET Web Pages website, not web application).  I thought i can generate resx files from cshtml files, but i couldn't find a function to do it. Is there a way to do it?

You can use "move to resource" from within cshtml files to extract strings into resource files

Thank you for the answer.
If I don't get it wrong, this feature belongs to the ReSharper, not ResXResourceManager. So, do I need to install ReSharper to use the "move to resource" function? Because I do not have ReSharper installed and I cannot see the standalone "move to resource" function in ResXResourceManager.

This is also a feature of ResXManager, just mark some text and right click...

This is a great extension and thank you so much.


DBZ-6716 Support Oracle DROP USER statements

https://issues.redhat.com/browse/DBZ-6716
Compared with upstream grammar, rule already exists.

Applied to main (=2.4) and branch 2.3.


add format judge about the cableName

The GetClusterIDFromCableName function was removed as part of https://github.com/submariner-io/submariner/pull/1879.


refactor hydro riemann solver

This moves the implementation of the hydro HLLC Riemann solver into a standalone function quokka::Riemann::HLLC. HydroSystem::ComputeFluxes is modified to call this function with the interface states.
This will make it easier to add new Riemann solvers in the future.

/azp run


High number of HA errors due to 503 Service Unavailable

Is this due to poor design of the bridge? Is there something I can do on my end to improve this? Maybe ditch the bridge and go for a custom bridge on Pi?
Home Assistant 2022.11.4
Nuki Bridge FW 1.23.0
Thanks!
2022-11-29 18:38:22.751 ERROR (MainThread) [homeassistant.components.webhook] Error processing webhook nuki_ng_bridge_hook_7d07fd866f13463a97b7839d1202d693 Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/webhook/__init__.py", line 129, in async_handle_webhook response = await webhook["handler"](hass, webhook_id, request) File "/config/custom_components/nuki_ng/nuki.py", line 449, in _hook_handler self._add_update(body.get("nukiId"), body) File "/config/custom_components/nuki_ng/nuki.py", line 368, in _add_update self.async_set_updated_data(data) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 313, in async_set_updated_data self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 110, in async_update_listeners update_callback() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 348, in _handle_coordinator_update self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 545, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 583, in _async_write_ha_state state = self._stringify_state(available) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 551, in _stringify_state if (state := self.state) is None: File "/config/custom_components/nuki_ng/sensor.py", line 98, in state return self.native_value File "/config/custom_components/nuki_ng/sensor.py", line 94, in native_value return self.data.get("bridge_info", {}).get("rssi") AttributeError: 'NoneType' object has no attribute 'get' 2022-11-29 18:38:39.869 ERROR (MainThread) [homeassistant.components.webhook] Error processing webhook nuki_ng_bridge_hook_7d07fd866f13463a97b7839d1202d693 Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/webhook/__init__.py", line 129, in async_handle_webhook response = await webhook["handler"](hass, webhook_id, request) File "/config/custom_components/nuki_ng/nuki.py", line 449, in _hook_handler self._add_update(body.get("nukiId"), body) File "/config/custom_components/nuki_ng/nuki.py", line 368, in _add_update self.async_set_updated_data(data) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 313, in async_set_updated_data self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 110, in async_update_listeners update_callback() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 348, in _handle_coordinator_update self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 545, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 583, in _async_write_ha_state state = self._stringify_state(available) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 551, in _stringify_state if (state := self.state) is None: File "/config/custom_components/nuki_ng/sensor.py", line 98, in state return self.native_value File "/config/custom_components/nuki_ng/sensor.py", line 94, in native_value return self.data.get("bridge_info", {}).get("rssi") AttributeError: 'NoneType' object has no attribute 'get' 2022-11-29 23:42:52.341 ERROR (MainThread) [custom_components.nuki_ng.nuki] Failed to get latest data: Http response for http://<IP_ADDRESS>:8080/list?token=9jquj0: 503 Service Unavailable Traceback (most recent call last): File "/config/custom_components/nuki_ng/nuki.py", line 400, in _update device_list = await self.api.bridge_list() File "/config/custom_components/nuki_ng/nuki.py", line 71, in bridge_list data = await self.async_json(lambda r: r.get(self.bridge_url("/list"), timeout=BRIDGE_TIMEOUT)) File "/config/custom_components/nuki_ng/nuki.py", line 39, in async_json raise ConnectionError(f"Http response for {response.request.url}: {response.status_code} {response.reason}") ConnectionError: Http response for http://<IP_ADDRESS>:8080/list?token=9jquj0: 503 Service Unavailable 2022-11-29 23:42:52.343 ERROR (MainThread) [custom_components.nuki_ng.nuki] Error fetching nuki_ng data: 2022-11-30 02:30:25.252 ERROR (MainThread) [custom_components.nuki_ng.nuki] Failed to get latest data: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable Traceback (most recent call last): File "/config/custom_components/nuki_ng/nuki.py", line 396, in _update bridge_info = await self.api.bridge_info() File "/config/custom_components/nuki_ng/nuki.py", line 78, in bridge_info return await self.async_json(lambda r: r.get(self.bridge_url("/info"), timeout=BRIDGE_TIMEOUT)) File "/config/custom_components/nuki_ng/nuki.py", line 39, in async_json raise ConnectionError(f"Http response for {response.request.url}: {response.status_code} {response.reason}") ConnectionError: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable 2022-11-30 02:30:25.253 ERROR (MainThread) [custom_components.nuki_ng.nuki] Error fetching nuki_ng data: 2022-11-30 03:27:51.337 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 151, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 110, in async_update_listeners update_callback() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 348, in _handle_coordinator_update self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 545, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 583, in _async_write_ha_state state = self._stringify_state(available) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 551, in _stringify_state if (state := self.state) is None: File "/config/custom_components/nuki_ng/sensor.py", line 98, in state return self.native_value File "/config/custom_components/nuki_ng/sensor.py", line 94, in native_value return self.data.get("bridge_info", {}).get("rssi") AttributeError: 'NoneType' object has no attribute 'get' 2022-11-30 04:20:05.333 ERROR (MainThread) [custom_components.nuki_ng.nuki] Failed to get latest data: Http response for http://<IP_ADDRESS>:8080/list?token=9jquj0: 503 Service Unavailable Traceback (most recent call last): File "/config/custom_components/nuki_ng/nuki.py", line 400, in _update device_list = await self.api.bridge_list() File "/config/custom_components/nuki_ng/nuki.py", line 71, in bridge_list data = await self.async_json(lambda r: r.get(self.bridge_url("/list"), timeout=BRIDGE_TIMEOUT)) File "/config/custom_components/nuki_ng/nuki.py", line 39, in async_json raise ConnectionError(f"Http response for {response.request.url}: {response.status_code} {response.reason}") ConnectionError: Http response for http://<IP_ADDRESS>:8080/list?token=9jquj0: 503 Service Unavailable 2022-11-30 04:20:05.335 ERROR (MainThread) [custom_components.nuki_ng.nuki] Error fetching nuki_ng data: 2022-11-30 05:45:01.251 ERROR (MainThread) [custom_components.nuki_ng.nuki] Failed to get latest data: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable Traceback (most recent call last): File "/config/custom_components/nuki_ng/nuki.py", line 396, in _update bridge_info = await self.api.bridge_info() File "/config/custom_components/nuki_ng/nuki.py", line 78, in bridge_info return await self.async_json(lambda r: r.get(self.bridge_url("/info"), timeout=BRIDGE_TIMEOUT)) File "/config/custom_components/nuki_ng/nuki.py", line 39, in async_json raise ConnectionError(f"Http response for {response.request.url}: {response.status_code} {response.reason}") ConnectionError: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable 2022-11-30 05:45:01.253 ERROR (MainThread) [custom_components.nuki_ng.nuki] Error fetching nuki_ng data: 2022-11-30 09:41:52.402 ERROR (MainThread) [custom_components.nuki_ng.nuki] Failed to update callback http://<IP_ADDRESS>:8123/api/webhook/nuki_ng_bridge_hook_7d07fd866f13463a97b7839d1202d693 Traceback (most recent call last): File "/config/custom_components/nuki_ng/nuki.py", line 391, in _update callbacks_list = await self.api.bridge_check_callback( File "/config/custom_components/nuki_ng/nuki.py", line 154, in bridge_check_callback callbacks = await self.async_json( File "/config/custom_components/nuki_ng/nuki.py", line 39, in async_json raise ConnectionError(f"Http response for {response.request.url}: {response.status_code} {response.reason}") ConnectionError: Http response for http://<IP_ADDRESS>:8080/callback/list?token=9jquj0: 503 Service Unavailable 2022-11-30 09:41:52.611 ERROR (MainThread) [custom_components.nuki_ng.nuki] Failed to get latest data: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable Traceback (most recent call last): File "/config/custom_components/nuki_ng/nuki.py", line 396, in _update bridge_info = await self.api.bridge_info() File "/config/custom_components/nuki_ng/nuki.py", line 78, in bridge_info return await self.async_json(lambda r: r.get(self.bridge_url("/info"), timeout=BRIDGE_TIMEOUT)) File "/config/custom_components/nuki_ng/nuki.py", line 39, in async_json raise ConnectionError(f"Http response for {response.request.url}: {response.status_code} {response.reason}") ConnectionError: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable 2022-11-30 09:41:52.612 ERROR (MainThread) [custom_components.nuki_ng.nuki] Error fetching nuki_ng data: 2022-11-30 10:13:58.259 ERROR (MainThread) [custom_components.nuki_ng.nuki] Failed to get latest data: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable Traceback (most recent call last): File "/config/custom_components/nuki_ng/nuki.py", line 396, in _update bridge_info = await self.api.bridge_info() File "/config/custom_components/nuki_ng/nuki.py", line 78, in bridge_info return await self.async_json(lambda r: r.get(self.bridge_url("/info"), timeout=BRIDGE_TIMEOUT)) File "/config/custom_components/nuki_ng/nuki.py", line 39, in async_json raise ConnectionError(f"Http response for {response.request.url}: {response.status_code} {response.reason}") ConnectionError: Http response for http://<IP_ADDRESS>:8080/info?token=9jquj0: 503 Service Unavailable 2022-11-30 10:13:58.261 ERROR (MainThread) [custom_components.nuki_ng.nuki] Error fetching nuki_ng data:

Either wait for the new fw for the Nuki Bridge, that will support MQTT so these problems will be finally solved, or switch to Nuki Hub, a bridge replacement: https://github.com/technyon/nuki_hub.
I switched 1 month ago, the firmware has some small bugs, but it's working much better than the Nuki Bridge.

MQTT is going to be available?!!? WOW! Great news!
Yes, that was the project I was referring too. I might try it in the meantime.
Thanks! I'll close this then.

@anthonws what new firmware are you referring to? I have 1.23.0.
Is there a beta you are testing?

@anthonws what new firmware are you referring to? I have 1.23.0. Is there a beta you are testing?

Alex was most probably talking about the MQTT support for Nuki Bridge 3 Pro.
More info here: https://developer.nuki.io/t/nuki-bridge-mqtt-support/2498

Sorry, I used the wrong mention.
So I guess I have to buy the version 3 bridge to profit from MQTT.
For the meantime: Does it help to reduce 503 errors, if we use cloud-API only?

Sorry, I used the wrong mention. So I guess I have to buy the version 3 bridge to profit from MQTT.
For the meantime: Does it help to reduce 503 errors, if we use cloud-API only?

The fw that will support MQTT should be available on all bridges. I didn't hear any news about a new platform for the bridge, it is the usual very limited hw which doesn't handle more than 1 connection. Very bad design. That's why I switched to Nuki Hub.
If you want to minimise 503 errors you need to ensure that only nuki_ng accesses the bridge, if you use nuki_ng, use the mobile app a lot, etc. you will see a lot of 503 errors because there will be more connections to the bad bridge.
You can use cloud-only and disable the bridge when configuring nuki_ng. This way you avoid all 503 errors but you will have high latency and you will depend on the cloud, while that is the reason why a user buys the bridge, to not depend on the cloud.

@alexdelprete Hm, I see. I also saw your posts in the Nuki developer community. So if I get this right: There is a V2 Bridge (with different firmware), but there is no real HW change? It has the same issues as V1?
Lets see if MQTT solves all our problems 😉
In the meantime I give the Nuki hub a try. Thx!

Hm, I see. I also saw your posts in the Nuki developer community.

There's a closed section of the forum only for some users, discussing about the MQTT implementation: right now there's a beta fw ONLY for SL3 Pro. After the beta phase, it will be available also in the Bridge firmware.
I asked for MQTT support 2y ago, and also pointed to the very bad limitations of the bridge, despite the €99 cost. A device that should cost €20, sold at €99, and with a very very bad design. The new version of the bridge is the same stuff.
I also had a virtual meeting with the product manager 1y ago, I gave him a pretty long list of things to be improved, one of them was MQTT (or zigbee support). MQTT didn't require hw changes. Finally they decided to go that way, I think because there were way too many complaints and 503 errors from home automation users.
I also asked for HA autodiscovery, and they should implement it.


Changed NuGet sources for Test Engine

Description
Changed the NuGet sources to use the PowerApps-TestEngine feed to resolve additional dependencies.
Checklist

[NA] The code change is covered by unit tests. I have added tests that prove my fix is effective or that my feature works
[x] I have performed end-to-end test locally.
[x] New and existing unit tests pass locally with my changes
[x] I have commented my code, particularly in hard-to-understand areas
[NA] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I used clear names for everything
[x] I have performed a self-review of my own code

This item is no longer required.


Fix symlinks

Previous fix #12 was botched. This fixes #11

It's ok
Thanks you to contributing ;)


Linux VM scale set password requirements incorrect

Describe the bug
make all may fail due to the Linux VM Scale Set password not meeting the requirements
Error: creating Linux Virtual Machine Scale Set "vmss-rp-porter-vmtre1" (Resource Group "rg-vmtre1"):
compute.VirtualMachineScaleSetsClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error:
Code="InvalidParameter" Message="The supplied password must be between 6-72 characters long and must satisfy at least 3 of
password complexity requirements from the following:\r\n1) Contains an uppercase character\r\n2) Contains a lowercase
character\r\n3) Contains a numeric digit\r\n4) Contains a special character\r\n5) Control characters are not allowed"
Target="adminPassword"

with module.resource_processor_vmss_porter[0].azurerm_linux_virtual_machine_scale_set.vm_linux,
on resource_processor/vmss_porter/main.tf line 53, in resource "azurerm_linux_virtual_machine_scale_set" "vm_linux":
53: resource "azurerm_linux_virtual_machine_scale_set" "vm_linux" {

Steps to reproduce

run make all

Fix
Add additional properties to random_password in /templates/core/terraform/resource_processor/vmss_porter/main.tf
replace
resource "random_password" "password" {
  length           = 16
  special          = true
  override_special = "_%@"
}

with
resource "random_password" "password" {
  length           = 16
  lower            = true
  min_lower        = 1
  upper            = true
  min_upper        = 1
  number           = true
  min_numeric      = 1
  special          = true
  min_special      = 1
  override_special = "_%@"
}

Good catch, very odd hasn't come up before. Are you OK to PR the change? Thanks.

👍🏽


PEP 8 changes in mssqlcli folder

Tag: #283

Can you help me understand which changes are required for PEP 8 compliance and which aren't?
For example, removing a parameter from a constructor (line 10 in the first file) doesn't seem to fix anything on LGTM.

Can you help me understand which changes are required for PEP 8 compliance and which aren't?
For example, removing a parameter from a constructor (line 10 in the first file) doesn't seem to fix anything on LGTM.

Truthfully, it's PEP 8 plus other stuff. General code cleanup. I'm going through each issue that's picked up from pylint, which includes PEP 8.


[Bug]: BedrockEmbedding Async Methods Are Obviously Not Async

Bug Description
BedrockEmbedding._aget_query_embedding & _aget_text_embedding both just use the standard synchronous function.
This should have at least been marked as "Not Implemented".
Version
0.3.0 (the integration version)
Steps to Reproduce
See source code.
Relevant Logs/Tracbacks
No response

If it's marked as not implemented, it raises errors in many workflows, and is pretty unexpected.
So, one evil vs another I guess.
I would love for someone to implement the async methods properly 😁


Open id connect

These changes untie the relation of the auth mechanism to keycloak
rather than using exclusively keycloak to API should be able to work
with any kind of open connect id provider.
The client uses authlib for authentication.

i u don't mind, on the weekend I will have a look, I'm busy with developing things for regiklim at the moment

Hmm, I actually need to deploy this on a machine for beta testing. For this I need to change the deployment, ideally, I'd like to work with a version that isn't outdated.

I am going to push a dev version to the container registry and use this.

@antarcticrainforest
I was in the middle of reviewing freva-config and didn't know where to write this. So i write here which seems more relevant to this:
Alright, if you would like to keep it as-is, I think freva-config repo has to be merged prior to freva-nextgen and beforehand some changes in this repo is needed. it seems you moved keyclok dir in freva-nextgen to freva-config and we don't need to have same files in both freva-nextgen/dev-env/keycloak and freva-nextgen/dev-env/config/keycloak. It needs some changes in https://github.com/FREVA-CLINT/freva-nextgen/blob/open-id-connect/dev-env/docker-compose.yaml as well
Same story for redis-cmd.sh.
But in principal, if keycloak is just designed for dev configuration, it is completely non-relevant to the definition/description of freva-nextgen repo.  Or you can at least put the whole dev-utils.py keycloak dev dir and so on in a same dev dir.

This repository holds all definitions for Docker images to create services that are needed to run Freva in production and development mode

also i think you have to move the https://github.com/FREVA-CLINT/freva-nextgen/blob/open-id-connect/dev-env/docker-compose.yaml to freva-config dev dir and also remove the dev-env/key.py from here as you made dev-utils.py in freva-config

@antarcticrainforest
I was in the middle of reviewing freva-config and didn't know where to write this. So i write here which seems more relevant to this:
Alright, if you would like to keep it as-is, I think freva-config repo has to be merged prior to freva-nextgen and beforehand some changes in this repo is needed. it seems you moved keyclok dir in freva-nextgen to freva-config and we don't need to have same files in both freva-nextgen/dev-env/keycloak and freva-nextgen/dev-env/config/keycloak. It needs some changes in https://github.com/FREVA-CLINT/freva-nextgen/blob/open-id-connect/dev-env/docker-compose.yaml as well Same story for redis-cmd.sh.
But in principal, if keycloak is just designed for dev configuration, it is completely non-relevant to the definition/description of freva-nextgen repo. Or you can at least put the whole dev-utils.py keycloak dev dir and so on in a same dev dir.

This repository holds all definitions for Docker images to create services that are needed to run Freva in production and development mode

also i think you have to move the https://github.com/FREVA-CLINT/freva-nextgen/blob/open-id-connect/dev-env/docker-compose.yaml to freva-config dev dir and also remove the dev-env/key.py from here as you made dev-utils.py in freva-config

Hmm,
yes I will need to change the freva-nexgen, but obviously after this here has been merged.
it's not only used for production but also for development. This is why we used this repo as a submodule. In freva-web and freva.
If you don't like the approach that keycloak and open ldap is on the same level as the other services I can move it to a dev folder to make in more clear that's dev. But imho I don't think that it harms if this  definitions aboard even if they are not used in production.
About the docker-compose files. I thought about this but ditched the idea because if you wanted to make the smallest change, like adding a new env var. You'd have to submit a PR here and wait for it to be merged.  This is too painful if you ask me. So I decided to leave the docker-compose files where they are. But I'll think about something.

I've unified the token responses in the rest api so that it matches to token in the client. It also works with authlib.


[Bug]: Wrong parameter's name in \speechbrain\utils\parameter_transfer.py caused loading wrong pretrained model file

Describe the bug
I tried Speech Recognition: Speech-to-text (see this tutorial)
In the step3 : LM training
There is a error as below:
D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM>python train.py RNNLM.yaml
The torchaudio backend is switched to 'soundfile'. Note that 'sox_io' is not supported on Windows.
The torchaudio backend is switched to 'soundfile'. Note that 'sox_io' is not supported on Windows.
speechbrain.core - Beginning experiment!
speechbrain.core - Experiment folder: results/RNNLM/
speechbrain.pretrained.fetching - Destination 1000_unigram.model: local file in D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM..\Tokenizer\save\1000_unigram.model.
speechbrain.utils.parameter_transfer - Loading pretrained files for: tokenizer
speechbrain.utils.parameter_transfer - CLEMENT: loading: model_checkpoints\tokenizer.ckpt
speechbrain.core - Exception:
Traceback (most recent call last):
File "D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM\train.py", line 258, in
hparams["pretrainer"].load_collected(device=run_opts["device"])
File "D:\AIGC\workspace\speechbrain\speechbrain\utils\parameter_transfer.py", line 316, in load_collected
self._call_load_hooks(paramfiles, device)
File "D:\AIGC\workspace\speechbrain\speechbrain\utils\parameter_transfer.py", line 333, in call_load_hooks
default_hook(obj, loadpath, device=device)
File "D:\AIGC\workspace\speechbrain\speechbrain\utils\checkpoints.py", line 202, in load_spm
obj.load(str(path))  # SentencePieceProcessor needs a string.
File "C:\Users\netws\AppData\Local\Programs\Python\Python310\lib\site-packages\sentencepiece_init.py", line 905, in Load
return self.LoadFromFile(model_file)
File "C:\Users\netws\AppData\Local\Programs\Python\Python310\lib\site-packages\sentencepiece_init.py", line 310, in LoadFromFile
return _sentencepiece.SentencePieceProcessor_LoadFromFile(self, arg)
OSError: Not found: "model_checkpoints\tokenizer.ckpt": No such file or directory Error #2
It is a bug for there is a pretrained model file in RNNLM.yaml, which is "D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM..\Tokenizer\save\1000_unigram.model."
So I debug the code and figure out that "\speechbrain\utils\parameter_transfer.py" use a wrong parameter name in the function "load_collected".
Expected behaviour
When do the step3 LM training, It ought to load the pretrained file "D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM..\Tokenizer\save\1000_unigram.model."
To Reproduce
run "Speech Recognition: Speech-to-text ([see this tutorial]" on a local PC(win10).
(https://colab.research.google.com/drive/1aFgzrUv3udM_gNJNUoLaHIm78QHtxdIz?usp=sharing))
In the step3 : LM training
python train.py RNNLM.yaml
Versions
Just git clone the lastest code from github on June 8th.
Relevant log output
D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM>python train.py RNNLM.yaml
The torchaudio backend is switched to 'soundfile'. Note that 'sox_io' is not supported on Windows.
The torchaudio backend is switched to 'soundfile'. Note that 'sox_io' is not supported on Windows.
speechbrain.core - Beginning experiment!
speechbrain.core - Experiment folder: results/RNNLM/
speechbrain.pretrained.fetching - Destination 1000_unigram.model: local file in D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM\..\Tokenizer\save\1000_unigram.model.
speechbrain.utils.parameter_transfer - Loading pretrained files for: tokenizer
speechbrain.utils.parameter_transfer - CLEMENT: loading: model_checkpoints\tokenizer.ckpt
speechbrain.core - Exception:
Traceback (most recent call last):
  File "D:\AIGC\workspace\speechbrain\templates\speech_recognition\LM\train.py", line 258, in <module>
    hparams["pretrainer"].load_collected(device=run_opts["device"])
  File "D:\AIGC\workspace\speechbrain\speechbrain\utils\parameter_transfer.py", line 316, in load_collected
    self._call_load_hooks(paramfiles, device)
  File "D:\AIGC\workspace\speechbrain\speechbrain\utils\parameter_transfer.py", line 333, in _call_load_hooks
    default_hook(obj, loadpath, device=device)
  File "D:\AIGC\workspace\speechbrain\speechbrain\utils\checkpoints.py", line 202, in _load_spm
    obj.load(str(path))  # SentencePieceProcessor needs a string.
  File "C:\Users\netws\AppData\Local\Programs\Python\Python310\lib\site-packages\sentencepiece\__init__.py", line 905, in Load
    return self.LoadFromFile(model_file)
  File "C:\Users\netws\AppData\Local\Programs\Python\Python310\lib\site-packages\sentencepiece\__init__.py", line 310, in LoadFromFile
    return _sentencepiece.SentencePieceProcessor_LoadFromFile(self, arg)
OSError: Not found: "model_checkpoints\tokenizer.ckpt": No such file or directory Error #2

Additional context
I changed the code of "speechbrain\utils\parameter_transfer.py" to fix this bug.
Change "if name in self.is_local:“ to "if name in self.paths:"
Here is the my code:
def load_collected(self, device=None):
"""Loads the files that have been collected.
    Arguments
    ---------
    device : str
        Device on which to load, if you want to load to a specific device
        directly ( otherwise just leave it to None ).
    """
    logger.info(
        f"Loading pretrained files for: {', '.join(self.loadables)}"
    )
    paramfiles = {}
    for name in self.loadables:
        if not self.is_loadable(name):
            continue
        filename = name + PARAMFILE_EXT
        paramfiles[name] = self.collect_in / filename
        if name in self.paths:
        # if name in self.is_local: # Clement Debug: this is wrong parameter's name, caused load wrong model pretrained file!!!
            logger.info(
                f"Redirecting (loading from local path): {paramfiles[name]} -> {self.paths[name]}"
            )
            paramfiles[name] = self.paths[name]
    self._call_load_hooks(paramfiles, device)

Hey @netwsdk,
Thanks for opening this issue.
Could you please retry with the latest develop version of SpeechBrain ? We fixed a bug that could be similar to yours.
Thanks.
Adel

I tried again, it is fixed!
Thanks!


[FLINK-32675][doc] Add document for the tiered storage of hybrid shuffle

What is the purpose of the change
Add document for the tiered storage of hybrid shuffle
Brief change log

Add document for the tiered storage of hybrid shuffle

Verifying this change
This change is a doc update without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (docs)

@xintongsong  Thanks for helping review. I have addressed the comments with a fix-up commit. PTAL.


meta RFC to adopt RFC

Why does RFC-0 have a filename with a 001 sequence? Also, shouldn't this PR be adding the README.md so anyone looking at the rfc directory would see this text.

Why does RFC-0 have a filename with a 001 sequence? Also, shouldn't this PR be adding the README.md so anyone looking at the rfc directory would see this text.

@trisberg I added a link to the RFC doc in the CONTRIBUTING.adoc rather than README.

As per @jldec 's suggestion, I removed time/deadline from the proposal in order to keep it light weight.

PR now starts with empty status. Status can now only be: Accepted | Rejected | Deprecated.

Summary:
After removing deadlines and refining the possible states, we now have consensus on this proposal. Hence going ahead with the merge!


Add support for multiple prefixes

that.

I'll consider it.

After Discord announced that bots won't receive the message content in events unless you apply for it (and have valid use case to be accepted), I think this feature won't be necessary since Fergun will have to use slash commands.


chore: stop using linuxcontainers.org

linuxcontainers.org does not serve some of the images we use on these tests. we need to migrate to canonical servers.

@ajp-io This is the recording of the installation process now with the new prompt regarding NetworkManager.


tests: Refactor test_import_realm for clarity.

This was suggested in #9884. @showell FYI. Should I make any other changes here to make it more understandable? I tried creating a helper function, but every list is made of different components, so helper functions wouldn't be able to help that much.

So my suggestion in the other PR may not have been clear, but I really don't understand the assertions here.  It seems like we could be making reasonable assertions on a per-realm basis here.
This might be a good thing to go over with Tim in person, so you can explain what you're trying to achieve in the tests.
I feel like it should be possible to either a) simplify this by mostly looking at data in one realm or b) make meaningful assertions on a per-realm basis.  But even after the refactoring, the code's more clear but it's not clear why you're building up all the data and then only checking the first elements of the list.  It's possible I'm just really mis-reading this code.

So the thing that didn't click with me here is that realms is just a two-element array that's [original_realm, imported_realm'].  We can definitely clean this up a lot with a helper function.  Let me try...

I would try to structure the code more like this:
        def assertRoundTrip(f):
            orig_realm_result = f(original_realm)
            imported_realm_result = f(imported_realm)
            self.assertEqual(orig_realm_result, imported_realm_result)

        assertRoundTrip(lambda r:
            {user.email for user in r.get_admin_users()}
        )

        assertRoundTrip(lambda r:
            {user.email for user in r.get_active_users()}
        )

        assertRoundTrip(lambda r:
            {stream.name for stream in get_active_streams(r)}
        )

        def get_recipient(r):
            return get_stream_recipient(
                Stream.objects.get(name='Verona', realm=r).id
            )

        assertRoundTrip(lambda r: get_recipient(r).type)

        def get_stream_users(r):
            recip = get_recipient(r)
            subscriptions = Subscription.objects.filter(recipient=recip)
            users = {sub.user_profile.email for sub in subscriptions}
            return users

        assertRoundTrip(get_stream_users)

        def stream_messages(r):
            recip = get_recipient(r)
            messages = Message.objects.filter(recipient=recip)
            return messages

        def stream_topics(r):
            messages = stream_messages(r)
            topics = {m.subject for m in messages}

        assertRoundTrip(stream_topics)

For some reason my comment was marked as resolved.  I suggested above to restructure the  tests to use a helper function called assertRoundTrip.

My suggestion is to do something like this:
  def assertRoundTrip(f):
            orig_realm_result = f(original_realm)
            imported_realm_result = f(imported_realm)
            self.assertEqual(orig_realm_result, imported_realm_result)

        assertRoundTrip(lambda r:
            {user.email for user in r.get_admin_users()}
        )

        assertRoundTrip(lambda r:
            {user.email for user in r.get_active_users()}
        )

        assertRoundTrip(lambda r:
            {stream.name for stream in get_active_streams(r)}
        )

        def get_recipient(r):
            return get_stream_recipient(
                Stream.objects.get(name='Verona', realm=r).id
            )

        assertRoundTrip(lambda r: get_recipient(r).type)

        def get_stream_users(r):
            recip = get_recipient(r)
            subscriptions = Subscription.objects.filter(recipient=recip)
            users = {sub.user_profile.email for sub in subscriptions}
            return users

        assertRoundTrip(get_stream_users)

        def stream_messages(r):
            recip = get_recipient(r)
            messages = Message.objects.filter(recipient=recip)
            return messages

        def stream_topics(r):
            messages = stream_messages(r)
            topics = {m.subject for m in messages}

        assertRoundTrip(stream_topics)

@showell Your method definitely looks much better! I have updated this.

Looks great!  I added a couple small comments.  You'll need to add mypy annotations.  For the generic f parameter, you can do Callable[Realm] -> Any, rather than specifying a super-long union type.  But then for the individual lookup functions, I'd try to have specific types for the return values in the annotations.

@showell I have updated this!

I think you may have overlooked my comment about turning users into a set.  The overall structure LGTM so once you address that, I'd ping Tim for the final review.

@timabbott This LGTM and Rhea has address my major concern about structure as well as a few minor things.
I imagine there are a few names we could tweak here, but I'll leave that up to you for the final pass on this.

This is great, merged, thanks @rheaparekh!  This will make extending this test suite over time feel a lot nicer :)

@showell @timabbott Thank you for the review! :)


New command: m365 file move

Usage
m365 file move
Description
Moves a file to another location using the Microsoft Graph
Options

Option
Description

-u, --webUrl <webUrl>
The URL of the site where the file is located.

-s, --sourceUrl <sourceUrl>
Server-relative or absolute URL of the file.

-t, --targetUrl <targetUrl>
Server-relative or absolute URL of the location.

--newName [newName]
New name of the destination file.

--nameConflictBehavior [nameConflictBehavior]
Behavior when a document with the same name is already present at the destination. Possible values: fail, replace, rename. Default is fail.

Examples
Moves a file using the graph
m365 file move --webUrl https://contoso.sharepoint.com/sites/project --sourceUrl "/sites/project/Shared Documents/Document.pdf" --targetUrl "/sites/IT/Shared Documents"

Default properties
No response
Additional Info

We currently have a m365 file add command using the Microsoft Graph this should be part of that command structure
Should use the new Drive API
Validate if we already have appropriate permissions for this command

Two remarks;

If we agree on this spec I shall create one for the m365 file copy option as well (it will be the same structure)
We most likely want to have a m365 folder move and m365 file copy as well, the source could/would be the almost same. We could use an Alias for that and have our --sourceUrl reflect both files and folders.
We should consider support for the driveItem since that is something that will be returned by the m365 file list

@pnp/cli-for-microsoft-365-maintainers please chime in :D

Maybe it would be good to add a remark to the docs explaining the difference between the commands m365 file move and m365 spo file move. Now it can be quite confusing to see two different commands with quite similar examples. They both can move an item in SharePoint as shown in the examples.

I know we already have Graph commands that add a file to SharePoint for example, but I actually don't understand why we have 2 commands for this. I don't think the user cares whether we use SPO API or Graph API. Also when we use Graph API, we first have to use the SPO API to retrieve Drive ID & DriveItem ID. So to be honest I don't get why we are creating duplicate commands. 😊
Also looking at the usage, spo commands are used a lot more.

In many cases, there's a discrepancy in functionality between SharePoint and Microsoft Graph APIs. In such cases, we often two alternatives so that users can choose themselves which way they want to go. I suggest we always default to Microsoft Graph APIs, because they're better documented, and fallback to SharePoint APIs if there's no alternative.

Would the idea be then to combine both commands into one? If so, what will the command name be that we use? We could of course keep both and change one to an alias for the other.

maybe we should some info what we would recommend in the m365 spo file copy or maybe just info of the alternative command using graph 😉

The main question is if both commands are the same when it comes to functionality, output and required permissions? If the answer is 'yes', then we could remove the spo variant, add an alias for now, mark the spo alias as deprecated, and then in the next major version remove the spo alias. But it all stands or falls on both APIs being identical.

AFAIK currently they are not the same, the reason we would need the graph version is for scenario's like retrieving the thumbnail or converting to PDF; something that is native to the graph so would be awesome to have in our use case 🔥

AFAIK currently they are not the same, the reason we would need the graph version is for scenario's like retrieving the thumbnail or converting to PDF; something that is native to the graph so would be awesome to have in our use case 🔥

The API requests are not the same indeed. But the outcome is the same right? Whether you move/copy a file via SP REST or Graph, the outcome should be the same.
I understand thumbnails and PDF conversion are Graph related, but they can't they be done afterwards? You could use spo file move and when that's done you can use file convert pdf.

hey @pnp/cli-for-microsoft-365-maintainers did the discussion actually ended here? I think @milanholemans has a valid comment 🤔 maybe we could revisit, @waldekmastykarz, @appieschot, @Jwaegebaert what do you think?

I still feel we need this command, and personally need the graph implementation version. I am not sure if the outcome is 100% the same result so am hesitant to update our spo file move and would opt for providing both.

We want our commands to be easy to use. In my opinion, it would be worth exploring whether we can merge them together. I'm all for working more with Graph, but if we can simplify things by having one command being able to call both endpoints, that would be way easier. 😄

Since we merged a new command file copy in this release, I think we chose to implement this indeed.

I've just noticed that the DriveItems API only supports moving items within folders in the same drive, not across drives like between libraries. Would that be an issue?

Hi @milanholemans,
Before I start working on it, I just wanted to check if it would be acceptable to implement the command for moving items between folders within the same drive?

If this is an API restriction, then it is what it is I guess 🤷
I suggest that we add an admonition to the docs where we tell the user that it's only possible to move within the same library.
@appieschot agreed?

a bit of a bummer right 😉. But I agree with @milanholemans that unfortunately we need to accept it or we may do a bit of a hack here and use what was implemented for the copy command to copy a file between drives and then use delete endpoint to remove the current file 🤔
@pnp/cli-for-microsoft-365-maintainers any comments on this?

Sounds like a plan... it's a workaround indeed, but I can't find a reason why it should really be a problem..

Copying DriveItem doesn't include the versions, whereas moving does.

Copying DriveItem doesn't include the versions, whereas moving does.

That's a good point 👍. Thanks for mentioning that.
What if we try to tackle both things 🤔.
if the command runs in the context of the same library then we are able to use the move endpoint and therefore we may move the file with version history. If the user will run the command to move the file between different drives then we under the hood to copy+delete combination to move the file and present a warning to the user that in this case version history is not included.
We should also highlight it in the spec as well.
@pnp/cli-for-microsoft-365-maintainers any comments?
@martinlingstuyl, @milanholemans what's your take on that?
This way we support multiple scenarios and are not restricted to only a single drive which is very limiting 🤔🙂


mixer: add grpc message counter test

Requires https://github.com/istio/proxy/pull/2137
Adds a test to validate gRPC message counting telemetry.
I run this up to 100,000 variable-sized message but that takes 30s, so I reduced it to 1000 in the submitted test.
/assign @douglas-reid
/assign @mandarjog
/assign @geeknoid
Signed-off-by: Kuat Yessenov<EMAIL_ADDRESS>

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

Needs approval from an approver in each of these files:

mixer/test/client/OWNERS [kyessenov]

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

@kyessenov: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test istio-unit-tests

prow/e2e-simpleTests-cni.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test e2e-simpleTests-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test istio-unit-tests

prow/e2e-simpleTests-cni.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: kyessenov
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: geeknoid
If they are not already assigned, you can assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS
mixer/test/client/OWNERS [kyessenov]

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

@kyessenov: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test istio-integ-k8s-tests

prow/istio-unit-tests.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
057ed95240191e00b2559ea803d1fe694fdb9ba3
link
/test istio-integ-k8s-tests

prow/istio-unit-tests.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test istio-unit-tests

prow/e2e-simpleTests-cni.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test e2e-simpleTests-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test istio-unit-tests

prow/e2e-simpleTests-cni.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test istio-unit-tests

prow/e2e-simpleTests-cni.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test e2e-simpleTests-cni

prow/istio-integ-k8s-tests.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
8cd32b263151a6acabb814f61071055f911795a7
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

wakawakawaka

@kyessenov this seems code mauve applicable. what's needed to complete this PR?

@douglas-reid The test assumes https://github.com/istio/proxy/pull/2137 which did not get merged. So we cannot really move forward without the proxy change.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: douglas-reid, kyessenov
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: geeknoid
If they are not already assigned, you can assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS
mixer/test/client/OWNERS [douglas-reid,kyessenov]

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

Whenever we get consensus around the proxy PR, I'm OK with this going in.

@kyessenov: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Add Bobgy to google-kubeflow-admins

/assign @jlewi @rmgogogo
I think I'd also need this

/lgtm
/approve


Switch from service binding label to tags to read credentials from VCAP_SERVICES

As described in the migration guide from cds-pg to @cap-js/postgres the

service binding label is postgresql-db

that means that if someone wants to use a PostgreSQL directly from a hyperscaler and does provides the credentials using a user provided service (UPS) the connection will not work out of the box. To make the connection work this additional entry in the package.json of the deployer and service module is needed:
  "cds": {
    "requires": {
      "kinds": {
        "postgres": {
          "vcap": {
            "label": "user-provided"
          }
        }
      }
    }
  }

If instead tags would be used to to read credentials from VCAP_SERVICES it would be easier to get them from the UPS. Using the UPS configuration via mta.yaml it's possible to set tags:
      service-tags: ["relational", "database"]

You can find a working in mta.yaml#L127. This tags mimic the tags that the PostgreSQL on SAP BTP, hyperscaler option creates in VCAP_SERVICES:
"tags": ["relational", "database"]
So I would suggest to read VCAP_SERVICES by the tag "database".

Hi Gregor,
we've discussed this internally and have the following proposal:
Instead of switching to tags in general, we could introduce an own tag postgres which we can use if the label does not match.
Our default could be extended to:
  "cds": {
    "requires": {
      "kinds": {
        "postgres": {
          "vcap": {
            "label": "postgesql-db",
            "tags": "postgres"
          }
        }
      }
    }
  }

For hyperscaler, you could then simply tag them with postges.
Reason is that the tags database and relational are not unique and e. g. also used for SAP HANA.
Does that work for you?
Best,
Johannes

As long as the Hyperscaler Service still works with additional manual settings I'm fine with this approach. For a User Provided Service the tag must be defined anyway.


TS Migrate template/challenge/utils

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Ref #43778

Hey @Nirajn2311
Are you still interested in finishing this PR?
If not, no worries; we can either let someone else take this over, or close and let another contributor take a shot.

@ShaunSHamilton It would be better for someone to take over as I'm mainly concentrating on the mobile app. You can also unassign me on any of the files I had assigned in the TS migration issue.

Thanks, Niraj.
I am closing this to open it up for contribution. Also probably best, because a lot has changed in the mean time.


IPvS Option for KubeProxy

Feature Description

One-line feature description (can be used as a release note):
Primary contact (assignee):
Responsible SIGs:
Design proposal link (community repo): https://github.com/kubernetes/community/issues/429
Reviewer(s) - (for LGTM) recommend having 2+ reviewers (at least one from code-area OWNERS file) agreed to review. Reviewers from multiple companies preferred:
Approver (likely from SIG/area to which feature belongs):
Feature target (which target equals to which milestone):

Alpha release target (x.y)
Beta release target (x.y)
Stable release target (x.y)

############### Outdated template below ###########
Description
IPvS or LVS is a kernel feature that can proxy requests in 3 different ways, Direct Routing model is the preferred model.
Progress Tracker

[ ] Alpha

[ ] Write and maintain draft quality doc

[ ] During development keep a doc up-to-date about the desired experience of the feature and how someone can try the feature in its current state. Think of it as the README of your new feature and a skeleton for the docs to be written before the Kubernetes release. Paste link to Google Doc: DOC-LINK

[ ] Design Approval

[x] Design Proposal.  https://github.com/kubernetes/community/issues/429
[ ] Decide which repo this feature's code will be checked into. Not everything needs to land in the core kubernetes repo. REPO-NAME
[ ] Initial API review (if API).  Maybe same PR as design doc. PR-NUMBER

Any code that changes an API (/pkg/apis/...)
cc @kubernetes/api

[ ] Identify shepherd (your SIG lead and/or<EMAIL_ADDRESS>will be able to help you). My Shepherd is<EMAIL_ADDRESS>(and/or GH Handle)

A shepherd is an individual who will help acquaint you with the process of getting your feature into the repo, identify reviewers and provide feedback on the feature. They are not (necessarily) the code reviewer of the feature, or tech lead for the area.
The shepherd is not responsible for showing up to Kubernetes-PM meetings and/or communicating if the feature is on-track to make the release goals. That is still your responsibility.

[ ] Identify secondary/backup contact point. My Secondary Contact Point is<EMAIL_ADDRESS>(and/or GH Handle)

[ ] Write (code + tests + docs) then get them merged.  ALL-PR-NUMBERS

[ ] Code needs to be disabled by default.   Verified by code OWNERS
[ ] Minimal testing
[ ] Minimal docs

cc @kubernetes/docs on docs PR
cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
New apis: Glossary Section Item in the docs repo: kubernetes/kubernetes.github.io

[ ] Update release notes

[ ] Beta

[ ] Testing is sufficient for beta
[ ] User docs with tutorials
- Updated walkthrough / tutorial in the docs repo: kubernetes/kubernetes.github.io
- cc @kubernetes/docs on docs PR
- cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
[ ] Thorough API review

cc @kubernetes/api

[ ] Stable

[ ] docs/proposals/foo.md moved to docs/design/foo.md
- cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
[ ] Soak, load testing
[ ] detailed user docs and examples

cc @kubernetes/docs
cc @kubernetes/feature-reviewers on this issue to get approval before checking this off

FEATURE_STATUS is used for feature tracking and to be updated by @kubernetes/feature-reviewers.
FEATURE_STATUS: IN_DEVELOPMENT
More advice:
Design

Once you get LGTM from a @kubernetes/feature-reviewers member, you can check this checkbox, and the reviewer will apply the "design-complete" label.

Coding

Use as many PRs as you need.  Write tests in the same or different PRs, as is convenient for you.
As each PR is merged, add a comment to this issue referencing the PRs.  Code goes in the http://github.com/kubernetes/kubernetes repository,
and sometimes http://github.com/kubernetes/contrib, or other repos.
When you are done with the code, apply the "code-complete" label.
When the feature has user docs, please add a comment mentioning @kubernetes/feature-reviewers and they will
check that the code matches the proposed feature and design, and that everything is done, and that there is adequate
testing.  They won't do detailed code review: that already happened when your PRs were reviewed.
When that is done, you can check this box and the reviewer will apply the "code-complete" label.

Docs

[ ] Write user docs and get them merged in.
User docs go into http://github.com/kubernetes/kubernetes.github.io.
When the feature has user docs, please add a comment mentioning @kubernetes/docs.
When you get LGTM, you can check this checkbox, and the reviewer will apply the "docs-complete" label.

We have a tested implementation of IPVS kubeproxy in https://github.com/kubernetes/kubernetes/issues/44063
Busy tying the various related issues and PR's together now.

@boynux  I've updated the feature description to fit the new template. Please, fill the empty fields in the new template (their actual state was unclear).

@idvoretskyi I think this can be closed as a duplicate of https://github.com/kubernetes/features/issues/265, which is the issue being tracked by sig-network for 1.8.


MongoDB connect error: Authentication failed

Software and Hardware Versions
ModelCI v1.x.x, CUDA Version vx.x.x, GPU device used...

-- Docs: https://docs.pytest.org/en/stable/warnings.html
======================================= short test summary info ========================================
FAILED tests/test_model_service.py::test_register_model - pymongo.errors.OperationFailure: Authentica...
FAILED tests/test_model_service.py::test_get_model_by_name - pymongo.errors.OperationFailure: Authent...
FAILED tests/test_model_service.py::test_get_model_by_task - pymongo.errors.OperationFailure: Authent...
FAILED tests/test_model_service.py::test_get_model_by_id - pymongo.errors.OperationFailure: Authentic...
FAILED tests/test_model_service.py::test_update_model - pymongo.errors.OperationFailure: Authenticati...
FAILED tests/test_model_service.py::test_register_static_profiling_result - pymongo.errors.OperationF...
FAILED tests/test_model_service.py::test_register_dynamic_profiling_result - pymongo.errors.Operation...
FAILED tests/test_model_service.py::test_update_dynamic_profiling_result - pymongo.errors.OperationFa...
FAILED tests/test_model_service.py::test_delete_dynamic_profiling_result - pymongo.errors.OperationFa...
FAILED tests/test_model_service.py::test_delete_model - pymongo.errors.OperationFailure: Authenticati...
============================== 10 failed, 9 passed, 9 warnings in 20.78s ===============================

Steps to Reproduce the Problem
source scripts/setup_env.sh
python -m pytest tests/

Expected Behavior
All the tests should be passed
Other Information
Things you tried, stack traces, related issues, suggestions on how to fix it...
Actually, some MongoDB connection tests are passed, but I cannot locate the database connect part in ModelDAO class, so I'm still stuck on it

It's because I set MongoDB password wrongly, thanks to @YuanmingLeee's advice to check the MongoDB docker container


_index.md files can be created but not recognized by folder collections

I saw the note in the readme, but I find this a bug.
US: As a hugo editor, I want to use the same form to edit all of my section _index.md list pages.
Workaround: I can make a files collection that edits a files collection's files field, adding a new file for each content/{{ slug }}/_index.md, and import the same fields to every file.

Yes, omitting _index.md is by design, not a bug, because the special index file usually has (very) different fields from other files, right?
I could think about a different approach though: implement a filename-based filter as suggested in https://github.com/decaporg/decap-cms/issues/1245, exclude _index.md by default but allow developers to override the filter. WDYT?

Okay, so not extra config needed, but the CMS should respect path ending with _index. I’ll do it now.

v0.39.12 fixed this issue, #207, and the checkbox bug mentioned in https://github.com/sveltia/sveltia-cms/issues/201#issuecomment-2352260882. Feel free to file new issues if you see any other bugs!


[Gekidou MM-39728] - Websocket Events - Preferences

Summary
This PR handles the following preference websocket events:
Preference changed
Preferences changed
Preferences deleted
Ticket Link
https://mattermost.atlassian.net/browse/MM-39728
Testing

Open Mobile Device Simulator && connect to test server
Open MM webapp && connect to same test server
Preference changed

n/a - only the /expand and /collapse commands emit this event

Preferences changed

example is flagging/saving a post

Preferences deleted

example is unflagging/unsaving a post

Checklist

[ ] Added or updated unit tests (required for all new features)
[ ] Has UI changes
[ ] Includes text changes and localization file updates
[ ] Have tested against the 5 core themes to ensure consistency between them.

Device Information
This PR was tested on:

android emulator

Screenshots

Release Note

@jfrerich where are we with this PR?

@enahum, I'm switching back over to these websockets now!

@enahum and @larkox there isn't currently a way to view these changes occuring in the mobile client. This will only be viewable via a post list in a channel or viewing collapsed preview which is in settigns.  To verify, I printed out the db preferences via console to see the expected value changed.

@enahum, I saw the new sync property to operator.handlePreferences function and have set that to true for each handlePreferences call.


Support Flutter-Tizen as a module

As a first step to provide a way to easily porting Flutter-Tizen to an existing Tizen project, we can consider supporting the below instruction set.
cd ~/existing_tizen_project_path/
flutter-tizen create -t module ./some-flutter-tizen-module
flutter-tizen build sharedLib

In order to provide flutter-tizen as a sharedLib, the module should not have an entry point in the native area, and the public header of the embedding should be exposed in the built sharedlib.
Intuitively, you can imagine the build output like the one below.
ls ~/existing_tizen_project_path/some-flutter-tizen-module/build
build/
└── tizen
    └── sharedLib
         ├── include
         │   ├── HEADER_FILES_OF_EMBEDDING
         │   ├──  ......
         ├── lib
         │   ├── libapp.so
         │   ├── libflutter_engine.so
         │   └── libflutter_tizen_mobile.so
         ├── res
         │   ├── flutter_assets
         │   │   ├── AssetManifest.json
         │   │   ├── FontManifest.json
         │   │   ├── fonts
         │   │   │   └── MaterialIcons-Regular.otf
         │   │   ├── NOTICES.Z
         │   │   └── packages
         │   │       └── cupertino_icons
         │   │           └── assets
         │   │               └── CupertinoIcons.ttf
         │   └── icudtl.dat
         └── libsome-flutter-tizen-module.so

After that, the user can manually set dependency and use a module in the existing tizen project.
Oh, of course, the user has to write the program manually using the set of public API provided by the embedding headers.
I think there are many loopholes in this draft. Let's discuss it together.

So... do users have to copy the embedding headers and flutter related .so files directly to existing projects?

I imagined the directory would be organized like this after execution of module command
ls ~/existing_tizen_project_path/some-flutter-tizen-module
some-flutter-tizen-module/
├── lib
│   └── main.dart
├── pubspec.yaml
├── README.md
└── test
    └── widget_test.dart

and after build a module, since it is already located under the existing Tizen project, I thought the user could set up dependencies immediately without copying. of course, users must change the project configuration to include the built modules into the app package(tpk)
As you mentioned, I think If the user created the module in some place other than the existing Tizen project, then user can copy the sharedLib directory to use it.
It would be better if we could minimize user's configurations, but as a first step, I thought up to here.

The user can create a sharedLib project in an arbitrary location and reference it from a native UI app project (without having to manually copy files) using the "Multi Package" feature. The feature worked greatly in Tizen Studio but I'm still not sure how to make it work with Tizen CLI.
Also we need to consider .NET (C#) projects before finalizing the design. Even if we don't yet support the add-to-app feature for C# apps, the fundamental design and architecture should be the same for both app languages.
Question: Does the module project in your above design have any user code in its src directory? Is libsome-flutter-tizen-module.so just a compiled C++ embedding without any user code? How will the embedding source code get compiled in that case?

I didn't think of this until you mentioned it. If "Multi Package" feature works well with Tizen CLI, flutter-tizen module support will be easier.
and as you said, even if C# support doesn't come right away, we should always consider this. thank you for reminding me.
I assumed that there would be no src directory in the module directory. I haven't actually tried it, but I imagined that it wouldn't be much different from plugin builds in that there is no entry point and the build result is a shared library. @swift-kim Do you think this is a possible direction?

I haven't actually tried it, but I imagined that it wouldn't be much different from plugin builds in that there is no entry point and the build result is a shared library.

Hmm. I was asking "how" you were going to compile the library (i.e. where to place the project_def.prop file and how to configure it).

Regarding the multi package build, I asked the Tizen SDK team for how to configure the build.
We also have to consider how to support "plugin registration" of the module. Obviously, all headers (generated_plugin_registrant.h and individual plugin headers) should be added to the include paths during app build.

I assumed to use a hidden directory if necessary.
ls ~/existing_tizen_project_path/some-flutter-tizen-module
some-flutter-tizen-module/
├── .tizen
     └── project_def.prop
...

I'm verifying these assumptions in the simplest form I can. If there is any progress, I will share it with you.

I verified that embedding flutter tizen to existing project is available for the two cases below manually.

Use static library of embedding from flutter-tizen, In this case, you need that:

Include the following three libraries in existing project:

libembedding_cpp.a (this is a byproduct produced by the tool.)
libflutter_engine.so
libflutter_tizen_mobile.so

Add dependencies for the three libraries.
Add include path for header files. those headers are in flutter-tizen.

embedding/cpp/include
tizen-common/public
tizen-common/cpp_client/wrapper/include

Add linker options : --unresolved-symbols=ignore-in-shared-libs

Therefore, it seems that we can use project_def.prop, which is in embedding/cpp in tool, and we can use most of the existing build flows for building a module.

Use a shared library. for this, I created a project for shared library and It was based on copied embedding files from flutter-tizen. In this case, you need that:

Include the following three libraries in existing project:

libembedding_module.so
libflutter_engine.so
libflutter_tizen_mobile.so

Add dependency about libembedding_module.so(libembedding_module.so to depend on rest libs )
Add include path for header files in shared lib project.
Add linker options : --unresolved-symbols=ignore-in-shared-libs

As a result of the previous consideration, I have derived the following requirements.

Executing create -t module ./some_module should make the following directory structure.  some_module/
  ├── lib
  │   └── main.dart
  ├── pubspec.yaml
  ├── README.md
  └── test
      └── widget_test.dart

This is a minimum configuration for the flutter project.
It seems that Tizen dependent files are not needed as of now.

Executing build staticLib -pmobile should make the following directory structure.build/
└── tizen
    ├── staticLib // output dir for module
    │   ├── inc
    │       ├── HEADER_FILES_OF_EMBEDDING_CPP
    │       ├── HEADER_FILES_OF_TIZEN_COMMON_PUBLIC
    │       ├── HEADER_FILES_OF_TIZEN_COMMON_CPP_CLIENT_WRAPPER
    │       └── generated_plugin_registrant.h
    │   ├── lib
    │   │   ├── tizen-arm64-debug
    │   │   ├── tizen-arm64-profile
    │   │   ├── tizen-arm64-release
    │   │   ├── tizen-arm-debug
    │   │   ├── tizen-arm-profile
    │   │   ├── tizen-arm-release
    │   │   └── tizen-x86-debug
    │   │       ├── libembedding_cpp.a
    │   │       ├── libflutter_engine.so
    │   │       ├── libflutter_tizen_mobile.so
    │   │       └── libflutter_plugins.so
    │   └── res
    │       ├── flutter_assets
    │       └── icudtl.dat
    └── tpk // output dir for tpk

Since build will make embedding/cpp as a static library, we can use project_def.prop located in embedding/cpp to build
To allow users to embed a flutter into existing apps using only output of build, the output should include all relevant header files.(even if flutter-tizen is not installed in users's host environment.)
lib must be prepared for all supported architectures and build types.
To load plugin, generated_plugin_registrant.h must provided

Is there anything else we should consider?

Shouldn't AOT file be included regardless of build mode?

I'll open a PR once https://github.com/flutter-tizen/flutter-tizen/pull/393 is merged.

Further discussions:

How can we prevent libembedding_cpp.a from being included in the final TPK?
Can we avoid manual file copying and instead support the "multi package" build? (I left a question here and waiting for a reply.)
Should the built module contain libs for all archs and profiles by default, or should the user always specify a build arch and profile for the build module command?
How do you like the command name (build module)? I'm currently planning to use the same command for both native and .NET builds.

Should the built module contain libs for all archs and profiles by default, or should the user always specify a build arch and profile for the build module command?

I prefer the first one. and we can find similar structure in the webview_flutter_tizen

How do you like the command name (build module)? I'm currently planning to use the same command for both native and .NET builds.

I like it :)

The embedding by default expects libapp.so to be located directly under the lib directory, so it will be problematic if the directory structure looks like:
lib
└── tizen-x86-debug
    ├── libapp.so
    ├── libembedding_cpp.a
    ├── libflutter_engine.so
    └── libflutter_tizen_mobile.so

How about choosing the default path at compile time? I think we can make an intermediate path from the build information and put it into tizen CLI as a predefine when building embedding.

should the user always specify a build arch and profile for the build module command?

Are there any expected problems when choosing this?

Are there any expected problems when choosing this?

No, the current draft is based on that approach and the build commands look very consistent:
$ flutter-tizen build tpk -pmobile --debug --target-arch x86
$ flutter-tizen build module -pmobile --debug --target-arch x86

It makes sense. choose the second option and let's leave the rest to the user who want to integrate flutter.

Documentation will be added to the wiki. See the PR comments until then.

https://github.com/flutter-tizen/flutter-tizen/pull/405
https://github.com/flutter-tizen/flutter-tizen/pull/431


Connecting to a running instance of lnd

I have a lnd node running and i'm trying to use lightning-terminal with remote lnd.
I've reconfigured everything as suggested, but when i start litd with the already running node i get this:
$ ./litd --remote.lnd.rpcserver=<IP_ADDRESS>:10009 --remote.lnd.macaroonpath=/home/lightning/.lnd/data/chain/bitcoin/mainnet/admin.macaroon --remote.lnd.tlscertpath=/home/lightning/.lnd/tls.cert --lnd-mode=remote
2021-03-12 09:29:30.285 [INF] LITD: Dialing lnd gRPC server at <IP_ADDRESS>:10009
2021-03-12 09:29:30.410 [INF] LITD: Listening for http_tls on: [::]:8443
----------------------------------------------------------
 Lightning Terminal (LiT) by Lightning Labs

 Operating mode      remote
 Node status         online
 Alias               038447fbcc32d3154b7d
 Version             0.12.1-beta commit=v0.12.1-beta
 Web interface       https://localhost:8443
----------------------------------------------------------
2021-03-12 09:29:43.665 [INF] LNDC: Creating lnd connection to <IP_ADDRESS>:10009
2021-03-12 09:29:43.666 [INF] LNDC: Connected to lnd
2021-03-12 09:29:43.666 [INF] LNDC: Waiting for lnd to unlock
2021-03-12 09:29:48.667 [ERR] LITD: Could not start subservers: rpc error: code = DeadlineExceeded desc = context deadline exceeded
2021-03-12 09:29:48.668 [INF] SGNL: Received shutdown request.
rpc error: code = DeadlineExceeded desc = context deadline exceeded

Then, trying to run litd with a locked node i get this instead:
$ ./litd --remote.lnd.rpcserver=<IP_ADDRESS>:10009 --remote.lnd.macaroonpath=/home/lightning/.lnd/data/chain/bitcoin/mainnet/admin.macaroon --remote.lnd.tlscertpath=/home/lightning/.lnd/tls.cert --lnd-mode=remote
2021-03-12 09:30:19.407 [INF] LITD: Dialing lnd gRPC server at <IP_ADDRESS>:10009
2021-03-12 09:30:19.506 [INF] LITD: Listening for http_tls on: [::]:8443
----------------------------------------------------------
 Lightning Terminal (LiT) by Lightning Labs

 Operating mode      remote
 Node status         locked
 Alias               ???? (node is locked)
 Version             0.12.1-beta
 Web interface       https://localhost:8443
----------------------------------------------------------
2021-03-12 09:30:19.709 [INF] LNDC: Creating lnd connection to <IP_ADDRESS>:10009
2021-03-12 09:30:19.709 [INF] LNDC: Connected to lnd
2021-03-12 09:30:19.709 [INF] LNDC: Waiting for lnd to unlock
2021-03-12 09:31:52.516 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:52.516 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:52.516 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:52.516 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:53.516 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:53.517 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:53.517 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:53.518 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:55.011 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:55.082 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:55.186 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:55.423 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:57.459 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:57.569 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:57.789 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:58.004 [WRN] GRPC: grpc: addrConn.createTransport failed to connect to {<IP_ADDRESS>:10009  <nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused". Reconnecting...
2021-03-12 09:31:59.792 [ERR] LITD: Could not start subservers: rpc error: code = DeadlineExceeded desc = latest balancer error: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused"
2021-03-12 09:31:59.793 [INF] SGNL: Received shutdown request.
2021-03-12 09:31:59.793 [INF] SGNL: Shutting down...
rpc error: code = DeadlineExceeded desc = latest balancer error: connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:10009: connect: connection refused"
2021-03-12 09:31:59.793 [INF] SGNL: Gracefully shutting down.

Any idea?

Are you sure lnd is running and listening on localhost:10009?
From the error it's pretty clear that it can't connect: tcp <IP_ADDRESS>:10009: connect: connection refused

It should, i put those lines in lnd.conf file:
tlsextraip=<IP_ADDRESS>
rpclisten=<IP_ADDRESS>:10009

Can you check the log that it's actually running and is in fact unlocked?

I think there's something wrong with lnd - and it can be my fault too caused by inexperience -.
Setup: ubuntu server VM 4GB RAM / 2cores
lnd log and configs in attachments.
As you can see from the logs, I started lnd and unlocked the wallet.
Next i waited for the node and added a peer from RTL, so I can say that rpc is listening and available.
Then i tried to start lit and the result was unhappy
lnd.log
lit.log
lnd.conf.txt

I can't see anything that's wrong. Maybe lnd is still catching up with things and isn't able to respond in time? The error context deadline exceeded just means it didn't respond to the GetInfo command within 5 seconds. Can you leave lnd running for a few minutes and try restarting LiT?

I'll test it in a couple of minutes, but, to me, it's strange that RTL queries lnd successfully while lit no.

Update: that didn't work, but i noticed lnt took 10 seconds to answer RTL GetInfo.
Is there any way to make the timeout time longer so that is not a problem?

That is a very long time... Are you leaving lnd running the entire time or do you start it up when you need it? If you start it when you need it, can you leave it running for a few hours and see if the getinfo still takes that long?
There currently is no way to reconfigure this timeout, no.

I may have found what the problem is: is that possible that, because my internet connection is slow AF and i'm currently using a remote bitcoind instance this will cause problems for the getinfo rpc call?
I saw a lot of traffic going to the node with wireshark.

Yes, that's very likely not improving the situation. The connection between lnd and bitcoind needs to be as stable as possible, otherwise you can also run into other problems with transactions not being picked up because of unreliable ZMQ transport. Perhaps you should move the lnd node to the same machine where you have bitcoind and only connect LiT remotely to it? The connection between LiT and lnd doesn't have the same stability requirements.
Closing the issue for now as the reason for the error seems to be slow network connection.
Feel free to ask if you need help further debugging/fixing the issue.

@guggero I had the same problem, and it is that the node was unlocked by lncli prior to running litd. If I locked the node (or killed it and restarted it), and then IN THIS ORDER, ran the following, everything worked fine:

lnd
litd
lncli unlock


Add new parameters to send via GTM

https://github.com/CartoDB/product/issues/407
This PR adds:

User job role (String)
User in trial period (Boolean)

to GTM data sent to Google Analytics.

@alonsogarciapablo Deployed in a dedicated instance, check it out here

I missed this @cillas, sorry! Please go ahead and deploy it if you feel it's working 👌. Thank you!

Thank you @csubira! 👏