Glib-GObject-WARNING with vips 8.6.2 and earlier

There is an existing closed issue (#1232), but I wanted to open a new one to provide more technical details and make things clearer.
I have a test repo here (https://github.com/dlong500/sharp-glib-testing) that demonstrates a couple issues.  The more important one related to a race condition in libgsf has been resolved (thanks to @jcupitt) but the other issue in my test repo is still unexplained and I'm trying to pin down the cause.
The good thing is that the issue appears to be resolved with vips 8.6.3 and later, but I'm still perplexed as to what the issue actually is because I can't reproduce the behavior by running vips on the command-line.
So here's some output:
to be executed: node entry.js downsize
sharp.versions: { vips: '8.6.2' }
-> Removed existing output content (if present) in preparation for image processing
Attempting to downsize any image in the input folder with a width or height greater than 4000 pixels...
The processed images will be saved in: /opt/nodejs/sharp-glib-testing/testdata/output/downsize
contraining width to 4000 pixels
VIPS-INFO: residual reducev by 0.580973
VIPS-INFO: reducev: 11 point mask
VIPS-INFO: residual reduceh by 0.580973
VIPS-INFO: reduceh: 11 point mask

(sharp:867): GLib-GObject-WARNING **: invalid uninstantiatable type '(null)' in cast to 'GObject'

(sharp:867): GLib-GObject-CRITICAL **: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed
[success downsizing image]: map.jpg => map-downsized.jpg
[success downsizing image]: x.jpg => x-downsized.jpg

The resizing operation appears to succeed, but I'm not sure that there aren't any defects in the resultant image.  The same output will be generated with the current pre-compiled binaries if a global vips is not installed.
However, when I try to call vips (8.6.1 or 8.6.2) on the command-line directly for a similar operation I don't get the warnings:
# VIPS_INFO=true vips resize map.jpg x.jpg 0.580973
VIPS-INFO: residual reducev by 0.580973
VIPS-INFO: reducev: 11 point mask
VIPS-INFO: reducev sequential line cache
VIPS-INFO: residual reduceh by 0.580973
VIPS-INFO: reduceh: 11 point mask

I would just ignore the issue since it appears to be resolved in 8.6.3, but I'm curious what is exactly happening and the issue still affects the current pre-compiled binaries that are using vips 8.6.1.
The backtrace data I get is:
(sharp:930): GLib-GObject-WARNING **: invalid uninstantiatable type '(null)' in cast to 'GObject'

Thread 13 "worker" received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7fffce831700 (LWP 945)]
0x00007fffe7aeca5b in _g_log_abort (breakpoint=1) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmessages.c:325
325     /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmessages.c: No such file or directory.
(gdb) bt
#0  0x00007fffe7aeca5b in g_logv (breakpoint=1) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmessages.c:325
#1  0x00007fffe7aeca5b in g_logv (log_domain=0x7fffe7de89b6 "GLib-GObject", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=args@entry=0x7fffce82fe70) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmessages.c:1080
#2  0x00007fffe7aecbcf in g_log (log_domain=log_domain@entry=0x7fffe7de89b6 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7fffe7df0ca0 "invalid uninstantiatable type '%s' in cast to '%s'")
    at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gmessages.c:1119
#3  0x00007fffe7de1a4b in g_type_check_instance_cast (type_instance=type_instance@entry=0x7fffd400cc90, iface_type=iface_type@entry=80)
    at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./gobject/gtype.c:4077
#4  0x00007ffff425b664 in vips__reorder_clear (image=image@entry=0x7fffd400cc90) at reorder.c:377
#5  0x00007ffff4267034 in vips_image_write (image=image@entry=0x7fffd400cc90, out=out@entry=0x7fffd400c970 [VipsImage]) at image.c:2542
#6  0x00007ffff42427fa in read_jpeg_image (jpeg=0x7fffc00a6a80, out=0x7fffd400c970 [VipsImage]) at jpeg2vips.c:703
#7  0x00007ffff424299d in vips__jpeg_read (jpeg=0x7fffc00a6a80, out=0x7fffd400c970 [VipsImage], header_only=0) at jpeg2vips.c:753
#8  0x00007ffff4242a6e in vips__jpeg_read_file (filename=0x7fffd4001f00 "/opt/nodejs/sharp-glib-testing/testdata/input/downsize/map.jpg", out=0x7fffd400c970 [VipsImage], header_only=header_only@entry=0, shrink=<optimized out>, fail=<optimized out>, autorotate=<optimized out>)
    at jpeg2vips.c:782
#9  0x00007ffff42430ed in vips_foreign_load_jpeg_file_load (load=<optimized out>) at jpegload.c:197
#10 0x00007ffff423c748 in vips_foreign_load_start (out=0x7fffd0003640 [VipsImage], a=<optimized out>, b=<optimized out>) at foreign.c:822
#11 0x00007ffff427226f in vips__region_start (region=region@entry=0x7fffb0001990 [VipsRegion]) at region.c:230
#12 0x00007ffff42722e2 in vips_region_generate (reg=0x7fffb0001990 [VipsRegion]) at region.c:1380
#13 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffb0001990 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#14 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffb0001990 [VipsRegion], r=r@entry=0x7fffb0001938) at region.c:1455
#15 0x00007ffff41d5b09 in vips_copy_gen (or=0x7fffb00018e0 [VipsRegion], seq=0x7fffb0001990, a=<optimized out>, b=<optimized out>, stop=<optimized out>) at copy.c:139
#16 0x00007ffff4272311 in vips_region_generate (reg=0x7fffb00018e0 [VipsRegion]) at region.c:1386
#17 0x00007ffff4273515 in vips_region_prepare_to_generate (reg=0x7fffb00018e0 [VipsRegion], dest=0x7fffc0002420 [VipsRegion], r=0x7fffce830290, x=0, y=4) at region.c:1512
#18 0x00007ffff4274e5f in vips_region_prepare_to (reg=reg@entry=0x7fffb00018e0 [VipsRegion], dest=dest@entry=0x7fffc0002420 [VipsRegion], r=r@entry=0x7fffce830380, x=0, y=4) at region.c:1652
#19 0x00007ffff41d6d9a in vips_embed_base_gen (or=0x7fffc0002420 [VipsRegion], seq=0x7fffb00018e0, a=<optimized out>, b=0x7fffd4009030, stop=<optimized out>) at embed.c:265
#20 0x00007ffff4272311 in vips_region_generate (reg=0x7fffc0002420 [VipsRegion]) at region.c:1386
#21 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffc0002420 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#22 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffc0002420 [VipsRegion], r=r@entry=0x7fffce830500) at region.c:1455
#23 0x00007ffff417bfcf in vips_reducev_gen(VipsRegion*, void*, void*, void*, gboolean*) (out_region=0x7fffc0002370 [VipsRegion], vseq=<optimized out>, a=0x7fffd0003c80, b=0x7fffd4005f40, stop=<optimized out>) at reducev.cpp:539
#24 0x00007ffff4272311 in vips_region_generate (reg=0x7fffc0002370 [VipsRegion]) at region.c:1386
#25 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffc0002370 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#26 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffc0002370 [VipsRegion], r=r@entry=0x7fffc0002318) at region.c:1455
#27 0x00007ffff4264ae9 in vips_image_write_gen (or=0x7fffc00022c0 [VipsRegion], seq=0x7fffc0002370, a=<optimized out>, b=<optimized out>, stop=<optimized out>) at image.c:2498
#28 0x00007ffff4272311 in vips_region_generate (reg=0x7fffc00022c0 [VipsRegion]) at region.c:1386
#29 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffc00022c0 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#30 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffc00022c0 [VipsRegion], r=r@entry=0x7fffc0002268) at region.c:1455
#31 0x00007ffff41d5b09 in vips_copy_gen (or=0x7fffc0002210 [VipsRegion], seq=0x7fffc00022c0, a=<optimized out>, b=<optimized out>, stop=<optimized out>) at copy.c:139
#32 0x00007ffff4272311 in vips_region_generate (reg=0x7fffc0002210 [VipsRegion]) at region.c:1386
#33 0x00007ffff4273515 in vips_region_prepare_to_generate (reg=0x7fffc0002210 [VipsRegion], dest=0x7fffc0002160 [VipsRegion], r=0x7fffce8307d0, x=4, y=0) at region.c:1512
#34 0x00007ffff4274e5f in vips_region_prepare_to (reg=reg@entry=0x7fffc0002210 [VipsRegion], dest=dest@entry=0x7fffc0002160 [VipsRegion], r=r@entry=0x7fffce8308c0, x=4, y=0) at region.c:1652
#35 0x00007ffff41d6d9a in vips_embed_base_gen (or=0x7fffc0002160 [VipsRegion], seq=0x7fffc0002210, a=<optimized out>, b=0x7fffd4009170, stop=<optimized out>) at embed.c:265
#36 0x00007ffff4272311 in vips_region_generate (reg=0x7fffc0002160 [VipsRegion]) at region.c:1386
#37 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffc0002160 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#38 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffc0002160 [VipsRegion], r=r@entry=0x7fffce830a90) at region.c:1455
#39 0x00007ffff417adba in vips_reduceh_gen(VipsRegion*, void*, void*, void*, gboolean*) (out_region=0x7fffc00020b0 [VipsRegion], seq=0x7fffc000---Type <return> to continue, or q <return> to quit---
2160, a=0x7fffd400c330, b=0x7fffd400fb20, stop=<optimized out>) at reduceh.cpp:316
#40 0x00007ffff4272311 in vips_region_generate (reg=0x7fffc00020b0 [VipsRegion]) at region.c:1386
#41 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffc00020b0 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#42 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffc00020b0 [VipsRegion], r=r@entry=0x7fffc0002058) at region.c:1455
#43 0x00007ffff4264ae9 in vips_image_write_gen (or=0x7fffc0002000 [VipsRegion], seq=0x7fffc00020b0, a=<optimized out>, b=<optimized out>, stop=<optimized out>) at image.c:2498
#44 0x00007ffff4272311 in vips_region_generate (reg=0x7fffc0002000 [VipsRegion]) at region.c:1386
#45 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffc0002000 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#46 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffc0002000 [VipsRegion], r=r@entry=0x7fffd4005738) at region.c:1455
#47 0x00007ffff4264ae9 in vips_image_write_gen (or=0x7fffd40056e0 [VipsRegion], seq=0x7fffc0002000, a=<optimized out>, b=<optimized out>, stop=<optimized out>) at image.c:2498
#48 0x00007ffff4272311 in vips_region_generate (reg=0x7fffd40056e0 [VipsRegion]) at region.c:1386
#49 0x00007ffff4272fc9 in vips_region_fill (reg=0x7fffd40056e0 [VipsRegion], r=<optimized out>, fn=0x7ffff42722c0 <vips_region_generate>, a=0x0) at region.c:903
#50 0x00007ffff4274c53 in vips_region_prepare (reg=reg@entry=0x7fffd40056e0 [VipsRegion], r=r@entry=0x7fffd4005688) at region.c:1455
#51 0x00007ffff4264ae9 in vips_image_write_gen (or=0x7fffd4005630 [VipsRegion], seq=0x7fffd40056e0, a=<optimized out>, b=<optimized out>, stop=<optimized out>) at image.c:2498
#52 0x00007ffff4272311 in vips_region_generate (reg=0x7fffd4005630 [VipsRegion]) at region.c:1386
#53 0x00007ffff4273515 in vips_region_prepare_to_generate (reg=0x7fffd4005630 [VipsRegion], dest=0x7fffd4005210 [VipsRegion], r=0x7fffce830e30, x=0, y=0) at region.c:1512
#54 0x00007ffff4274e5f in vips_region_prepare_to (reg=0x7fffd4005630 [VipsRegion], dest=0x7fffd4005210 [VipsRegion], r=r@entry=0x7fffd4002560, x=0, y=0) at region.c:1652
#55 0x00007ffff426c288 in wbuffer_work_fn (state=0x7fffd4002500 [WriteThreadState], a=<optimized out>) at sinkdisc.c:425
#56 0x00007ffff427561b in vips_thread_main_loop (thr=0x7fffd401e2f0) at threadpool.c:658
#57 0x00007ffff427561b in vips_thread_main_loop (a=0x7fffd401e2f0) at threadpool.c:681
#58 0x00007ffff4275404 in vips_thread_run (data=0x7fffd404c680) at threadpool.c:207
#59 0x00007fffe7b0cbb5 in g_thread_proxy (data=0x7fffd404b0a0) at /build/glib2.0-b4FPyK/glib2.0-2.48.2/./glib/gthread.c:780
#60 0x00007ffff6f146ba in start_thread (arg=0x7fffce831700) at pthread_create.c:333
#61 0x00007ffff6c4a41d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

