truckersmp-cli won't start

Hello !
First of all, I want to thank you for this great application!
Describe the bug
I installed truckersmp-cli with python sudo python3 -m pip install truckersmp-cl : It works
I run truckersmp-cli -n dfzz10 -vv : It works, I wait 90s and I get this.

The logs (truckersmp-cli -n dfzz10 -vv):
** INFO **  Mod directory: /home/adrien/.local/share/truckersmp-cli/TruckersMP
** INFO **  --update/--start not specified, doing both.
** INFO **  --ats/--ets2 not specified, choosing ETS2.
** INFO **  Platform is Linux, using Proton
** INFO **  AppID/GameID: 227300 (ets2)
** INFO **  Game directory: /home/adrien/.local/share/truckersmp-cli/Euro Truck Simulator 2/data
** INFO **  Prefix: /home/adrien/.local/share/truckersmp-cli/Euro Truck Simulator 2/prefix
** INFO **  Proton directory: /home/adrien/.local/share/truckersmp-cli/Proton
** DEBUG **  Updating game files
** INFO **  SteamCMD: /home/adrien/.local/share/truckersmp-cli/steamcmd/steamcmd.sh
** DEBUG **  Closing Linux version of Steam
Running Steam on fedora 34 64-bit
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
Steam client's requirements are satisfied
WARNING: Using default/fallback debugger launch
/home/adrien/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/steam -shutdown
** DEBUG **  Updating Proton (AppID:1245040)
** INFO **  Command:
  /home/adrien/.local/share/truckersmp-cli/steamcmd/steamcmd.sh
    +login dfzz10
    +force_install_dir /home/adrien/.local/share/truckersmp-cli/Proton
    +app_update 1245040 validate
    +quit
