[BUG] SearchRequest with suggest property is throwing error

What is the bug?
A clear and concise description of the bug.
An error is thrown when making a SearchRequest with suggest
org.opensearch.client.opensearch._types.OpenSearchException: Request failed: [x_content_parse_exception] [1:61] [completion] unknown field [prefix]

How can one reproduce the bug?
Steps to reproduce the behavior.
SearchRequest searchRequest = new SearchRequest.Builder()
        .index(index)
        .suggest(suggest -> suggest.suggesters("completion_text",
                FieldSuggester.of(f -> f.completion(c -> c.field("text").prefix("abc")))))
        .build();

openSearchClient.search(searchRequest, SearchResponse.class);

What is the expected behavior?
A clear and concise description of what you expected to happen.
The search request should succeed.
What is your host/environment?
Operating system, version.
OpenSearch Java Client: 2.8.0
Java: 17
Do you have any screenshots?
If applicable, add screenshots to help explain your problem.
Do you have any additional context?
Add any other context about the problem.

Want to turn this into a failing test?

Want to turn this into a failing test?

Sorry, I'm not sure if I understand what you mean 😅

Write an integration test in this project that makes this API call and fails. This way we know what to fix.

@itshuien I think the issue is that prefix needs to be added to the FieldSuggester, this FieldSuggester will contain the type of suggester. An example of the usage from the samples: https://github.com/opensearch-project/opensearch-java/blob/main/samples/src/main/java/org/opensearch/client/samples/Search.java#L140-L143. I think this should solve your issue.

On a separate note, the prefix parameter needs to be removed from the completion suggester. I will pick this up.


PP-2599 pay legacy logging

See commits. This gets us most of the way to having the same logging format as current Nginx on the host. Some fields aren't populated, like $server_name, which we will need to look into later.

Instead of hardcoding X-Request-Id could we pass this in as an ENV var? Could even submit that as a PR upstream

cool, I'll have a go

Closing in favour of https://github.com/alphagov/docker-nginx-proxy/pull/3 and another upcoming PR with modifiable log format


Move to a full Hyprland GL rendering pipeline

Also updates wlroots.
Moves the entire rendering pipeline to hyprland instead of having to copy to a wlroots gl fbo at the end, wasting gpu cycles.

I tested on workload, coding, browser, video viewing, games.
I like that the latency has decreased and the system response has improved. Cursor latency is now noticeably lower, especially noticeable in shooter games (xwayland, vfr = on/off, atomic drm, and WLR_DRM_NO_ATOMIC=1). Also in shooters, animations have become smoother. In the older version, the cursor delay was is more noticeable.

Jetbrains IDEs when clicking the menu causes hyprland crash.
(gdb) bt full
#0  0x00007faae7eae834 in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007faae7e5c8ee in raise () at /lib64/libc.so.6
#2  0x00007faae7e448ff in abort () at /lib64/libc.so.6
#3  0x000000000067627a in handleUserSignal(int) ()
#4  0x00007faae7e5c9a0 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007faae7eae834 in __pthread_kill_implementation () at /lib64/libc.so.6
#6  0x00007faae7e5c8ee in raise () at /lib64/libc.so.6
#7  0x00007faae7e448ff in abort () at /lib64/libc.so.6
#8  0x00007faae7e4481b in _nl_load_domain.cold () at /lib64/libc.so.6
#9  0x00007faae7e54c57 in  () at /lib64/libc.so.6
#10 0x00007faae89a9b3e in wlr_xwayland_surface_restack () at libwlroots.so.13
#11 0x0000000000863aca in CHyprXWaylandManager::activateSurface(wlr_surface*, bool) ()
#12 0x000000000067f5f9 in CCompositor::focusSurface(wlr_surface*, CWindow*) ()
#13 0x000000000067e95b in CCompositor::focusWindow(CWindow*, wlr_surface*) ()
#14 0x000000000079a721 in Events::listener_mapWindow(void*, void*) ()
#15 0x00000000007843d5 in void std::__invoke_impl<void, void (*&)(void*, void*), void*, void*>(std::__invoke_other, void (*&)(void*, void*), void*&&, void*&&) ()
#16 0x0000000000783fab in std::enable_if<is_invocable_r_v<void, void (*&)(void*, void*), void*, void*>, void>::type std::__invoke_r<void, void (*&)(void*, void*), void*, void*>(void (*&)(void*, void*), void*&&, void*&&) ()
#17 0x0000000000783c1f in std::_Function_handler<void (void*, void*), void (*)(void*, void*)>::_M_invoke(std::_Any_data const&, void*&&, void*&&) ()
#18 0x00000000007d455d in std::function<void (void*, void*)>::operator()(void*, void*) const ()
#19 0x00000000007d3619 in CHyprWLListener::emit(void*) ()
#20 0x00000000007d319e in handleWrapped(wl_listener*, void*) ()
#21 0x00007faae889edcc in wl_signal_emit_mutable () at /lib64/libwayland-server.so.0
#22 0x00007faae896c62b in wlr_surface_map () at libwlroots.so.13
#23 0x00007faae89a9051 in  () at libwlroots.so.13
#24 0x00007faae889edcc in wl_signal_emit_mutable () at /lib64/libwayland-server.so.0
#25 0x00007faae896bb6b in  () at libwlroots.so.13
#26 0x00007faae896bc21 in  () at libwlroots.so.13
#27 0x00007faae7d02056 in ffi_call_unix64 () at /lib64/libffi.so.8
#28 0x00007faae7cfe5ef in ffi_call_int.lto_priv () at /lib64/libffi.so.8
#29 0x00007faae7d013fe in ffi_call () at /lib64/libffi.so.8
#30 0x00007faae889d843 in wl_closure_invoke.constprop () at /lib64/libwayland-server.so.0
#31 0x00007faae88a20b4 in wl_client_connection_data () at /lib64/libwayland-server.so.0
#32 0x00007faae88a08e2 in wl_event_loop_dispatch () at /lib64/libwayland-server.so.0
#33 0x00007faae88a1125 in wl_display_run () at /lib64/libwayland-server.so.0
#34 0x000000000067ad2c in CCompositor::startCompositor() ()
#35 0x00000000007fcb12 in main ()

fixed, though idk maybe it's the wlroots bump? it wasnt the renderer

@vaxerski thanks, this solved the problem.

Another coredump. I enabled freesync in the monitor and vrr was equal to 0, hyprland crash. Also, turning off Freesync in the monitor causes a coredump. Those. hyprland crashes due to an event from the kernel.
#0  0x00007f90d42ae834 in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007f90d425c8ee in raise () at /lib64/libc.so.6
#2  0x00007f90d42448ff in abort () at /lib64/libc.so.6
#3  0x000000000067627a in handleUserSignal(int) ()
#4  0x00007f90d425c9a0 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007f90d4c13cff in wl_list_remove () at /lib64/libwayland-server.so.0
#6  0x00007f90d4cc2a0f in wlr_output_create_global () at libwlroots.so.13
#7  0x00007f90d4cf59d2 in  () at libwlroots.so.13
#8  0x00007f90d4cf5c35 in  () at libwlroots.so.13
#9  0x00007f90d4cf5c8a in wlr_output_layout_add () at libwlroots.so.13
#10 0x00000000007c0a17 in CMonitor::moveTo(Vector2D const&) ()
#11 0x000000000068ab52 in CCompositor::arrangeMonitors() ()
#12 0x00000000008d51ae in CHyprRenderer::applyMonitorRule(CMonitor*, SMonitorRule*, bool) ()
#13 0x00000000007bcf01 in CMonitor::onConnect(bool) ()
#14 0x000000000068b165 in CCompositor::enterUnsafeState() ()
#15 0x00000000007bdf0f in CMonitor::onDisconnect(bool) ()
#16 0x000000000078ea19 in Events::listener_monitorDestroy(void*, void*) ()
#17 0x00000000007843d5 in void std::__invoke_impl<void, void (*&)(void*, void*), void*, void*>(std::__invoke_other, void (*&)(void*, void*), void*&&, void*&&) ()
#18 0x0000000000783fab in std::enable_if<is_invocable_r_v<void, void (*&)(void*, void*), void*, void*>, void>::type std::__invoke_r<void, void (*&)(void*, void*), void*, void*>(void (*&)(void*, void*), void*&&, void*&&) ()
#19 0x0000000000783c1f in std::_Function_handler<void (void*, void*), void (*)(void*, void*)>::_M_invoke(std::_Any_data const&, void*&&, void*&&) ()
#20 0x00000000007d455d in std::function<void (void*, void*)>::operator()(void*, void*) const ()
#21 0x00000000007d3619 in CHyprWLListener::emit(void*) ()
#22 0x00000000007d319e in handleWrapped(wl_listener*, void*) ()
#23 0x00007f90d4c13dcc in wl_signal_emit_mutable () at /lib64/libwayland-server.so.0
#24 0x00007f90d4cc383b in wlr_output_destroy () at libwlroots.so.13
#25 0x00007f90d4ca58e5 in  () at libwlroots.so.13
#26 0x00007f90d4ca5251 in  () at libwlroots.so.13
#27 0x00007f90d4c9ffd1 in  () at libwlroots.so.13
#28 0x00007f90d4c13dcc in wl_signal_emit_mutable () at /lib64/libwayland-server.so.0
#29 0x00007f90d4c9d837 in  () at libwlroots.so.13
#30 0x00007f90d4c158e2 in wl_event_loop_dispatch () at /lib64/libwayland-server.so.0
#31 0x00007f90d4c16125 in wl_display_run () at /lib64/libwayland-server.so.0
#32 0x000000000067ad2c in CCompositor::startCompositor() ()
#33 0x00000000007fcb12 in main ()

