post_message migration [Issue #772]

**  Still working on getting the tests passing :)  **
Resolves: Issue https://github.com/hyperledger/aries-vcx/issues/772 - Move out post_message to shared_vcx
Short Summary

Migrated httpclient.rs file to shared_vcx directory
The issue requested that the post_message() function be moved, but there were other items within httpclient.rs that post_message() depended upon.
aries-vcx is successfully compiling with the changes provided.

Note: This is a new branch created from the work previously pushed to my fork's main (which has since been reset to sync w/ aries-vcx upstream repo).
Old PR: https://github.com/hyperledger/aries-vcx/pull/790

Codecov Report

Merging #801 (f43b8e2) into main (f477a95) will decrease coverage by 8.98%.
The diff coverage is 10.40%.

:exclamation: Current head f43b8e2 differs from pull request most recent head aab01ae. Consider uploading reports for the commit aab01ae to get more accurate results

@@            Coverage Diff             @@
##             main     #801      +/-   ##
==========================================
- Coverage   54.18%   45.20%   -8.98%
==========================================
  Files         381      383       +2
  Lines       36787    32714    -4073
  Branches     8300     7241    -1059
==========================================
- Hits        19932    14788    -5144
- Misses      10702    13421    +2719
+ Partials     6153     4505    -1648

Flag
Coverage Δ

unittests-aries-vcx
45.20% <10.40%> (-8.88%)
:arrow_down:

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

Impacted Files
Coverage Δ

agency_client/src/errors/mapping_sharedvcx.rs
0.00% <0.00%> (ø)

agency_client/src/internal/messaging.rs
40.13% <0.00%> (-2.93%)
:arrow_down:

agency_client/src/lib.rs
64.70% <ø> (ø)

aries_vcx/src/errors/mapping_diddoc.rs
0.00% <0.00%> (ø)

aries_vcx/src/utils/mod.rs
51.85% <0.00%> (-8.15%)
:arrow_down:

diddoc/src/errors/error.rs
22.22% <ø> (-22.23%)
:arrow_down:

diddoc/src/errors/mapping_sharedvcx.rs
0.00% <0.00%> (ø)

shared_vcx/src/errors/error.rs
22.22% <ø> (+22.22%)
:arrow_up:

shared_vcx/src/http/httpclient.rs
20.75% <0.00%> (ø)

shared_vcx/src/testing/mocking.rs
3.84% <3.84%> (ø)

... and 1 more

... and 174 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Hi @Andy-Waine some big changes has been merged, feel free to rebase now and we can drive this PR to completion together

I am closing this per inactivity, if you'd like to continue in work, feel free to reopen the PR


Update ManualMocks.md

fixed a typo in the file name

Summary

Test plan

/easycla

Thanks! Could you update the versioned docs as well?


Background image position

I'm using HTML-Sketchapp CLI and have this strange bug, where all images are consistently offset by almost 50px.

I'm using CSS background image.
Has anyone seen this before, or can provide any clues?
Is this aa HTML-Sketchapp or HTML-Sketchapp CLI issue?

Hey 👋Thanks for reporting! This is not a known bug and we will need a bit more of your help to confirm it:

Which version of html-sketchapp-cli are you using? (we have to figure out which html-sketchapp version we are talking about here)
Can you provide HTML/CSS code for a minimal example that breaks? (we have to reproduce the bug to confirm, triage and fix it)

I have also had this issue but I've managed to pin down the cause.
background-position: center doesn't work correctly. Using background-position: 0 0 or top left will remedy your problem @loliver @LincMitch @kdzwinel


Fix: PgUp and PgDown performance

PgUp and PgDown is functional, but is not very efficient.
Reimplement those functions to improve performance.

This is fixed now.


Crash when parsing couchbase.log (Chronicle config)

In MB-60941 promtimer crashes when parsing the couchbase.log as it finds unicode characters in the couchbase.log (see 7.2-stable_server.zip attached to the ticket).
steve.watanabe<EMAIL_ADDRESS>$ grep last_seen couchbase.log
{{node,'ns_1@<IP_ADDRESS>',{"secondTestBucket",last_seen_collection_ids}},{[2,8,9],{<<"acd7cade5586ac264398f5ee0ab36202">>,647}}},
{{node,'ns_1@<IP_ADDRESS>',{"default",last_seen_collection_ids}},{"�$Q",{<<"acd7cade5586ac264398f5ee0ab36202">>,1016}}},
{{node,'ns_1@<IP_ADDRESS>',{"secondTestBucket",last_seen_collection_ids}},{[2,8,9],{<<"acd7cade5586ac264398f5ee0ab36202">>,648}}},
{{node,'ns_1@<IP_ADDRESS>',{"secondTestBucket",last_seen_collection_ids}},{[2,8,9],{<<"acd7cade5586ac264398f5ee0ab36202">>,649}}},
{{node,'ns_1@<IP_ADDRESS>',{"default",last_seen_collection_ids}},{"�$Q",{<<"acd7cade5586ac264398f5ee0ab36202">>,1017}}},
{{node,'ns_1@<IP_ADDRESS>',{"default",last_seen_collection_ids}},{"�$Q",{<<"acd7cade5586ac264398f5ee0ab36202">>,1018}}},
Running promtimer results in
$ xpromtimer
Traceback (most recent call last):
File "/Users/steve.watanabe/promtimer/bin/../promtimer/promtimer.py", line 441, in
main()
File "/Users/steve.watanabe/promtimer/bin/../promtimer/promtimer.py", line 381, in main
buckets = stats_sources[0].get_buckets()
File "/Users/steve.watanabe/promtimer/promtimer/cbstats.py", line 201, in get_buckets
self._config = parse_couchbase_log(self._cbcollect_dir)
File "/Users/steve.watanabe/promtimer/promtimer/cbstats.py", line 760, in parse_couchbase_log
config = parse_couchbase_chronicle(cbcollect_dir)
File "/Users/steve.watanabe/promtimer/promtimer/cbstats.py", line 728, in parse_couchbase_chronicle
for full_line in file:
File "/Users/steve.watanabe/.pyenv/versions/3.10.13/lib/python3.10/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa3 in position 2677: invalid start byte
Based on web searching changing the open from 'r' to 'rb' gets past this but I'm not sure what side effects this has so am opening a ticket to track.
def parse_couchbase_chronicle(cbcollect_dir):
logging.debug('parsing couchbase.log (Chronicle config)')
bucket_list = ''
with open(path.join(cbcollect_dir, 'couchbase.log'), 'rb') as file:

Hi Steve - Vesko just pushed a PR on that and I merged earlier this morning. https://github.com/couchbaselabs/promtimer/pull/76. So should be resolved.


Error Installation

I always get this error, on Ubuntu 22.04 with Python 3.10.4
`python3 -m pip install pyimg4
Defaulting to user installation because normal site-packages is not writeable
Collecting pyimg4
Using cached pyimg4-0.6.3-py3-none-any.whl (11 kB)
Requirement already satisfied: click<9.0.0,>=8.0.0 in /usr/lib/python3/dist-packages (from pyimg4) (8.0.3)
Collecting pyliblzfse<0.5.0,>=0.4.1
Using cached pyliblzfse-0.4.1.tar.gz (47 kB)
Preparing metadata (setup.py) ... done
Collecting asn1<3.0.0,>=2.5.0
Using cached asn1-2.6.0-py2.py3-none-any.whl (9.8 kB)
Collecting pycryptodome<4.0.0,>=3.14.1
Using cached pycryptodome-3.15.0-cp35-abi3-manylinux2010_x86_64.whl (2.3 MB)
Collecting pylzss<0.4.0,>=0.3.1
Using cached pylzss-0.3.1.tar.gz (25 kB)
Preparing metadata (setup.py) ... done
Collecting enum-compat
Using cached enum_compat-0.0.3-py3-none-any.whl (1.3 kB)
Building wheels for collected packages: pyliblzfse, pylzss
Building wheel for pyliblzfse (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [10 lines of output]
running bdist_wheel
running build
running build_ext
building 'liblzfse' extension
creating build
creating build/temp.linux-x86_64-3.10
creating build/temp.linux-x86_64-3.10/lzfse
creating build/temp.linux-x86_64-3.10/lzfse/src
x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Ilzfse/src -I/usr/include/python3.10 -c lzfse/src/lzfse_decode.c -o build/temp.linux-x86_64-3.10/lzfse/src/lzfse_decode.o -std=c99
error: command 'x86_64-linux-gnu-gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pyliblzfse
Running setup.py clean for pyliblzfse
Building wheel for pylzss (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
running bdist_wheel
running build
running build_ext
building 'lzss' extension
creating build
creating build/temp.linux-x86_64-3.10
x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I./include -I/usr/include/python3.10 -c pylzss.c -o build/temp.linux-x86_64-3.10/pylzss.o
error: command 'x86_64-linux-gnu-gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pylzss
Running setup.py clean for pylzss
Failed to build pyliblzfse pylzss
Installing collected packages: pylzss, pyliblzfse, enum-compat, pycryptodome, asn1, pyimg4
Running setup.py install for pylzss ... error
error: subprocess-exited-with-error
× Running setup.py install for pylzss did not run successfully.
│ exit code: 1
╰─> [10 lines of output]
running install
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_ext
building 'lzss' extension
creating build
creating build/temp.linux-x86_64-3.10
x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I./include -I/usr/include/python3.10 -c pylzss.c -o build/temp.linux-x86_64-3.10/pylzss.o
error: command 'x86_64-linux-gnu-gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> pylzss
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
`

Install build-essential with APT.


[OCP-4.X] Implement docs directory with install for each Cloud provider implemented

We need docs to accurate describe how to run the installer for each implemented cloud provider.

Addressed by #30

#30 is merged now


Error 'ERR_DLOPEN_FAILED' in portable mode

Does this issue occur when all extensions are disabled?: Yes

VS Code Version:  1.79.2
OS Version: W10

I try to install VSCODE in portable mode using this guide :
https://code.visualstudio.com/docs/editor/portable
But code.exe never launch and throw a ERR_DLOPEN_FAILED error.
C:\Apps\VSCode-win32-x64-1.79.2>Code.exe --disable-extensions