Redirecting stderr to '/home/adrien/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs/stderr.txt'
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...CreateBoundSocket: ::bind couldn't find an open port between 27060 and 27060
OK.
Logging in user 'dfzz10' to Steam Public ...
Logged in OK
Waiting for user info...OK
 Update state (0x5) verifying install, progress: 0.34 (3497621 /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 56.71 (588012445 /<PHONE_NUMBER>)
Success! App '1245040' fully installed.
** INFO **  Game branch: public
** DEBUG **  Updating Game (AppID:227300)
** INFO **  Command:
  /home/adrien/.local/share/truckersmp-cli/steamcmd/steamcmd.sh
    +@sSteamCmdForcePlatformType windows
    +login dfzz10
    +force_install_dir /home/adrien/.local/share/truckersmp-cli/Euro Truck Simulator 2/data
    +app_update 227300 -beta public validate
    +quit
Redirecting stderr to '/home/adrien/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.
"@sSteamCmdForcePlatformType" = "windows"
Logging in user 'dfzz10' to Steam Public ...
Logged in OK
Waiting for user info...OK
 Update state (0x5) verifying install, progress: 0.06 (3693505 /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 11.25 (704942768 /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 26.24<PHONE_NUMBER> /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 40.82<PHONE_NUMBER> /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 55.62<PHONE_NUMBER> /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 70.60<PHONE_NUMBER> /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 85.27<PHONE_NUMBER> /<PHONE_NUMBER>)
 Update state (0x5) verifying install, progress: 99.68<PHONE_NUMBER> /<PHONE_NUMBER>)
Success! App '227300' fully installed.
CWorkThreadPool::~CWorkThreadPool: work processing queue not empty: 1 items discarded.
** DEBUG **  Updating mod files
** DEBUG **  Creating directory /home/adrien/.local/share/truckersmp-cli/TruckersMP if it doesn't exist
** DEBUG **  No files to download
** DEBUG **  Starting game with Proton
** DEBUG **  Starting Steam...

** DEBUG **  Steam should be up now.
** INFO **  Steam installation directory: /home/adrien/.local/share/Steam
** DEBUG **  Creating directory /home/adrien/.local/share/truckersmp-cli/Euro Truck Simulator 2/prefix if it doesn't exist
** DEBUG **  winediscordipcbridge.exe is present, MD5 is OK.
** INFO **  Starting winediscordipcbridge.exe
** INFO **  Startup command:
  SteamGameId=227300
  SteamAppId=227300
  STEAM_COMPAT_DATA_PATH=/home/adrien/.local/share/truckersmp-cli/Euro Truck Simulator 2/prefix
  STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/adrien/.local/share/Steam
  PROTON_USE_WINED3D=0
  PROTON_NO_D3D11=1
  LD_PRELOAD=/home/adrien/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so
  /usr/bin/python3 /home/adrien/.local/share/truckersmp-cli/Proton/proton
  run
  /usr/local/lib/python3.9/site-packages/truckersmp_cli/truckersmp-cli.exe /home/adrien/.local/share/truckersmp-cli/Euro Truck Simulator 2/data /home/adrien/.local/share/truckersmp-cli/TruckersMP
** INFO **  Proton output:
ERROR: ld.so: object '/home/adrien/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/home/adrien/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/home/adrien/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/home/adrien/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
esync: up and running.
Setting breakpad minidump AppID = 227300
Steam_SetMinidumpSteamID:  Caching Steam ID:<PHONE_NUMBER>4503459 [API loaded no]

Information

OS: Fedora 34
Proton  version: 5.0-10
truckersmp-cli version: 0.5.0

Can you help me ?
Thank you for you help
Adrien

Explanation: https://github.com/truckersmp-cli/truckersmp-cli/issues/34#issuecomment-504429293

/home/adrien/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/steam -shutdown

Probably caused by: https://github.com/truckersmp-cli/truckersmp-cli/issues/52

Hi @Lucki !
Thank you for you help !
I tried /home/adrien/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/steam -shutdownbut the problem persists.

The issue is still open, Steam using Flatpak isn't supported yet.

I installed Steam from dnf.
I used Steam from flatpak but deleted it to try to install it from dnf.

** INFO **  Steam installation directory: /home/adrien/.local/share/Steam

Is the steam path correct and contains your steam installation?

You are right : '/home/adrien/.local/share/Steam' is not my Steam installation.
How do I find it ?

How do I find it ?

ls -l $HOME/.steam/ | grep root

I used Steam from Flatpak but deleted it to try to install it from dnf.

What's the output of which steam?

Hello !
I completely deleted all my steam installation folders and installed from scratch with dnf.
Now I have another error message regarding my graphics card.
Do you have any idea?

Thank you for you help

Please make sure you meet the requirements and test basic proton functionality with any game from within steam at least once.

Yes I have the mesa-vulkan-drivers. I tried with another game with proton on steam and it works fine.
I also tried to install popOs (It's a System76 laptop) and I reinstalled truckersmp-cli and it works perfectly!
So I don't understand why on fedora it doesn't work.

Bug also exists on pip latest (as of writing), Fedora 34. Proton works fine on other apps, errors are the same as BugProg's.

Edit: Does not work on Arch Linux as well, same bug.

I'm using Arch by myself so there has to be something that's different.
Please post your game log and crash log if there's something nearby.

It seems this is the important part:
American Truck Simulator init ver.<IP_ADDRESS>s (rev. 86020384df02)
[gfx] Selected rendering device: dx11
[gfx] NVAPI not detected. (-2)
[gfx] AGS not detected. (6)
<ERROR> [gfx] failed to initialize device subsystem! (dx11)
<WARNING> [gfx] Ignoring uninitialized rendering device: dx11
[gfx] Selected rendering device: gl
[gfx] NVAPI not detected. (-2)
[gfx] AGS not detected. (6)
[gl] WGL extensions: WGL_ARB_create_context WGL_ARB_create_context_no_error WGL_ARB_create_context_profile WGL_ARB_pixel_format_float WGL_ATI_pixel_format_float WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_render_texture WGL_NV_render_texture_rectangle WGL_EXT_extensions_string WGL_EXT_swap_control WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control_tear WGL_WINE_pixel_format_passthrough WGL_WINE_query_renderer
[net]  LOG INFO: Started
[fs] device  mounted.
Setting UI reference mode to: 1440x900...
[gfx] Using the GDI display backend
<ERROR> [gl] wglChoosePixelFormatARB failed on pixelformat selection, continuing using fallback method
<ERROR> [gl] Failed to choose reasonable pixelformat.
<ERROR> [gfx] failed to initialize device! (OpenGL)

It tries to use dx11 and fails (this is somewhat expected) and tries OpenGL as fallback but also fails here. And that even before the graphics card got initialized.
My log looks like this:
American Truck Simulator init ver.<IP_ADDRESS>s (rev. a1bf31efc68d)
[gfx] Selected rendering device: gl
[gfx] NVAPI initialized
[gfx] AGS not detected. (6)
[gl] WGL extensions: WGL_ARB_create_context WGL_ARB_create_context_no_error WGL_ARB_create_context_profile WGL_ARB_pixel_format_float WGL_ATI_pixel_format_float WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_render_texture WGL_NV_float_buffer WGL_NV_render_texture_rectangle WGL_EXT_extensions_string WGL_EXT_swap_control WGL_EXT_framebuffer_sRGB WGL_EXT_swap_control_tear WGL_NV_vertex_array_range WGL_WINE_pixel_format_passthrough
[net]  LOG INFO: Started
[fs] device  mounted.
Setting UI reference mode to: 1440x900...
[gfx] Using the GDI display backend

Suspicious is to me that neither of the two graphics api get recognized in your log:
[gfx] NVAPI not detected. (-2)
[gfx] AGS not detected. (6)

Looking in the APIs

6: AGS_NO_AMD_DRIVER_INSTALLED,    ///< Returned if the AMD GPU driver does not appear to be installed
-2: NVAPI_LIBRARY_NOT_FOUND = -2,      //!< NVAPI support library cannot be loaded.

So I guess you have a nvidia card and the nvapi library wasn't found. (obviously)
But why? I've scanned my proton folder, my steam runtime folder and files isntalled by my nvidia driver but couldn't find something related to nvapi. I don't know where it's coming from but it seems missing on your end.

I have an AMD card, the RX 5700 XT. I know that I have the correct drivers installed (just double checked with wiki too), so I'm not sure.

Is drive_c/windows/system32/amd_ags_x64.dll present? That should be shipped by proton and be copied into the prefix (although I only see it in my backup prefix here).

Copying amd_ags_x64.dll into system32 in the prefix truckersmp-cli creates still causes the same issue, AGS not being detected in game.log.txt.

I unfortunately can't help in identifying the issue any longer, as I'm no longer using Linux as a daily driver. Thank you for all the work you've done, I'm thankful that TruckersMP can be accessible to Linux users, even if there's some hurdles. :)

@Lucki Actually, OpenGL backend is currently not working for me (GPU:Radeon Vega 3, Driver:radeonsi / Mesa 21.2.5). D3D11 is working. Is it working on your machine?
It was working when I tested PR 224 (Aug 2021).
game.log.txt (ATS <IP_ADDRESS>s Singleplayer)
00:00:10.725 : American Truck Simulator init ver.<IP_ADDRESS>s (rev. 2c4ee2b5f423)

...

00:00:05.046 : <ERROR> [gl] wglChoosePixelFormatARB failed on pixelformat selection, continuing using fallback method
00:00:05.046 : <ERROR> [gl] Failed to choose reasonable pixelformat.
00:00:05.046 : <ERROR> [gfx] failed to initialize device! (OpenGL)

Proton (6.3-7) log with "PROTON_LOG=1 WINEDEBUG=-all,+opengl,+wgl"
0100:trace:opengl:wglChoosePixelFormatARB (0x62003b, 0x63dd98, (nil), 2048, 0x63e1a0, 0x63e9b0)
0100:trace:wgl:X11DRV_wglChoosePixelFormatARB (0x62003b, 0x63dd98, (nil), 2048, 0x63e1a0, 0x63e9b0): hackish
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[0] = 2001
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[1] = WGL_DRAW_TO_WINDOW_ARB: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[2] = 2003
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[3] = WGL_ACCELERATION_ARB: 8231
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[4] = 2013
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[5] = WGL_PIXEL_TYPE_ARB: 8235
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[6] = 2011
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[7] = GLX_DOUBLEBUFFER: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[8] = 2010
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[9] = WGL_SUPPORT_OPENGL_ARB: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[10] = 2014
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[11] = GLX_BUFFER_SIZE: 32
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[12] = 2022
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[13] = GLX_DEPTH_SIZE: 0
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[14] = 2015
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[15] = GLX_RED_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[16] = 2017
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[17] = GLX_GREEN_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[18] = 2019
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[19] = GLX_BLUE_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[20] = 201b
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[21] = GLX_ALPHA_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[22] = 20a9
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[23] = GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[?] = GLX_DRAWABLE_TYPE: 0x1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[?] = GLX_RENDER_TYPE: 0x1
0100:warn:wgl:X11DRV_wglChoosePixelFormatARB Compatible Pixel Format not found

Actually, OpenGL backend is currently not working for me (GPU:Radeon Vega 3, Driver:radeonsi / Mesa 21.2.5). D3D11 is working.

Additional information: This happens only on Wayland sessions (Tested on Weston + XWayland, GNOME/Wayland + XWayland, and Plasma/Wayland + XWayland). For some reasons (may be XWayland issue) OpenGL backend works only on X11 sessions (e.g. LXQt session).
Proton (6.3-7) log with "PROTON_LOG=1 WINEDEBUG=-all,+opengl,+wgl", X11 session
0100:trace:opengl:wglChoosePixelFormatARB (0x62003b, 0x63dd98, (nil), 2048, 0x63e1a0, 0x63e9b0)
0100:trace:wgl:X11DRV_wglChoosePixelFormatARB (0x62003b, 0x63dd98, (nil), 2048, 0x63e1a0, 0x63e9b0): hackish
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[0] = 2001
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[1] = WGL_DRAW_TO_WINDOW_ARB: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[2] = 2003
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[3] = WGL_ACCELERATION_ARB: 8231
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[4] = 2013
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[5] = WGL_PIXEL_TYPE_ARB: 8235
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[6] = 2011
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[7] = GLX_DOUBLEBUFFER: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[8] = 2010
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[9] = WGL_SUPPORT_OPENGL_ARB: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[10] = 2014
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[11] = GLX_BUFFER_SIZE: 32
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[12] = 2022
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[13] = GLX_DEPTH_SIZE: 0
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[14] = 2015
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[15] = GLX_RED_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[16] = 2017
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[17] = GLX_GREEN_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[18] = 2019
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[19] = GLX_BLUE_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[20] = 201b
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[21] = GLX_ALPHA_SIZE: 8
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[22] = 20a9
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[23] = GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT: 1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[?] = GLX_DRAWABLE_TYPE: 0x1
0100:trace:wgl:ConvertAttribWGLtoGLX pAttr[?] = GLX_RENDER_TYPE: 0x1
0100:trace:wgl:get_pixel_format Returning fmt_id=0x246 for iPixelFormat=165
0100:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 37 type 0 color 32 8,8,8,8 accum 0 depth 0 stencil 0 aux 0 PFD_DOUBLEBUFFER PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL
0100:trace:wgl:get_pixel_format Returning fmt_id=0x248 for iPixelFormat=167
0100:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 37 type 0 color 32 8,8,8,8 accum 0 depth 0 stencil 0 aux 0 PFD_DOUBLEBUFFER PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL
0100:trace:wgl:get_pixel_format Returning fmt_id=0x462 for iPixelFormat=485
0100:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 37 type 0 color 32 8,8,8,8 accum 0 depth 0 stencil 0 aux 0 PFD_DOUBLEBUFFER PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL
0100:trace:wgl:get_pixel_format Returning fmt_id=0x464 for iPixelFormat=487
0100:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 37 type 0 color 32 8,8,8,8 accum 0 depth 0 stencil 0 aux 0 PFD_DOUBLEBUFFER PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL
0100:trace:wgl:get_pixel_format Returning fmt_id=0x252 for iPixelFormat=181
...

I don't have any Wayland sessions. It works with OpenGL on X.

Since this is a bug in XWayland I submitted a bug report to their repository but no progress so far.


[BEAM-13077][Playground] LifeCycle.CreateFolders() after several uses returns error

fix logic for CreateFolders method

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

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

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

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @pabloem
R: @damondouglas


Optimize a slew of Cargo internals

Cargo has historically had very little optimization applied to it. Despite that it's pretty speedy today but there's always a desire to be faster! I've noticed Cargo being particularly sluggish on projects like Servo and rust-lang/rust, so I started profiling and found quite a few low-hanging fruit!
This PR is a slew of optimizations across Cargo for various things found here and there. The banner optimizations are:

Resolution with a lock file should be basically a noop in terms of execution time now. An optimization was done to avoid cloning Context unless necessary, and that basically means it doesn't get cloned now! As the number 1 source of slowdown in Cargo this is the biggest improvement.
Lots of pieces in resolve are now Rc<T> for being more easily cloneable.
Summary now internally contains an Rc like Dependency, making it much more quickly cloneable.
Registry as a trait no longer returns a Vec but rather takes a closure to yield summaries up, removing lots of intermediate arrays.
We no longer spawn a thread for all units of "fresh work", only when we're about to spawn a process.

Almost everything here was guided through profiling ./x.py build on rust-lang/rust or cargo build -p log on Servo. Both of these stress "noop resolution" and the former also stresses noop builds.
Runs of ./x.py build dropped from 4 to 2 seconds (with lots of low-hanging fruit still remaining in Cargo itself) and cargo build -p log dropped from 1.5s to 0.3s. Massif graphs showing Cargo's memory usage also show that the peak memory usage of Cargo in a noop build of Servo dropped from 300MB to 30MB during resolution.
I'm hoping that none of these optimizations makes the code less readable and/or understandable. There are no algorithmic improvements in this PR other than those transitively picked up by making clones cheaper and/or allocating less.

r? @brson
(rust_highfive has picked a reviewer for you, use r? to override)

r? @matklad

:umbrella: The latest upstream changes (presumably #4110) made this pull request unmergeable. Please resolve the merge conflicts.

Updated!

👍 (at least, the branch is named hamt :) )

You can see how I started down this rabbit hole!

Updated!

@bors r+

:pushpin: Commit f0b6a87 has been approved by matklad

:hourglass: Testing commit f0b6a87 with merge a852f5f...

:broken_heart: Test failed - status-travis

Failure looks legitimate.
error: no method named `query` found for type `std::vec::Vec<core::summary::Summary>` in the current scope
   --> src/cargo/core/registry.rs:444:32
    |
444 |                 self.summaries.query(dep, f)
    |                                ^^^^^
    |
    = help: items from traits can only be used if the trait is im

@bors: r=matklad

:pushpin: Commit a389d48 has been approved by matklad

:hourglass: Testing commit a389d48 with merge bbb38dc...

:sunny: Test successful - status-appveyor, status-travis
Approved by: matklad
Pushing bbb38dce7f224c4c83d4fb9a69dfe9c783e00a4e to master...


SwipeActionView is clipped

I've run across a difficult, and seemingly unpredictable bug...
In rare cases, the action view will be completely hidden from view. In using the visual debugger in Xcode, and turning on "Clipped Views", the view then appears. I've checked all the superviews for clipsToBounds to ensure it's turned off, and as you can see, the constraints are properly set given it's positioned correctly.
The only lead I have is that it more commonly fails to display when a cell appears in a new section for the first time. In other words, if we have two sections, then insert a third with a new cell in that section, the new cell appearing in the new section is more frequently where I'll see this behavior.
Has anyone run into this before?
(Clipped view on the left, actual displayed result on the right)

@MattNewberry Stange. So u where not able to determine which view had clipsToBounds set to true? Are you using auto resizing cells in the UITableView with a height of automatic?

@kurabi I went up the entire stack and ensured every superview had clipsToBounds set to false to be overly sure, and still no change. In this case we're using a predetermined cell height. The custom cell subclass does have "auto resizes subviews" on.

@MattNewberry Did you look at the 3D view of the hierarchy to identify the view that was blocking the actions button from being seen? Also is this on simulator or a device? Thanks

@kurabi That's whats most confusing... there doesn't appear to be a view on top of the actions clearly clipping it. When I 3D view it, there's no smoking gun. When I click on the area where the actions should be displayed, the selected view becomes the table view behind it.

@MattNewberry hmmm, just to confirm, the action buttons always appear in the debug view hierarchy regardless if "Clipped Views" button is turned on or off?

@kurabi They're always in the hierarchy, however they only appear when Clipped Views is enabled in the visual debugger.

What's odd as well is that the button contents seemingly is at a lower Z index than the rest of the action view.
("Arrived" text is in the background)

This appears to be an internal issue rather than one related to SwipeCellKit... going back 6 months to our initial integration, I'm unable to reproduce. I'll report back when I'm able to track it down to help anyone else who may have this issue in the future.

For anyone who may find this down the road... Inexplicably, this issue was introduced when triggering a sort of our list from a NSFetchedResultsControllerDelegate method, in which the sorting method then persisted new properties that also triggered the same delegate callback. While I believe the issue lies within an internal oddity of our app, the issue has seemingly gone away by breaking out separate fetchedResultsControllers for our purposes.


Added mapping for NEXT NES game controller, linux

After fighting with getting this classic-style gamepad to work through the linux joystick drivers, I gave up and fought to figure out the SDL mapping. I hope this saves someone else the trouble and thank you for putting this together!

Merged manually


Downloading media attachements on message from Teams

I'm trying to download an audio attachment from a message payload coming from Teams but I get a 401. I tried using an access token from token.botframework.com but no luck yet.
....
"attachments": [
   {
     "id": "xxx",
     "contentType": "application/vnd.microsoft.card.audio",
     "contentUrl": null,
     "name": null,
     "thumbnailUrl": null,
     "content": "{\"duration\":\"PT13S\",\"media\":[{\"url\":\"https://eu-api.asm.skype.com/v1/objects/0-neu-d6-xxxx/views/audio\"}]}"
  }
]

I did some research but I couldn't find any proper documentation. Can please you point me in the right direction?
Thanks in advance.

Are you doing something like the following?:
var token = await new MicrosoftAppCredentials("appId", "password").GetTokenAsync();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

With Teams, another option is to use Attachment.Content["downloadUrl"]. But, that can cause issues at times, specifically if files were sent via clipboard. That's why the above is better.
Please see more info here:
https://stackoverflow.com/questions/61230395/cannot-access-images-from-microsoft-teams-activity-when-added-by-clipboard

Correct, I tried the approach you mention and using the ctor overload with the tenantId, which produces a different access token. But I still get 401. Do I need to negotiate another access token for this skype API?
In the messagePayload I get on the message extension I don't get any downloadUrl, the JSON I shared is the only information I have about the attachment.

When using:
var token = await new MicrosoftAppCredentials("appId", "password").GetTokenAsync();

or the constructor with the tenantId returns a JWT access token is meant to be used with https://api.botframework.com.
I tried, for example, grabbing the object ID from the skype API URL and then use it with Bot Framework REST API :
https://smba.trafficmanager.net/apis/v3/attachments/{objectId}

But I still get 401 response.
I couldn't find any good documentation to obtain a skype_token to be able to access the attachment from the Skype API

I'm still looking into this. Unfortunately I'm having (different) problems of my own investigating. Thanks for your patience. Stand by.

@anusharavindrar is investigating

This is an issue with downloading media from teams, and the problem is being tracked here.


Marks on scrollbar: smarter navigation (center the mark vertically)

Description of the new feature/enhancement
Since #12948 we have the long-awaited marks on the scrollbar, along with the possibility to navigate between them.
Unfortunately, the navigation isn't very smart yet. When jumping to the previous/next mark, the window area merely scrolls such that the marked line becomes visible.
It would be much nicer if

the marked line would end up somewhere near the middle of the window – more often than not, what I'm interested in is the content directly above or below the mark, and this would then be immediately visible.
the line was highlighted (briefly) after the navigation action – this would make it easy to immediately find the marked line visually.

Proposed technical implementation details (optional)
The »jump to mark« command should scroll the window area such that the target line ends up near the middle of the screen whenever possible. A temporary highlight effect should be used to visually guide the user to the target line.

Are we sure we want the target near the middle of the screen? If we're auto-marking prompts, the most common marks are going to be at the start (or end, depending on how you think of it) of a command.
With that turned on (the way I have it right now) I want to see the mark at or near the top of the screen, so I can see as much of the output as possible.
Incidentally, it would be nice if the mark functionality followed the behavior of (and even key-bindings for) search, regardless -- so if we had a way to make it appear near the center of the screen, it should be optional, and should would work for both.

Don't worry, that's how I already interpreted this request - as a request for an optional setting here:

[ ] #13449 - center or some other setting that controls how the mark is scrolled in.

Maybe top (current) / center (as proposed) /nearestEdge (when scrolling down, put the mark at the bottom line of viewport , up -> top line)?

Frankly, I'm a huge fan of the "scroll s.t. the mark appears at the top of the viewport" style, for the same reason you've mentioned above. But if folks want to optionally scroll the prompt to the middle of the viewport, that doesn't seem terribly difficult to implement or maintain.

Are we sure we want the target near the middle of the screen? If we're auto-marking prompts, the most common marks are going to be at the start (or end, depending on how you think of it) of a command.
With that turned on (the way I have it right now) I want to see the mark at or near the top of the screen, so I can see as much of the output as possible.

While this sounds convincing, I have thought about it and this is how I can describe the use case: The marked prompts are indeed between the interesting content which is the command output. In my experience, very frequently I need from the history the end of the output just before the next prompt. For example, this is the case for error messages at the end of a compilation run whose complete output doesn't fit on a screen.
With the current behaviour, finding this requires skipping one prompt further up and then back down again to reveal the end of the command output, which is inconvenient.
Hope I could provide some explanation for this feature request ;-)


React UI: Select time range with mouse drag

This PR adds support to select the time range with a mouse drag.
https://user-images.githubusercontent.com/54278938/122826300-f9165700-d2b0-11eb-9f7d-949716e34c59.mp4
Fixes #1237

Would it be relevant to unzoom on double click ? (unzoom with the double-clicked point as center)?

Note: This is awesome :)

