DISTINCT aggregation fix

#1048
Problem
For aggregation with distinct, e.g. SELECT COUNT(DISTINCT x) or SELECT SUM(DISTINCT x) FROM y GROUP BY c, there is currently no mechanism put in place in the HashAggregationTranslaor and StaticAggregationTranslator to prevent the same x to be advanced to aggregation more than once.
Solution
The high level idea is to have a hash table so that for each tuple value being aggregated, if it needs to be distinct, it should not be advanced to aggregation if it already exists in the hash table.
Also, the build pipeline for both the StaticAggregationTranslator and  HashAggregationTranslator would need to be serial since I don't think the hashtable is thread safe.

@kjobanputra @lmwnshn

@githubxxcc You are going to want to add SQL tests. Ask @dniu16 how to do this.

The commit 8fa7b7a62245178f55b2c7c053f9eb30769e61a0 should fix the COUNT(DISTINCT x) bug.
Testing
However, only command manual line testing was done.  After talking to Jeff, it seems that the sql test is currently unable to specify expected value but only expected number of outputs, which makes it less relevant for catching DISTINCT bug. But still, I can add in some .sql tests after I figure out how to do that with the help of @dniu16
Please point to me if there is any other testing in place where I should be adding the tests
Current manual testing done:
# Setup Queries:
DROP TABLE IF EXISTS accounts;
CREATE TABLE accounts (user_id INT PRIMARY KEY, email INT NOT NULL, phone INT NOT NULL);
INSERT INTO accounts (user_id, email, phone) VALUES (0, 99, 10);
INSERT INTO accounts (user_id, email, phone) VALUES (1, 99, 10);
INSERT INTO accounts (user_id, email, phone) VALUES (2, 101, 9);

# Test Queries:
terrier=# SELECT COUNT(DISTINCT email), COUNT(email) FROM accounts;
 ?column? | ?column?
----------+----------
        2 |        3
(1 row)

terrier=# SELECT COUNT(DISTINCT email), COUNT(email), COUNT(DISTINCT phone) FROM accounts;
 ?column? | ?column? | ?column?
----------+----------+----------
        2 |        3 |        2
(1 row)

Ping me on slack once you're happy with the tests + it works with strings, thanks! Nice work.

Current testing for sanity check passed. Feel free to pull the PR to test it
# Set up query
DROP TABLE accounts;
CREATE TABLE accounts (user_id INT PRIMARY KEY, email VARCHAR(256), phone INT NOT NULL, years float NOT NULL);
INSERT INTO accounts VALUES (0, 'user1@gamil.com',10, 10.5);
INSERT INTO accounts VALUES (1, 'user1@gamil.com',10, 0.5);
INSERT INTO accounts VALUES (2, 'user1@gamil.com',10,  0.5);
INSERT INTO accounts VALUES (3, 'user2@gamil.com',100, 1.0);

--------------------
SELECT
    COUNT(DISTINCT email) as dist_str_cnt,
    COUNT(email) as str_cnt,
    MIN(email) as str_min,
    MAX(email) as str_max
FROM accounts;

terrier-#
 dist_str_cnt | str_cnt |     str_min     |     str_max
--------------+---------+-----------------+-----------------
            2 |       4 |<EMAIL_ADDRESS>|<EMAIL_ADDRESS>

--------------------
SELECT
    COUNT(DISTINCT phone) as dist_int_cnt,
    COUNT(phone) as int_cnt,
    AVG(DISTINCT phone) as dist_int_avg,
    AVG(phone) as int_avg,
    MAX(DISTINCT phone) as dist_int_max,
    MAX(phone) as int_max,
    MIN(DISTINCT phone) as dist_int_min,
    MIN(phone) as int_min
FROM accounts;

terrier-#
 dist_int_cnt | int_cnt | dist_int_avg |  int_avg  | dist_int_max | int_max | dist_int_min | int_min
--------------+---------+--------------+-----------+--------------+---------+--------------+---------
            2 |       4 |    55.000000 | 32.500000 |          100 |     100 |           10 |      10
#

--------------------
SELECT
    COUNT(DISTINCT years) as dist_float_cnt,
    COUNT(years) as float_cnt,
    AVG(DISTINCT years) as dist_float_avg,
    AVG(years) as float_avg,
    MIN(years) as float_min,
    MAX(years) as float_max
FROM accounts;

terrier-#:
 dist_float_cnt | float_cnt | dist_float_avg | float_avg | float_min | float_max
----------------+-----------+----------------+-----------+-----------+-----------
              3 |         4 |       4.000000 |  3.125000 |  0.500000 | 10.500000
(1 row)

--------------------
SELECT
    COUNT(DISTINCT email) as dist_str_cnt,
    COUNT(email) as str_cnt,
    MIN(email) as str_min,
    MAX(email) as str_max
FROM accounts GROUP BY phone;
terrier-#
 dist_str_cnt | str_cnt |     str_min     |     str_max
--------------+---------+-----------------+-----------------
            1 |       1 |<EMAIL_ADDRESS>|<EMAIL_ADDRESS>            1 |       3 |<EMAIL_ADDRESS>|<EMAIL_ADDRESS>(2 rows)

SELECT
    COUNT(DISTINCT years) as dist_float_cnt,
    COUNT(years) as float_cnt,
    AVG(DISTINCT years) as dist_float_avg,
    AVG(years) as float_avg,
    MIN(years) as float_min,
    MAX(years) as float_max
FROM accounts GROUP BY email;

dist_float_cnt | float_cnt | dist_float_avg | float_avg | float_min | float_max
----------------+-----------+----------------+-----------+-----------+-----------
              2 |         3 |       5.500000 |  3.833333 |  0.500000 | 10.500000
              1 |         1 |       1.000000 |  1.000000 |  1.000000 |  1.000000
(2 rows)

SELECT
    COUNT(DISTINCT phone) as dist_int_cnt,
    COUNT(phone) as int_cnt,
    AVG(DISTINCT phone) as dist_int_avg,
    AVG(phone) as int_avg,
    MAX(DISTINCT phone) as dist_int_max,
    MAX(phone) as int_max,
    MIN(DISTINCT phone) as dist_int_min,
    MIN(phone) as int_min
FROM accounts GROUP BY years;

 dist_int_cnt | int_cnt | dist_int_avg |  int_avg   | dist_int_max | int_max | dist_int_min | int_min
--------------+---------+--------------+------------+--------------+---------+--------------+---------
            1 |       2 |    10.000000 |  10.000000 |           10 |      10 |           10 |      10
            1 |       1 |   100.000000 | 100.000000 |          100 |     100 |          100 |     100
            1 |       1 |    10.000000 |  10.000000 |           10 |      10 |           10 |      10
(3 rows)