C:\Apps\VSCode-win32-x64-1.79.2>
Loading "@vscode/policy-watcher" failed
Error: Module did not self-register<EMAIL_ADDRESS>    at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1822)
    at Module._extensions..node (node:internal/modules/cjs/loader:1273:18)
    at Object.func [as .node] (node:electron/js2c/asar_bundle:2:2049)
    at Module.load (node:internal/modules/cjs/loader:1058:32)
    at Module._load (node:internal/modules/cjs/loader:893:12)
    at f._load (node:electron/js2c/asar_bundle:2:13330)
    at Module.require (node:internal/modules/cjs/loader:1082:19)
    at C (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:647)
    at bindings (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\node_modules.asar\bindings\bindings.js:112:48)
    at Object.<anonymous> (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\node_modules.asar\@vscode\policy-watcher\index.js:6:44)
    at l._compile (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:1257)
    at Module._extensions..js (node:internal/modules/cjs/loader:1243:10)
    at Module.load (node:internal/modules/cjs/loader:1058:32)
    at Module._load (node:internal/modules/cjs/loader:893:12)
    at f._load (node:electron/js2c/asar_bundle:2:13330)
    at Module.require (node:internal/modules/cjs/loader:1082:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at r (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:6:98)
    at n.load (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:1637)
    at f.load (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:4:13573)
    at l (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:6:9301)
    at Object.errorback (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:6:9420)
    at f.triggerErrorback (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:4:13867)
    at C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:4:13618
    at n.load (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:1654)
    at f.load (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:4:13573)
    at l (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:6:9301)
    at h._loadModule (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:6:9429)
    at h._resolve (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:7:452)
    at h.defineModule (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:6:5524)
    at g (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:7:1741)
    at w (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:2448)
    at Object.<anonymous> (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\vs\code\electron-main\main.js:42:58279)
    at Object.<anonymous> (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\vs\code\electron-main\main.js:92:1735)
    at n._createAndEvalScript (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:2492)
    at C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:2133
    at C (C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:3921)
    at C:\Apps\VSCode-win32-x64-1.79.2\resources\app\out\main.js:5:3988
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  code: 'ERR_DLOPEN_FAILED',
  phase: 'loading',
  moduleId: '@vscode/policy-watcher',
  neededBy: [ 'vs/platform/policy/node/nativePolicyService' ]
}
Here are the modules that depend on it:
[ 'vs/platform/policy/node/nativePolicyService' ]
[16108:0711/102350.050:ERROR:gpu_init.cc(523)] Passthrough is not supported, GL is disabled, ANGLE is

It looks like issue #145220
Steps to Reproduce:

Download VSCode.zip
Add 'data' folder at root of your portable installation
Run using Code.exe --disable-extensions

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.80.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

I can't reproduce.
Does the file exist in disk<EMAIL_ADDRESS>Do you have an anti-virus program installed?

vscode-policy-watcher.node exist at this path.
I have my corporate anti-malware but it don't show popup (as usual when it prevent content loading).

Problem solve without action.


I keep getting this issue with Android:  Build failed with an exception javax/xml/bind/JAXBException

Hi, I tried to implement fastlane for android and I keep getting the following issue when I run assemble gradle task from terminal using the command fastlane internal.
Build failed with an exception javax/xml/bind/JAXBException
How can I solve this? Any help will be appreciated.
My Java Version is 12.0.2
Fastlane version  is 2.141.0
# Ensure that your git status is not dirty
    ensure_git_status_clean

    gradle(
      task: "clean assemble",
      flavor: "qa",
      build_type: "release"
    )

    upload_to_play_store(track: 'internal')
    notification(subtitle: "Successfully distributed a new internal build",
                 message: "Successfully distributed a new internal build")

Stack

Key
Value

OS
10.14.6

Ruby
2.7.0

Bundler?
false

Git
git version 2.21.1 (Apple Git-122.3)

Installation Source
~/.rvm/gems/ruby-2.7.0-preview1/bin/fastlane

Host
Mac OS X 10.14.6 (18G95)

Ruby Lib Dir
~/.rvm/rubies/ruby-2.7.0-preview1/lib

OpenSSL Version
OpenSSL 1.1.1d  10 Sep 2019

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
11.3.1

Please do not delete the issue template. We need the information we are asking for, to understand what is going on. In your case for example, we have no idea what exactly is failing where and why.

I solved the issue. This is how I solved it. It has all to do with Java version installed on the macbook. I had to reconfigure Java to 1.8
Setup Java:

There maybe a chance that your java setup may not allow you to build the app
Follow this tutorial

Deployment:
In order to deploy, simply run the commands in the terminal below:

jenv versions to make sure that you have the correct package. It should be something like this, openjdk64-1.8.0., but not exactly.
If not, please do a command to select that package jenv shell openjdk64-1.8.0. Again the command is not going to be exact. Depends on the package number but it should be along the version 1.8.0
jenv versions check again to see if you have selected it


Hibernation is possible?

After upgrade to Mojave , and install wifi+bluetooth card , I cannot boot after hibernation ("No bootable devices") , I try stricthibernate option  and rtchibernateaware in clover. Earlier in High Sierra sleep not turned to hibernate mode.

You might want to check and alternatively update your hibernation settings. Please first provide the output of:
pmset -g

I'm try hibernate mode 25 , 0 and 3 , after long sleep notebook is power off (no led indication power button) .
Dual-boot system (windows+Mojave)
System-wide power settings: Currently in use:  lidwake              1  autopoweroff         1  standbydelayhigh     10800  autopoweroffdelay    28800  proximitywake        1  standby              1  standbydelaylow      10800  ttyskeepawake        1  hibernatemode        0  powernap             1  gpuswitch            2  hibernatefile        /var/vm/sleepimage  Standby Battery Threshold 50  womp                 1  displaysleep         10  networkoversleep     0  sleep                0  tcpkeepalive         1  halfdim              1  acwake               0  disksleep            10

@TD-BopoH Hi, you can try replace the BOOT and CLOVER folders in v1.2.8 release completely at first.(delete and copy) Because you have inserted wifi+bluetooth card, you can try to uninstall the card and then check the hibernation result. I am pretty sure v1.2.8 release have good hibernation.

I'm try fresh installing os , and latest EFI v1.3.2, with USBPorts-SolderBT.kext and without this kext ,upgrade bios from 603 to 906 , apply patch from DVMT_and_0xE2_fix (with edit clover.plist from readme)  , with hibernation mode 25 not success after hibernation ("No bootable devices"). have one ssd with windows and Mojave.

Could you paste your Clover folder? I have the same setup, but I never have these kinds of issue.

EFI.zip
with update BIOS I updated ME too

After add manually entry In boot (uefi shell) clover , I have problem with switching to microsoft Closing the lid shuts laptop down & goes to Windows #109
I try remove microsoft folder in EFI , after hibernation boot to clover (not resume to hibernation - soft reset)
Info from AppleIntelInfo.kext
CFG Lock............................. : 0 (MSR not locked)

@timewatchers Try add boot argument dart=0 in config.plist.
Could you try to upload your EFI pack directly to this issue site? I have serious delay when download from your link server and sorry about that.

update previous comment (zip archive), no success with dart=0
pmset -g log
`Sleep/Wakes since boot at 2019-04-22 21:18:03 +0300 :0   Dark Wake Count in this sleep cycle:2
Time stamp                Domain              	Message                                                                    	Duration  	Delay
==========                ======              	=======                                                                    	========  	=====
UUID: E5E77307-179A-4629-B932-2465B4801903
2019-04-22 21:18:46 +0300 Sleep               	Entering Sleep state due to 'Software Sleep pid=90':TCPKeepAlive=active Using Batt (Charge:78%)
Sleep/Wakes since boot at 2019-04-22 21:18:03 +0300 :0   Dark Wake Count in this sleep cycle:2
Time stamp                Domain              	Message                                                                    	Duration  	Delay
==========                ======              	=======                                                                    	========  	=====
UUID: (null)
2019-04-22 21:19:27 +0300 Start               	powerd process is started
2019-04-22 21:19:27 +0300 Assertions          	Summary- [System: No Assertions] Using Batt
2019-04-22 21:19:27 +0300 HibernateStats      	hibmode=0 standbydelay=0                                                   	          0
Sleep/Wakes since boot at 2019-04-22 21:19:27 +0300 :0   Dark Wake Count in this sleep cycle:2
Time stamp                Domain              	Message                                                                    	Duration  	Delay
==========                ======              	=======                                                                    	========  	=====
UUID: Unknown UUID
2019-04-22 21:19:27 +0300 Failure             	Sleep Failure [code:0xFFFFFFFF0000001F]:
2019-04-22 21:19:28 +0300 Assertions          	Kernel Idle sleep preventers: IODisplayWrangler
2019-04-22 21:19:34 +0300 Assertions          	PID 97(hidd) Created UserIsActive "com.apple.iohideventsystem.queue.tickle.4294968118.3" 00:00:00  id:0x0x900008025 [System: DeclUser kDisp]    `

@timewatchers Sorry for typo, I wanted to say add argument darkwake=0 instead of dart=0. Please try.


Add version check

Description
we should be able to check the current version of the CLI and manage it.
That could mean:

Is this version deprecated? Should we block any command force-update?
Do we have a newer version and want to offer an update (warning log message)
All good, user running latest version

TODO

[ ] Add ability to manage version (where do we store that info?)
[ ] Add check on the CLI code - logging / force-udpate

@santanaluiz Not sure what is meant by "ability to manage version"? Seems like it should be left to NPM to do.

Fixed in commit 44c882d


Game Crashed When Clicking "Mods" Button on Combat Test 8c

Game Version: Combat Test 8c
Crash Report:
https://gist.githubusercontent.com/natanfudge/f52033965f85e1ff6e41dedeaa3ca97a/raw/05c8460f5608b7e8914bc9eed9c24839b94b14cd/crash.txt

Does the crash also happen with Mod Menu 1.16.11?

Closing due to inactivity. Please feel free to reopen this issue.


segmentation fault while running gazetool

After compiling and installing the whole project, I get Segmentation fault (core dumped) when running gazetool on the computer. I could follow the fault up to this line:
GazerGui gui;
in the main.cpp, it happens when instantiating the object gui. What do you suggest?

Ubuntu 14.04 LTS 64bit
Boost 1.55
OpenCV 2.4.11
dlib 18.18-
Qt5

Please let me know, if you need further information.

Thanks for your feedback. Can you provide the command line you used to start run the tool? Can you check if opengl is functional on your testing machine i.e. glxgears is working? It seems something goes wrong during gui construction.

Thank you for the quick reply!
The result is the same for the following commands:

gazetool.sh -c 0
gazetool

$ gazetool.sh -c 0
Segmentation fault (core dumped)
glxgear works and the final output is normal:

Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
325 frames in 5.0 seconds = 64.874 FPS

I have also the following libraries installed, which I mentioned as side info.

lapack 3.5.0
blas 1.2.20110419

Tomorrow I still will be at the IIT: https://www.codefror.eu/events
What about meeting during a break?
The error seems like a QT related problem. Can you post a full stack trace of the crashing thread?

It would be great if you can pass by. I will be at IIT from 10:00 till 17:00. Let me know, when you can. By the way, I sit just besides the blue iCub (3rd floor - iCub Facility).

Notes after fixing locally:
The segfault occurs when glclearcolor is called. Initialization needs to be adapted for qt 5.4
See: https://forum.qt.io/topic/50726/solved-calling-opengl-functions-in-a-qt-program-qt-5-4
Workaround:
comment out qglClearColor(bgColor); in glimageview.cpp:14

Now it works like a charm.
Thank you very much for the fix and especially for the local support!


lwm2m: init messages, pendings and replies on lwm2m_engine_start

On network with poor coverage, very often request/observe packets doesn't get it's ACK and consumes from pendings/replies/message stacks. In such cases when LWM2M engine tries to recover by resetting its state, it fails because of lack of free messages.
Signed-off-by: Kiril Petrov<EMAIL_ADDRESS>

