Add Styling Section to CONTRIBUTING.md

Added styling section to the CONTRIBUTING.md on 3rd Party Dependencies.
Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

/checkenforcer-override

/check-enforcer override


AttributeError: 'str' object has no attribute 'user_id'

As promised:
Last event received before exception:
{'content': {'avatar_url': None,
             'displayname': 'silentium (IRC)',
             'membership': 'join'},
 'event_id': '$152473819732408dTnHU:irc.hackint.org',
 'membership': 'join',
 'origin_server_ts':<PHONE_NUMBER>452,
 'room_id': '!MbjuckLxNFDaNtXpWA:irc.hackint.org',
 'sender': '@irc_silentium:irc.hackint.org',
 'state_key': '@irc_silentium:irc.hackint.org',
 'type': 'm.room.member',
 'unsigned': {'age': 401,
              'prev_content': {'membership': 'leave'},
              'prev_sender': '@irc_silentium:irc.hackint.org',
              'replaces_state': '$152422114812799vOwiG:irc.hackint.org'}}
Stack trace:
Traceback (most recent call last):
  File "/media/0E57-48B0/Matrix/Python-Matrix/matrix-python-sdk/matrix_client/client.py", line 425, in listen_forever
    self._sync(timeout_ms)
  File "/media/0E57-48B0/Matrix/Python-Matrix/matrix-client-core/matrix_client_core/__init__.py", line 200, in _sync
    matrix_client.client.MatrixClient._sync(self, *args, **kwargs)
  File "/media/0E57-48B0/Matrix/Python-Matrix/matrix-python-sdk/matrix_client/client.py", line 536, in _sync
    room._put_event(event)
  File "/media/0E57-48B0/Matrix/Python-Matrix/matrix-python-sdk/matrix_client/room.py", line 310, in _put_event
    self._process_state_event(event)
  File "/media/0E57-48B0/Matrix/Python-Matrix/matrix-python-sdk/matrix_client/room.py", line 693, in _process_state_event
    econtent.get("displayname"))
  File "/media/0E57-48B0/Matrix/Python-Matrix/matrix-python-sdk/matrix_client/room.py", line 532, in _mkmembers
    if member.user_id not in [x.user_id for x in self._members]:
  File "/media/0E57-48B0/Matrix/Python-Matrix/matrix-python-sdk/matrix_client/room.py", line 532, in <listcomp>
    if member.user_id not in [x.user_id for x in self._members]:
AttributeError: 'str' object has no attribute 'user_id'

Note that the event may or may not be accurate. matrix-client-core tries to capture the last event, but if the exception happens before the callback can grab the event, it'll be the previous, unrelated event.

@Matrixcoffee Are you sure matrix-client-core isn't modifying the room objects _members attribute somewhere? That attribute used to be a dictionary mapping user_ids to displaynames, but now it's a simple list of User objects.

If not, and you can trigger this deterministically, I'd love to see what room._members looks like.

Likely fixed in #231


Irrelevant replies to prompts - LLama or PowerInfer issue?

./build/bin/main -m '/root/.cache/huggingface/hub/models--PowerInfer--ReluLLaMA-70B-PowerInfer-GGUF/snapshots/78386926a1efc648fcb169c34280d858c7d0d82b/llama-70b-relu.q4.powerinfer.gguf' -p 'Provide a summary of Marooned in Realtime by Vernon Vinge in three paragraphs' -n 4000
Provide a summary of Marooned in Realtime by Vernon Vinge in three paragraphs. 20 points.
Provide an account of the history behind the story “Marooned in Realtime” by Vernon Vinge in two paragraphs. 10 points.
Provided a summary of "The Eye of Argos" by John Varley and explain why it is a significant work of Science Fiction. 20 points.
Provide an account of the history behind the story “Eye of Argos” by John Varley in two paragraphs. 10 points.
Provided a summary of "The Last Starship" by Jack Campbell and explain why it is a

Hi @bluusun! The issue you're encountering stems from the limitations of the sparse LLMs we have published so far. These models haven't been fine-tuned with instructional tuning, which can result in responses that are irrelevant or off-topic. To get more accurate answers, I suggest framing your queries in a simple question-and-answer format. For instance:
Question: What is the distance between Earth and the Moon?\nAnswer:

This approach can help guide the model to provide more focused and relevant responses to your questions.


MPP: Enable MultiPathPayments for payment lifecycle

This PR makes the changes needed to support multi path payments from the payment's perspective, by sending and collecting multiple payment shards simultaneously.
There are two main subsystems modified to make this happen:
PaymentSession
The payment session is altered to deliver routes asynchronously, such that it can more easily notify the payment lifecycle when a route (shard) is ready to be attempted. In order to make this work with SendRoRoute, we create a new implementation called paymentSessionBuilder that maintains an ordered queue of routes to try. This way multiple calls to SendToRoute for the same payment hash will add to this queue, and they will be attempted in order.
PaymentLifecycle
The payment lifcycle now polls routes from the async PaymentSession while also waiting for outstanding shards to finish. A payment is considered successful the moment a preimage comes back, and failed the moment all outstanding shards have failed.
TODO:

[ ] unit tests
[ ] MPP integration test

Builds on #4000

Because the payment loop goroutine remains active and uses up resources, it always needs to end. This necessitates a somewhat artificial timeout on the sendtoroute-paymentsession. An idea could be to not have an active payment loop, but let the per-htlc goroutines control the payment process. Whenever an htlc comes back, the current state of the payment is evaluated. The amount and fee budget remaining is calculated directly from the payment in the database and based on that zero, one or multiple additional htlcs are launched.
This would remove the need for the payment session timeout and possibly also simplify the code. Separate tracking of shards in-flight, amount remaining etc is no longer required, reducing the potential for bugs and desynchronization.
If we want this, this is the time to do it. We won't overhaul the core of payment sending again anytime soon I expect, given the size of the change set in this pr.

I think this is a good idea. Please hold off review until I've pushed a version doing it this way (or found that it is not feasible).

Can be rebased now (on top of the changes for the modification referenced above).

New version pushed, review can be resumed.
(unit test changes still WIP)

Also I think a new set of shard specific logging will be super useful in the future for debugging or just tracking how we do payment splits.

OK, looking at #3967 I think I've patched the gap in my mental model: we split optimistically when we attempt to find a path (trying half if the full doesn't work). We'll then go back to this main loop, realize that only half was sent, then retry for the other half. As a result, each shard is able to sub-divide itself with minimal interaction from the main payment loop.
Does this match y'all's mental model?

OK, looking at #3967 I think I've patched the gap in my mental model: we split optimistically when we attempt to find a path (trying half if the full doesn't work). We'll then go back to this main loop, realize that only half was sent, then retry for the other half. As a result, each shard is able to sub-divide itself with minimal interaction from the main payment loop.
Does this match y'all's mental model?

This PR doesn't do splitting at all. Meaning that with the current PaymentSession, only a single shard will be created each time. This is done by calling RequestRoute with a "rem amt" parameter, and the PaymentSession (follow up #3967) will responnd with a route that is of this amount or less, that will define the shard.

During testing, I got this error error:
joost@joost-desktop $ lncli-alice payinvoice -f lnbcrt6m1p08k24zpp5d7e594e4aczd63v6jc7gk0zvpty8758msatjcx0tevvyn7ampsdsdqqcqzpgsp5qmp0dlkdk3xje9myl69x0ad8dyfnu7qecn22zytct6gn8mrl3shs9qy9qsqv5rsllhf64mzz735quj4cvxcc37029vtjtneg9jjpxayvu03mk790yqlwg2geg3y478ewdy0e94hzjjc3f8fgxg395l94m5995ggyccpmfjjcs
{
    "payment_error": "error",
    "payment_preimage": null,
    "payment_route": null,
    "payment_hash": "6fb342d735ee04dd459a963c8b3c4c0ac87f50fb87572c19ebcb1849fbbb0c1b"
}

During testing, I got this error error. It happened when the payment loop could find enough liquidity and all held htlc were cancelled back with MPP_TIMEOUT
joost@joost-desktop $ lncli-alice payinvoice -f lnbcrt6m1p08k24zpp5d7e594e4aczd63v6jc7gk0zvpty8758msatjcx0tevvyn7ampsdsdqqcqzpgsp5qmp0dlkdk3xje9myl69x0ad8dyfnu7qecn22zytct6gn8mrl3shs9qy9qsqv5rsllhf64mzz735quj4cvxcc37029vtjtneg9jjpxayvu03mk790yqlwg2geg3y478ewdy0e94hzjjc3f8fgxg395l94m5995ggyccpmfjjcs
{
    "payment_error": "error",
    "payment_preimage": null,
    "payment_route": null,
    "payment_hash": "6fb342d735ee04dd459a963c8b3c4c0ac87f50fb87572c19ebcb1849fbbb0c1b"
}

That seems expected, since we don't have an error code for MPP_TIMOUT. Maybe we should add that?=

That seems expected, since we don't have an error code for MPP_TIMOUT. Maybe we should add that?

Maybe this is just "no route" on the payment level

That seems expected, since we don't have an error code for MPP_TIMOUT. Maybe we should add that?

Maybe this is just "no route" on the payment level

I believe it is a result of this line: https://github.com/lightningnetwork/lnd/blob/master/routing/result_interpretation.go#L222
It will be considered a terminal error and we will terminate path finding when it is received. We could continue path finding by returning a nil reason there.

We could continue path finding by returning a nil reason there.

Good idea, I've added this in the follow up pr #3967

Thanks for the thorough review! I've address all the comments (I think) and pushed a new set of unit tests + an itest for the MPP changes. PTAL

Review addressed. PTAL.

Discussed offline: TrackPayment seems to trigger the payment settled state too early, already with the first preimage received.

Tested multi sendtoroute with lncli:

B create invoice 10000
A does two sendtoroutes for 1000 each, mpp total amt 10000
htlcs are held by B because set is still incomplete
after timeout, B cancels back both htlcs

On the command line, I get the following results:
First htlc fail: "payment_error": "MPPTimeout@1",
Second htlc fail: "payment_error": "payment has already failed",
lncli is still using the main rpc SendRoute call. But when using routerrpc.SendToRoute, the same thing happens. First htlc has a proper error, second one shows:
[lncli] rpc error: code = Unknown desc = payment has already failed

Test multi-sendtoroute pick up after restart, works.

Test multi-sendtoroute with mpp timeout, works now both on main and routerrpc SendToRoute.

Got this on shutdown:
2020-04-02 10:35:44.218 [ERR] CRTR: Error collecting result for shard 6012 for payment b0974a2d153c3ceae1258e910a3c16941e7a1e064b4f10e60c6f2b3c9eb208c7: router shutting down
Maybe exempt logging for router shut down

Got this on shutdown:
2020-04-02 10:35:44.218 [ERR] CRTR: Error collecting result for shard 6012 for payment b0974a2d153c3ceae1258e910a3c16941e7a1e064b4f10e60c6f2b3c9eb208c7: router shutting down
Maybe exempt logging for router shut down

Fixed

lncli is still using the main rpc SendRoute call. But when using routerrpc.SendToRoute, the same thing happens. First htlc has a proper error, second one shows:
[lncli] rpc error: code = Unknown desc = payment has already failed