I'm just curious if @jcupitt might have any easy answer on what's going on or why things changed with 8.6.3 and later.  Thanks!

The libvips changelog entry "better clean of output image in vips_image_write() fixes a crash writing twice to memory" seems relevant here.

Ok, great.  I'll close this since it looks like we have an explanation.  @lovell, would it be possible to get a minor update to the v0.20.x line with updated pre-compiled binaries rather than having to wait for v0.21?  If it's too much work then that's OK, but it would be nice to get all the improvements in libvips 8.6.5.  This would be even more important if there are those who are unable to update past sharp v0.20 for whatever reason.

@dlong500 I expect the forthcoming sharp v0.21.x line to bundle the forthcoming libvips v8.7.0.
I do not intend to provide further pre-compiled libvips from the v8.6.x line. sharp will look for and use a globally-installed libvips should a more recent version be required. You can also roll your own bundle using the sharp-libvips scripts .


Run any 1.sql migrations on version 1 so can seed db.

Has a need to seed the db with data on first version.

Hey @mpowered77, I'm not sure if this is a use case that will fit everyone's needs. Considering that some people may already have first migrations, and doing this on every startup may lead to a lot of unintended consequences.
We do think that there is a need for preseeding data, I just don't believe this is the right interface for that. Perhaps an approach where you specify a seed in the manifest might be better. What are your thoughts on this?

Well, my thought was that I wanted to seed the db after sugar creates the tables based on my entities.  I didn't see a good way to do that or wasn't aware of a way on application install.  Since 1.sql didn't appear to be used anyway, seemed okay to use that for seed data.  If no file is there or is empty, it shouldn't do anything.  I'm not sure of the unintended consequences just yet.

Targeting this for 1.5.0 in some form, likely as a manifest option.

any news about this?


Why CDDL?

I'd like to start with saying this project rocks.  I was up and running with leveldb in no time.
However if I actually wanted to use this project for anything real I'd have reservations about the CDDL. Both projects this depends on have much better known and permissive licenses.  LevelDb is new Berkley and hawtjni is apache 2.  Would it be possible to go with either of these instead of CDDL?

I agree.
A more permissive license would almost ensure that I go ahead with this project. In the current form, this isnt an option.

License changed to BSD


Add a strategy for taints and tolerations

Recently one of the users requested a strategy for taints and tolerations. While I don't have cycles to work on this, I would be more than happy to review if anyone in the community is interested to work on.

any more details, please expand

@paktek123 Take a look at this issue for a use case currently implemented with Draino that could be replaced by descheduler: https://github.com/kubernetes/node-problem-detector/issues/199#issue-354954628

any more details, please expand, I would be interested in contributing

Lets say a pod was scheduled on a node where there is mismatch between pod's toleration and node's taints, and it could be due to that the pod was scheduled on a node whose taints were later updated. Since, pod's tolerations were only checked at the time admission, and later node's taints were updated, pod continued running on the node, so it only applies for NoSchedule taints.
In summary, it would work as follows:

get a list of nods (which already exists)
get a list of pods on each node (which already exists)
Verify that the node's taints (NoSchedule) are still satisfied by its pods' tolerations.
As per previous step, If not satisfied, evict the pod.
If yes (still satisfied), continue checking other pods until you have reached the end of list of pods for that node.
Repeat above for all nodes.

Thanks for the explanation, I will hopefully try to contribute next week

Nice idea! It is also very useful for customizing the migration time of POD.

/reopen

/reopen

/reopen

/remove-lifecycle rotten
/kind feature

@seanmalloy @damemi looks like this issue hasn't been picked up in long time. Is it okay if I give it a try? will post my queries here if any.
/assign

Please do!

@damemi @aveshagarwal one query around this description mentioned here, Are we looking to add a new check in api itself like somewhere here: https://github.com/kubernetes-sigs/descheduler/tree/master/pkg/descheduler/node or this feature is going to be a new change w.r.t command line options as well maybe here: https://github.com/kubernetes-sigs/descheduler/tree/master/cmd/descheduler/app ?

I'm not actually sure why this issue is still open, I might have mistakenly reopened it when it went stale... we have a Taints/Tolerations strategy that was merged out of this issue (https://github.com/kubernetes-sigs/descheduler#removepodsviolatingnodetaints)
Is there something that strategy is missing from the discussion here? Or can we close this?

Just checking, but is it now possible to:

Detect permanent node problems and set Node Conditions using the Node Problem Detector and the scheduler's TaintNodesByCondition functionality.
Configure Descheduler to deschedule pods based on taints to cordon and drain nodes when they exhibit the NPD's KernelDeadlock condition, or a variant of KernelDeadlock we call VolumeTaskHung.
Let the Cluster Autoscaler scale down underutilised nodes, including the nodes Descheduler has drained.

If so, is there an example?

@StevenACoffman yes, the descheduler will evict any pods that are currently running on a node that has any NoSchedule taint that the pods do not tolerate. So, your use case should work with the RemovePodsViolatingNodeTaints strategy

Thanks @damemi for clarifying, I guess this issue will be closed now 🙂

/close


update javascript cucumber-tag-expressions

Summary
Integrated this with a feature branch and would like some updates. Currently you cannot do require('cucumber-tag-expressions') because it does not have an index.js in the project directory or a main file specificed in the package.json
Details
This adds index.js to the javascript module so it can be required.  You can then access the TagExpressionParser property on the result.
Motivation and Context
Currently require('cucumber-tag-expressions') throws cannot find module.
Using require('cucumber-tag-expressions/lib/tag_expression_parser') feels wrong and likely to break

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
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.

This type of file isn't typically tested. I added it manually to my installed node module locally and it was working

LGTM! Go ahead and merge. I'll cut a new release (I need to democratise the release process - automating the currently manual monorepo-manyrepo syncing)

Don't forget to update CHANGELOG.md @charlierudolph