Would it be relevant to unzoom on double click ? (unzoom with the double-clicked point as center)?

So far I am happy with just pressing the "back" button on my mouse, but not sure. Is double click intuitive for unzooming?

I think that double-click is too subtle an action. I'm sure many accidentally double-click on a regular basis, especially with a click-heavy element such as the graph.

Nice feature!
Adding /* SPDX-License-Identifier: Apache-2.0 */ to jquery.flot.selection.js and noting where you copied the file from might be the best course of action.
I have adding SPDX Ids on my bucket list; this would should make licence checking easier going forward. Unclear if I will find time to apply them all to the old branches as well.

Nice feature!
Adding /* SPDX-License-Identifier: Apache-2.0 */ to jquery.flot.selection.js and noting where you copied the file from might be the best course of action.
I have adding SPDX Ids on my bucket list; this would should make licence checking easier going forward. Unclear if I will find time to apply them all to the old branches as well.

Instead of doing it yourself, why not creating an issue ? The community might help here. That's a lot of repos.

I fear that outside of you and me, most people wouldn't care. The community interest is so low that I needed to start https://github.com/RichiH/spdx_helper myself as there was nothing to automate addition (it needs to detect and exclude vendored files before I can make the first production runs).

If there's a consensus, I'd be happy to start the process here. Just to be clear, it would look something like this:
/*
SPDX-License-Identifier: Apache-2
Source: https://github.com/grafana/grafana/tree/v7.5.8/public/vendor/flot/jquery.flot.selection.js
*/

We still need the apache header:
https://www.fosslife.org/how-apply-license-your-open-source-project