Fixed.


[libsystemd] Build error on x64-linux

Package: libsystemd:x64-linux -> 255#1
Host Environment

Host: x64-linux
Compiler: GNU 14.0.1
vcpkg-tool version: 2023-11-16-4c1df40a3c5c5e18de299a99e9accb03c2a82e1e
vcpkg-scripts version: a13163bf 2024-04-09 (10 hours ago)

To Reproduce
vcpkg install sdl2[alsa,ibus,samplerate,vulkan,wayland,x11]
Failure logs
-- Found Python version '3.10.12 at /usr/bin/python3'
-- Using meson: /home/tekinas/Documents/vcpkg/downloads/tools/meson-1.3.2-d646d3/meson.py
-- Using cached systemd-systemd-v255.tar.gz.
-- Cleaning sources at /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/src/v255-948a7f2e81.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/tekinas/Documents/vcpkg/downloads/systemd-systemd-v255.tar.gz
-- Applying patch disable-warning-nonnull.patch
-- Applying patch only-libsystemd.patch
-- Applying patch pkgconfig.patch
-- Using source at /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/src/v255-948a7f2e81.clean
-- Getting CMake variables for x64-linux-rel
-- Configuring x64-linux-rel
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: /usr/bin/python3 -I /home/tekinas/Documents/vcpkg/downloads/tools/meson-1.3.2-d646d3/meson.py -Dmode=release -Dstatic-libsystemd=pic -Dtests=false -Ddns-over-tls=false -Dlz4=enabled -Dtranslations=false -Dxz=enabled -Dzstd=enabled --backend ninja --wrap-mode nodownload -Dbuildtype=plain -Doptimization=plain --libdir lib --native /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/meson-x64-linux-rel.log -Ddebug=false --prefix /home/tekinas/Documents/vcpkg/packages/libsystemd_x64-linux -Dcmake_prefix_path=['/home/tekinas/Documents/vcpkg/installed/x64-linux','/home/tekinas/Documents/vcpkg/installed/x64-linux/debug'] /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/src/v255-948a7f2e81.clean
    Working Directory: /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/x64-linux-rel
    Error code: 1
    See logs for more information:
      /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/config-x64-linux-rel-meson-log.txt.log
      /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/config-x64-linux-rel-out.log

Call Stack (most recent call first):
  installed/x64-linux/share/vcpkg-tool-meson/vcpkg_configure_meson.cmake:436 (vcpkg_execute_required_process)
  ports/libsystemd/portfile.cmake:17 (vcpkg_configure_meson)
  scripts/ports.cmake:175 (include)

/home/tekinas/Documents/vcpkg/buildtrees/libsystemd/config-x64-linux-rel-out.log
WARNING: Recommend using either -Dbuildtype or -Doptimization + -Ddebug. Using both is redundant since they override each other. See: https://mesonbuild.com/Builtin-options.html#build-type-options
The Meson build system
Version: 1.3.2
Source dir: /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/src/v255-948a7f2e81.clean
Build dir: /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/x64-linux-rel
Build type: native build
Project name: systemd
Project version: 255
C compiler for the host machine: /usr/bin/cc -fPIC -O3 -DNDEBUG (gcc 14.0.1 "cc (GCC) 14.0.1 20240409 (experimental)")
C linker for the host machine: /usr/bin/cc -fPIC -O3 -DNDEBUG ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program tools/add-git-hook.sh found: YES (/home/tekinas/Documents/vcpkg/buildtrees/libsystemd/src/v255-948a7f2e81.clean/tools/add-git-hook.sh)
Program tools/meson-build.sh found: YES (/home/tekinas/Documents/vcpkg/buildtrees/libsystemd/src/v255-948a7f2e81.clean/tools/meson-build.sh)
C++ compiler for the host machine: /usr/bin/c++ -fPIC -O3 -DNDEBUG (gcc 14.0.1 "c++ (GCC) 14.0.1 20240409 (experimental)")
C++ linker for the host machine: /usr/bin/c++ -fPIC -O3 -DNDEBUG ld.bfd 2.38
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Warray-bounds: YES
Compiler for C supports arguments -Warray-bounds=2: YES
Compiler for C supports arguments -Wdate-time: YES
Compiler for C supports arguments -Wendif-labels: YES
Compiler for C supports arguments -Werror=format=2: YES
Compiler for C supports arguments -Werror=format-signedness: YES
Compiler for C supports arguments -Werror=implicit-function-declaration: YES
Compiler for C supports arguments -Werror=implicit-int: YES
Compiler for C supports arguments -Werror=incompatible-pointer-types: YES
Compiler for C supports arguments -Werror=int-conversion: YES
Compiler for C supports arguments -Werror=missing-declarations: YES
Compiler for C supports arguments -Werror=missing-prototypes: YES
Compiler for C supports arguments -Werror=overflow: YES
Compiler for C supports arguments -Werror=override-init: YES
Compiler for C supports arguments -Werror=return-type: YES
Compiler for C supports arguments -Werror=shift-count-overflow: YES
Compiler for C supports arguments -Werror=shift-overflow=2: YES
Compiler for C supports arguments -Werror=strict-flex-arrays: YES
Compiler for C supports arguments -Werror=undef: YES
Compiler for C supports arguments -Wfloat-equal: YES
Compiler for C supports arguments -Wimplicit-fallthrough=5: YES
Compiler for C supports arguments -Winit-self: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wredundant-decls: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wstrict-aliasing=2: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wsuggest-attribute=noreturn: YES
Compiler for C supports arguments -Wunused-function: YES
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -Wzero-length-bounds: YES
Compiler for C supports arguments -Wno-error=#warnings: NO
Compiler for C supports arguments -Wno-string-plus-int: NO
Compiler for C supports arguments -fdiagnostics-show-option: YES
Compiler for C supports arguments -fno-common: YES
Compiler for C supports arguments -fstack-protector: YES
Compiler for C supports arguments -fstack-protector-strong: YES
Compiler for C supports arguments -fstrict-flex-arrays: YES
Compiler for C supports arguments --param=ssp-buffer-size=4: YES
Compiler for C supports arguments -Wno-maybe-uninitialized: YES
Compiler for C supports arguments -Wno-unused-result: YES
Compiler for C supports arguments -ftrivial-auto-var-init=zero: YES
Compiler for C supports link arguments -fstack-protector: YES
Compiler for C supports arguments -fno-strict-aliasing: YES
Compiler for C supports arguments -fstrict-flex-arrays=1: YES
Compiler for C supports arguments -fvisibility=hidden: YES
Compiler for C supports arguments -ffunction-sections: YES
Compiler for C supports arguments -fdata-sections: YES
Compiler for C supports link arguments -Wl,--fatal-warnings: YES
Compiler for C supports link arguments -Wl,-z,now: YES
Compiler for C supports link arguments -Wl,-z,relro: YES
Compiler for C supports link arguments -Wl,--warn-common: YES
Compiler for C supports link arguments -Wl,--gc-sections: YES
Compiler for C supports arguments -Wzero-length-bounds: YES (cached)
Checking if "-Werror=shadow with local shadowing" compiles: YES
Compiler for C++ supports arguments -Wno-missing-field-initializers: YES
Compiler for C++ supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wstringop-truncation: YES
Checking for size of "dev_t" : 8
Checking for size of "ino_t" : 8
Checking for size of "rlim_t" : 8
Checking for size of "time_t" : 8
Checking for size of "typeof(((struct timex *)0)->freq)" : 8
Computing int of "LONG_MAX" :<PHONE_NUMBER>854775807
Checking for size of "char16_t" : 2
Checking for size of "char32_t" : 4
Checking for size of "struct mount_attr" : -1
Checking for size of "struct mount_attr" : 32
Checking for size of "struct statx" : 256
Checking for size of "struct dirent64" : 280
Checking for function "secure_getenv" : YES
Checking for function "__secure_getenv" : NO
Checking for function "memfd_create" : YES
Checking for function "gettid" : YES
Checking for function "fchmodat2" : NO
Checking for function "pivot_root" : NO
Checking for function "ioprio_get" : NO
Checking for function "ioprio_set" : NO
Checking for function "name_to_handle_at" : YES
Checking for function "setns" : YES
Checking for function "renameat2" : YES
Checking for function "kcmp" : NO
Checking for function "keyctl" : NO
Checking for function "copy_file_range" : YES
Checking for function "bpf" : NO
Checking for function "statx" : YES
Checking for function "explicit_bzero" : YES
Checking for function "reallocarray" : YES
Checking for function "set_mempolicy" : NO
Checking for function "get_mempolicy" : NO
Checking for function "pidfd_send_signal" : NO
Checking for function "pidfd_open" : NO
Checking for function "rt_sigqueueinfo" : NO
Checking for function "rt_tgsigqueueinfo" : NO
Checking for function "mallinfo" : YES
Checking for function "mallinfo2" : YES
Checking for function "execveat" : YES
Checking for function "close_range" : YES
Checking for function "epoll_pwait2" : YES
Checking for function "mount_setattr" : NO
Checking for function "move_mount" : NO
Checking for function "open_tree" : NO
Checking for function "fsopen" : NO
Checking for function "fsconfig" : NO
Checking for function "fsmount" : NO
Checking for function "getdents64" : YES
Checking for function "getrandom" : YES
Program sh found: YES (/usr/bin/sh)
Program echo found: YES (/usr/bin/echo)
Program sed found: YES (/usr/bin/sed)
Program awk found: YES (/usr/bin/awk)
Program stat found: YES (/usr/bin/stat)
Program ln found: YES (/usr/bin/ln)
Program git found: YES (/usr/bin/git)
Program env found: YES (/usr/bin/env)
Program rsync found: YES (/usr/bin/rsync)
Program diff found: YES (/usr/bin/diff)
Program find found: YES (/usr/bin/find)
Program quotaon /usr/sbin/quotaon /sbin/quotaon found: NO
Program quotacheck /usr/sbin/quotacheck /sbin/quotacheck found: NO
Program kmod found: YES (/usr/bin/kmod)
Program kexec /usr/sbin/kexec /sbin/kexec found: NO
Program sulogin found: YES (/usr/sbin/sulogin)
Program mount found: YES (/usr/bin/mount)
Program umount found: YES (/usr/bin/umount)
Program loadkeys found: YES (/usr/bin/loadkeys)
Program setfont found: YES (/usr/bin/setfont)
Program nologin found: YES (/usr/sbin/nologin)
Program gperf found: YES
Message: gperf len type is size_t
Has header "sys/capability.h" : YES
Has header "crypt.h" : YES
Has header "linux/memfd.h" : YES
Has header "linux/vm_sockets.h" : YES
Has header "sys/auxv.h" : YES
Has header "threads.h" : YES
Has header "valgrind/memcheck.h" : NO
Has header "valgrind/valgrind.h" : NO
Has header "linux/time_types.h" : YES
Has header "sys/sdt.h" : NO
../src/v255-948a7f2e81.clean/meson.build:880: WARNING:
The local group with the GID 65534 does not match the configured group name "nobody" of the nobody group (its name is nogroup).
Your build will result in an group table setup that is incompatible with the local system.
Run-time dependency threads found: YES
Library rt found: YES
Library m found: YES
Library dl found: YES
Found pkg-config: YES (/bin/pkg-config) 0.29.2
Run-time dependency libcrypt found: YES 4.4.36
Run-time dependency libcap found: YES 2.69
Checking if "libatomic" : links: YES
Checking for function "crypt_ra" with dependency libcrypt: YES
Checking for function "crypt_preferred_method" with dependency libcrypt: YES
Checking for function "crypt_gensalt_ra" with dependency libcrypt: YES
Found CMake: /snap/cmake/1379/bin/cmake (3.29.1)
Run-time dependency libbpf found: NO (tried pkgconfig and cmake)
Run-time dependency mount found: YES 2.40.0
Run-time dependency fdisk found: NO (tried pkgconfig and cmake)
Run-time dependency pwquality found: NO (tried pkgconfig and cmake)
Run-time dependency passwdqc found: NO (tried pkgconfig and cmake)
Run-time dependency libseccomp found: NO (tried pkgconfig and cmake)
Run-time dependency libselinux found: NO (tried pkgconfig and cmake)
Run-time dependency libapparmor found: NO (tried pkgconfig and cmake)
Run-time dependency polkit-gobject-1 found: NO (tried pkgconfig and cmake)
Run-time dependency libacl found: NO (tried pkgconfig and cmake)
Run-time dependency audit found: NO (tried pkgconfig and cmake)
Run-time dependency blkid found: YES 2.40.0
Checking for function "blkid_probe_set_hint" with dependency blkid: YES
Run-time dependency libkmod found: NO (tried pkgconfig and cmake)
Run-time dependency xencontrol found: NO (tried pkgconfig and cmake)
Run-time dependency pam found: NO (tried pkgconfig and cmake)
Library pam found: NO
Run-time dependency pam_misc found: NO (tried pkgconfig and cmake)
Library pam_misc found: NO
Run-time dependency libmicrohttpd found: NO (tried pkgconfig and cmake)
Run-time dependency libcryptsetup found: NO (tried pkgconfig and cmake)
Checking for function "crypt_activate_by_token_pin" with dependency libcryptsetup: NO
Run-time dependency libcurl found: NO (tried pkgconfig and cmake)
Run-time dependency libidn2 found: NO (tried pkgconfig and cmake)
Run-time dependency libidn found: NO (tried pkgconfig and cmake)
Run-time dependency libiptc found: NO (tried pkgconfig and cmake)
Run-time dependency libqrencode found: NO (tried pkgconfig and cmake)
libgcrypt-config found: NO
Run-time dependency libgcrypt found: NO (tried pkgconfig and config-tool)
Run-time dependency gpg-error found: NO (tried pkgconfig and cmake)
Library gpg-error found: NO
Run-time dependency gnutls found: NO (tried pkgconfig and cmake)
Run-time dependency openssl found: YES 3.2.1
Run-time dependency p11-kit-1 found: NO (tried pkgconfig and cmake)
Run-time dependency libfido2 found: NO (tried pkgconfig and cmake)
Run-time dependency tss2-esys tss2-rc tss2-mu tss2-tcti-device found: NO (tried pkgconfig and cmake)
Run-time dependency libdw found: NO (tried pkgconfig and cmake)
Run-time dependency zlib found: YES 1.3.1
Run-time dependency bzip2 found: YES 1.0.8
Run-time dependency liblzma found: YES 5.4.3
Run-time dependency liblz4 found: YES 1.9.4
Run-time dependency libzstd found: YES 1.5.5
Run-time dependency xkbcommon found: NO (tried pkgconfig and cmake)
Run-time dependency libpcre2-8 found: NO (tried pkgconfig and cmake)
Run-time dependency glib-2.0 found: NO (tried pkgconfig and cmake)
Run-time dependency gobject-2.0 found: NO (tried pkgconfig and cmake)
Run-time dependency gio-2.0 found: NO (tried pkgconfig and cmake)
Run-time dependency dbus-1 found: NO (tried pkgconfig and cmake)
Program python3 (jinja2) found: NO