Traceback issues with find_element     return self.execute(Command.FIND_ELEMEN

Using Selenium 4.2.0 with the latest scrape.py script. Seems like an Access Denied issue, kick out immediately after with below error. Script getting stuck on ModelS Electrical/Harness section 1710 (large quantity of images).
C:\Program Files\Python310\TeslaServiceManualScraper-master>py scrape.py
C:\Program Files\Python310\TeslaServiceManualScraper-master\scrape.py:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
from distutils.command.clean import clean
DevTools listening on ws://<IP_ADDRESS>:65188/devtools/browser/35abb965-bbe7-49d4-a23f-84559bce2819
****** SESSION LOADED ******
Traceback (most recent call last):
File "C:\Program Files\Python310\TeslaServiceManualScraper-master\scrape.py", line 272, in
run()
File "C:\Program Files\Python310\TeslaServiceManualScraper-master\scrape.py", line 261, in run
driver.get_index()
File "C:\Program Files\Python310\TeslaServiceManualScraper-master\scrape.py", line 46, in get_index
driver = tesla_login(self.driver)
File "C:\Program Files\Python310\TeslaServiceManualScraper-master\secrets.py", line 10, in tesla_login
driver.find_element_by_css_selector("#form-input-identity").send_keys(tesla_account_email)
File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 814, in find_element_by_css_selector
return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1251, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 430, in execute
self.error_handler.check_response(response)
File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#form-input-identity"}
(Session info: chrome=103.0.5060.114)
Stacktrace:
Backtrace:
Ordinal0 [0x00DF6463+2188387]
Ordinal0 [0x00D8E461+1762401]
Ordinal0 [0x00CA3D78+802168]
Ordinal0 [0x00CD1880+989312]
Ordinal0 [0x00CD1B1B+989979]
Ordinal0 [0x00CFE912+1173778]
Ordinal0 [0x00CEC824+1099812]
Ordinal0 [0x00CFCC22+1166370]
Ordinal0 [0x00CEC5F6+1099254]
Ordinal0 [0x00CC6BE0+945120]
Ordinal0 [0x00CC7AD6+948950]
GetHandleVerifier [0x010971F2+2712546]
GetHandleVerifier [0x0108886D+2652765]
GetHandleVerifier [0x00E8002A+520730]
GetHandleVerifier [0x00E7EE06+516086]
Ordinal0 [0x00D9468B+1787531]
Ordinal0 [0x00D98E88+1805960]
Ordinal0 [0x00D98F75+1806197]
Ordinal0 [0x00DA1DF1+1842673]
BaseThreadInitThunk [0x76D36739+25]
RtlGetFullPathName_UEx [0x77E88FEF+1215]
RtlGetFullPathName_UEx [0x77E88FBD+1165]

This appears to be the same issue as #9 which has been resolved in the latest merge.  Thanks!


Hides the Sign in-button on 401 page

Fixes issue #4092. As a sidenote, I tried to open this using  git pull-request -i 4092 -b oaeproject/3akai-ux:master -h sallakarppinen/3akai-ux:issue-4092 -m 'Hides the Sign in-button on 401 page' but it failed to link to the issue automatically (I've aliased hub as git).

Finished review. Back to @sallakarppinen for follow-up

Updated. .submit() was not working on Chrome/Chromium but submitting via .click() seems to work fine.

Left a comment. Back to @sallakarppinen

Added id to the wrapper div.

Looks good. Merged.


[Bug]: T-8520 WiFi Lock not acting on button presses

Client version
2023.4.6
Node version
unknown
Operating System type
Other
Operating system version
HAOS 10.1
Describe the bug
HA shows and updates status of lock, but does not respond to lock / unlock commands. There is no info in the logs after I activate the lock.T-8520 lock with <IP_ADDRESS> firmware.  Also, the entities related to the lock have apparently changed from prior versions. At one time, there were temperature and maybe other data, but all gone now. Just lock status and battery percentage remain.
To reproduce

check lock status, including battery, in dashboard
press lock or unlock button to chage state
nothing happens

Screenshots & Logfiles
No response
Additional context
No response

Some log info. from debug mode.
{
deviceSN: 'T8520Q20214416E1',
properties: {
name: 'Front Door',
model: 'T8520',
serialNumber: 'T8520Q20214416E1',
type: 51,
hardwareVersion: 'P3',
softwareVersion: '<IP_ADDRESS>',
stationSerialNumber: 'T8520Q20214416E1',
autoLockTimer: 180,
autoLockScheduleStartTime: '21:00',
autoLockScheduleEndTime: '06:00',
wrongTryAttempts: 5,
wrongTryLockdownTime: 180,
sound: 1,
wrongTryProtection: true,
notification: true,
autoLock: false,
autoLockSchedule: false,
notificationUnlocked: true,
notificationLocked: true,
oneTouchLocking: true,
lockStatus: 3,
locked: false,
battery: 67,
scramblePasscode: false
}
}
2023-05-02 22:24:06.171  DEBUG [PushClient.sendHeartbeat] Sending heartbeat... 18
2023-05-02 22:24:06.173  DEBUG [PushClient.buildHeartbeatPingRequest] heartbeatPingRequest
{
last_stream_id_received: 18
}
2023-05-02 22:24:06.208  DEBUG [PushClient.handleHeartbeatAck] Heartbeat acknowledge
{
tag: 1,
object: {
lastStreamIdReceived: 11
}
}
2023-05-02 22:24:32.159  DEBUG [Station.lockDevice] Sending lock device command to station T8520Q20214416E1 for device T8520Q20214416E1 with value: true
2023-05-02 22:24:32.168  DEBUG [Station.lockDevice] Locking/unlocking device...
{
station: 'T8520Q20214416E1',
device: 'T8520Q20214416E1',
admin_user_id: '6fcd92863306f17998cd3ef910daadda537bc6bf',
payload: {
commandType: 1350,
value: '{"key":"031d19998a63abb5dc2c0c76f469ea2a42605e2388de4c5b10beedcdcb922abd5a2793592015db2934a2a97740469aaa6451be33c5f887cd0de6b869faf597d62cc146122f1772b955a1fdba2358c002b29abdbbc8ca1f5b7f7113298906d2f415687e338fc1da72f9a1e689803a7471687f913df98f6975f4487a74aef4ebcab3","account_id":"6fcd92863306f17998cd3ef910daadda537bc6bf","cmd":1961,"mChannel":0,"mValue3":0,"payload":"Ypr/gr1sdkvPKw05PPLu3JPVIrvuiioWeHRkGjZtVGxv1mbjWnJMla7SnYgCAHQAE01H2zEoriz0Iwysx5yBTOWkxacQXlar0Y1x97x0ix2hqMnboVCYeZ1P0w9nHuuDlCH7EbcVmDGGEC7EWeOU0gKHrF6k9NW0eCJ9fFu6L08\u003d"}',
channel: 0,
aesKey: 'E65287A336AD53582BB1CD6593441B7A'
},
nestedPayload: {
shortUserId: '0004',
slOperation: 1,
userId: '6fcd92863306f17998cd3ef910daadda537bc6bf',
userName: '',
seq_num: 176
}

I'm having the same problem with the same lock

Also having the same issue with this device. I used to be able to lock and unlock this device from HA and no longer am able to do so, but like OP, the state does change.

This is the same problem I'm seeing and listed here: https://github.com/bropat/eufy-security-ws/issues/209
I'm really not sure which repo is the most appropriate to provide details on. As mentioned on the other, happy to share my device.
Have noticed that the lock works as intended if you use the deprecated https://github.com/fuatakgun/eufy_security_addon add-on (v1.3.0) but you also need to use v6.2.0 or earlier of the integration (available in HACS).

workaround here: https://github.com/bropat/eufy-security-ws/issues/209#issuecomment-1627856442

The cloud discovery of the devices does not work 100%. One part has not yet been reverse engineered correctly.
As a workaround, the static IP configuration addressed by @alexeiw123 was implemented.
So at the moment the proposed solution from @alexeiw123 is the best ;)


bf: apply arsenal changes for lifecycle tagging

support multiple lifecycle tags
Should be merged with https://github.com/scality/Arsenal/pull/534

Hello philipyoo,
My role is to assist you with the merge of this
pull request. Please type @bert-e help to get
information on this process.
Status report is not available.

Waiting for approval
The following approvals are needed before I can proceed with the merge:

2 peers

In the queue
The changeset has received all authorizations and has been added to the
relevant queue(s). The queue(s) will be merged in the target development
branch(es) as soon as builds have passed.
The changeset will be merged in:

:heavy_check_mark: development/8.0

The following branches will NOT be impacted:

development/6.4
development/7.4

There is no action required on your side. You will be notified here once
the changeset has been merged. In the unlikely event that the changeset
fails permanently on the queue, a member of Release Engineering will
contact you to help resolve the matter.
IMPORTANT
Please do not attempt to modify this pull request.

Any commit you add on the source branch will trigger a new cycle after the
current queue is merged.
Any commit you add on one of the integration branches will be lost.

If you need this pull request to be removed from the queue, please contact a
member of Release Engineering now.

I have successfully merged the changeset of this pull request
into targetted development branches:

:heavy_check_mark: development/8.0

The following branches have NOT changed:

development/6.4
development/7.4

Please check the status of the associated issue ZENKO-642.
Goodbye philipyoo.


Specify hashes when comparing target meta.

Summary
Before the default (sha512) hash function was the only one used when comparing hashes. This commit makes the choice explicit instead of depending on go-tuf's default vaule. Now sha256 and sha512 are recognized as valid hash functions.
Also this commit does not hide the error from go-tuf's underlying methods used to verify the target's meta.
Release Note
SHA256 is now a recognized hash function when verifying target metadata from a TUF repository
Documentation
N/A

@kommendorkapten https://github.com/sigstore/sigstore/pull/1263 should resolve the unit test issue

Thanks @bobcallaway
I'll rebase this on main once #1263 is merged


chore: build/push stack docker images more frequently

chore: build and push stack images every hour
fix: move pipeline to the right directory

What does this PR do?
It runs the build every hour, also moving the pipeline file to the right folder in the workspace.

Why is it important?
We want to have the published snapshots from Infra as soon as possible, so that we are able to consume them from other services, such as the oblt-cli, the obl-robot, etc

wrong repo


Allow use of kube-proxy in iptables mode

Was trying to use submariner to tie to kurl generated clusters together, needed a way to fall back to iptables mode instead of ipvs, but it looks like that is not currently possible. Would be a convenient thing to be able to configure in the kubernetes spec like
spec:
  kubernetes:
    version: "latest"
    kube-proxy-mode: "iptables"

Thanks for filing this suggestion @DeathRabbit679 . Are you interested in creating a pull request to add this feature?

Hi @DeathRabbit679,
I could find in the docs the option : https://kurl.sh/docs/add-ons/iptables#advanced-install-options
So I am closing this one, however, if you think that your request was still not addressed then please feel free to re-open this one.


feat: Add more startup logging

:tada: This PR is included in version 2.0.0-next.47 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Detect user preferred color and honor it

https://medium.freecodecamp.org/how-to-detect-a-users-preferred-color-scheme-in-javascript-ec8ee514f1ef

It's not supported https://caniuse.com/#search=prefers-color-scheme


Mobile-only: Unknown crashes based on app visibility

Hi, I use your nice library to show some local GIF files. Works very well and light, even on mobile. Trouble is as soon as the app visibility goes down, I get a crash with no exception. No crash happens if I remove the GIF view, nor does it crash on desktop/tablet.
Best error message I was able to coax out was "WinRT originate error".

Hey, I'll try to reproduce the error. It crashes when you set the visibility of the UI containing the gif to invisible or collapsed?

I tried replicating with a project from scratch and was unsuccessful. Visibility as in the App visibility, not the control or holder. I could try to include the library as an inter-op so I can actually catch the exception, but I haven't had much success just opening the sample project.

Ah i understand. Do you by any chance debug with break on first chance exceptions enabled? Once in a while the framework throws a first chance exception when disconnecting the image source. It looks like this:
'''
WinRT originate error (parameters: 0x80010108, 0x00000037, 0x0411F100).
Microsoft C++ exception: Platform::DisconnectedException ^ at memory location 0x0411F620. HRESULT:0x80010108 The object invoked has disconnected from its clients.
WinRT information: The object invoked has disconnected from its clients.
'''
It's a first chance exception, meaning it's handled internally and won't affect your code.

I get a sudden exit with code 1, not caught on unhandled exceptions. Which results in app crash with no warning. I never was able to catch the exception directly or even indirectly with a file logger.
Application Insights occasionally reports stuff like:
stack_overflow_in_call_c00000fd_gifimage.dll!unknown
stowed_exception_8007000e_windows.ui.xaml.dll!cd3d11deviceinstance::allocatefromsysmembitspool
stowed_exception_system.invalidcastexception_80004002_myapp.dll!__interop::comcallhelpers.call
I'll look more into this, for now I had to revert to the slow GifXaml, I can't stand the idea of all my 15 users having random crashes.

I see. From the stack trace, it's definitely a Directx issue. I think that if you download the source and import to your project, you should be able to catch it with native debugging and first chance exceptions on. Thanks for looking into it!

I'll try that, because otherwise XamlGif just burns trough CPU and multiple calls on the GC, even with smal GIFs.

I'm unable to open, mount or bodge the inter-op project, with all the weird dependencies and namespace restrictions. And your legacy project from Windows 8 does not help. If I can't even open a project and compile it, then I can't do anything.

I'm sorry you are having problems. The project have no external dependencies, and is tested in use for both uwp and windows 8 projects.
From visual studio 2017 UWP project:

download this project to a folder
solution->add ->existing project
browse and add GifImage\Shared
repeat, browse and add GifImage\WindowsPhone
from uwp project: references -> add reference ->solution ->GifImageSource.WindowsPhone
rebuild

Adding the projects to solution, Visual Studio complains: "The method or operation is not supported" and fails.

I realize that you probably don't have the correct SDK installed to make it build.  I updated the project on github with a UWP target and sample. I believe it should now work by adding to your project:

GifImage\Shared
GifImage\UWP

and making sure your VS have "visual c++ runtime for UWP" component installed.

Ah, now we're talking. With a operable project, I could easily include the required stuff into my custom library and in the main project, compile and run. Much better. As for the bug, it seems that now that I'm compiling everything, I can't replicate it. So it must have been some issue on the NuGet package, maybe?

Its great it's working for you! I'll try to see if i can figure out whats up with the nuget package.


[stable/traefik] Allow debug flag to be specified

/ok-to-test

/cc @krancour

Traefik exposes logLevel setting, which this chart already surfaces. I'm trying to understand why there's a separate setting in Traefik for enabling debug logging, because it's reasonable to think one enables debug simply by setting logLevel to debug... right? I looked at the Traefik documentation for some insight into this and there is no specific explanation of this. (Maybe worth opening an issue with them to seek clarification on this?)
@kevinjqiu, what I would ask, for right now, is whether you can actually achieve the same result you're looking for using the logLevel setting that this chart already surfaces.

@krancour The debug flag and the debug loglevel achieve different things. The debug flag adds another endpoint handler /debug/vars so we can inspect the internal variables.
See:

https://github.com/containous/traefik/blob/master/server/web.go#L133-L135
https://github.com/containous/traefik/blob/master/server/web.go#L321-L333
https://golang.org/pkg/expvar/

@kevinjqiu wow... that is not covered at all in Traefik's own documentation. 😞
So... I can see the usefulness of this, but would suggest, in light of what you've told me, that the documentation for this chart, at least, be more clear about what "debug mode" entails.
Currently, your description of the option is:

Whether to enable Traefik's debug logging

Like Traefik's own documentation, that description doesn't tell me that this enables an additional endpoint that lets me peak into Traefik's internals.
If you make that clear and also adjust the minor version number in chart.yaml, then this will LGTM.

This also requires a chart version bump.

@krancour Updated.
Also, this is how a request to /debug/vars look like:
$ curl traefik.example.com/debug/vars
{
"Goroutines": 32,
"cmdline": ["/traefik","--configfile=/config/traefik.toml"],
"memstats": {"Alloc":8623600,"TotalAlloc":58323776,"Sys":17643768,"Lookups":399,"Mallocs":591709,"Frees":520055,"HeapAlloc":8623600,"HeapSys":13959168,"HeapIdle":3637248,"HeapInuse":10321920,"HeapReleased":0,"HeapObjects":71654,"StackInuse":720896,"StackSys":720896,"MSpanInuse":158232,"MSpanSys":229376,"MCacheInuse":2400,"MCacheSys":16384,"BuckHashSys":1466335,"GCSys":708608,"OtherSys":543001,"NextGC":10012080,"LastGC":1501866796325487373,"PauseTotalNs":71869757,"PauseNs":[444046,144431,2556801,165237,5236406,126797,72086,4375415,1309325,2241253,125579,1004296,680835,52926100,461150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"PauseEnd":[1501866301728967057,1501866302123354453,1501866302228125836,1501866302422421806,1501866302622594729,1501866302822882855,1501866303048775699,1501866303624018679,1501866304023452800,1501866304225276321,1501866319759793832,1501866440123782649,1501866561021782645,1501866675922666443,1501866796325487373,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"NumGC":15,"NumForcedGC":0,"GCCPUFraction":0.0008549637749075306,"EnableGC":true,"DebugGC":false,"BySize":[{"Size":0,"Mallocs":0,"Frees":0},{"Size":8,"Mallocs":4050,"Frees":3722},{"Size":16,"Mallocs":179102,"Frees":156743},{"Size":32,"Mallocs":131958,"Frees":105780},{"Size":48,"Mallocs":39749,"Frees":33162},{"Size":64,"Mallocs":12108,"Frees":10245},{"Size":80,"Mallocs":14478,"Frees":13044},{"Size":96,"Mallocs":22724,"Frees":21358},{"Size":112,"Mallocs":12540,"Frees":11787},{"Size":128,"Mallocs":15385,"Frees":14523},{"Size":144,"Mallocs":14914,"Frees":14066},{"Size":160,"Mallocs":1687,"Frees":1146},{"Size":176,"Mallocs":2960,"Frees":2734},{"Size":192,"Mallocs":10935,"Frees":10691},{"Size":208,"Mallocs":1793,"Frees":1295},{"Size":224,"Mallocs":5599,"Frees":4867},{"Size":240,"Mallocs":6611,"Frees":6605},{"Size":256,"Mallocs":3714,"Frees":3240},{"Size":288,"Mallocs":20897,"Frees":19557},{"Size":320,"Mallocs":436,"Frees":237},{"Size":352,"Mallocs":2573,"Frees":2160},{"Size":384,"Mallocs":105,"Frees":95},{"Size":416,"Mallocs":241,"Frees":120},{"Size":448,"Mallocs":81,"Frees":42},{"Size":480,"Mallocs":93,"Frees":80},{"Size":512,"Mallocs":1126,"Frees":1080},{"Size":576,"Mallocs":4077,"Frees":2961},{"Size":640,"Mallocs":6054,"Frees":5010},{"Size":704,"Mallocs":4792,"Frees":3969},{"Size":768,"Mallocs":1408,"Frees":1191},{"Size":896,"Mallocs":352,"Frees":207},{"Size":1024,"Mallocs":1151,"Frees":1090},{"Size":1152,"Mallocs":981,"Frees":681},{"Size":1280,"Mallocs":150,"Frees":120},{"Size":1408,"Mallocs":90,"Frees":60},{"Size":1536,"Mallocs":68,"Frees":44},{"Size":1792,"Mallocs":89,"Frees":56},{"Size":2048,"Mallocs":808,"Frees":664},{"Size":2304,"Mallocs":106,"Frees":64},{"Size":2688,"Mallocs":97,"Frees":74},{"Size":3072,"Mallocs":7,"Frees":7},{"Size":3200,"Mallocs":16,"Frees":7},{"Size":3456,"Mallocs":28,"Frees":18},{"Size":4096,"Mallocs":138,"Frees":114},{"Size":4864,"Mallocs":36,"Frees":31},{"Size":5376,"Mallocs":70,"Frees":60},{"Size":6144,"Mallocs":17,"Frees":4},{"Size":6528,"Mallocs":6,"Frees":2},{"Size":6784,"Mallocs":42,"Frees":40},{"Size":6912,"Mallocs":0,"Frees":0},{"Size":8192,"Mallocs":31,"Frees":25},{"Size":9472,"Mallocs":47,"Frees":44},{"Size":9728,"Mallocs":0,"Frees":0},{"Size":10240,"Mallocs":2,"Frees":2},{"Size":10880,"Mallocs":22,"Frees":17},{"Size":12288,"Mallocs":32,"Frees":2},{"Size":13568,"Mallocs":4,"Frees":3},{"Size":14336,"Mallocs":4,"Frees":3},{"Size":16384,"Mallocs":17,"Frees":15},{"Size":18432,"Mallocs":6,"Frees":3},{"Size":19072,"Mallocs":0,"Frees":0}]}
}

This LGTM
cc @prydonius @viglesiasce @lachie83
Could someone merge, please?


File open under a single tab

Issue Type: Feature Request
Expected behaviour:
When I click a file from th explorer it should open up in a new tab and should show in the list of open editors, This was the behaviour until recently when I closed all open editors in the open editor panel.
Cause and effect
After I closed all open editor using the open editor panel option when I click on multiple files it shows up under a single open editor and refuses to open another tabbed editor.
It's not ideal as I cant switch between files in tab and have to keep the explorer open to switch files. attached images to show

The hack/solution:
I edited a file and then opened up another file and now it opens up in another tab.
The issue:
The issue is that this is not a default behaviour and occurs every time I close all open editors using the option in the panel. To go back to the orignal behaviour i.e to open files in individual tabs I have to edit a file.
VS Code version: Code 1.45.0 (d69a79b73808559a91206d73d7717ff5f798f23c, 2020-05-07T16:10:24.511Z)
OS version: Linux x64 4.15.0-99-generic
Update:
This is also prevalent if I open another group. The new group refuses to open different files in different editors/tabs unless I edit a file in that group.

Follow our docs to resolve this: https://code.visualstudio.com/docs/getstarted/userinterface#_preview-mode


Show a proper loader and "nothing found" message on the profile page

Right now it just remains empty if no profile info can be found.
Might also need a "search more relays" option, or a way to pick a specific relay to inspect.

This is partially addressed in #33.
One thing missing is to give the user some practical options on what to do next when no profile info was found. This could be searching more relays, editing the ID (npub, nprofile...), or maybe something else. Don't want to dead-end people.

Still an issue. Especially when logged in, there should be an option to create a profile.


Redrawing the directory hierarchy becomes messed up

Warning: I will close the issue without the minimal init.vim and the
reproduction instructions.
Problems summary
Redrawing the directory hierarchy becomes messed up.
Expected
Redrawing correctly.
Environment Information

ddu-ui-filer version (SHA1):94ad1d215fd48a4ef2311532a7383d44370ed53c

denops.vim version (SHA1):9dd9ae9da9b8d65916dd44e0e4d881665397de63

deno version(deno -V output):deno 1.43.4

OS: Linux

neovim/Vim :version output:NVIM v0.10.0-dev-3023+g499070148

Provide a minimal init.vim/vimrc without plugin managers (Required!)
set rtp+=~/work/denops.vim
set rtp+=~/work/ddu.vim
set rtp+=~/work/ddu-ui-filer
set rtp+=~/work/ddu-source-file
set rtp+=~/work/ddu-column-filename
set rtp+=~/work/ddu-kind-file

call ddu#start(#{
      \   ui: 'filer',
      \   resume: v:true,
      \   sync: v:true,
      \   sources: [
      \     #{name: 'file'},
      \   ],
      \   sourceOptions: #{
      \     file: #{
      \       columns: ['filename'],
      \       path: getcwd()
      \     }
      \   }
      \ })