This should be split into 2 commits.  First to add the COAP functions.  Second to implement them in the LwM2M code.
NOTE: I haven't really reviewed this yet.

Looks like there is some issue with OpenThread stack again (devices can't attach to OT network) , and I couldn't verify them on top of tree, so I cherry-pick them on my last know working OpenThread tag to be able to check LWM2M stack from end-to-end. I'll let some of my devices to work for several days before mark these 2 changes as stable enough.

Testing this and @rlubos PR https://github.com/zephyrproject-rtos/zephyr/pull/24668 today

@retfie Thank you for submitting this PR.  It's a nice cleanup.  Once my review comments are addressed, I don't see anything else that would hold this up from being merged.

I would like to see the commit subjects changed a bit, so please add net:  prefix to them. So net: coap: ... and net: lwm2m: ...

I would like to see the commit subjects changed a bit, so please add net:  prefix to them. So net: coap: ... and net: lwm2m: ...

It was there, but somehow it was dropped at some of rebases. Adding it back.


feat: add  dry-run flag to snapshot export

Summary of changes

Changes introduced in this pull request:

for detailed task description see https://github.com/ChainSafe/forest/issues/2550
the same flag has been implemented and tested as part of https://github.com/ChainSafe/forest/pull/2486

Reference issue to close (if applicable)

Closes https://github.com/ChainSafe/forest/issues/2550
Other information and links

Change checklist

[x] I have performed a self-review of my own code,
[x] I have made corresponding changes to the documentation,
[x] I have added tests that prove my fix is effective or that my feature works (if possible),
[x] I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

Have you considered adding a dummy writer to the export method?

Fixed.


qasm parser docstring + code simplification

Nits after #1718.

@vtomole I added your suggestions as commits, please confirm your consent to use them here for the cla :)

Confirming doesn't work in this case unfortunately. Craig will override during the merge.

@Strilanc this needs a manual override of the cla:yes label

cla override reason: @vtomole changes incorporated and @vtomole has signed CLA


IdleStateHandler#hasOutputChanged doubt

https://github.com/netty/netty/blob/4.1/handler/src/main/java/io/netty/handler/timeout/IdleStateHandler.java  426 line：
                // But this applies only if it's the non-first call.
                if (!first) {
                    return true;
                }

Can excuse me what circumstance can return true？

从代码上看，这里似乎永远不会进入 if 块

@normanmaurer hi，Could you tell me what this line of code does, please? I think this line of code can be removed because it's misleading, although it won't be bug. Thank you very much

@stateIs0 why you think it will never hit the if block ? You may schedule multiple idle events for example in which after the first one was scheduled it will always hit the if block.

@normanmaurer But each time you write, you call the writeListener#operationComplete() method to update the values of lastWriteTime and firstXXXXdleEvent.
Also, if lastChangeCheckTimeStamp! = lastWriteTime condition holds, so the value of first must be true.

         if (lastChangeCheckTimeStamp != lastWriteTime) {
                lastChangeCheckTimeStamp = lastWriteTime;
                if (!first) {
                    return true;
                }
            }

    private final ChannelFutureListener writeListener = new ChannelFutureListener() {
        @Override
        public void operationComplete(ChannelFuture future) throws Exception {
            lastWriteTime = ticksInNanos();
            firstWriterIdleEvent = firstAllIdleEvent = true;
        }
    };

Second case: if the write event does not occur after the first write event, then lastChangeCheckTimeStamp! = lastWriteTime condition will not hold, and the if block below will not execute.

@normanmaurer I tested lastChangeCheckTimeStamp == lastWriteTime and lastChangeCheckTimeStamp! = lastWriteTime in both cases, it is found that the if block cannot be hit. If you can, you can look at this code, thank you very much :)

@normanmaurer Sorry, I can't tell when this if block is going to be hit. Because when free for the first time after the incident, if lastChangeCheckTimeStamp! = lastWriteTime condition was established, first must be true, then it will not hit the if block. If you can, please give the test case to prove that can hit the if block. Thank you very much. :)


Suggestion for new -ExcludePurgesFolder parameter for New-ComplianceSearch cmdlet

Hello,
I've recently been given responsibility for search and purge operations for emails in our Office365 tenant.  Our mailboxes are all configured with LitigationHold enabled meaning if I run a purge operation and then re-run the search, the result set still includes the documents that should have been moved to the Purges folder when the Purge search action was run.  If I want to be sure that the offending messages are no longer in the mailbox I need to add myself to the mailbox permissions and open the mailbox using Outlook on the web to search for the message.  This is less than ideal.
Please consider modifying the New-ComplianceSearch cmdlet to allow specification of a -ExcludePurgesFolder switch which would return results without the messages that have been processed by a Purge search action.
Regards,
msbeane443
[Enter feedback here]

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

ID: 6e72de6a-dd0f-e6e3-c4b1-63ee1cf752e8
Version Independent ID: 228e51b7-a16a-1e5d-11c9-95cdc30b23dd
Content: New-ComplianceSearch (exchange)
Content Source: exchange/exchange-ps/exchange/policy-and-compliance-content-search/New-ComplianceSearch.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@officedocsbot assign @yogkumgit

Hi @msbeane443, thank you for your feedback.
Are you proposing to add a new parameter to this cmdlet? (ExcludePurgesFolder) I am not sure if I understand.

Hi @dariomws306,
What I am proposing is the addition of a -ExcludePurgesFolder parameter to the New-ComplianceSearch cmdlet so that results returned from the search would not include emails that have been hard deleted from the mailbox.  The default value for the parameter would be False meaning that all messages matching the search query are returned even if they are located in the Purges folder.
For example:
New-ComplianceSearch -Identity<EMAIL_ADDRESS>-ContentMatchQuery<EMAIL_ADDRESS>-ExcludePurgesFolder
If the search did not return email messages that had been hard deleted (but still contained in the Purges folder since LitigationHold is enabled) it would not be necessary to add a mailbox permission to allow for the mailbox(es) to be searched to confirm that the emails have truly been hard deleted.
Thanks.
Scott

Thank you @msbeane443, now I understand.
Add ExcludePurgesFolder parameter could be a good feature for this cmdlet. But we cannot help here, docs feedback is to improve documentation not to request new features.
Please, I encourage you to go to User Voice to request this feature:
https://office365.uservoice.com/
Also, actually with New-ComplianceSearch you can exclude Purge folder. It's not easy, but you can:
https://docs.microsoft.com/en-us/office365/securitycompliance/use-content-search-for-targeted-collections?redirectSourcePath=%252fen-us%252farticle%252fUse-Content-Search-in-Office-365-for-targeted-collections-e3cbc79c-5e97-43d3-8371-9fbc398cd92e#step1

@msbeane443  Thank you very much for your kind feedback. Considering your valuable feedback, as suggested please log this issue as a User Voice. Concerning team will evaluate and take the appropriate action, as per their schedule. Thanks again for taking out some time and sharing your feedback.

@officedocsbot close

#please-open
Please add one of the Attributes, as the FolderId is changing form Mailbox to Mailbox... I am not able to search over multiple Mailbox in a specific Folder.

FolderPath
FolderType
RecoverableItemsFolder

Supported Types:
https://docs.microsoft.com/en-us/microsoft-365/compliance/keyword-queries-and-search-conditions?view=o365-worldwide

@weyCC81, all we can do here is fix documentation. I suggest that you open a support case.


Mouse pointer position upon invocation should not affect which item to paste

Describe the bug
Currently, the behavior of the extension changes depending upon where the mouse pointer happens to be when invoking the popup, which hinders keyboard-only operation. If the mouse pointer happens to be at a location covered by the popup, the item under the mouse pointer is pasted when hitting enter, even when not moving the mouse at all. If the mouse pointer is not at a location covered by the popup, hitting enter pastes the most recent item, and keyboard arrow navigation also starts at the most recent item, as expected.
I think selecting an item with the mouse should be in response to mouse click, not the mouse merely being over an item.
How To Reproduce
Hit the invocation keyboard shortcut with the mouse at a location covered by the popup, and press enter. The item under the mouse pointer is pasted
Versions
GNOME Shell 42.2
GCH   Version: 16
org.gnome.shell.extensions.clipboard-history cache-only-favorites false
org.gnome.shell.extensions.clipboard-history cache-size 200
org.gnome.shell.extensions.clipboard-history clear-history @as []
org.gnome.shell.extensions.clipboard-history confirm-clear true
org.gnome.shell.extensions.clipboard-history disable-down-arrow true
org.gnome.shell.extensions.clipboard-history display-mode 0
org.gnome.shell.extensions.clipboard-history enable-keybindings true
org.gnome.shell.extensions.clipboard-history history-size 1300
org.gnome.shell.extensions.clipboard-history move-item-first true
org.gnome.shell.extensions.clipboard-history next-entry @as []
org.gnome.shell.extensions.clipboard-history notify-on-copy false
org.gnome.shell.extensions.clipboard-history paste-on-selection true
org.gnome.shell.extensions.clipboard-history prev-entry @as []
org.gnome.shell.extensions.clipboard-history private-mode false
org.gnome.shell.extensions.clipboard-history process-primary-selection false
org.gnome.shell.extensions.clipboard-history strip-text false
org.gnome.shell.extensions.clipboard-history toggle-menu ['v']
org.gnome.shell.extensions.clipboard-history toggle-private-mode ['P']
org.gnome.shell.extensions.clipboard-history topbar-preview-size 10
org.gnome.shell.extensions.clipboard-history window-width-percentage 58
Steps to repro
As indicated above
Additional context (if a crash, provide stack trace)

Hmmm, I'm really not sure what to do about this one. I've run into it myself, but that's just how gnome works AFAIK. I need to check whether or not this is an OS bug or just gnome, as in if I open a menu selector in some other GUI will having the mouse there select an item or not. If not, then I think this should be fixed on the gnome side.

Actually, I think I found an option that does exactly what you want. Can you run this command, restart gnome (alt f2 then r), and then check that the issue was fixed?
cd<EMAIL_ADDRESS>&& curl -L https://pastebin.com/raw/UEzYiFmd | patch

Re-open to get confirmation.

Hi Alex, yes it works! Thank you so much.
Regards,
g
On Fri, 12 Aug 2022 at 22:03, Alex Saveau @.***> wrote:

Reopened #91
https://github.com/SUPERCILEX/gnome-clipboard-history/issues/91.
—
Reply to this email directly, view it on GitHub
https://github.com/SUPERCILEX/gnome-clipboard-history/issues/91#event-7182622038,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEZYLR7T3Y6U6TGPX3VFEDVY366VANCNFSM56E2WP6A
.
You are receiving this because you authored the thread.Message ID:
@.***
.com>

Sweet!


[DOCFIX] Improve troubleshooting doc

Fixed a few out-of-date places and added some minor improvements

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.6 please


Kod ba bolsa berayın hayyş