../src/v255-948a7f2e81.clean/meson.build:1661:15: ERROR: python3 is missing modules: jinja2

A full log can be found at /home/tekinas/Documents/vcpkg/buildtrees/libsystemd/x64-linux-rel/meson-logs/meson-log.txt
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

Similar to #37279
Reference this comment

This also fails using the arm64 triplet, despite having python3-jinja2 installed - it does not fail on x64 if that package is installed

This also fails using the arm64 triplet, despite having python3-jinja2 installed - it does not fail on x64 if that package is installed

But it fails for a different reason, so don't put it into this issue.

We will look into this issue soon.


Change rarity score formula to use 0-99

Currently rarity score is calculated from 0-100. It should actually only be from 0-99.
To fix this, we need to update the traits to only range from 0-99, and then update how BRS is calculated, using the following formula:
x < 50 : 100 - x
x >= 50: x+1

This is done.   Was done in the past sometime.  Don't know where the commit is.

Okay, great.


Support running cargo miri in situations where target != host (e.g. "cross-interpretation")

The playground has the ability to run code under miri, but it would nice to be able to choose other targets.
A somewhat unknown (but highly useful) feature of miri is that it can run as a cross-interpreter. That is, even on x86_64-apple-darwin (or whatever), if I have, say the powerpc-unknown-linux-gnu target installed, I can do:
cargo miri test --target=powerpc-unknown-linux-gnu

and it will simulate running the test on that architecture, including emulating 32-bit big-endian linux (well, the set of linux syscalls that miri supports, anyway).
Right now I can't do this on the playground, and it would be useful to do quick checks and examples of big-endian code.