/*
Copyright 2015 Grafana Labs
SPDX-License-Identifier: Apache-2
Source: https://github.com/grafana/grafana/tree/v7.5.8/public/vendor/flot/jquery.flot.selection.js

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

Ok here's a revised version. I garnered the copyright directly from the license. It is worth mentioning that I had to make some small modifications to get it to work, I'm not sure if that changes anything with the license stuff.
https://github.com/prometheus/prometheus/blob/c3a54d1328f3b4dde9c796ecfebc16247ddeb455/web/ui/react-app/src/vendor/flot/jquery.flot.selection.js#L199
https://github.com/prometheus/prometheus/blob/c3a54d1328f3b4dde9c796ecfebc16247ddeb455/web/ui/react-app/src/vendor/flot/jquery.flot.selection.js#L412

@roidelapluie I disagree with pulling the full boilerplate in. But we're also at risk of bikeshedding

VM is way more competent than me in this area, I trust her.

It's somewhat hard to argue with "someone else is right"; more of a monologue than a conversation.
The problem I see is that we would be saving literally the same information twice; the inherent risk is that this can diverge over time. A license blurb is also more legally binding than an SPDX header, as such the header becomes useless and you need to parse the file with brittle heuristics again. The law systems I am familiar with (Germany, USA) both rely on intent. Putting a SPDX header in makes the intent clear. As a court would always try to find out and follow intent, the SPDX header itself should(TM) be enough.
Along similar lines, claiming that Grafana Labs holds all the copyright seems wrong; https://github.com/grafana/grafana/blob/v7.5.8/public/vendor/flot/jquery.flot.selection.js clearly states that initial copyright was "Copyright (c) 2007-2013 IOLA and Ole Laursen." Having done this sleuthwork helping Debian's ftp-master ages ago, I know how endless this digging can be. A relative pointer to where the file was copied from initially seems to be enough for someone to dig if they needed to dig.
All that being said, I don't think this discussion should block the merge. For the reasons stated above I strongly prefer the short form proposed in https://github.com/prometheus/prometheus/pull/8977#issuecomment-865860227 but don't want to block either.

Deliberately in a second comment: "Back" makes more sense to me than a double-click. In more complex drill-downs it can become unclear what the double-click would jump back to whereas atomic back steps would be explicit and predictable.

double click is not the same as back, double click is zoom out. this is what grafana is doing.

e.g. you do not need to zoom first to double click, you can do it directly.

I believe zoom out is range control, equivalent to entering a time range into the box on the graph controls, is it not? If so, I think it's unrelated to this and should be considered as a separate feature.

:+1:


Status of kapteyn and this repository

It's currently unclear exactly what the status of kapteyn is:

There hasn't been a release to PyPI since 2016 (there has been further commits to this repository though).
There's a 3.0 on https://www.astro.rug.nl/software/kapteyn/index.html (Aug 10, 2019), which seems to support newer Python versions, but no changes seem to have been pushed here (based on what I can see).

Would it be possible to add the latest 3.0 changes here, and do a release?
It would also be nice to look at updating some of the packaging infrastructure (e.g. adding a pyproject.toml to specify build dependencies)?
Finally, maybe looking at replacing some of the code which duplicates astropy (e.g. the wcslib wrapper) with wrappers around astropy for backwards compatibility, so as to simply maintenance of the package, would be a good idea also. There's probably other aspects which can be replaced by calls to numpy/scipy.

This isn't quite what github comments are used for, but we've been having the same concerns about the state of Kapteyn and whether it will continue to updated.  It's currently throwing deprecation warnings and the project we're working on depends on it.  Since it seems to be empty here, have you found any alternatives that may replace the ability to make graticules?
We've been looking in LIGO skymap which seems to have its own code with similar functionality, although it isn't the same as Kapteyn.  Thank you!


More D-Bus errors

I am running this on Arch on a RPi3. My goal is to have  the Pi as a bluetooth sink. Arch uses Systemd and I have built and installed the AUR package:
https://aur.archlinux.org/packages/bluez-alsa-git/
The installed package is advertised as this:
bluez-alsa-git 1.4.0.r9.g1557602-1
bluealsa 'worked' at one point, but no longer does.
I cannot get the bluealsa service to run. Every time I try, I get this error:
 bluealsa[279]: /usr/bin/bluealsa: Couldn't get managed objects: GDBus.Error:org.freedesktop.DBus.Error.AccessDen>
bluealsa[279]: /usr/bin/bluealsa: Couldn't acquire D-Bus name: org.bluealsa

When I interrogate the dbus, I get this:
Monitoring bus message stream.
‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=1
  Sender=:1.50  Destination=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=Hello
  UniqueName=:1.50
  MESSAGE "" {
  };

‣ Type=method_return  Endian=l  Flags=1  Version=1  Priority=0 Cookie=1  ReplyCookie=1
  Sender=org.freedesktop.DBus  Destination=:1.50
  MESSAGE "s" {
          STRING ":1.50";
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=56
  Sender=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameOwnerChanged
  MESSAGE "sss" {
          STRING ":1.50";
          STRING "";
          STRING ":1.50";
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=2
  Sender=org.freedesktop.DBus  Destination=:1.50  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameAcquired
  MESSAGE "s" {
          STRING ":1.50";
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=2
  Sender=:1.50  Destination=org.freedesktop.systemd1  Path=/org/freedesktop/systemd1  Interface=org.freedesktop.systemd1.Manager  Member=GetDynamicUsers
  UniqueName=:1.50
  MESSAGE "" {
  };

‣ Type=method_return  Endian=l  Flags=1  Version=1  Priority=0 Cookie=58  ReplyCookie=2
  Sender=:1.2  Destination=:1.50
  UniqueName=:1.2
  MESSAGE "a(us)" {
          ARRAY "(us)" {
                  STRUCT "us" {
                          UINT32 65306;
                          STRING "haveged";
                  };
          };
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=5
  Sender=org.freedesktop.DBus  Destination=:1.50  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameLost
  MESSAGE "s" {
          STRING ":1.50";
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=57
  Sender=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameOwnerChanged
  MESSAGE "sss" {
          STRING ":1.50";
          STRING ":1.50";
          STRING "";
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=1
  Sender=:1.51  Destination=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=Hello
  UniqueName=:1.51
  MESSAGE "" {
  };

‣ Type=method_return  Endian=l  Flags=1  Version=1  Priority=0 Cookie=1  ReplyCookie=1
  Sender=org.freedesktop.DBus  Destination=:1.51
  MESSAGE "s" {
          STRING ":1.51";
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=58
  Sender=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameOwnerChanged
  MESSAGE "sss" {
          STRING ":1.51";
          STRING "";
          STRING ":1.51";
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=2
  Sender=org.freedesktop.DBus  Destination=:1.51  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameAcquired
  MESSAGE "s" {
          STRING ":1.51";
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=2
  Sender=:1.51  Destination=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=AddMatch
  UniqueName=:1.51
  MESSAGE "s" {
          STRING "type='signal',sender='org.bluez',interface='org.freedesktop.DBus.ObjectManager',member='InterfacesAdded'";
  };

‣ Type=method_return  Endian=l  Flags=1  Version=1  Priority=0 Cookie=3  ReplyCookie=2
  Sender=org.freedesktop.DBus  Destination=:1.51
  MESSAGE "" {
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=3
  Sender=:1.51  Destination=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=AddMatch
  UniqueName=:1.51
  MESSAGE "s" {
          STRING "type='signal',sender='org.bluez',interface='org.freedesktop.DBus.ObjectManager',member='InterfacesRemoved'";
  };

‣ Type=method_return  Endian=l  Flags=1  Version=1  Priority=0 Cookie=4  ReplyCookie=3
  Sender=org.freedesktop.DBus  Destination=:1.51
  MESSAGE "" {
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=4
  Sender=:1.51  Destination=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=AddMatch
  UniqueName=:1.51
  MESSAGE "s" {
          STRING "type='signal',sender='org.bluez',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',arg0='org.bluez.Device1'";
  };

‣ Type=method_return  Endian=l  Flags=1  Version=1  Priority=0 Cookie=5  ReplyCookie=4
  Sender=org.freedesktop.DBus  Destination=:1.51
  MESSAGE "" {
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=5
  Sender=:1.51  Destination=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=AddMatch
  UniqueName=:1.51
  MESSAGE "s" {
          STRING "type='signal',sender='org.bluez',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',arg0='org.bluez.MediaTransport1'";
  };

‣ Type=method_return  Endian=l  Flags=1  Version=1  Priority=0 Cookie=6  ReplyCookie=5
  Sender=org.freedesktop.DBus  Destination=:1.51
  MESSAGE "" {
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=6
  Sender=:1.51  Destination=org.bluez  Path=/  Interface=org.freedesktop.DBus.ObjectManager  Member=GetManagedObjects
  UniqueName=:1.51
  MESSAGE "" {
  };

‣ Type=error  Endian=l  Flags=1  Version=1  Priority=0 Cookie=7  ReplyCookie=6
  Sender=org.freedesktop.DBus  Destination=:1.51
  ErrorName=org.freedesktop.DBus.Error.AccessDenied  ErrorMessage="Rejected send message, 2 matched rules; type="method_call", sender=":1.51" (uid=974 pid=1385 comm="/usr/bin/bluealsa ") interface="org.freedesktop.DBus.ObjectManager" member="GetManagedObjects" error name="(unset)" requested_reply="0" destination="org.bluez" (uid=0 pid=272 comm="/usr/lib/bluetooth/bluetoothd ")"
  MESSAGE "s" {
          STRING "Rejected send message, 2 matched rules; type="method_call", sender=":1.51" (uid=974 pid=1385 comm="/usr/bin/bluealsa ") interface="org.freedesktop.DBus.ObjectManager" member="GetManagedObjects" error name="(unset)" requested_reply="0" destination="org.bluez" (uid=0 pid=272 comm="/usr/lib/bluetooth/bluetoothd ")";
  };

‣ Type=method_call  Endian=l  Flags=0  Version=1  Priority=0 Cookie=7
  Sender=:1.51  Destination=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=RequestName
  UniqueName=:1.51
  MESSAGE "su" {
          STRING "org.bluealsa";
          UINT32 0;
  };

‣ Type=error  Endian=l  Flags=1  Version=1  Priority=0 Cookie=8  ReplyCookie=7
  Sender=org.freedesktop.DBus  Destination=:1.51
  ErrorName=org.freedesktop.DBus.Error.AccessDenied  ErrorMessage="Connection ":1.51" is not allowed to own the service "org.bluealsa" due to security policies in the configuration file"
  MESSAGE "s" {
          STRING "Connection ":1.51" is not allowed to own the service "org.bluealsa" due to security policies in the configuration file";
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=6
  Sender=org.freedesktop.DBus  Destination=:1.51  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameLost
  MESSAGE "s" {
          STRING ":1.51";
  };

‣ Type=signal  Endian=l  Flags=1  Version=1  Priority=0 Cookie=59
  Sender=org.freedesktop.DBus  Path=/org/freedesktop/DBus  Interface=org.freedesktop.DBus  Member=NameOwnerChanged
  MESSAGE "sss" {
          STRING ":1.51";
          STRING ":1.51";
          STRING "";
  };

You need to make sure https://github.com/Arkq/bluez-alsa/blob/master/src/bluealsa.conf is installed in the dbus system service directory. For me this is /etc/dbus-1/system.d which I suspect is the same on Arch.
The git pkgbuild has not been updated for the latest changes. Someone should report it out of date.

Thanks for the help!.
I checked, that file is in my /etc/dbus-1/system.d/ folder. It appears that the git PKGBUILD grabs the latest from git. Is there something missing that I need to get or edit?

Is there something missing that I need to get or edit?

When I've checked D-Bus configuration on Ubuntu 18 I had to perform reboot
before D-Bus has grabbed the configuration - restarting D-Bus alone has
seemed not to work (I'm not sure why though). On my Gentoo PC, everything
has worked flawlessly after D-Bus reload.

@gearhead Are you running bluealsa as root? I would expect it to error like that if you don't.

I appreciate the help... I dug through this again. Tried on a fresh install. Discovered that the /etc/dbus-1/system.d/bluetooth.conf file was missing. Do no t know why, but when I installed (and re-installed) bluez-5.50 and bluez-utils, it was never installed. I grabbed one from the official repository (I'll let arch know) and put it in. I edited the resulting file to add the lines:

again. then rebooted. I get a different but similar response and still the process does not start:
Apr 01 12:13:17 alarm systemd[1]: Started BluezAlsa proxy.
Apr 01 12:13:17 alarm bluealsa[2105]: /usr/bin/bluealsa: Couldn't acquire D-Bus name: org.bluealsa
Apr 01 12:13:17 alarm systemd[1]: bluealsa.service: Main process exited, code=exited, status=1/FAILURE
Apr 01 12:13:17 alarm systemd[1]: bluealsa.service: Failed with result 'exit-code'.
I start to wonder if this be a systemd issue? When I try to run it from the cli, I get nothing.
/usr/bin/bluealsa never returns with anything and requires a ctrl c to get a prompt back. I edited the service file to comment out the user and group (so it launches as root) and now it runs. Woo Hoo! Now to see if audio comes out and then dig into what I need to do with systemd user and group...

So starting from 86b174aba7485ec7f6159bf05baf080250adda25, is it mandatory to run bluealsa as root ?

I believe my problem was resulting from systemd and not bluezalsa,

@nheir by default, yes. However, anyone can change D-Bus policy file in
order to allow other users (groups) to run and connect to bluealsa.


What is the mean of "source" and "licenseVersion" of the FullLicenseInfo ?

What is the mean of "source" and "licenseVersion" of the FullLicenseInfo ?
Sorry, because I don't find anywhere use them.

FullLicenseInfo is an internal structure that will be abandoned soon.
source is the file name where the license is stored. licenseVersion is the version of the licensing software (1.1.0)
If you're starting exploring the library i suggest you to start from the public api under api/license++.h


please implement scan

https://gist.github.com/enjoylife/2289625
http://ualr.edu/nxyuruk/publications/kdd07.pdf

Implementation will be done basing on paper  "PSCAN: A Parallel Structural Clustering Algorithm for Big Networks in MapReduce"

After commit 4adc61433f346d3f2eb001e50e58cee17d7b60fc PSCAN is present in SNAPSHOT, please refer to docs for more info.

i would like to thank my renowned collegaue @riomus for this work.

Present in 0.0.5


Default bot implementation throws an error when receiving an adaptive card chat message

Description
The default bot implementation throws an error, see below, when an adaptive card (non text) message is sent to it.
Steps to reproduce
Scaffold a new project with a bot and a messaging extension.
Run it (gulp serve) and use the message extension in the bot chat and post an adaptive card to the chat
Expected results
At least no errors in the console
Actual results
The following error is shown:
POST /api/messages 200 775 - 2.320 ms
  msteams [onTurnError]: TypeError: Cannot read property 'toLowerCase' of undefined +56s
POST /api/messages 200 - - 5.425 ms
(node:14462) UnhandledPromiseRejectionWarning: TypeError: Cannot perform 'set' on a proxy that has been revoked
    at Proxy.<anonymous> (/home/wictor/code/test/yoteams-test/node_modules/botbuilder-core/lib/turnContext.js:387:36)
    at Generator.next (<anonymous>)
    at fulfilled (/home/wictor/code/test/yoteams-test/node_modules/botbuilder-core/lib/turnContext.js:9:58)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(node:14462) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)

Project you experience issues with
generator-teams
generator version
3.1.1
build tools version
1.3.0
nodejs version
14.17.6
npm version
6.14.15
Operating system (environment)
Linux
Additional Info
No response

@wictorwilen did you try that with 3.5.0.?


natvis is broken

Natvis: C:\Users\Vinnie\src\boost\libs\json\include\boost\json\json.natvis(58,4): Warning: Unable to load a visualized preview for type 'boost::json::string' because the conditions of all  elements were false.
Natvis: C:\Users\Vinnie\src\boost\libs\json\include\boost\json\json.natvis(58,4): Warning: Unable to load a visualized preview for type 'boost::json::string' because the conditions of all  elements were false.
Natvis: C:\Users\Vinnie\src\boost\libs\json\include\boost\json\json.natvis(58,4): Warning: Unable to load a visualized preview for type 'boost::json::string' because the conditions of all  elements were false.

I don't think I've touched internal representation for any of the containers, and I definitely haven't touched the natvis file. So, I have to ask for a reproducible example.

well try inspecting any json::value

Hi. I am no expert but I have been trying to learn Boost JSON using VSCODE, The json.natvis file does not work but I think this is due to changes made to VSCODE. I have made change to the natvis file which are working for me although I could not test the kind::string+64 as I could not see how to initiate a value.
It seems VSCODE has broken how char array can be viewed so I have converted to a null terminated string.
Again I am no expert so I may be hacking rather than correcting the issue.
MPC.
PS I could not get rid of the pointers to the null terminated strings.
json.natvis.txt

So, you have a fix to at least some of the issues with the natvis file? That's great! Please create a PR.


RTP2

LGTM

In fact, no LGTM, see failing test. leavePresenceTimestamp isn't being set before you compare to it.

PTAL

LGTM


Hitting 'o' on a DataVariable may turn it into the wrong pointer type

Hitting 'o' on a DataVariable pointer that points into the middle of another DataVariable creates the wrong pointer type. If the pointer doesn't point into the start of a DataVariable it should either create a 'void*' or it should identify the array element (or struct field) and make the appropriate type. One reason to prefer 'void*' is that its 1) easier to implement 2) may be more universally accurate

Although the easy approach would yield far less informative results on large applications, I agree that it could in some cases be more accurate and the difficulty level would be significantly lower.


Allow only one active bottomsheet on android

On iOS there is only one possible active bottom sheet. On android there can be multiple stacked bottom sheets. Using not very elegant flag this PR fixes the issue by allowing only one bottom sheet to be visible.

Thank you, interesting. But why static ? Do you think there is potential memory leak?

Well I'm not really a java guy, so I wasn't sure whether it's a singleton, that's why static. I see it works with non static flag as well, I'll commit change asap

Thank you very much.


[crypto] Use Serde name for seeding

Motivation

(breaking) Make hash seeds more specification-friendly and tooling-friendly by using the Serde name instead of Rust qualified name. Typically, a struct Foo has seed: sha3_256("LIBRA::Foo") instead of sha3_256("some::rust::namespace::Foo@@$$LIBRA$$@@")

Add support for generics in derive macros CryptoHasher and LCSCryptoHash.

Add a unit test to verify that Serde names don't clash between corpuses (or rather when they do, the Serde format must be identical).

Test Plan
cargo x test -p libra-crypto -p generate-format

Related PRs
https://github.com/libra/libra/pull/3845
https://github.com/libra/libra/pull/3895

I suggest we add an explicit name attributes, the last thing you want is that to be source code dependent, that throw hitless refactoring out of the window!
Yucong Sun, Libra PE

From: David Isaac Wolinsky<EMAIL_ADDRESS>Sent: Wednesday, May 20, 2020 5:12:49 PM
To: libra/libra<EMAIL_ADDRESS>Cc: Yucong Sun<EMAIL_ADDRESS>Review requested<EMAIL_ADDRESS>Subject: Re: [libra/libra] [crypto] Use Serde name for seeding (#3954)
@davidiw approved this pull request.
sorry this fell off the radar. just a couple of nits.

In crypto/crypto/src/hash.rshttps://github.com/libra/libra/pull/3954#discussion_r428376588:

@@ -41,8 +41,8 @@
//! ```
//! use libra_crypto::hash::CryptoHash;
//! use libra_crypto_derive::{CryptoHasher, LCSCryptoHash};
-//! use serde::Serialize;
-//! #[derive(Serialize, CryptoHasher, LCSCryptoHash)]
+//! use serde::{Serialize, Deserialize};

maybe order alphabetically? otherwise it is rather unclear how we are ordering it

In crypto/crypto/src/hash.rshttps://github.com/libra/libra/pull/3954#discussion_r428376697:

@@ -62,16 +62,18 @@
//! For any new structure MyNewStruct that needs to be hashed, it is recommended to simply
//! use the derive macro CryptoHasher.
//!
-//! ignore -//! #[derive(CryptoHasher)] -//! struct MyNewStruct { -//!   ... -//! } +//!
+//! # use libra_crypto_derive::CryptoHasher;
+//! # use serde::Deserialize;
+//! #[derive(Deserialize, CryptoHasher)]

same comment on ordering

In crypto/crypto/src/hash.rshttps://github.com/libra/libra/pull/3954#discussion_r428376757:

@@ -109,7 +111,7 @@ use serde::{de, ser};
use std::{self, convert::AsRef, fmt, str::FromStr};
use tiny_keccak::{Hasher, Sha3};

-pub(crate) const LIBRA_HASH_SUFFIX: &[u8] = b"@@$$LIBRA$$@@";
+pub(crate) const LIBRA_HASH_PREFIX: &[u8] = b"LIBRA::";
haha, finally...
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHubhttps://github.com/libra/libra/pull/3954#pullrequestreview-415797270, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAJSYEEOPETDSQQANH2D4YDRSRWYDANCNFSM4NETPKMA.

@thefallentree

As you know, we are now logging Serde formats in unit-test-checked YAML files. The vision is that we will lock these files at some point to prevent a wide range of breaking changes in public-facing formats (including public-facing names).
Therefore, I believe it is both desirable and totally adequate to use Serde names for seeding hash function.

This PR solves the current issue that fully qualified Rust names are indeed implicit and not stable under refactoring.
From a security point of view, I'm also introducing new tooling to detect seed collisions based on the YAML files.

Yeah I'm sort of with @thefallentree on this one. While having a mechanism which you can derive is super useful, it makes things error prone during refactoring.

we need to discuss how to prevent accidental breaking changes .
As implemented, any refactoring would change the hash, right?

Can we be specific about the notion of "refactoring"?

Before this PR, changing the name of the struct OR any of the high-level namespaces (crate and modules) would silently change the seed.
After this PR, if you change the name of the struct or equivalently, add #[serde(rename = "something")], it will visibly change the format logged in the corresponding YAML file (by breaking the unit test).

@thefallentree, we share your sentiment, this is a huge step toward that direction. Furthermore, as @matbd stated, if someone changes the name of a struct or moves it, its hash would change. At least now, if they move it, its hash wouldn't change.
I believe the requested change was made due to a misunderstanding, please follow up by end of day.

Is this PR actually an breaking change as is? Does the name matches the old one?
I agree, it seems like we are able to avoid breaking changes by adding serde_rename tags , why not make this change hitless by adding the rename tag too ?
As being said, I'm not blocking this change to go through so we can make progress, but I want to note that every time we don't practice "breakage avoiding" we are just saying we can do "non breaking changes" , but not actually doing it.

I think at this point in time, we should avoid accumulating tech debt and instead favor breaking changes. This PR is fantastically simplifying the means that we do hashing and makes it easier to implement clients.
It should absolutely be a breaking change and push that direction or it will not achieve its goal.
Thank you for rescinding your "request changes".

After taking another look I misunderstood the goal of this PR. Fixing the hash see to the "name" of the struct vs the fully qualified path of the struct is a huge leap in the right direction. It does require that all structs are appropriately "named" though as renaming a struct without  using an appropriate #[serde(rename = "")] would also result in a hash change. But that is much better than what we currently have.
Sorry for the misunderstanding.

I updated the summary to clarify what is breaking in the PR. The longer explanation is that:

I removed the very long Rust-centric namespaces (e.g. network::network::v1::protocol::) from the salts. We could totally maintain them using #[serde(rename = ...)] but I'd have to inspect each definition manually and could still make a mistake (no unit tests on seeds before this PR).
I took this opportunity to further change the salting schema to use a clean looking LIBRA:: prefix instead of a funny looking @@$$LIBRA$$@@ suffix.
Deploying in test net will definitely require trashing the blockchain but I didn't find the value @@$$LIBRA$$@@ anywhere in the python Libra client (I suspect it is buried in the Rust/C library) so I suspect there is no extra work here.

:umbrella: The latest upstream changes (presumably ae789c3837f113c4e554d26ba7305636ceb85f73) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=davidiw

:pushpin: Commit 0ca6463 has been approved by davidiw

:lock: Merge conflict

:umbrella: The latest upstream changes (presumably a652a5d92a2e8a692e05fa42c57857ffb4cf9e34) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r+

:pushpin: Commit fc86849 has been approved by matbd

:hourglass: Testing commit fc868494716e3a7d16cb30ecb495c6d804b79a03 with merge ced2554a36f38d05b558c1c534f87b2498786fb3...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: matbd
Pushing ced2554a36f38d05b558c1c534f87b2498786fb3 to master...


Return projects to original paths to fix e2e build

The e2e build failures were due to the project path changes introduced by the feature work. This reverts the Simulation\Simulators.Core folder to Simulation\Simulators to fix e2e build.
This change is all file renames and path fixes, and has no changes to functionality.

/azp run

/azp run

There are some failures in iqsharp python tests that I think will require some work to fix. I'd like to get this PR merged up to the feature branch and tackle those in a separate one to make that work easier to review in isolation.


version 3.15.0 is vulnerable to stored xss

Describe your problem
I found a cross-site scripting attack on the new content creating page http://localhost:800/admin/new-content
it will execute the script in user context allowing the attacker to access any cookies or sessions tokens retained
by the browser.
Stored XSS, also known as persistent XSS, is the more damaging than non-persistent XSS. It occurs when a malicious script is injected directly into a vulnerable web application.
Steps to reproduce the problem

login into the Author user account

click on the new content like in that image

on that page click on the source code edit button

in the source code inject the xss payload like <script>alert("1")</script>

click save

view that page in new tab

xss alert message pop up

view the page source how it executed

Bludit version
V3.15.0
PHP version
PHP 8.2.4 (cli) (built: Mar 15 2023 15:27:52) (NTS)

May I ask what your view of the expected behavior is?
The way I see it, although I am not a security analyst, this could very well be expected behavior, when you insert code as author; expect it to be executed. Kind regards.

author(attacker) can create payload to send the request to create admin priviaged user in javascript. then the attacker send the link to the admin. if the admin click and open the link boom!! the admin privilaged user created.

Okay.


Encryption and Decryption

After reading code further I came to realize that private key is required to decrypt the license data, and to do that, we must ship application with both private and public keys. If thats the case, that encryption is not useful. Private key must remain with license generator only and for encrypting the data. The app on client side can decrypt with public key only. Thats the whole point of public and private keys.

Thanks for bringing this up! I understand your concern about including the private key with the application. However, the library is designed to use RSA for both encryption and digital signatures, each serving a different purpose in license management.
Here's how it works:

License Encryption: The license data is encrypted using the developer's public key. This ensures only we can generate valid licenses. Your application decrypts this data using the private key since it's standard for RSA to decrypt with private keys only.

License Signature: The license data is also digitally signed by the license generator using its own private key. Your application verifies this signature using the license generator's public key, ensuring the license's authenticity and integrity.

As a result, it requires access to the private key in order to decrypt. I am not sure if this is relevant to your point, but it appears that RSA does not permit private key encryption or signing, at least not as of the most recent commit.
I understand your point of view, but I tried to use a public key for decryption, but it looks like .NET cryptography doesn't allow it. To try to resolve this, I made some modifications to the codebase. If you have any suggestions for handling this case, I am open to discussing it.

A quick idea of this might work, I might have missed something.
 If you have the time, you can take a look at the code and tell if it needs any changes.

I quickly checked, it looks good. I have one question, LoadLicenseAsync() already did the license file verification, why further verify in ValidateLicenseAsync > ValidateLicenseOffline > ValidateStandardLicense > VerifyLicenseData ?
Also please add LicenseUtils.LoadLicensingSecrets(LicensingSecrets secrets);


Fixed #990 : Open FAQ in Chrome Custom Tab

Description

The FAQ is now opened in a chrome custom tab.
The FAQ Url is extracted as a string resource .
The FAQ Url is made non-translatable

Related issues and discussion
#990
Screen-shots, if any

merged, thanks @PrajwalM2212


Add segment analytics

We would like to understand usage of the extensions site, for a few reasons:

Get an extra indicator of Quarkus usage
Understand how valuable the extensions site itself is
Get an indicator of which extensions attract the most interest

Segment is being used elsewhere for Quarkus analytics, so we should use that. However, we want to make sure to use it in a privacy-preserving way. I think a cookie popup for such a simple, non-commercial, site would be a bad user experience.
We also don’t want to track users without consent, because that would be a GDPR violation. We don’t have any reason to track users; there’s some value in identifying unique users, but respecting user privacy and a good user experience is (IMO) more important.
I’ve looked at the https://github.com/segmentio/consent-manager, but it’s mostly for managing consent when there are multiple destinations, some functional, some marketing, etc. In our case we only have one destination. I wondered if I could bypass the dialog and just send back privacy-enforcing user settings, but I don’t think we’ll be doing the more advanced features that the consent covers.
There are a few things we can do

Honour do not track settings; ideally this blocks even loading the segment script.
Set IP addresses to <IP_ADDRESS>, to strip geographic information.
Set a new unique ID each time, so we don’t track repeat visits. This is possibly overkill, but it ensures we’re not sending or storing any PII.

I've ensured we don't track repeat visits using 'analytics.reset()`. We do store a cookie, but there's no PII in it, just a single-use anonymised ID.
The do not track support may not be effective, since browser support is patchy and the flag is deprecated - see https://caniuse.com/do-not-track. However, I can see Firefox has the UI elements and sets the flag, so I've implemented support and confirmed we bypass the whole script if do not track is set to true.
The IP address is harder to blank out, at least for page visits. I can see an IP address is being sent as a natural side effect of the request, but it looks like it's anonymised before storage in the segment dashboard, so I think it's ok.
Here’s an example of the data we’re sending:

{"timestamp":"2023-09-14T12:26:46.098Z","integrations":{},"anonymousId":"bf480227-2ac6-43c8-8ccc-2a037c35ccd1","type":"page","properties":{"path":"/io.quarkiverse.amazonservices/quarkus-amazon-dynamodb","referrer":"","search":"","title":"Amazon DynamoDB | Extensions","url":"http://localhost:8001/io.quarkiverse.amazonservices/quarkus-amazon-dynamodb"},"context":{"page":{"path":"/io.quarkiverse.amazonservices/quarkus-amazon-dynamodb","referrer":"","search":"","title":"Amazon DynamoDB | Extensions","url":"http://localhost:8001/io.quarkiverse.amazonservices/quarkus-amazon-dynamodb"},"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0","locale":"en-US","library":{"name":"analytics.js","version":"next-1.54.0"}},"messageId":"ajs-next-0c2b06c829fff5bf002e8f951a96a52f","writeKey”:”<“key>,”userId":null,"sentAt":"2023-09-14T12:26:46.100Z","_metadata":{"bundled":["Segment.io"],"unbundled":[],"bundledIds":[]}}

I'm not sure why the preview comment didn't appear, but for what it's worth, the preview is https://extensions-quarkus-pr--preview.surge.sh/extensions/io.quarkus/quarkus-agroal/. Secrets aren't passed to PRs, so the preview doesn't tell us all that much, except that I didn't do as good a job of sorting out the path prefix on #322 as I'd thought. Fonts and relative links are broken. So I'll go fix that.

That's because you sent the PR from a fork, it should work from a branch

That's because you sent the PR from a fork, it should work from a branch

Argh, that makes total sense ... except that on this repo, until #322, the preview was able to make comments. See, for example, https://github.com/quarkusio/extensions/pull/322#issuecomment-1719893601. #322 did touch the preview commenting logic, but only to add a /extensions.

Aha, yes - we got a 'close' comment on this PR, but it's not an edit of a previous comment. On #322 the 'close' comment was an edit of a previous comment ... so somehow #322 broke the commenting logic. I think because the PR preview runs as a separate process the branch-fork thing isn't a factor (the downside of how this repo does it is more verbose logic and more builds, the upside is we get comments except when I break them).

I see why #322 broke comments - the PR number got lost in the folder changes. Sigh. Will fix.


Select lightning talks and send out accept / reject notifications

The plan is to do this at the Tuesday speakers call, so please review the submissions before we meet.

I made a catalog
https://drive.google.com/open?id=0BxSvt4naKiIlQU9ET1djaEt0SUkof the 13
submissions.  Easier for me to review than the spreadsheet or google form.
I uploaded it into the speaker folder in case anyone wants to use it.
On Sat, Aug 26, 2017 at 6:13 PM, Jason Hibbets<EMAIL_ADDRESS>wrote:

Assigned #620 https://github.com/codeforraleigh/NCOpenPass/issues/620
to @zachambrose https://github.com/zachambrose.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/codeforraleigh/NCOpenPass/issues/620#event-1222632655,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQ6Ixnxx-Sr6wjf-Dm4mee8Paz9lkbwvks5scJh7gaJpZM4PDopr
.

--
Zach Ambrose
<EMAIL_ADDRESS>919-438-2752 (office)
919-616-9969 (cell)
www.AmbroseStrategy.com
https://www.linkedin.com/in/zambrose

8 acceptance, 1 rejection, 5 on hold sent out tonight - remainder will be in #638


Table header

Has a concept of a table header been explored for use with this component?

Can you elaborate on what the header would be used for?

Hey mate, thanks for the quick response. I will create a mock-up to help communicate the request, and maybe you can provide some thoughts.

It's kind of a special use case, so I think you'd be better off putting a div above the component with your header info, and doing the rest of the styling via a custom node renderer.


Flag for team if IA is submitted late

Is your feature request related to a problem? Please describe.
I'm frustrated when Assessors upload Independent Assessments late and I do not know.
Describe the solution you'd like
The assessor can put an assessment in late but it gets flagged on admin as past the due date entered by the team. The team get a notification and they can then choose to allow or deny the assessment - this would not appear to the assessor. Most extensions are agreed in advance so the team would go in check and then allow the late submission.
This would not apply to assessors wanting to change details, once an assessment has gone in and the deadline has passed they cannot change it and if there is something factually incorrect they need to raise this with the team.
Describe alternatives you've considered
The team not getting a notification or not allowing late submissions but we get so many late submissions this is not practical for both the assessor/candidate and the team.

I'm going to split this into two separate tickets:

UI changes in admin to call out late IAs
A digital platform ticket for a cloud function to send emails when a late IA is submitted

[ ] UI flag to show whether an IA is/was submitted late
[ ] UI option to allow/deny the late submission
[ ] Record decision in Store
[ ] Display decision in UI


[Blue-Green Bug Bash]

Repro steps:

Deploy with route-method as ingress
Promote the deployment

Current behaviour:

On promote, the ingress which is not a part of blue/green also gets applied [Internal run id:<PHONE_NUMBER>]

Expected behaviour:

Only the ingresses that are identified for blue/green should be applied.

Same is true for reject:


Change profiler dir to non-temporary in Keras TensorBoard callback

This is to fix the issue https://github.com/tensorflow/tensorflow/issues/49852.
Without the fix, the profiler dir will always be deleted for non-chief node under MWMS mode when Keras TensorBoard callback(https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/TensorBoard) is used.

@rchao

@burgerkingeater thanks for the PR! Is there some graph/text showing the profiling results from both chief and non-chief that you can share?

chief:

non-chief

@rchao  ^
please let me know if you have any feedback on this PR. thanks.

@rchao any more feedback?

@rchao anything i can help to get this merged?

@rchao kindly ping...

@rchao kindly ping...

Looks like there are test failures that are preventing this PR from getting merged. Can you check into them?

@rchao kindly ping...

Looks like there are test failures that are preventing this PR from getting merged. Can you check into them?

Actually, the failing tests seem to be internal.

@rchao the failing tests doesn't seem to be related to this change:
E.g one from https://source.cloud.google.com/results/invocations/d71b4c26-b055-42de-9f5f-9a42da6a8d75/targets/%2F%2Ftensorflow%2Flite%2Fkernels:test_delegate_providers_lib_test/log :
Execution platform: @local_execution_config_platform//:platform
Undefined symbols for architecture x86_64:
  "CreateNnApiFromSupportLibrary(NnApiSLDriverImplFL5 const*)", referenced from:
      tflite::StatefulNnApiDelegate::StatefulNnApiDelegate(NnApiSLDriverImplFL5 const*, tflite::StatefulNnApiDelegate::Options) in libnnapi_delegate.a(nnapi_delegate.o)
      tflite::StatefulNnApiDelegate::StatefulNnApiDelegate(NnApiSLDriverImplFL5 const*, tflite::StatefulNnApiDelegate::Options) in libnnapi_delegate.a(nnapi_delegate.o)
ld: symbol(s) not found for architecture x86_64

@gbaned can you help see what we should do to unblock the merge of this PR?

@gbaned kindly ping...

@gbaned kindly ping...

@burgerkingeater We are working on this PR internally. Thanks!

@gbaned any update? let me know if there's anything I can help.

@gbaned any update? let me know if there's anything I can help.

@burgerkingeater  It is processing internally, we will let you know if any help required from you. Thank you!

@gbaned any update on this?

This has been merged and can be in keras-team/keras repo. Marking this as closed.
https://github.com/keras-team/keras/commit/cb7cf4c255593fe773c9387787c9d232ceb88739


Add Audit Logs for all Important Actions

Is your feature request related to a problem? Please describe.
Audit logs are only added for Stripe Payments and Authentication Success or Failures. Adding audit logging for all other relevant actions is useful.
Describe the solution you'd like
Add audit logging for; Administrator Actions and user logging in.

Added logging administrator actions related to user, and administrator actions related to comments.


Rime_depolyer.cc Update help texts

Improve depolyer's help texts.
It now follows conventions of man pages. [] <>
Now users may manually deploy without confusion.
New
Usage:
	--add-schema [schema_id] ...
		Add one or more schema_id to the schema_list in default.custom.yaml

	-build [user_data_dir] [shared_data_dir] [built_target_dir]
		Manually build & deploy, the dirs have to be specified.
		For linux, the default dirs are
		[user_data_dir]     ~/.config/ibus/rime/
		[shared_data_dir]   /usr/share/rime-data/
		[built_target_dir]  ~/.config/ibus/rime/build

	--compile [x.schema.yaml] <user_data_dir> <shared_data_dir> <built_target_dir>
		Manually compile a schema's .dict file.

	--set-active-schema [schema_id]
		Modify previously_selected_schema in user.yaml

Old:
options:
        --build [user_data_dir shared_data_dir staging_dir]
        --add-schema schema_id [...]
        --set-active-schema schema_id
        --compile x.schema.yaml [user_data_dir shared_data_dir staging_dir]

Thanks for the pull request. The idea is great!
I may have to change the wording to better match the intended use.

Sure, change whatever you think is more accurate :)

Commit after edit: https://github.com/rime/librime/commit/809d6be0705fd2ab4aa2ace49bb89ae8033d8c2e

Commit after edit: https://github.com/rime/librime/commit/809d6be0705fd2ab4aa2ace49bb89ae8033d8c2e


Unhandled Promise Rejection: SecurityError: The operation is insecure.

Hi,
Using the last release 1.4.1, I still experienced the following error in all browsers (Safari, Edge + Chrome).
window.getImage = function() {
html2canvas(document.body,{allowTaint:true,useCORS:true}).then(function(canvas) {
var convertedImage = canvas.toDataURL(); // !!! SecurityError !!!
...
});
}
Here the HTML file used (did a save as in Safari).
ConservaWIN.html.zip
Thank you.

Feel free to try using html2canvas-pro v1.5.7 or the most recent version. :smile:, html2canvas-pro has merged #2911 to fix this issue.

Wow, great job!
Thank you very much. I don't think this repository is maintained anymore.

Feel free to try using html2canvas-pro v1.5.7 or the most recent version. 😄, html2canvas-pro has merged https://github.com/niklasvh/html2canvas/pull/2911 to fix this issue.

I stumbled across this thread after hours and hours of debugging with the svg's rendering incorrectly (and this security error). Tried many things, but changing html2canvas->html2canvas-pro solved it all seamlessly. ty you saved me 🙏. I wish I found this sooner


feat(gulp-paeckchen): initial version of gulp plugin

belongs to #148

Coverage decreased (-2.07%) to 97.928% when pulling 9773ad70e3840ac43c64a960dc0a6eab1db0c115 on gulp/plugin into d83f5492eebeddef74711afba553ab984583f08a on master.

Coverage decreased (-1.1%) to 98.904% when pulling cfddaf344c180e2dcd35ebc1a575bd9a34edf6c7 on gulp/plugin into d83f5492eebeddef74711afba553ab984583f08a on master.

Coverage decreased (-0.3%) to 99.73% when pulling 94eab419881bdfd834dff9f11cf8d1d62fcf8513 on gulp/plugin into d6d77be2843e668db861c0c27915d55ae1632cfa on master.

Coverage remained the same at 100.0% when pulling 0dcee6d094d8e752c7e1c9c8fcd8c127e602743e on gulp/plugin into d6d77be2843e668db861c0c27915d55ae1632cfa on master.

Coverage decreased (-0.7%) to 99.341% when pulling 98cf30a223a09ed6288d2aadb05911e92144d9c8 on gulp/plugin into d6d77be2843e668db861c0c27915d55ae1632cfa on master.

Coverage remained the same at 100.0% when pulling 175aede9b310559fb3c8a29622163c3772292a36 on gulp/plugin into d6d77be2843e668db861c0c27915d55ae1632cfa on master.


Fix nodejs test server

Apparently nobody tried to run tests in the browser for almost 1 1/2 years. Fixed paths and dependency APIs.

True, I personally only ever run the cli version, as does Travis..  thanks! :D


Revert "Fix(CSiBridge): remove objs ref"

This has been fixed in the latest dev branch while doing the monorepo cleanup and the change now conflicts with the dev branch.
If this is the way CSIBridge has always been shipped, I saw we just wait 1 release cycle and it will fix itself with no conflicts 🙌🏼
That is, unless it was removed for a specific reason on 2.13.0-rc3

I'm merging this in now that we've released 2.13 stable.


NetworkManager.OnStopClient be called twice

Describe the bug
When i call NetworkManager.StopClient Or StopHost, OnStopClient will be called twice.
[IMPORTANT] How can we reproduce the issue, step by step:
Just StartHost and StopHost(or StopClient).
Expected behavior
OnStopClient just be called once.
Additional context
I use Debug.Log to check the call stack.
First:
NetworkManager OnStopClient UnityEngine.Debug:Log (object) NightWerewolf.WolfNetworkManager:OnStopClient () (at Assets/NightWerewolf/Scripts/WolfGame/WolfNetworkManager.cs:68) Mirror.NetworkManager:StopClient () (at Assets/Mirror/Runtime/NetworkManager.cs:604)
Second:
NetworkManager OnStopClient UnityEngine.Debug:Log (object) NightWerewolf.WolfNetworkManager:OnStopClient () (at Assets/NightWerewolf/Scripts/WolfGame/WolfNetworkManager.cs:68) Mirror.NetworkManager:StopClient () (at Assets/Mirror/Runtime/NetworkManager.cs:604) Mirror.NetworkManager:OnClientDisconnect (Mirror.NetworkConnection) (at Assets/Mirror/Runtime/NetworkManager.cs:1286) NightWerewolf.WolfNetworkManager:OnClientDisconnect (Mirror.NetworkConnection) (at Assets/NightWerewolf/Scripts/WolfGame/WolfNetworkManager.cs:63) Mirror.NetworkManager:OnClientDisconnectInternal () (at Assets/Mirror/Runtime/NetworkManager.cs:1187) Mirror.NetworkClient:OnTransportDisconnected () (at Assets/Mirror/Runtime/NetworkClient.cs:429) Mirror.LocalConnectionToServer:Disconnect () (at Assets/Mirror/Runtime/LocalConnections.cs:163) Mirror.NetworkClient:Disconnect () (at Assets/Mirror/Runtime/NetworkClient.cs:244) Mirror.NetworkManager:StopClient () (at Assets/Mirror/Runtime/NetworkManager.cs:609)

Already fixed in #2953 for next release.

Already fixed in #2953 for next release.

When will the next release be released?


Publising PyPXE to pip

I wanted to use PyPXE in my project but I was kinda suprised that I did not found this lib in PIP index.
Is this lib some other usage method that I was not aware?

There's no particular reason this project is not on PIP as far as I know. I'm not 100% sure how pip works but you should just be able to clone the repo and pip install . to achieve the same results.

Well I can make some pull request to add some makefile which I usa3ally use<PHONE_NUMBER> 9i9n 4my projects if this is all right4 for you?

We already have a setup.py for building and installing. What do you wish to add?

Something like this makefile

I don't think we particularly need that, as the setup.py script can be used manually. @mmattioli comments?

Well to bo honest, I will integrate this lib in to my project and pxe will be the main service, so I want to become contributor for making more extensive docs for this project since I want to fully understand pxe specs. and this project.

@urosjarc I'm not entirely sure how adding a makefile or making any of the changes you're proposing help you with what you're looking to achieve; can you elaborate on why the setup.py file does not work for you?

Hm, I made a confusion with my thoughts. Lets forget about makefile and focus to solve this issue. Can you guys upload this lib to pip index.
python setup.py sdist
python setup.py bdist_whee
twine upload dist/*

https://pypi.python.org/pypi/PyPXE


Using Search adds an extra space at the top of the editor

VSCode Version: 1.16.1
OS Version: Windows 7 x64

Steps to Reproduce:

Open any file and stay at the top
Press 'CTRL + F' (search)

Reproduces without extensions: Yes

With code --disable-extensions

Dup of https://github.com/Microsoft/vscode/issues/28390


Merge ServiceBinding project into Configuration.CloudFoundry

Description
This PR merges the Steeltoe.Configuration.CloudFoundry.ServiceBinding contents into the Steeltoe.Configuration.CloudFoundry project/package. Furthermore, it renames the *.ServiceBinding namespace to *.ServiceBindings (pluralized). For Kubernetes, the separate project remains, but it is also renamed to plural form, because it implements the Service Bindings for Kubernetes specification.
Additionally, this PR reverts the dynamic loading of the Steeltoe.Configuration.CloudFoundry dependency in Steeltoe.Discovery.Eureka, which was introduced in #1350. The rationale is that Cloud Foundry is the primary reason Steeltoe exists and the dependency is very lightweight. What hasn't changed is that users still need to call both AddCloudFoundry() and AddCloudFoundryServiceBindings() where appropriate, because the latter is not lightweight enough to automatically include it when AddCloudFoundry() is called.
Quality checklist

[x] Your code complies with our Coding Style.
[x] You've updated unit and/or integration tests for your change, where applicable.
[ ] You've updated documentation for your change, where applicable.
If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.
[ ] There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
[ ] You've added required license files and/or file headers (explaining where the code came from with proper attribution), where code is copied from StackOverflow, a blog, or OSS.

/azp run Steeltoe.All


Create issue template

[x] Create github issue's template for adequating the project to the recommended community standards

I just add markdown files to the .github/ISSUE_TEMPLATE/ directory. I reference them by adding ?template=filename.md to the new issue URL. I make using a standard template (.github/ISSUE_TEMPLATE.md) with a list of your available templates. just click on which template you want.

Looks great! Gonna try and see if anything is missing as the recommended community standard is still not identified by github


Proxy support for ServicePrincipalCredentials

My azure-sdk-python version is 2.0.0rc5, I cannot find a way to pass proxy configuration into ServicePrincipalCredentials class explicitly, and maybe other xxxxCredentials. I found #800 which says I can use Adal to archive it, the doc http://azure-sdk-for-python.readthedocs.io/en/latest/quickstart_authentication.html#using-adal didn't mention any proxy related usage, and I checked the latest code, there is also no way to pass a proxy into the AuthenticationContext class.
My workaround now is extend the ServicePrincipalCredentials class and override the set_token() .
If I'm wrong, please clarify the documentation. Thanks a lot.

@yugangw-msft is there a way to do that with ADAL?

ADAL doesn't have any particular logics for proxy. Like mentioned in https://github.com/Azure/azure-sdk-for-python/issues/800, configuring the http/https_proxy environment variables should just take care of it. I have verified using fiddler on windows and mitmproxy on osx, the adal worked pretty fine. But I don't think I am a expert still, please elaborate if using the environment variables doesn't work out.


Add social network identifier for mastodon

Would be great if linking to a mastodon account would be as easy as linking to one of the other social networks.

Good call!


Need published paper

Do you have published papers presenting these algorithms？Thanks！

https://doi.org/10.48550/arXiv.2305.06537

Thanks！


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-main" workflow

Codecov Report

Merging #76 (15b88ae) into main (21699f4) will decrease coverage by 3.90%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #76      +/-   ##
==========================================
- Coverage   71.99%   68.09%   -3.91%
==========================================
  Files           4        3       -1
  Lines         457      351     -106
  Branches       28        0      -28
==========================================
- Hits          329      239      -90
+ Misses         94       78      -16
  Partials       34       34

Flag
Coverage Δ

cdk
?

go-lambda
68.09% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/index.ts

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 21699f4...15b88ae. Read the comment docs.


PP-1717 Genarate externalId only when needed

Removed random exteranlId generation from JsonNode: we must ignore JsonNode externalIds (coming from clients) when creating User object
Generate externalIds using Java

rebuild


I would imagine the warnings are triggered by the precompilation?

Sure, but I'm curious why it's an issue. shrugs


automatically remove element from collection after remove()

It feels like optionally automatically removing an element from the collection after calling remove() would be useful behaviour, as would automatically adding the returned element to the collection after calling post(...) or customPOST(...).
Was it a concious design choice not to implement this behaviour?

Seems to me like it could've been omitted. It seems quite reasonable to have collection refreshed (especially table list) when item is deleted. I am adding that to features list.

:+1:

I gave this a +1 for the remove case, and just came across it again for post, so here is another:
:+1:


Build related fixes

Thanks for the PR @kraj. We switched to CMake as well as some other changes that fix the issues in this PR.

@cmumford  I hope the CMake transition helped the logic detecting SSE to be x86 specific as done in first patch.

The code that cares about your SSE support is now in google/crc32c.

Thanks @pwnall


http: fully close streams on remote close in AsyncClient

Description: The rest of Envoy currently drops stream state on remote closure, regardless of the state of local closure. Where necessary, pending local send calls are also silently swallowed. This updates the AsyncStreamImpl in Http::AsyncClient to also conform to this behavior, which makes things consistent and prevents half-closed streams from crashing the server.
Risk Level: moderate - but this behavior is already followed everywhere else
Testing: compiled and tested locally
Signed-off-by: Mike Schore<EMAIL_ADDRESS>

Added tests that cover:

streams are bi-directionally closed after receiving a complete response
sendData or sendTrailers do not get propagated after closure

(2) is what ultimately triggers a crash in the router.

thanks @mattklein123!


Proper API for working with frames

Hi,
I'd like to contribute a new API for working with frames (it can be done for e.g. 2.5):

Session#switch_to_frame(:top_level)
Session#switch_to_frame(:parent) (switch_to.parent_frame will be added in Selenium-Webdriver 2.43)
Session#switch_to_frame(element) (element is Capybara::Node::Element)
Session#within_frame(element)

Old within_frame(frame_handle) where "frame_handle" is passed to the driver (and in reality can be not only handle but also something else) will be deprecated like it was done with within_window.
Please approve.

Did this new API ever get merged in?  I need the #switch_to_frame methods.

@jtrupiano I don't think so. Ended up here as proposal

@route thanks for the reply.  A question for you (and the lurkers) regarding the following situation.  I am directly working with Session instances (no naked calls to #within_frame, etc).  I have scenarios where I want to observe the same behavior when a request comes directly from the browser vs. when the request is loaded into an iframe on another page.  So in my test code, I want a "handle" of sorts to the top level Session-like object.  In other words, something like this...
# return an object that behaves like Session that is scoped to an embedded iframe (if necessary)
def get_root(session)
  if session.has_css?('iframe#MyFrame')
    return session.get_iframe('iframe#MyFrame') # should behave like a Session
  else
    return session
  end
end

root = get_root(session)
root.fill_in 'Name', 'John'
root.submit # etc

This is admittedly stripped down for illustrative purposes, but I want to re-use all of that code after the call to #get_root as if it were unaware that it were happening within an iframe.  So what's the recommended way to get a pointer/handle to the iframe that either is or behaves like a Session?

I'm a little out of context but why you cannot use within_frame even if you manage session yourself? So basically it pushes an iframe to the stack and when block ends pops it.

I don't understand how to do that.  #within_frame doesn't yield a root-level "Session-like" object for me to work with (or does it??).
session = Capybara::Session.new(Capybara.current_driver)
session.visit "http://something.com"
session.within_frame('iframe#MyFrame') do
  # how would I invoke anything on that iframe from here?
  fill_in 'Name', 'John' # this will throw an error because I'm managing session myself
end

What am I missing / not understanding?

I haven't tried and can be mistaken
session = Capybara::Session.new(Capybara.current_driver)
session.visit "http://something.com"
session.within_frame('iframe#MyFrame') do
  # how would I invoke anything on that iframe from here?
  session.fill_in 'Name', 'John'
end

Oh I get it now.  #within_frame actually alters the state of the variable session.  That's what I was missing.  Thanks for helping me think through this, @route.
btw I'd still be happier if I had #switch_to_frame :)

@jtrupiano No problem ;)

Driver authors please look at PR #1722 and give relevant feedback

Closed via PR #1803


Create static/example for transforming inbound/outbound audio streams

Copy static/example/local.html and create a proof-of-concept prototype that demonstrates transforming inbound/outbound audios stream with Web Audio API. Reading Basic concepts behind Web Audio API is recommended.
Create 1-3 basic controls that change the transform(s) in real-time.

@ryanrolds Thanks

@tsmada did a great job implementing this, #15


Import rows colored

Problem
Import type data (i.e. skip, update, etc.) not easily visible in import table.
Solution
Use css classes and colors to better visualize rows with various import types.
Acceptance Criteria
No new tests needed. This change adds new styling to the import table.

Coverage remained the same at 95.659% when pulling bdaa2cedd2f6b92cdbe2aff31a1bf0fb2543563a on adibo:feature-import-rows-colored into 77816e4e6ee85b82e44d0769e37c76b0f948fcdf on django-import-export:master.

Coverage remained the same at 95.659% when pulling bdaa2cedd2f6b92cdbe2aff31a1bf0fb2543563a on adibo:feature-import-rows-colored into 77816e4e6ee85b82e44d0769e37c76b0f948fcdf on django-import-export:master.

Hi! Here is a screen shot.
Any suggestions to changes regarding color definitions are welcome.