@kjobanputra Feel free to help generate a more comprehensive and robust SQL traces files based on the example I used.
It will be good to test on a larger dataset if possible so that we trigger the hash collision and the partition overflow (for hash_aggregation_translator

I added the distinct aggregations in a separate file so it's easier for the reviewer to look at it. I can merge this with Jeff's aggregation trace file after it's approved.

I ran the trace file manually and compared the results, I think the formatting issue for decimals/floats mentioned here https://github.com/cmu-db/terrier/pull/1144#issuecomment-686614760 is making the hashes not matched.
For example, one of the failed trace:
terrier=# SELECT SUM(DISTINCT gpa) as distinctGpaSum, SUM(gpa) as gpaSum, SUM(DISTINCT age) as distinctAgeSum from studentTable;
 distinctgpasum |   gpasum   | distinctagesum
----------------+------------+----------------
      14.500000 | 365.000002 |             95
(1 row)

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

postgres=# SELECT SUM(DISTINCT gpa) as distinctGpaSum, SUM(gpa) as gpaSum, SUM(DISTINCT age) as distinctAgeSum from studentTable;
 distinctgpasum |      gpasum       | distinctagesum
----------------+-------------------+----------------
           14.5 |<PHONE_NUMBER>999993 |             95
(1 row)

I remember it being brought up in the meeting, but couldn't not recall if we have reach a solution to this?
@dniu16 @apavlo


Progress bar for current playing track

Add a progress bar for the current playing track
Current look

Current features
display the current timecode of the video and the total length : a slider is updated to show the video progress, this slider can be interacted with to jump somewhere in the video
Limitations
the slider doesn't work well when slided but if the user simply clicks somewhere on the bar it works.
Progress behaves weirdly because the slider value is updated frequently by querying the player GetCurrentTime API, the updates happen when the user is dragging the slider, making it go back and forth between the currentTime and the mouse position on the bar

I would like to see this merged.


[Storage]Add sample for restorePolicy in GetBlobServiceProperites

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of “no breaking changes
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Please follow the link to find more details on PR review process.

/azp run automation - sdk

@blueww  @qianwens  minor update for https://github.com/Azure/azure-rest-api-specs/pull/9907

Can one of the admins verify this patch?

@xmbms could you please fix the prettier check error of file "specification/storage/resource-manager/Microsoft.Storage/stable/2019-06-01/examples/BlobServicesGet.json"

/azp run

Close as this is an optional PR


2020-HI fix dead link

Seems they remade their blog?
Thanks for the slides!

Wow, never saw this PR! Didn't expect PRs to it. 😂
Thanks for the catch and fix @tomByrer. It looks like they parlayed their blog post fame into a whole new website. So I just linked to the website. It's not as compact as a blog post, but all the info is there.


Rendering error of GLTF 2.0 models with interleaved attributes

According to the gltf 2.0 spec, on the bufferview there is a byteStride property to specify the byte distance beetween consecutive elements.
This seems not taken in consideration in the gltf loader.
To test the issue, load the BoxInterleaved sample of the KhronosGroup/glTF-Sample-Models repo https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/BoxInterleaved

Yes, adding support for this is in our backlog. This sample model will help. Thanks!


More of a question, less of an issue

So, I am trying to implement Wayland for L4T Lakka(Currently only supports Nintendo Switch), over X to fix an annoying frame pacing bug with rotation.
So, the question is, does the DRM weston renderer work? This is all I get when I try to launch weston.
I ported all of the patches, and edited/added nvidia libs, so I dont think that is the issue.
Was thinking that maybe my issue is related to this: https://github.com/kekiefer/meta-tegra/commit/21725f4b75da5760d6d5b3ff8ee978d2499441a6
Weston Log:
[23:16:24.248] weston 10.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: 7.90.001-16071-g21521d3255+
[23:16:24.249] Command line: /usr/bin/weston --tty=1 --log=/var/log/weston.log
[23:16:24.249] OS: Linux, 4.9.140, #1 SMP PREEMPT Fri Apr 22 00:30:40 CEST 2022, aarch64
[23:16:24.249] Flight recorder: enabled
[23:16:24.249] Using config file '/storage/.config/weston.ini'
[23:16:24.249] Output repaint window is 7 ms maximum.
[23:16:24.249] Loading module '/usr/lib/libweston-10/drm-backend.so'
[23:16:24.263] initializing drm backend
[23:16:24.263] Trying libseat launcher...
[23:16:24.263] libseat: session control granted
[23:16:24.265] using /dev/dri/card0
[23:16:24.265] DRM: supports atomic modesetting
[23:16:24.265] DRM: supports GBM modifiers
[23:16:24.265] DRM: does not support picture aspect ratio
[23:16:24.266] Loading module '/usr/lib/libweston-10/gl-renderer.so'
[23:16:24.301] EGL client extensions: EGL_EXT_platform_base EGL_EXT_device_base
               EGL_EXT_device_enumeration EGL_EXT_device_query
               EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions
               EGL_KHR_debug EGL_KHR_platform_x11 EGL_EXT_platform_x11
               EGL_EXT_platform_device EGL_KHR_platform_gbm
               EGL_MESA_platform_gbm EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_MESA_platform_surfaceless

Weston strace output:
message (2).txt
Generic GDB backtrace when stopped:
#0  0x0000007f8499d93c in __lll_lock_wait (futex=futex@entry=0x7f8424efa8, private=0) at lowlevellock.c:46
#1  0x0000007f84997168 in __GI___pthread_mutex_lock (mutex=0x7f8424efa8) at pthread_mutex_lock.c:78
#2  0x0000007f84230244 in drmGetEntry () from /usr/lib/libdrm.so.2
#3  0x0000007f83dd325c in drmClose () from /usr/lib/libdrm.so.2.4.0
#4  0x0000007f8422e438 in drmClose () from /usr/lib/libdrm.so.2
#5  0x0000007f81164f60 in ?? () from /usr/lib/libnvidia-glsi.so.32.3.1
#6  0x0000007f8116047c in ?? () from /usr/lib/libnvidia-glsi.so.32.3.1
#7  0x0000007f81160494 in ?? () from /usr/lib/libnvidia-glsi.so.32.3.1
#8  0x0000007f811f0dd4 in ?? () from /usr/lib/libEGL_nvidia.so.0
#9  0x0000007f811e17e8 in ?? () from /usr/lib/libEGL_nvidia.so.0
#10 0x0000007f811e1188 in ?? () from /usr/lib/libEGL_nvidia.so.0
#11 0x0000007f811e143c in ?? () from /usr/lib/libEGL_nvidia.so.0
#12 0x0000007f811f446c in ?? () from /usr/lib/libEGL_nvidia.so.0
#13 0x0000007f8106fe4c in ?? () from /usr/lib/libnvidia-egl-gbm.so.1
#14 0x0000007f81241ffc in ?? () from /usr/lib/libEGL_nvidia.so.0
#15 0x0000007f811f2c88 in ?? () from /usr/lib/libEGL_nvidia.so.0
#16 0x0000007f8159b404 in ?? () from /usr/lib/libweston-10/gl-renderer.so
#17 0x0000007f815a0ee4 in ?? () from /usr/lib/libweston-10/gl-renderer.so
#18 0x0000007f842654f0 in ?? () from /usr/lib/libweston-10/drm-backend.so
#19 0x0000007f84265550 in ?? () from /usr/lib/libweston-10/drm-backend.so
#20 0x0000007f8425e978 in weston_backend_init () from /usr/lib/libweston-10/drm-backend.so
#21 0x0000007f84af0c34 in weston_compositor_load_backend () from /usr/lib/libweston-10.so.0
#22 0x0000007f84c97b4c in wet_main () from /usr/lib/weston/libexec_weston.so.0

Current Wayland changes branch to Lakka tree:  https://github.com/GavinDarkglider/Lakka-LibreELEC/tree/lakka-le-master-wayland
I dont have any actual L4T dev boards, so while the framework is there for that, in therory(BSP, and what not should work for all board types, kernel needs merging patches between release versions for non switch boards, and bootloader is non-existant). Maybe one day I will get some jetsons, and add support for them as well.

Yes, Weston's DRM backend and EGL renderer does work out of the box with L4T for the Tegra platforms that we have set up in meta-tegra. Here's what libdrm looks like for us:
lrwxrwxrwx 1 root root     11 Feb 16 03:22 /usr/lib/libdrm.so -> libdrm.so.2
lrwxrwxrwx 1 root root     14 Mar  9  2018 /usr/lib/libdrm.so.2 -> libdrm_nvdc.so
-rwxr-xr-x 1 root root  83960 Mar  9  2018 /usr/lib/libdrm.so.2.4.0

What does this look like for you?

Yes, Weston's DRM backend and EGL renderer does work out of the box with L4T for the Tegra platforms that we have set up in meta-tegra. Here's what libdrm looks like for us:
lrwxrwxrwx 1 root root     11 Feb 16 03:22 /usr/lib/libdrm.so -> libdrm.so.2
lrwxrwxrwx 1 root root     14 Mar  9  2018 /usr/lib/libdrm.so.2 -> libdrm_nvdc.so
-rwxr-xr-x 1 root root  83960 Mar  9  2018 /usr/lib/libdrm.so.2.4.0

What does this look like for you?

lrwxrwxrwx    1 root     root            11 Apr 20 19:17 libdrm.so -> libdrm.so.2
lrwxrwxrwx    1 root     root            35 Apr 20 19:42 libdrm.so.2 -> aarch64-linux-gnu/tegra/libdrm.so.2
-rwxr-xr-x    1 root     root        134056 Apr 20 19:17 libdrm.so.2.4.0
lrwxrwxrwx    1 root     root            19 Apr 20 19:17 libdrm_nouveau.so -> libdrm_nouveau.so.2
lrwxrwxrwx    1 root     root            23 Apr 20 19:17 libdrm_nouveau.so.2 -> libdrm_nouveau.so.2.0.0
-rwxr-xr-x    1 root     root         67968 Apr 20 19:17 libdrm_nouveau.so.2.0.0
lrwxrwxrwx    1 root     root            11 Apr 20 19:42 libdrm_nvdc.so -> libdrm.so.2
Ignore the nouveau stuff, I had to set a mesa driver, to get lakka to build it, and was to lazy to write a workaround for that.

The two eglstream patches for weston in meta-tegra master are needed for client support, but not for the backend -- you can start weston without them and get a desktop.
Your library setup looks equivalent, we've got libdrm_nvdc.so symlinked to the tegra/libdrm.so.2.
To be clear, are you building the system libdrm with -Wl,-Bsymbolic-functions?

The two eglstream patches for weston in meta-tegra master are needed for client support, but not for the backend -- you can start weston without them and get a desktop.
Your library setup looks equivalent, we've got libdrm_nvdc.so symlinked to the tegra/libdrm.so.2.
To be clear, are you building the system libdrm with -Wl,-Bsymbolic-functions?

I wasnt, I missed that, and meson makes it a pain to do, since you cant just LDFLAGS=.... like the rest of the builders. lol. That is fixed now, and I have gotten a bit further, now it stops and hangs here:
weston-log.txt
Which from what I can tell from a log someone posted of it working, is right before the screen configuration should be detected and set.

Yes, that's right. Here's what tegra looks like:
root@jetson-agx-xavier-devkit:~# weston --tty 1
Date: 2022-03-15 UTC
[16:01:35.251] weston 10.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: 10.0.0
[16:01:35.251] Command line: weston --tty 1
[16:01:35.251] OS: Linux, 5.10.65-l4t-r34.1+g4fc0249f4dd4, #1 SMP PREEMPT Sat Apr 9 12:01:30 UTC 2022, aarch64
[16:01:35.251] Flight recorder: enabled
[16:01:35.251] Using config file '/etc/xdg/weston/weston.ini'
[16:01:35.253] Output repaint window is 7 ms maximum.
[16:01:35.253] Loading module '/usr/lib/libweston-10/drm-backend.so'
[16:01:35.262] initializing drm backend
[16:01:35.262] Trying logind launcher...
[16:01:35.263] logind: failed to get session seat
[16:01:35.263] logind: cannot setup systemd-logind helper error: (No data available), using legacy fallback
[16:01:35.263] Trying weston_launch launcher...
[16:01:35.263] could not get launcher fd from env
[16:01:35.263] Trying direct launcher...
[16:01:35.291] using /dev/dri/card0
[16:01:35.291] DRM: supports atomic modesetting
[16:01:35.291] DRM: supports GBM modifiers
[16:01:35.291] DRM: does not support picture aspect ratio
[16:01:35.291] Loading module '/usr/lib/libweston-10/gl-renderer.so'
[16:01:35.306] EGL client extensions: EGL_EXT_platform_base EGL_EXT_device_base
               EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions
               EGL_KHR_debug EGL_KHR_platform_x11 EGL_EXT_platform_x11
               EGL_EXT_platform_device EGL_KHR_platform_gbm
               EGL_MESA_platform_gbm EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland
[16:01:35.331] EGL version: 1.5
[16:01:35.331] EGL vendor: NVIDIA
[16:01:35.331] EGL client APIs: OpenGL_ES OpenGL
[16:01:35.331] EGL extensions: EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age
               EGL_EXT_client_sync EGL_EXT_create_context_robustness
               EGL_EXT_image_dma_buf_import
               EGL_EXT_image_dma_buf_import_modifiers
               EGL_MESA_image_dma_buf_export EGL_EXT_output_base
               EGL_EXT_output_drm EGL_EXT_protected_content
               EGL_EXT_stream_consumer_egloutput EGL_EXT_stream_acquire_mode
               EGL_EXT_sync_reuse EGL_IMG_context_priority
               EGL_KHR_config_attribs EGL_KHR_create_context_no_error
               EGL_KHR_context_flush_control EGL_KHR_create_context
               EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses
               EGL_KHR_partial_update EGL_KHR_swap_buffers_with_damage
               EGL_KHR_no_config_context EGL_KHR_gl_colorspace
               EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
               EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
               EGL_KHR_image EGL_KHR_image_base EGL_KHR_reusable_sync
               EGL_KHR_stream EGL_KHR_stream_attrib
               EGL_KHR_stream_consumer_gltexture
               EGL_KHR_stream_cross_process_fd EGL_KHR_stream_fifo
               EGL_KHR_stream_producer_eglsurface EGL_KHR_surfaceless_context
               EGL_KHR_wait_sync EGL_NV_context_priority_realtime
               EGL_NV_cuda_event EGL_NV_nvrm_fence_sync
               EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage
               EGL_NV_stream_cross_display EGL_NV_stream_cross_object
               EGL_NV_stream_cross_process EGL_NV_stream_cross_system
               EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata
               EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket
               EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix
               EGL_NV_stream_sync EGL_NV_stream_fifo_next
               EGL_NV_stream_fifo_synchronous
               EGL_NV_stream_consumer_gltexture_yuv EGL_NV_stream_attrib
               EGL_NV_stream_origin EGL_NV_system_time
               EGL_NV_output_drm_flip_event EGL_NV_triple_buffer
               EGL_NV_robustness_video_memory_purge
               EGL_WL_bind_wayland_display EGL_WL_wayland_eglstream
[16:01:35.334] EGL_KHR_surfaceless_context available
[16:01:35.555] GL version: OpenGL ES 3.2 NVIDIA 34.1.0
[16:01:35.555] GLSL version: OpenGL ES GLSL ES 3.20
[16:01:35.555] GL vendor: NVIDIA Corporation
[16:01:35.555] GL renderer: NVIDIA Tegra Xavier (nvgpu)/integrated
[16:01:35.555] GL extensions: GL_EXT_base_instance GL_EXT_blend_func_extended
               GL_EXT_blend_minmax GL_EXT_buffer_storage GL_EXT_clear_texture
               GL_EXT_clip_control GL_EXT_clip_cull_distance
               GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float
               GL_EXT_conservative_depth GL_EXT_copy_image GL_EXT_depth_clamp
               GL_EXT_debug_label GL_EXT_discard_framebuffer
               GL_EXT_disjoint_timer_query GL_EXT_draw_buffers_indexed
               GL_EXT_draw_elements_base_vertex GL_EXT_EGL_image_array
               GL_EXT_EGL_image_storage GL_EXT_EGL_image_external_wrap_modes
               GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_geometry_point_size
               GL_EXT_geometry_shader GL_EXT_gpu_shader5
               GL_EXT_map_buffer_range GL_EXT_multi_draw_indirect
               GL_EXT_multisample_compatibility
               GL_EXT_multisampled_render_to_texture
               GL_EXT_multisampled_render_to_texture2
               GL_EXT_multiview_texture_multisample
               GL_EXT_multiview_timer_query GL_EXT_occlusion_query_boolean
               GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage
               GL_EXT_primitive_bounding_box GL_EXT_protected_textures
               GL_EXT_raster_multisample GL_EXT_render_snorm GL_EXT_robustness
               GL_EXT_separate_shader_objects GL_EXT_shader_group_vote
               GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix
               GL_EXT_shader_io_blocks
               GL_EXT_shader_non_constant_global_initializers
               GL_EXT_shader_texture_lod GL_EXT_shadow_samplers
               GL_EXT_sparse_texture GL_EXT_sparse_texture2 GL_EXT_sRGB
               GL_EXT_sRGB_write_control GL_EXT_tessellation_point_size
               GL_EXT_tessellation_shader GL_EXT_texture_border_clamp
               GL_EXT_texture_buffer GL_EXT_texture_compression_bptc
               GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc
               GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map_array
               GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax
               GL_EXT_texture_format_BGRA8888
               GL_EXT_texture_mirror_clamp_to_edge GL_EXT_texture_norm16
               GL_EXT_texture_query_lod GL_EXT_texture_rg
               GL_EXT_texture_shadow_lod GL_EXT_texture_sRGB_R8
               GL_EXT_texture_sRGB_decode GL_EXT_texture_storage
               GL_EXT_texture_view GL_EXT_draw_transform_feedback
               GL_EXT_unpack_subimage GL_EXT_window_rectangles
               GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object
               GL_EXT_memory_object_fd GL_NV_memory_object_sparse
               GL_KHR_parallel_shader_compile GL_KHR_no_error
               GL_KHR_robust_buffer_access_behavior GL_KHR_robustness
               GL_EXT_semaphore GL_EXT_semaphore_fd GL_KHR_shader_subgroup
               GL_KHR_texture_compression_astc_ldr
               GL_KHR_texture_compression_astc_sliced_3d GL_NV_bgr
               GL_NV_bindless_texture GL_NV_blend_equation_advanced
               GL_NV_blend_equation_advanced_coherent
               GL_NVX_blend_equation_advanced_multi_draw_buffers
               GL_NV_blend_minmax_factor GL_NV_clip_space_w_scaling
               GL_NV_conditional_render GL_NV_conservative_raster
               GL_NV_conservative_raster_pre_snap_triangles GL_NV_copy_buffer
               GL_NV_copy_image GL_NV_draw_buffers GL_NV_draw_instanced
               GL_NV_draw_texture GL_NV_draw_vulkan_image
               GL_NV_EGL_stream_consumer_external
               GL_NV_explicit_attrib_location GL_NV_fbo_color_attachments
               GL_NV_fill_rectangle GL_NV_fragment_coverage_to_color
               GL_NV_fragment_shader_interlock GL_NV_framebuffer_blit
               GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample
               GL_NV_generate_mipmap_sRGB GL_NV_geometry_shader_passthrough
               GL_NV_instanced_arrays GL_NV_internalformat_sample_query
               GL_NV_gpu_shader5 GL_NV_image_formats GL_NV_memory_attachment
               GL_NV_occlusion_query_samples GL_NV_non_square_matrices
               GL_NV_pack_subimage GL_NV_packed_float
               GL_NV_packed_float_linear GL_NV_path_rendering
               GL_NV_path_rendering_shared_edge GL_NV_pixel_buffer_object
               GL_NV_polygon_mode GL_NV_read_buffer GL_NV_read_depth
               GL_NV_read_depth_stencil GL_NV_read_stencil
               GL_NV_sample_locations GL_NV_sample_mask_override_coverage
               GL_NV_shader_atomic_fp16_vector
               GL_NV_shader_noperspective_interpolation
               GL_NV_shader_subgroup_partitioned GL_NV_shadow_samplers_array
               GL_NV_shadow_samplers_cube GL_NV_sRGB_formats
               GL_NV_stereo_view_rendering GL_NV_texture_array
               GL_NV_texture_barrier GL_NV_texture_border_clamp
               GL_NV_texture_compression_latc GL_NV_texture_compression_s3tc
               GL_NV_texture_compression_s3tc_update
               GL_NV_texture_dirty_tile_map GL_NV_timer_query
               GL_NV_viewport_array GL_NV_viewport_array2
               GL_NV_viewport_swizzle GL_KHR_blend_equation_advanced
               GL_KHR_blend_equation_advanced_coherent
               GL_OES_compressed_ETC1_RGB8_texture
               GL_EXT_compressed_ETC1_RGB8_sub_texture GL_OES_depth24
               GL_OES_depth32 GL_OES_depth_texture
               GL_OES_depth_texture_cube_map GL_OES_copy_image
               GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex
               GL_OES_texture_border_clamp GL_OES_tessellation_point_size
               GL_OES_tessellation_shader GL_OES_texture_buffer
               GL_OES_geometry_point_size GL_OES_geometry_shader
               GL_OES_gpu_shader5 GL_OES_shader_io_blocks GL_OES_texture_view
               GL_OES_primitive_bounding_box GL_OES_EGL_image
               GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3
               GL_OES_EGL_sync GL_OES_element_index_uint
               GL_OES_fbo_render_mipmap GL_OES_get_program_binary
               GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8
               GL_EXT_read_format_bgra GL_OES_sample_shading
               GL_OES_sample_variables GL_OES_shader_image_atomic
               GL_OES_shader_multisample_interpolation
               GL_OES_standard_derivatives GL_OES_surfaceless_context
               GL_OES_texture_cube_map_array GL_OES_texture_npot
               GL_OES_texture_float GL_OES_texture_float_linear
               GL_OES_texture_half_float GL_OES_texture_half_float_linear
               GL_OES_texture_stencil8
               GL_OES_texture_storage_multisample_2d_array
               GL_OES_vertex_array_object GL_OES_vertex_half_float
               GL_OES_viewport_array GL_OVR_multiview GL_OVR_multiview2
               GL_OVR_multiview_multisampled_render_to_texture
               GL_ANDROID_extension_pack_es31a
[16:01:35.720] GL ES 3.2 - renderer features:
               read-back format: BGRA
               EGL Wayland extension: yes
[16:01:35.755] event8  - NVIDIA Jetson AGX Xavier HDA HDMI/DP,pcm=9: is tagged by udev as: Switch
[16:01:36.244] event8  - not using input device '/dev/input/event8'
[16:01:36.247] event5  - NVIDIA Jetson AGX Xavier HDA HDMI/DP,pcm=3: is tagged by udev as: Switch
[16:01:36.276] event5  - not using input device '/dev/input/event5'
[16:01:36.278] event6  - NVIDIA Jetson AGX Xavier HDA HDMI/DP,pcm=7: is tagged by udev as: Switch
[16:01:36.308] event6  - not using input device '/dev/input/event6'
[16:01:36.312] event7  - NVIDIA Jetson AGX Xavier HDA HDMI/DP,pcm=8: is tagged by udev as: Switch
[16:01:36.348] event7  - not using input device '/dev/input/event7'
[16:01:36.355] event0  - Logitech USB Receiver: is tagged by udev as: Keyboard
[16:01:36.356] event0  - Logitech USB Receiver: device is a keyboard
[16:01:36.362] event1  - Logitech USB Receiver Mouse: is tagged by udev as: Mouse
[16:01:36.363] event1  - Logitech USB Receiver Mouse: device is a pointer
[16:01:36.371] event2  - Logitech USB Receiver Consumer Control: is tagged by udev as: Keyboard
[16:01:36.372] event2  - Logitech USB Receiver Consumer Control: device is a keyboard
[16:01:36.378] event3  - Logitech USB Receiver System Control: is tagged by udev as: Keyboard
[16:01:36.378] event3  - Logitech USB Receiver System Control: device is a keyboard
[16:01:36.381] event4  - gpio-keys: is tagged by udev as: Keyboard
[16:01:36.382] event4  - gpio-keys: device is a keyboard
[16:01:36.404] libinput: configuring device "Logitech USB Receiver".
[16:01:36.404] libinput: configuring device "Logitech USB Receiver Mouse".
[16:01:36.404] libinput: configuring device "Logitech USB Receiver Consumer Control".
[16:01:36.404] libinput: configuring device "Logitech USB Receiver System Control".
[16:01:36.405] libinput: configuring device "gpio-keys".
[16:01:36.405] DRM: head 'HDMI-A-1' updated, connector 1000 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[16:01:36.405] DRM: head 'HDMI-A-1' found, connector 1000 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[16:01:36.405] DRM: head 'DP-1' updated, connector 1001 is disconnected.
[16:01:36.405] DRM: head 'DP-1' found, connector 1001 is disconnected.
[16:01:36.405] DRM: head 'DP-2' updated, connector 1002 is disconnected.
[16:01:36.405] DRM: head 'DP-2' found, connector 1002 is disconnected.
[16:01:36.405] Registered plugin API 'weston_drm_output_api_v1' of size 24
[16:01:36.406] Color manager: no-op
[16:01:36.406] Output 'HDMI-A-1' using color profile: built-in default sRGB SDR profile
[16:01:36.406] Chosen EGL config details: id:  20 rgba: 8 8 8 0 buf: 24 dep:  0 stcl: 0 int: 0-0 type: win|pbf vis_id: XRGB8888 (0x343)
[16:01:36.406] Output HDMI-A-1 (crtc 1000) video modes:
<EMAIL_ADDRESS>preferred, current, 594.2 MHz
<EMAIL_ADDRESS>25.2 MHz
<EMAIL_ADDRESS>533.3 MHz
<EMAIL_ADDRESS>594.2 MHz
<EMAIL_ADDRESS>297.0 MHz
<EMAIL_ADDRESS>297.0 MHz
<EMAIL_ADDRESS>297.0 MHz
<EMAIL_ADDRESS>148.5 MHz
<EMAIL_ADDRESS>148.5 MHz
<EMAIL_ADDRESS>74.2 MHz
<EMAIL_ADDRESS>74.2 MHz
<EMAIL_ADDRESS>74.2 MHz
<EMAIL_ADDRESS>148.4 MHz
<EMAIL_ADDRESS>594.2 MHz
[16:01:36.407] associating input device event0 with output HDMI-A-1 (none by udev)
[16:01:36.407] associating input device event1 with output HDMI-A-1 (none by udev)
[16:01:36.407] associating input device event2 with output HDMI-A-1 (none by udev)
[16:01:36.407] associating input device event3 with output HDMI-A-1 (none by udev)
[16:01:36.407] associating input device event4 with output HDMI-A-1 (none by udev)
[16:01:36.407] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
[16:01:36.407] Compositor capabilities:
               arbitrary surface rotation: yes
               screen capture uses y-flip: yes
               cursor planes: yes
               arbitrary resolutions: no
               view mask clipping: yes
               explicit sync: yes
               color operations: yes
               presentation clock: CLOCK_MONOTONIC, id 1
               presentation clock resolution: 0.000000001 s
[16:01:36.407] Loading module '/usr/lib/weston/desktop-shell.so'
[16:01:36.408] launching '/usr/libexec/weston-keyboard'
[16:01:36.410] Warning: support for deprecated wl_shell interface is enabled. Please migrate legacy clients to xdg-shell.
[16:01:36.411] launching '/usr/libexec/weston-desktop-shell'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
^C[16:03:19.651] caught signal 2
[16:03:19.678] output for input device event0 removed
[16:03:19.678] output for input device event1 removed
[16:03:19.678] output for input device event2 removed
[16:03:19.679] output for input device event3 removed
[16:03:19.679] output for input device event4 removed
[16:03:19.709] event0  - Logitech USB Receiver: device removed
[16:03:19.732] event1  - Logitech USB Receiver Mouse: device removed
[16:03:19.764] event2  - Logitech USB Receiver Consumer Control: device removed
[16:03:19.788] event3  - Logitech USB Receiver System Control: device removed
[16:03:19.812] event4  - gpio-keys: device removed
[108412.023630] tegradc 15200000.display: blank - powerdown
[108412.066415] extcon-disp-state external-connection:disp-state: cable 48 state 0
[108412.066422] Extcon AUX2(HDMI) disable
[108412.089492] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[108412.090375] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[108412.090441] tegradc 15200000.display: unblank
[108412.091692] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[108412.091876] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[108412.100700] tegradc 15200000.display: hdmi: tmds rate:594000K prod-setting:prod_c_hdmi_300m_600m
[108412.102575] tegradc 15200000.display: hdmi: get YCC quant from EDID.
[108412.106445] extcon-disp-state external-connection:disp-state: cable 48 state 1
[108412.106449] Extcon AUX2(HDMI) enable
[108412.119499] tegradc 15200000.display: sync windows ret = 247

Ok, so it turns out something in the build, probably glvnd itself doesnt like the 32.3.1 egl libs. lol. that is what caused the first freezing issue. lol.

Also, picking through the kernel patches and what not for oe4t, do I need the KVM patches for this to work properly?

You shouldn't need those patches for this.  They're only there to improve KVM virtualization support.

46	lowlevellock.c: No such file or directory.
#0  __lll_lock_wait (futex=futex@entry=0x7f83ebe340, private=0) at lowlevellock.c:46
#1  0x0000007f846aa868 in __GI___pthread_mutex_lock (mutex=0x7f83ebe340) at pthread_mutex_lock.c:78
#2  0x0000007f84942c60 in pthread_mutex_lock (mutex=<optimized out>) at forward.c:192
#3  0x0000007f83e95a58 in drmRandomCreate () from /usr/lib/libdrm.so.2
#4  0x0000007f8398ec7c in HashHash (key=key@entry=4000) at ../xf86drmHash.c:90
#5  0x0000007f8398ed1c in HashFind (table=0x44ac50, key=4000, h=h@entry=0x0) at ../xf86drmHash.c:142
#6  0x0000007f8398ee9c in drmHashLookup (t=<optimized out>, key=<optimized out>, value=0x7fcbdb69e8) at ../xf86drmHash.c:174
#7  0x0000007f83e94ad8 in drmHashLookup () from /usr/lib/libdrm.so.2
#8  0x0000007f80e6aef8 in ?? () from /usr/lib/libnvgbm.so
#9  0x0000007f80e6af28 in ?? () from /usr/lib/libnvgbm.so
#10 0x0000007f80e67f40 in ?? () from /usr/lib/libnvgbm.so
#11 0x0000007f80e68f48 in gbm_bo_create () from /usr/lib/libnvgbm.so
#12 0x0000007f80e80fdc in gbm_tudrm_bo_create (gbm=0x44bf20, width=256, height=256, format=875713089, usage=10, _modifiers=0x0, count=0) at ../tegra_udrm_gbm.c:278
#13 0x0000007f83e6e9fc in gbm_bo_create (gbm=<optimized out>, width=<optimized out>, height=<optimized out>, format=<optimized out>, flags=flags@entry=10)
    at ../src/gbm/main/gbm.c:493
#14 0x0000007f83ed4fd8 in drm_output_init_cursor_egl (output=output@entry=0x5bb9d0, b=b@entry=0x4406c0) at ../libweston/backend-drm/drm-gbm.c:157
#15 0x0000007f83ed5164 in drm_output_init_egl (output=output@entry=0x5bb9d0, b=b@entry=0x4406c0) at ../libweston/backend-drm/drm-gbm.c:255
#16 0x0000007f83ecd60c in drm_output_enable (base=0x5bb9d0) at ../libweston/backend-drm/drm.c:1810
#17 0x0000007f848245d0 in weston_output_enable (output=output@entry=0x5bb9d0) at ../libweston/compositor.c:6780
#18 0x0000007f849d84f4 in drm_try_enable (output=output@entry=0x5bb9d0, undo=undo@entry=0x5961f8, failed=failed@entry=0x7fcbdb6c78) at ../compositor/main.c:2145
#19 0x0000007f849da510 in drm_try_attach_enable (output=0x5bb9d0, lo=lo@entry=0x5961c0) at ../compositor/main.c:2179
#20 0x0000007f849da6f4 in drm_process_layoutput (wet=wet@entry=0x7fcbdb7168, lo=lo@entry=0x5961c0) at ../compositor/main.c:2248
#21 0x0000007f849da7d4 in drm_process_layoutputs (wet=wet@entry=0x7fcbdb7168) at ../compositor/main.c:2267
#22 0x0000007f849da8c8 in drm_heads_changed (listener=<optimized out>, arg=0x424e40) at ../compositor/main.c:2329
#23 0x0000007f8481acb0 in wl_signal_emit (data=0x424e40, signal=0x425240)
    at /home/gavin/lakka-le-master/Lakka-LibreELEC/build.Lakka-Switch.aarch64-LE-master-devel/toolchain/aarch64-libreelec-linux-gnueabi/sysroot/usr/include/wayland-server-core.h:481
#24 weston_compositor_call_heads_changed (data=data@entry=0x424e40) at ../libweston/compositor.c:5321
#25 0x0000007f84824840 in weston_compositor_flush_heads_changed (compositor=0x424e40) at ../libweston/compositor.c:6864
#26 0x0000007f849dba4c in wet_main (argc=<optimized out>, argv=0x7fcbdb73d8, test_data=test_data@entry=0x0) at ../compositor/main.c:3479
#27 0x00000000004006ec in main (argc=<optimized out>, argv=<optimized out>) at ../compositor/executable.c:33
A debugging session is active.

Backtrace of current issue, freezes at the point it should print available resolutions to log, but instead it waits on a locked thread. :( I have no idea what could be causing that issue. but it appears to be in the nvidia drm lib.

Looks like the same issue with symbol resolution that should have been solved with -Wl,-Bsymbolic-functions, so I'm not sure why that's not working here.. My system libdrm doesn't try to call back into the tegra one, but hits its own copy of drmRandomCreate:
Thread 1 "weston" hit Breakpoint 2, drmRandomCreate (seed=37) at ../libdrm-2.4.110/xf86drmRandom.c:87
87      ../libdrm-2.4.110/xf86drmRandom.c: No such file or directory.
(gdb) bt
#0  drmRandomCreate (seed=37) at ../libdrm-2.4.110/xf86drmRandom.c:87
#1  0x0000fffff6d5bbc4 in HashHash (key=4000) at ../libdrm-2.4.110/xf86drmHash.c:90
#2  HashFind (table=0xaaaaaaae5f30, key=4000, h=h@entry=0x0) at ../libdrm-2.4.110/xf86drmHash.c:142
#3  0x0000fffff6d5bd30 in drmHashLookup (t=<optimized out>, key=<optimized out>, value=0xffffffffee88)
    at ../libdrm-2.4.110/xf86drmHash.c:174
#4  0x0000fffff74d9868 in drmHashLookup () from /usr/lib/libweston-10/../libdrm.so.2
#5  0x0000fffff326543c in ?? () from /usr/lib/libnvgbm.so
#6  0x0000fffff3265464 in ?? () from /usr/lib/libnvgbm.so
#7  0x0000fffff3262478 in ?? () from /usr/lib/libnvgbm.so
#8  0x0000fffff3263498 in gbm_bo_create () from /usr/lib/libnvgbm.so
#9  0x0000fffff3290ff8 in ?? () from /usr/lib/gbm/tegra-udrm_gbm.so
#10 0x0000fffff75253dc in ?? () from /usr/lib/libweston-10/drm-backend.so
#11 0x0000fffff751cc44 in ?? () from /usr/lib/libweston-10/drm-backend.so
#12 0x0000fffff7d9d84c in weston_output_enable () from /usr/lib/libweston-10.so.0
#13 0x0000fffff7f99c48 in ?? () from /usr/lib/weston/libexec_weston.so.0
#14 0x0000fffff7d95964 in ?? () from /usr/lib/libweston-10.so.0
#15 0x0000fffff7f9b8c8 in wet_main () from /usr/lib/weston/libexec_weston.so.0
#16 0x0000fffff7e0b230 in __libc_start_call_main (main=main@entry=0xaaaaaaaa0740, argc=argc@entry=3, argv=argv@entry=0xfffffffffbd8)
    at ../sysdeps/nptl/libc_start_call_main.h:58
#17 0x0000fffff7e0b30c in __libc_start_main_impl (main=0xaaaaaaaa0740, argc=3, argv=0xfffffffffbd8, init=<optimized out>,
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:392
#18 0x0000aaaaaaaa07b0 in ?? ()

Hmm.... Maybe the way I am appending the flags just doesnt work..... though they do end up in the cross compile meson stuff, before it is configured, so..... Maybe I should just hack the meson build shit.....God, I hate meson build system, anything is better than meson for on the fly configuration stuff.

Ok, so it appears my ldflag changes werent being applies, hacked it into the meson.build file, and now it gets past that issue, and starts dumping repeatedly to the log, but it is progress, and I will take that. Probably need to bump bsp version, and it might work..... will rebuild and get back to you.
[00:34:54.427] failed to get drm_fb for bo
[00:34:54.428] failed to create kms fb: Operation not permitted

Ok, so it appears my ldflag changes werent being applies, hacked it into the meson.build file, and now it gets past that issue, and starts dumping repeatedly to the log, but it is progress, and I will take that. Probably need to bump bsp version, and it might work..... will rebuild and get back to you.
[00:34:54.427] failed to get drm_fb for bo
[00:34:54.428] failed to create kms fb: Operation not permitted

Ok, So this doesnt seem to work on bsp's lower than 32.7.1.... then again I didnt try 32.6.x the above message was with 32.5


nothing coming UP after installing

Getting following errors in mailman-core:
mailman-core  | SMTP_HOST not specified, using the gateway (<IP_ADDRESS>) as default
mailman-core  |                                                List of databases
mailman-core  |    Name    |  Owner  | Encoding |  Collate   |   Ctype    | ICU Locale | Locale Provider |  Access privileges
mailman-core  | -----------+---------+----------+------------+------------+------------+-----------------+---------------------
mailman-core  |  mailmandb | mailman | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            |
mailman-core  |  postgres  | mailman | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            |
mailman-core  |  template0 | mailman | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/mailman         +
mailman-core  |            |         |          |            |            |            |                 | mailman=CTc/mailman
mailman-core  |  template1 | mailman | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/mailman         +
mailman-core  |            |         |          |            |            |            |                 | mailman=CTc/mailman
mailman-core  | (4 rows)
mailman-core  |
mailman-core  | Postgres is up - continuing
mailman-core  | Using Postfix configuration
mailman-core  | Found configuration file at /opt/mailman/mailman-extra.cfg
mailman-core  | HYPERKITTY_API_KEY found, setting up HyperKitty archiver...
mailman-core  | HYPERKITTY_URL not set, using the default value of http://mailman-web:8000/hyperkitty
mailman-core  | Traceback (most recent call last):
mailman-core  |   File "/usr/bin/mailman", line 8, in
mailman-core  |     sys.exit(main())
mailman-core  |   File "/usr/lib/python3.10/site-packages/click/core.py", line 1130, in call
mailman-core  |     return self.main(*args, **kwargs)
mailman-core  |   File "/usr/lib/python3.10/site-packages/click/core.py", line 1054, in main
mailman-core  |     with self.make_context(prog_name, args, **extra) as ctx:
mailman-core  |   File "/usr/lib/python3.10/site-packages/click/core.py", line 920, in make_context
mailman-core  |     self.parse_args(ctx, args)
mailman-core  |   File "/usr/lib/python3.10/site-packages/click/core.py", line 1613, in parse_args
mailman-core  |     rest = super().parse_args(ctx, args)
mailman-core  |   File "/usr/lib/python3.10/site-packages/click/core.py", line 1378, in parse_args
mailman-core  |     value, args = param.handle_parse_result(ctx, opts, args)
mailman-core  |   File "/usr/lib/python3.10/site-packages/click/core.py", line 2360, in handle_parse_result
mailman-core  |     value = self.process_value(ctx, value)
mailman-core  |   File "/usr/lib/python3.10/site-packages/click/core.py", line 2322, in process_value
mailman-core  |     value = self.callback(ctx, self, value)
mailman-core  |   File "/usr/lib/python3.10/site-packages/mailman/bin/mailman.py", line 95, in initialize_config
mailman-core  |     initialize(value)
mailman-core  |   File "/usr/lib/python3.10/site-packages/mailman/core/initialize.py", line 229, in initialize
mailman-core  |     initialize_2(propagate_logs=propagate_logs)
mailman-core  |   File "/usr/lib/python3.10/site-packages/mailman/core/initialize.py", line 187, in initialize_2
mailman-core  |     config.db = getUtility(IDatabaseFactory, utility_name).create()
mailman-core  |   File "/usr/lib/python3.10/site-packages/mailman/database/factory.py", line 57, in create
mailman-core  |     database.initialize()
mailman-core  |   File "/usr/lib/python3.10/site-packages/mailman/database/base.py", line 117, in initialize
mailman-core  |     self.engine = create_engine(
mailman-core  |   File "", line 2, in create_engine
mailman-core  |   File "/usr/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line 375, in warned
mailman-core  |     return fn(*args, **kwargs)
mailman-core  |   File "/usr/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 522, in create_engine
mailman-core  |     entrypoint = u._get_entrypoint()
mailman-core  |   File "/usr/lib/python3.10/site-packages/sqlalchemy/engine/url.py", line 662, in _get_entrypoint
mailman-core  |     cls = registry.load(name)
mailman-core  |   File "/usr/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 343, in load
mailman-core  |     raise exc.NoSuchModuleError(
mailman-core  | sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:postgres
mailman-web error:
mailman-web  | Postgres is up - continuing
mailman-web  | Copying settings_local.py ...
mailman-web  | Compiling locale files in /usr/lib/python3.10/site-packages
mailman-web  | Traceback (most recent call last):
mailman-web  |   File "/opt/mailman-web/manage.py", line 10, in
mailman-web  |     execute_from_command_line(sys.argv)
mailman-web  |   File "/usr/lib/python3.10/site-packages/django/core/management/init.py", line 446, in execute_from_command_line
mailman-web  |     utility.execute()
mailman-web  |   File "/usr/lib/python3.10/site-packages/django/core/management/init.py", line 386, in execute
mailman-web  |     settings.INSTALLED_APPS
mailman-web  |   File "/usr/lib/python3.10/site-packages/django/conf/init.py", line 87, in getattr
mailman-web  |     self._setup(name)
mailman-web  |   File "/usr/lib/python3.10/site-packages/django/conf/init.py", line 74, in _setup
mailman-web  |     self._wrapped = Settings(settings_module)
mailman-web  |   File "/usr/lib/python3.10/site-packages/django/conf/init.py", line 183, in init
mailman-web  |     mod = importlib.import_module(self.SETTINGS_MODULE)
mailman-web  |   File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module
mailman-web  |     return _bootstrap._gcd_import(name[level:], package, level)
mailman-web  |   File "", line 1050, in _gcd_import
mailman-web  |   File "", line 1027, in _find_and_load
mailman-web  |   File "", line 1006, in _find_and_load_unlocked
mailman-web  |   File "", line 688, in _load_unlocked
mailman-web  |   File "", line 883, in exec_module
mailman-web  |   File "", line 241, in _call_with_frames_removed
mailman-web  |   File "/opt/mailman-web/settings.py", line 65, in
mailman-web  |     MAILMAN_ARCHIVER_FROM = (os.environ.get('MAILMAN_HOST_IP', gethostbyname(os.environ.get('MAILMAN_HOSTNAME', 'mailman-core'))),)
mailman-web  | socket.gaierror: [Errno -2] Name does not resolve
mailman-web  | python3: can't open file '/usr/lib/python3.10/site-packages/manage.py': [Errno 2] No such file or directory
I can see mailman hostname is exactly pointing to my server when checking with dig. Please guide further if i am missing anything.

I can't see any missing thing on following my guide. Maybe docker-mailman changed something, so please look at their wiki and issues and, if nothing helped, open an issue there.

Upong googling... I changed my docker-compose.override.yaml postgres database url name
Original: - DATABASE_URL=postgres:
Changed to: - DATABASE_URL=postgresql:
restarted mailman services and mailman started working

Should still be updated in README.md, though. It still reads there:

DATABASE_URL=postgres://mailman:DBPASS@database/mailmandb


New feature to save to remote cloud blob storage added

Now the parquet files could be saved to S3 or GCS.

ok


[APP-703] Android horizontal scroll registers as tap

After a lot of investigation, it seems as though this issue is caused due to using Touchables from core react-native instead of RNGH
https://github.com/dohooo/react-native-reanimated-carousel/issues/150#issuecomment-1086410992
I have replaced them with the ones from RNGH in the <Link> component. However, this component is used in a lot of places so extensive testing is required as the Touchables from RNGH are not a drop-in replacement.
There are a couple more optimizations that can be done along the same vein (although, they don't have to be part of this PR):

[ ] improve image tapping behavior (tapping errors here are caused by using onPressIn)
[ ] improve speed to open PostThread screen on Android. This is very slow, and that is why sometimes the taps register after the horizontal scroll, which is a bad experience for Android users

@pfrazee I think this PR can be merged after testing. I can add the two other features in later PRs as they require a lot more work and performance monitoring/debugging.

Holy moly I had to try ten times to get my iphone to run the build and I'm glad I did
This breaks the post controls on iOS

RNGH workaround did not work
New workaround:
// workaround for Android not working well with left/right swipe gestures and TouchableWithoutFeedback
// https://github.com/callstack/react-native-pager-view/issues/424


Some translations are incomplete, so let's audit them and assign folks to fix.

I'd be in for the German translation. Waiting for your reply.
Some translations are incomplete, so let's audit them and assign folks to fix.
If you'd like to start a draft PR while your translation work is in progress, please do so and follow these instructions: https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/TRANSLATIONS.md

[ ] Spanish
[ ] Indonesian
[x] Hindi
[ ] German
[x] Japanese
[x] Italian
[x] Korean
[ ] Portuguese
[ ] Dutch
[x] Chinese - Traditional
[x] Chinese - Simplified
[ ] Greek
[x] Malay
[ ] French
[ ] Urdu
[ ] Swahili
[ ] Russian

Originally posted by @jlooper in https://github.com/microsoft/Web-Dev-For-Beginners/issues/171

You can audit the German translations and start a draft PR, thank you


Config helper specifies to use the 'canvas' setting

Configures xterm test config helper to use 'canvas' instead of 'off'

@kburtram, this didn't fix things the way I thought it would. I was still seeing the error, so I ended up making the fix upstream in xterm.js.


Inject view in MVP architecture

Hello,
I have a problem with the implementation of MVP pattern using KOIN. I would like to inject view into presenter.  My view is extending fragment and I do not know how to provide it to Presenter object while injection. I keep receiving info org.koin.error.BeanInstanceCreationException: Can't create bean Bean[class=com.pleez.fragment.sentlist.SentListContract.Presenter] due to error : 	org.koin.error.NoBeanDefFoundException: No bean definition found for class interface com.pleez.fragment.sentlist.SentListContract$View (Kotlin reflection is not available).
Here is how I have declared my module:
val sentListModule: Module = applicationContext {
    provide { SentListPresenter(get(), get()) as SentListContract.Presenter }
    provide { FragmentSentList() as SentListContract.View }
    provide { SentListDataSource(get(), get()) as SentListContract.DataSource }
}

here is how I declare presenter:
class SentListPresenter(val view: SentListContract.View ,val dataSource: SentListContract.DataSource): SentListContract.Presenter {

can someone tell me what is missing, or what I have done wrong?

Hello,
it's a weird case.  It doesn't find your SentListContract.View component. Can you share a bit more? ( FragmentSentList class ...)

What version of Koin do you use?

So, I have an application which code remind more spaghetti (I have inherited it after developer from India), and I am afraid that FragmentSentList is a bit too long to share here. I will describe a little what I have done.
FragmentSentList is java class that extends SentListView. SentListView class implementation looks like this:
open class SentListView: Fragment(), SentListContract.View {
    val presenter: SentListContract.Presenter by inject()
}

and my FragmentSentList looks like this:
public class FragmentSentList extends SentListView implements SentListSearchAdapter.onItemClick {
 ... body
}

so I have created kotlin code, to enable Koin injection into java code. Maybe this is the case?

The problem of MVP is the two way binding between view and model. Here below 2 apps that you may check to find more clues:

https://github.com/Ekito/android-architecture/tree/dev-todo-mvp-kotlin-koin/todoapp
https://github.com/Ekito/koin-samples/tree/master/samples/android-weatherapp

This means that you have to take the FragmentSentList instance from Koin too. You use something like val ... : SentListContract.View by inject() somewhere?

no, I do not use val ... : SentListContract.View by inject(). I wanted to provide it to presenter by constructor like:
class SentListPresenter(val view: SentListContract.View ,val dataSource: SentListContract.DataSource): SentListContract.Presenter {

Come back here if you still need some help

I have taken a look at implementations that are done in projects that you passed here. There is a similar workaround as I have prepared. So those examples are not explaining to me how to inject View by constructor but show me that others do this in the same way as I did. Here is a code that shows how the view is provided to the presenter in todo app:
   override fun onResume() {
        super.onResume()
        presenter.view = this
        presenter.start()
    }

Yes, we usually make the MVP injection like this. However, in next release of Koin we will be able to pass a parameter for injection. Check last comments from https://github.com/Ekito/koin/issues/49


Any way to disable logging for some particular pod through annotations?

Is it possible to disable shipping logs for particular pods by setting some param in annotation? My bet it's not yet possible, but any plans to add this feature? Since SumoLogic is typically paid by volume, would be nice to control what deployments/pods must ship their logs to the SumoLogic cloud.
Thank you.

Right now you can do this by editing https://github.com/SumoLogic/fluentd-kubernetes-sumologic/blob/master/conf.d/source.containers.conf#L9 and adding an exclude rule http://docs.fluentd.org/v0.12/articles/in_tail#excludepath
We could do it via annotations but that means fluentd still has to process and throw out the data. The exclude rule means it will never get to fluentd.
Happy for you to open a PR if you want the annotation feature.

Thank you for the hint. Still, for end-users (especially new like me) annotations seem to be a more straight-forward way. I don't mind if fluentd has to process but throw away the data :-)
I am yet too new to file PRs to this. Thought that if it wasn't too hard, I'd request this feature. Might be helpful for others too.

@frankreno you want to take a look at this?

@stevezau : rather than using an annotation on the various pods you deploy to exclude, does it make more sense to have an env var with some regex to exclude a pod, container, namespace or host on the fluentd.daemonset.yaml.  Perhaps both is a good solution.

@stevezau : mind reviewing https://github.com/SumoLogic/fluentd-kubernetes-sumologic/pull/16 before I merge?

@emptywee : image has been pushed to docker hub with the changes.

Thanks! I really appreciate it. Now we can save some traffic (and money)!

Greetings @emptywee , @frankreno . I was wondering how would one try to have multiple pod regexes to be ignored by the env var EXCLUDE_POD_REGEX, the same approach has been described in https://github.com/SumoLogic/fluentd-kubernetes-sumologic/issues/62, how would you suggest going ahead with it? Thanks

(pod_name_1|pod_name_2|pod_name_3) as a regex?


Update README.md

Hi. In this PR I want to put a link to the docs page bc it is not clear now.

@anpolimus there is a proper place for this, which is filled in since the fork exists

Thank you. I think there's more cleanup I can do in that Readme. Will add it to my list.


Request: Gradient

Icon name
gradient-sqaure, gradient-rectangle
Use cases
A tool for making gradients, like in design software.
Design ideas

designed in Figma.
The icons is breaking the Pixel Perfect rule. Although it could be an exception because when zoomed out, the icon can still be a gradient tool.
Checklist

[X] I have searched if someone has submitted a similar issue before and there weren't any. (Please make sure to also search closed issues, as this issue might already have been resolved.)
[X] I have searched existing icons to make sure it does not already exist and I didn't find any.
[X] I am not requesting a brand logo and the art is not protected by copyright.
[x] I am not requesting an icon that includes religious, political imagery or hate symbols.
[X] I have provided appropriate use cases for the icon(s) requested.

I'm afraid this isn't feasible with fixed width strokes only.

Related to #1441


[Feature] Support for exporting scales

Even if it's just a "Copy scale to clipboard" that would then be required to be pasted into a .txt, then rename file extension to .scale, that would be useful.

Currently the only way to share scalers is by getting the data out of the CustomizePlus.json file in %appdata%\XIVLauncher\pluginConfigs and manually transcribing it into an Anamnesis .pose file format, because the data format is different between the two.
Even some way to just accept data in the CustomizePlus.json format that doesn't require directly editing the .json would be better.


IYO see [40h]

Make it possible that an organization adds a URL to a document to IYOSEE

Make it accessible for the user

GET https://itsyou.online/users/<userid>/see: list all organizations that added something to this user's see
GET https://itsyou.online/users/<userid>/see/<organization> to list all documents added by this organization
POST https://itsyou.online/users/<userid>/see/<organization>/<uniqueid> to save a link
PUT https://itsyou.online/users/<userid>/see/<organization>/<uniqueid> to update a link

User can't add his own links
also need scope to allow organizations to write to this

Store the following info of a document

link
category
uniqueid (name)
version
content_type
markdown short descr
markdown full descr
validity_date: start_date (/ end_date)
post_date: data that info was uploaded
required security level
signature (with priv key of user on rogerthat app) of all content above (e.g. json)

is this only the api or also the UI work?

also includes the UI work


Elasticsearch cluster not initialising when a nameOverride value is provided that does not match the clusterName value

Chart version:
7.6.1
Kubernetes version:
1.17
Kubernetes provider: E.g. GKE (Google Kubernetes Engine)
VMware Tanzu Kubernetes
Helm Version:
3.1.2
helm get release output

Output of helm get release
root@devops:~# helm -n monitoring-system get all elasticsearch
NAME: elasticsearch
LAST DEPLOYED: Tue Mar 24 10:14:32 2020
NAMESPACE: monitoring-system
STATUS: deployed
REVISION: 1
USER-SUPPLIED VALUES:
antiAffinity: soft
clusterName: monitoring
esConfig:
  elasticsearch.yml: |
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/elasticsearch-key.pem
    xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/elasticsearch-cert.pem
    xpack.security.transport.ssl.certificate_authorities: /usr/share/elasticsearch/config/certs/ca.pem
    xpack.security.http.ssl.enabled: false
esJavaOpts: -Xmx512m -Xms512m
extraEnvs:
- name: ELASTIC_USERNAME
  valueFrom:
    secretKeyRef:
      key: username
      name: elasticsearch
- name: ELASTIC_PASSWORD
  valueFrom:
    secretKeyRef:
      key: password
      name: elasticsearch
initResources:
  limits:
    cpu: 25m
    memory: 128Mi
  requests:
    cpu: 25m
    memory: 64Mi
minimumMasterNodes: 1
nameOverride: elasticsearch
nodeGroup: master
replicas: 1
resources:
  limits:
    cpu: "1"
    memory: 768Mi
  requests:
    cpu: 100m
    memory: 512Mi
roles:
  data: "true"
  ingest: "true"
  master: "true"
secretMounts:
- name: elasticsearch-certs
  path: /usr/share/elasticsearch/config/certs
  secretName: elasticsearch-certs
sidecarResources:
  limits:
    cpu: 25m
    memory: 128Mi
  requests:
    cpu: 25m
    memory: 64Mi
volumeClaimTemplate:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: default-local-storage

COMPUTED VALUES:
antiAffinity: soft
antiAffinityTopologyKey: kubernetes.io/hostname
clusterHealthCheckParams: wait_for_status=green&timeout=1s
clusterName: monitoring
esConfig:
  elasticsearch.yml: |
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/elasticsearch-key.pem
    xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/elasticsearch-cert.pem
    xpack.security.transport.ssl.certificate_authorities: /usr/share/elasticsearch/config/certs/ca.pem
    xpack.security.http.ssl.enabled: false
esJavaOpts: -Xmx512m -Xms512m
esMajorVersion: ""
extraContainers: ""
extraEnvs:
- name: ELASTIC_USERNAME
  valueFrom:
    secretKeyRef:
      key: username
      name: elasticsearch
- name: ELASTIC_PASSWORD
  valueFrom:
    secretKeyRef:
      key: password
      name: elasticsearch
extraInitContainers: ""
extraVolumeMounts: ""
extraVolumes: ""
fsGroup: ""
fullnameOverride: ""
httpPort: 9200
image: docker.elastic.co/elasticsearch/elasticsearch
imagePullPolicy: IfNotPresent
imagePullSecrets: []
imageTag: 7.6.1
ingress:
  annotations: {}
  enabled: false
  hosts:
  - chart-example.local
  path: /
  tls: []
initResources:
  limits:
    cpu: 25m
    memory: 128Mi
  requests:
    cpu: 25m
    memory: 64Mi
keystore: []
labels: {}
lifecycle: {}
masterService: ""
masterTerminationFix: false
maxUnavailable: 1
minimumMasterNodes: 1
nameOverride: elasticsearch
networkHost: <IP_ADDRESS>
nodeAffinity: {}
nodeGroup: master
nodeSelector: {}
persistence:
  annotations: {}
  enabled: true
podAnnotations: {}
podManagementPolicy: Parallel
podSecurityContext:
  fsGroup: 1000
  runAsUser: 1000
podSecurityPolicy:
  create: false
  name: ""
  spec:
    fsGroup:
      rule: RunAsAny
    privileged: true
    runAsUser:
      rule: RunAsAny
    seLinux:
      rule: RunAsAny
    supplementalGroups:
      rule: RunAsAny
    volumes:
    - secret
    - configMap
    - persistentVolumeClaim
priorityClassName: ""
protocol: http
rbac:
  create: false
  serviceAccountName: ""
readinessProbe:
  failureThreshold: 3
  initialDelaySeconds: 10
  periodSeconds: 10
  successThreshold: 3
  timeoutSeconds: 5
replicas: 1
resources:
  limits:
    cpu: "1"
    memory: 768Mi
  requests:
    cpu: 100m
    memory: 512Mi
roles:
  data: "true"
  ingest: "true"
  master: "true"
schedulerName: ""
secretMounts:
- name: elasticsearch-certs
  path: /usr/share/elasticsearch/config/certs
  secretName: elasticsearch-certs
securityContext:
  capabilities:
    drop:
    - ALL
  runAsNonRoot: true
  runAsUser: 1000
service:
  annotations: {}
  httpPortName: http
  labels: {}
  labelsHeadless: {}
  loadBalancerSourceRanges: []
  nodePort: ""
  transportPortName: transport
  type: ClusterIP
sidecarResources:
  limits:
    cpu: 25m
    memory: 128Mi
  requests:
    cpu: 25m
    memory: 64Mi
sysctlInitContainer:
  enabled: true
sysctlVmMaxMapCount: 262144
terminationGracePeriod: 120
tolerations: []
transportPort: 9300
updateStrategy: RollingUpdate
volumeClaimTemplate:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: default-local-storage

HOOKS:
---
# Source: elasticsearch/templates/test/test-elasticsearch-health.yaml
apiVersion: v1
kind: Pod
metadata:
  name: "elasticsearch-gimny-test"
  annotations:
    "helm.sh/hook": test-success
spec:
  containers:
  - name: "elasticsearch-kqzbx-test"
    image: "docker.elastic.co/elasticsearch/elasticsearch:7.6.1"
    command:
      - "sh"
      - "-c"
      - |
        #!/usr/bin/env bash -e
        curl -XGET --fail 'elasticsearch-master:9200/_cluster/health?wait_for_status=green&timeout=1s'
  restartPolicy: Never
MANIFEST:
---
# Source: elasticsearch/templates/poddisruptionbudget.yaml
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: "elasticsearch-master-pdb"
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      app: "elasticsearch-master"
---
# Source: elasticsearch/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: elasticsearch-master-config
  labels:
    heritage: "Helm"
    release: "elasticsearch"
    chart: "elasticsearch"
    app: "elasticsearch-master"
data:
  elasticsearch.yml: |
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/elasticsearch-key.pem
    xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/elasticsearch-cert.pem
    xpack.security.transport.ssl.certificate_authorities: /usr/share/elasticsearch/config/certs/ca.pem
    xpack.security.http.ssl.enabled: false
---
# Source: elasticsearch/templates/service.yaml
kind: Service
apiVersion: v1
metadata:
  name: elasticsearch-master
  labels:
    heritage: "Helm"
    release: "elasticsearch"
    chart: "elasticsearch"
    app: "elasticsearch-master"
  annotations:
    {}
spec:
  type: ClusterIP
  selector:
    heritage: "Helm"
    release: "elasticsearch"
    chart: "elasticsearch"
    app: "elasticsearch-master"
  ports:
  - name: http
    protocol: TCP
    port: 9200
  - name: transport
    protocol: TCP
    port: 9300
---
# Source: elasticsearch/templates/service.yaml
kind: Service
apiVersion: v1
metadata:
  name: elasticsearch-master-headless
  labels:
    heritage: "Helm"
    release: "elasticsearch"
    chart: "elasticsearch"
    app: "elasticsearch-master"
  annotations:
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
  clusterIP: None # This is needed for statefulset hostnames like elasticsearch-0 to resolve
  # Create endpoints also if the related pod isn't ready
  publishNotReadyAddresses: true
  selector:
    app: "elasticsearch-master"
  ports:
  - name: http
    port: 9200
  - name: transport
    port: 9300
---
# Source: elasticsearch/templates/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: elasticsearch-master
  labels:
    heritage: "Helm"
    release: "elasticsearch"
    chart: "elasticsearch"
    app: "elasticsearch-master"
  annotations:
    esMajorVersion: "7"
spec:
  serviceName: elasticsearch-master-headless
  selector:
    matchLabels:
      app: "elasticsearch-master"
  replicas: 1
  podManagementPolicy: Parallel
  updateStrategy:
    type: RollingUpdate
  volumeClaimTemplates:
  - metadata:
      name: elasticsearch-master
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: default-local-storage
  template:
    metadata:
      name: "elasticsearch-master"
      labels:
        heritage: "Helm"
        release: "elasticsearch"
        chart: "elasticsearch"
        app: "elasticsearch-master"
      annotations:

        configchecksum: 7b9a750df5b76851ebbb1b545a90de864ed72407545d3993d404a2c9b0395e8
    spec:
      securityContext:
        fsGroup: 1000
        runAsUser: 1000
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            podAffinityTerm:
              topologyKey: kubernetes.io/hostname
              labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - "elasticsearch-master"
      terminationGracePeriodSeconds: 120
      volumes:
        - name: elasticsearch-certs
          secret:
            secretName: elasticsearch-certs
        - name: esconfig
          configMap:
            name: elasticsearch-master-config
      initContainers:
      - name: configure-sysctl
        securityContext:
          runAsUser: 0
          privileged: true
        image: "docker.elastic.co/elasticsearch/elasticsearch:7.6.1"
        imagePullPolicy: "IfNotPresent"
        command: ["sysctl", "-w", "vm.max_map_count=262144"]
        resources:
          limits:
            cpu: 25m
            memory: 128Mi
          requests:
            cpu: 25m
            memory: 64Mi

      containers:
      - name: "elasticsearch"
        securityContext:
          capabilities:
            drop:
            - ALL
          runAsNonRoot: true
          runAsUser: 1000
        image: "docker.elastic.co/elasticsearch/elasticsearch:7.6.1"
        imagePullPolicy: "IfNotPresent"
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 3
          timeoutSeconds: 5
          exec:
            command:
              - sh
              - -c
              - |
                #!/usr/bin/env bash -e
                # If the node is starting up wait for the cluster to be ready (request params: 'wait_for_status=green&timeout=1s' )
                # Once it has started only check that the node itself is responding
                START_FILE=/tmp/.es_start_file

                http () {
                    local path="${1}"
                    if [ -n "${ELASTIC_USERNAME}" ] && [ -n "${ELASTIC_PASSWORD}" ]; then
                      BASIC_AUTH="-u ${ELASTIC_USERNAME}:${ELASTIC_PASSWORD}"
                    else
                      BASIC_AUTH=''
                    fi
                    curl -XGET -s -k --fail ${BASIC_AUTH} http://<IP_ADDRESS>:9200${path}
                }

                if [ -f "${START_FILE}" ]; then
                    echo 'Elasticsearch is already running, lets check the node is healthy and there are master nodes available'
                    http "/_cluster/health?timeout=0s"
                else
                    echo 'Waiting for elasticsearch cluster to become ready (request params: "wait_for_status=green&timeout=1s" )'
                    if http "/_cluster/health?wait_for_status=green&timeout=1s" ; then
                        touch ${START_FILE}
                        exit 0
                    else
                        echo 'Cluster is not yet ready (request params: "wait_for_status=green&timeout=1s" )'
                        exit 1
                    fi
                fi
        ports:
        - name: http
          containerPort: 9200
        - name: transport
          containerPort: 9300
        resources:
          limits:
            cpu: "1"
            memory: 768Mi
          requests:
            cpu: 100m
            memory: 512Mi
        env:
          - name: node.name
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: cluster.initial_master_nodes
            value: "monitoring-master-0,"
          - name: discovery.seed_hosts
            value: "elasticsearch-master-headless"
          - name: cluster.name
            value: "monitoring"
          - name: network.host
            value: "<IP_ADDRESS>"
          - name: ES_JAVA_OPTS
            value: "-Xmx512m -Xms512m"
          - name: node.data
            value: "true"
          - name: node.ingest
            value: "true"
          - name: node.master
            value: "true"
          - name: ELASTIC_USERNAME
            valueFrom:
              secretKeyRef:
                key: username
                name: elasticsearch
          - name: ELASTIC_PASSWORD
            valueFrom:
              secretKeyRef:
                key: password
                name: elasticsearch
        volumeMounts:
          - name: "elasticsearch-master"
            mountPath: /usr/share/elasticsearch/data

          - name: elasticsearch-certs
            mountPath: /usr/share/elasticsearch/config/certs
          - name: esconfig
            mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
            subPath: elasticsearch.yml

NOTES:
1. Watch all cluster members come up.
  $ kubectl get pods --namespace=monitoring-system -l app=elasticsearch-master -w
2. Test cluster health using Helm test.
  $ helm test elasticsearch

Describe the bug:
The Elasticsearch cluster does not initialise when a nameOverride value is provided that does not match the clusterName value.
Steps to reproduce:
Install an Elasticsearch cluster specifying a nameOverride value that is different from the clusterName value e.g.
nameOverride: elasticsearch
clusterName: "monitoring"
Expected behavior:
The cluster would initialise successfully.
Any additional context:
This appears to be as a result of the following initialisation of the elasticsearch.endpoints value in the _helpers.tpl file.
{{- define "elasticsearch.endpoints" -}}
{{- $replicas := int (toString (.Values.replicas)) }}
{{- $uname := printf "%s-%s" .Values.clusterName .Values.nodeGroup }}
  {{- range $i, $e := untilStep 0 $replicas 1 -}}
{{ $uname }}-{{ $i }},
  {{- end -}}
{{- end -}}

The nameOverride value is not considered, as is the case for the initialisation of the elasticsearch.masterService value (shown below).
{{- define "elasticsearch.masterService" -}}
{{- if empty .Values.masterService -}}
{{- if empty .Values.fullnameOverride -}}
{{- if empty .Values.nameOverride -}}
{{ .Values.clusterName }}-master
{{- else -}}
{{ .Values.nameOverride }}-master
{{- end -}}
{{- else -}}
{{ .Values.fullnameOverride }}
{{- end -}}
{{- else -}}
{{ .Values.masterService }}
{{- end -}}
{{- end -}}

I think this PR will fix it: https://github.com/elastic/helm-charts/pull/670

Closing it as fixed by #670


update README

Works only if logged out of medium
as opera uses chrome.* update readme as this extension will work on opera as well

Fixed in b1565450d36bcc3d7e0ba178ccd052bad636d7e6


Python Strings

Description
Description
Strings
I would like to include the following-

Accessing strings.
String methods
operations that can be performed on them.

Domain
Python_Domain
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

I am eswari priya of batch6 .i'd like to work on this!

/assign
@adityabisoi

hello @adityabisoi
i want to do this in documentation
tejas prajapati (python batch-6)

/assign

@hritikksingh Is the mentor of this issue. Please reach out to him for your queries.


Unable to compact Microsoft (Xbox) games

Whenever I try to compact an Xbox game on PC (Forza Horizon 4 for example) it says Access Denied: OS error 5. Any way to solve this? I have full admin control on my user and I've tried launching the .exe as admin.

Microsoft Store apps are protected by NTFS ACLs, even from Administrator accounts - you'll need to jump through hoops to allow yourself access, or maybe arrange for Compactor to be ran as TrustedInstaller - though my attempts at this haven't got very far.

I'm going to close this, since I believe the issue is intractable.
Microsoft Store apps are actually stored in archives, and their contents exposed to the filesystem via reparse points and a filter driver - exactly the same mechanism used by Compactor, just with storage backed by the archives instead of compressed alternate streams.
With this in mind it makes sense you can't stack individual file compression on top the files themselves - since they're not actually real files - and the archives themselves also don't appear compressible for.. whatever reason.  I would hope they're already compressed.


pythonPackages.cffi: 1.9.1 -> 1.10.0

Motivation for this change
changelog: https://cffi.readthedocs.io/en/latest/whatsnew.html#v1-10
Things done

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

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Thanks. Pushed https://github.com/NixOS/nixpkgs/commit/d08c717eff4451353d10c04867c1bef17d772d0d.


Fix hotspot intro_compose issue #11670

Fixes the issue #11670 by removing intro_compose from zerver/lib/hotspots.py and static/js/hotspots.js.
Testing Plan: Tested on the local development environment by setting ALWAYS_SEND_ALL_HOTSPOTS = True in zproject/dev_settings.py.

Thanks @TheCelestial25! I think there are a few more places this appears; e.g. try git grep intro_compose.

Hi @TheCelestial25, thanks for your work on this! I think I'm actually going to close this PR and remove the good first issue label; I'm realizing the hard part of this issue is making sure you found everything, which is not an easy task.

Thanks for looking into this sir!


Change how EPEL and additional package repos are added for CentOS and RHEL

Enable EPEL based on instructions here: https://fedoraproject.org/wiki/EPEL

Please squash when merging.


New method to validate datamob requirements

Message type: VALIDATE_DATAMOB_REQUIREMENTS
Originator: Web
Description
In order to accomplish the new datamob functionality for VIVO (APPS-8195, PRD) we need to implement a new bridge method to check if all requirements are valid.
This new method will return a map with the requirements. Each requirement is a boolean value where true is valid, false is not valid.
Datamob SDK explanation
Datamob is a library that offer developers an easy and efficient way to integrate security and remote device control features into their applications.
Datamob integration enables the registration of a user, which consists of a phone number, a token-type password and a random hash generated at the time of registration. This process is performed through API calls, which requires an active internet connection. Once the user is registered in the DeviceSeguro system, the associated device will be enabled to receive and execute remote security commands.
These remote commands include actions such as locking the device screen (lock screen) or even forcing a wipe (factory reset) of the device, providing additional security control for the end user.
The Datamob library is ideal for developers who want to incorporate advanced security features into their applications, facilitating the implementation of remote control and secure device management.
Differences between iOS/Android (if any)
N/A
Payload definition
Request Payload
{
    phoneNumber: string; // The user phone number
    tokenPassword: string; // When registering the device, datamob generate an accessKey that is recorded in the Datamob device registry. By combining this attribute with a hash that we keep in a password vault, generate this token.
}

Examples
{
    "type": "VALIDATE_DATAMOB_REQUIREMENTS",
    "id": "id",
    "payload": {
        "phoneNumber": "phone_number",
        "token": "password_token"
    }
}

Response Payload
{
    requirements: {
      deviceAdmin: boolean;
      googleAccount: boolean;
      lockPassword: boolean;
      accessibilityOption: boolean;
      invalidPhoneNumber: boolean;
      invalidToken: boolean;
    }
}

Examples:
{
    "type": "VALIDATE_DATAMOB_REQUIREMENTS",
    "payload": {
        "requirements": {
            "deviceAdmin" : false,
            "googleAccount" : true,
            "lockPassword" : false,
            "accessibilityOption" : true,
            "invalidPhoneNumber" : true,
            "invalidToken" : true
        }
    }
}

Possible error cases
400 - If phoneNumber or tokenPassword are empty

Just a comment about the naming, maybe is not self-explained that the returned enum, are the requirements that aren't valid. Maybe we can send the full map with:
prerequisite -> status (bool)?

@dzayas Modified
@atabel modified payload definition to match with the example

If all requirements are valid, the method will return an empty list.

Is this wrong?
According to the response payload, the result is always a map of prerequisite -> boolean

@atabel Modified prerequisites to -> requirements and updated return explain text

In the response payload it should "invalidPhonenumber" instead of "invalidPassword" right?

@dzayas Modified invalidPassword to invalidPhoneNumber


Landing crop/navbar

Have merged relevant changes into https://github.com/vidbina/landing-page-templates/tree/add-hashicorp-based-landingcorp please pull this branch and continue from that point on :wink:


on finish not getting triggered

Thanks for the package, exactly what I was looking for!
The only problem I have right now, is when I'm wrapping my readStream, it stops emitting on finish event when stream is complete, and for some reason if I'll listen for on end it get's triggered first before stream pipe is started

By default, the resilient stream would only emit the end event when the underlying stream ends i.e emits the end event.
Which is the expected behavior.
Please send an example of this code so I can work with that.
It might be that your readStream emits the end event for a different purpose.

What type of readable stream are you working with?
Going by the docs, The 'end' event is emitted when there is no more data to be consumed from the stream.
While writable streams and only those are expected to emit the finish event
The resilient stream is intended to work with readable streams and only those.
Working with writable streams could get tricky and messy, so to say
Maybe you're using a Duplex stream?
Or log all the events being emitted by your readStream so you can track the emit order.
Please send all these details in your next comment.
Thanks.


Playground

Purpose

Lowers the cost tier on Azure Cognitive Search.
Adds parameters for API keys for Search and Storage.

Does this introduce a breaking change?

[X] Yes
[X] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[x] Other... Please describe: Deployment

Sorry I pushed this pull request to the wrong place. Please reject!


Add write_area_to_binary and get_pixel

Added new generic function write_area_to_binary which extracts a region to raw binary in a single NIF call as an optimization.
write_to_binary, write_to_tensor, to_list and others now use this function so there might be slight performance gain.
get_pixel internally just calls write_area_to_binary with width & height 1 and returns a 1D list of band values.
# the value will be based on the image band_format and colorspace
{:ok, [r, g, b]} = Image.get_pixel(image, 10, 10)

@kipcole9 can you take look? I'll add docs, tests and refactor a bit later.

Addresses https://github.com/akash-akya/vix/discussions/153

Awesome work as always Akash, I'll give this a spin over the next couple of days. Thanks very much.


Elastic Beanstalk deployment fails due to missing packages

Steps to re-create:
Create new cookiecutter-django project with use_elasticbeanstalk_experimental enabled. Follow steps in deployment-with-elastic-beanstalk.rst
Deployment will fail and logs hint that there was an error with pip installing requirements, log into ec2 instance to reproduce the error:
[ec2-user@ip-172-31-11-149 ~]$ source /opt/python/run/venv/bin/activate
(venv)[ec2-user@ip-172-31-11-149 ~]$ cd /opt/python/ondeck/app/
(venv)[ec2-user@ip-172-31-11-149 app]$ pip install -r requirements.txt
...
No package 'libffi' found
...
Failed building wheel for argon2-cffi
...
Command "/opt/python/run/venv/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-6y5hb9qx/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-r7iy510t-record/install-record.txt --single-version-externally-managed --compile --install-headers /opt/python/run/venv/include/site/python3.4/cffi" failed with error code 1 in /tmp/pip-build-6y5hb9qx/cffi

I am guessing the libffi packages became a OS dependency when argon2-cffi was added to the base requirements file in f3ea2570ab6cfc981dca1b6a8f49852c91cbe2d7.
I have found that adding libffi and libffi-devel to .ebextensions/10_packages.config resolves this issue.
Also, in order to get elastic beanstalk to find the wsgi file, the quotes around config/wsgi.py in 40_python.config need to be removed.
I will put together a PR for this, just wanted to check if there was any feedback or if anyone else was having this issue?

When you have the opportunity, please submit a pull request. :-)

I have submitted #1277


Structure with R-Group Fragment Tool pasted into square brackets of the copied structure

Steps to Reproduce

Open Ketcher
Add Chain on canvas
Select R-Group Fragment Tool and click on Chain
Select R-Group and press Apply
With 'Selection tool' select all structure and press CTRL+C
Press CTRL+V for paste structure

Actual behavior
Structure with R-Group Fragment Tool is pasted not as a separate structure, but into the square brackets of the copied structure
Expected behavior
Structure with R-Group Fragment Tool is pasted as a separate structure, but not into the square brackets of the copied structure
Screenshots
https://user-images.githubusercontent.com/62464241/224956427-e89a7766-bc11-4408-a2b0-d6ce5bf95464.mp4
Desktop (please complete the following information):

OS: Windows 10
Browser Chrome
Version 109.0.5414.120 (Official Build) (64-bit)

Ketcher version
Version 2.9.0-rc.3
Test case
[EPMLSOPKET-10898]
Additional context
Add any other context about the problem here.

All R-group members (copied and pasted) are enclosed in one brackets.


[10.x] Added support for WebhookHandled event

Proposal #803

Maybe we can also add a WebhookReceived event which is fired right before the webhooks are handled? That way people can integrate with everything.

@mitulgolakiya I couldn't push to you repo so I took the liberty of opening a new PR. Your commit is still on it. Thanks for sending this in!
https://github.com/laravel/cashier/pull/804


stream-edit: Empty edit stream-name makes the span styling ineffective

Added vertical-align in subscriptions.scss to fix broken span styling in stream-name edit.
Fixes: #11923

Nice work, merged, thanks @matkaczmarek!


Test code for opening a browser and specifying an application

We developed some test code (#3), but we haven't developed tests for --open and --app yet. This is not an appropriate development. Test code for them are required.

I don't have Windows and Linux. please help us.


Fixed issue with checking checkboxes in VAT tree when editing a group

Instead of sending the checked state, the selected state was sent.

@ZitaNemeckova

LGTM 👍

LGTM.. but, searching..
$ ag node.state.selected
app/assets/javascripts/miq_tree.js
171:  var url = ManageIQ.tree.checkUrl + ppid + '?check=' + Number(!node.state.selected);

Looks like both places should be fixed, right?


SyntaxError: Use of reserved word 'import'

First of all, thanks for creating this Yeoman generator!
I'm having issues when I create helper test classes in test/mocks/*.ts and try to create new instances of them in my tests. Here's the error:
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  SyntaxError: Use of reserved word 'import'
  at test/entry.ts:79285

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  SyntaxError: Use of reserved word 'import'
  at test/entry.ts:79285

Is there some sort of pre-processor I need to add to process files in test/mocks and compile them first? I tried using https://www.npmjs.com/package/karma-typescript-preprocessor, but had no luck.

I'm assuming you're trying to include the files via karma's files: [] array? I wouldn't recommend doing that, and instead just import any files directly via the test/entry.ts file.

No, I didn't try to include them in karma's files: []. I tried importing the mock service I'm trying to use in entry.ts, but no dice. Here's steps to reproduce:

Create a new project with yo angular-library

Create src/search.service.ts with the following code:
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';

@Injectable()
export class SearchService {

  constructor(private http: Http) {}

  getAll() {
    return this.http.get('app/shared/search/data/people.json').map((res: Response) => res.json());
  }
}

Install @angular/http for the above service: npm i @angular/http --save-dev

Create a src/search.component.ts that uses this service:
import { Component, OnInit, OnDestroy } from '@angular/core';
import { Subscription } from 'rxjs';
import { SearchService } from './search.service';

@Component({
  selector: 'app-search',
  template: '<app-search></app-search>',
})
export class SearchComponent {
  query: string;
  searchResults: any;
  sub: Subscription;

  constructor(private searchService: SearchService) {
  }

  search(): void {
    this.searchService.getAll().subscribe(
      data => {
        this.searchResults = data;
      },
      error => console.log(error)
    );
  }
}

Create test/mocks/helper.ts with the following code:
import {StringMapWrapper} from '@angular/core/src/facade/collection';

export interface GuinessCompatibleSpy extends jasmine.Spy {
  /** By chaining the spy with and.returnValue, all calls to the function will return a specific
   * value. */
  andReturn(val: any): void;
  /** By chaining the spy with and.callFake, all calls to the spy will delegate to the supplied
   * function. */
  andCallFake(fn: Function): GuinessCompatibleSpy;
  /** removes all recorded calls */
  reset();
}

export class SpyObject {
  static stub(object = null, config = null, overrides = null) {
    if (!(object instanceof SpyObject)) {
      overrides = config;
      config = object;
      object = new SpyObject();
    }

    let m = StringMapWrapper.merge(config, overrides);
    for (let key in m) {
      object.spy(key).andReturn(m[key]);
    }
    return object;
  }

  constructor(type = null) {
    if (type) {
      for (let prop in type.prototype) {
        let m = null;
        try {
          m = type.prototype[prop];
        } catch (e) {
          // As we are creating spys for abstract classes,
          // these classes might have getters that throw when they are accessed.
          // As we are only auto creating spys for methods, this
          // should not matter.
        }
        if (typeof m === 'function') {
          this.spy(prop);
        }
      }
    }
  }

  spy(name) {
    if (!this[name]) {
      this[name] = this._createGuinnessCompatibleSpy(name);
    }
    return this[name];
  }

  prop(name, value) { this[name] = value; }

  /** @internal */
  _createGuinnessCompatibleSpy(name): GuinessCompatibleSpy {
    let newSpy: GuinessCompatibleSpy = <any>jasmine.createSpy(name);
    newSpy.andCallFake = <any>newSpy.and.callFake;
    newSpy.andReturn = <any>newSpy.and.returnValue;
    newSpy.reset = <any>newSpy.calls.reset;
    // revisit return null here (previously needed for rtts_assert).
    newSpy.and.returnValue(null);
    return newSpy;
  }
}

Create test/mocks/mock.search.service.ts:
import { SpyObject } from './helper';
import Spy = jasmine.Spy;
import { SearchService } from '../../src/search.service';

export class MockSearchService extends SpyObject {
  getAllSpy: Spy;
  fakeResponse: any;

  constructor() {
    super( SearchService );

    this.fakeResponse = null;
    this.getAllSpy = this.spy('getAll').andReturn(this);
  }

  subscribe(callback: any) {
    callback(this.fakeResponse);
  }

  setResponse(json: any): void {
    this.fakeResponse = json;
  }
}

Create a test for the search component at test/search.component.spec.ts:
/* tslint:disable:no-unused-variable */

import { TestBed } from '@angular/core/testing';
import { MockSearchService } from './mocks/mock.search.service';
import { SearchComponent } from '../src/search.component';
import { SearchService } from '../src/search.service';

describe('Component: Search', () => {
  let mockSearchService: MockSearchService;

  beforeEach(() => {
    mockSearchService = new MockSearchService();

    TestBed.configureTestingModule({
      declarations: [SearchComponent],
      providers: [
        {provide: SearchService, useValue: mockSearchService}
      ]
    });
  });

  it('should call service when search() is called', () => {
    let fixture = TestBed.createComponent(SearchComponent);
    let searchComponent = fixture.debugElement.componentInstance;
    searchComponent.search();
    expect(mockSearchService.getAllSpy).toHaveBeenCalled();
  });

});

At this point, when you run npm test, you'll get the following strange error:
ts-loader: Using<EMAIL_ADDRESS>and /Users/mraible/dev/angular2-testing/tsconfig.json
03 11 2016 08:37:55.633:ERROR [karma]: { [Error: no such file or directory]
  code: 'ENOENT',
  errno: 34,
  message: 'no such file or directory',
  path: '/_karma_webpack_/test/entry.ts' }
Error: no such file or directory

You can fix this by changing karma.config.js to use the following instead of webpack.plugins:
devtool: 'inline-source-map'

Now when you run npm test, you'll see the problem:
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  SyntaxError: Use of reserved word 'import'
  at test/entry.ts:79302

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  SyntaxError: Use of reserved word 'import'
  at test/entry.ts:79302

Adding import {MockSearchService} from './mocks/mock.search.service' to test/entry.ts does not solve the problem.
I've created a project on GitHub to demonstrate this problem: https://github.com/mraible/angular2-testing
Note that I have another project that uses a similar setup for mocking services when testing components. However, it's a bit different because it uses Angular CLI.
https://github.com/mraible/ng2-demo

Ah, thanks for the repro, I can see what's happening now. It's because you're consuming a private API from angular here: https://github.com/mraible/angular2-testing/blob/master/test/mocks/helper.ts#L1
This uses ES6 imports which webpack 1 can't understand, hence it throws the error. You can either upgrade to webpack 2 which can understand ES6 imports or just don't use the private API which will probably break / fail to exist on future versions of angular and break your app. Hope that helps! :)

Thanks for the tip! I was able to get rid of the import and change this:
let m = StringMapWrapper.merge(config, overrides);

To this:
let m = {};
Object.keys(config).forEach((key) => m[key] = config[key]);
Object.keys(overrides).forEach((key) => m[key] = overrides[key]);

I also had a bug in my component template. Here's the commit that gets everything passing.


Add on-demand execution on windows

Test should execute on main branch or in PRs if /windows-test
is added in comments.

/windows-test


Refs/heads/new branches for max

created a branch, created a file and made a commit, and opened a pull request CFSDF


Added DataTable Component

What type of PR is this?
/kind feature
What this PR does / why we need it:
The PR includes a reusable Table component to be used on different pages with different types of data.
This is the first iteration of the component. It will be modified further with API integration and required functionalities working.
It is static and currently implementing this Figma Design ( Overview Page - iteration 7 frame ).
Which issue(s) this PR fixes:
It's a general component useful for different pages of the entire application.
Special notes for your reviewer:
@RainbowMango I'm attaching the screenshot of the developed UI, which was taken by using the component on a new page just for testing. Although, it is not used in any of the pages currently. So, the PR is just having its implementation.

Does this PR introduce a user-facing change?:

NONE

Signed-off-by: @ShwetKhatri2001

Seems it's a static page now, I can't tell if works as expected, I guess we'd better build a real page with it.

I need some resources to understand the API response. So that I can make the component dynamic with the actual data.

What kind of resources do you need?

@ShwetKhatri2001
Check out this file. I'm using this one as API design spec.
https://github.com/karmada-io/karmada/blob/master/api/openapi-spec/swagger.json

@ada2468 Thanks for the help, but we will have different types of data passed to this component and the pages where the component is going to be used are not developed/merged yet. so, the component  can't be completely dynamic or finalized currently according to me. @RainbowMango what's your thought on this?

/close
Thank you for your effort on this, we are currently working with another approach.