I am fairly sure it's a wlroots issue.

Simon has done some no-no code, I'll revert wlroots to a rev before that and just stay on the rev for a while.

Made a more detailed bt for https://github.com/hyprwm/Hyprland/pull/3920#issuecomment-1825037243. There is also a bug that the float xwayland windows is not always centered. Jetbrains IDEs dialog boxes are drawn at the bottom right, and not completely, and wine - battle.net from Blizzard is horizontally shifted to the side.
(gdb) bt full
#0  0x00007fcc118ae834 in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007fcc1185c8ee in raise () at /lib64/libc.so.6
#2  0x00007fcc118448ff in abort () at /lib64/libc.so.6
#3  0x00000000004de0ec in handleUnrecoverableSignal(int) (sig=11) at Hyprland/src/Compositor.cpp:34
#4  0x00007fcc1185c9a0 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007fcc12239cff in wl_list_remove () at /lib64/libwayland-server.so.0
#6  0x00007fcc12345022 in wlr_output_create_global (output=0x5ded9d0, display=0x2303a80) at Hyprland/subprojects/wlroots/types/output/output.c:148
#7  0x00007fcc1237a6f6 in output_update_global (layout=0x5b90980, output=0x5ded9d0) at Hyprland/subprojects/wlroots/types/wlr_output_layout.c:122
#8  0x00007fcc123797cb in output_layout_add (layout=0x5b90980, output=0x5ded9d0, lx=0, ly=0, auto_configured=false) at Hyprland/subprojects/wlroots/types/wlr_output_layout.c:197
        l_output = 0x5e766d0
        is_new = false
#9  0x00007fcc1237970c in wlr_output_layout_add (layout=0x5b90980, output=0x5ded9d0, lx=0, ly=0) at Hyprland/subprojects/wlroots/types/wlr_output_layout.c:208
#10 0x0000000000649436 in CMonitor::moveTo(Vector2D const&) (this=0x5dd3ff0, pos=...) at Hyprland/src/helpers/Monitor.cpp:640
#11 0x00000000004f59fb in CCompositor::arrangeMonitors() (this=0x2302490) at Hyprland/src/Compositor.cpp:2673
        m = 0x5dd3ff0
        it = 0x5dd3ff0
        PXWLFORCESCALEZERO = 0x2311ef8
        toArrange = std::vector of length 2, capacity 2 = {0x5dd3ff0, 0x5e69890}
        arranged = std::vector of length 0, capacity 0
        maxOffset = 0
#12 0x0000000000760e45 in CHyprRenderer::applyMonitorRule(CMonitor*, SMonitorRule*, bool) (this=0x5baf720, pMonitor=0x5e69890, pMonitorRule=0x7fff6dd962f0, force=true) at Hyprland/src/render/Renderer.cpp:1961
        formats = {_M_elems = {std::vector of length 5, capacity 5 = {{first = "DRM_FORMAT_XRGB2101010", second = 808669784}, {first = "DRM_FORMAT_XBGR2101010", second = 808665688}, {first = "DRM_FORMAT_XRGB8888", second = 875713112}, {first = "DRM_FORMAT_XBGR8888", second = 875709016}, {first = "DRM_FORMAT_INVALID", second = 0}}, std::vector of length 3, capacity 3 = {{first = "DRM_FORMAT_XRGB8888", second = 875713112}, {first = "DRM_FORMAT_XBGR8888", second = 875709016}, {first = "DRM_FORMAT_INVALID", second = 0}}}}
        PEVENTVEC = 0x5b87280
        WLRREFRESHRATE = 240000
        set10bit = false
        x = 2560
        y = 1440
#13 0x0000000000644c71 in CMonitor::onConnect(bool) (this=0x5e69890, noRule=false) at Hyprland/src/helpers/Monitor.cpp:133
        PEVENTVEC = 0x5db2180
        monitorRule = {name = "", resolution = {x = 2560, y = 1440}, offset = {x = 0, y = 0}, scale = 1.25, refreshRate = 240, disabled = false, transform = WL_OUTPUT_TRANSFORM_NORMAL, mirrorOf = "", enable10bit = false, drmMode = {clock = 0, hdisplay = 0, hsync_start = 0, hsync_end = 0, htotal = 0, hskew = 0, vdisplay = 0, vsync_start = 0, vsync_end = 0, vtotal = 0, vscan = 0, vrefresh = 0, flags = 0, type = 0, name = '\000' <repeats 31 times>}, vrr = std::optional<int> [no contained value]}
        thisWrapper = 0x5d9c1f0
        found = false
#14 0x00000000004f5fbf in CCompositor::enterUnsafeState() (this=0x2302490) at Hyprland/src/Compositor.cpp:2721
#15 0x00000000006464d4 in CMonitor::onDisconnect(bool) (this=0x5dd3ff0, destroy=true) at Hyprland/src/helpers/Monitor.cpp:247
        PEVENTVEC = 0x5b91920
        BACKUPMON = 0x0
#16 0x0000000000614f27 in Events::listener_monitorDestroy(void*, void*) (owner=0x5dd3ff0, data=0x5ded9d0) at Hyprland/src/events/Monitors.cpp:201
        OUTPUT = 0x5ded9d0
        pMonitor = 0x5dd3ff0
#17 0x000000000060a6cb in std::__invoke_impl<void, void (*&)(void*, void*), void*, void*>(std::__invoke_other, void (*&)(void*, void*), void*&&, void*&&)
    (__f=@0x5dd43a8: 0x614e20 <Events::listener_monitorDestroy(void*, void*)>, __args=@0x7fff6dd96c50: 0x5dd3ff0, __args=@0x7fff6dd96c48: 0x5ded9d0) at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/invoke.h:61
#18 0x000000000060a665 in std::__invoke_r<void, void (*&)(void*, void*), void*, void*>(void (*&)(void*, void*), void*&&, void*&&)
    (__fn=@0x5dd43a8: 0x614e20 <Events::listener_monitorDestroy(void*, void*)>, __args=@0x7fff6dd96c50: 0x5dd3ff0, __args=@0x7fff6dd96c48: 0x5ded9d0) at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/invoke.h:111
#19 0x000000000060a55d in std::_Function_handler<void (void*, void*), void (*)(void*, void*)>::_M_invoke(std::_Any_data const&, void*&&, void*&&) (__functor=..., __args=@0x7fff6dd96c50: 0x5dd3ff0, __args=@0x7fff6dd96c48: 0x5ded9d0)
    at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/std_function.h:290
#20 0x0000000000659e95 in std::function<void (void*, void*)>::operator()(void*, void*) const (this=0x5dd43a8, __args=0x5dd3ff0, __args=0x5ded9d0) at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/std_function.h:591
#21 0x00000000006590a8 in CHyprWLListener::emit(void*) (this=0x5dd4380, data=0x5ded9d0) at Hyprland/src/helpers/WLListener.cpp:59
#22 0x0000000000658fcb in handleWrapped(wl_listener*, void*) (listener=0x5dd4380, data=0x5ded9d0) at Hyprland/src/helpers/WLListener.cpp:13
        pWrap = 0x5dd4380
        e = @0x7fff6dd96d00: <incomplete type>
#23 0x00007fcc12239dcc in wl_signal_emit_mutable () at /lib64/libwayland-server.so.0
#24 0x00007fcc12345fd9 in wlr_output_destroy (output=0x5ded9d0) at Hyprland/subprojects/wlroots/types/output/output.c:448
        cursor = 0x23342f8
        tmp_cursor = 0x7fcc123296b6 <get_drm_prop+166>
        layer = 0x7fff6dd96dc0
        tmp_layer = 0x7fff6dd96f10
#25 0x00007fcc123252eb in disconnect_drm_connector (conn=0x5ded9d0) at Hyprland/subprojects/wlroots/backend/drm/drm.c:1789
#26 0x00007fcc12324f67 in scan_drm_connectors (drm=0x2334200, event=0x7fff6dd96f98) at Hyprland/subprojects/wlroots/backend/drm/drm.c:1633
        c = 0x5ded9d0
        wlr_conn = 0x5ded9d0
        drm_conn = 0x5d9c010
        conn_id = 107
        index = 0
        i = 0
        res = 0x5d0a4f0
        seen_len = 4
        __vla_expr0 = 5
        new_outputs_len = 0
        __vla_expr1 = 5
        conn = 0x7fcc117922ae <device_read_uevent_file+94>
        tmp_conn = 0x5d5ca30
        index = 0