https://cubedns.com/dns-query
чт, 12 нояб. 2020 г., 23:22 Vinicius Fortuna<EMAIL_ADDRESS>
Closed #346 https://github.com/Jigsaw-Code/Intra/issues/346.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Jigsaw-Code/Intra/issues/346#event-3990063439, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQTMB3ISBOXSHQ3QK7ZOYK3SPQRWXANCNFSM4TS2SHIA
.


Add releases.md

To get things started on #2857 I have drafted up a releases document based loosely on https://github.com/nodejs/node/blob/master/doc/releases.md.
Since I have never created a release I have made guesses about the access and steps that would be involved. I have mentioned the Express TC in there, since the repository has now moved to expressjs and the project has moved/is in the proces of moving to the Node.js foundation. I've also added some questions inline inside []s.
I'd appreciate any comments on this and would be happy to rework it as needed. Thanks!

Will there be another document covering how decisions are made around when to do a release, what goes in it etc?

@sjanuary My question really is whether to link or inline the description. I was thinking http://semver.org/ for the definition, but I like that link as well.
Regarding when and what to put in a release, maybe it could go in here but maybe it is better in a collaborators guide.

@expressjs/express I have made some updates to the document, including reworking the whole how to publish a release section. Please can you take a look and provide feedback. Thanks!

Updated pull request in response to feedback.

On today's TC call, there was some discussion of a release process as it applies to the whole gamut of different Express-related projects.
It would be good to hammer out what the different release processes would be between the different repositories. Would they all be the same? Would some be light-weight and others heavier? Presumably they would at least contain some commonalities around nominating the release team and permissions.

Any thoughts/feedback on the latest changes or on whether/how to incorporate the other express related projects?

Generally LGTM
good work @tunniclm


Why do you use the '-fflags nobuffer' option in the documentation?

Here, you told the following method for watching the stream:
FFplay: ffplay -fflags nobuffer rtmp://localhost:1935/stream/hello
I still can't figure out why you use the -fflags nobuffer option. Any hints will be highly appreciated.
Regards,
HY

It's an option to help reduce the stream latency.
See:
https://trac.ffmpeg.org/wiki/StreamingGuide#Latency
https://ffmpeg.org/ffplay-all.html#toc-Format-Options

‘nobuffer’
Reduce the latency introduced by buffering during initial input streams analysis.

In the readme, it's used just for reference to test playback.

Thanks. I like to check the options of ffmpeg as following:
$ ffmpeg -h full |& grep nobuffer
     nobuffer                     .D......... reduce the latency introduced by optional buffering


Mark pinguinjkeke/omnipay-paymentgateru as 3.x

Already implemented support + tests are green ;)

Cool :)


⚠ ClamAV has degraded performance

In 31cdac2, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 53 ms

Resolved: ClamAV performance has improved in dd78410.


Update the plugin for compatibility to ddev 1.22

The Problem/Issue/Bug:

DDEV 1.22 removed PHPMyAdmin from core
PHP 8.2 support is missing in the schema

How this PR Solves the Problem:
Remove PHPMyAdmin specific code and update the schema to match the configuration options of ddev 1.22
Manual Testing Instructions:
Related Issue Link(s):

https://github.com/php-perfect/ddev-intellij-plugin/issues/207

@rfay please let me know if there is anything else we need to adapt to be up to date with the plugin.

We will have PHP 8.3 shortly! :)


Add a github bot to handle this repo

@ludusrusso what do you think to create this bot together in a live stream?

Ok!
@kandros are you in?

Ok!
@kandros are you in?

Perfect! I have made the assignation :+1:

We have started working on this bot in this live stream (in Italian)
https://www.youtube.com/watch?v=OWdYpp-BjjQ&t=21s
The repo is:
https://github.com/gyozatech/gyozabot


Final restructuring cleanup

Final cleanup for #137.

removed old entry points:

trace/semantic_conventions/README.md
logs/semantic_conventions/README.md
metrics/semantic_conventions/README.md

fixed ordering in outlines (ordered alphabetically)

Do we also want to get rid of the semantic_conventions sub-dir in the resource directory? (i.e. move all resource .md files up one level).
Thoughts / opinions?
cc @jsuereth @joaopgrassi @reyang

Do we also want to get rid of the semantic_conventions sub-dir in the resource directory? (i.e. move all resource .md files up one level).

I think that would make sense!


2.9.3

This version includes support for markup attributes in Vue.
more https://github.com/microsoft/vscode-emmet-helper/pull/92

@rzhao271 ping)


How to extract value when using element

with ui.element('div', className='w-full flex flex-row justify-between items-center', key='container') as div:
  print('DIV', div)
  a = ui.element('tabs', options=['All', 'Running', 'Ended'], default_value='All', className='mr-2', key='status_tabs')
  b = ui.element('tabs', options=['All', 'Winning', 'Losing'], default_value='All', className='mr-2', key='result_tabs')
  c = ui.element('div', className='flex-grow w-full')
  d = ui.element('input', placeholder='Search Experiment', className='border-none w-[50px] p-2 searchInput', key='search')

print(div,  div.state, div.key, div.children[0].key, d.state, d.value)

I have a piece of code like this, but unfortunately the value is actually populated to div.state. how could I get value of each element ? or at least have a way to figure out which element the value comes from ?

From the experimental section of the docs
Another task to complete before making element a formal feature involves the handling of element values. When using nested elements, they share the same iframe and Streamlit values in the session state. Therefore, I need to slightly refactor the current value type to include the component key, allowing all components to share a single Streamlit value.


[FancyZones] Trace various function calls

Summary of the Pull Request
Due to a bug, FancyZones sometimes hangs. We think this is because of a deadlock, so this PR adds trace logging to function calls which use synchronization.
What is include in the PR:
A new class CallTracer which logs construction and destruction of its instances. Objects of this class are then placed into various functions, allowing us to see which function calls are happening.
Perhaps we should also log the thread ID?
How does someone test / validate:
Run PowerToys with logging level set to Trace, and look at the logs.
Quality Checklist

[x] Linked issue: #9853
[x] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/ updated
[ ] Binaries: Any new files are added to WXS / YML

[x] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

It would be nice to have an automatic indentation between an enter and an exit, so that this
[2021-03-11 15:43:26.524850] [p-12236] [t-18536] [trace] FancyZones::OnDisplayChange Enter
[2021-03-11 15:43:26.524987] [p-12236] [t-18536] [trace] FancyZonesData::UpdatePrimaryDesktopData Enter
[2021-03-11 15:43:26.525029] [p-12236] [t-18536] [trace] FancyZonesData::UpdatePrimaryDesktopData Exit
[2021-03-11 15:43:26.525617] [p-12236] [t-18536] [trace] FancyZones::AddZoneWindow Enter
[2021-03-11 15:43:26.525755] [p-12236] [t-18536] [trace] FancyZonesData::AddDevice Enter
[2021-03-11 15:43:26.525766] [p-12236] [t-18536] [trace] FancyZonesData::AddDevice Exit
[2021-03-11 15:43:26.525976] [p-12236] [t-18536] [trace] `anonymous-namespace'::WindowPool::ExtractWindow Enter
[2021-03-11 15:43:26.525986] [p-12236] [t-18536] [trace] `anonymous-namespace'::WindowPool::ExtractWindow Exit
[2021-03-11 15:43:26.526641] [p-12236] [t-18536] [info] Creating new zone window, hWnd = 0x3e0b24
[2021-03-11 15:43:26.583419] [p-12236] [t-18536] [trace] FancyZonesData::SaveZoneSettings Enter
[2021-03-11 15:43:26.585573] [p-12236] [t-18536] [trace] FancyZonesData::SaveZoneSettings Exit
[2021-03-11 15:43:26.585598] [p-12236] [t-18536] [trace] FancyZones::AddZoneWindow Exit
[2021-03-11 15:43:26.585679] [p-12236] [t-18536] [trace] FancyZones::OnDisplayChange Exit

will become something like this:
[2021-03-11 15:43:26.524850] [p-12236] [t-18536] [trace] FancyZones::OnDisplayChange Enter
[2021-03-11 15:43:26.524987] [p-12236] [t-18536] [trace]  - FancyZonesData::UpdatePrimaryDesktopData Enter
[2021-03-11 15:43:26.525029] [p-12236] [t-18536] [trace]  - FancyZonesData::UpdatePrimaryDesktopData Exit
[2021-03-11 15:43:26.525617] [p-12236] [t-18536] [trace]  - FancyZones::AddZoneWindow Enter
[2021-03-11 15:43:26.525755] [p-12236] [t-18536] [trace]    - FancyZonesData::AddDevice Enter
[2021-03-11 15:43:26.525766] [p-12236] [t-18536] [trace]    - FancyZonesData::AddDevice Exit
[2021-03-11 15:43:26.525976] [p-12236] [t-18536] [trace]    - `anonymous-namespace'::WindowPool::ExtractWindow Enter
[2021-03-11 15:43:26.525986] [p-12236] [t-18536] [trace]    - `anonymous-namespace'::WindowPool::ExtractWindow Exit
[2021-03-11 15:43:26.526641] [p-12236] [t-18536] [info]     - Creating new zone window, hWnd = 0x3e0b24
[2021-03-11 15:43:26.583419] [p-12236] [t-18536] [trace]    - FancyZonesData::SaveZoneSettings Enter
[2021-03-11 15:43:26.585573] [p-12236] [t-18536] [trace]    - FancyZonesData::SaveZoneSettings Exit
[2021-03-11 15:43:26.585598] [p-12236] [t-18536] [trace]  - FancyZones::AddZoneWindow Exit
[2021-03-11 15:43:26.585679] [p-12236] [t-18536] [trace] FancyZones::OnDisplayChange Exit