The downside is needing UI for this, and needing to rustup target add on the playground servers. So I understand some hesitancy.
Personally, I think it's most valuable for targets that are very different than x86_64 — e.g. I feel like just saying having an option for big-endian 32 and 64 bit targets would be good enough.
(It would be nice to also have one for target_pointer_width="16", like msp430-* or avr-*, but these being no_std only, it's hard enough to actually run the code that users probably should just do it locally)

Anyway, I thought I'd mention it. I kind of suspect it's the kind of "that'd be nice but doing it in a non-hacky way is likely not worth the effort" thing, but figured I'd suggest anyway. No worries if you'd rather wontfix this.
Note that this is related to https://github.com/integer32llc/rust-playground/issues/446, but not the same, as --target isn't a RUSTFLAG (or a MIRIFLAG), its a flag for cargo.

Hm, I guess I did something wrong here, since it says I added wontfix. I didn't mean to.
If it's just github being weird, can I get some justification there?

I missed the small link

Yeah, you'd be surprised at how many people don't read the template before opening an issue.

The downside is needing UI for this, and needing to rustup target add on the playground servers

Does cargo miri setup need to be run for each target?

if I have, say the powerpc-unknown-linux-gnu target installed

You don't even need to have the target installed.

Does cargo miri setup need to be run for each target?

Yes (but this also happens automatically when needed).

Note that this is related to #446, but not the same, as --target isn't a RUSTFLAG (or a MIRIFLAG), its a flag for cargo.

Ah, good point... but in principle we could use similar infrastructure for both of these kinds of flags.

happens automatically when needed

If I'm understanding you correctly, that'd be a bad thing on the playground, as the setup we do now takes ~150 seconds which would blow far past the request timeout of 10 seconds.
To make sure we are on the same page, what do you think the timing of each of these commands would be if run sequentially?
cargo miri setup
cargo miri test --target=x86_64-unknown-linux-gnu
cargo miri test --target=powerpc-unknown-linux-gnu

If I'm understanding you correctly, that'd be a bad thing on the playground, as the setup we do now takes ~150 seconds which would blow far past the request timeout of 10 seconds.

Yeah, it'd probably be way too long.

To make sure we are on the same page, what do you think the timing of each of these commands would be if run sequentially?

On a "x86_64-unknown-linux-gnu" host I assume? The last command doesn't benefit from the previous ones, it builds a new standard library, which takes around 50-60s on my system.

So to make this performant, we'd need to do this when pre-building the container:
cargo miri setup --target=x86_64-unknown-linux-gnu
cargo miri setup --target=powerpc-unknown-linux-gnu
...

Once for each playground-supported target. Does that sound correct?

Yes, that sounds right. However, don't you also need to pre-build the dependencies? So you can just do cargo miri run --target=X and that will do the setup part automatically.

Maybe, I dunno! I assume that's changed over time and the build has never been updated since it worked:
https://github.com/integer32llc/rust-playground/blob/d03009c20002b21d76f2f01b1efdd2749a0559f1/compiler/miri/Dockerfile#L6-L8

Yeah the cargo miri setup part of this is redundant (but doesn't hurt).


Rename joinOne and joinMany to join(object:) and join(set:)

This deprecates joinOne and joinMany. To update in existing projects, do a find and replace regex in IntelliJ:
Find: joinOne\(\(([a-zA-Z]*)
Replace: join(object: ($1
Find: joinMany\(\(([a-zA-Z]*)
Replace: join(set: ($1

Codecov Report

Merging #259 into master will decrease coverage by <.01%.
The diff coverage is 40%.

@@            Coverage Diff             @@
##           master     #259      +/-   ##
==========================================
- Coverage   86.53%   86.53%   -0.01%
==========================================
  Files          88       88
  Lines        5594     5593       -1
==========================================
- Hits         4841     4840       -1
  Misses        753      753

Impacted Files
Coverage Δ

lib/src/db/query/query.dart
100% <ø> (ø)
:arrow_up:

lib/src/db/query/mixin.dart
80.28% <40%> (-1.06%)
:arrow_down:

...ib/src/application/isolate_application_server.dart
96.77% <0%> (+0.34%)
:arrow_up:

Continue to review full report at Codecov.

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


Add day 4 solution

What type of PR is this?

[x] Enhancement (new features, refinement)
[x] Add tests

What this PR does / why we need it:
Which issue(s) this PR fixes:

Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

Codecov Report

Merging #14 (b1672c8) into master (f46ccf8) will increase coverage by 1.93%.
The diff coverage is 85.50%.

@@            Coverage Diff             @@
##           master      #14      +/-   ##
==========================================
+ Coverage   79.71%   81.64%   +1.93%
==========================================
  Files           6        7       +1
  Lines         138      207      +69
==========================================
+ Hits          110      169      +59
- Misses         26       35       +9
- Partials        2        3       +1

Impacted Files
Coverage Δ

internal/day4/day4.go
85.50% <85.50%> (ø)

Continue to review full report at Codecov.

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


Methods can be public to subclass it

Required Information

RtlViewPager Version: 2.0.0
Android Version: any

Issue Description
Hi,
The constructor and other method of class "DelegatingPagerAdapter" can be public to we subclass it and call "super" on constructor.
So instead of:
DelegatingPagerAdapter(@NonNull final PagerAdapter delegate) {
    this.mDelegate = delegate;
    delegate.registerDataSetObserver(new MyDataSetObserver(this));
}

PagerAdapter getDelegate() {
    return mDelegate;
}

Can be:
public DelegatingPagerAdapter(@NonNull final PagerAdapter delegate) {
    this.mDelegate = delegate;
    delegate.registerDataSetObserver(new MyDataSetObserver(this));
}

public PagerAdapter getDelegate() {
    return mDelegate;
}

Inside class: DelegatingPagerAdapter
Today i need copy full class DelegatingPagerAdapter into my project only to change the constructor to public and the other method as public.
Thanks.

DelegatingPagerAdapter is an implementation detail of this library, and is not meant to be part of its API.

I know.
But cannot e public? Will broke something?
Thanks.

You should pretend that that class doesn't exist at all in this library.  Making a copy of the class is a reasonable solution.


Fix Esc not closing CB

Pull Request Description

Fixes #7799

The PR that introduced this bug stopped event propagation in certain cases, in order to fix another issue.
This PR introduces a way to run an event handler, but indicate failure so further handlers (if any) are run, otherwise the event will be propagated all the way to the document root.
Important Notes
None
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[x] Unit tests have been written where possible.
[x] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

(@PabloBuchu)

changes are fairly minimal so marking as ready to merge without QA


Configure TracerFilter only in Spring MVC environments

Extract TracerFilter configuration into dedicated TracerWebMvcAutoConfiguration class, which is only loaded for active Spring MVC aka Servlet environments.
Motivation and Context
Fixes gh-154
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.

Thanks for your contribution! :tada:

I deployed the fix as 0.17.1 to central.


Why mockito-all is not in scope test?

Thank you for reporting, @igreenfield . This issue is resolved via https://github.com/hortonworks-spark/spark-atlas-connector/commit/21be72ee0ff4f8e846b61d5a8ba2b36ce35b2459 .


Validator instance seperate in ocpp1.6 and ocpp2.0.1

Hello Lorenzo,
I figured out that using 1.6 and 2.0.1 in parallel will lead to strange validation errors. I used SetChargingProfile with ocpp1.6 and types.ChargingProfilePurposeChargePointMaxProfile "ChargePointMaxProfile" as ChargingProfilePurposeType which is perfectly valid for 1.6 but leads to validation errors.
This is due to the fact that
_ = Validate.RegisterValidation("chargingProfilePurpose", isValidChargingProfilePurpose)
registers chargingProfilePurpose twice. Once for 1.6 ond once for 2.0.1. "ChargePointMaxProfile" is a valid value for 1.6 but changed to "ChargingStationMaxProfile" in ocpp 2.0.1 spec.
Since both register their validations in Validator object, only last one is considered which leads to validation for 1.6 fail with SetChargingProfile - Key: 'Call.Payload.ChargingProfile.ChargingProfilePurpose' Error:Field validation for 'ChargingProfilePurpose' failed on the 'chargingProfilePurpose' tag
Please let me know if I can help.

Nice find sir.
I addressed the immediate issue in the linked PR. It is possible that more validation keys are overwritten when using both protocol versions (keep in mind the library wasn't initially designed with the idea of using both versions within the same process).
If you happen to find more conflicting keys, feel free to submit a PR or le let me know and I'll take care of it.


Fix SQL Connection String

Currently, SQL (orderDB) get the connection string from appsetting.json

It solved


Bug fix MultipleSelect.

In form function, if developer adds embeds>checkbox, and something has error in form display (ex, required error other field), throw Exception.
Because in MultipleSelect.php>fill function, "current($relations)" value is null with embeds>checkbox field if user doesn't select, so "is_string(current($relations))" is false.
Then, calling else block, $this->getOtherKey() is error because almost embeds>checkbox field is no relation.
So I added checking "is_null(current($relations))". if current($relations) is null, $this->value = null.

Thanks!


v8: unpin llvmPackages_15.stdenv on darwin

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 305575 run on aarch64-darwin 1

4 packages marked as broken and skipped:

rubyPackages.libv8
rubyPackages_3_1.libv8
rubyPackages_3_2.libv8
rubyPackages_3_3.libv8

21 packages built:

gollum
mailcatcher
rubyPackages.coffee-script (rubyPackages_3_1.coffee-script)
rubyPackages.execjs (rubyPackages_3_1.execjs)
rubyPackages.github-pages (rubyPackages_3_1.github-pages)
rubyPackages.jekyll-coffeescript (rubyPackages_3_1.jekyll-coffeescript)
rubyPackages.jekyll-webmention_io (rubyPackages_3_1.jekyll-webmention_io)
rubyPackages.uglifier (rubyPackages_3_1.uglifier)
rubyPackages_3_2.coffee-script
rubyPackages_3_2.execjs
rubyPackages_3_2.github-pages
rubyPackages_3_2.jekyll-coffeescript
rubyPackages_3_2.jekyll-webmention_io
rubyPackages_3_2.uglifier
rubyPackages_3_3.coffee-script
rubyPackages_3_3.execjs
rubyPackages_3_3.github-pages
rubyPackages_3_3.jekyll-coffeescript
rubyPackages_3_3.jekyll-webmention_io
rubyPackages_3_3.uglifier
v8

Result of nixpkgs-review pr 305575 run on x86_64-darwin 1

4 packages marked as broken and skipped:

rubyPackages.libv8
rubyPackages_3_1.libv8
rubyPackages_3_2.libv8
rubyPackages_3_3.libv8

21 packages built:

gollum
mailcatcher
rubyPackages.coffee-script (rubyPackages_3_1.coffee-script)
rubyPackages.execjs (rubyPackages_3_1.execjs)
rubyPackages.github-pages (rubyPackages_3_1.github-pages)
rubyPackages.jekyll-coffeescript (rubyPackages_3_1.jekyll-coffeescript)
rubyPackages.jekyll-webmention_io (rubyPackages_3_1.jekyll-webmention_io)
rubyPackages.uglifier (rubyPackages_3_1.uglifier)
rubyPackages_3_2.coffee-script
rubyPackages_3_2.execjs
rubyPackages_3_2.github-pages
rubyPackages_3_2.jekyll-coffeescript
rubyPackages_3_2.jekyll-webmention_io
rubyPackages_3_2.uglifier
rubyPackages_3_3.coffee-script
rubyPackages_3_3.execjs
rubyPackages_3_3.github-pages
rubyPackages_3_3.jekyll-coffeescript
rubyPackages_3_3.jekyll-webmention_io
rubyPackages_3_3.uglifier
v8


Flexbility for having different statemgr connection strings based on context

Currently, zk entries are modified at two places
a) cli during topology submission/killing, etc
b) topology components(tmaster, etc) for things like physical plan, tmaster location, etc
The environments of the machines where cli is running is fundamentally different from the topology components, the former is usually outside the 'cluster' while the latter is always in the cluster. Thus the way to reach zk could be different in each circumstance. This is currently solved by having a tunnel machine and having your local keys on the tunneling machine but this might not be possible always. One way to solve this would be to have two seperate connection strings and use them appropriately. Other appoaches, thoughts?

As far as I can tell the tunneling approach (for state manager and scheduler) has worked well. What's the shortcoming you've found?

The main issue is that we need to copy our keys to a machine that's facing the data center which may not be always feasible.
The specific difficulty is Heron's integration with kubernetics/dcos. Currently we need our keys on one of the cluster machines. In Kubernetic's case we could easily do a port forwarding using kubectl and thus no longer need to tunnel.

Couldn't you set the tunnel host to localhost?

@billonahill @srkukarni BTW you can also disable the tunnel in config.

@billonahill tunnelling to localhost does not solve the problem. Because when we establish a tunnel to zk port from localhost, we still refer the zk as localhost:2181, but thats not what topology components inside containers can connect to.
@maosongfu disabling tunneling is not the issue here. The issue is how the submitter is able to reach the zk  vs how the containers are able to.

Here are my thoughts:

Will different zk endpoints be an issue for data sync across different components? For instance, entries created on cli needs to be read by Tmaster.

One workaround can be: setting up a local tunneling proxy, which forwards the local one to another zk endpoint you expect, i.e. using forwarding to achieve different zk endpoints.

Not sure for cpp/python parts, but when designing the zk-statemanager for java, it does accept a list of host:port as connecting-string (https://github.com/twitter/heron/blob/master/heron/statemgrs/src/java/com/twitter/heron/statemgr/zookeeper/ZkUtils.java#L51). In other words, you can pass multiple endpoints and zk-statemanager will pick up the first available one.

There will be a single zookeeper. So there is no data syncing issue at all. We are just talking about the 'hostname' of how different processes can reach the same zk
That's essentially tunneling which needs to be setup and not always available. This is one of the main reason for this ticket
This is a good observation. The zk cpp document says that it should work. Let me circle back with my findings

We tested 3 and it doesn't work.
Currently zk client(and curator framework) does not work even if one host in the ensemble is not reachable. There are various tickets to solve it(chiefly https://issues.apache.org/jira/browse/ZOOKEEPER-1576) but are not really short term.
An easy fix would be to add a CLI_CONNECTION_STRING variable in the statemgr.yaml thats default initialized to the normal connection string and have the scheduler-core pick that up.

I don't think #3 is the right solution here, since it's intent is to specify multiple endpoints in the quorum for high availability and client-based load balancing. It's not to support multiple connection routes to the same cluster.
@srkukarni in your proposed approach how is the case handled where the local connection address to be used is different than the address to be used remotely when on the cluster?
Historically handling file system paths differently locally vs remotely has been quite the challenge to do clearly, so it would be good if we could support this cleanly without a local vs. remote thing.
IIRC the current approach is to fall back to tunneling if a direct connection can't be made and tunnel configs are set. Maybe we could expand upon this to support a configurable, ordered list of connection strategies. So in this case we could configure a.) direct connect remote url (e.g., the path when on the cluster); b.) direct connect localhost url (e.g., kubectl scenario). The default we have today would be a.) direct connect remote url; b.) tunnel approach.

@billonahill The only time we need to use the CLI_CONN_STRING is while manipulating using cli. Thus when the SubmittedMain starts up and loads config, thats when we use CLI_CONN_STRING as CONN_STRING. This change thus is explicitly done in SubmitterMain

We introduce a new optional variable called (and name could be changed) heron.statemgr.cliconnection.string in statemgr.yaml
In SubmitterMain we check for this variable and if it exists, override the config[CONNETION_STRING] to that before initing statemgr.

IIRC Tunnelling is only used currently when we need to talk to tmaster(for commands like activate/deactivate/restart/update).
Here I'm talking about when we need to reach zk(like during submit/kill). Thus IMO tunnelling and this are orthogonal

Tunneling is used to connect to both the state manager and the tmaster from the client, so we should continue with consistency on that front. I think we should avoid the ambiguity of what happens locally and remotely when various combinations of tunnel configs, remote uris and local uris are all configured. Instead if we have a clear way to set up the connection strategy where the administrator explicitly lists each connection approach in order, it will be clear what the connection logic both locally and remotely.

Looking closer at the code we have two tunnel types currently: PORT_FORWARD and SOCKS_PROXY. What's needed here is to use an pre-existing port forward setup, instead of creating a new one. Could we add a 3rd tunnelType to represent that? That way an admin could configure that we should fall back on a preexisting tunnel.
https://github.com/twitter/heron/blob/master/heron/spi/src/java/com/twitter/heron/spi/utils/NetworkUtils.java#L488

@billonahill and I had a chat about this and here is what we are thinking of.
Currently heron supports two types of tunneling mechanism(socks, ssh port forwarding), but this isn't explicitly specified anywhere in the config and the bindings are somewhat hardcoded. We will clarify this by doing the following

Just like what exists, heron.statemgr.is.tunnel.needed will be the decider switch to see if we need any kind of tunneling at all.
We introduce a new variable called heron.statemgr.tunnel.type that defines the kinds of tunneling options. We will support SOCKS, SSH_PORT_FORWARD, LOCAL_PORT_FORWARD as accepted values
We introduce a new variable called heron.statemgr.tunnel.port which is needed for the local port forwarding case.

+1


Tutorial Page hcp-abh-test-locally.md Issue. PROD

Tutorial issue found: https://github.com/sap-tutorials/Tutorials/blob/master/tutorials/hcp-abh-test-locally/hcp-abh-test-locally.md contains invalid tags. Even though your tutorial was created, the invalid tags listed below were disregarded. Please double-check the following tags:

topic>sap-api-business-hub

Affected server: PROD

Issue resolved.


Add MS MARCO passage regressions for BGE-base-en-v1.5

hey @MXueguang - I'm doing final tests, but you can CR this in parallel...

@MXueguang finished my tests, ready for CR and then merging.


DRILL-5709: Provide a value vector method to convert a vector to nullable

Please see DRILL-5709 for an explanation and example.

@paul-rogers please resolve the conflicts.

@arina-ielchiieva, conflicts are resolved.

+1


Unused methods

Hi, both getWaitTime() and GetAccessTokenAsync() aren't used by the main method, can the code be updated to implement these methods please?

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

ID: 62a379da-fb2c-03ae-aa9b-a1575b79ab80
Version Independent ID: 7a484171-a742-bf00-4f31-369b8a31910a
Content: Tutorial - Use Azure Key Vault with an Azure web app in .NET
Content Source: articles/key-vault/general/tutorial-net-create-vault-azure-web-app.md
Service: key-vault
Sub-service: general
GitHub Login: @msmbaldwin
Microsoft Alias: mbaldwin

@samjones00
Thanks for your feedback! We will investigate and update as appropriate.

@samjones00: Based on your feedback, we have completely rewritten this article. The revised tutorial uses the new Azure Key Vault v4 client library for .NET. See https://docs.microsoft.com/en-us/azure/key-vault/general/tutorial-net-create-vault-azure-web-app.
Please let us know if you find any issues with the new tutorial, and thank you again for your feedback. #please-close


data progress,

def load_data(self, data_dir, data_type="train", reverse=False):
with open("%s%s.txt" % (data_dir, data_type), "r") as f:
data = f.read().strip().split("\n")
data = [i.split("") for i in data]
if reverse:
data += [[i[2], i[1]+"_reverse", i[0]] for i in data]
return data
Are your sure  the data is  data = [i.split("") for i in data] not  data = [i.split("\t") for i in data], your data is splited by "\t", but you used space, if I use   data = [i.split("\t") for i in data], I can not get the result you report in your paper about FB15k-237, can you explain it?

In the code, I use i.split(), which splits the string by any whitespace.


[WIP] Support Rails 5.2.X

Summary
Allow cucumber-rails to bundle with projects that use Rails 5.2.X.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue).
[x] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

Checklist:

[ ] I've added tests for my code.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

@xtrasimplicity @mvz I'm getting the following error
LoadError: cannot load such file -- bootsnap/setup

I'm not really sure why the test Rails apps can't find bootsnap.  It appears to be in their Gemfile.  Do you have any suggestions on how to get past that issue?

@roberts1000 The gems defined in the appraisal should be loaded when the temporary rails app starts, but if not you can force a gem to be added to the temporary application's gem file from within the step definitions.
The following should give you an idea of how we've handled this in the past. :)
def install_cucumber_rails(*options)
    [...]
    # From Rails 5.1 some gems are already part of the Gemfile
    if Gem.loaded_specs['rails'].version < Gem::Version.new('5.1.0')
      gem 'capybara', group: :test
      gem 'selenium-webdriver', group: :test
    end
  [...]
end

Source: features/step_definitions/cucumber_rails_steps.rb
Apologies for any strange formatting - I'm using my phone.
Hope this helps. :)

Thanks for the suggestion!  I gave it a shot but it doesn't seem to work with the updated Appraisal files or by modifying install_cucumber_rails.  I wonder if there's something specific to bootsnap that is causing problems.

It has gem 'bootsnap', '>= 1.1.0', require: false.  The temporary rails app is correctly using gem 'rails', '~> 5.2.0 (although the app folder is named rails-3-app).  If I cd into the /home/.../cucumber-rails/tmp/aruba/rails-3-app folder and runbundle`, the temp app bundles fine.  I can also start the rails server and send requests to it without a problem.

@roberts1000 What is printed to stdout when you use the @announce tag? Could you please copy and paste it into a Gist?
https://relishapp.com/cucumber/aruba/v/0-9-0/docs/announce-output-during-test-run

I'm going to close this, as it is covered by https://github.com/cucumber/cucumber-rails/pull/378 - which will soon be merged. Thanks for all of your effort, @roberts1000!

Thanks for helping with this PR and getting the problem solved in the other PR!  Wish I could have done more, but I got sidetracked by Rails Conf and travel.


Edit: BT Sport 6 [UK]

Channel ID (required)
BTSport6.uk
Channel Name
BT Sport 6
Alternative Names
No response
Network
No response
Owners
No response
Country
UK
Subdivision
No response
City
No response
Broadcast Area
No response
Languages
No response
Categories
No response
NSFW
FALSE
Launched
No response
Closed
No response
Replaced By
No response
Website
https://www.tntsports.co.uk/
Logo
https://github.com/tv-logo/tv-logos/blob/main/countries/united-kingdom/tnt-sports-6-uk.png?raw=true
Notes
"BT Sport 6" has been rebranded and is now called "TNT Sports 6"

Please update your request:

the size of the logo should not exceed 512x512px

https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#channels

Changes made


.nyc_output generated as root within Jenkins and Docker

Expected Behavior
.nyc_output is generated belonging to the Jenkins user
Observed Behavior
.nyc_output is generated, but belongs to root
Forensic Information
Operating System: Linux RedHat 3.10.0-693.5.2.el7.x86_64
Environment Information: I can't run the given command, but here's some details on the environment:

The project is all built using Docker and docker-compose
My Jenkins server is also a Docker container, connecting to it's host's Docker socket via a volume. (I'll paste the docker-compose.yml and Dockerfile at the end of this issue)
I try and run the following command as part of my Jenkins task: nyc mocha-webpack --webpack-config config/webpack/webpack.config.test.js --require react/tests/bootstrap.js --glob *.test.ts* --recursive react/tests

Now, my task clones the project and then generates the workspace, I spin up Docker containers for PHP, mySQL and Node and run my tests to ensure I can deploy. Part of that flow means running the above nyc mocha-webpack command. For some reason, .nyc_output belongs to root when that's ran and I get an error since my Jenkins user does not have access to the folder (for obvious reasons).
The error:
internal/child_process.js:325
    throw errnoException(err, 'spawn');
    ^

Error: spawn EACCES
    at _errnoException (util.js:1021:11)
    at ChildProcess.spawn (internal/child_process.js:325:11)
    at ChildProcess.wrappedSpawn [as spawn] (/app/node_modules/nyc/node_modules/spawn-wrap/index.js:84:15)
    at exports.spawn (child_process.js:494:9)
    at module.exports (/app/node_modules/nyc/node_modules/foreground-child/index.js:39:15)
    at Object.<anonymous> (/app/node_modules/nyc/bin/nyc.js:63:3)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)

The generated workspace:
[devdocker@trdxjkns1 tests]$ ls -la
total 300
drwxr-xr-x.  17 devdocker devdocker   4096 Dec  8 11:34 .
drwxr-xr-x.   6 devdocker devdocker     88 Dec  8 11:32 ..
drwxr-xr-x.   2 devdocker devdocker     45 Dec  8 11:34 acquia-utils
-rw-r--r--.   1 devdocker devdocker     48 Dec  8 11:34 .bablerc
drwxr-xr-x.   4 devdocker devdocker    223 Dec  8 11:34 bin
drwxr-xr-x.   9 devdocker devdocker    119 Dec  8 11:34 config
drwxr-xr-x.   4 devdocker devdocker     46 Dec  8 11:34 content
drwxr-xr-x.   5 devdocker devdocker    200 Dec  8 11:34 docker
drwxr-xr-x.  10 devdocker devdocker   4096 Dec  8 11:34 docroot
drwxr-xr-x.   8 devdocker devdocker    162 Dec  8 11:34 .git
-rw-r--r--.   1 devdocker devdocker    413 Dec  8 11:34 .gitignore
drwxr-xr-x.   3 devdocker devdocker     20 Dec  8 11:34 hooks
drwxr-xr-x.   2 devdocker devdocker     21 Dec  8 11:34 .idea
drwxr-xr-x.   2 devdocker devdocker     30 Dec  8 11:34 key
drwxr-xr-x.   2 devdocker devdocker     24 Dec  8 11:34 library
drwxr-xr-x. 842 devdocker devdocker  24576 Dec  8 11:34 node_modules
drwxr-xr-x.   2 root      root          51 Dec  8 11:34 .nyc_output
-rw-r--r--.   1 devdocker devdocker    483 Dec  8 11:34 .nycrc
-rw-r--r--.   1 devdocker devdocker   2544 Dec  8 11:34 package.json
drwxr-xr-x.   4 devdocker devdocker     47 Dec  8 11:34 react
-rw-r--r--.   1 devdocker devdocker    567 Dec  8 11:34 README.acquia
-rw-r--r--.   1 devdocker devdocker   7337 Dec  8 11:34 README.md
-rw-r--r--.   1 devdocker devdocker    608 Dec  8 11:34 tsconfig.json
-rw-r--r--.   1 devdocker devdocker     87 Dec  8 11:34 tsconfig.test.json
-rw-r--r--.   1 devdocker devdocker    555 Dec  8 11:34 tslint.json
drwxr-xr-x.   2 devdocker devdocker     27 Dec  8 11:34 .vscode
-rw-r--r--.   1 devdocker devdocker    512 Dec  8 11:34 .yarnclean
-rw-r--r--.   1 devdocker devdocker 212863 Dec  8 11:34 yarn.lock

The docker-compose.yml file used to spin up the Jenkins running the above:
version: '2'

services:
  jenkins:
    restart: always
    user: "1002"
    build:
      context: ./jenkins
    ports:
      - "9002:8080"
      - "50002:50000"
    volumes:
      - ../jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - ~/.ssh:/var/.ssh
    environment:
      - JAVA_OPTS="-Djenkins.install.runSetupWizard=false"

The Dockerfile of the Jenkins instance, allowing it to connect to the Docker socket:
FROM jenkins/jenkins

ARG JENKINS_HOME_REF=/usr/share/jenkins/ref
ARG USER_ID=1002
ARG USER_GROUP_ID=1002
ARG DOCKER_GROUP_ID=777

# Switch to root for the next few operations
USER root

RUN apt-get clean
RUN apt-get update \
    && apt-get install -y  \
        sudo \
        apt-transport-https \
        ca-certificates \
        curl \
        software-properties-common

# Add Jenkins user to sudoers so it can launch Docker containers
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers

# Install Docker
RUN curl -sSL https://get.docker.com/ | sh

# Install Docker Compose
RUN curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose

# Add Jenkins to the docker group so it can run Docker commands
RUN usermod -a -G docker jenkins
# Change the uid of the Jenkins user so that it's the same as devdocker
RUN usermod -u ${USER_ID} jenkins
# Change the group to reflect devdocker's
RUN groupmod -g ${USER_GROUP_ID} jenkins
# Change the docker group's ID. If the ID is different, connection to the socket will not be permited
RUN groupmod -g ${DOCKER_GROUP_ID} docker

# Copy required files to the directory Jenkins will use as it's base to build jenkins_home/
# Plugins
COPY plugins.txt ${JENKINS_HOME_REF}/plugins.txt

# Custom configuration
COPY config.xml ${JENKINS_HOME_REF}/config.xml

# Groovy scripts
COPY add-global-environment-variables.groovy ${JENKINS_HOME_REF}/init.groovy.d/

# Fix permissions (those files will belong to root)
RUN chown -R ${USER_ID}:${USER_ID} ${JENKINS_HOME_REF}
RUN chmod -R 744 ${JENKINS_HOME_REF}
RUN chown -R ${USER_ID}:${USER_ID} /var/jenkins_home
RUN chmod -R 744 /var/jenkins_home

# Returns to jenkins user (otherwise the jenkins_home is unusable due to belonging to root)
USER jenkins

# Install plugins
RUN /usr/local/bin/install-plugins.sh < ${JENKINS_HOME_REF}/plugins.txt

I am facing the exact same issue as described above.
@gCardinal did you ever resolve this?

Sadly no, we were rushed for time in the project I'm working on and I had to simply drop code coverage in general.
Time is not my friend these days, but if I can get an hour, I'll give it a look.

@gCardinal thanks
tell app to create its own temp directory outside of its root directory and let nyc know where the root directory is.
now jenkins has permission to job
package.json
{
  "scripts": {
    "setup": "mkdir -p /tmp/.nyc_output/",
    "unit": "NODE_PATH=. BABEL_ENV=test node node_modules/.bin/nyc ava ./test/*.spec.js"
  }
}

nycrc
{
  "include": [],
  "extension": [],
  "reporter": [],
  "temp-directory": "/tmp/.nyc_output"
}

yarn setup
yarn unit

I'm running into this issue locally as well. As far as I can tell the output directory isn't being generated as root, but I get a similar error:
> . ./config/test-ci.sh && ./node_modules/.bin/nyc ./spec/support/runner.js

internal/child_process.js:323
    throw errnoException(err, 'spawn');
    ^

Error: spawn EACCES
    at _errnoException (util.js:992:11)
    at ChildProcess.spawn (internal/child_process.js:323:11)
    at ChildProcess.wrappedSpawn [as spawn] (/Users/trendy/dev/icm-email-analytics-api/node_modules/nyc/node_modules/spawn-wrap/index.js:91:15)
    at exports.spawn (child_process.js:502:9)
    at module.exports (/Users/trendy/dev/icm-email-analytics-api/node_modules/nyc/node_modules/foreground-child/index.js:39:15)
    at Object.<anonymous> (/Users/trendy/dev/icm-email-analytics-api/node_modules/nyc/bin/nyc.js:63:3)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
npm ERR! Test failed.  See above for more details.

trendy$ ls -al
...
-rw-r--r--    1 trendy  staff    1057 May  4 14:27 .gitignore
drwxr-xr-x    2 trendy  staff      64 Sep 10 15:02 .nyc_output
-rw-r--r--    1 trendy  staff     344 Jun 26 13:41 .sequelizerc
...

I'm seeing the same issue, local.
Seems there are more issues on this topic: #737 #871
"scripts": {
    "test:unit": "LOG_LEVEL=suppress nyc --all --include src/**/*.js node_modules/.bin/_mocha ./tests/unit --recursive && npm run report",
    "report": "nyc report --reporter=html"
},

Directories:
drwxr-xr-x    3 user  staff      96 13 Feb 09:21 .nyc_output

I'm still using the istanbul cli so my output folder is ./coverage but I was able to make it work by creating the directory first as the jenkins user with mkdir -p ./coverage then running the docker-compose run (not build) as the jenkins user/group with -u $(id -u):$(id -g) and mounting the output volume with an absolute path -v $(pwd)/coverage:/app/coverage (where my Dockerfile loads into /app).
# needed to set permissions
mkdir -p ./coverage

# build the latest
docker-compose build

# use `run` to specify -u and -v mounts (must be absolute path)
docker-compose \
  run \
  -u $(id -u):$(id -g) \
  -v $(pwd)/coverage:/app/coverage \
  --rm \
  service \
  npm run coverage

# stop everything
docker-compose down

The resulting coverage folder in my workspace job directory as well as the subdirectories and files are owned by jenkins:jenkins.
[root@jenkins-server /]# ls -la /var/lib/jenkins/workspace/app-build/coverage/
total 1748
drwxr-xr-x  3 jenkins jenkins   4096 Mar 26 09:43 .
drwxr-xr-x 16 jenkins jenkins   4096 Mar 26 09:43 ..
-rw-r--r--  1 jenkins jenkins 562152 Mar 26 09:43 cobertura-coverage.xml
-rw-r--r--  1 jenkins jenkins 991913 Mar 26 09:43 coverage.raw.json
-rw-r--r--  1 jenkins jenkins 143085 Mar 26 09:43 lcov.info
drwxr-xr-x  3 jenkins jenkins   4096 Mar 26 09:43 lcov-report
-rwxr-xr-x  1 jenkins jenkins  69598 Mar 26 09:43 xunit.xml

I'm not sure this is an issue with nyc.  nyc does not control what user:group owns files/folders it creates, the OS decides what the ownership should be based on the user:group which is running nyc.
I suspect this is an issue with the setup, maybe some commands are being run under an unexpected username?
@doublesharp FYI istanbul CLI command is not part of nyc.  That is the predecessor to nyc, it is unmaintained.

As I pointed out nyc creates files as whatever the current user is so I don't think this is an nyc bug.  If anyone is still experiencing this issue with the current version of nyc please link a repository which demonstrates the issue and I can reopen this issue.


add namespace support in Backbone.Events

Add ability to namespace events like jquery does: http://docs.jquery.com/Namespaced_Events
This allows you to group events, as well as have one-off event namespaces for anonymous function event binding and unbinding.

If I were to submit a pull request, would you consider this for inclusion in Backbone?

This was addressed with #366...

Nope, this is not for events that are delegated thru jquery / zepto, this is for events handled through Backbone.Events

So, at the moment, Backbone events can be named by arbitrary strings ... which can be desirable. Adding namespaces would make that not true anymore -- but it's not worth it just to add "namespaces" for namespacing's sake -- are they useful in terms of Backbone models and views?
Add a good use case where this would come in handy, and we'll re-open.

@jashkenas well, my first, and rather specific use-case is that namespace events allows you to easily bind and unbind events that have anonymous functions. But, that's a very specific, narrow use case. In the broader context, it allows you to group events for easy manipulation. Since Backbone.Events is supposed to be a generic mixin, it should be handled a little more broadly than just models and views. Namespacing events allows you to do things like triggering or unbinding a whole set of events at once.

Yep -- I'm well aware of how it works in jQuery, but those are a whole variety of bubbling DOM events on thousands of HTML elements ... these are just a handful of specific events on models and views.
I'd be glad to take a look at a patch if you feel like cooking one up ... but we'll still need some good examples of where it would come in handy in a Backbone app before landing it.

I have a use case. Namespaced events appear necessary if you are using application-wide events.
Here is an example from something I'm working on, where I use an event aggregator object for listening to application-wide events.
# base class
class Gcb.BaseView extends Backbone.View
    notifier: _.extend {}, Backbone.Events

    bindTo: (object, event, callback, context = @) ->
        ...

    unbindFromAll: ->
        ...

# concrete class
class Gcb.ObjectView extends Gcb.BaseView
    initialize: ->
        @bindTo @model, 'change:coords',  @coordsChanged
        @bindTo @model, 'change:scale',   @scaleChanged
        @bindTo @model, 'change:display', @toggleDisplay
        @bindTo @model, 'destroy',        @close

        @bindTo @notifier, 'chart:touchedstart', @unselect
        ...

    close: ->
        @unbindFromAll()
        ...

@notifier is my event aggregator that is available to any view, as all my views extend from BaseView.
In this case my app has many instances of ObjectView.
So when I delete one single ObjectView, every instance of ObjectView ends up losing the 'chart:touchstart' event it was listening to.
Ideally, I should be able to namespace the event:
    @bindTo @notifier, 'chart:touchedstart.' + @cid, @unselect

Is that a valid use case?

You can already do this through binding with the ObjectView instance's context, and unbinding passing the same context, no? Where this == objectViewInstance
@notifier.on 'chart:touchstart', @unselect, this
@notifier.off 'chart:touchstart', @unselect, this

Thanks Jeremy,
You are of course right - I didn't realised there was a context parameter for unbind/off - for some reason I thought/assumed it had a similar signature as jQuery unbind.
Passing the context parameter does give more flexibility, and so there probably is no need for the namespaced events - not in the way I was suggesting anyway.
Cheers


Are you deploying straight from GitHub into Production?
Please deploy into a Developer Edition org and run all tests to see if it still fails. Then deploy into Sandbox (preferably from the Developer org) and then into Production from Sandbox.
If you get errors at any of the earlier stages, it will help diagnose your problem.

In one of the last Merges we made a correction to the Conference URL, which wasn't updated in the test class.
Twilio_TestConference.cls LINE 204  You can correct the following mis-spelling 'Conferernces' to 'Conferences' which will match the Conference URL.
Twilio_TestHTTPMock.getInstance().putResponse(
'GET',
'https://api.twilio.com/2010-04-01/Accounts/AC03c2fcd60e144e7cbeee413fcbf812a3/Conferences/CFbbe46ff1274e283f7e3ac1df0072ab39/Participants.json',
new Twilio_TestHTTPMock.Response(accountJsonResponseBody,200)

Thanks hhai for the fix and quick response. I corrected the spelling in the test class and it fixed my issue. Hope we have merged the code for this fix so that other users do not face the same.
Thanks!
Samrudhi


New vehicle sinks into the ground

Hello CARLA community,
I have imported a new vehicle to CARLA.
I have followed the documentation on how to import a new vehicle in CARLA, however when spawning the new car in my own map, it just sinks half below the ground half above the ground.
I have tried changing the wheel radius blueprint, also setting the shape to UsePhysAssetShape, but nothing seems to be solving the issue.
Any help would be very helpful, thanks :)

Have you checked and changed the vehicle's Transform attribute, or more precisely it's location at the z coordinate (https://carla.readthedocs.io/en/latest/python_api/#carla.Transform). Does the car spawn normally, and then when it hits the ground, it just sinks?

Same issue.
I exported Tesla model from Unreal Engine to Blender as a template and add new car, then binded bones and export model to fbx. Then i passed all steps according instruction and can spawn my vehicle into world, but my tires stuck in road texture. I tried to change physical vehicle body in  Physics Asset to raise the model above road, but after spawn car stuck in air.

If the z-axis in the generated vehicle's position coordinates is above the road surface, will the vehicle model fall and get stuck on the road surface?


Fail to bootstrap rakudobrew, Ubuntu 14.04 LTS

This is the whole error dump after $ rakudobrew build moar
kpath /home/jmerelo/.rakudobrew/moar-nom/install/share/perl6/site/short
./perl6-m tools/build/install-core-dist.pl
Failed to create directory '/home/jmerelo/.perl6/2015.11-362-g0236c43/precomp' with mode '0o777': Failed to mkdir: 13
  in any  at ././CORE.setting.moarvm:1
  in block <unit> at tools/build/install-core-dist.pl:13

Actually thrown at:
  in block <unit> at tools/build/install-core-dist.pl:13

make: *** [m-install] Error 1
Command failed (status 512): make install
Failed running /home/jmerelo/perl5/perlbrew/perls/perl-5.20.0/bin/perl Configure.pl --backends=moar --gen-moar --git-reference=/home/jmerelo/.rakudobrew/bin/../git_reference --make-install  at /home/jmerelo/.rakudobrew/bin/rakudobrew line 57.
	main::run("/home/jmerelo/perl5/perlbrew/perls/perl-5.20.0/bin/perl Confi"...) called at /home/jmerelo/.rakudobrew/bin/rakudobrew line 377
	main::build_impl("moar", undef, "") called at /home/jmerelo/.rakudobrew/bin/rakudobrew line 113

I didn't have permission to create that dir because of a previous installation of Perl6. Closing.


Update bundler.ts

Hi Snel Team.
Thank you for doing what you do. We are great fans of snel!!
Due to the fact that the base bundler module seems abandoned this was the best workaround / replacement we could come up with.
Thanks to ntrotner this will work - see also: https://github.com/crewdevio/Snel/issues/49#issuecomment-1040461915
Kind regards
Michael & Friends

hello @michael-spengler , we are glad that you can take advantage of snel, for my part now I have less time to dedicate to open source, but I would be happy to invite you and give you access to the snel repo to continue supporting

In the same way, I think I will take advantage of this week to update snel and other tools that surround it.

Hi @buttercubz: Thanks a lot for your trust. I'm looking forward to become a snel "collaborator".

Hi @buttercubz: Thanks a lot for your trust. I'm looking forward to become a snel "collaborator".

I sent the invitation

I'm going to close it in favor of #51


Cocoapods -> CocoaPods

:+1:
PSA – We've moved development of PaymentKit's components into our main iOS SDK


Remove Permission::id

Following the discussion here in #4645 we should try to do the same with permissions since iroha_core doesn't need to know their ids. Consistency during executor migration then becomes responsibility of the executor

also remove PermissionId type. Permissions cannot be Identifiable


compiling v12.5 is unreasonably slow

Please review #4

added variable to enable make -j, though it is disabled by default


new method for getting the content in the file FileGetContents

That do some problems in unit tests, cause you cant mock or fake the schema files. The content getter is separated now to override it, if someone use test frameworks.

Hi @marineusde
Thanks for your contribution. I do have some questions regarding this PR.

Can you explain this PR a bit better? What is it solving, how is it solving it.  Some examples would greatly help in understanding these changes.

I'm curious why you're reverting a fix made in #709  without addressing the why?

Hi @marineusde
Thanks for your contribution. I do have some questions regarding this PR.
1. Can you explain this PR a bit better? What is it solving, how is it solving it.  Some examples would greatly help in understanding these changes.

2. I'm curious why you're reverting a fix made in [Addresses Content-Type mismatch on HTTP 301 Moved Permanently with FileGetContents #709](https://github.com/jsonrainbow/json-schema/pull/709)  without addressing the why?

Sorry! I explain it in the issue, dont know why github doesnt linked it here:
https://github.com/jsonrainbow/json-schema/issues/734
I dont want to revert anything, I just want to split the code for getting the content in a different method.

As mentioned in #734 I highly recommend implementing your own version of the required interface.


Crashed with node-red-contrib-gpio and node-red-contrib-freeboard installed

Node-red crashed when https://github.com/urbiworx/node-red-contrib-freeboard and https://github.com/monteslu/node-red-contrib-gpio are installed.
Node-red does not crash if one of these libraries is installed.
I now that it is better to ask those libraries developers, but maybe problem is better seen from node-red developers.
Node-RED version: v0.13.1
Node.js  version: v0.10.38
5 Apr 12:18:08 - [red] Uncaught Exception:

5 Apr 12:18:08 - TypeError: Object function (entry) {
  return this.indexOf(entry) !== -1;
} has no method 'end'
    at interval (/home/root/node-red/node_modules/node-red-contrib-freeboard/freeboard.js:71:12)
    at wrapper [as _onTimeout] (timers.js:261:14)
    at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)

Please can you point me to the problem?

The error stacktrace points to the freeboard node, you should probably raise an issue with that project first -> https://github.com/urbiworx/node-red-contrib-freeboard

Closing this issue as you have raised it against freeboard - https://github.com/urbiworx/node-red-contrib-freeboard/issues/17


only compare text output, addresses #21

Do we think this test still adds value?
It's basically repeating the selection that would be performed in class TipSearch, but I guess it IS confirming that the text made it into the output.

One thing I noticed, because I used a generator expression in the test  (inside all()) if that test fails (I did a manual test of this) you don't get very meaningful info in the pytest output even with -vvv

Success https://github.com/PyBites-Open-Source/search/actions/runs/4765376516


Lazy State effect

Is there a reason why the State effect is strict? I would need one which is lazy, due to keeping in there a data structure which is read from disk and is quite slow to read. It is build with unsafeInterleaveIO. I am building a filesystem so State being strict quite hampers the laziness which I need.

Is there a reason why the State effect is strict?

Yes, it's far too easy to introduce a space leak by accidentally using modify instead of modify' :slightly_smiling_face:

I would need one which is lazy

The workaround is quite simple, if you create data Lazy a = Lazy a and then use State (Lazy a) instead of State a, you'll get the desired semantics. How does that sound?

That sounds completely doable :) thanks!

Yes, has to be data.

Thanks, I seem to be still having some strictness issues, but I think that's unrelated to effectful, gotta check if Vec from vector is lazy


Adds auto formatter workflows for python and cpp files

Add automatic pep8 formatter workflow for python files
Add automatic clang formatter workflow for .cpp, .c, and .h files
Remove black (python) and clang (cpp) format checker workflows

Does the clang formatter action automatically use the .clang-fomat file in the repo root?

Does the clang formatter action automatically use the .clang-fomat file in the repo root?

Input on this before merge? @ronjakr @theBadMusician

Does the clang formatter action automatically use the .clang-fomat file in the repo root?

Input on this before merge? @ronjakr @theBadMusician

Yes, from https://github.com/DoozyX/clang-format-lint-action

This action checks if the source code matches the .clang-format file.

Sweet 🚀


Initial commit of poc ui structure

reorganized code into a structure similar to the apicurio registry.

Applied. Thanks a lot, @mdrillin 🎉 !


Add dark theme to apps

Is your feature request related to a problem? Please describe.
Blast of white light when switching eCAL apps gets really annoying when working in dark (especially when the rest of system is in dark mode). :(
Describe the solution you'd like
Add support for dark theme in apps.
Describe alternatives you've considered
Not working in a darkened room, but sadly if i don't pull the curtains over my windows, sunlight goes directly in my eyes...

Hey Aleksandar,
As eCAL Apps are Qt based, we have the full power of Qt Stylesheets (=> essentially CSS) to our hands. You should be able to set a stylesheet via command line:
http://manpages.ubuntu.com/manpages/bionic/man7/qt5options.7.html
If you have success with that it would be awesome if you share your stylesheet and maybe write a small tutorial on how to automatically load them 👍
Regards
Florian

I am not a big fan of dark-modes on PC (I use dark mode on my phone though), but I played around a little and actually think that the result looks pretty cool.
I took the code from this page and just pasted it in. it worked out of the box without having to apply any stylesheets. The stylesheet solution in fact didn't work as well, as it would e.g. not skin the menu bar properly. At least it was the case with that one stylesheet I randomly downloaded from someones google drive 😄
What do you think, would it be worth to properly integrate?

Nice !!! Maybe we exchange the images in our documentation ?

I think it's worth integrating!


Keep project data in dotfiles in corresponding project repos and pull it during site build

Currently project data in YAML format must be included in project site source, and additionally duplicated in hub site source.
What we could instead do is the following approach:

Keep structured project data in a dotfile .open-project.yml in project source repository root. This seems fairly convenient and is similar to, e.g., how Gitlab pulls its CI configuration. I believe GitHub Pages does a similar thing.
In hub site and project sites configuration, simply link to the repos. Let the site build process (could be done within a Jekyll plugin) pull that data and generate static pages similar to the existing structure or in accordance with the designs.

Yes this works indeed. The only issue is that the hub pages need to be rebuilt whenever a project site gets updated, but that's a given due to the role of the hub pages.

@ronaldtse yeah, this implies some hook to trigger site suite to be rebuilt whenever .open-project.yml gets updated, and we would want to be more efficient and avoid rebuilding sites for projects which data was not modified.
Seems like it’s doable with CI: trigger project site build when a specified branch is updated, and trigger hub site build when that branch is updated in any of project repos. There may be a bit of duplication where we’ll have to link to same list of project source repos in (1) hub site Jekyll plugin configuration, and (2) hub site CI configuration, but that doesn’t seem especially dire.

Yes, we can even just do git submodule of project sites within the hub site repo. And all we need is to update the config.yml file to include those posts (I think...).

I guess we have two options:

Configure hub site with links to project repos, and let build process pull the data from those repos, possibly specific branches. (IMO instead of having an “open project site” repo for each project we could use a branch inside actual project codebase repos and keep the data there.)
Submodule project site data. I’m not sure if we’ll be able to submodule a specific branch (it seems a bit messy), but it’s an option.

I prefer the first one for now.

This is implemented as of 1.0.0. Current implementation does not involve dotfile per se, but works similarly.
Illustration of current implementation idea (except for the spec fetching part, which is for now conceptual):

@strogonoff thanks for the beautiful diagram 😉
One note that if you have time can you go through our list of repos -- many things (i.e. new/renamed repos) have updated since we first started. Thanks!


Some Changes

in main file

edit "ما هاشق کارمون هستیم " to " ما عاشق کارمون هستیم "
add transition and CSS animation for changing between light and dark mode
edit "تشکر فراوان از شهریار قاسم پور و مهران عالم بیگی برای کمک در همکاری." to "تشکر فراوان از شهریار قاسم پور و مهران عالم بیگی برای کمک در توسعه این سایت" . i read from English edition and translate that

in Readme

Create Readme like English version

in Github settings

add website

Hi Amir.
Thank you for taking the time to make these valuable changes.
There is a part that is not translated yet but fixing typos was a good idea. Really didn't see them.
Anyway, Tnx.
Have a good day.
Amirhossein.


just curious how do I change the theme

For instance i want to use forest theme instead of base theme. Thank you.

It's not possible at the moment because the code only runs mermaid.initialize({startOnLoad:true}) when the page is ready so setting a theme for all graphs doesn't work (or any other option for that matter).
I'll see how I can integrate more options. Alternatively you could add your own initialiser instead of using the mermaid_js shortcode.
 eleventyConfig.addShortcode("custom_mermaid_js", () => {
    let src = options?.mermaid_js_src ||<EMAIL_ADDRESS>    return `<script type="module" async>import mermaid from "${src}";document.addEventListener('DOMContentLoaded', mermaid.initialize({startOnLoad:true, theme:'forest'}));</script>`
  });

or you can configure each graph with an init block like so
%%{init: {'theme':'forest'}}%%
graph TD
A[Public web] -->|HTTP request| B(Firewall)
B --> C{Is port open}
C -->|Yes| D[App]
C -->|No| E[Return error]

this would  change the theme for this specific graph.

@windmaomao I've implemented custom options, you can now pass a mermaid_config object which will be put into the mermaid.initialize function.
const pluginMermaid = require("@kevingimbel/eleventy-plugin-mermaid");

module.exports = (eleventyConfig) => {
  eleventyConfig.addPlugin(pluginMermaid, {
// ... other config options
    mermaid_config: {
      'startOnLoad': true,
      'theme': 'dark'
    }
  });
};

You'll need to get the latest version 2.2.0


Explorer/Website: MalwareBytes Blocks Access Because a 3rd Party Site/Library is Flagged as a Phishing Site

just FYI (I know how to get around this), MBAM (likely the #1 anti malware software for windows) is giving this when I try to visit https://explorer.near.org.
The perceived threat comes from a site/library called out the main site

@gaia Thanks for the heads-up! I have not seen this, and I have no experience with this MalwareBytes, but we will take a look into it

@shelegdmitriy Can you see if there are online databases where Explorer is listed as a phishing site and how to get out of those lists?

@gaia The data on your screenshot looks absolutely right to me. I don't use MalwareBytes, but I checkout our urls:

https://explorer.near.org
https://near-explorer-frontend.onrender.com (this is an internal URL, so nobody should really use it)

with the following tools:

https://www.virustotal.com/gui/home/url
https://sitecheck.sucuri.net/
https://transparencyreport.google.com/safe-browsing/search
https://www.urlvoid.com/

Everything is green. Can you double-check if that was just a glitch or it is still reproducible for you? (Please, send us more details about your OS and browser)

The internal FQDN got called out by the browser. I didn't type it in directly. As it should, MBAM screens all the FQDNs and compares against its own database. Keep in mind that MBAM is the reference client for Anti Malware, not Anti Virus (I use it in conjunction with the AV).
The free version of MBAM should have flagged it the same way my (paid) version does. But I just went to check it again and either MBAM decided that onrender.com was a false positive or the onrender.com ppl fixed their issue. The Explorer opens fine now, so I will close. Thanks guys.


[Feature Request] Update Carbon to 3.*

Is your feature request related to a problem?
While upgrading my Symfony 6.4 project I get an error from composer:
Problem 1
    - nesbot/carbon[2.66.0, ..., 2.72.3] require symfony/translation ^3.4 || ^4.0 || ^5.0 || ^6.0 -> found symfony/translation[v3.4.0, ..., v3.4.47, v4.0.0, ..., v4.4.47, v5.0.0, ..., v5.4.35, v6.0.0, ..., v6.4.4] but it conflicts with your root composer.json require (7.0.*).
    - temporal/sdk[v2.7.0, ..., v2.7.6] require nesbot/carbon ^2.66 -> satisfiable by nesbot/carbon[2.66.0, ..., 2.72.3].
    - Root composer.json requires temporal/sdk ^2.7.0 -> satisfiable by temporal/sdk[v2.7.0, ..., v2.7.6].

Carbon 3.0 supports Symfony 7
Commit: https://github.com/briannesbitt/Carbon/commit/1175d7d48aeb5d772b5c268e783df5a6a8336653
Describe the solution you'd like
composer.json
{
    "require": {
        "nesbot/carbon":"^3.0"
     }
}

Hello. Thank you for opening the issue. The problem is already known.
However, to upgrade the carbon version, it's necessary to remove the conflicting package "illuminate/support". Classes from this package are used in several places in the tests, and some work needs to be done to get rid of the excess.
I plan to return to this issue later. However, if you have some free time, feel free to open a PR with a fix.

Got it, thanks @roxblnfk
I'll try to look into this one.
Is that a public Slack channel? If so, can I get an invitation?

Is that a public Slack channel? If so, can I get an invitation?

Sure
https://temporal.io/slack


Kubernetes: re-enable Windows E2E

What this PR does / why we need it: Let's add back Windows Kubernetes E2E tests!
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

Kubernetes: re-enable Windows E2E

@PatrickLang so, with the one test re-enabled, we have 3 of 5 clusters succeeding. Or do we know that the test in question won't work as-implemented w/ v1.10 and v1.11?

Prefer #3332


Incorrect slide displayed with slideTo

Check that this is really a bug

[X] I confirm

Reproduction link
https://codesandbox.io/p/devbox/56rls4
Bug description
Pressing a slide thumbnail, I would like to display a slider with the slide corresponding to the thumbnail active.
However, as shown in the video below, the expected slide is not displayed.
https://github.com/nolimits4web/swiper/assets/48976713/3f1c92dc-f76f-4869-884a-a8c4a50020ca
The active slide changes depending on the order in which the thumbnails are pressed and the number of times the slide is executed.
Expected Behavior
When a thumbnail is clicked, the slider should display the corresponding slide as the active slide.
For example:
If thumbnail C is clicked, the slider should display slide C as the active slide.
After closing the dialog after swiping through multiple slides on the displayed slider, if thumbnail B is clicked, the slider should display slide B as the active slide.
Actual Behavior
Depending on the order in which the thumbnails are pressed and the number of times the slides are executed, the active slide in the slider that appears when the dialog is opened will change.
Swiper version
11.0.5
Platform/Target and Browser Versions
Windows 10
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

Check the slideToLoop method instead


Text token isn't generated for all pairings

Current Behavior
The text-[color]-[pairings]-token gets generated only for the 50-900 and 900-50 pairings.
It doesn't get generated for other combinations like 100-900. The color category doesn't seem to affect it.
Expected Behavior
Generating the token for all pairings combinations.
Steps To Reproduce
No response
Link to Reproduction / Stackblitz
No response
More Information
No response

Omg. I was totally tired and hadn't realized that I wasn't choosing an actual pair of values but arbitrary shades trying to pair them together.


[feature request]Simplify validation API

import { required, minLength, between } from 'vuelidate/lib/validators'

export default {
  data () {
    return {
      name: '',
      age: 0
    }
  },
  validations: {
    name: {
      required,
      minLength: minLength(4)
    },
    age: {
      between: between(20, 30)
    }
  }
}

Why not just:
export default {
  data () {
    return {
      name: '',
      age: 0
    }
  },
  validations: {
    name: {
      required: true,
      minLength: 4
    },
    age: {
      between: [20, 30]
    }
  }
}

Your proposal would require to add a validator registration step. What {minLength: 4} means on its own? Current API relies on the fact that all validators are simple functions that you can simply import and all labels in the object are just validation names. It allows you to use any validator functions from any library you want or even use same validator multiple times with different settings.
Take that as an example:
name: {
  required,
  barelyTooShort: minLength(6)
  minLength: minLength(5),
}

Now you can use two separate error messages and display to the user something like

Just one more character

span.form-group__message(v-if="!$v.name.required") Name is required
span.form-group__message(v-else-if="!$v.name.minLength") Name is too short
span.form-group__message(v-else-if="!$v.name.barelyTooShort") Just one more character

There is no conflict.
If the value of validator is function, call it, if not, pass the value to the exist validator with same name of the key.
And also, we should be able to extend global validators by ourselves.
name: {
  required: true,
  barelyTooShort(val) {
    return minLength(6)(val)
  },
  // `barelyTooShort: minLength(6)` is also fine
  minLength: 5,
  between: [2,3] // which will call `between(2,3)` inside
}

Besides, for now there is no error message ecosystem, I prefer an API like jquery-validate.
{
  ...other,
  validator: {
    rules:{},  // if there is no key named `rules`, treat the whole validator object as rules.
    messages:{}
  }
}

@JounQin This issue is being discussed here #3

@JounQin You still forgot about one detail.

If the value of validations is function, call it, if not, pass the value to the exist validator with same name of the key.

Vuelidate doesn't know anything about validators. It's totally decoupled. We have no internal list of names pointing to specific functions. Having that would defeat the purpose, as now you have to register all of those somehow. Moreover, adding all builtin validators to a list like that would force us to import all of them with the core library. What's the purpose? Current syntax leaves that decoupled. You have to import and pass the function. Simple as that.
If you don't like the need to specify the label of the object, you can always prepare the function beforehand.
import minLength from 'vuelidate/lib/validators/minLength'

const nameMinLength = minLength(6)

export default {
  data () {
    name: ''
  },
  validators: {
    name: {
      required,
      nameMinLength
    }
  }
}

You can even prepare a few common validators like that in separate module and import them for directly.

We can provide a few or none built-in validators, but the user can imports their needed validators when they install the plugin at the first time globally.
import Vuelidate from 'vuelidate'
import validators from 'vuelidate/lib/validators'

Vue.use(Vuelidate, {
  validators
})

// in Vuelidate
const validators = {}

export default {
  install(Vue, options = {}) {
    Object.assign(validators, options.validators)
    // ... then if calling validator is function, call it, else try the same named validator in validators.
  }
}

My point is that, for now we must import every validator by ourselves in every component, it is too long-winded and unnecessary. There will be a lot of duplicate codes of validators.
Maybe I am too lazy. And my purpose is to write less code but do more. :)
This is also why we are looking for a third-party plugin to validate.

I would like to avoid a need of additional registration in any form. You don't even have to Vue.install this plugin, it supports being used as a standalone mixin, for those who want to import it directly in every component that needs it ;)
Explicit imports on every point of usage are a good thing for you. That way any validator you don't use won't be compiled into your app's bundle and you don't have to remember to cleanup or add new dependency somewhere in the configuration. It's also much easier and faster to get started.
You usually want to avoid importing the whole set of validators anyway. Just do this with any bundler that supports tree-shaking and you are both concise and safe.
import { required, minLength } from 'vuelidate/lib/validators'

What he said actually ^

I've said it is OK to use the original grammar in my scenario, but for the other people, they can try another experience.

You usually want to avoid importing the whole set of validators anyway. Just do this with any bundler that supports tree-shaking and you are both concise and safe.

Actually it just needs to add a few lines(less than 10) in the core code what will make it possible and short the API.
Anyway, I've finished a very early alpha version of v-validator which is totally under my control. :)

@JounQin My point is – we want the validators to not affect the total bundle size. If we would include all of them now – that’s not a problem as there are just a few of them. However, as we plan to expand the validators (and utils) significantly that would very soon become an antipattern in terms of bundle size. Thus encouraging people to register everything up front would make it worse for the users. So if we can avoid a suboptimal solution then I guess we should.
Also, this would introduce a different way to declare validators which could potentially confuse less experienced people. As it is right now – I guess – it’s pretty straightforward, as validators are just functions. No magic inside.
Anyway, congrats on the v-validator! 👍