Python Exception <class 'gdb.error'>: frame address is not available.
#27 0x00007fcc123223ff in handle_dev_change (listener=0x23342f8, data=0x7fff6dd96f94) at Hyprland/subprojects/wlroots/backend/drm/backend.c:158
        drm = 0x2334200
        change = 0x7fff6dd96f94
#28 0x00007fcc12239dcc in wl_signal_emit_mutable () at /lib64/libwayland-server.so.0
#29 0x00007fcc1231fa6e in handle_udev_event (fd=10, mask=1, data=0x2317f60) at Hyprland/subprojects/wlroots/backend/session/session.c:213
        event = {type = WLR_DEVICE_HOTPLUG, {hotplug = {connector_id = 107, prop_id = 0}}}
        devnum = 57856
        dev = 0x2334ce0
        session = 0x2317f60
        udev_dev = 0x6321e70
        sysname = 0x5d6e290 "card0"
        devnode = 0x6315b40 "/dev/dri/card0"
        action = 0x7fcc117a03aa "change"
        seat = 0x7fcc122b6d15 "seat0"
#30 0x00007fcc1223b8e2 in wl_event_loop_dispatch () at /lib64/libwayland-server.so.0
#31 0x00007fcc1223c125 in wl_display_run () at /lib64/libwayland-server.so.0
#32 0x00000000004e3954 in CCompositor::startCompositor() (this=0x2302490) at Hyprland/src/Compositor.cpp:553
#33 0x0000000000682e44 in main(int, char**) (argc=1, argv=0x7fff6dd97938) at Hyprland/src/main.cpp:106
        cmd = "Hyprland"
        configPath = ""
        ignoreSudo = false
        args = std::vector of length 0, capacity 0

There is also a bug that the float xwayland windows is not always centered. Jetbrains IDEs dialog boxes are drawn at the bottom right, and not completely, and wine - battle.net from Blizzard is horizontally shifted to the side.

unrelated to this mr

@vaxerski Then this is apparently a wlroots problem. The problem started after updating wlroots and applying this MR. Xwayland windows start in a random position and out of screen.

likely

@vaxerski looks like a hyprland problem https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3767
The problem is caused by fractional scaling. If scale = 1.0 then all xwayland windows are drawn normally. But if you set it to 1.25, then the windows are drawn randomly.

oh no it is definitely a hyprland issue, I meant that it's likely something changed in xwayland / wlr that hyprland doesn't like. This is tracked at #3029


Update Handlebars to fix dictionary collision bug

https://github.com/Handlebars-Net/Handlebars.Net/pull/512
Upgrading to 2.1.2. Bug was fixed in 2.1.1

LGTM! 👍


An error occurred when running generate_cifar10.py

When I ran generate_cifar10.py, the following error appeared
Traceback (most recent call last):
File "generate_cifar10_1.py", line 74, in
generate_cifar10(dir_path=dir_path, num_clients=num_clients, num_labels=num_labels, niid=niid, real=real)
File "generate_cifar10_1.py", line 65, in generate_cifar10
X, y, statistic = seperete_data(dataset, num_clients, num_labels, niid, real)
File "/home/liubochao/code/PFL-Non-IID/PFL-Non-IID-c7dff7fb0575840727baa746eb08d9bd4c8ede22/dataset/utils/dataset_utils.py", line 42, in seperete_data
dataset_content, dataset_label = data
ValueError: too many values to unpack (expected 2)

Thanks for your code! Only modified the data path of cifar10 in the running file during runtime

Thank you for your attention! I have fixed this error in the new version.
https://github.com/TsingZ0/PFL-Non-IID/blob/9f3dd6c4ac5b7e8a15d07ef015eb8fd4f90beab3/dataset/generate_cifar10.py#L64-L65


[SPARK-44394][CONNECT][WEBUI] Add a Spark UI page for Spark Connect

What changes were proposed in this pull request?
Add a new Spark UI page to display session and execution information for Spark Connect. This builds of the work in SPARK-43923 (https://github.com/apache/spark/pull/41443) that adds the relevant SparkListenerEvents and mirrors the ThriftServerPage in the Spark UI for JDBC/ODBC.

Why are the changes needed?
This gives users a way to access session and execution information for Spark Connect via the UI and provides the frontend interface for the related SparkListenerEvents.
Does this PR introduce any user-facing change?
Yes, it will add a new tab/page in the Spark UI
How was this patch tested?
Unit tests

@juliuszsompolski @grundprinzip Can you help review this PR? This builds off of https://github.com/apache/spark/pull/41443, so the commit to look at is https://github.com/apache/spark/pull/41964/commits/fcf0ca69ea30a71e20ec15673d62bbfe91f11a36.
Also cc @rednaxelafx @gengliangwang

Since the Spark connect is more about SQL, shall we show the SQL execution links on the UI?

Since the Spark connect is more about SQL, shall we show the SQL execution links on the UI?

@jasonli-db What is your opinion of this one?

Since the Spark connect is more about SQL, shall we show the SQL execution links on the UI?

@jasonli-db What is your opinion of this one?
I agree that adding the SQL execution links would be ideal and useful for the user. @juliuszsompolski Can you give your input on this and confirm whether or not this is currently possible. Do we have a link between SQL execution IDs and Connect requests?

@jasonli-db Please try more tests. I did a quick test and find the SQL IDs need deduplication.

Do we expect users to set the job tags? The generated tags are long and meaningless

In the screenshot above, the close time and finish time column seems duplicated. And the execution time and duration also seems quite similar. Why do we have so many columns about the timings?

Nit: we can have follow-up to improve the page when a session doesn't exist(e.g. evicted from KV store):

For example, id not existed is handled in the SQL page:

Do we expect users to set the job tags? The generated tags are long and meaningless

@juliuszsompolski @jdesjean Is there any use in including the job tags? Actually now that I think about it, since it's constructed from the SessionID, userID, and operationID, I think we can instead just add a column for the operationID and remove the jobTag column. What do you think?

OperationId could indeed maybe be more useful instead. If a user uses connect api like SparkSession.interruptOperation, they pass just operationId.
The only time a user would want to use jobTag is if they wanted to directly call SparkContext.interruptJobsWithTag, which is a rather internal use.
We could consider displaying SparkListenerConnectOperationStarted.sparkSessionTags, because these are uses settable (via connect SparkSession.addTag / removeTag / clearTags), and they are used by users to call connect SparkSession.interruptTag.

In the screenshot above, the close time and finish time column seems duplicated. And the execution time and duration also seems quite similar. Why do we have so many columns about the timings?

@gengliangwang Finish time is finish execution, close time is when all the results were transferred; execution time is the time query was executing, while duration is end to end. It is meaningful for queries with large results, or e.g. complex queries that spend a lot of time in optimizer. It's the same with Thriftserver UI.

@jasonli-db Please try more tests. I did a quick test and find the SQL IDs need deduplication.

Thanks for catching this. It's been fixed

Nit: we can have follow-up to improve the page when a session doesn't exist(e.g. evicted from KV store):
For example, id not existed is handled in the SQL page:

Addressed to match the behavior for the SQL page.

OperationId could indeed maybe be more useful instead. If a user uses connect api like SparkSession.interruptOperation, they pass just operationId. The only time a user would want to use jobTag is if they wanted to directly call SparkContext.interruptJobsWithTag, which is a rather internal use. We could consider displaying SparkListenerConnectOperationStarted.sparkSessionTags, because these are uses settable (via connect SparkSession.addTag / removeTag / clearTags), and they are used by users to call connect SparkSession.interruptTag.

@juliuszsompolski @gengliangwang I've updated the screenshots. I added the operationID and sparkSessionTags. For now, I kept the jobTag since it seems it could still be used if only internally. I'll remove it if/when we come to a final consensus to do so. Please take a look!

@jasonli-db I have to say to the current table is quite wide.

Can we at least put the operationID column behind the column "State" since it is not commonly useful?
A good way to resolve this is to have checkboxes and make operationID/sparkSessionTags/jobTag as  additional metrics:

This can be done in a followup

@jasonli-db Thanks for the work. I will merge the PR once the tests are passed.

Thanks, merging to master/3.5

@jasonli-db This PR has conflict with the branch-3.5
Please cherry-pick it before the RC1 on Aug 1

Thanks @gengliangwang . Since the conflict was trivial (imports), I resolved and raised https://github.com/apache/spark/pull/42224 for branch-3.5.


[FLINK-2525]Add configuration support in Storm-compatibility

enable config can used in Spouts.open() and Bout.prepare().

Example like this:
public static void main(final String[] args) {
String topologyId = "Streaming WordCount";
final FlinkTopologyBuilder builder = new FlinkTopologyBuilder();
...
final Config conf = new Config();
conf.put("wordsFile", "/home/user/");
conf.put("delimitSize", 1024);
final FlinkLocalCluster cluster = FlinkLocalCluster.getLocalCluster();
cluster.submitTopology(topologyId, conf, builder.createTopology());
Utils.sleep(10 * 1000);
cluster.killTopology(topologyId);
cluster.shutdown();
}
public class WordReader implements IRichSpout {
....
public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
try {
this.context = context;
this.fileReader = new FileReader(conf.get("wordsFile"));
} catch (FileNotFoundException e) {
throw new RuntimeException("Error reading file ["+conf.get("wordFile")+"]");
}
this.collector = collector;
}
}
public final class StormBoltTokenizer implements IRichBolt {
....
public void prepare(Map stormConf, TopologyContext context, OutputCollector collector) {
this.delimitSize = stormConf.get("delimitSize");
this.collector = collector;
}
}