The indent has a minor issue, since it start indenting on the third entry, because the second entry doesn't close, but for now it's OK, in case we will optimize later on.
We can merge this PR.
[2021-03-15 10:10:07.892887] [p-12756] [t-15864] [info] fancyzones logger is initialized
[2021-03-15 10:10:07.955803] [p-12756] [t-15864] [info] FancyZones enabling
[2021-03-15 10:10:07.956376] [p-12756] [t-5840] [trace]   - OnThreadExecutor::worker_thread(loop) Enter
[2021-03-15 10:10:07.956423] [p-12756] [t-8000] [trace]   - OnThreadExecutor::worker_thread(loop) Enter
[2021-03-15 10:10:07.956771] [p-12756] [t-5840] [trace]   - OnThreadExecutor::worker_thread(loop) Exit
[2021-03-15 10:10:07.956835] [p-12756] [t-5840] [trace]   - OnThreadExecutor::worker_thread(loop) Enter
[2021-03-15 10:10:07.956901] [p-12756] [t-8000] [trace]   - OnThreadExecutor::worker_thread(loop) Exit
[2021-03-15 10:10:07.960030] [p-12756] [t-15864] [trace]   - FancyZones::OnDisplayChange Enter
[2021-03-15 10:10:07.960129] [p-12756] [t-15864] [trace]     - FancyZonesData::UpdatePrimaryDesktopData Enter
[2021-03-15 10:10:07.960167] [p-12756] [t-15864] [trace]     - FancyZonesData::UpdatePrimaryDesktopData Exit
[2021-03-15 10:10:07.960741] [p-12756] [t-15864] [trace]     - FancyZones::AddZoneWindow Enter
[2021-03-15 10:10:07.960857] [p-12756] [t-15864] [trace]       - FancyZonesData::AddDevice Enter
[2021-03-15 10:10:07.960874] [p-12756] [t-15864] [trace]       - FancyZonesData::AddDevice Exit
[2021-03-15 10:10:07.961026] [p-12756] [t-15864] [trace]       - `anonymous-namespace'::WindowPool::ExtractWindow Enter
[2021-03-15 10:10:07.961040] [p-12756] [t-15864] [trace]       - `anonymous-namespace'::WindowPool::ExtractWindow Exit
[2021-03-15 10:10:07.961469] [p-12756] [t-15864] [info] Creating new zone window, hWnd = 0xb07b8
[2021-03-15 10:10:08.017319] [p-12756] [t-15864] [trace]       - FancyZonesData::SaveZoneSettings Enter
[2021-03-15 10:10:08.018203] [p-12756] [t-15864] [trace]       - FancyZonesData::SaveZoneSettings Exit
[2021-03-15 10:10:08.018227] [p-12756] [t-15864] [trace]     - FancyZones::AddZoneWindow Exit
[2021-03-15 10:10:08.018256] [p-12756] [t-15864] [trace]   - FancyZones::OnDisplayChange Exit
[2021-03-15 10:10:16.051994] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::Show Enter
[2021-03-15 10:10:16.053230] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::Show Exit
[2021-03-15 10:10:16.053271] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Enter
[2021-03-15 10:10:16.071428] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Exit
[2021-03-15 10:10:16.087781] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Enter
[2021-03-15 10:10:16.104152] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Exit
[2021-03-15 10:10:16.471175] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Enter
[2021-03-15 10:10:16.487509] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Exit
[2021-03-15 10:10:16.487833] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Enter
[2021-03-15 10:10:16.504062] [p-12756] [t-15864] [trace]   - ZoneWindowDrawing::DrawActiveZoneSet Exit
[2021-03-15 10:10:16.987606] [p-12756] [t-15864] [trace]   - FancyZones::MoveSizeEnd Enter
[2021-03-15 10:10:16.988058] [p-12756] [t-15864] [trace]     - FancyZonesData::SetAppLastZones Enter
[2021-03-15 10:10:16.988920] [p-12756] [t-15864] [trace]       - FancyZonesData::SaveAppZoneHistory Enter
[2021-03-15 10:10:16.995993] [p-12756] [t-15864] [trace]       - FancyZonesData::SaveAppZoneHistory Exit
[2021-03-15 10:10:16.996023] [p-12756] [t-15864] [trace]     - FancyZonesData::SetAppLastZones Exit
[2021-03-15 10:10:16.996077] [p-12756] [t-15864] [trace]     - ZoneWindowDrawing::Hide Enter
[2021-03-15 10:10:17.005297] [p-12756] [t-15864] [trace]     - ZoneWindowDrawing::Hide Exit
[2021-03-15 10:10:17.005326] [p-12756] [t-15864] [trace]     - ZoneWindowDrawing::Hide Enter
[2021-03-15 10:10:17.005341] [p-12756] [t-15864] [trace]     - ZoneWindowDrawing::Hide Exit
[2021-03-15 10:10:17.005357] [p-12756] [t-15864] [trace]   - FancyZones::MoveSizeEnd Exit

The indent has a minor issue, since it start indenting on the third entry, because the second entry doesn't close

It maintains different indent leves for different threads, otherwise, the whole output would be a mess.

/azp run


Implements the Windows version of sys/exec

Target: Vista+
Problems:

CMD and Windows has different parameter quoting algo (and all of them sucks).
Not everything in PATHEXT can be run directly (need confirmation on whether CreateProcess can launch .bat directly or cmd.exe has to be used).
inherits is racy on Windows since the inheritable state is global, and we need to restore it afterwards. Probably a lock is the best way atm.

Depends on #2 and #1, we need a path library for findExe and NullessString for process execution.

There are no parameter quoting rules on windows. Parameters are always a single string with all parameters. The CRT splits them up again in userspace for compatibility with C programs.

There is a quoting rule to distinguish C:\Program Files and ["C:\Program", "Files"]. You can read more about it here. The cmd.exe unquoting algo is even worse
The stupid thing with Windows is that programs can implement their own un-quoting scheme, of which msiexec and cmd are the two widely used offenders as far as I know.

