Vulkan cannot create device

Description
On my own application, but also in Sascha Willems' demos, attaching renderdoc causes the application to fail to create the vulkan logical device (i.e. the call to vkCreateDevice). I have managed to track down the last nightly where it worked, which is RenderDoc_2020_10_04_41746240_64. Thank you for keeping these! Just to be clear, for me nightly RenderDoc_2020_10_05_99171cc7_64 is broken.
Steps to reproduce
Get renderdoc 1.11, attach any of deferred.exe from Sascha Willems' demo collection. Run.
Environment

RenderDoc version: 1.11 (nightly also broken)
Operating System: Windows 10
Graphics API: Vulkan

I have two GPUs, an NVIDIA 1060 GTX and Intel UHD Graphics 630.
Let me know if there are any other details I could supply to help out with this.

This works fine for me on 1.11 and on the nightlies. I use Sascha Willems' demos for smoke testing releases and general testing, so I'd be surprised if it were globally broken.
There are few commits in that range, and one of them is a fix to be spec compliant in vkGetInstanceProcAddr. Do you have any programs on your system that might be enabling layers globally? If you run vulkaninfo what layers are listed as available? If you break the debugger in the demo after the vkCreateDevice failure can you list the DLLs loaded in the process?
Are you doing anything else? Your steps are a little unclear when you say 'attach', I presume you mean launch the deferred.exe from RenderDoc.

This works fine for me on 1.11 and on the nightlies. I use Sascha Willems' demos for smoke testing releases and general testing, so I'd be surprised if it were globally broken.
There are few commits in that range, and one of them is a fix to be spec compliant in vkGetInstanceProcAddr. Do you have any programs on your system that might be enabling layers globally? If you run vulkaninfo what layers are listed as available? If you break the debugger in the demo after the vkCreateDevice failure can you list the DLLs loaded in the process?
Are you doing anything else? Your steps are a little unclear when you say 'attach', I presume you mean launch the deferred.exe from RenderDoc.

Yeah I would have been very surprised if it was broken globally.
In answer to your questions:

Whether I enable the debug layers or not doesn't affect it
These are the available layers:

GalaxyOverlayVkLayer (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
GalaxyOverlayVkLayer_DEBUG (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
GalaxyOverlayVkLayer_VERBOSE (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
VK_LAYER_EOS_Overlay (Vulkan overlay layer for Epic Online Services) Vulkan version 1.2.136, layer version 1:
VK_LAYER_EOS_Overlay (Vulkan overlay layer for Epic Online Services) Vulkan version 1.2.136, layer version 1:
VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_LUNARG_api_dump (LunarG API dump layer) Vulkan version 1.2.162, layer version 2:
VK_LAYER_LUNARG_device_simulation (LunarG device simulation layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_LUNARG_gfxreconstruct (GFXReconstruct Capture Layer Version 0.9.5) Vulkan version 1.2.162, layer version 36869:
VK_LAYER_LUNARG_monitor (Execution Monitoring Layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.2.142, layer version 1:
VK_LAYER_RENDERDOC_Capture (Debugging capture layer for RenderDoc) Vulkan version 1.2.131, layer version 12:
VK_LAYER_VALVE_steam_fossilize (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
VK_LAYER_VALVE_steam_overlay (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
VK_LAYER_bandicam_helper (Vulkan Bandicam Helper) Vulkan version 1.1.73, layer version 1:

When I say attach I mean I either load app through renderdoc or load manually (in my app) by loading the layer. Both crash
Loaded dlls in deferred.exe are

ntdll.dll
kernel32.dll
KernelBase.dll
user32.dll
win32u.dll
gdi32.dll
gdi32full.dll
vulkan-1.dll
msvcp_win.dll
ucrtbase.dll
imm32.dll
cfgmgr32.dll
advapi32.dll
msvcp140d.dll
msvcrt.dll
vcruntime140d.dll
vcruntime140_1d.dll
sechost.dll
rpcrt4.dll
ucrtbased.dll
renderdoc.dll
ws2_32.dll
shlwapi.dll
setupapi.dll
bcrypt.dll
comdlg32.dll
combase.dll
SHCore.dll
shell32.dll
comctl32.dll
ole32.dll
oleaut32.dll
vcruntime140.dll
msvcp140.dll
vcruntime140_1.dll
dbghelp.dll
symsrv.dll
mswsock.dll
windows.storage.dll
wldp.dll
D3DCompiler_47.dll
cryptsp.dll
opengl32.dll
glu32.dll
dxgi.dll
kernel.appcore.dll
version.dll
nvoglv64.dll
wtsapi32.dll
msasn1.dll
cryptnet.dll
crypt32.dll
cryptbase.dll
devobj.dll
wintrust.dll
ntmarta.dll
igvk64.dll
dwmapi.dll
igdgmm64.dll
igc64.dll
igdmd64.dll
bdcamvk64.dll
DXCore.dll
nvspcap64.dll
profapi.dll
uxtheme.dll

Yeah I would have been very surprised if it was broken globally.
In answer to your questions:

Whether I enable the debug layers or not doesn't affect it
These are the available layers:

GalaxyOverlayVkLayer (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
GalaxyOverlayVkLayer_DEBUG (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
GalaxyOverlayVkLayer_VERBOSE (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
VK_LAYER_EOS_Overlay (Vulkan overlay layer for Epic Online Services) Vulkan version 1.2.136, layer version 1:
VK_LAYER_EOS_Overlay (Vulkan overlay layer for Epic Online Services) Vulkan version 1.2.136, layer version 1:
VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_LUNARG_api_dump (LunarG API dump layer) Vulkan version 1.2.162, layer version 2:
VK_LAYER_LUNARG_device_simulation (LunarG device simulation layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_LUNARG_gfxreconstruct (GFXReconstruct Capture Layer Version 0.9.5) Vulkan version 1.2.162, layer version 36869:
VK_LAYER_LUNARG_monitor (Execution Monitoring Layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.2.162, layer version 1:
VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.2.142, layer version 1:
VK_LAYER_RENDERDOC_Capture (Debugging capture layer for RenderDoc) Vulkan version 1.2.131, layer version 12:
VK_LAYER_VALVE_steam_fossilize (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
VK_LAYER_VALVE_steam_overlay (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
VK_LAYER_bandicam_helper (Vulkan Bandicam Helper) Vulkan version 1.1.73, layer version 1:

When I say attach I mean I either load app through renderdoc or load manually (in my app) by loading the layer. Both crash
Loaded dlls in deferred.exe are

ntdll.dll
kernel32.dll
KernelBase.dll
user32.dll
win32u.dll
gdi32.dll
gdi32full.dll
vulkan-1.dll
msvcp_win.dll
ucrtbase.dll
imm32.dll
cfgmgr32.dll
advapi32.dll
msvcp140d.dll
msvcrt.dll
vcruntime140d.dll
vcruntime140_1d.dll
sechost.dll
rpcrt4.dll
ucrtbased.dll
renderdoc.dll
ws2_32.dll
shlwapi.dll
setupapi.dll
bcrypt.dll
comdlg32.dll
combase.dll
SHCore.dll
shell32.dll
comctl32.dll
ole32.dll
oleaut32.dll
vcruntime140.dll
msvcp140.dll
vcruntime140_1.dll
dbghelp.dll
symsrv.dll
mswsock.dll
windows.storage.dll
wldp.dll
D3DCompiler_47.dll
cryptsp.dll
opengl32.dll
glu32.dll
dxgi.dll
kernel.appcore.dll
version.dll
nvoglv64.dll
wtsapi32.dll
msasn1.dll
cryptnet.dll
crypt32.dll
cryptbase.dll
devobj.dll
wintrust.dll
ntmarta.dll
igvk64.dll
dwmapi.dll
igdgmm64.dll
igc64.dll
igdmd64.dll
bdcamvk64.dll
DXCore.dll
nvspcap64.dll
profapi.dll
uxtheme.dll

I have figured out how to fix it. I have a program called Bandicam which has a layer and a dll as well, uninstalling it makes it work again. I don't know why it is an issue though or how it conflicts with renderdoc.

I have figured out how to fix it. I have a program called Bandicam which has a layer and a dll as well, uninstalling it makes it work again. I don't know why it is an issue though or how it conflicts with renderdoc.

It means you had buggy software installed and uninstalling it fixed the problem because it was no longer being buggy in all vulkan processes :smile:. I'll add that layer to the disabled layers in RenderDoc so that it won't break for others hopefully.

It means you had buggy software installed and uninstalling it fixed the problem because it was no longer being buggy in all vulkan processes :smile:. I'll add that layer to the disabled layers in RenderDoc so that it won't break for others hopefully.

😁 what I mean is, does it force a layer of some sort without the application knowing? I don't know much about how that works, but I guess each vulkan layer is a dll. Why would that crash renderdoc and not apps running with it though? Thanks for taking a look, this software is not one I normally have enabled and I've been scratching my head all evening

😁 what I mean is, does it force a layer of some sort without the application knowing? I don't know much about how that works, but I guess each vulkan layer is a dll. Why would that crash renderdoc and not apps running with it though? Thanks for taking a look, this software is not one I normally have enabled and I've been scratching my head all evening

Yes, for arguable benefit vulkan layers are allowed to be globally enabled. i.e. opt-out, not opt-in. Looking around it seems like bandicam is one of these, meaning it is automatically loaded as a layer into every vulkan application that runs on the system and that means any bugs it has are added to every running vulkan application.

Yes, for arguable benefit vulkan layers are allowed to be globally enabled. i.e. opt-out, not opt-in. Looking around it seems like bandicam is one of these, meaning it is automatically loaded as a layer into every vulkan application that runs on the system and that means any bugs it has are added to every running vulkan application.

I see. That's a bit sad :(

I see. That's a bit sad :(


v1.2.4 doesn't compile with gccgo

v1.2.3 compiled without a problem here, but v1.2.4 fails with the following error:
# github.com/ncw/rclone/onedrive/api
.gopath/src/github.com/ncw/rclone/onedrive/api/types.go:74:29: error: reference to undefined field or method 'AppendFormat'
  out = (*time.Time)(t).UTC().AppendFormat(out, timeFormat)
                             ^

Looks like the method was added since Go 1.5, but current gccgo is still at go 1.4.2. Would it be possible to continue gccgo support in the current situation?

Yes, I'll fix that. Rclone is supporting go 1.3 to 1.5 at the moment. I didn't notice that the travis build had broken because of the OS X build failure :-(
I wonder if travis  supports gccgo  ...


Remove duplicates

Some modules depend on the same thing, so the user sees results like:
These dependencies were not found in node_modules:

* js-cookie in ./path/to/something/different...
* color in ./path/to/something/different...
* mobx-react in ./path/to/something/different...
* react-component-queries in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* color in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* mobx in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* color in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* color in ./path/to/something/different...
* styled-components in ./path/to/something/different...
* styled-components in ./path/to/something/different...

Did you forget to run npm install --save for them?

A couple recommendations:

[ ] .filter the errors to only show one per module (that's enough).
[ ] Recommend npm install --save ${modules.join(" "}.
[ ] For bonus points, check for yarn.lock in process.cwd() and recommend yarn add ${modules.join(" "} instead.

Good idea !
I don't have time to work on this right now but it should be quite easy to do.

Released in v1.5.0


Feature Request: Pokémon mini core added

I can the run Pokémon core fine by booting Retroarch but it would be nice to have it shown on the emulation station front end

Yeah, it would be amazing!


Chainer implements Autotuner

Ilia,
With the latest release of Chainer version 3.1, Chainer supports cuDNN auto-tuner for convolutional networks.
After installing Chainer v3.1, please add this line: chainer.global_config.autotune = True after the module imports to benchmark Chainer.
Here is our test run on AWS: https://github.com/unnonouno/DeepLearningFrameworks/blob/autotune/Chainer_CNN-autotune.ipynb
Please let me know if you have any issues with implementation.
Thanks!

That's great to see (@msalvaris)! Thank you, I will re-run the test.


Anyone help me to write yaml for following GET json response

YAML File:

config:

testset: "Basic tests"

test: # create entity

name: "Basic get"
url: "/nitro/v1/config/af_config_info"
auth_username: "testuser"
auth_password: "testuser"
validators:

extract_test: {jsonpath_mini: "0.af_config_info",  test: "exists"}

ERROR:Test Failed: Basic get URL=http://localhost:80/rest/v1/config/af_config_info Group=Default HTTP Status Code: 200
ERROR:Test Failure, failure type: Validator Failed, Reason: Extract and test validator failed on test: exists(None)
ERROR:Validator/Error details:Extractor: Extractor Type: jsonpath_mini,  Query: "0.af_config_info", Templated?: False
ERROR:Test Failure, failure type: Validator Failed, Reason: Extract and test validator failed on test: exists(None)
For the following JSON RESPONSE BODY:
{ "errorcode": 0, "message": "Done", "additionalInfo": { "cert_present": "false" }, "af_config_info": [ { "propkey": "NS_INSIGHT_LIC", "propvalue": "1" }, { "propkey": "CB_DEPLOYMENT", "propvalue": "FALSE" }, { "propkey": "NS_DEPLOYMENT", "propvalue": "TRUE" }, { "propkey": "CR_ENABLED", "propvalue": "0" }, { "propkey": "SLA_ENABLED", "propvalue": "1" }, { "propkey": "URL_COLLECTION_ENABLED", "propvalue": "1" }, { "propkey": "HTTP_DOMAIN_ENABLED", "propvalue": "1" }, { "propkey": "USER_AGENT_ENABLED", "propvalue": "1" }, { "propkey": "HTTP_REQ_METHOD_ENABLED", "propvalue": "1" }, { "propkey": "HTTP_RESP_STATUS_ENABLED", "propvalue": "1" }, { "propkey": "OPERATING_SYSTEM_ENABLED", "propvalue": "1" }, { "propkey": "REPORT_TIMEZONE", "propvalue": "local" }, { "propkey": "SERVER_UTC_TIME", "propvalue": "1438947611" }, { "propkey": "MEDIA_TYPE_ENABLED", "propvalue": "1" }, { "propkey": "CONTENT_TYPE_ENABLED", "propvalue": "1" } ] }

Given your test above, I guess it's a normal behaviour for it to fail, since you don't have this string in your response body: 0.af_config_info instead you have af_config_info
I suggest you start simple and test that errorcode and Done tags are found in your response and that they have your required values. You could use the example I gave you in #60 or the example @svanoort has provided.
Going a bit further, I'm not sure that the following comparison is valid:
- compare: {extractor: 'additionalInfo', comparator: 'str_eq', expected: "{cert_present: false}"}
I haven't looked into validators for some while and neither in the code.

It should be  af_config_info.0 for the extractor.

It sounds like this solves your issues?  If not, please reply back and we will re-open the issue.

Thanks svanoort for your inputs. My requirement is need to validate each field in the response body. for example compare NS_INSIGHT_LIC == 1 from the REST response else fail the test case. Can we achieve using this UT framework. Please explain how to define yaml file to extracts the 2nd or 3rd level nodes of json?
{ "errorcode": 0, "message": "Done", "additionalInfo": { "cert_present": "false" }, "af_config_info": [ { "propkey": "NS_INSIGHT_LIC", "propvalue": "1" },{ "propkey": "CONTENT_TYPE_ENABLED", "propvalue": "1" } ] }

To be honest, I'm not sure what you're asking here, @ksreddy543 . Maybe you could clarify?
I can tell you that regex comparators were merged in from a community contributor yesterday, and are now live on the PyPi release cut today (installed via pip, as of 1.5.0).

Hi Sam,
My question is can i do comparision with regex as below:
ex: usernames : testuser_123, testuser_890 etc for these users below comparator should validate the usernames as passed.
compare: {jsonpath_mini: "mps.0.username", comparator: "str_eq", expected: " testuser_* "}
++++++++++++++++++++++++++++++++++++
I am using 1.3.1 version. How can i upgrade to latest "pyresttest" to get new features ?
++++++++++++++++++++++++++++++++++++
Thanks

@ksreddy543 You will need to do a "pip install Django --upgrade" if you installed from pip.  If you installed from source, you will need to reinstall from source.
Documentation on the regex function is here.
Syntax for that validator will look like:
compare: {jsonpath_mini: "mps.0.username", comparator: "regex", expected: " testuser_* "}


Scaffolding Improvements

All tests pass on a freshly create app

Unit tests
Style Tests

Fixed missing template in some files
More boilerplate tests
Added scaffolded app tests (for sanity and coverage)
Removed a couple of setup functions from coverage repots
Added .ini exceptions to the .gitignore file

tox.ini
example.ini
example_newrelic.ini
tests/test.ini

Added more boilerplate conftest fixtures

Better demonstrates the testing environment and fixtures

[x] lgtm


[Bug]: Shopify theme console doesn't accept keyboard input in Windows Console

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Theme
Expected behavior
After running shopify theme console in Windows Terminal CMD (with or without --url arg) console should allow keyboard entry in a repl-like manner.
Actual behavior
After successfully signing in to shopify store, console does not accept/display keyboard input
Can't type here:

Reproduction steps

Run shopify theme console in Windows 11 terminal
Authenticate in browser
Console does not appear to accept keyboard input

Operating System
Windows 11
Shopify CLI version (check your project's package.json if you're not sure)
3.49.2
Shell
Windows 11 Terminal cmd.exe
Node version (run node -v if you're not sure)
v18.17.1
What language and version are you using in your application?
liquid

Hi! Thanks for creating the issue.
I'm not able to reproduce, but let me ping @karreiro in case he has any clue.

@evangrim any chance you managed to fix this? I've been trying to get the console to work for the past 5 hours. @gonzaloriestra I don't believe I can give you any specifics to reproduce this... it just doesn't work. I tried terminal emulators as well, not just cmd: Git bash, cmder, powershell, all result in the same things. No input is received but when I close the console with Ctrl + C, I get all the input that I tried to type in the console get output to the outside console.

@Zetxus It's working for me now on a mac... I was on windows previously. Don't know if's a windows-specific issue though.

@evangrim Yeah I think it's Windows only, even though the bot closed this let me add this for anyone else encountering this.
Unfortunately the fix was to use WSL and set it up on it. I'm pretty sure it had something to do with how Windows 11 console behavior is now all streamlined to the Terminal app. I've no deeper insight into what exactly the cause was though.


Increase coverage for bottery/platform/telegram.py

Missing lines: 83, 86-91, 94-113, 136-150, 79->exit
See Travis log to confirm the missing lines: https://travis-ci.org/rougeth/bottery

Hey I am beginner I am taking this.

Great @AdeilH

Can you help me understand travis I have never used it before. Sorry.

Hi @AdeilH, sure I can help. You don't Travis for doing this issue. Travis is just a service that run our tests automatically and alert us if any of them is broken (Travis can do a lot more than that, but for now that is enough).
First of all, you need to clone bottery and run its tests:
# Clone Bottery repository in your computer
$ git clone https://github.com/rougeth/bottery && cd bottery
# Install Tox
$ pip install tox
# Running the tests
$ tox

This command will clone the repository in your computer and install and run Tox. After that, you will be able to see what lines of bottery isn't covered by tests.

Thanks a lot.


Adding a Get-RubrikEvent function for issue #289

Description
Adding a Get-RubrikEvent function
Related Issue
#289
Motivation and Context
The ability to review CDM events from the module.
How Has This Been Tested?
I've ran several queries against the GAIA lab instances to check the sanity.
Screenshots (if appropriate):
Types of changes
What types of changes does your code introduce? Put an x in all the boxes that apply:

[ ] 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 change)

Checklist:
Go over all the following points, and put an x in all the boxes that apply. If you're unsure about any of these, don't hesitate to ask. We're here to help!

[x ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x ] I have read the CONTRIBUTION document.
[ x I have updated the CHANGELOG file accordingly for the version that this merge modifies.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Thanks for your contribution, this will be reviewed shortly


The snort3 test adapter does not work if there is no snort3 folder open in workspace

When snort3 folder is open in the workspace the extension does not open. it shows 2 info messages but tests are not loaded.
[2021-01-31 10:58:26.085] [INFO] Snort3 Test Explorer found
[2021-01-31 10:58:26.086] [INFO] Snort3 Build tools found
The test explorer icon is not available.

This is fixed from build tools' side


Render source snippet on location

This is something I implemented in my project's test implementation and found very helpful on large source generator samples - rendering the actual source snippet as an output comment, with squiggly lines underlining the problematic section, similar to what you get when compiling in the console.
Unfortunately, only one test in this repo uses locations from actual source trees, so it might be harder to see the benefits, but even this modified example should give an idea of what it looks like.

LGTM. thanks

Thanks!
FWIW the only thing that bothered me in the output is that I couldn't find a way to indent the comment (WriteComment) contents according to the current surrounding indentation in Argon, so it always ends up aligned to the left.
If you have any ideas on how to fix this, that could provide a nicer output when location is stored in nested contexts.


Update test to new infra

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (fa740a2) 70.89% compared to head (cb11194) 70.89%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1268   +/-   ##
=======================================
  Coverage   70.89%   70.89%
=======================================
  Files          57       57
  Lines        7154     7154
  Branches     7154     7154
=======================================
  Hits         5072     5072
  Misses       1669     1669
  Partials      413      413

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


Control over children ordering

I am wondering if any guarantees on the order of children would be a goal or non-goal of this library?
It seems insert_with_parent currently only pushes to the end of the children list.
If I would like to replace a child and keep the current position, this does not seem to be easily possible and I don't even know, if I can rely on insert_with_parent always appending at the end, because this is not documented.
For my use case I just have a left and a right child and it would be great to be able to differentiate between those. But I have no good idea, how to provide this functionality in the context of this library with an arbitrary amount of child nodes.
Possible API suggestions:

Split insert into two functions push at the front and back of the children respectively.

Not a very nice API in my opinion. The use case is not very obvious at first.
Actual sorting would be difficult to emulate given only these functions
Enough for my use case
Easy to implement

Allow to sorting of children via a closure

Makes a good API
Can be used to reorder children, after "replacing" (remove/insert), but needs to track old positions manually
That means not very nice for my use case
Easy to implement (https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.sort_by_key)

Allow swapping of children

Also not a very nice API. The use case is not very obvious at first.
Actual sorting would be difficult to emulate given only these functions
Enough for my use case
Easy to implement

Allow replacement of Nodes and swapping of Nodes.

Swapping could take two NodeIds
Replacing could insert a new node, removing the old in the process.
Still does not make very strong order guarantees except to keep the old order
Feels like it has use cases beyond this

I mostly opened this issue to discuss, if you would want to support any order guarantees anyway. The rest is just a little bit of brainstorming, please feel free to edit/extend/ignore it, however you like.

Thanks again for submitting an issue, all of this is very much appreciated!
You are absolutely correct in saying that insert_with_parent only ever pushes to the end of the child array.  However, this is just the way I happened to implement the system, so I didn't originally mean for there to be any guarantees there.
That's not to say that I'm against having any guarantees about child ordering, it's just that I haven't made any explicit efforts to guarantee any specific behavior so far.  As you said, this is not documented anywhere, so that should probably be fixed at some point (hopefully it will be fixed shortly after we hash this out because I think this is a discussion that is definitely needed).
Right now I'm leaning towards having insert_with_parent's behavior stay the way it is and documenting the fact that new child Nodes will always be inserted "after" existing children.  I think this behavior is nice for several reasons (some of which may be debatable):

I think this behavior is what most people would expect from such a function
It should be fast (assuming that the underlying Vec doesn't need to re-allocate space)
It's a pretty simple implementation

Basically, I want the ordering to be guaranteed not to change unless the caller explicitly asks for it to change.  This is similar to how the caller shouldn't need to worry about NodeIds becoming invalid unless the caller explicitly clones a NodeId (and then proceeds to remove the corresponding Node from the Tree).
With that in mind, I agree it would be very nice to be able to sort the children of a Node, so I'm thinking we definitely need something like sort_children_by_key/sort_children_by (maybe both?).  I did have one question on this one though: could you clarify what you mean by '...but needs to track old positions manually'?
I do also think it would be very nice to have a replace function and a swap function as I can imagine those could be very useful in certain scenarios.
What do you think about the above approach?  I know I basically just responded with "I like all of those, lets do all of them", but I think most of those functions are things that people would expect from a tree library, so they'll be nice to have.

With that in mind, I agree it would be very nice to be able to sort the children of a Node, so I'm thinking we definitely need something like sort_children_by_key/sort_children_by (maybe both?). I did have one question on this one though: could you clarify what you mean by '...but needs to track old positions manually'?

That is just relevant to my use case. If you want to keep the insertion order and replace a child with just the sort functions available, you would have to remember the insertion order prior to making the modifications to restore it later. A real replace function would be a much better solution.
Alright, I am going to implement replace and swap, as well as both sort methods in the next days, maybe even today. I don't think there is anything wrong with exposing both functions.

If you want to keep the insertion order and replace a child with just the sort functions available, you would have to remember the insertion order prior to making the modifications to restore it later. A real replace function would be a much better solution.

Ah, I gotcha, that makes sense.  And yes, I agree, a real replace function would be better.

Alright, I am going to implement replace and swap, as well as both sort methods in the next days, maybe even today. I don't think there is anything wrong with exposing both functions.

Awesome, I appreciate it!  I think those will be great additions!
I would like to request that you make sure that both parent and children values get cleared out on the Node that is removed during replace.  Just to help make sure that they don't live longer than they should on accident.
If any questions/concerns come up while you're working on those please feel free to ask.

I would like to request that you make sure that both parent and children values get cleared out on the Node that is removed during replace. Just to help make sure that they don't live longer than they should on accident.

Sure. I will use the existing functions as a reference.

I am running into some problems implementing sort_by or sort_by_key.
I cannot directly use self.children_mut().sort_by(f), because this only returns NodeIds. But if you can call sort on a Node, you must have acquired this node by using tree.get_mut(), which means the Tree is already borrow mutably and you cannot use it inside the closure to get a Node for the NodeId passed onto you.
I am currently thinking the only way to workaround this, is to implement the sorting methods on Tree directly.
Do you have an opinion on how to implement this?

My first thought is to add a method like this to Tree:
    pub fn sort_children_by_data(&mut self, node_id: &NodeId) -> Result<(), NodeIdError> where T: Ord {
        let (is_valid, error) = self.is_valid_node_id(node_id);
        if !is_valid {
            return Result::Err(error.expect("Tree::move_node_to_parent: Missing an error value on finding an invalid NodeId."));
        }

        let mut children = self.get_unsafe(node_id).children().clone();

        children.sort_by_key(|a| {
            self.get_unsafe(a).data()
        });

        //set_children is a new (private) method.
        self.get_mut_unsafe(node_id).set_children(children);

        Result::Ok(())
    }

Notes on this:

Sadly, this approach requires a clone.
We would need a new method on the MutableNode Trait called set_children for this approach.
Not sure how hard it is to allow a custom closure to be passed in, but this one is obviously hard-coded to compare Node::data() directly which requires T: Ord.

Again, this is just my first thought on how I would have done it, but there may be a better way to go about it.  Any thoughts on this?  Does that help at all?

Sure it does.
Passing a closure should not be a huge problem.
Any reason, why you don't use children_mut() inside this function, now that there is the possibility of mutable access to the node? That would mean we need no clone and no set_children.
I will add those methods to the tree directly then and try to work around the cloning as described.

Well, originally I had this:
pub fn sort_children_by_data(&mut self, node_id: &NodeId) -> Result<(), NodeIdError> where T: Ord {
        let (is_valid, error) = self.is_valid_node_id(node_id);
        if !is_valid {
            return Result::Err(error.expect("Tree::move_node_to_parent: Missing an error value on finding an invalid NodeId."));
        }

        let mut children = self.get_mut_unsafe(node_id).children_mut();

        children.sort_by_key(|a| {
            self.get_unsafe(a).data()
        });

        Result::Ok(())
    }

and I got this error:
error[E0502]: cannot borrow `self` as immutable because `*self` is also borrowed as mutable
   --> src\tree.rs:455:30
    |
453 |         let mut children = self.get_mut_unsafe(node_id).children_mut();
    |                            ---- mutable borrow occurs here
454 |
455 |         children.sort_by_key(|a| {
    |                              ^^^ immutable borrow occurs here
456 |             self.get_unsafe(a).data()
    |             ---- borrow occurs due to use of `self` in closure
...
460 |     }
    |     - mutable borrow ends here

So that's why I opted for the immutable borrow on the node (note get_mut_unsafe vs get_unsafe) + clone the children idea.
But maybe there's another way to approach it that I'm just not seeing right now.

Just ran into this problem as well.
This is a little frustrating, because we know, that no children will be the same as node_id.
There is no easy way to work around this. self.nodes.split(n) might be used to get those separately without cloning, but I think for the readability of the source code, we should go with clone instead.

Yeah, I agree it's pretty frustrating.
But I think you're right though, going with the clone approach is probably best.

Just a though:
We could add another method to MutableNode called take_children, that uses mem::swap to exchange the children with an empty Vec, which could be initialized using Vec::with_capaticy(0) or even mem::uninitialized, if you would want to go with unsafe code.
That way we could manipulate the children directly without keeping a mutable reference to the node by taking ownership.
An empty Vec has probably a smaller performance impact than the cloning, but it lowers the readability of the code.

To be honest I try to avoid unsafe wherever possible, but I'm sure you've seen that I've already used unsafe a few times to avoid bounds checking (since we're doing the bounds checking already).
With that said, (and if I'm following your line of logic properly) I think this is probably a good idea.
Just to make sure I'm following you on this:

add set_children to MutableNode
add take_children to MutableNode
in sort_by_[whatever] call take_children, sort the vec, and then call set_children

Is that correct?
Also, from the docs here:

In particular, if you construct a Vec with capacity 0 via Vec::new(), vec![], Vec::with_capacity(0), or by calling shrink_to_fit() on an empty Vec, it will not allocate memory.

So mem::uninitialized might be overkill in this case?

Yes that is correct.
And that indeed sounds like an overkill in that case. I was trying to avoid a heap allocation of Vec, but if it does none in the first place mem::uninitialized just skips the initializer, which should not have a huge impact on performance.

Honestly I think this is the best direction to go here.
~I have no problem with your solutions in #5 , but I would love to avoid the clone if possible.~
You beat me to it haha!  I'll comment more in the PR.


Feature Request: Undo Feature

This is damn killer Tom.
How feasible would it be to have an undo button ? If you selected the wrong point while you're making a polygon for example.

This was implemented in leaflet.draw and has been added to geojson.io . closing :)


local error

#####C:\Users\msq\temp1> docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename .\50k_output.cool --filetype cooler --datatype matrix
uid: YG6qIG1WS8iMmff_j3E2Ag
Traceback (most recent call last):
File "higlass-server/manage.py", line 22, in
execute_from_command_line(sys.argv)
File "/opt/conda/lib/python3.6/site-packages/django/core/management/init.py", line 371, in execute_from_command_line
utility.execute()
File "/opt/conda/lib/python3.6/site-packages/django/core/management/init.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/conda/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/conda/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
output = self.handle(*args, **options)
File "/home/higlass/projects/higlass-server/tilesets/management/commands/ingest_tileset.py", line 52, in handle
django_file = File(open(filename, 'rb'))
FileNotFoundError: [Errno 2] No such file or directory: '.\50k_output.cool'
C:\Users\msq\temp1> ls
目录: C:\Users\msq\temp1
Mode LastWriteTime Length Name
-a---- 2019/3/22 9:07 3808854 50k_output.cool
-a---- 2019/3/22 22:59 0 nginx-stderr---supervisor-HCMZTI.log
-a---- 2019/3/22 22:59 0 nginx-stdout---supervisor-RjNur2.log
-a---- 2019/3/22 23:42 10306 uwsgi-stderr---supervisor-IiVarm.log
-a---- 2019/3/22 23:00 1168 uwsgi-stdout---supervisor-w6z1vS.log
####C:\Users\msq\temp1> docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename 50k_output.cool --filetype cooler --datatype matrix
uid: DkZln6pXTyaDuevA5T-iaw
Traceback (most recent call last):
File "higlass-server/manage.py", line 22, in
execute_from_command_line(sys.argv)
File "/opt/conda/lib/python3.6/site-packages/django/core/management/init.py", line 371, in execute_from_command_line
utility.execute()
File "/opt/conda/lib/python3.6/site-packages/django/core/management/init.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/conda/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/conda/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
output = self.handle(*args, **options)
File "/home/higlass/projects/higlass-server/tilesets/management/commands/ingest_tileset.py", line 52, in handle
django_file = File(open(filename, 'rb'))
FileNotFoundError: [Errno 2] No such file or directory: '50k_output.cool'
Why it says there is no such file?I'm confused.

Docker has its own internal filesystem. When you run the manage.py ingest_tileset.py command in the Docker container, it looks for the 50k_output.cool file in its own filesystem. That file, however, is not there. It's on your computer's filesystem. To use it from within Docker, you have to mount your local directory within docker. You can do that with the -v option:
docker exec -v C:\Users\msq\temp1:/tmp higlass-container python higlass-server/manage.py ingest_tileset --filename /tmp/50k_output.cool --filetype cooler --datatype matrix

This will mount your local directory (C:\Users\msq\temp1) as /tmp within the Docker container. You then ingest the file from there.


Layers support

@siberianisaev please note that layers must provide backed matrices (dense or sparse) by the analogue with X field


Correct the check in l3 miss handling in overlay driver

Fixes #1069
Verified with a code change to set the serf eventbuffer to a very low number.
Signed-off-by: Santhosh Manohar<EMAIL_ADDRESS>

LGTM

LGTM


nheko: add identicons support

Motivation for this change
Nheko has support for identicons. There is a checkbox in the settings of nheko but it wasn’t clickable because the dependency (“qt-jdenticon” plugin) was missing.
This change adds “qt-jdenticon” as a new package (Qt plugin) and as a dependency for Nheko. This package is maintained by Nheko team.

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Context reference: https://github.com/NixOS/nixpkgs/pull/150437#issuecomment-991965132

@doronbehar

qt-jdenticon is meant for qt5, and nheko is built with qt6. Closing.

It works for me on Nheko build for Qt6? Here is a demonstration:
https://github.com/unclechu/nixos-config/blob/1fcdb7e65cb21e523c81adc5c6d5cbea947a6cd5/apps/nheko/default.nix#L28-L59
https://github.com/unclechu/nixos-config/blob/1fcdb7e65cb21e523c81adc5c6d5cbea947a6cd5/apps/nheko/default.nix#L73-L76
It works both for Qt5 and Qt6 just fine.

Hmm OK, then please add it to both qt5-packages.nix and qt6-packages.nix, as I asked you already 3 years ago :) fix the merge conflicts, and we'll see. Also, remember to separate the qt-jdenticon: init commit to a separate commit.

@doronbehar I fixed everything, please have another look.
I think I was wrong about qt-jdenticon was working both for Qt5 and Qt6. 0.2.* was made for Qt5 but I was actually using 0.3.0 that is made to work with Qt6, with newer Nheko. So I didn’t add the package to qt5-packages.nix, I assume it won’t work judging by CMake configuration file which only mentions Qt6. But I added the package to qt6-packages.nix (removed from all-packages.nix).

So now it’s 0.3.0 version instead of 0.2.1
I made separate commits for adding qt-jdenticon package and using the package for Nheko
Applied new nixfmt
Tested that the library package builds like this: nix-build -E 'with import ./. {}; qt6Packages.qt-jdenticon'
And built Nheko like this: nix-build -E 'with import ./. { config.permittedInsecurePackages=["olm-3.2.16"]; }; nheko' and tested that jdenticons are rendered properly:

I added a few minor modifications which were hard to explain in a review :), and forced pushed. I'm sure you won't mind.

Oh I'm sorry for the mass ping everyone! I have no idea how could this rebase go wrong!


Merge from master with small updates

Codecov Report
Attention: 84 lines in your changes are missing coverage. Please review.

Comparison is base (9b42969) 40.37% compared to head (d23e153) 40.34%.

Files
Patch %
Lines

...src/main/java/tech/ydb/table/impl/BaseSession.java
40.96%
42 Missing and 7 partials :warning:

...va/tech/ydb/table/settings/AlterTableSettings.java
42.85%
24 Missing :warning:

.../java/tech/ydb/core/grpc/GrpcTransportBuilder.java
20.00%
8 Missing :warning:

.../java/tech/ydb/table/description/ColumnFamily.java
66.66%
2 Missing :warning:

...tech/ydb/core/impl/pool/ManagedChannelFactory.java
66.66%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@              Coverage Diff              @@
##             develop     #227      +/-   ##
=============================================
- Coverage      40.37%   40.34%   -0.04%
- Complexity      1209     1225      +16
=============================================
  Files            251      251
  Lines           9750     9806      +56
  Branches         929      938       +9
=============================================
+ Hits            3937     3956      +19
- Misses          5544     5577      +33
- Partials         269      273       +4

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


doc: update places to direct the users to check the samples in /testdata

Description of the change:

doc: update places to direct the users to check the samples in /testdata
remove post-release process that is no longer required.

Motivation for the change:
operator-framework/enhancements#47
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[x] Add or update relevant sections of the docs website in website/content/en/docs

/lgtm


Disabling button also when selected is undefined

I don't know if this is a good practice in this example, but it makes sense if the options are fetched from a server

Just realized that there are two files that need to be changed (the solution and the original)

thanks. i think it'd be a bit confusing in this case, because selected is always populated once the component mounts, so i'll close this


Learn Basic CSS by building a cafe menu - step 17

Describe the Issue
Instruction requires you to add a self closing link tag, add a rel with value of stylesheet and a href = "styles.css". But test is not passing for some reason.
Affected Page
https://www.freecodecamp.org/learn/2022/responsive-web-design/learn-basic-css-by-building-a-cafe-menu/step-17
Your code
/* file: index.html */
<!DOCTYPE html>

  <meta charset="utf-8" />
  <title>Cafe Menu</title>
  <link href="styles.css" rel="stylesheet"/>

CAMPER CAFE

Est. 2020

Coffee

Expected behavior
Test was suppposed to pass with self closing link tag, and also with an extra closing link tag.
Screenshots
No response
System

Device: No info
OS: Windows 10
Browser: No info
Version: No info

Additional context
No response

And I just wanted to ask this. For the System part of the issue template, if the issue was created based on problems faced by a camper, do I ask them about their device info?

I'm not able to reproduce the issue.

And I just wanted to ask this. For the System part of the issue template, if the issue was created based on problems faced by a camper, do I ask them about their device info?

Generally yes, it might not always be needed, but if the issue is not happening for everybody, specific device, os or browser can play some role in the problem.

HI @Njong392 !
I am also unable to replicate the issue.
Maybe you have a browser extension messing with the tests.
Have you disabled all browser extensions and run the test again?
Or maybe you can run this test in another browser.
I am testing in chrome and it passes for me.

This problem was faced by a camper. I'll just go ahead and close this issue if no one else can reproduce the problem.


Merge GemVersionPromoter into outdated cmd

Hi I created this PR according with:
https://github.com/bundler/bundler/pull/4841
Regards.

thx - i actually had started working on this locally, i'm not sure some of these changes are going to be necessary, but we'll see.

@chrismo, If you want I can apply your renames.

@chrismo, can you do the review here?
I can explain the code.
Regards.

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

I think that I need to fix one test and rollback the changes on definition.rb (because I don't need).

@ryanfox1985 I ended up taking care of this in #5061, unless you see something there I missed, we can close yours.

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

closing since this was taken care of in https://github.com/bundler/bundler/pull/5061


By default whatsapp text message

can you help merge this pull request? this is a new feature to add dynamic custom message when a chat is opened on whatsapp


fix: manual lint fixes

Description of changes
Fixes for:

no-constant-condition
no-useless-catch
@typescript-eslint/ban-ts-comment
no-async-promise-executor
no-empty
jest/no-standalone-expect
no-prototype-builtins
prefer-const
jest/no-conditional-expect
no-useless-escape
@typescript-eslint/no-empty-function
no-case-declarations
consistent-return
double negation

Issue #, if available

Description of how you validated changes
Ran tests and verified no meaningful api changes.
Checklist

[x] PR description included
[x] yarn test passes

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #11638 (5b41cc4) into dev (0e7f70b) will decrease coverage by 0.04%.
The diff coverage is 33.73%.

@@            Coverage Diff             @@
##              dev   #11638      +/-   ##
==========================================
- Coverage   50.20%   50.16%   -0.05%
==========================================
  Files         702      702
  Lines       33955    33996      +41
  Branches     6969     6976       +7
==========================================
+ Hits        17047    17053       +6
- Misses      15431    15463      +32
- Partials     1477     1480       +3

Impacted Files
Coverage Δ

...y-appsync-simulator/src/resolvers/unit-resolver.ts
90.32% <0.00%> (ø)

...c-simulator/src/schema/directives/aws-subscribe.ts
96.42% <0.00%> (-3.58%)
:arrow_down:

...ages/amplify-appsync-simulator/src/schema/index.ts
70.68% <0.00%> (-1.25%)
:arrow_down:

...tor/src/velocity/util/transform/dynamodb-filter.ts
4.93% <0.00%> (ø)

...c/provider-utils/awscloudformation/import/index.ts
31.02% <ø> (ø)

...ges/amplify-category-custom/src/commands/custom.ts
0.00% <0.00%> (ø)

...tion/src/provider-utils/awscloudformation/index.ts
12.87% <0.00%> (-0.06%)
:arrow_down:

...ion/service-walkthroughs/lambdaLayerWalkthrough.ts
11.21% <0.00%> (ø)

...rc/provider-utils/awscloudformation/utils/build.ts
57.14% <0.00%> (ø)

...r-utils/awscloudformation/utils/funcParamsUtils.ts
23.52% <0.00%> (-1.48%)
:arrow_down:

... and 64 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


chore(deps): update common-dev-assets digest to c3d897c

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
b94685d -> c3d897c

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

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


If no supported_groups are available then we send an empty list

It is possible to not have any supported_groups available, and in that case a libssl client will send an empty list which is a protocol error (the supported_groups extension if sent must always have at least one element in it).
For example, if you configure OpenSSL with "no-ec2m" and then attempt to send a curve list containing only an ec2m curve:
$ openssl s_client -no_tls1_3 -groups sect163k1

Then you get this error on the server:
$ openssl s_server
Using default temp DH parameters
ACCEPT
ERROR
140253113922880:error:1424206E:SSL routines:tls_parse_ctos_supported_groups:bad extension:ssl/statem/extensions_srvr.c:964:
shutting down SSL
CONNECTION CLOSED

Affects both master and 1.1.1

Hmm, interesting. What would be the correct behavior? Should we disable ECDH ciphersuites then? Or just fail on the client side?

Maybe we could expand the current use_ecc() function to check for this and therefore disable EC usage if it fails?

[This largely seems to only affect pre-TLS 1.3, since TLS 1.3 if you have no groups you can only do a PSK key exchange.]
Coming at it from the mindset that brought us TLS 1.3 would suggest to just fail on the client side, but I think it is probably better to do something like what Matt suggests.

Affects both master and 1.1.1

Confirmed for 1.1.1 but not for master (as of today): There, ./Configure -no-ec2m correctly leads to "sect163k1" not being available/found (in the groups list in tls1_group_name2id), the s_client invocation to fail and thus, the issue being impossible to trigger:
> LD_LIBRARY_PATH=. ./apps/openssl s_client -no_tls1_3 -groups sect163k1
Error with command: "-groups sect163k1"

--> Would it be an (alternative) idea to ensure the same behaviour also in 1.1.1? Requesting an unavailable group should be met with an error message upfront, no?

Affects both master and 1.1.1

Confirmed for 1.1.1 but not for master (as of today): There, ./Configure -no-ec2m correctly leads to "sect163k1" not being available/found (in the groups list in tls1_group_name2id), the s_client invocation to fail and thus, the issue being impossible to trigger:
> LD_LIBRARY_PATH=. ./apps/openssl s_client -no_tls1_3 -groups sect163k1
Error with command: "-groups sect163k1"

--> Would it be an (alternative) idea to ensure the same behaviour also in 1.1.1? Requesting an unavailable group should be met with an error message upfront, no?

While it seems to be no issue in the master in -no_tls1.3 case thanks to the use_ecc check in tls_construct_ctos_supported_groups,  it raises internal error if there are no groups allowed in TLS 1.3:
openssl s_client -cipher DEFAULT:@SECLEVEL=4 -tls1_3 -groups P-256 -port 4443
C0E151C76E7F0000:error:0A0C0103:SSL routines:tls_construct_ctos_supported_groups:internal error:ssl/statem/extensions_clnt.c:236:

Perhaps it might make sense to return a meaningful error in that case, e.g., SSL_R_NO_SHARED_GROUPS, indicating this is a configuration error as that extension is mandatory in TLS 1.3?

While it seems to be no issue in the master in -no_tls1.3 case thanks to the use_ecc check in tls_construct_ctos_supported_groups,  it raises internal error if there are no groups allowed in TLS 1.3:
openssl s_client -cipher DEFAULT:@SECLEVEL=4 -tls1_3 -groups P-256 -port 4443
C0E151C76E7F0000:error:0A0C0103:SSL routines:tls_construct_ctos_supported_groups:internal error:ssl/statem/extensions_clnt.c:236:

Perhaps it might make sense to return a meaningful error in that case, e.g., SSL_R_NO_SHARED_GROUPS, indicating this is a configuration error as that extension is mandatory in TLS 1.3?

With PR #13916 applied the error is different:
$ openssl s_client -cipher DEFAULT:@SECLEVEL=4 -tls1_3 -groups "P-256"
CONNECTED(00000003)
80B23F50A17F0000:error:0A000127:SSL routines:tls_construct_ctos_supported_groups:no suitable groups:ssl/statem/extensions_clnt.c:238:No groups enabled for max supported SSL/TLS version

With PR #13916 applied the error is different:
$ openssl s_client -cipher DEFAULT:@SECLEVEL=4 -tls1_3 -groups "P-256"
CONNECTED(00000003)
80B23F50A17F0000:error:0A000127:SSL routines:tls_construct_ctos_supported_groups:no suitable groups:ssl/statem/extensions_clnt.c:238:No groups enabled for max supported SSL/TLS version

Fix in #18213

Fix was merged.


Support an ORDER BY when performing ARRAY_AGG

Feature request
Is your feature request related to a problem? Please describe.
We need to be able to sort an array by multiple columns of different types and of different sort orders (ASC/DESC)
Describe the solution you'd like
Would like to support the ORDER BY syntax like PostGres does:
https://stackoverflow.com/questions/7317475/postgresql-array-agg-order
Describe alternatives you've considered
I've considered using array_sortby -- if array_sortby could support a stable sort then this could be done by multiple calls to array_sortby+reverse. Since array_sortby is not a stable sort though, this solution will not work.
Additional context

Another alternative would be for array_sortby to take a comparator as a lambda rather than a function that returns the sorting value. Basically lambda is called for a pair of elements and returns -1 if less, 1 if greater, and 0 if they are equal.


 Not sure to understand. In the current code, Manager is used. I just renamed it to managerValue as it doesn't have to be exported

@lebauce - this may be more of a personal preference - but I would rather combined the XXX.go and XXXlinker.go files into XXX.go. This way when adding a new resource you place all the relevant into a single file (and then register it within k8s/probe.go).

@hunchback I've put the linkers in the same file that the handler in a previous version of the patch. The problem is that, the links are related to 2 types of resources. It's not obvious where to search (for service -> pods, is it in service.go or pod.go ?).
The convention I chose is "sourceresourcedestinationresourcelinker.go". In the hostnodelinker.go, it creates links between "hosts" (not a Kubernetes resources) to "nodes" (a Kubernetes resource).

@hunchback This PR includes the changes in #1318

run skydive-functional-tests-backend-elasticsearch

run skydive-ppc64le-tests

@lebauce - regarding file names - if not merging linker files into node files then maybe rename them to  resourcelinker.go to resource_linker.go, still as each link connect parent to child its' file to include within the parent file ...
Regarding hostnodelinker.go as host is not a k8s resource you could have kept thus in node.go and in any case if not put within node.go then better to rename to host_node_linker.go

@lebauce - i suggest you connect the run-istio-tests.sh to ci, to ensure no depredations there.

@lebauce - once addressing items raised i see no major block for merging this PR

@hunchback Regarding run-istio-tests.sh, this should have been part of your PR

run skydive-unit-tests

run skydive-functional-tests-backend-elasticsearch

run skydive-unit-tests

@hunchback @lebauce I'm going to test it. I think that the current patch is in a pretty good shape and I don't think we should spend to much time on improving it without having a good test coverage. Without adding test refactoring task will be touchy.
The currently implementation(master branch) doesn't pass the replay tests which needs to be fixed as soon as possible otherwise nothing will be stored in ES. We need to add test to be sure that we can select objects through the API, etc...
This patch already removed quite a lot of duplicated code and improve the node deletion thing is now finally handled.
So I propose to validate this version in term of functionality, as I said before improving the code should be done after improving the tests coverage otherwise we will break things for sure.
@hunchback can you please confirm that this patch is working as expected ?

@safchain (@lebauce ) - I will do run some tests locally in the next hours or so - if it passes then yes I am fine with merging this as-is

run skydive-unit-tests

@lebauce - when using an old skydive.yaml (missing the new sections) - I get the following:
    44: // Start k8s probe
    45: func (p *Probe) Start() {
    46:         for _, linker := range p.linkers {
=>  47:                 linker.Start()
    48:         }
    49:
    50:         for _, subprobe := range p.subprobes {
    51:                 subprobe.Start()
    52:         }
(dlv) p linker
github.com/skydive-project/skydive/probe.Probe(*github.com/skydive-project/skydive/topology/graph.MetadataIndexerLinker) nil
(dlv)

@hunchback I pushed a new version that should fix this

run skydive-unit-tests

@lebauce - issue still exists:
    45: }
    46:
    47: // Start k8s probe
    48: func (p *Probe) Start() {
    49:         for _, linker := range p.linkers {
=>  50:                 linker.Start()
    51:         }
    52:
    53:         for _, subprobe := range p.subprobes {
    54:                 subprobe.Start()
    55:         }
(dlv) p linker
github.com/skydive-project/skydive/probe.Probe(*github.com/skydive-project/skydive/topology/graph.MetadataIndexerLinker) nil
(dlv)

run skydive-unit-tests

@hunchback Can you please post your configuration ?

@lebauce - this is the fix:
diff --git a/topology/probes/k8s/k8s.go b/topology/probes/k8s/k8s.go
index 3b76f046..e446390d 100644
--- a/topology/probes/k8s/k8s.go
+++ b/topology/probes/k8s/k8s.go
@@ -119,7 +119,7 @@ func NewK8sProbe(g *graph.Graph) (*Probe, error) {

        var linkers []probe.Probe
        for _, linkHandler := range linkerHandlers {
-               if linker := linkHandler(g, subprobes); linker != nil {
+               if linker := linkHandler(g, subprobes); !IsNilValue(linker) {
                        linkers = append(linkers, linker)
                }
        }
diff --git a/topology/probes/k8s/probe.go b/topology/probes/k8s/probe.go
index 0bd561e0..15abc358 100644
--- a/topology/probes/k8s/probe.go
+++ b/topology/probes/k8s/probe.go
@@ -24,6 +24,7 @@ package k8s

 import (
        "time"
+       "reflect"

        "github.com/skydive-project/skydive/probe"
        "github.com/skydive-project/skydive/topology"
@@ -98,3 +99,7 @@ func newClusterLinker(g *graph.Graph, clusterNode *graph.Node, cache *ResourceCa
        linker := &clusterLinker{graph: g, clusterNode: clusterNode}
        return graph.NewResourceLinker(g, nil, cache, linker, topology.OwnershipMetadata)
 }
+
+func IsNilValue(i interface{}) bool {
+    return i == nil || reflect.ValueOf(i).IsNil()
+}

an additional change I would propose (emitting an error but not aborting on k8s/istio probe initialization error):
diff --git a/analyzer/probes.go b/analyzer/probes.go
index 8dfbd2d0..0f6e2cbe 100644
--- a/analyzer/probes.go
+++ b/analyzer/probes.go
@@ -46,22 +46,21 @@ func NewTopologyProbeBundleFromConfig(g *graph.Graph) (*probe.ProbeBundle, error
                        continue
                }

-               var err error
-               switch t {
-               case "k8s":
-                       if probes[t], err = k8s.NewK8sProbe(g); err != nil {
-                               logging.GetLogger().Errorf("Failed to initialize K8S probe: %s", err.Error())
-                               return nil, err
-                       }
-
-               case "istio":
-                       if probes[t], err = istio.NewIstioProbe(g); err != nil {
-                               logging.GetLogger().Errorf("Failed to initialize istio probe: %s", err.Error())
-                               return nil, err
-                       }
+               type newProbeFuncType func(*graph.Graph) (*k8s.Probe, error)
+               newProbeFuncMap := map[string]newProbeFuncType{
+                       "k8s":   k8s.NewK8sProbe,
+                       "istio": istio.NewIstioProbe,
+               }

-               default:
+               if newProbeFunc, ok := newProbeFuncMap[t]; !ok {
                        logging.GetLogger().Errorf("unknown probe type: %s", t)
+               } else {
+                       newProbe, err := newProbeFunc(g)
+                       if err != nil {
+                               logging.GetLogger().Errorf("failed to initialize probe %s: %s", t, err)
+                       } else {
+                               probes[t] = newProbe
+                       }
                }
        }

I don't get your first fix. Can you post your configuration please ?

analyzer:
  topology:
    probes:
      - k8s
      - istio

@hunchback No "k8s" or "istio" toplevel sections ?

@lebauce - update full configuration (including k8s section)

@lebauce - a separate issue is that I expected to be able to define/undefine cluster/container, but I get the following message when defining them
2018-09-26T12:12:35.117Z        ERROR   k8s/k8s.go:106 NewK8sProbe      dev: skipping unsupported probe cluster
2018-09-26T12:12:35.119Z        ERROR   k8s/k8s.go:106 NewK8sProbe      dev: skipping unsupported probe container

@hunchback
@@ -63,7 +64,7 @@ func newObjectIndexer(g *graph.Graph, h graph.GraphListenerHandler, nodeType str
        return graph.NewMetadataIndexer(g, h, m, indexes...)
 }

-func newResourceLinker(g *graph.Graph, subprobes map[string]*ResourceCache, srcType string, srcAttrs []string, dstType string, dstAttrs []string, edgeMetadata graph.Metadata) *graph.MetadataIndexerLinker {
+func newResourceLinker(g *graph.Graph, subprobes map[string]*ResourceCache, srcType string, srcAttrs []string, dstType string, dstAttrs []string, edgeMetadata graph.Metadata) probe.Probe {
        srcCache := subprobes[srcType]
        dstCache := subprobes[dstType]
        if srcCache == nil || dstCache == nil {

@hunchback cluster and container are not subprobes any more as they aren't real Kubernetes resources. "Cluster" is managed by the probe itself, and containers' by the Pod` one

I also found a RACE when running the k8s tests for TEST_PATTERN=Testk8sNetworkPolicy
==================
WARNING: DATA RACE
Read at 0x00c420126060 by goroutine 268:
  runtime.mapiterinit()
      /home/vagrant/.gimme/versions/go1.9.1.linux.amd64/src/runtime/hashmap.go:709 +0x0
  github.com/skydive-project/skydive/topology/graph.Metadata.Match()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/graph.go:313 +0xa0
  github.com/skydive-project/skydive/topology/graph.(*Edge).MatchMetadata()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/graph.go:619 +0x6e
  github.com/skydive-project/skydive/topology/graph.(*MemoryBackend).GetNodeEdges()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/memory.go:122 +0x271
  github.com/skydive-project/skydive/topology/graph.(*Graph).AreLinked()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/graph.go:1093 +0xdb
  github.com/skydive-project/skydive/topology.HaveOwnershipLink()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/topology.go:111 +0x7d
  github.com/skydive-project/skydive/topology/probes/netlink.(*NetNsNetLinkProbe).addGenericLinkToTopology()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/probes/netlink/netlink.go:245 +0x2a7
  github.com/skydive-project/skydive/topology/probes/netlink.(*NetNsNetLinkProbe).addLinkToTopology()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/probes/netlink/netlink.go:491 +0x248f
  github.com/skydive-project/skydive/topology/probes/netlink.(*NetNsNetLinkProbe).initialize()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/probes/netlink/netlink.go:707 +0xb78
  github.com/skydive-project/skydive/topology/probes/netlink.(*NetNsNetLinkProbe).start()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/probes/netlink/netlink.go:886 +0x4dc

Previous write at 0x00c420126060 by goroutine 126:
  runtime.mapassign_faststr()
      /home/vagrant/.gimme/versions/go1.9.1.linux.amd64/src/runtime/hashmap_fast.go:598 +0x0
  github.com/skydive-project/skydive/topology/graph.(*listener).nodeEvent()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/linker.go:59 +0x36f
  github.com/skydive-project/skydive/topology/graph.(*listener).OnNodeUpdated()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/linker.go:82 +0x42
  github.com/skydive-project/skydive/topology/graph.(*GraphEventHandler).notifyListeners()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/graph.go:233 +0x2b6
  github.com/skydive-project/skydive/topology/graph.(*GraphEventHandler).NotifyEvent()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/graph/graph.go:262 +0x293
  github.com/skydive-project/skydive/topology/probes/k8s.(*ResourceCache).OnUpdate()
      /home/vagrant/src/github.com/skydive-project/skydive/topology/probes/k8s/cache.go:127 +0x271
  github.com/skydive-project/skydive/topology/probes/k8s.(*ResourceCache).OnUpdate-fm()

this approach has many disadvantages, for not monitoring containers (in
some scenarios accounting for 80% of nodes) use to be possible but is no
longer possible. Same goes for cluster (which would become more complex
when supporting multi-cluster environments)
much preferable if this refactor remains functionality natural, as its
difficult to have these discussions when the entire patch is in the balance.
On Sep 26, 2018 15:43, "Sylvain Baubeau"<EMAIL_ADDRESS>wrote:
@hunchback https://github.com/hunchback cluster and container are not
subprobes any more as they aren't real Kubernetes resources. "Cluster" is
managed by the probe itself, and containers' by thePod` one
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/skydive-project/skydive/pull/1279#issuecomment-424700849,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACogIxSg5A_AEEZy5QpNAieiM_0t5NeJks5ue3ZlgaJpZM4Wa5Yl
.

containers is simply an attribute of the "pod" resource, it is not a Kubernetes resource.

for the "cluster" example, it makes no sense. If you have too many top level resources in your graph, you would not reduce the load by disabling the "cluster" subprobe

@hunchback The data race is fixed by c03cb7f6e1c66c8b79128ffabc3741f015ea061d

run skydive-unit-tests

there was a reason for having it as an independant graph node ... as it
then can ve filtered with gremlin filters ... such ad  being able to
filter/filter out istio sidecars ... or being able sort according to
cpu/memory consumption ...
my recommendation would be to re-add, requiring custom handles and re-link
On Wed, Sep 26, 2018, 16:49 Sylvain Baubeau<EMAIL_ADDRESS>wrote:

containers is simply an attribute of the "pod" resource, it is not a
Kubernetes resource.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/skydive-project/skydive/pull/1279#issuecomment-424722058,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACogIz1Db7ME7esRqdxu-Wjwh1MAuhJwks5ue4XXgaJpZM4Wa5Yl
.

@hunchback That did not change : it is still an independant node. It's just that it is managed by the "pod" probe.

you can't disable its subprobe via configuration, a useful property (both
in production and development).
On Wed, Sep 26, 2018, 17:54 Sylvain Baubeau<EMAIL_ADDRESS>wrote:

@hunchback https://github.com/hunchback That did not change : it is
still an independant node. It's just that it is managed by the "pod" probe.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/skydive-project/skydive/pull/1279#issuecomment-424745316,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACogI3ZK4CQtsot_BwQnE-shVq2mko1Gks5ue5UKgaJpZM4Wa5Yl
.

@hunchback If we really wanted to address the scability issues, we would allow to disable the creation of links

thanks correct, and should be added (i never got round to that), but please
lets maintain the existing capability to disable any node creation.
Other similar capabilities (to be addressed in tge future) is the ability
to filter out at the backend tracking if objects such that k8s or istio
infra would not be displayed
On Wed, Sep 26, 2018, 19:14 Sylvain Baubeau<EMAIL_ADDRESS>wrote:

@hunchback https://github.com/hunchback If we really wanted to address
the scability issues, we would allow to disable the creation of links
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/skydive-project/skydive/pull/1279#issuecomment-424773701,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACogI2niX43rgMbNtFYxstM9Bv9I5XEXks5ue6fhgaJpZM4Wa5Yl
.

thats' correct would not help scale, nonetheless, i see no reason cluster
should be handled  differently then any other node type created by the
probe.
On Wed, Sep 26, 2018, 16:51 Sylvain Baubeau<EMAIL_ADDRESS>wrote:

for the "cluster" example, it makes no sense. If you have too many top
level resources in your graph, you would not reduce the load by disabling
the "cluster" subprobe
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/skydive-project/skydive/pull/1279#issuecomment-424722784,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACogIxHaqdwpEv6tM4n8Y-NKpI1nXhitks5ue4ZIgaJpZM4Wa5Yl
.

@hunchback There is only one cluster node, which is created statically  without talking to Kubernetes. This also not a Kubernetes concept so it seems really odd for the user to enable/disable such a probe.

run skydive-scale-tests

@hunchback No need to use reflect
@@ -63,7 +64,7 @@ func newObjectIndexer(g *graph.Graph, h graph.GraphListenerHandler, nodeType str
        return graph.NewMetadataIndexer(g, h, m, indexes...)
 }

-func newResourceLinker(g *graph.Graph, subprobes map[string]*ResourceCache, srcType string, srcAttrs []string, dstType string, dstAttrs []string, edgeMetadata graph.Metadata) *graph.MetadataIndexerLinker {
+func newResourceLinker(g *graph.Graph, subprobes map[string]*ResourceCache, srcType string, srcAttrs []string, dstType string, dstAttrs []string, edgeMetadata graph.Metadata) probe.Probe {
        srcCache := subprobes[srcType]
        dstCache := subprobes[dstType]
        if srcCache == nil || dstCache == nil {

@lebauce - please explain

@lebauce - I am confirming that the DATA RACE above has been fixed in your new version

@safchain (@lebauce ) - I did a final pass on the code and did some testing - its' looking good - from my perspective it can be merged as-is (*no need to address any additional issues within this PR).


Center of MapRegion on iOS seems not right

When unzooming (at continent level), the center of visible region seems to be shifted to south, am I the only one seeing this? :)
How to reproduce: Add a pin on the center of the visible region. When at a city-level it's ok, when at a country/continent level, latitude seems much lower than it should be.
However on Android it seems correct.

It seems that on iOS there is a shift in direction to the equator...

Could you verify and close this issue @JeanCollas ?

I released 1.7.1-beta3 that contains fixing this.


CachingJestRuntime should not do extra work if not watching

The benefits of CachingJestRuntime only apply if in watch mode. If not, then we're doing FS calls but not getting benefit from them.
This is a small optimization that will hopefully make CI happier with our caching runtime, if/when it's used.
Signed-off-by: Mitchell Hentges<EMAIL_ADDRESS>Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Aight I'mma put this one over to @Rugvip i think :)

Thank you for contributing during Hacktoberfest 🍂! You can claim the Backstage Hacktoberfest Holopin at https://bck.st/hacktoberfest-holopin 🙌🏻


add PR Bench Data diegestion

this PR adds another bot function that reads a wandb artifact ID from REDIS. This is then used to manually query wandb (golang API is private) we then comment on the PR in the data.
This is a WIP. Needs to be expanded for multiple PRs in the artifact.
resolves instruct-lab/orchestrator#42

@cdoern I merged another PR and somehow it triggered closing this 🤦  Im guessing it has to do with everyone's fork renames/deletes. Since there isn't a reopen Im guessing the head is gone so it's prolly just that. Ty!

Mostly probably @cdoern deleted his instrcut-lab-bot fork, that caused this.


Cannot download pretrained models from google drive

Thanks for your awesome work and code sharing! But I have problem when trying to download your pretrained model from the provided google drive link, it says I need access. When will you open the access?  Looking forward to your update!

Sorry for the inconvenience. The pre-trained models can be downloaded from: https://drive.google.com/file/d/1QMk9kFQjHfPFOe3CsN5qmNvPlLkkLiHS/view?usp=sharing

Hi @liuf1990 it turns out that the same problem concerns the following link related to ShapeNet Renderings https://drive.google.com/drive/folders/1fO8bh1v-HGTmMp9CC8l73bl2zPgRJG7A?usp=sharing
I can open a dedicated issue if needed


[IOTDB-4059]: IoTDBSqlVisitor#visitTopClause add top range restriction

close #4059

Coverage increased (+0.02%) to 67.763% when pulling 0bed38074b35cb79a01bc95236972901c3f9b673 on ruanwenjun:dev_wenjun_patch4059 into 0163d3aa76d452fe2c1d864790451dcfd3d5cd5e on apache:master.

IOTDB-4059 -> ISSUE4059


Sequenza has been removed from CRAN

Describe the bug
It seems like Sequenza has been removed from CRAN earlier this year, and its a dependency of this package. Therefore, normal package installation fails.
To Reproduce
Try to install the package in a new environment without any dependencies available.
Suggestions to resolve: Either change to depend on the bitbucket hosted version of Sequenza, provide instructions on how to install from CRAN archive (or work around the dependency).

Our group had similar issues. Resolved by doing the following in R, after changing R version to 4.0.2 (more recent versions might work, but this one was mentioned in a yaml file in the repository):

install.packages("BiocManager")
install.packages('testthat')
BiocManager::install(c("copynumber", "iotools", "squash", "seqminer")) # dependencies for sequenza

install.packages("~/sequenza_3.0.0.tar.gz", repos = NULL, type="source")

We had to install an archived version of sequenza from this link
Additionally, we ended up having to install DelayedArray and VariantAnnotation packages through BiocManager, then installing 'mskilab-org/gTrack' and 'mskilab-org/gGnome' before installing JaBbA. Hope this can help.


Drop PHP < 7.4

Use:

Guzzle 7
j0k3r/graby v3
j0k3r/php-imgur-api-client v4

Coverage remained the same at 97.382% when pulling 8eb4c6b56b1dbc7f13bb07f8788e5f1d150f9e9b on feature/guzzle-7 into 51c562b3e87b8a6000d4a02e68d6ec089852ed1e on master.


⚠ Bofrost.de has degraded performance

In 2002db0, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1319 ms

Resolved: Bofrost.de performance has improved in a194986.


Problems in the Evaluation and Submission of segmentation

Thanks for this excellent piece of work! I encountered "Warning: could not find environment variable "-x", mpirun was unable to find the specified executable file, and therefore did not launch the job. Warning: could not find environment variable "-x", mpirun was unable to find the specified executable file, and therefore did not launch the job. This error was first reported for process rank 0; it may have occurred for other processes as well", but I have already run the chmod +x evaluate.sh command, and I would like to know how to create a hyperlink to the semantickitti dataset if it is placed in a different location, and is hyperlink necessary?

Hi, thanks for your attention. You may check whether the mpirun is installed correctly according to the instructions. Because there are different versions of mpirun (like open mpi,  intel mpi, mpich etc.), and they work in slightly different ways. And, the hyperlink can be created by ln -s stored/path/of/semantickitti  data/semantickitti. Feel free to contact me if you have more questions.

Thank you for such a quick reply, I can now run . /evaluate.sh now, but it doesn't move when it loads to this location, and it doesn't report an error to exit, but it just stops, have you ever encountered this?
/root/miniconda3/envs/LinK_seg/bin/python evaluate.py --load_path ../checkpoints/max-iou-val.pt
[2024-01-21 08:44:43.634] Experiment started: "runs/run-db770b11".
workers_per_gpu: 2
distributed: True
amp_enabled: False
data:
num_classes: 20
ignore_label: 0
training_size: 19132
train:
seed:<PHONE_NUMBER>
deterministic: False
dataset:
name: semantic_kitti
root: ./data/SemanticKITTI/dataset/sequences
num_points: 80000
voxel_size: 0.05
num_epochs: 25
batch_size: 2
model:
cr: 1.0
name: linkunet
base_op: cos_x
r: 2
s: 3
groups: 1
criterion:
name: lovasz_softmax
ignore_index: 0
optimizer:
name: sgd
lr: 0.24
weight_decay: 0.0001
momentum: 0.9
nesterov: True
scheduler:
name: cosine_warmup

And I've already completed the training once, and it didn't stop moving while training.

Well, I've met this before and found several reasons may cause this. You can check: 1. whether the process get stuck in loading data (due to wrong data path); 2. whether the CUDA_VISIBLE_DEVICES is set correctly.


use Chrome window size 1920,1080

closes #88

Hmm, for a while I thought the user would need to spin their own Xvfb server with custom parameters like this to get higher resolution screen
xvfb-run --server-args="-screen 0 1920x1080x24" cypress run --browser chrome --headless

But when I tried the simplest solution it worked: run Cypress as before and just pass the flag in the plugin to tell Chrome to use the larger resolution
module.exports = on => {
  on('before:browser:launch', (browser, launchOptions) => {
    if (browser.name === 'chrome') {
      // https://www.ghacks.net/2013/10/06/list-useful-google-chrome-command-line-switches/
      launchOptions.args.push('--window-size=1920,1080')
      return launchOptions
    }
  })
}

The produced images are 1920x1020 (or similar without the top bar) for the runner, see https://github.com/cypress-io/github-action/actions/runs/42146060
Run npx image-size cypress/screenshots/**/*.png
1000x4823 - cypress/screenshots/spec.js/fullPage.png (png)
1920x1080 - cypress/screenshots/spec.js/runner.png (png)
1000x660 - cypress/screenshots/spec.js/viewport.png (png)

so many Cecilias! Let's see what @Bkucera says

🤦🏽♀

Are you running chrome headlessly? I didn't think you could have a headed app exceed the viewport dimensions of the Xvfb screen. Maybe it's different for screenshots, but if you were to record the video would the video have the 1920x1080 dimensions?

@brian-mann both - In the action https://github.com/cypress-io/github-action/runs/456810242?check_suite_focus=true I run same test to generate screenshots using Electron, then Chrome headed, then Chrome headless. Even headed Chrome reports larger than Xvfb screenshots
  (Screenshots)

  -  /home/runner/work/github-action/github-action/examples/chrome/cypress/screenshot     (1920x964)
     s/spec.js/runner.png
  -  /home/runner/work/github-action/github-action/examples/chrome/cypress/screenshot     (1000x660)
     s/spec.js/viewport.png
  -  /home/runner/work/github-action/github-action/examples/chrome/cypress/screenshot    (1000x4823)
     s/spec.js/fullPage.png

I have not looked at the video

Screenshots are not an accurate way to determine dimensions. We automatically scroll and tile / stitch together screenshots. If the cy.viewport() is smaller than the screen size, then the screenshots will also be smaller.
The best way to determine size is either via JS API's using window.innerHeight, etc - or by looking at the video size.

Ok and do we stitch the runner image as well? Not the full page but the runner
Sent from my iPhone

On Feb 19, 2020, at 23:29, Brian Mann<EMAIL_ADDRESS>wrote:

Screenshots are not an accurate way to determine dimensions. We automatically scroll and tile / stitch together screenshots. If the cy.viewport() is smaller than the screen size, then the screenshots will also be smaller.
The best way to determine size is either via JS API's using window.innerHeight, etc - or by looking at the video size.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

No - only when its the AUT do we stitch.

Do we want to set this arbitrary screen size for everyone using this example?

I am logging top.innerWidth and top.innerHeight during tests in https://github.com/cypress-io/github-action/runs/458005371?check_suite_focus=true
Chrome headed
top window inner w, h is 1920x964

Chrome headless
top window inner w, h is 1920x1080

I am not surprised that headless truly respects and renders the full window size, but I am surprised that headed mode goes beyond our Xvfb dimensions

Quick tip: you can find out the dimensions of the video frames in a file using ffmpeg or ffprobe or even mplayer that we have included in the Docker image cypress/browsers:node12.8.1-chrome80-ff72 yesterday 😄 @flotwig
$ docker run -it -v $PWD:/e2e -w /e2e cypress/browsers:node12.8.1-chrome80-ff72 /bin/bash
root@9d9362ccb9b4:/e2e# mplayer -really-quiet -ao null -vo null -identify -frames 0 cypress/videos/spec.js.mp4
do_connect: could not connect to socket
connect: No such file or directory
ID_VIDEO_ID=0
ID_VIDEO_CODEC=ffh264
ID_CLIP_INFO_NAME0=major_brand
ID_CLIP_INFO_VALUE0=isom
ID_CLIP_INFO_NAME1=minor_version
ID_CLIP_INFO_VALUE1=512
ID_CLIP_INFO_NAME2=compatible_brands
ID_CLIP_INFO_VALUE2=isomiso2avc1mp41
ID_CLIP_INFO_NAME3=encoder
ID_CLIP_INFO_VALUE3=Lavf58.24.100
ID_CLIP_INFO_N=4
ID_FILENAME=cypress/videos/spec.js.mp4
ID_DEMUXER=lavfpref
ID_VIDEO_FORMAT=H264
ID_VIDEO_BITRATE=196288
ID_VIDEO_WIDTH=1920
ID_VIDEO_HEIGHT=1080
ID_VIDEO_FPS=25.000
ID_VIDEO_ASPECT=0.0000
ID_START_TIME=0.00
ID_LENGTH=11.32
ID_SEEKABLE=1
ID_CHAPTERS=0
ID_EXIT=EOF

Look at video artifacts in https://github.com/cypress-io/github-action/actions/runs/42459548
Yeaaah boy


UV Workspaces setup  and imports

Hi ! Thanks a lot for this really promising project !
I however fail to understand how to setup correctly uv workspaces even for a minimalist project that follow uv documentation
TLDR;
i have a repository containing an app and a package. I fail to import the package code in the app code
here is a link to the public repository with full code i made to try out uv workspaces : https://github.com/pablo-a/uv_workspaces/tree/master
Repository structure
.
└── uv_workspaces ## Repository name/
    ├── pyproject.toml
    ├── .python-version
    ├── uv.lock
    ├── packages/
    │   └── p1/
    │       ├── hello.py
    │       ├── pyproject.toml
    │       └── .python-version
    └── src/
        └── uv_workspaces/
            └── hello.py

app hello.py
from p1 import main as main_p1

def main():
    main_p1()
    print("Hello from uv-workspaces!")

if __name__ == "__main__":
    main()

Command run and error :
uv run src/uv_workspaces/hello.py
Traceback (most recent call last):
  File "/Users/pabloabril/Documents/deepki/uv_workspaces/src/uv_workspaces/hello.py", line 1, in <module>
    from p1.hello import main as main_p1
ModuleNotFoundError: No module named 'p1'

uv version : uv 0.4.10 (690716484 2024-09-13)
platform: Macos M1 pro ARM64
Same error for example repo uv-fastapi-example
It seems to me that i'm not running the good command ? for example i tried cloning your uv-fastapi-example repository and ran into the same error :
uv run app/main.py
Traceback (most recent call last):
  File "/Users/pabloabril/Documents/deepki/uv-fastapi-example/app/main.py", line 3, in <module>
    from .dependencies import get_query_token, get_token_header
ImportError: attempted relative import with no known parent package

Thanks a lot for your hard work and let me know if i can give any more information to help.

Use this folder structure (for some reason p1 did'nt work but pone did).
Packages have a different folder structure and different pyproject.toml compared to app (Check docs) which packages folder did not follow.
.
├── package/
│   └── pone/
│       ├── src/
│       │   └── pone/
│       │       ├── __init__.py
│       │       └── hello.py
│       ├── .python-version
│       ├── pyproject.toml
│       └── README.md
├── src/
│   └── uv_workspaces/
│       ├── __init__.py
│       └── hello.py
├── .python-version
├── pyproject.toml
└── README.md

pone/pyproject.toml
[project]
name = "pone"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = []

# BELOW ARE REQUIRED FOR PACKAGES
[tool.hatch.build.targets.wheel]
packages = ["src/pone"]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

pyproject.toml
[project]
name = "uv-workspaces"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
    "pone",
]

[tool.uv.workspace]
members = ["packages/pone"]

[tool.uv.sources]
pone = { workspace = true }

# BELOW ARE REQUIRED FOR PACKAGED APPS
[tool.hatch.build.targets.wheel]
packages = ["src/uv_workspaces"]

[project.scripts]
hello = "uv_workspaces.hello:main"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

Add from pone.hello import main as main_p1 in hello.py
run this with
uv run hello

Do not run packaged app with uv run src/uv_workspaces/hello.py, use project.scripts. For your case, since its one file it would still work but with larger projects you might get import errors when using relative imports (thats how i found this issue).
pone package can also have project.scripts and can run with uv run (for below it would be uv run hello_pone) so you can test pone package independently.
[project.scripts]
hello_pone = "pone.hello:main"

Delete .venv, uv.lock, pycache and try again if the above changes do not work.

Thanks a lot ! I understand it a lot better now,
i was missing the part about including the build-system for each package that can be importable :)
I still find it a bit confusing, not being able to run a file directly without invoking it from pyproject.script section.
Feel like workspaces section could use some clarifications :)
Thanks a lot anyway !

I still find it a bit confusing, not being able to run a file directly without invoking it from pyproject.script section.

I think it will run if the hello.py was in the root directory rather than inside src/uv_workspaces folder.
If uses case is package or packaged app -> it needs to be under src folder (or you will need to specify a path in tool.hatch.build.targets.wheel), this is related to building the package
If its app -> root folder, does not need src folder
Check all the project structure in the docs where the hello function is and how it is called for different projects
For bigger applications like the fastapi example, you prolly need to move main.py (aka entrypoint) to root directory (and remove relative imports in the files in root directory) for it to work as an application. This is more of a python related issue rather than uv why it needs to be in the root directory. (I do not know python enough to resolve this sorry)


Update to multiple READMEs

Update to multiple READMEs, wording and spelling

This is great, thanks a lot for taking the time! Let's wait for checks then we can merge at once.

Hah, ok linting: you should not update the variables tables in the docs, but update the variable description in the tf files then re-run tfdoc. Instructions are in or contributing doc. Can you do that? Or remove the variable fixes and we'll do them separately.

@bluPhy can you rebase, fix the conflicts, and run tfdoc as mentioned by @ludoo?
Thanks


Need optimization.

Work very very slow :(

Most long-standing perf issues have been addressed here https://github.com/bbecquet/Leaflet.PolylineDecorator/issues/61


More visible active track

Addresses https://github.com/jpochyla/psst/issues/76 by adding a new link background state for when the link is active. I added a function to link which takes a predicate and a background color to render when the predicate returns true.
Dark Mode:

Light Mode:

Note: I noticed that light mode selection theme is a bit too subtle, so I had to boost the alpha for light mode a bit more than I did for dark mode.

Great, thanks! I'd prefer separating the closure and the active background color, but let's merge this and edit later.

I've made some changes in 309d66bd8dada97d0ad56e25e53c09b4a39e499b.


update from upstream

chore(deps): update enricomi/publish-unit-test-result-action action to v2.16.1
chore(deps): update rust to v1.77.0
chore(deps): update github/codeql-action action to v3.24.9
chore: rename semgrep job to make it register with semgrep
chore: use semgrep action, not container
chore(deps): update returntocorp/semgrep-action digest to 713efdd
chore: back to container, the action is outdated
chore: add category
chore: semgrep 1 job
chore: fix filename

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 39.243%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
332

Relevant Lines:
846

💛  - Coveralls

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


includeSchema flag does not override excludeAll when exporting database

As per the documentation, -includeSchema=true should override -excludeAll
orientdb {db=test_export}> export database schema_test -excludeAll -includeSchema=true
Exporting current database to: database schema_test -excludeAll -includeSchema=true in GZipped JSON format ...

Started export of database 'test_export' to schema_test.json.gz...
Exporting schema...OK (14 classes)

Database export completed in 1ms

$ gzip -dc schema_test.json.gz | jq .
{
  "schema": {
    "classes": [],
    "version": 428
  }
}

Ran into this problem when trying to export only schema and functions, i.e.
export database foo -excludeAll -includeCluster=ofunction -includeClass=ofunction -includeSchema=true

fixed in 2.1 and develop, closing


Correct heron developers doc

Correct out-dated docs.
Fix broken links.

One last comment. Fix it and ship it.
👍


Default window width causes incorrect wrapping

Was there a specific reason why w = 374 was chosen for the main window? It seems to render incorrectly on my machine. I'm not using KDE, just using a WM (qtile) under X. The width seems just slightly small enough to cause incorrect wrapping.
Example of out-of-the-box config (QWidget width = 354):

With the following custom QSS:
QWidget {
  width: 358
}

I tried all possible combinations of useSystemEmojiFont and useSystemEmojiFontWidthHeuristics to no benefit, only the QSS seemed to help.

mhhh idk it seemed to fit nicely on different systems but i guess you can never be sure. Its weird tho because the emojis should have fixed size.
Would you be fine with a simple config entry like windowWidth to configure it yourself?
I don't really know how to fix it in a proper way 😆

I'm fine with using the qss on my own systems, I'm just thinking of other users who might run into this in the future. I'll probably play around with the qt inspector later to see why it's wrapping on my system, and if the value can be calculated from some system parameters.

this is completely fixed now


[epic] AMA Bot

AMA Bot Epic
All PRs related to AMA bot creation should be linked to this issue.
Spec for AMA bot:
https://github.com/cscareerhub/megabot/blob/master/specs/ama.spec.md

Closing as will keep track of specific bot through labels


error while manual installation of remnux on Ubuntu 20.04

Hi, i have been getting errors while installing remnux on Ubuntu 20.04.
Attached is the saltstack.log file.
Thanks
saltstack.log

Hi @d3ne0x , if you run the following command, the issue should be resolved and you can attempt the installation again:
sudo python3 -m pip install "importlib-metadata<5.0.0"

Hi @d3ne0x , it looks like the error you're seeing now is related to an error I'm investigating in another issue, regarding "blinker". I'll keep you posted once I figure out a resolution for this!


Interact with layer beneath layer-data

Is it possible to draw a new layer beneath layer-data but still be able to interact with it?  For example, creating a new layer where the user can click to draw a new line segment which is below #surface in the stack.  When attempting to do this, it appears that the layer cannot be accessed on the click event.

Yeah, that's how HTML events work generally -- only the topmost element receives the event. You can adjust the behavior somewhat with the CSS pointer-events property, but then the data layer wouldn't get events.

Yeah, I wanted to comment on this too, but I forgot to.
@sisskind, the Behaviors in iD are attached to the surface node here.  So the #surface tends to grab all the mouse and touch events.
The only way I can think of to get around this would be to draw a separate invisible layer of hit targets (e.g. invisible rectangles or something) over the surface.


[CLEANUP] Migration of options to more appropriate sections

This PR migrates a few "legacy" options into new config sections, since we didn't have sectioning back when we created these. Namely:

Legacy option name
New option name

core.showsafecontent
show.safecontent

core.autoclip
generate.autoclip

core.showautoclip
show.autoclip

This also adds an easy migration path to our config handling, which should allow us to migrate option names around much more easily in the future. I've also tweaked our doc config test to detect legacy options that are still in use.
Any system level config or Env variables options are not migrated.
This also fixes a bug in our test code, where the root mount path was not properly set in our config, because we used "path:" instead of "path=" to set it in our config.
I've also spotted some wild, weird spaces which I've replaced with regular spaces and I've reformatted our markdown tables since I was playing with our documentation. I've also fixed a few typos here and there.
Since we discussed it previously in #2617, this also migrates away from using GOPASS_CONFIG_CONFIG_VALUE_n instead of GOPASS_CONFIG_VALUE_n for specifying custom options through Env variables, in order to match how GIT_CONFIG works.
NB: This is a big PR, but each commit is distinct and I'm happy opening multiple PRs if you prefer.

It seems our linter on CI got some new Linters because we're using latest and enable-all and so it was complaining about a lot of things, I had to add a huge commit, the second to last because of it to fix them all.
It seems we also started advertising Go1.21 in our go.mod file, but our CI was still on Go1.20, I've changed it in my last commit.
Maybe I should first do another PR with these two CI commits and then rebase this branch on top. What do you prefer @dominikschulz ?

Splitting off the two huge commits would have been nice, but now that I've made my way through this huge PR we can leave it as is.
Thanks a lot, this is a very nice improvement and cleanup effort.

I'm always very sad there isn't some kind of global git config option to sign-off commits T.T
This should now be all green hopefully.


Generators for configuration initializer

Hey there,
I've seen on you're what's missing section that you needed a generator for your config file.
Here it is !
Thanks for this gem

Great Thanks!