I don't see changes in FlinkClient. Only in FlinkLocalCluster. Did you test by starting Flink via bin/start-local.sh (it would be even better to test in a real cluster)?

Travis fails because you broke something...

@mjsax Thank you very much.I miss the change in FlinkClient.I will fix it and test via bin/start-local.sh.In china, now we can not see the CI details and it is hard to know why CI failed.Thank you for your reminder.

It fails in two test. You should actually see it, if you execute test locally. You should run test each time before you open/update an PR (at least for the module you did changes).
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.751 sec <<< FAILURE! - in org.apache.flink.stormcompatibility.split.BoltSplitITCase
testTopology(org.apache.flink.stormcompatibility.split.BoltSplitITCase) Time elapsed: 0.635 sec <<< ERROR!
java.lang.NullPointerException: null
at org.apache.flink.stormcompatibility.api.FlinkLocalCluster.submitTopologyWithOpts(FlinkLocalCluster.java:52)
at org.apache.flink.stormcompatibility.api.FlinkLocalCluster.submitTopology(FlinkLocalCluster.java:41)
at org.apache.flink.stormcompatibility.split.StormSplitStreamBoltLocal.main(StormSplitStreamBoltLocal.java:42)
at org.apache.flink.stormcompatibility.split.BoltSplitITCase.testTopology(BoltSplitITCase.java:25)

and
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.704 sec <<< FAILURE! - in org.apache.flink.stormcompatibility.split.SpoutSplitITCase
testTopology(org.apache.flink.stormcompatibility.split.SpoutSplitITCase) Time elapsed: 0.584 sec <<< ERROR!
java.lang.NullPointerException: null
at org.apache.flink.stormcompatibility.api.FlinkLocalCluster.submitTopologyWithOpts(FlinkLocalCluster.java:52)
at org.apache.flink.stormcompatibility.api.FlinkLocalCluster.submitTopology(FlinkLocalCluster.java:41)
at org.apache.flink.stormcompatibility.split.StormSplitStreamSpoutLocal.main(StormSplitStreamSpoutLocal.java:42)
at org.apache.flink.stormcompatibility.split.SpoutSplitITCase.testTopology(SpoutSplitITCase.java:25)

Just out of curiosity: why can you not see Travis details?

@mjsax .The reason why i can not see Travis details is that(from reply mail):
The problem is that our CDN is currently blocked in mainland China. I'm talking to our CDN provider right now for getting a custom SSL certificate and domain set up, so we should be usable from China within the next weeks hopefully.
I will fix the code.I only run the test of core, and miss the test in example.It is my fault.Thanks!

Can anyone have a look at Configuration.java. Not sure if the changes are ok.

@ffbin Can you extend ExclamationTopology such that the number of added ! in ExclamationBolt and ExclamationWithStormSpout.ExclamationMap is configurable and adapt the tests accordingly. Please add an additional user parameter to ExclamationWithStormSpout and ExclamationWithStormBolt. Furhtermore, please extend FiniteStormFileSpout or base class with an empty constructor and configure the file to be opened via Storm configuration Map for this case.

Putting a nested "stormConf" into the configuration seems just wrong, sorry. Such a specific hack in a generic utility cannot yield maintainable code.
Why is that needed in the first place? Why not have a dedicated configuration object for storm?

You can turn the storm config into a byte[] via the InstantiationUtil class. That byte[] can be stored in the regular config.
We could also add a "nested config" class which only shows keys that start with a certain key prefix. This would be a config view over another config. Inside the TaskConfig, we use this trick with the delegating config. It may be useful here as well.

I think the byte[]converting approach is the correct way to go. Storm config keys must not be String, thus the specific prefix trick cannot be applied.

@StephanEwen Thansk.The key of storm config is object, so maybe the confData(HashMap<String, Object>) of Configuration is not enough.

@ffbin: Can you try if you can simply put the serialized Storm Config as a byte[] into the Flink configuration? You can the unpack it inside the storm code, when needed.

@mjsax hi. I want to make the number of added '!' in ExclamationBolt and ExclamationWithStormSpout.ExclamationMap configurabled by prepare() / open() function.The number can be get from jobConfiguration.What is your suggestion? Thanks

Sorry, but I don't understand your question...

@StephanEwen Hi. Your suggestion is good.I think i can serialized the key and value together as the value of confData in Job configuration.And create stormconf prefix(like "stormcong_1") as key of confData.Then get  storm conf from job configuration and add them into task configuration.I will have a try.

Can you try to serialize the whole Map into a single byte[]?

Oh. you are right. Serialize the whole Map into a single byte[] is better.Thanks.

@mjsax @StephanEwen I have finish the code changes.
1.serialize Storm Config as a byte[] into the Flink configuration
2.extend ExclamationTopology such that the number of added !in ExclamationBolt and ExclamationWithStormSpout.ExclamationMap is configurable and adapt the tests.
3.extend FiniteStormFileSpout and base class with an empty constructor and configure the file to be opened via Storm configuration Map.
I have run flink-storm-compatibility test successfully in local machine and do not know why CI failed.
Can you have a look at my code? Thank you very much.

This is the stack trace (occurs in 4/5 runs -- the other run failed before due to unrelated test). It seems you broke something.
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 5.149 sec <<< FAILURE! - in org.apache.flink.stormcompatibility.exclamation.ExclamationWithStormSpoutITCase
testJobWithoutObjectReuse(org.apache.flink.stormcompatibility.exclamation.ExclamationWithStormSpoutITCase)  Time elapsed: 3.825 sec  <<< FAILURE!
java.lang.AssertionError: Error while calling the test program: Job execution failed.
	at org.junit.Assert.fail(Assert.java:88)
	at org.apache.flink.streaming.util.StreamingProgramTestBase.testJobWithoutObjectReuse(StreamingProgramTestBase.java:102)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

I will review after you fixed it.

@mjsax Thanks.
I have a question:
In my windows machine, the textPath of ExclamationWithStormSpoutITCase is file:/C:/Users/xxx/AppData/Local/Temp/org.apache.flink.stormcompatibility.exclamation.ExclamationWithStormSpoutITCase-text.txt. After split by ":", we get path /Users/xxx/AppData/Local/Temp/org.apache.flink.stormcompatibility.exclamation.ExclamationWithStormSpoutITCase-text.txt and StormFileSpout can not open this path.But CI can run successfully before. Do you know why?

Travis run on Linux. There is only a single ":" in the path there.

Oh, So not all test case can run successfully in windows?
I have change this and commit again.

This might be the case. I never tried it. And as far as I know, all developers work on Linux or Mac, so this was never an issue.

@mjsax @StephanEwen I have finish the code change.Can you give me some comment? Thank you very much!

I have just a quick look over it, and so far it like it. Two things are open to be discussed. I not sure it the change to ConfigConstants in a good choice. Would it be feasible to use TaskConfiguration instead of JobConfiguration. This would make a code cleaner from my point of view.

Concerning the changes at the core classes:

The storm config key is an application specific key and not part of the system configuration, therefore it should be defined as part of the application code.
When returning the JobManager configuration, this should return an unmodifiable configuration, so the internal config cannot be altered.
Do you need access to the inner config hashmap? How about storing the storm specific properties in a key like this: InstantiationUtil.writeObjectToConfig(stormProps, config, "STORM_CONF");

The changes suggested above help with a cleaner separation between the application (here storm compatibility) and the core code.

@mjsax @StephanEwen Thanks. I have finish the changes at the core classes.
when user use env.getConfig().setGlobalJobParameters(conf); to set storm configuration,  I need convert Configuration into map<Object,Object>, toMap() is not enough, So i add getConfDataClone() to get a clone of inner config hashmap.
I have a look at how to use TaskConfiguration instead of JobConfiguration.
TaskConfiguration transfer path is:
TaskConfiguration <-- TaskDeploymentDescriptor <-- JobVertex <-- StreamConfig
In StreamingJobGraphGenerator.java setVertexConfig() function set TaskConfiguration, like this:
...
config.setNumberOfOutputs(nonChainableOutputs.size());
config.setNonChainedOutputs(nonChainableOutputs);
config.setChainedOutputs(chainableOutputs);
config.setCheckpointingEnabled(streamGraph.isCheckpointingEnabled());
...
If we want to use TaskConfiguration instead of JobConfiguration, we need add special interface to set stormConfig in StreamGraph and StreamConfig.
I think it maybe break the separation between the storm-compatibility and core code.
what is your opinion?