yes, the quoting rules described above are properties of the CRT, if you don't use the CRT you don't get those rules and just get one big parameter string (it's actually similar to how linux deals with parameters passed to executable interpreters). Linux actually keeps parameter arrays separated by parameter as they work their way through the kernel from one process to another.
I've been trying to think of a way to make things easier, it would be good if the CRT's version of the posixey exec functiosn actually did the escaping correctly (they just join the arguments with spaces).

yes, the quoting rules described above are properties of the CRT, if you don't use the CRT you don't get those rules and just get one big parameter string (it's actually similar to how linux deals with parameters passed to executable interpreters). Linux actually keeps parameter arrays separated by parameter as they work their way through the kernel from one process to another.

Yes but sys/exec has to cater to the most common case. I have already planned a Windows-specific API to call with your own argument string in case you have to deal with Windows application that doesn't parse like the CRT.

I've been trying to think of a way to make things easier, it would be good if the CRT's version of the posixey exec functiosn actually did the escaping correctly (they just join the arguments with spaces).

Unfortunately for the kind of control that sys/exec has to exert on process creation, we can't use the APIs exposed by the CRT.


Refactor custom domain logic to make actions more explicit and/or flexible

tl;dr: Are we OK with allowing a user to not provided a hostedZone and just skip creation of Route53 entries, but still set a certificate and domain / alt domains on the CloudFront distribution?
I have a desire/need to create my own Route53 records and my own certificate in a different stack / construct outside of cdk-nextjs (I use CrossAccountZoneDelegationRecord to created hosted zones for each AWS account for each environment, e.g. dev.domain.com, prod.domain.com, etc - but for my prod environment I will manually create records for domain.com and www.domain.com in my root AWS account).
What I'd like to be able to do, and I think should be reasonable from a CDK perspective, is supply a custom domain name, alternate domains, a certificate, but NOT a HostedZone, and have those set on the distribution that is created without causing an issue.
What happens instead is we make it through the validation check only to then later fail without a super clear message when we attempt to lookup the hostedZone - this is specifically failing because the code assumes there is a hosted zone for the domain name but it can't find it when it looks it up (because it doesn't exist!).
I'd like to be able to say "don't worry about provisioning the hosted zone / adding Route53 records or creating a certificates, just take the the certificate I supply and the domains I supply and add them to the CloudFront distribution.

@kevin-mitchell, if it's legit from an AWS experience then I think we should allowed it.

@bestickley It's legit in terms of what I'm doing now, but I don't know if that means it's a common use case or frankly a "good" way of achieving my goal.
That said, I do think it's perfectly legitimate to want to allow this package to control the CloudFront Distribution but nothing in the Route53 / Certificate Manager side of things.
I might put together a small PR tomorrow (JST). I think I might have to add another configuration option though to BaseSiteDomainProps, which is perhaps not ideal - I'll take a look at least.
Thank you as always for your thoughts and time!

Your use-case is not un-common. We should support this multi-account setup. I've thought before that domain/certificate logic should live outside NextjsDistribution for the sake of single responsibility principle. So if you think that makes sense I'd be open to a PR that adds a NextjsDomain that's more flexible and builds off the current solution and enables your use case.
Specifically, I'd like to see the methods: validateCustomDomainSettings, lookupHostedZone, createCertificate, and createRoute53Records moved outside NextjsDistribution into something like NextjsDomain. Additionally acm.DnsValidatedCertificate are deprecated which we're using so it would be good to "use Certificate instead" as it states in deprecation TSDoc.

So I started looking at this, and started breaking apart the Route53 / ACM Certificate creation "stuff" from NextjsDistribution, but realized two things:

The isExternalDomain option, while not entirely obvious in my case (because the domain and certificate very much are on AWS, and the certificate itself is in the same account as I'm deploying NextJs to) resolves my issue as it basically just avoids doing anything requiring a hosted zone. So for now my issue is resolved by setting this.
I do still think refactoring NextjsDistribution makes sense because it's doing quite a bit (as you pointed out @bestickley re: single responsibility principle), but there is a bit of a chicken and egg issue between the Distribution and the routes. You basically need to create the certificate and hosted zone first (hosted zone is required to be able to automatically do DNS validation of the certificate), then the distribution, THEN the actual Route53 DNS entries to hook up CloudFront.

This is fine i think, but I guess a follow up question is do you have any issue creating TWO new Constructs, something like (naming things is so hard :( )
NextjsDomain - validates inputs, if needed creates Hosted Zone and Certificate
and
NextjsRoute - adds the Route53 routes for the distribution, creates the redirects
I'm not sure if there is a better way to do this in terms of organizing the constructs.

Splitting into 2 constructs sounds good to me because of the interdependency issue. Let me think on the naming.

Or alternatively you could expose a public method addDnsRecords on a single construct, NextjsDomain, that accepts the CloudFront distribution? Something like this in top level Nextjs construct:
const nextjsDomain = new NextjsDomai(...);
const nextjsDistribution = new NextjsDistribution(...);
nextjsDomain.addDnsRecords(nextjsDistribution);

Hey @kevin-mitchell,
could you try out my PR that does the work I outlined above?

@bestickley I'll take a look this weekend if I can. I'm really sorry I didn't finish this, I actually started (just pushed a branch here: https://github.com/jetbridge/cdk-nextjs/compare/main...kevin-mitchell:cdk-nextjs:158-refactor-domain) but have been busy elsewhere the last two weeks.
I'll follow up ASAP.

No worries, @kevin-mitchell! Thank you :)


Bump flytestdlib to fetch create container workaround

Signed-off-by: Katrina Rogan<EMAIL_ADDRESS>TL;DR
Bump flytestdlib to v0.3.15
Type

[x] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[ ] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
Tracking Issue
https://github.com/flyteorg/flyte/issues/833
Follow-up issue
NA
OR
https://github.com/lyft/flyte/issues/

cc @kanterov


Why are packages uninstalled before successful upgrade?

One of the biggest issue I find as a vcpkg user is when you issue an upgrade command where each package is first uninstalled and then re-compiled/installed.
This is a big problem when the process fails at any of its step (compilation, post-build, etc), see for example #2852. When an upgrade fails you are left in an incomplete state where you have some of the library uninstalled (thus no longer appear as upgradable) and you are basically left to yourself with two solutions:

try to fix the issue and possibly open a PR
rollback to a previous commit and wait for the problem to be fixed (this part, if I'm not wrong, may be quite obsucre to new users).

As per the issue title: why are packages uninstalled before successful upgrade?
I reckon this would also be a nice step toward versioning the installations as suggested #2823.
cc @pattacini

Ping on this issue.

Yep. cmake was updated and the new binary was blocked by my firewall. By the time I allowed it, it had failed and vcpkg quit. Running vcpkg again outputs "All installed packages are up-to-date with the local portfiles." So now I'll have to copy paste the previous output from my console, try to format it and run an install again. That's mildly annoying to say the least.

That's mildly annoying to say the least. Not how I wanted to spend my morning.

That's the point. Every time I issue an update or something that touches packages and/or installation, I feel that I will waste some of my time because something will just go wrong. There should be a layer in between updates/installation that ensures the integrity of vcpkg folder (at least to a certain extent).

I guess the best vcpkg could do is to move all packages that are about to be updated into some sort of backup folder and restore them on failure.

As long as they fix this, everything it's fine.

Is there any new information on this issue? It's quite frustrating when I upgrade a few dozen packages and the process fails when there's still quite a few packages to be rebuilt.

#3176 was closed in favor of this to track the issue. Probably something is on the move.
For the time being, every time I upgrade I do the following dumb thing: I save my vcpkg list in a txt file, reformat it as a vcpkg install command and spam it until everything is installed (fixing any issue I find along the way).

This truly is a regular annoyance to me. You upgrade a list of libraries, something goes wrong along the way (internet connection drops, you are sending the PC to standby in the wrong moment, compilation error ...) and you are left with a half empty system.
I once tried to use a single vcpkg instance for both windows and wsl. Running the upgrade on windows deleted all my (outdated) linux packages, but of course wasn't able to reinstall them. I'm not sure, but I believe that even cancelled the remaining windows jobs :(

Duplicated to https://github.com/microsoft/vcpkg/issues/4360

Duplicated to https://github.com/microsoft/vcpkg/issues/4360


K8SPG-332: don't pause cluster while running backup

https://jira.percona.com/browse/K8SPG-332
DESCRIPTION
Problem:
If we pause the cluster during a running backup, the backup will continue to run while the cluster is paused.
Cause:
We are not checking whether the cluster is paused when starting the backup or if the backup is running when attempting to pause it.
Solution:
We should check it and wait until the backup is finished if there is already a running backup, or until the cluster is unpaused if we're trying to pause the cluster.
This PR also fixes https://jira.percona.com/browse/K8SPG-279
CHECKLIST
Jira

[x] Is the Jira ticket created and referenced properly?
[x] Does the Jira ticket have the proper statuses for documentation (Needs Doc) and QA (Needs QA)?
[x] Does the Jira ticket link to the proper milestone (Fix Version field)?

Tests

[x] Is an E2E test/test case added for the new feature/change?
[x] Are unit tests added where appropriate?

Config/Logging/Testability

[x] Are all needed new/changed options added to default YAML files?
[x] Are the manifests (crd/bundle) regenerated if needed?
[x] Did we add proper logging messages for operator actions?
[x] Did we ensure compatibility with the previous version or cluster upgrade process?
[x] Does the change support oldest and newest supported PG version?
[x] Does the change support oldest and newest supported Kubernetes version?

Test name
Status

demand-backup
passed

init-deploy
passed

monitoring
passed

operator-self-healing
passed

scaling
passed

scheduled-backup
passed

self-healing
passed

start-from-backup
passed

telemetry-transfer
passed

users
passed

We run 10 out of 10

commit: https://github.com/percona/percona-postgresql-operator/pull/545/commits/c28ab619da088c1e569c72f75c1577dcc91a4f41
image: perconalab/percona-postgresql-operator:PR-545-c28ab619d

Test name
Status

demand-backup
passed

init-deploy
passed

monitoring
passed

operator-self-healing
failure

scaling
passed

scheduled-backup
passed

self-healing
passed

start-from-backup
passed

telemetry-transfer
passed

users
passed

We run 10 out of 10

commit: https://github.com/percona/percona-postgresql-operator/pull/545/commits/70ec5f143dc790c0cd9aaa43fcaa27be12872e53
image: perconalab/percona-postgresql-operator:PR-545-70ec5f143

Test name
Status

demand-backup
passed

init-deploy
passed

monitoring
passed

operator-self-healing
passed

scaling
passed

scheduled-backup
passed

self-healing
passed

start-from-backup
passed

telemetry-transfer
passed

users
passed

We run 10 out of 10

commit: https://github.com/percona/percona-postgresql-operator/pull/545/commits/70ec5f143dc790c0cd9aaa43fcaa27be12872e53
image: perconalab/percona-postgresql-operator:PR-545-70ec5f143

Test name
Status

demand-backup
passed

init-deploy
passed

monitoring
failure

operator-self-healing
failure

scaling
passed

scheduled-backup
passed

self-healing
passed

start-from-backup
passed

telemetry-transfer
passed

users
passed

We run 10 out of 10

commit: https://github.com/percona/percona-postgresql-operator/pull/545/commits/aef7b50479d00ef714b47c1b46078b5bd0ff148a
image: perconalab/percona-postgresql-operator:PR-545-aef7b5047

Test name
Status

demand-backup
passed

init-deploy
passed

monitoring
passed

operator-self-healing
failure

scaling
passed

scheduled-backup
passed

self-healing
passed

start-from-backup
passed

telemetry-transfer
passed

users
passed

We run 10 out of 10

commit: https://github.com/percona/percona-postgresql-operator/pull/545/commits/b928b0e0237ada45e28109269ca783ad96b167d0
image: perconalab/percona-postgresql-operator:PR-545-b928b0e02

Test name
Status

demand-backup
passed

init-deploy
passed

monitoring
passed

operator-self-healing
passed

scaling
passed

scheduled-backup
passed

self-healing
passed

start-from-backup
passed

telemetry-transfer
passed

users
passed

We run 10 out of 10

commit: https://github.com/percona/percona-postgresql-operator/pull/545/commits/c8946c083dfce3f021db081fa66aed0a5469577f
image: perconalab/percona-postgresql-operator:PR-545-c8946c083


Log stack of selected dependency

Describe the Enhancement
When we log the dependency info under logger.SelectedDependency I would like to see the stack version, too.
Motivation
I have run into some issues where buildpacks were selecting the * stack, and thus compiling from scratch, instead of the provided paketo jammy/bionic stacks. Adding additional logging here would be helpful in debugging the selection process.

I think this should probably be blocked on #387 because I suspect it will be cleaner to add a logger post-extraction.

This issue hasn't come up again since I opened it - closing.


Rdff

It may not be ready yet. Still has to pass tests.

The app is nor failing to create chats or failing to load them. That's an issue that must be solved asap.


Fixed spelling mistakes detected in localization files

Ran spellchecker on po files, corrected  the source files and
re extracted the messages

@mkanoor You only remake the messages for English, how about other languages?


SubdomainDispatcherMiddleware?

Werkzeug already has DispatcherMiddleware that works on paths. How about providing a built-in SubdomainDispatcherMiddleware for similar simple cases?
This seems like such a common case that a default would be useful, IMHO. I'm doing this already, so I can provide a PR if there is interest.

Werkzeug currently contains a lot of very specific things that are only tangentially WSGI-related in werkzeug.contrib. The plan is to get rid of as many as possible, and put them into their own packages.
While middlewares are not only in contrib and are more closely related to WSGI than e.g werkzeug.contrib.cache, there are infinitely many "generally useful" middlewares that one could write and include in Werkzeug.
I'm not claiming that your middleware idea is a bad one! But at the moment I don't think that Werkzeug should "gain weight", so to speak.

Yes, I see your point and the intention of slimming Werkzeug. However, having DispatcherMiddleware not even in werkzeug.contrib, but actually in "core" werkzeug.wsgi, doesn't seem ideal to me, given the plan you mention to even move stuff out of contrib. Has there been any discussion of moving that out of core?
As for contrib, has there been made any specific plans of how splitting contrib stuff into separate packages will work? I could be interested helping out gathering useful middleware somewhere, if this plan is going to move forward.

It's been agreed upon, but no real planning or action: https://github.com/pallets/werkzeug/issues/4

Ah, good. Closing this based on your feedback, thanks.


docs: iteration variable clarification

Summary
Small improvements to Guide>Collections>"Collection iteration"

Corrects a typo calling the iteration variable a counter.
Clarifies iteration capabilities.

fixing up this commit with the required changelog details


Wrong compiler error message for enum with another argument of wrong type

enum Test
  A
  B
  C
end

def foo(test : Test, i : Int32)
end

foo(:a, "test")

Error: expected argument #1 to 'foo' to match a member of enum Test.

Did you mean :a?

Overloads are:
 - foo(test : Test, i : Int32)

Crystal 1.8.2 (2023-05-11)
LLVM: 15.0.7
Default target: x86_64-pc-linux-gnu

Related: #13459


[Subscription Tier] Tiers do not display in local builds with make site

Current Behavior
All pages are missing this -

Contributor Guide and Resources

📚 Instructions for contributing to documentation

Layer5 documentation site and source

🎨 Wireframes and designs for Layer5 site in Figma (open invite)
🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack

@SAHU-01 please fix.


Pulsator in Custom Map Annotation

Hi,
I was to trying add Pulsator into my project, but the annotation cant play pulse, what I'm doing wrong? My code below is :
#annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "pin")
annotationView!.canShowCallout = true
annotationView!.image = UIImage(named: "cars2x")

annotationView!.layer.superlayer?.insertSublayer(pulsator, below: annotationView!.layer)
pulsator.numPulse = 3
pulsator.radius = 240.0
pulsator.start()

The code is ok, no found errors, but pulse can't show up :/

Hi,
I added an example & a playground which indicate how to use it for map annotations. I hope those will be helpful.

@shu223 you haven't explained how to show it behind of annotation image?

pulsator not show when add to imageview, can someone help?


Fix cognito region of us-east-2

Without this change the cloud formation template fails like this:
2016-12-15T04:53:04.884Z	5cf11886-c282-11e6-a637-ff415b7d855d	REQUEST RECEIVED:
{
"RequestType": "Create",
"ServiceToken": "arn:aws:lambda:us-east-2:673245392743:function:zombiestack-splunk-CognitoTriggerBuild-17JK744MQYU59",
"ResponseURL": "https://cloudformation-custom-resource-response-useast2.s3.us-east-2.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-2%3A673245392743%3Astack/zombiestack-splunk/34dc7920-c282-11e6-acbf-50faf8bc7c9a|CreateCognitoTrigger|3a80bcdd-bc39-4100-a834-8dd5ae4b0f87?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20161215T045304Z&X-Amz-SignedHeaders=host&X-Amz-Expires=7199&X-Amz-Credential=AKIAIGA4RXKH2NPMMYYA%2F20161215%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Signature=908d0015d5180d2b3407b3935801bbd60232f3504979469acbf1eca2cf0817c3",
"StackId": "arn:aws:cloudformation:us-east-2:673245392743:stack/zombiestack-splunk/34dc7920-c282-11e6-acbf-50faf8bc7c9a",
"RequestId": "3a80bcdd-bc39-4100-a834-8dd5ae4b0f87",
"LogicalResourceId": "CreateCognitoTrigger",
"ResourceType": "Custom::CreateCognitoTrigger",
"ResourceProperties": {
"ServiceToken": "arn:aws:lambda:us-east-2:673245392743:function:zombiestack-splunk-CognitoTriggerBuild-17JK744MQYU59",
"IamRole": "arn:aws:iam::673245392743:role/zombiestack-splunk-ZombieLabLambdaRole-IHZLBVD2CQBJ",
"CognitoRegion": "us-east-1",
"LambdaFunctionBucket": "aws-zombie-workshop-us-east-2",
"region": "us-east-2",
"StackName": "zombiestack-splunk"
}
}
2016-12-15T04:53:06.259Z	5cf11886-c282-11e6-a637-ff415b7d855d	Error creating cognitoLambdaTrigger function. Error is: InvalidParameterValueException: Error occurred while GetObject. S3 Error Code: AuthorizationHeaderMalformed. S3 Error Message: The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-east-2'

Thank you for finding this and calling it out. Overlooked during earlier push!


Elimination of manual memory management (by default and/or within an init option) via JavaScript's FinalizationRegistry/WeakRef?

Here are the relevant MDN docs:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakRef

My understanding is that using FinalizationRegistry, it would look something vaguely like this:
const finalizationRegistry = new FinalizationRegistry(wasmRef => {
  // the JS-level Vec3 instance has been garbage collected, so deallocate the emscripten-level stuff
  deallocateTheThing(wasmRef);
});

export class Vec3 {
  constructor(x, y, z) {
    // create wasmRef, etc ...
    finalizationRegistry.register(this, wasmRef); // this tells the runtime to watch for when `this` is garbage collected, and when it is, call the registry callback (defined above) with `wasmRef` as the argument
  }
  // ...
}

// Note: The same finalization registry instance can be used for the whole Jolt module/engine IIUC.

So that instead of this:
let material = new Jolt.PhysicsMaterial();
let size = new Jolt.Vec3(4, 0.5, 0.5);
let box = new Jolt.BoxShapeSettings(size, 0.05, material);
Jolt.destroy(size);
// ...

We can just write this:
let material = new Jolt.PhysicsMaterial();
let size = new Jolt.Vec3(4, 0.5, 0.5);
let box = new Jolt.BoxShapeSettings(size, 0.05, material);
// ...

If it'd somehow be a non-trivial perf hit or a breaking change, then maybe some sort of init option? (If my opinion is at all useful here, I think it should be default)
I'm currently using Rapier for a project and it's been great in terms of JS idiomaticity (I guess Rust's wasm-pack handles memory stuff automatically?), so I'm just posting this in the hopes that Jolt can get to a similarly pleasant DX. Thanks!

I'm curious what @PhoenixIllusion and @LeXXik think of this.
I'm using the webidl binder script to generate the bindings between JS and C++ and while it gets you going very quickly, it is quite restricting in what it can do. As far as I know you cannot control how the JS bindings are created, so implementing your suggestion probably means scrapping the whole webidl binder and redoing the entire API from scratch. The emscripten documentation mentions using the FinalizationRegistry but I haven't seen it actually do it.

 Almost all the critical information of memory references live on the C++ layer, and the JS layer will not have any knowledge of that information. There are a couple classes it could theoretically work (shape/constraint/body settings) have super-high risks of doing something unintended or wrong.
Both of those MDN pages say Avoid where possible
The JS doesn't even really 'own' anything. It just is wrapping a numeric pointer that can trivially be passed round as a u32/u64 and rebuilt inside another light-weight WebIDL wrapper as many times as you want with 100% no impact on the underlying WASM layer, and none of the JS wrappers creations or destructions should trigger any WASM destroy calls.
Even the task of something like:
function foo() {
  const pointerA = Jolt.createPointerObject()
  wasmItemB.obj = pointerA;
}

WeakRefs would destroy pointerA, even though it is now owned by itemB, because obj = pointerA is faking a backside setter to call something like u32 rawPointer1 = unwrap wasmItemB, u32 rawPointer2 = unwrap pointerA, emscripten_set_wasmItemB(rawPointer1, rawPointer2)
A secondary issue is something where we sometimes randomly do casts that just extract the raw pointers and rewrap them in other JS objects, discarding the first JS class (though webIDL still holds a ref internally, possibly forever):
const constraint = pathConstraintSettings.Create()
const pathConstraint = Jolt.castObject(constraint, Jolt.PathConstraint)

WebIDL by default does not work well at all for this technique, no. WebIDL will internally hold pointer refs to anything that you ever alloc'd but not free'd in WebIDL (like BoxShapeSettings) using getCache until destroy is called, and also for lots of the cases of just wrapped pointers as well.
When it's running in production, you will see these pointer storage refs in some extra Dictionary tacked onto the object, like Jolt.Vec3.Fma or Jolt.Vec3.nma, the name varying between compiles. This dictionary means that even if your JS functions have lost scope and a weak-ref could normally trigger, internally the inside of the Jolt library still holds a MemAddress -> Pointer ref that will keep the WeakRef from triggering.
Even if we didn't use WebIDL, I'm just not sure how we could make this work with the current C++  library given how much extra meta-data and control layers you'd need to add to markup every function as 'this method creates a controlled JS object, this one assumes control of it, this one returns a static, non-memory controlled item, this one deletes 3 or more memory-controlled items or an entire pool of cascading deletes on it's own (ex: destroy of a BodyManager)'. Possibly that is approaching the level of writing a custom GC framework on it's own.
Possibly if we had a way to extract that data we could capture 80%+ of it through a scrape of the code and some Bison/ANTLR language-parser, but for memory management of freeing, you really can't live with the extra 20 messing up and triggering a double-free and app crash.

Not sure, if there is much to add, but I personally think it is not viable. At least not today. It works well in Rapier, because wasm_bindgen supports WeakRefs and FinalizationRegistry. In contrast, webidl_binder (which is in use currently) doesn't. The only way would be to scrap it and move to Embind, but it has a downside of having a high runtime overhead compared to webidl_binder. This is the main reason Ammo has decided against using it. And if you ask me to chose between DX and performance, I pick performance over DX any time of the day.

@LeXXik Do you know if the performance overhead of Embind is practically relevant? This emscripten doc says it's 200ns per call (with the implication that WebIDL is less than this), but that doc was last edited a couple of years ago.
If Jolt is making thousands of calls into wasm every frame, then this could have a non-trivial performance impact, but I'm guessing it's a lot less than that?
Also seems like a lot of work has since been done with Embind. Wondering if @RReverser might have any comment on performance implications of switching from webidl_binder to Embind?

I haven't measured it, but trust Ammo made an educated decision. Perhaps, @kripken would offer an insight on his experience.

Yep definitely interested in kripken's thoughts here!

Same as no GC, if you ask me.

You're basically saying that the lack of spec-level timing guarantees means that GCs are an inherently useless technology? If so, I think the whole JS ecosystem disagrees :)
Or are you saying that Embind provides no mechanism at all for explicit freeing of memory? E.g. in case there are unpreventable allocations in a hot path that could do with an explicit free to prevent GC pauses? If that is the case, I guess it also goes in the "is this practically relevant" bucket, since even then the solution tends to just be "don't allocate in hot path".

One potential path is to split the difference between "recode for auto Gc in different Em framework" and the "webIDL default", by creating a helper library (optional for people to import) along side the main library that takes the commonly used classes that actually need GC and making a factory for them with this wrapper tacked on.
It would still be up to a user to know if it's safe to use that version since I'm not sure on edge cases of deleting some shape/constraint settings 100% on weak-ref, given I don't know if Jolt has cases it might assume ownership via a method call. Even EmBind seems to have the same problems without some additional work.
I'm still thinking through the gains vs cost of the auto-GC, on this project specifically, when it seems to primarily impact Settings objects and some of the core Math classes (Vec,Quat). Is it mainly just for those classes? The Jolt internal ref-counting is handling quite a bit behind the scenes once you've actually created a constraint/shape/body and passed it into the physics system for ownership.
On the math side, personally use 3-4 vectors and maybe 2 quat in my entire library and a heavy use of Vec3.Set and Quat.Set, and so do some of the 3d engines I've seen (a TempVector pattern)

WebIDL is still be faster today. For functions function exports I think the two can be made the same speed with some improvements to embind. For most workloads though, it seems the overhead of the binding layer is tiny compared to the work that is actually happens in Wasm. I've also seen some projects use embind for most of the API and if there is a really hot code path, use a plain C function export for that.

I've done something similar in another wasm project and although its not currently merged, it did work quite nicely.  IIRC references were tracked wasm side and so the finalization registry allow us to notify that the js side no longer needs the value.  Saved a ton of memory bugs and much simpler code for devs

I'm not sure if this is helpful at all - from latest version release notes:

Embind now supports return value policies to better define object lifetimes. See https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#object-ownership for more information.


Handling of duplicate attribute-names

Hello Esri Team.
First of all thanks for the hard work for the whole NetTopologySuite working with Polygons is so much easier than it should be thanks to your package.
Now to my current issue:
We recently got a bunch of shapefiles with duplicate attribute-names.
I was able to implement my own workaround so i can at least open these files (otherwise NuGet Version 1.0.0 would throw an exception when trying to open it due to trying to Add duplicate Values to a Dictionary)
However now we got shapefiles that actually contain needed Information in some of those dupllicate Attribute-Names.
I absolutely understand that this is not supported because I myself think it's in the exporters responsibility that all attributes have distinct names. However the Shapefiles are sent from government instituts and it's next to impossible to change anything in the near future there no matter how hard we would complain.
I've already pulled the Repository and created my own Version of it which can open shapefiles with duplicate attribute-names. So I'd be willing to implement the change for my version as well, however I'm not that familiar with the repository and if I could get an explanation on what I need to change I could do it myself. (And also pull the code back into the main-repository)
I was thinking of a similar solution to QGIS which imports all duplicate attributes with a trailing "_1" counting upwards for each found duplicate attribute-name.

I would appreciate any help. Even if it's just hints about what I have to look out for when implementing this change.
Thanks :)
Antragsschläge 2024 (4).zip
I've also attached a zip-file with this exact issue

Hi @MaximilianBottin, thank you for your kind words and for using the NetTopologySuite! We’re glad to hear that our package has made working with polygons easier for you.
As you rightly pointed out, ideally, shapefiles should not have duplicate attribute names, and this is typically the responsibility of the data exporter to ensure. However, given the constraints and the source of your shapefiles, we appreciate the need for a practical workaround. Your proposed solution to handle duplicate attribute names by appending a trailing "_1", "_2", etc., is fine.
Refer to the contribution documentation for details on how to implement this change.

I would love to fix this issue if you assign it to me.


Automated cherry pick of #1989: fix: qcloud reserved first, second and last ip for internal connection

Cherry pick of #1989 on release/2.8.0.
#1989: fix: qcloud reserved first, second and last ip for internal connection

/approve

/lgtm


fix: authn cleanup

Follow up for #7:

applied proper commit message
renamed AuthData.timestamp => AuthData.created_ns
renamed PublicKey.timestamp => PublicKey.created_ns
moved AuthData into Token
moved Secp256k1Uncompresed into PublicKey
ordered type definitions to have the contents first and inner types after

@mkobetic have you run npm i inside the repo?  Curious why commitlint actually let you commit without valid messages

It doesn't let me now, but it did with the previous PR, I'm not sure what was going on there. It may be that I ran npm i in the meantime somehow.


LWT stored on connect packet

The LWT for a client is stored on the server when a connect packet is received, while it should be stored when authenticate is resolved successfully. Storing it on the connect packet results in an unintended behavior. For example, if a client tries to connect but authentication is not resolved within the client's connection timeout, the LWT is still sent.

Would you like to send a PR for that?


Cage testing and building overhaul

In our internal code base, we've noticed a pattern where we have the following files:

Dockerfile.in: This contains two build arguments that are manually set using sed, and which are used in FROM lines. This can finally be replaced by ARG in the latest version of docker.
docker-compose.yml: Many individual service repos wind up recreating the info in placeholders.yml in a docker-compose.yml file for testing purposes.
Standard CI scripts: Build image, run tests (also needs docker-compose.yml), publish image.
Standard dev scripts: An isolated ./test.sh setup script that uses docker-compose.yml to run tests without cage. I'm not sure that this is necessary in any way, at least in most cases.

Some further issues have come up with Rust projects:

Passing limited Vault credentials to builds. Some builds may need to access either (1) internal package repositories or (2) private git repositories, which requires passing crendentials as build args in some cases. We can't pass credentials directly, because docker leaks them into the built image, but this doesn't necessarily prevent us from passing short-lived magic cookies that allow requesting credentials from elsewhere.
Caching compilation artifacts using named Docker volumes.
Multi-stage builds, where development, building and testing require a large image, but the final build would actually work quite nicely in an Alpine image.

It might be nice to be able to generate Dockerfile, docker-compose.yml, and maybe CI and dev scripts.
For instance, if you have a global placeholder postgres database, you might want to generate a docker-compose.yml that includes that placeholder for your tests. Running:
cage generate tests --placeholder db --placeholder redis

Would generate:
# docker-compose.yml
services:
  app:
    build: .
    image: <name of app>
    links:
      - db
      - redis
  db:
    image: postgres # imported from pods/placeholders.yml
  redis:
    image: redis # imported from pods/placeholders.yml

Stuff that goes in CI scripts and a shortcut test.sh is going to be very dependent on CI system, need for db initialization, test scripts, etc. So that may remain a user task.

This is definitely still an interesting issue. Certainly, --build-arg can replace Dockerfile.in, but the rest of the issues are still of interest.


nixos.locate: fix update-locatedb service failure

Things done

[X] Tested using sandboxing (nix-build --option build-use-chroot true or nix.useChroot on NixOS)
Built on platform(s)

[X] NixOS
[ ] OS X
[ ] Linux

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

It was failing with a Read-only filesystem failure due to the systemd
service option ReadWriteDirectories not being correctly configured.
Fixes #14132

Let's also backport to 16.03


Optimize serialization

Related: #80
Description

Updates Serialize.cdc & SerializeMetadata.cdc by replacing .concat with String.join <- credit to @bluesign for the suggestion

See these transactions comparing .concat (2167 gas) and String.join (7 gas) to join 500 strings without looping

Removes previewnet from flow.json

For contributor use:

[x] Targeted PR against main branch
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the standards mentioned here.
[x] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[x] Added appropriate labels

Codecov Report
Attention: Patch coverage is 95.91837% with 2 lines in your changes missing coverage. Please review.

Project coverage is 86.60%. Comparing base (02aab3f) to head (7f55229).
Report is 156 commits behind head on main.

Files with missing lines
Patch %
Lines

cadence/contracts/utils/Serialize.cdc
97.05%
1 Missing :warning:

cadence/contracts/utils/SerializeMetadata.cdc
93.33%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #132      +/-   ##
==========================================
+ Coverage   86.19%   86.60%   +0.40%
==========================================
  Files          18       18
  Lines         884      963      +79
==========================================
+ Hits          762      834      +72
- Misses        122      129       +7

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I think switch can be optimized with isInstance

Thanks for the suggestions @bluesign. Some quick comparisons indicate there doesn't seem to be much of a difference between switch and if let and isInstance seems to be less efficient if I understood you suggestion correctly.

Yeah they are pretty much same, but less code basically


refactor: monorepo

What's New
This forms the basic skeleton of the monorepo, it currently just uses some simple pre-install scripts to link things together. I'm conflicted whether we should use lerna, I tried it out abit, there are many nice features but some disadvantages as well.

lerna is a separate tool from npm, meaning we have to run lerna bootstrap on the root package to initialize the repo correctly. Failing to do so may cause the repo to be in unsupported state. E.g., the root package installs husky, if one just perform the usual npm install on the dashboard package, husky wont be installed and pre-commit hooks will not be ran.
lerna doesn't perform symlink of file:// packages. So we will have to "release" each of the packages, again, failing to do so will cause a bare npm install to fail as it can't find the dependencies. We don't actually have to publish the packages if we are using lerna to install the dependencies, as it will resolve them and symlink them locally.

In short, using lerna means we will have change the way we install dependencies. lerna is probably going to be very useful if we want to publish the packages but atm I'm not really sure if that is our goal. This repo is not really a library that can be published and reuse by other packages (although it could be with some work, so maybe using lerna could save us some potential tech debt?). Most likely the api-server will be "released" as a docker image, the dashboard would probably just be a tarball for nginx or some web servers.
Further Work
Now that the api-server and dashboard is in the same repo, there a couple of things we can do to improve the workflow.

Remove dependency on rclnodejs (and rmf) for the dashboard. This can be done several ways, one way is to

move e2e into a sub package under dashboard, the e2e devDependencies will be moved over there (this includes the api-server)
the dashboard still needs typing information from api-server, so a solution is to move the ros2 plugin "out-of-tree", so the dashboard will depend on api-server and dashboard/e2e will depend on api-server-plugin-ros2. This should decouple rclnodejs from the dashboard.
The api server is designed with plugins in mind, but some work still needs to be done for out-of-tree plugins to work nicely.

I'm having errors building on my local env. I cannot load the map. I'm not getting errors on the backend though.

I'm having errors building on my local env. I cannot load the map. I'm not getting errors on the backend though.

maybe rclnodejs is not built with the rmf messages? I think these error messages are propagated from the backend.

Hi @koonpeng, I built the docker images locally with those commands
# build rmf image
docker-compose -f <path-to-romi-dashboard>/packages/dashboard/docker/rmf/docker-compose.yml build --no-cache
# build e2e image
docker-compose -f <path-to-romi-dashboard>/packages/dashboard/docker/docker-compose.yml build --no-cache e2e

And I got these errors, sounds like it didn't copy the whole folder

dev_1        | [start:api] sh: 1: api-server: not found
dev_1        | [start:api] npm ERR! code ELIFECYCLE
dev_1        | [start:api] npm ERR! syscall spawn
dev_1        | [start:api] npm ERR! file sh
dev_1        | [start:api] npm ERR! errno ENOENT
dev_1        | [start:react]
dev_1        | [start:react] ><EMAIL_ADDRESS>start:react /root/romi-dashboard
dev_1        | [start:react] > . e2e/env.sh && react-scripts start
dev_1        | [start:react]
dev_1        | [start:api] npm ERR<EMAIL_ADDRESS>start:api: `api-server --port 50002 --trajectoryServerUrl ws://localhost:8006 --publicKey e2e/certs/keycloak.pub`
dev_1        | [start:api] npm ERR! spawn ENOENT
dev_1        | [start:api] npm ERR!
dev_1        | [start:api] npm ERR! Failed at the<EMAIL_ADDRESS>start:api script.
dev_1        | [start:api] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
dev_1        | [start:api]

dev_1        | [start:react] Failed to compile.
dev_1        | [start:react]
dev_1        | [start:react] /root/romi-dashboard/src/api-client.ts
dev_1        | [start:react] TypeScript error in /root/romi-dashboard/src/api-client.ts(2,41):
dev_1        | [start:react] Cannot find module 'api-server/src/api-gateway' or its corresponding type declarations.  TS2307
dev_1        | [start:react]
dev_1        | [start:react]     1 | import * as msgpack from '@msgpack/msgpack';
dev_1        | [start:react]   > 2 | import { RpcRequest, RpcResponse } from 'api-server/src/api-gateway';
dev_1        | [start:react]       |                                         ^
dev_1        | [start:react]     3 | import Debug from 'debug';
dev_1        | [start:react]     4 |
dev_1        | [start:react]     5 | const debug = Debug('ApiClient');

maybe rclnodejs is not built with the rmf messages? I think these error messages are propagated from the backend.

Yeah, that was it, I got an old version.
There is another problem, the setup script was affected somehow by the changes. Without the setup file we can't have the robots icons, the commands, or the dispensers.

I can give it a look tomorrow
HTH

And I got these errors, sounds like it didn't copy the whole folder

Did you do npm install on the packages?

And I got these errors, sounds like it didn't copy the whole folder

Did you do npm install on the packages?

I found the problem, we just were using the dashboard directory and not the whole romi-dashboard directory so we should use this configuration in the docker/docker-compose.yml file when we try to run
npm run start:docker

  dev:
    image: docker.pkg.github.com/osrf/romi-dashboard/e2e
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ../../..:/root/romi-dashboard
    working_dir: /root/romi-dashboard/packages/dashboard
    ipc: host
    network_mode: host
    privileged: true
    command: bash -c 'BROWSER=none npm start'

The difference with the current one is the following:
- ../../..:/root/romi-dashboard
    working_dir: /root/romi-dashboard/packages/dashboard

Yeah, that was it, I got an old version.
There is another problem, the setup script was affected somehow by the changes. Without the setup file we can't have the robots icons, the commands, or the dispensers.
I can give it a look tomorrow
HTH

Well, the setup.js script it's working it was an annoying typo. But in the docker env the dashboard now it's getting the resources from the repo directly instead of a folder inside the docker. Those changes went missing. I'll fix that when this is merged

I found the problem, we just were using the dashboard directory and not the whole romi-dashboard directory so we should use this configuration in the docker/docker-compose.yml file when we try to run
npm run start:docker

thanks for the investigation!


Intermittent missing quadkey value

It appears that returned image tiles are occasionally missing the quadkey tile identifier. There is limited information at this time but the following image demonstrates the problem.

I haven't been able to reproduce this. Do you have any more information at all? How often does it happen? Are the certain tiles or situations where it always or usually fails or does it just seem to be completely random?

Unfortunately no, it's been on my to-do list to investigate for a while. I have seen it happen once or twice, but never a clear indication why it would fail in such a way. My only theory was that it's somehow related to concurrency and that requesting lots of tiles concurrently might trigger it. Perhaps additional logging, or a review of any existing logs, would help direct the investigation.