autocmd FileType ddu-filer call s:ddu_filer_my_settings()
function s:ddu_filer_my_settings() abort
  nnoremap <buffer> o
  \ <Cmd>call ddu#ui#do_action('expandItem', {'mode': 'toggle'})<CR>
  nnoremap <buffer> N
  \ <Cmd>call ddu#ui#do_action('itemAction', {'name': 'newFile'})<CR>
  nnoremap <buffer> <C-l>
  \ <Cmd>call ddu#ui#do_action('redraw')<CR>
endfunction

How to reproduce the problem from neovim/Vim startup (Required!)

$ mkdir -p foo/bar
$ nvim
Perform foo directory toggle operation on filer.
Perform bar directory toggle operation on filer.
Perform hoge.txt file newFile operation on filer.
Place the cursor on the foo directory.
Perform foo directory toggle operation on filer.
Perform redraw operation with filer.

Screenshot (if possible)

Fixed.  Please update ddu.vim.

I confirmed it. Thank you.


[Feature Request] Refactor ICache.stats() to return an interface rather than ImmutableCacheStatsHolder

Is your feature request related to a problem? Please describe
In the backend of the new cache stats API, currently ICache implementations return a concrete class (ImmutableCacheStatsHolder) when providing a fixed snapshot of the cache's stats. We may want to refactor this to use an interface in case we want additional implementations later on.
Describe the solution you'd like
We could create an interface, possibly "CacheStats" or "CacheStatsResponse", which has similar logic of being aggregated by levels at creation time, and also implements Writeable and ToXContent. One downside is that serializing such an interface would be a bit messy, and might require writing class names into the StreamOutput or a similar approach.
Related component
Search:Performance
Describe alternatives you've considered
The status quo also works for now, but we might want to add this flexibility.
Additional context
No response

[Triage - attendees 1 2 3 4 5 6 7 8]
@peteralfonsi Thanks for creating this issue, looking forward to a pull request to address this issue.


Does not look like bluepy is supported on Macs

Looks like exactly what I was looking for, but unfortunately for me, doesnt look like it will work because bluepy is not supported on MacOSX at this time.

Can you offer some cross-platform library? If so, then I will try to integrate it into pysphero.

I'm pretty light on python so take this for what its worth, but https://github.com/pybluez/pybluez seems like a fairly popular multi-platform framework for bluetooth.

From pybluez doc:

For experimental Bluetooth Low Energy support (only for Linux platform...

There is a good library for Sphero on TypeScript.

Maybe with the Bled112 support I add, it will be supported on Mac. Did not tested it.

I'm facing the same issue with Mac. It's a shame because this is exactly what I was looking for :(
@dhbsolutions @EnotYoyo any update on this?


 System Linux 4.16.2-vujade
gyp ERR! command ".nvm/versions/node/v9.11.2/bin/node" ".nvm/versions/node/v9.11.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--msvs_version=2015" "--directory" "test"
gyp ERR! cwd git/nan/test
gyp ERR! node -v v9.11.2
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>rebuild-tests: `node-gyp rebuild --msvs_version=2015 --directory test`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>rebuild-tests script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     .npm/_logs/2022-04-21T18_23_03_172Z-debug.log

They just need to be updated to match the new function signatures.

@mkrufky There was a typo in the macro used to check the Node version

Still seeing this error now, running Node 18, only.  I suspect it's just a missing version on Appveyor's end, since 18 was only just released.
Build started
git clone -q --branch=node.18 https://github.com/mkrufky/nan.git C:\projects\nan
git checkout -qf 4be3e5c4e93ddf[2](https://ci.appveyor.com/project/mkrufky/nan/build/job/4u6vpbyhhe95q3ii#L2)014b71ad9717078d76c9ed549
Running Install scripts
Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version)
Updating Node.js v18.0.0 (x86)
Uninstalling Node.js v8.17.0 (x86)...
Installing Node.js v18.0.0 (x86)...
Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (404) Not Found."
At C:\Program Files\AppVeyor\BuildAgent\Modules\nodejs-utils\nodejs-utils.psm1:58 char:5
+     (New-Object Net.WebClient).DownloadFile($packageUrl, $packageFile ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

IF %nodejs_version% LSS 4 npm -g install npm@2
IF %nodejs_version% EQU 5 npm -g install npm@[3](https://ci.appveyor.com/project/mkrufky/nan/build/job/4u6vpbyhhe95q3ii#L3)
set PATH=%APPDATA%\npm;%PATH%
npm install
'npm' is not recognized as an internal or external command,
operable program or batch file.
Command exited with code 1

...and for some reason, I can't get Travis CI to run this repository, even within my own account.
I'll re-run the appveyor tests tomorrow - maybe Appveyor will fix it on their own.
I'll squash+merge this once it passes.

This is the ticket that I filed on Appveyor:
https://help.appveyor.com/discussions/problems/31957-please-install-nodejs-v18-new-builds-are-failing-looks-like-node-18-is-missing

depends on https://github.com/nodejs/nan/pull/932
depends on https://github.com/nodejs/nan/pull/939


Fix <KeyboardAvoidingView> with floating keyboard on iPad

Summary:
On iPadOS, users can change the kind of keyboard displayed onscreen, going from normal keyboard, to split keyboard (one half on the left of the screen, one half on the right), or a floating keyboard that you can move around the screen.
When a non-normal kind of keyboard is used, <KeyboardAvoidingView> calculations are all wrong and, depending on the behavior prop, can make your screen completely hidden.
This PR attempts to detect that the keyboard is not the "normal displayed-at-bottom-of-screen" keyboard, and forces enable={false} if this happens.
The approach of comparing the keyboard width with the window width comes from this comment: https://github.com/facebook/react-native/issues/29473#issuecomment-696658937
A better fix might be to detect the kind of keyboard used, but this involves native code changes and I do not know iOS enough to do that. In addition, I have not found an easy way to do it using iOS APIs after a quick search.
I also chose to cache the window width as a class attribute. Maybe this is not needed as Dimensions.get('window').width is very fast and can be called on every keyboard event?
This fixes #44068 and #29473
Changelog:
[IOS] [FIXED] - Fix <KeyboardAvoidingView> with floating keyboard on iPadOS
Test Plan:

Tested using RNTester and the "Keyboard Avoiding View with different behaviors" example.
Before:
https://github.com/facebook/react-native/assets/42070/111598a3-286c-464d-8db8-73afb35cd7f9
After:
https://github.com/facebook/react-native/assets/42070/0b3bc94f-8b67-4f42-8a83-e11555080268

Done!


Synchronize sliders across array data in Pytree

https://penzai.readthedocs.io/en/stable/notebooks/treescope_arrayviz.html#slicing-and-scrubbing-with-sliders presents a great way to setup small visuals inside the printing of nested Pytree instances.
One thing I'd like to figure out: is it possible to synchronize the slider state across all arrays?
In general, my computations produce Pytrees whose interpretation will be invalid if a user looks at a visual where some of the sliders are mismatched on slider index.
I'm not sure if this is out of scope, or how this would work, but curious if there are any thoughts about this.

Hmm, right now each of the renderings are produced independently, so it's a bit tricky to implement something like this. Also, the automatic visualization system has been primarily designed as a "better array repr" for debugging and prototyping (in which case you probably already know which slider values are meaningful).
Could you elaborate more on what you're trying to do?

Sure! This is not a "deal breaker" for me, in the least -- was just curious.
To provide more info:
Imagine a particle collection (a set of samples, roughly) produced by a sequential Monte Carlo program written in a probabilistic programming language, where the particles are nested Pytrees -- and they contain information like "this particle was created by invoking this program with these arguments, and this was the joint log probability of the random choices under that the measure that program represents, and these are the set of random samples..."
In other words, when I return that collection to the user of the algorithm, it's a big Pytree, and one natural thing would be to say -- hey, I want look at this, and peruse various attributes over time. But it's important to have the data "synced up" -- because if you have one slider on e.g. index 51, and another on index 101 -- that's (what I called) an invalid interpretation (looking at attributes of particles which don't match).

@femtomc Out of curiosity, what was your workaround?


feat: 字段标记(filed)可使用正则进行匹配

👀 PR includes

✨ Feature

[X] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[ ] Type optimization

🐛 Bugfix

[ ] Solve the issue and close #0

🔧 Chore

[ ] Test case
[X] Docs / demos update
[ ] CI / workflow
[ ] Release version
[ ] Other ()

📝 Description
feat: 新增功能字段标记可使用正则进行匹配。
feat: 一个字段 ID 多次匹配到同一范围的字段标记规则，以最后一个规则为准
🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self Check before Merge

[ ] Add or update relevant Docs.
[ ] Add or update relevant Demos.
[ ] Add or update relevant TypeScript definitions.

@stone-lyl 后面补点测试

:tada: This PR is included in version @antv/s2-v1.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


samples: Create README.rst

Please create README.rst for the following samples in samples directory.

[ ]  application_development/external_lib
[ ]  application_development/out_of_tree_board
[ ]  application_development/code_relocation
[ ]  crypto/mbedtls_benchmark
[ ]  boards/intel_s1000_crb/audio
[ ]  boards/intel_s1000_crb/dmic
[ ]  boards/intel_s1000_crb/i2s
[ ]  boards/up_squared/gpio_counter
[ ]  drivers/led_ws2812
[ ]  drivers/crypto
[ ]  drivers/spi_fujitsu_fram
[ ]  drivers/drivers/watchdog
[ ]  drivers/rtc
[ ]  drivers/i2c_fujitsu_fram
[ ]  drivers/soc_flash_nrf
[ ]  drivers/lcd_hd44780
[ ]  drivers/spi_flash
[ ]  driversdrivers/gpio
[ ]  subsys/power/device_pm
[ ]  subsys/shell/shell_module
[ ]  cpp_synchronization
[ ]  nfc/nfc_hello
[ ]  sensor/sx9500
[ ]  sensor/grove_light
[ ]  sensor/mcp9808
[ ]  sensor/thermometer
[ ]  sensor/bm3280
[ ]  sensor/bmg160
[ ]  sensor/grove_temperature
[ ]  sensor/bmi160
[ ]  sensor/tmp112
[ ]  sensor/ccs811
[ ]  sensor/th02
[ ]  subsys/ipc/ipm_mailbox/ap
[ ]  subsys/ipc/ipm_mailbox/sensor
[ ]  subsys/ipc/ipm_mcux/remote
[ ]  testing/integration
[ ]  xtensa_asm2

most of this already addressed.


Enable aws-cni prefix delegation for new workload clusters

Story
-As a cluster admin, I want aws-cni prefix delegation to be enabled by default for new clusters in order improve the startup times of pods during scaling events.
Background
The allocation of new IPs with aws-cni is quite slow and AWS now offers prefix delegation to allocate IPs in chunks which should improve the start time of pods during scaling events.
Changes

[ ] Enable aws-cni prefix delegation nodes by default for new workload clusters.

We are still evaluating if we really want to do this because we might move to Cilium.

closing this as in v19 cilium will be included and there will be no aws-cni running anywhere


Code update for handling JMS Linked exception

Updated Catch clause for MQConnectionFactory method in Route class
Added specific information on the type of exception for troubleshooting
Updated ExceptionHandler class

Changes look good. Go ahead and merge.


Cannot show more than 100 replies to a single comment

We useSWRInfinite to implement cursor-based pagination. However, we need nested pagination in order to show more than 100 replies (the limit) to a comment. I haven't found an "easy" way to implement it with SWR. The key is to handle SWR key (heh) elegantly so that it can keep track of the pages correctly.
Thus, we might need to evaluate other data-fetching libraries such as react-query.
Or... we could fetch the remaining replies separately as a state for the Comment. Hmm...
Still... what kind of comment would get more than 100 replies anyway? :rofl:

With #184, at least now there's an indicator of the hidden replies and a direct link to the comment on GitHub.


feat(addon/components/paper-card-header-headline): migrates to tagless native class.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#21
#20  👈
#19
#18
#17
#16
#15
#14
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @matthewhartstonge and the rest of your teammates on  Graphite


AMQP-661: NPE with null Queue Names in Container

JIRA: https://jira.spring.io/browse/AMQP-661
cherry-pick to 1.6.x

... and cherry-picked.


Add compatibility for nxm:// links to allow compatibility with Nexus download with mod manager (Linux)

Acceptance Criteria
Open in mod manager option on nexusmods should give the option to open on this mod manager on Linux

Look at xdg-open


Fix #1645, Add resource ID API functional tests

Describe the contribution

Fixes #1645
Adds functional tests for each of the following functions

CFE_ES_AppID_ToIndex
CFE_ES_LibID_ToIndex
CFE_ES_TaskID_ToIndex
CFE_ES_CounterID_ToIndex

Testing performed
Steps taken to test the contribution:

Build CFE and run all functional tests

Expected behavior changes
A clear and concise description of how this contribution will change behavior and level of impact.

no impact to behavior

System(s) tested on

Hardware: PC
OS: Ubuntu 20.04

Contributor Info - All information REQUIRED for consideration of pull request
Niall Mullane - GSFC 582 Intern

Also test for range, should be within maximum allowed. Comment comes from a previous similar test, which I think is still valid here.

There is an issue for this with an associated branch on my fork that does this, but Gerardo suggested I create a second PR for that once this is merged.
https://github.com/nasa/cFE/issues/1760

CCB:2021-08-11 APPROVED

Add call for background wakeup


Add ignore error

This change is

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io


Change backup:list (backups) command to new API

Makes the restorable property available

The API is insufficient as it sorts backups by oldest first


Implement derive_rpc macro for Runtime

Background
#180 implements macros to generate RPC servers and client for modules. Thanks to macro magic, all that the runtime needs to do in order to become an RPC server for a particular module rpc is implement two required methods on an auto-generated trait. The name of the trait to be implemented is {module_name:}RpcImpl, and the two required methods are get_backing_impl, which returns a reference to the module, and get_working_set, which returns a clean WorkingSet on top of the latest database.
pub trait MyModuleRpcImpl<C: sov_modules_api::Context> {
    fn get_backing_impl(&self) -> &MyModule<C>;
    fn get_working_set(&self) -> ::sov_modules_api::WorkingSet<C>;
}

Desired Output
In order to avoid surfacing these auto-generated traits to users, we'd like to derive the MyModuleRpcImpl trait for the Runtime struct. So, a statement like this:
#[derive(rpc)]
pub struct Runtime<C: sov_modules_api::Context, T> {
   election: Election<C>,
   bank: Bank<C, T>,
}

... should automatically expand into
impl<C: sov_modules_api::Context, T> ElectionRpcImpl<C> for Runtime<C, T>{
   fn get_backing_impl(&self) -> &Election<C> {
      &self.election
   }
    fn get_working_set(&self) -> ::sov_modules_api::WorkingSet<C> {
          ...
    }
}

impl<C: sov_modules_api::Context, T> BankRpcImpl<C, T> for Runtime<C, T>{
   fn get_backing_impl(&self) -> &Bank<C, T> {
      &self.bank
   }
    fn get_working_set(&self) -> ::sov_modules_api::WorkingSet<C> {
          ...
    }
}

Closed by #292 and #301


Can I inherit ConsoleReporter?

Description
I tried to write a new reporter by inheriting ConsoleReporter and modifying some functions. I wrote this in a new file:
#include "doctest.h"
using namespace doctest;
struct ReporterGrader: public ConsoleReporter {
     ...
};

But the compiler gave me an error "expected class name", as if it does not recognize ConsoleReporter. What am I doing wrong?
Extra information

doctest version: v2.3.7
Operating System: Windows 10 / WSL
Compiler+version: clang++5.0

Well first the console reporter class is in the doctest::detail namespace, and also it's only visible in the translation unit where you have implemented the framework (where you have defined DOCTEST_CONFIG_IMPLEMENT before including the header) - there you could inherit from it, register it as a different reporter (perhaps my_new_console) and then use that through the --reporter=my_new_console command line option. Does this help?

Indeed it works in the main translation unit, but I did not find it in the "detail" namespace but in the "doctest" namespace. Here is a main program that works for me:

#define DOCTEST_CONFIG_IMPLEMENT
#include "doctest.h"
using namespace doctest;

struct ReporterGrader: public ConsoleReporter {
    ReporterGrader(const ContextOptions& opt): ConsoleReporter(opt) {}

    void test_run_end(const TestRunStats& run_stats) override {
        ConsoleReporter::test_run_end(run_stats);
        float grade = (run_stats.numAsserts - run_stats.numAssertsFailed) * 100 / run_stats.numAsserts;
        std::cout << "Grade: " << grade << std::endl;
    }
};

REGISTER_REPORTER("grader", /*priority=*/1, ReporterGrader);

int main(int argc, char** argv) {
    Context context;
    context.addFilter("reporters", "grader");
    context.run();
}

Glad that it worked! The class is actually in the detail namespace but that namespace gets used in an anonymous namespace inside of the doctest namespace and that's why you find it in doctest.
I'm closing this as the issue seems resolved :)


APPS: Restore the possibility to combine -pubout with -text

This applies to the 'openssl pkey' command.
Fixes #15645

This pull request is ready to merge

Merged
5ac6d7d21b4e896fee2eca0488915faaea196448 APPS: Restore the possibility to combine -pubout with -text


[flash_ctrl] Convert task to function

This fixes a breakage in the foundry repository (the task is being overridden with a function in foundry, and the return types do not match). I believe there is no need to make this a task, hence I aligned it to be a function instead.
Signed-off-by: Michael Schaffner<EMAIL_ADDRESS>

@msfschaffner I changed it to be a task because it's calling the the task updat_partition_mem_model:
https://github.com/lowRISC/opentitan/blob/15bc9e3527d89d793d2ca740403adad262f708ac/hw/ip/flash_ctrl/dv/env/flash_ctrl_env_cfg.sv#L170
There is a pending PR in Gerrit that update the foundry function to task as well:
https://opentitan-review.googlesource.com/c/asic/+/11940
This PR's Kokoro is failing because it has a cyclic dependency with another PR, so please manually pass the Kokoro there so I'll be able to merge it.


Resque "undefined method '-'" when geocoding any table

When geocoding any table, resque spits out this error:
exception:  undefined method `-' for nil:NilClass
/home/ubuntu/www/production.cartodb.com/current/app/models/user.rb:978:in `remaining_geocoding_quota'
 /home/ubuntu/www/production.cartodb.com/current/app/models/geocoding.rb:203:in `remaining_quota'
 /home/ubuntu/www/production.cartodb.com/current/app/models/geocoding.rb:265:in `metrics_payload'
 /home/ubuntu/www/production.cartodb.com/current/app/models/geocoding.rb:165:in `report'
 /home/ubuntu/www/production.cartodb.com/current/app/models/geocoding.rb:329:in `handle_geocoding_success'
 /home/ubuntu/www/production.cartodb.com/current/app/models/geocoding.rb:159:in `run_geocoding!'
 /home/ubuntu/www/production.cartodb.com/current/app/models/geocoding.rb:132:in `run!'
 /home/ubuntu/www/production.cartodb.com/current/lib/resque/geocoder_jobs.rb:9:in `block in perform'
 /home/ubuntu/www/production.cartodb.com/current/lib/resque/base_job.rb:21:in `call'
 /home/ubuntu/www/production.cartodb.com/current/lib/resque/base_job.rb:21:in `run_action'
 /home/ubuntu/www/production.cartodb.com/current/lib/resque/geocoder_jobs.rb:9:in `perform'
 /var/lib/gems/1.9.1/gems/resque-1.25.2/lib/resque/job.rb:240:in `block (3 levels) in perform'
 /var/lib/gems/1.9.1/gems/resque-metrics-0.1.1/lib/resque/metrics.rb:353:in `around_perform_metrics'
 /var/lib/gems/1.9.1/gems/resque-1.25.2/lib/resque/job.rb:239:in `block (2 levels) in perform'
 /var/lib/gems/1.9.1/gems/resque-1.25.2/lib/resque/job.rb:247:in `call'
 /var/lib/gems/1.9.1/gems/resque-1.25.2/lib/resque/job.rb:247:in `perform'
 /var/lib/gems/1.9.1/gems/resque-1.25.2/lib/resque/worker.rb:250:in `perform'
 /var/lib/gems/1.9.1/gems/resque-1.25.2/lib/resque/worker.rb:189:in `block in work'
...

Although the geocoding continues successfully, this should be fixed

This issue is caused by the lack of to_i' at the end of geocoding_quota` in file https://github.com/CartoDB/cartodb/blame/master/app/models/user.rb#L977.
I'm fixing this, creating a spec test for it and submitting a PR.

Solving in PR #4848


Certain Activities/Amenities have 0 results

During our CUTGroup test, we saw that some activities and amenities had 0 results which is inaccurate. Two examples are "Golf" and "Public Bathroom." We know that there have to be locations with golf and public bathrooms. For example, near LaBagh Woods there is the Billy Caldwell golf course with an activity icon seen on the map. I have, however, not seen an example of a location with a restroom icon on the map.
Is this a problem with data not being connected to location result? This issue might be relevant to issue #43.

@smarziano When you say 0 results I assume you are talking about a scenario where someone types/selects golf or public bathroom in the search?
In the case of golf, part of the problem is that Billy Caldwell Golf Course entrance "parent" so it was orphaned. (So, yes #43 )

I have, however, not seen an example of a location with a restroom icon on the map.
As it is set up right now there wouldn't be a restroom icon on the map because restrooms do not have separate locations from the parent entrance (at least as the data is right now).

One thing to think about is maybe distinguishing in the detail panel between icons that would show up on the map and ones that wouldn't?

@shua123  Are we limited by the data so that we can't add all activities and amenities to the map?

@smarziano @shua123 Not all the activities make sense on the map and that's why they are absent. For example, hiking, biking, x-country skiing take place on trails and not at a single point.
For the CUT Group test, public restroom data wasn't in there and the golf courses were orphaned as Josh said.
I like potentially distinguishing between mapped and non-mapped icons in the panel, but I'd like to see how everything functions without the data hiccups first.

@versatilehuman @shua123 with this knowledge, I think this is absolutely something we should revisit when the data is all there and working.

"potentially distinguishing between mapped and non-mapped icons in the panel" covered by #56 & #29


[Bug]: Fails to initialise when "." is used as app name inside a pre-initialed git repo

Which Remix packages are impacted?

[ ] remix (Remix core)
[X] create-remix
[ ] @remix-run/architect
[ ] @remix-run/cloudflare-workers
[ ] @remix-run/dev
[ ] @remix-run/express
[ ] @remix-run/netlify
[ ] @remix-run/node
[ ] @remix-run/react
[ ] @remix-run/serve
[ ] @remix-run/server-runtime
[ ] @remix-run/vercel

What version of Remix are you using?
1.1.1
What version of Node are you using? Minimum supported version is 14.
14.17.3
Steps to Reproduce

Create a git repo with .gitignore and clone to local
cd into repo folder
npx create-remix@latest  or use @1.1.1
? Where would you like to create your app? ./
(choose which ever option moving ahead, I used typescript and vercel)

How I created my repo
➜  remix-apps gh repo create test_remix
? Visibility Internal
? Would you like to add a .gitignore? Yes
? Choose a .gitignore template Node
? Would you like to add a license? No
? This will create the "test_remix" repository on GitHub. Continue? Yes
✓ Created repository AbhinavRobinson/test_remix on GitHub
? Clone the remote project directory "AbhinavRobinson/test_remix"? Yes

Expected Behavior
Created remix app in ./ dir with vercel and typescript config.
Actual Behavior
➜  test_remix git:(main) npx create-remix@latest

R E M I X

💿 Welcome to Remix! Let's get you set up with a new project.
? Where would you like to create your app? ./
? Where do you want to deploy? Choose Remix if you're unsure
, it's easy to change deployment targets. Vercel
? TypeScript or JavaScript? TypeScript
? Do you want me to run `npm install`? No
Error: dest already exists.
    at /Users/abhinavrobinson/.npm/_npx/5164864a48bff686/node_modules/fs-extra/lib/move/move.js:49:31
    at /Users/abhinavrobinson/.npm/_npx/5164864a48bff686/node_modules/universalify/index.js:22:54

➜  test_remix git:(main) ✗ yarn
yarn install v1.22.17
warning package.json: No license field
info No lockfile found.
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "@remix-run/vercel ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "@remix-run/vercel ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "@remix-run/serve > @remix-run/express > @remix-run/server-runtime ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "@remix-run/serve > @remix-run/express > @remix-run/server-runtime ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "@remix-run/serve > @remix-run/express > @remix-run/server-runtime > react-router-dom ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>[4/4] 🔨  Building fresh packages...
success Saved lockfile.
$ remix setup node
/bin/sh: remix: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

➜  test_remix git:(main) ✗ yarn dev
yarn run v1.22.10
warning package.json: No license field
$ remix dev
/bin/sh: remix: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

This looks like you need to run an npm install. No was selected when the remix setup script asked if you wanted it to install. That's why the remix command can't be found.
Run
npm install
in the root of your project folder.

Oh my bad, I had run yarn but forgot to include in this, will edit this.

Added yarn command output  ✅

To my understanding something might but going wrong here
Error: dest already exists.
    at /Users/abhinavrobinson/.npm/_npx/5164864a48bff686/node_modules/fs-extra/lib/move/move.js:49:31
    at /Users/abhinavrobinson/.npm/_npx/5164864a48bff686/node_modules/universalify/index.js:22:54

Maybe a conflict with the existing .gitignore file? Not sure.

@sbernheim4 Please let me know if this is a user error, in which case I will close this :)

Hi, just to clarify I'm not a contributor or maintainer. Just was browsing through the issues and thought this might have been an easier fix. Sorry its not :(.
From the error - the first thing I'd be curious to know is what shows up if you run ls -al in the same folder as you're trying to create a project. If so removing any old files or folders sticking around may solve the issue.
If that doesn't work, from your previous comment I would go into that file  move.js:49:31 and see what folder or file it's trying to create - that might inform what's going wrong.

I don't believe this is a critical bug, one solution is to delete the .gitignore and then run it. But again, it seems like a bug that can be fixed, and is more of a quality of life issue.
Thanks for the reply and look around.
Cheers.

Oh - I bet then that the the setup process attempts to create the gitingore file for you and fails when it sees one already exists.

Created a PR for this #1336


IndexError: index 197 is out of bounds for axis 0 with size 197

data: folder_shared/sct_issues/20160831_jison
sct_straighten_spinalcord -i t2.nii.gz -s t2_seg_manual.nii.gz -r 0 -param algo_fitting=hanning -v 2
--
Spinal Cord Toolbox (version dev-5fdfacd397ec622f1a1928b6d498a8214031ad4a)
Running /Users/julien/code/spinalcordtoolbox/scripts/sct_straighten_spinalcord.py -i t2.nii.gz -s t2_seg_manual.nii.gz -r 0 -param algo_fitting=hanning -v 2
/Users/julien/code/spinalcordtoolbox

Check input arguments:
  Input volume ...................... t2.nii.gz
  Centerline ........................ t2_seg_manual.nii.gz
  Final interpolation ............... spline
  Verbose ........................... 2

Create temporary folder...
tmp_create
mkdir tmp.160902141422_773734/

Copy files to tmp folder...
sct_convert -i t2.nii.gz -o tmp.160902141422_773734/data.nii
sct_convert -i t2_seg_manual.nii.gz -o tmp.160902141422_773734/centerline.nii.gz

Orient centerline to RPI orientation...
sct_image -i centerline.nii.gz -setorient RPI -o centerline_rpi.nii.gz

Get dimensions...
.. matrix size: 72 x 256 x 256
.. voxel size:  1.0mm x 0.976562mm x 0.976562mm

Smooth centerline/segmentation...
.. Get center of mass of the centerline/segmentation...
.. Computing physical coordinates of centerline/segmentation...
.. Smoothing algo = hanning
.. Windows length = 50

Create the straight space and the safe zone...
Length of spinal cord =<PHONE_NUMBER>3
Size of spinal cord in z direction =<PHONE_NUMBER>82
Ratio length/size =  1.02206326824
Safe zone boundaries:
Curved space =  [-115.16624461588455, 80.081277265733604]
Straight space =  [-117.32014384000907, 82.235176489858119]

Pad input volume to account for spinal cord length...
sct_image -i centerline_rpi.nii.gz -o tmp.centerline_pad.nii.gz -pad 0,0,4
sct_crop_image -i tmp.centerline_pad.nii.gz -o tmp.centerline_pad_crop.nii.gz -dim 0,1,2 -start 1,93,0 -end 71,163,204
WARNING: File tmp.centerline_pad_crop.nii.gz already exists. Deleting it.
Number of voxel = 4718592

Smooth centerline/segmentation...
.. Get center of mass of the centerline/segmentation...
.. Computing physical coordinates of centerline/segmentation...
.. Smoothing algo = hanning
.. Windows length = 50
Time to generate centerline: 28678.0 ms
Time to generate volumes and indices: 4304.0 ms
Time to find nearest centerline points: 12215.0 ms
Time to compute distance between voxels and nearest planes: 2170.0 ms
Time to get projected voxels on planes: 4023.0 ms
Time to get in-plane coordinates: 568.0 ms
WARNING: Exception during Straightening:
Error on line 483
index 197 is out of bounds for axis 0 with size 197

Generate output file (in current folder)...
  ERROR: File tmp.160902141422_773734//tmp.curve2straight.nii.gz does not exist. Exit program.

/Users/julien/code/spinalcordtoolbox/scripts/sct_utils.pyTraceback (most recent call last):
  File "/Users/julien/code/spinalcordtoolbox/scripts/sct_straighten_spinalcord.py", line 483, in straighten
    coord_straight2curved = centerline.get_inverse_plans_coordinates(coord_in_planes_straight, nearest_indexes_straight)
  File "/Users/julien/code/spinalcordtoolbox/scripts/msct_types.py", line 319, in get_inverse_plans_coordinates
    return einsum('mnr,nr->mr', rollaxis(self.matrices[indexes], 0, 3), coordinates.transpose()).transpose() + self.points[indexes]
IndexError: index 197 is out of bounds for axis 0 with size 197

Hanning is not working with the current straightening method because of hanning does not produce the correct number of points currently. That is why I replaced the default fitting method with NURBS.
We should deactivate hanning until the issue is fixed (if fixable).

I deactivated hanning algorithm for now.

fixed


Links are already connected bug

Hi, I've installed the Pipewalker game from the Software Manager in Linux mint but when i play the game there is some bug where all the computers/taps are already connected and all i need to do to finish the games is to simply rotate the water source or the start of the link and it finishes the puzzle.
Basically, every computer or tap is basically already linked or connected and it doesn't let you solve anything because everything is link except the water source.
I've tried to install this via the instructions given but I'm having trouble doing that as I am new to this.

It was fixed in version 1.1, available in Ubuntu 24.10.


Compatibility with CVS to get Revisions

The current version of the plugin doesn't get files revision from CVS, I fixe this.
The other modification is about the fact that a developper can commit with only the taski. We don't want that the plugin change the state.

Seam that someone decide to have tasks un progress. Nevermind i'll keep my fork


Add GH action to ensure that OLM bindata in SDK is up-to-date

Feature Request
Create a github action in CI to ensure that the OLM bindata in SDK is up to date with the latest 3 releases of OLM. This is to ensure that we always "officially" support latest OLM versions.
Related to https://github.com/operator-framework/operator-sdk/issues/5680

@everettraven As discussed in triage, assigning this issue to you. Please feel free to add a milestone which you are comfortable with.


PR to demo current state of app in feedback

Fix failing tests
Why do you ave a auth.js in a config folder,  i think i should be in the middleware folder since its also a middleware
static createUser(req, res) {
if (req.body.roleId) {
return res.status(400).json({
message: 'sorry, you can't signup as an admin'
});
}
this should be if(req.body.roleId == 1) or do u mean that your regular users dont have  roleId
const id = req.decoded.id;
const limit = req.query.limit || 10;
const offset = req.query.offset || 0;
` this should be refactored.. kindly extract this piece of code into a helper so that it can be reusable
const searchQuery = (table, field, query, permission, as) => {
const sequelizeQuery = (as) ?
 AND ("accessId"=1 OR "ownerId"=${permission.userId}) : ''};
return sequelizeQuery;. please extract this piece of code .. create a utils folder and put all your raw queries there
Try as much a possible to avoid raw queries
pls take out unnecessary comment
remove inline styling
be consistent use jsx or js for your component names, however the airbnb standard is jsx so please refactor

Thanks! Will refactor

Changes Unknown when pulling 5937507f599c878721986ee6171aa6635612420b on demo-feedback into ** on feedback**.


[SPARK-11572] Exit AsynchronousListenerBus thread when stop() is called

As vonnagy reported in the following thread:
http://search-hadoop.com/m/q3RTtk982kvIow22
Attempts to join the thread in AsynchronousListenerBus resulted in lock up because AsynchronousListenerBus thread was still getting messages SparkListenerExecutorMetricsUpdate from the DAGScheduler

Merged build triggered.

Merged build started.

Test build #45302 has started for PR 9546 at commit c60b860.

Test build #45302 has finished for PR 9546 at commit c60b860.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

@ted-yu I have found that the call to listener.join (line 168) sometimes still locks up. I have changed the code slightly to use something like listener.join(20) (line 168) so that if the thread does not exit it will give it a quick break before trying again.
Would you mind adding something like that to your PR?

I was unable to duplicate the issue I had with the listenerThread.join so it seems that your change solved the issue.
If I encounter the issue again then I can create a PR to adjust the listenerThread.join() accordingly.

Merged build triggered.

Merged build started.

Test build #45460 has started for PR 9546 at commit 9a6f9ff.

Merged build triggered.

Merged build started.

Test build #45464 has started for PR 9546 at commit 9acce70.

Test build #45460 has finished for PR 9546 at commit 9a6f9ff.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/45460/
Test FAILed.

I see several errors in the following form (https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/45460/consoleFull):
[error] SERVER ERROR: Service Temporarily Unavailable url=http://repository.mapr.com/maven/org/apache/hadoop/hadoop-yarn-server/2.2.0/hadoop-yarn-server-2.2.0.jar

Not related to the PR.

Test build #45464 has finished for PR 9546 at commit 9acce70.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/45464/
Test PASSed.

@andrewor14
See if all comments have been addressed

I think that this has caused the  "org.apache.spark.scheduler.EventLoggingListenerSuite.End-to-end event logging" test to become flaky in Jenkins.
I believe that this patch may have changed the behavior of the listener bus during shutdown. According to the stop() method's Scaladoc:
  /**
   * Stop the listener bus. It will wait until the queued events have been processed, but drop the
   * new events after stopping.
   */

It looks like this patch just changes things so that we halt immediately once the stopped flag has been set rather than waiting for the queue to drain.

I checked
https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-Maven-with-YARN/HADOOP_PROFILE=hadoop-2.4,label=spark-test/4122/consoleFull
back till:
https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-Maven-with-YARN/HADOOP_PROFILE=hadoop-2.4,label=spark-test/4118/consoleFull
https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-Maven-with-YARN/HADOOP_PROFILE=hadoop-2.3,label=spark-test/4122/consoleFull
back until:
https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-Maven-with-YARN/HADOOP_PROFILE=hadoop-2.3,label=spark-test/4119/consoleFull
EventLoggingListenerSuite passed in every build above

Look at the Master SBT build; there's definitely a regression: https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-SBT/4014/AMPLAB_JENKINS_BUILD_PROFILE=hadoop2.3,label=spark-test/testReport/junit/org.apache.spark.scheduler/EventLoggingListenerSuite/End_to_end_event_logging/history/
If you keep clicking on the "Older" link to page back through the test history, you'll find that this first started in https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-SBT/AMPLAB_JENKINS_BUILD_PROFILE=hadoop2.3,label=spark-test/3982/testReport/, whose changeset includes this patch: https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-SBT/AMPLAB_JENKINS_BUILD_PROFILE=hadoop2.3,label=spark-test/3982/changes

Planning to send out a PR to fix the regression by keeping count of queued events first time seeing the stop flag.

Cloning git repo was extremely slow.
Here is proposed fix:
diff --git a/core/src/main/scala/org/apache/spark/util/AsynchronousListenerBus.scala b/core/src/main/scala/org/apache/spark/util/AsynchronousListenerBus.scala
index b3b54af..cc58bc5 100644
--- a/core/src/main/scala/org/apache/spark/util/AsynchronousListenerBus.scala
+++ b/core/src/main/scala/org/apache/spark/util/AsynchronousListenerBus.scala
@@ -56,19 +56,24 @@ private[spark] abstract class AsynchronousListenerBus[L <: AnyRef, E](name: Stri

   // A counter that represents the number of events produced and consumed in the queue
   private val eventLock = new Semaphore(0)
+  // limit on the number of events to process before exiting. -1 means no limit
+  private val eventLimit = -1

   private val listenerThread = new Thread(name) {
     setDaemon(true)
     override def run(): Unit = Utils.tryOrStopSparkContext(sparkContext) {
-      while (true) {
+      while (eventLimit != 0) {
         eventLock.acquire()
         self.synchronized {
           processingEvent = true
         }
         try {
           if (stopped.get()) {
-            // Get out of the while loop and shutdown the daemon thread
-            return
+            eventLimit = eventQueue.size
+            if (eventLimit == 0) {
+              // Get out of the while loop and shutdown the daemon thread
+              return
+            }
           }
           val event = eventQueue.poll
           assert(event != null, "event queue was empty but the listener bus was not stopped")


Add Travis CI notifications for Slack

Don't forget to tag it ->>> so it shows up in the changelog I generate :)


License for activation user in Direct Routing multi tenant

Does it require to provide E5 license for Activation user or just sip address is enough in customer's tenant for Direct Routing in multi-tenant ?

Hi @mazhagiah do you have a specific article that you are talking about that needs to be corrected?  I think this article might answer your question https://docs.microsoft.com/en-us/microsoftteams/direct-routing-sbc-multiple-tenants
Hope it helps you.

@officedocsbot close


Show seed Words on Phoenixd with Umbrel on GUI

Hi everyone.
I Run the Alby Hub with Phoenixd on Umbrel. (v.1.8.0)
There is no option in the GUI to show the Seed Words. To show the Seed Words i need to do it in the Umbrel Terminal.
Does this have any reason?

There is no possibility for us to do that. phoenixd is a different tool that exposes an API which is used by Alby Hub. There is no way for Alby Hub to get those seed words. You can only get those through phoenixd.
Probably because there is no easy way to do this on Umbrel they might also not have official support for umbrel, yet.

okey thank you!


Add video transcripts

Adds video transcripts for the course videos.
TODO

[ ] Add transcripts for tasks videos in Chapter 7
[x] Verify this format produces good subtitles in YouTube before opening up for translations
[x] Add English .srt files with timestamps
[ ] Add Sasha's carbon transcript
[ ] Fill out transcript for instructor intros

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Merging this to unblock translation efforts for now. WIll revisit todos when time permits


ConfigServer Security & Firewall: Opened in the new tab shows an empty page

When opening CSF from Webmin in a new tab, the page stays blank. The issue is caused by <body style="opacity: 0; pointer-events: none;">.
When removing opacity: 0; the page shows correctly (not themed though)

Yes, at the moment that's the way it is.
It would work under other themes.
Why would you want to open it in new tab?

I open it in a new tab because I prefer the unthemed CSF and I think it worked before.

Alright, no problem, I will try to do something about that on 18.00+.
Thanks for reporting.

The UI of CSF will be improved upon 18.01 even more.
I beg your pardon but I'm not willing to do very complex workaround to support unthemed version of this amazing module.
Please tell me what exactly is missing for you in themed version and I will do my best to improve it.
Version 18.01 will have improved UI of configuration page and server output.


Use the typescript Language Server Protocol files to generate the ruby types

Previously the  Language Server Protocol (LSP) ruby types were hand crafted from the typescript files.  While this mostly worked it caused some inconsistencies and confusing when adding new features.
Instead we should be translating the typescript files directly into ruby.

Merged and done.


[BUG] - There is no export called "first" in rxjs module  smp-core-utils.mjs

There is no export called "first" in rxjs module in ./node_modules/smp-core-utils/fesm2020/smp-core-utils.mjs file. So, except using rxjs module use "rxjs/operators" module

Maybe use the search function before opening issues?


Adding commas to the examples

I ran this module and noticed that the output puts in commas, so I updated the readme for people to know that.
You can test it for yourself here: https://runkit.com/57e5af79900b9c13004e2cd6/57e5b79958d24b1400115291
Review

@ascott1
@mistergone

:boom: nice catch @KimberlyMunoz!


Update bundle to version 1.0.9 to increase compatibility with Roboform data

If the RoboForm data contains a number of items with the same name, v1.0.8 of the utilities can fail to convert the data.
MrC already has version 1.0.9 available that fixes this and converts the data well.
Side note:
It converted RoboForm 1714 login items on a HDD machine with 2 GB of RAM in six seconds.

This is the release I've used for converting RoboForm data: https://www.dropbox.com/sh/g8ruqcmnyafblf6/AAB1WJDRXN-fotmCH0haYn4la/convert_to_1p4_1.09.zip

@mikecappella do you have version 1.09 to PR?


Character Count error styling does not match documentation when initialised with errorMessage

Description of the issue
The documentation for error styling for a Character Count shows that the following should applied:

govuk-textarea--error applied to the textarea (i.e. displays with red border)
govuk-hint removed and govuk-error-message applied to the hint (i.e. displays in red)
Both of these styles are correctly applied by the Javascript dynamically when text entered into character count exceeds limits.

However, when the component is loaded with an errorMessage passed through BUT the characters does not exceed the maximum, the textarea and hint are not styled as per the documentation.
This is because:

For the textarea, the class govuk-textarea--error is applied in the template but then removed as soon as the Javascript initialises, as updateCountMessage is called as part of initialisation
For the hint, the default style of govuk-hint is hardcoded into the template, and there is no way to override in the template

Steps to reproduce the issue
You can see this behaviour by adding this example to character-count.yaml:
- name: with error from model
data:
  name: more-detail
  id: more-detail
  maxlength: 10
  label:
    text: Can you provide more detail?
  errorMessage:
    text: Error message

Actual vs expected behaviour
Actual: Error styling in template does not match documented error styling
Expected: Error styling matches example in documentation, and error styling when error is dynamically generated
Environment (where applicable)

GOV.UK Frontend Version: 4.0.1

Hi @christopherthomasdesign - thank you, that explanation makes sense, particularly with the behaviour when the user starts typing. I was wondering, is this worth documenting anywhere for this component? As it's been a gotcha for a couple of Govt. departments, it seems.

Hi @JoPintoPaul – thanks for the suggestion. I've raised an issue in the Design System repo to look into documenting it.


More support for S3-like objective storage

Description
Add more support for S3-like objective storage.

[x] Support AWS S3
[ ] Support Minio
[ ] Support B2 Cloud Storage
[ ] Support Tencent COS
[ ] Support Aliyun OSS
[ ] Support UPyun
[ ] Support Qiniu Kodo
[ ] Support Huawei OBS
[ ] Support Azure Blob Storage
[ ] Support GCP
[ ] Support Oracle cloud
[ ] Support Vultr
[ ] Support Linode
[ ] Support DigitalOcean
......

Tencent COS regions (reference from https://cloud.tencent.com/document/product/436/6224)

Backblaze B2 (reference from https://www.backblaze.com/b2/docs/s3_compatible_api.html)

Huawei OBS (reference from https://support.huaweicloud.com/intl/zh-cn/productdesc-obs/obs_03_0152.html  and https://developer.huaweicloud.com/intl/zh-cn/endpoint )

Oracle object storage regions (reference from https://docs.oracle.com/en-us/iaas/api/#/en/objectstorage/20160918/)

Vultr Object Storage regions (reference from https://www.vultr.com/docs/vultr-object-storage/)

DigitalOcean Object Storage (reference from https://docs.digitalocean.com/reference/api/spaces-api/ and https://docs.digitalocean.com/products/spaces/details/limits/)


get_simple_path not working with overlapping NavigationPolygons

Godot version:
3.1 Beta 3 official
OS/device including version:
Linux / Debian 9
Issue description:
Get get_simple_path with Navigation2D does not work with overlapping NavigationPolygons. Maybe i am wrong because i am new to Godot but if i have two NavigationPolygonInstances including overlapping NavigationPolygons, the get_simple_path does not work as expected.
Steps to reproduce:
Create Navigation2D node with two NavigationPolygonInstances attached including ovelapping NavigationPolygons.
See sample project.
Minimal reproduction project:
OverlapNavigation.zip

I figured out that even when overlapping polygons exists inside one NavigationPolygon the get_simple_path fails:

This will not work. Of course i can fix my code for the polygon generation but a 'merge/intersect polygon' function would be really great.

@Zireael07

Polygons must have vertices that are exactly identical. If there are gaps/overlaps, navigation won't work.

What does that mean in practice? That it's possible to have two NavigationPolygonInstances but they must have some vertices at the exact same pixel locations?

Yes, if you have two navigation polygons, they must have two vertices at exact same pixel locations, so that they have common edges.

Thanks for telling me! What's the best way of achieving that? The editor (3.0.6 at least) makes it a bit hard, as selecting NavigationPolygonInstance2 hides the vertices for NavigationPolygonInstance :(

When I tried doing that, I set all values from script. However, that was a lot of scripting for relatively little gain and lots of problems, so I just abandoned it and went back to using a single navigation polygon instance.

I missed your reply while digging into this... I found I can leverage pixel snapping, at least in this case, to enforce the vertices to the same positions.
My tests indicate snapping is sufficient, so I thank you, and hope I can figure out any future problems if they arise :)

Polygon merging WOULD be really useful because I've spent 3 days banging my head on the wall trying to figure it out. Its just not a particularly intuitive piece of information to guess at, and I couldn't find anything in the docs about it.
Uh, not sure if Godot already has any polygon math that could be yeeted into a function to do this, I mean it must have somewhere right, its a 3D engine?
If not https://doc.cgal.org/latest/Boolean_set_operations_2/index.html and its way beyond my dumb-brain math.
But now I know about the adjacent vertex thing, I've finally got this thing working, so thanks <3

I think the Geometry class now has something about merging polygons?

Yes, it's Geometry.merge_polygons, but that only works on 1v1 polygon as the rest of operations for simplicity, but might not be enough if you need to merge multiple polygons. If you do need such a method, please describe your use cases at godotengine/godot-proposals#913.


Moved sourcecode tests to separate tool

Removes false positives in code covage
No need to run 3 times
Clearer errors
No need to use xUnit or nUnit for this
Prepared for usage in other repositories

Current coverage is 72.91%

Merging #1043 into master will decrease coverage by -0.42% as of ea2e001

@@            master   #1043   diff @@
======================================
  Files          263     263
  Stmts        14873   14873
  Branches      1617    1617
  Methods          0       0
======================================
- Hit          10907   10845    -62
  Partial        416     416
- Missed        3550    3612    +62

Review entire Coverage Diff as of ea2e001

Uncovered Suggestions

+0.09% via ...argets/FileTarget.cs#1918...1930
+0.09% via ...argets/FileTarget.cs#1555...1567
+0.08% via ...c/NLog/LogFactory.cs#180...191
See 7 more...

Powered by Codecov. Updated on successful CI builds.