@rmetzger Thanks.I have use the classloader of `StormWrapperSetupHelper´ instead of 'map' and change the fashion of creating Strings.

@mjsax @StephanEwen @rmetzger I have finish the change about all comments. Can you have a look at it if it can be merged? Thank you very much!

Can you update documentation, too? For README.md just delete the line that claims configuration is not supported. WebPage documentation should contain a short paragraph how embedded Spouts/Bolts can be configures (for whole topologies it works as in Storm, ie, we don't need to cover this in the documentation).

@mjsax @StephanEwen @rmetzger I have finish the change about all comments and update documentation. Can you have a look at it if it can be merged? Thank you very much!

I just had a few "cosmetic" comments. Otherwise it looks good to me to get merged.

@mjsax Thanks. I have finish the change about all comments.
@StephanEwen @rmetzger  Can you have a look at it if it can be merged? Thank you very much!

@StephanEwen @rmetzger Can you have a look at it if it can be merged? I am also work on storm task hooks and it depend on this PR. Thank you very much!

Actually, I think going through the TaskConfig as proposed by @mjsax is the cleaner way. Going through the system-internal JobConfiguration and exposing it to user programs is not a good choice, in my opinion.
The purpose of TaskConfig is exactly to give parameters to a task (function, spout). Also the StreamingRuntimeContext would not need to be adapted, because it already offers a method getTaskStubParameters(). Would that work as well or are there major issues preventing you from using the TaskConfig?

It is not clear (at least to me) how to do this. The API does not offer an (obvious) way to set a configuration... (or I just don't get it). StreamExecutionEnvironment only offers .getConfig() and there is no .withParameters(...) in Streaming API (which is "deprecated" according to the discussion on the dev list).
IHMO, the best way would be the possibility to set a configuration in the environment that is distributed to all operators. Should be extend Streaming API for this?

As per discussion on the dev list, the ExecuionConfig has the GlobalJobParameters, which are useful if one type of config is used across all operators.
If each of the operators needs its own config, can you create an abstract base class for the storm functions which takes a configuration as an argumen?
BTW: There is no plan to remove the withParameters() method in the batch API. It is just not the encouraged mechanism any more...

Storm only supports one global configuration that is shared over all spout/bolts. So GlobalJobParameter will work just fine.

Hi @ffbin,
not sure if you followed the discussion on the mailing list, but we discussed to use the ExecutionConfig instead of the JobConfig. The reason is that ExecutionConfig is user-facing and JobConfig is used for system internal configurations.
See the discussion here.
It would be nice, if you could update the PR to use ExecutionConfig.
Thanks a lot, Fabian

Hi @fhueske , i will update the PR to use ExecutionConfig. Thanks.


Directx fullscreen problem

Switching context from gl to dx while in fullscreen mode causes the screen to freeze and DXC throws DXGI_ERROR_NOT_CURRENTLY_AVAILABLE if I call SwapChain->SetFullscreenState in the constructor.
Some google search got me nowhere. help ^_^

Nevermind, just exiting fullscreen will do the trick.


Flask

We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner. Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published.
Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Proposed title of article
Your title should be descriptive of the article/tutorial. Be Specific. Use keyword research to gain your article higher ranking.
Introduction paragraph (2-3 paragraphs):
Please write the Introductory paragraph(s), that would be included in your article. We will use this writing snippet to help us assess overall quality before approval. We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Take your time and write the content as you would intend to get it published.
Key takeaways:
What are the 3-5 most important things the reader should understand or be able to do after reading this article? Use this area to get your ideas down on the bulk of your article or tutorial.
References:
Please list links to any published content/research that you intend to use to support/guide this article.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

@kimkimani
Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

The title is just Flask? No introduction paragraph or Key takeaways as well. @kimkimani
I'm going to close it. Please @ me when your topic-suggestion is ready and I will re-open it.

@ahmadmardeni1, I think it's all good now, requesting reopening.

Great topic 🚀 , make sure it matches the following:

Adds value beyond what is in the official docs and what is covered in other blog sites.
To avoid any potential article closure, it should not overlap with any existing EngEd articles or incoming topic suggestions.

Please reference any relevant EngEd articles in yours and build a unique project - Approved.  @kimkimani


Adjust compute shader example

This addresses issue #1310 where the compute shader example,
gpgpus.rs, does not run on certain setups.  With the most
recent up to date nVidia driver the example would have no issues
but on an older driver, capable of running OpenGL 4.5 and over a
year old, the example would panic due to a compilation error of
the shader.

Thanks


Cannot get to settings

It has downloaded and installed just fine, but I cannot actually get to the settings part so that I can use it.
Right click taskbar > toolbars > Audio Band > nothing.

"Deskband host for wpf" is the only thing that happens when I try to select it as a toolbar.

I think you have to right click Audio Band.
But I can't even get any of my taskbar settings to show since I am using Windows 11 taskbar, when I right click my taskbar, it shows only "taskbar settings" and "task manager"? Any thoughts?


Replaced deprecated envars

Replaced MIRRORD_AGENT_IMPERSONATED_POD_NAME and MIRRORD_AGENT_IMPERSONATED_POD_NAMESPACE envars to the new one.

Thanks for fixing that @jamowei! Could you please also update the changelog

Added changelog since we want to have this merged for our next release, thanks @jamowei for the contribution!

bors r+


[5.7] Refactoring tests

Looking at some tests I saw that they can be refactored for better understanding, either from the one who reads the tests or when a test fails and show a error message.
Some tests were refactoring using:
assertArrayHasKey, assertArrayNotHasKey instead of isset function;

This assertions abslolutely don't test the same thing @omarkdev
$array['foo'] = null;
$this->assertTrue(isset($array['foo'])); // false
$this->assertArrayHasKey('foo', $array)); // true

@lucasmichot You are right, but if we see the tests changed, the intention of these tests are check if array has the key, and with theses changes, the tests keep passing
If we find some test with a intention to check the array has the key and the value not to be null, I agree with revert changes, but for this changes I think it's not necessary


Dependency Cleanup

Cleaned up some dependencies to move test dependencies into the dev section
Small fix for unittest.mock compatibility vs. the external mock library
Replaced libraries like mocker with vanilla unittest.mock functionality to remove external dependency

What changed?

Cleaned up the dependencies to not install test related things unless you want to perform development.
Also removed 3rd party plugins that aren't really needed

Rationale

Reduces the size of the dependencies

How was it tested?
If it was manually verified, list the instructions for your reviewers to follow.

[X] Unit Tests
[ ] Functional Tests
[ ] Manually Verified

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

I observe this warning when I try to install from poetry
Warning: poetry.lock is not consistent with pyproject.toml. You may be getting improper dependencies. Run poetry lock [--no-update] to fix it.
you probably have to run that command and include the updated poetry.lock in the PR

Going to close and reopen the PR to see if that corrects the linting issue.


No voice ?

Is there a Speech recognition feature ? If yes, then how to use it ?

I don't believe there is. It's sophisticated, but I don't think it supports queries...
What kind of things would you like to ask/get information on?

I want it to set a reminder for me!
Also to remind me of the pre-set reminder.
Show me the location on maps.
Open a particular activity through my voice.
Set an Alarm for me.
A Selfie command
Also detection of my presence, through some RFID tags.
Something related to health.
Read the news/feeds for me.
PS: I Know I'm asking for a lot, but I thought these things also can be implemented

but I thought these things also can be implemented - so do it 😀

yeah, you're always welcome to create a fork of your own or pull request.
"Be the change you want to see" - some guy

Sure! :P
But, I'm a newbie here

@Naivn3m this would be a great learning experience

@brandonmowat Sure! Thanks for helping.


VirtualBox Guest Additions does not match VirtualBox version 5.1

I have a vagrant project that uses shared folders. The build breaks because I upgraded to VirtualBox 5.1 and the Guest Additions on boot2docker is still on 5.0. Below is the output of a vagrant up.
Bringing machine 'data' up with 'docker' provider...
Bringing machine 'percona' up with 'docker' provider...
Bringing machine 'memcached' up with 'docker' provider...
Bringing machine 'app' up with 'docker' provider...
Bringing machine 'phpfpm' up with 'docker' provider...
Bringing machine 'nginx' up with 'docker' provider...
==> data: Docker host is required. One will be created if necessary...
    data: Vagrant will now create or start a local VM to act as the Docker
    data: host. You'll see the output of the `vagrant up` for this VM below.
    data:
    cms: Box 'dduportal/boot2docker' could not be found. Attempting to find and install...
    cms: Box Provider: virtualbox
    cms: Box Version: >= 0
    cms: Loading metadata for box 'dduportal/boot2docker'
    cms: URL: https://atlas.hashicorp.com/dduportal/boot2docker
    cms: Adding box 'dduportal/boot2docker' (v1.11.1) for provider: virtualbox
    cms: Downloading: https://atlas.hashicorp.com/dduportal/boxes/boot2docker/versions/1.11.1/providers/virtualbox.box
    cms: Successfully added box 'dduportal/boot2docker' (v1.11.1) for 'virtualbox'!
    cms: Importing base box 'dduportal/boot2docker'...
    cms: Matching MAC address for NAT networking...
    cms: Checking if box 'dduportal/boot2docker' is up to date...
    cms: Setting the name of the VM: bbl-cms_cms_1470245153891_69312
    cms: Clearing any previously set network interfaces...
    cms: Preparing network interfaces based on configuration...
    cms: Adapter 1: nat
    cms: Adapter 2: hostonly
    cms: Forwarding ports...
    cms: 2375 (guest) => 2375 (host) (adapter 1)
    cms: 2376 (guest) => 2376 (host) (adapter 1)
    cms: 22 (guest) => 2222 (host) (adapter 1)
    cms: Running 'pre-boot' VM customizations...
    cms: Booting VM...
    cms: Waiting for machine to boot. This may take a few minutes...
    cms: SSH address: <IP_ADDRESS>:2222
    cms: SSH username: docker
    cms: SSH auth method: private key
    cms: Warning: Remote connection disconnect. Retrying...
    cms: Machine booted and ready!
    cms: Checking for guest additions in VM...
    cms: The guest additions on this VM do not match the installed version of
    cms: VirtualBox! In most cases this is fine, but in rare cases it can
    cms: prevent things such as shared folders from working properly. If you see
    cms: shared folder errors, please make sure the guest additions within the
    cms: virtual machine match the version of VirtualBox you have installed on
    cms: your host and reload your VM.
    cms:
    cms: Guest Additions Version: 5.0.18
    cms: VirtualBox Version: 5.1
    cms: Setting hostname...
    cms: Configuring and enabling network interfaces...
    cms: Mounting shared folders...
    cms: /var/www => /Users/jpresley/projects/bbl-cms
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attemped was:

set -e
mount -t vboxsf -o uid=`id -u docker`,gid=`getent group docker | cut -d: -f3` var_www /var/www
mount -t vboxsf -o uid=`id -u docker`,gid=`id -g docker` var_www /var/www

The error output from the command was:

mount: mounting var_www on /var/www failed: Protocol error

I have a similar error
I have my custom boot2docker from the latest release (v1.12.1) That release includes VirtualBox Guest Additions v5.1.2
vagrant: 1.8.4
VirtualBox: 5.1.4
Windows 7
Using Docker as provider
Vagrant plugin vagrant-winnfsd
When I start the docker-host everything mounts well, but when I start a service vagrant up myservice
I have this error:
Bringing machine 'author' up with 'docker' provider...
==> author: Docker host is required. One will be created if necessary...
    author: Docker host VM is already ready.
==> author: Syncing folders to the host VM...
    dockerhost: Mounting shared folders...
    dockerhost: /var/lib/docker/docker_1472059381_57325 => C:/Users/ehernandez/D
esktop/mycompany/mycompany
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attemped was:

set -e
mount -t vboxsf -o uid=`id -u docker`,gid=`getent group docker | cut -d: -f3` 98
4f505632 /var/lib/docker/docker_1472059381_57325
mount -t vboxsf -o uid=`id -u docker`,gid=`id -g docker` 984f505632 /var/lib/doc
ker/docker_1472059381_57325

The error output from the command was:

mount: mounting 984f505632 on /var/lib/docker/docker_1472059381_57325 failed: Pr
otocol error

Any idea?
Thank you

The reason is missing getent command. Don't have ideas yet.

Temporally I moved to Vagrant 1.8.4 and VB 5.0.x

See this comment for an explanation and a temporary fix (until vagrant 1.8.6 is released):
https://github.com/blinkreaction/boot2docker-vagrant/issues/83#issuecomment-243599131

Another way is to install getent on tinycore boot2docker iso by building your own. The missing tiny core package is glibc-apps installing it shloud provide getent command and let virtualbox work with vagrant even if version is 1.8.5.
Regards.


[macos ci] update to 2022-01-03

cc @BillyONeal

/azp run

Running CI pipeline here

Updated:

libpqxx fixed
ace fixed
libsoundio fixed
tensorflow and tensorflow-cc fails, but with a protoc segfault (seems like maybe related to bazelbuild/bazel#14273?)
chromium-base working again despite failing in CI


[Flaky Test] tests/python/contrib/test_ethosu/test_codegen.py::test_mean[ifm_shape2-axis2-True-False-ethos-u65-256]

These tests were found to be flaky (intermittently failing on main or failed in a PR with unrelated changes). See the docs for details.
Tests(s)

tests/python/contrib/test_ethosu/test_codegen.py::test_mean[ifm_shape2-axis2-True-False-ethos-u65-256]

Jenkins Links

https://ci.tlcpack.ai/job/tvm/job/main/3599/display/redirect

cc @lhutton1

issue to still present (see #12956), but closing to consolidate on #12634


Version updated to v0.7.1

The menu 'WARP Session Renew' has been implemented in substitution of slide button for quick registration. Reasons for this change explained into the related commit. The 'WARP Session Renew' checks for the current state (connected or not) and after having delete and registered a new WARP session, it brings the connection UP or not accordingly with the previous state.

thank you


Feature Request: Include toggle in settings to use new Fluent Icons

The Issue:
Windows has been very inconsistent with many icon sets being used all at once. However, work is being done to unify the line icons being used in Microsoft apps across platforms. As seen in beta versions of Chromium Edge, these more rounded icons are starting to make their way to the Windows desktop.
The Solution:
Microsoft has a GitHub repository where their new Fluent icons are being stored. To make this app more future-proof, the ability to switch between current Segoe UI icons and the eventual, more rounded icons should be explored.

duplicate of #109

Oh ho ho,
We tried that #109.
But the outcome wasn't pleasing. So, we reverted it.
I will reconsider this for the v0.9 release

duplicate (sort of) of #109
So it is... I suppose you could close this request if you see fit. If the toggle bit seems to make this a unique request, I guess you could leave it up. Either that, or I could add this feedback in the comments of #109.

I could add this feedback in the comments of #109.

that would be great thanks


remove data science packages from session-complete

Looks like the 3.7.7 check may never have been run because of this issue 🙈 I think switching stdout to stderr works sometimes? Different python versions behave differently 😑
Command: /opt/python/3.7.7/bin/python --version: stdout: patterns not found: [3.7.7]

It actually looks like jupyter and python don't get found at all?


the loss_bbox is zero when training custom dataset in faster r-cnn.

2019-07-05 11:04:50,991 - INFO - Epoch [1][2250/18654]	lr: 0.00250, eta: 2 days, 7:52:51, time: 1.009, data_time: 0.503, memory: 5589, loss_rpn_cls: 0.0000, loss_rpn_bbox: 0.0000, loss_cls: 0.0097, acc: 99.7949, loss_bbox: 0.0000, loss: 0.0097
And the bbox exists in the json :
   {       "segmentation": [         [           0.2046875,           0.42291668,           0.2046875,           0.515625015,           0.2046875,           0.60833335,           0.26953125,           0.60833335,           0.334375,           0.60833335,           0.334375,           0.515625015,           0.334375,           0.42291668,           0.26953125,           0.42291668         ]       ],       "bbox": [         0.2046875,         0.60833335,         0.12968749999999998,         0.18541667       ],       "id": 230216,       "area": 1.0,       "iscrowd": 0,       "image_id": 3815,       "category_id": 292     },

According to your logs, there is no positive samples because the RPN performs poor.

@hellock how to solve this RPN performance issue then?


DRILL-5136: Server unable to prepare non SELECT queries

Currently, the server makes every incoming queries a limit 0 query during server prepare. This is causing some non select queries to fail.
We need to add an additional check to determine if the query is a SELECT query before wrapping it with LIMIT 0.

Closing PR due to widen scope.


Initialization Error

I'm getting this error as well on Flow CLI beta version and Version 0.44.1
Only on first load of dev wallet when running flow dev-wallet


Export Django InstallationStore and OAuthStateStore in slack-sdk

The custom InstallationStore and OAuthStateStore classes suitable for Django are currently provided as example code in bolt-python.
However, given Django's popularity, it would be be quite useful to make those classes "official" by including them in the library such that they're directly importable (eg. from slack_sdk.oauth.installation_store import DjangoInstallationStore).
Django does have a convention of bundling things together into apps so I could imagine that providing a Django app for Slack SDK might be necessary, such that the SlackBot, SlackInstallationState, and SlackOAuthState models have associated migrations. In any case, that would be much nicer v/s copy/pasting example code. Thanks!
Category (place an x in each of the [ ])

[ ] slack_sdk.web.WebClient (sync/async) (Web API client)
[ ] slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
[ ] slack_sdk.models (UI component builders)
[x] slack_sdk.oauth (OAuth Flow Utilities)
[ ] slack_sdk.socket_mode (Socket Mode client)
[ ] slack_sdk.audit_logs (Audit Logs API client)
[ ] slack_sdk.scim (SCIM API client)
[ ] slack_sdk.rtm (RTM client)
[ ] slack_sdk.signature (Request Signature Verifier)

Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Hi @siddhantgoel, thank you so much for sharing this feedback! However, we have intentionally decided not to provide classes as part of the SDK. In Django apps, having all models within your app project should be more straightforward. Additionally, I think some developers may want to customize the data structure to suit their needs (e.g., including user_id in the Slack auth result table). I understand that copying and pasting the code might not seem ideal to you, but the code has been stable for a long time. Please go ahead and copy it into your project.
Thank you again for taking the time to share this feedback. We don't plan to take any action on this at the moment, but if we receive more requests or feedback, future maintainers (hopefully including myself) may revisit this.

No worries, thanks for the response!
From a user's perspective, I would've found it easier to get started by just replacing FileInstallationStore in the bolt-python documentation with something more suitable for Django, so that I can focus on my application logic and not worry about Slack API internals, but I understand the other rationale as well. I'll close the issue accordingly.


table expression if(${x} = null(),true(),false()) always returns false if x is null()

Add isNull() and isNotNull() functions and disallow = null()

see also gchq/stroom-expression#18, gchq/stroom-expression#19

This was fixed in stroom-expression v1.4.0. Stroom currently uses v1.4.3.


⚠ ClamAV has degraded performance

In 9e7472c, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 461 ms

Resolved: ClamAV performance has improved in 6db25d2.


Update nc dependency to 0.9.2

Hi, new to youki here. Hope to start my contribution from a simple issue #2874.

Instead of updating to 0.9.1, I update to 0.9.2
Since the size parameter is needless, I remove it.

Please let me know if I do anything wrong. Thank you and hope to do more contribution.

Hey the lint CI is failing - https://github.com/containers/youki/actions/runs/10454851896/job/28979505684?pr=2884 . Also, you will need to resolve conflicts due to another  dependabot pr getting merged.


[Bugfix] Fix Custom css crashing on Canary

Issue in question: #1371
Tested on Canary 141822 (e53c017), it seems that the locale and theme get saved in their own Store. This PR adds the LocaleStore and the ThemeStore to the DiscordModules, the UserSettingsStore seems to be no longer needed.

Nearly the same thing was added in https://github.com/BetterDiscord/BetterDiscord/commit/68d8b0dc0e3277257da19c3d082eb5bddbdd25fe I guess this pull request was simply not noticed or only noticed after the commit.
Closing, since this change was essentially already merged.


Add extendsExact: bool property to tsconfig.json

Search Terms
Lerna monorepo, extends, config inheritance, disable relative path.
Suggestion
According to design choise of extends property to make paths relative - it brings some problems for monorepos with multiple packages with different configs.
I suggest to add extendsExact: bool property to tsconfig.json which will keep paths as is (without resolving relative paths)
It quite simple to implement with current codebase and allows to developers use different scenarios.
Use Cases
We cannot use base template for all packages (we have 20 packages and need to fix in every config includes and excludes sections). It quite hard to track. If we add something to base template, we should to change all tsconfigs in every package.
My real use case is quite complex. We have boilerplate repo, where defined all configs, dev packages and code conventions. I maintain this MAIN repo. All other developers fork my repo and adds their code to packages folder (in Lerna way) where use some of config from root folder for their packages. So at any time I may update my boilerplate (MAIN repo) and all other teams may easily merge my changes without affecting their code in packages folder.
Examples
We have a base configs:
// tsconfig.server.json
{
  excludes: ["node_modules"],
  includes: ["src/**/*.ts", "server.globals.ts"]
}

// tsconfig.client.json
{
  excludes: ["node_modules", "__tests__"],
  includes: ["src/**/*.ts"]
}

And in Lerna  monorepo developers may use these tsconfig as real dumb template:
tsconfig.server.json
tsconfig.client.json
lerna.json
packages/
 - pkg1-server
     - tsconfig.json { extends: '../../tsconfig.server.json', extendsExact: true }
 - pkg1-client
     - tsconfig.json { extends: '../../tsconfig.client.json', extendsExact: true }
 - pkg1-client-admin
     - tsconfig.json { extends: '../../tsconfig.client.json', extendsExact: true }
 - pkg2-node-driver
     - tsconfig.json { extends: '../../tsconfig.server.json', extendsExact: true }
 - ... tons of other packages ...

So with such monorepo I can just change root config file, and all packages gets new config with EXACT paths for (files, includes, excludes) like they are in root config files.
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

I think this will also fix #29172.

I would love to see this implemented. @nodkz have you looked into creating a PR for this? We might be able to get this in more easily if we have code ready for them to import.

It is useful to the monorepo project which its sub packages all have a same tsconfig.json configuration but need they own outDir and typeRoot

I have a related use-case where I am also using lerna and every package is basically running some sort of filewatcher that executes a tsc compilation on its respective source code. I'm running all of them from my monorepo root with lerna run --parallel dev and whenever I have an error in any of the packages the paths I see in the terminal are relative and therefore these are not showing up in VSC under the Problems tab and I can't cmd+click the file path in the terminal to navigate to it either.


Allow buttons that execute custom commands

From @brasilikum on September 2, 2016 7:15
Imagine the following usecase:
A static hugo website is persisted in a git repository.
The productive version is at the master branch and automatically updated to be served at domain.com.
The staging version is at branch 'staging' and served at staging.domain.com with basic auth.
Both environments would be completely separate.
It would be awsome if the administrator could define a button, in this case 'send to production'.
If an author finished changes at the staging environment, he/she would press the button, which would trigger a script like 'git add . && git commit -m "" && git push'
The administrator would then review the branch and merge it into 'master', which would lead to the production environment updating automatically.
The functionality needed from caddy-hugo would be custom buttons that could be created from an administrator. What do you think, is this in scope?
Copied from original issue: hacdias/filemanager-old#25

Thanks for moving this. :)

@brasilikum, do you still find this useful?

I'm closing this since this repository will be archived. Please read the information on the README for more information. Thanks for all your contributions!


[NO output images!]after i run test.py, where are the output imgs?

As the readme says, the output images is saved in '../results/'. but then i checked the folder. there was a 'results' folder and a 'Track2' folder was in it, and a 'DPED' folder is in 'Track2' but no imgs in the 'DPED'.
where did the imgs go?
did i miss something?
plz........

it's ok. the cv2.imwrite doesnt allow chinese characters in the path.


styles for checkboxes

filename - bootstrap.css, uncompressed, v3.3.5.
not critical, tiny misprint take place at line#2523

input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
line-height: normal;
}

This is not a typo - this hack for IE (IE6, IE7, IE8, IE9).

Oh, sorry for my IE 'knowledge'..

Please search existing issues more in the future before opening new issues. Thanks!


Multiply percentage by dimensional value to get quantity

I am using the gauges in kip to display information from a maretron fpm100 tank level sensing system.  The only fields it seems to report through signalk are tank capacity (gallons) and percentage remaining (%).  What i'd love is to be able to multiply these together so that I can display the gauge in gallons.
Is there a way to do this?
Thanks
Brian

See the Maretron plugin. That might get the data into signal k. The using derive data plugin I think you would see the tank appear and can set tank shape and volume. Once configured, you will see it in KIP. Ask in Discord server channel. They will help you

Ah, cheers.  It actually works just using the derived data plugin.  The maretron sensors are broadcasting a percentage based on a tank shape calibration that was done on the maretron side.  So just multiplying that percentage by the capacity in the derived data plugin works great.
I was mistakenly hoping to just do that simply in kip but looks like no need

Enjoy!


question in coarsen.py

Hi,
In coarsen.py, the normalized_adj_wgt function is written as:
def normalized_adj_wgt(graph):
    adj_wgt = graph.adj_wgt
    adj_idx = graph.adj_idx
    norm_wgt = np.zeros(adj_wgt.shape, dtype=np.float32)
    degree = graph.degree
    for i in range(graph.node_num):
        for j in range(adj_idx[i], adj_idx[i + 1]):
            neigh = graph.adj_list[j]
            norm_wgt[j] = adj_wgt[neigh] / np.sqrt(degree[i] * degree[neigh])
    return norm_wgt

Should the following line:
norm_wgt[j] = adj_wgt[neigh] / np.sqrt(degree[i] * degree[neigh])

be:
norm_wgt[j] = adj_wgt[j] / np.sqrt(degree[i] * degree[neigh])

?

Hi, thank you for your question.
For the i-th node, it has ( adj_idx[i + 1] - adj_idx[i ] )  edges.  And thus in the inner-loop, the j-th edge has two vertices, which are node "i" and node "neigh".   The edge weight of the  j-th edge is stored in adj_wgt[neigh] . So there is no problem with the initial code.
Please refer to the function "read_graph_from_adj(adj,dataset_name)" in utils.py for more details for the construction of adj_idx, adj_list, and adj_wgt.
Please feel free to contact me if you have any other questions. Thanks.

Thanks for your reply! But I'm still confused about this:
In your Graph.init() function, the adj_wgt is defined as:
self.adj_wgt = np.zeros(edge_num,
                           dtype=np.float32)  # same dimension as adj_list, wgt on the edge. CAN be float numbers.

The shape of adj_wgt is edge_num, not node_num, so "neigh" should not be the index of adj_wgt. And in the function read_graph_from_adj(adj,dataset_name):
graph.adj_list[edge_cnt] = neigh # self-loop included.
graph.adj_wgt[edge_cnt] = wgt
graph.degree[idx] += wgt

The adj_list and adj_wgt use the same index, which means the edge weight of the j-th edge is stored in adj_wgt[j].
Is there anything wrong?

@FenyuHu  Thank you for the well-written code and impressive work. However, I agree with @Maysir  on norm_wgt[j] = adj_wgt[j] / np.sqrt(degree[i] * degree[neigh]).
adj_weight has length of edge_num, in your way, only first node_num will be updated. I have noticed this and was about to start an issue, thank again @Maysir for this thread. I hope people who use your code later can avoid such mistake!

@CHELSEA234 @Maysir  Thank you for your question again and sorry for the late reply! I check the code again and  find that you are right. I will fix this bug and retune the parameters.

Thanks! And I really appreciate this excellent work. @FenyuHu


[Feature]: iceberg v2 table  orphan file clean  trigger

Description
I want  a iceberg table  of orphan file clean  , table expire snapshots,
has  table  property trigger ,not set time trigger
Use case/motivation

Describe the solution
No response
Subtasks
No response
Related issues
No response
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thank you for raising this issue. This logic has already been extracted, and there will be a dedicated class responsible for snapshot expiration and orphan file cleaning in the future. Please refer to https://github.com/NetEase/amoro/pull/1916

Would it be more reasonable to trigger it through a web page or some command-line method? Using the table property doesn't seem like a good approach.

For the expiring snapshots and cleaning orphan files service, I think there should be two types of triggers:

a manual trigger for a single execution
a automatic trigger for periodic executions

For the single manual trigger, it is suitable to be completed through a web UI (such as a button) or the command-line(#1357), which has been in our roadmap.
For the periodic automatic trigger, it is suitable to be configured as a setting. Of course, we can make this configuration to be more user-friendly like setting a timer on the web UI, but in the short term, I think it is feasible to configure it as a table property, like what we have done on the trigger of self-optimizing.
The goal of this issue is more focused on improving the periodic automatic trigger, and it doesn't conflict with the feature in #1357.

How about implement in Spark SQL first, so that we can use it on Terminal SQL ?

How about implement in Spark SQL first, so that we can use it on Terminal SQL ?

AFAIK, Iceberg has already supported cleaning orphan files by calling spark Procedure, remove_orphan_files .

How about implement in Spark SQL first, so that we can use it on Terminal SQL ?

AFAIK, Iceberg has already supported cleaning orphan files by calling spark Procedure, remove_orphan_files .

@celltobig Can this approach meet your needs?


doesnt work with multisite

no description required, it is clear from the title itself

@VIVEKKKKK seems like instamojo is not much active on github !


New Crop button is not showing any result

new Crop button is not showing any result

new crop button remove.


[Feature] Adding Mathematical Averages Calculator

Description
The Mathematical Averages Calculator takes a set of values and finds the Arithmetic Mean, Geometric Mean and Harmonic Mean of the same.
Screenshots

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Hi, I'd like to take on the task of implementing the Mathematical Averages Calculator feature. I believe it aligns well with my skills and interests, and I'm excited to contribute to its development. Assigning this to me would be greatly appreciated.
Thanks!

Go ahead @its-kumar-yash


feat: comment statuscolumn & foldtext

Describe what this PR does / why we need it
This PR fixes both issues/features as described in #80:

use statuscolumn on Neovim >= 0.9 for rendering comment signs, so that they render correctly when wrapping
use foldtext on Neovim >= 0.10 for better rendering of folded comments/threads/...

Does this pull request fix one issue?

Fixes #80
Describe how you did it
I implemented both a statuscolumn and foldtext.
See the two different commits.
Describe how to verify it
In Neovim 0.10, check the features described
Special notes for reviews
In the screenshot you can see comment markers from a wrapped comment.
And what a folded thread looks like (lighter background)
Edit: I seem to have included the code from my other PR as well :)

Thats awesome, thanks! I had some basic statuscolumn recommendations in the README but I like the idea of building it in. Will review ASAP

Thanks again @folke!

Thanks for merging!
One thing I just thought about is that signs.place is also used when not part of signs.place_signs in the file-entry module.
The new statusline impl, won't show those signs right now, but I can add them as well.
I'm still pretty new to octo, so where can I see that file-entry being used?


Feature/iia 1106 enable users to modify patterns after creation

Some of what's being used here from Komet I'm not yet familiar with but other than that, from my end all looks good! 👍


fix login failure when JSON content type includes charset

Hello, the requests are failing when their Content-Type  header includes their charset. This is because the validation of credentials required a literal equality for the content type. I just did correct the check.
Thank you for the package.

Coverage remained the same at 91.515% when pulling c7124801405b182c59b3acd4510eb9f457eb9ec7 on motia:master into 1f46a6546c6b81a03ecac4af660271faea54dee6 on tarent:master.


Fn::FindInMap support Fn conditions

Currently Fn::FindInMap function only supports Fn::FindInMap and Ref.
2. Scope of request
e) other coverage-related issue with the resource/attribute/option
3. Expected behavior
Should be able use condition functions such as Fn::If. This can help specify a default key in the map. Currently Fn::If is not supported so trying to use a default key in a map results in an error stating the key was not found in the mapping.
4. Suggest specific test cases
Fn::FindInMap:
  - DNS
  - !If ["HasSpecialDNS", !Ref country, "default" ]
  - "dns"

5. Helpful Links to speed up research and evaluation
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-findinmap.html#w2ab1c25c28c26c13
https://stackoverflow.com/questions/35904204/default-value-on-mappings-aws-cloudformation
6. Category (required) - Will help with tagging and be easier to find by other users to +1
Use the categories as displayed in the AWS Management Console (simplified):

Management (CloudTrail, Config...)

Thank you for your feedback! Fn::FindInMap now supports additional intrinsic functions including Fn::If. You can find more details in official docs.


Enhancement: Revamp README for Improved User Guidance

This enhancement focuses on revitalizing the README to provide users with clearer and more comprehensive guidance. The current README, while functional, may benefit from a strategic update to enhance the user onboarding experience, streamline information, and ensure a smoother understanding of the project.
Key Objectives:

Clarity in Setup Instructions:
Improve and clarify the setup instructions to ensure users, including newcomers, can easily set up and run the project without encountering any hurdles.

Comprehensive Overview:
Expand on the project overview to provide a more detailed and informative introduction. This includes highlighting key features, use cases, and any prerequisites that users should be aware of.

Usage Examples:
Incorporate clear and concise usage examples to assist users in quickly understanding how to interact with the project and utilize its functionalities.

Updated Code Samples:
Ensure that any code samples in the README are up-to-date, accurate, and reflective of the current state of the project. This guarantees users have reliable references for implementation.

Contributing Guidelines:
Enhance the contributing guidelines to encourage community involvement. Clear instructions on how users can contribute, report issues, and suggest improvements will be emphasized.

Benefits:

Improved User Onboarding:
Users, especially those new to the project, will experience a more streamlined onboarding process with clearer instructions and examples.

Reduced Ambiguity:
By enhancing clarity in the README, potential sources of confusion or ambiguity will be minimized, resulting in a more user-friendly experience.

Facilitated Contributions:
The updated contributing guidelines will encourage community engagement, making it easier for users to contribute to the project and share feedback.

This README enhancement aims to optimize the user experience, making the project more accessible and user-friendly for both new and existing contributors.

@Spandan-Bhattacharya assign this to me (JWOC).

I have to close this issue, for mentees cannot make issues yet.
Make the issue once the coding period starts and you will be assigned it.

@Spandan-Bhattacharya, I asked the organizer of JWOC about mentees creating issues. They said that mentees can create issues, but these issues will only be assigned to them during the coding period.

if you want i can send screenshot -

hope this helps and if you agree i can create some issues.As i go through your repo.

Please reply as soon as possible

@Spandan-Bhattacharya  which means i cant raise issue now . I can only raise issue when coding phase start? or i can raise the issue now but you will assign me this when coding phase start?

Yes you can't create issues right now.
You can do so after the coding phase begins.

ok thx