Consume socket mutators on posix servers

Start consuming "grpc.socket_mutator" channel arg on posix server and sanity check that this is being done. There are in-progress end2end/integration tests that rely on this functionality but live outside of the repo.

For background, this is needed for a feature used internally. There is an existing feature that currently thought that the server consumed the SOCKET_MUTATOR channel arg, but it turned out that it didn't....

****************************************************************

libgrpc.so

     VM SIZE                                                           FILE SIZE
 ++++++++++++++ GROWING                                             ++++++++++++++
  +0.0%     +96 [None]                                              +4.65Ki  +0.1%
   +11%    +192 src/core/lib/iomgr/tcp_server_utils_posix_common.cc    +192   +11%
      [NEW]    +900 grpc_tcp_server_prepare_socket                         +900  [NEW]
      +2.2%     +16 grpc_tcp_server_add_addr                                +16  +2.2%
      +100%     +12 [Unmapped]                                              +12  +100%
  +0.3%     +16 src/core/lib/iomgr/tcp_server_posix.cc                  +16  +0.3%
      +1.2%     +16 tcp_server_start                                        +16  +1.2%

  +0.0%    +304 TOTAL                                               +4.85Ki  +0.1%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                           FILE SIZE
 ++++++++++++++ GROWING                                             ++++++++++++++
  +0.0%     +96 [None]                                              +4.65Ki  +0.1%
   +11%    +192 src/core/lib/iomgr/tcp_server_utils_posix_common.cc    +192   +11%
      [NEW]    +900 grpc_tcp_server_prepare_socket                         +900  [NEW]
      +2.2%     +16 grpc_tcp_server_add_addr                                +16  +2.2%
      +100%     +12 [Unmapped]                                              +12  +100%
  +0.3%     +16 src/core/lib/iomgr/tcp_server_posix.cc                  +16  +0.3%
      +1.2%     +16 tcp_server_start                                        +16  +1.2%

  +0.0%    +304 TOTAL                                               +4.85Ki  +0.1%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[microbenchmarks] No significant performance differences

BTW test flake appears to be existing https://github.com/grpc/grpc/issues/13613

Note you are only applying the mutator on the listening socket but not the actual channel socket. I want to confirm that is intended. Otherwise LGTM

This patch was tested internally and works (I only need the socket option set on the listeners).
That said, on second thought I could perhaps rename grpc.socket_mutator to e.g. grpc.listen_socket_mutator, when it's to be used for this purpose.

added a TODO for the task to allow the SocketMutator to also work on server channel sockets

****************************************************************

libgrpc.so

     VM SIZE                                                           FILE SIZE
 ++++++++++++++ GROWING                                             ++++++++++++++
  +0.0%     +96 [None]                                              +4.65Ki  +0.1%
   +11%    +192 src/core/lib/iomgr/tcp_server_utils_posix_common.cc    +192   +11%
      [NEW]    +900 grpc_tcp_server_prepare_socket                         +900  [NEW]
      +2.2%     +16 grpc_tcp_server_add_addr                                +16  +2.2%
      +100%     +12 [Unmapped]                                              +12  +100%
  +0.3%     +16 src/core/lib/iomgr/tcp_server_posix.cc                  +16  +0.3%
      +1.2%     +16 tcp_server_start                                        +16  +1.2%

  +0.0%    +304 TOTAL                                               +4.85Ki  +0.1%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] Performance differences noted:
Benchmark                                                                cpu_time    real_time
-----------------------------------------------------------------------  ----------  -----------
BM_PumpStreamClientToServer<InProcess>/262144                            -8%         -8%
BM_PumpStreamServerToClient<InProcess>/32768                             -10%        -10%
BM_StreamingPingPongMsgs<MinInProcess, NoOpMutator, NoOpMutator>/262144  -6%         -6%
BM_UnaryPingPong<InProcess, NoOpMutator, NoOpMutator>/262144/262144      -5%         -5%


Fix/transient deps

This is meant to address the problem described in #4014: unresolved module dependencies when they're not all present as source.
Outstanding before merging

[x] this branch is based on #4342; merge it or rebase this branch. (The fix doesn't depend on that, but it does speed up testing a bit.)
[x] does it work? (right now I have it working with JoshariasSurvival and CoreSampleGameplay in modules/, does it work with JS alone and no CSG?)
[x] why do I have both Workstation-1.1.0.jar and Workstation-1.1.0-SNAPSHOT.jar?
[ ] does it mess up the distribution tasks?
[ ] should we do something similar with the :moduleJars task?
[ ] can we get rid of RemoteModuleGatherer???

I'm submitting this a promising proposal, but as a Draft because I don't think I've figured out all the ramifications yet.
That requirements document on the build process that I was taking notes for over in #4157 would come in handy here.

ok, it works if I only have JoshariasSurvival checked out without CoreSampleGameplay.
It seems to work with gradlew and intellij, though intellij doesn't trigger RemoteModuleGatherer. That suggests we could get rid of RemoteModuleGatherer, though I still have to see whether its involved in building the distributions.
and I only have the one version of Workstation now, so I guess whatever that was went away with last night's module rebuilds?

I see several distribution tasks under :facades:PC

distApp: says it does not include modules
distModules: depends on distApp as well as :moduleJars. "only grabs Core in Jenkins but locally will grab any present. Distros now handle Jenkins packs"
distPCZip: depends on distModules
distForLauncher: includes distPCZip (I think)

Questions I have (probably for @Cervator) are:

which of these tasks are the ones we use for releases?
do we actually distribute modules this way, or is that done elsewhere? ("Distros"?)

there are also gradle's default distribution tasks, distZip and distTar.

I'm very tempted to go on a tangent changing some of that, but the scope of this ticket is just making sure the current PR doesn't break our releases.
It's okay if that leaves things in sort of a half-and-half state, we can revisit distribution tasks in a separate PR.

So, lots of potentially good stuff 👍
moduleClasses - if we can get rid of this one (and the jar variant) then awesome! Those two were ancient hacks, and I think once upon a time they helped make sure modules were built along with everything else, especially in cases where you were trying to dist stuff. They at least partially broke a while ago and I have no idea if they're still needed. Cool to see a possible replacement strategy.

RemoteModuleGatherer

I don't know or remember anymore what that even does. After we extracted the final module from the engine repo I think the need for a lot of stuff went away (and some comments went out of date, Jenkins doesn't build any modules as part of the engine build anymore). So long as modules can build locally and you can potentially make a local game zip with modules then cool.
I say "potentially" because Jenkins doesn't even use that approach anymore - since no module activity happens during the engine build at all. Module bundling happens 100% in the Omega job instead, and even that should perhaps be replaced with something more simple. It literally just grabs a list of modules at this point and it seems senseless to even have Gradle try to dependency resolve that since we literally put the full list of modules into the property, no dependencies should remain (unless we missed a spot)
Should the engine workspace even be able to build a zip with modules, or start a server from source with modules? I'm not even sure. Especially if we refactor the module packager, make it a lib, then enable it to be embedded in a workspace so its utility becomes available there without module clutter in the engine Gradle.
Main thing engine really needs to be able to do anymore is make sure you've got module jar files for dependencies you don't have in source form. And fetching module source but that's in groovyw now

and I only have the one version of Workstation now, so I guess whatever that was went away with last night's module rebuilds?

Probably yes. Module binaries should be cleaner now.

Dist tasks

Only distForLauncher really matters anymore for Jenkins. The others are in that twilight zone of "do we even need to do this locally, if Jenkins makes game zips using a completely different approach anyway?"
Although of course they do indeed chain together... I could live without distModules personally.
Long ago we went from using distZip to our own custom task but I don't remember why anymore. I've been curious about some of the newer things like full on application or platform definitions.

RemoteModuleGatherer is the thing that spies on gradle's dependency downloads and puts jars in /modules/.
but with those questions answered, it sounds like the stuff this PR has done with module dependencies won't break releases, because it's not part of that process. In that case I think I can take this out of Draft.


[bug fix] password reset link is broken in apex domain

addresses: https://github.com/restarone/violet_rails/issues/643
acceptance criteria

password reset workflow works as expected in subdomain (foo.example.com)
password reset works as expected in apex domain (example.com)

@alis-khadka since we dont have an email service setup for heroku--
I will promote this to staging as soon as I smoke test the app on heroku (if the app boots we are safe to promote)

2. password reset works as expected in apex domain (example.com)

@donrestarone
For apex domain, since the name is public (Apartment::Tenant.current), the url will be public.example.com instead of root.example.com


PubSub.on_connect may be no call!

Version: What redis-py and what redis version is the issue happening on?
3.2.1
Platform: What platform / version? (For example Python 3.5.1 on Windows 7 / Ubuntu 15.10 / Azure)
windows 7
Description: Description of your issue, stack traces from errors and code that reproduces the issue
redis/client.py:
        if self.connection is None:
            self.connection = self.connection_pool.get_connection(
                'pubsub',
                self.shard_hint
            )
            # register a callback that re-subscribes to any channels we
            # were listening to when we were disconnected
            self.connection.register_connect_callback(self.on_connect)

connection_pool.get_connection is make sure return a connected connection;
so connection.register_connect_callback(self.on_connect) may be not effect;

PubSub.on_connect does not (and should not) be called when first initializing the PubSub object. This callback should be called only when the TCP link is broken and reconnected.

Closing this as I don't believe this to be a bug or issue. If you disagree, please reopen.


DOCS-5332-4.1-publishing-a-rest-api-kt

Migrating from 3.9 to 4.1
-Updated links to APIkit
-Improve wording, styling.
-Added See Also section.

This content was merged under https://github.com/mulesoft/docs-mule-runtime/pull/894


Failed to write to log, invalid argument

On Win10, when using full, the docker cli is found and the target image is succesfully pulled. However, dive fails because of some issue with the log:
# docker run --rm -v //var/run/docker.sock://var/run/docker.sock wagoodman/dive:full ghdl/run:buster-gcc
Unable to find image 'wagoodman/dive:full' locally
full: Pulling from wagoodman/dive
c4417d4ce49e: Pulling fs layer
f54082d45830: Pulling fs layer
f54082d45830: Verifying Checksum
f54082d45830: Download complete
c4417d4ce49e: Verifying Checksum
c4417d4ce49e: Download complete
c4417d4ce49e: Pull complete
f54082d45830: Pull complete
Digest: sha256:196d317a75f6691b8fccb4d27f81366cbf97da03a4a787ad6e05b45ddbae211b
Status: Downloaded newer image for wagoodman/dive:full
Fetching image... (this can take a while with large images)
Image not available locally.
Analyzing image...
Building cache...
Failed to write to log, invalid argument

This is the same if I try to use dive with any image which is available locally already.

I think this is a PATH problem within the container. There is a good chance you would not see this on the new release, v0.9.0 (mind reporting back if the latest release works for you)?

I just tested the latest release, but it fails. There is an additional error message:
# docker run --rm -v //var/run/docker.sock://var/run/docker.sock wagoodman/dive ghdl/run:buster-gcc
Image Source: docker://ghdl/run:buster-gcc
Fetching image... (this can take a while for large images)
Analyzing image...
Building cache...
Failed to write to log, invalid argument
open /dev/tty: no such device or address

Upon further testing, dive requires the container to have an allocated pseudo-TTY (i.e. option --tty or -t). It'd be useful if dive exited cleanly when it is not available.
On MSYS2, using -t only produces a segmentation violation:
# docker run --rm -tv //var/run/docker.sock://var/run/docker.sock wagoodman/dive ghdl/run:buster-gcc
Image Source: docker://ghdl/run:buster-gcc
Fetching image... (this can take a while for large images)
Analyzing image...
Building cache...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x80 pc=0x13036b2]

goroutine 28 [running]:
github.com/jroimartin/gocui.(*View).Clear(...)
        /home/wagoodman/go/pkg/mod/github.com/jroimartin/gocui@v0.4.0/view.go:392
github.com/wagoodman/dive/runtime/ui/view.(*FileTree).Render.func1(0xc0000dd170, 0xc000241ac8, 0x2)
        /home/wagoodman/github/dive/runtime/ui/view/filetree.go:373 +0x42
github.com/jroimartin/gocui.(*Gui).MainLoop(0xc0000dd170, 0xc0003ddc70, 0xc000adfc20)
        /home/wagoodman/go/pkg/mod/github.com/jroimartin/gocui@v0.4.0/gui.go:377 +0x2d9
github.com/wagoodman/dive/runtime/ui.Run(0xc0003ddc70, 0xc000adfc20, 0x4, 0x4, 0xc000355c20, 0x0, 0x0)
        /home/wagoodman/github/dive/runtime/ui/app.go:135 +0x10f
github.com/wagoodman/dive/runtime.run(0x23be501, 0x0, 0x7ffe4acb6f62, 0x13, 0x1, 0x0, 0x0, 0xc000108f00, 0x0, 0x0, ...)
        /home/wagoodman/github/dive/runtime/run.go:105 +0x8e4
created by github.com/wagoodman/dive/runtime.Run
        /home/wagoodman/github/dive/runtime/run.go:127 +0x118

winpty is required:
# winpty docker run --rm -tv //var/run/docker.sock://var/run/docker.sock wagoodman/dive ghdl/run:buster-gcc
Image Source: docker://ghdl/run:buster-gcc
Fetching image... (this can take a while for large images)
...

FTR, when used in CI mode, -t is not required:
# docker run --rm -e CI=true -v //var/run/docker.sock://var/run/docker.sock wagoodman/dive ghdl/run:buster-gcc
  Using default CI config
Image Source: docker://ghdl/run:buster-gcc
Fetching image... (this can take a while for large images)
Analyzing image...
  efficiency: 99.6966 %

  wastedBytes: 903570 bytes (904 kB)

  userWastedPercent: 0.5500 %

Inefficient Files:
Count  Wasted Space  File Path
    4        374 kB  /var/lib/dpkg/status-old
    4        374 kB  /var/lib/dpkg/status
    3         41 kB  /var/log/dpkg.log
    3         27 kB  /etc/ld.so.cache
    4         25 kB  /var/log/apt/eipp.log.xz
    4         24 kB  /var/lib/apt/extended_states
    3         22 kB  /var/log/apt/term.log
    2         12 kB  /var/cache/ldconfig/aux-cache
    3        4.2 kB  /var/log/apt/history.log
    4           0 B  /var/lib/dpkg/triggers/Lock
    4           0 B  /var/lib/dpkg/lock
Results:
  PASS: highestUserWastedPercent
  SKIP: highestWastedBytes: rule disabled
  PASS: lowestEfficiency
Result:PASS [Total:3] [Passed:2] [Failed:0] [Warn:0] [Skipped:1]

Executing dive 0.9.0 on Windows 10 in CMD:
>dive registry.access.redhat.com/ubi8/ubi-minimal
Image Source: docker://registry.access.redhat.com/ubi8/ubi-minimal
Fetching image... (this can take a while for large images)
Analyzing image...
Failed to write to log, invalid argument
Building cache...
Failed to write to log, invalid argument
cannot build cache tree
Failed to write to log, invalid argument
cannot remove upperNode /var/log/anaconda: path does not exist: /var/log/anaconda

Same in cygwin:
> dive registry.access.redhat.com/ubi8/ubi-minimal
Image Source: docker://registry.access.redhat.com/ubi8/ubi-minimal
Fetching image... (this can take a while for large images)
Analyzing image...
Failed to write to log, invalid argument
Building cache...
Failed to write to log, invalid argument
cannot build cache tree
Failed to write to log, invalid argument
cannot remove upperNode /var/log/anaconda: path does not exist: /var/log/anaconda

+1, facing the same problem on MacOS installed via Homebrew:
~ ❯ dive gcr.io/cloud-builders/docker
Image Source: docker://gcr.io/cloud-builders/docker
Fetching image... (this can take a while for large images)
Analyzing image...
Failed to write to log, invalid argument
Failed to write to log, invalid argument
Failed to write to log, invalid argument
Failed to write to log, invalid argument
Building cache...
Failed to write to log, invalid argument
cannot build cache tree
Failed to write to log, invalid argument
cannot remove upperNode /var/log/alternatives.log: path does not exist: /var/log/alternatives.log

But it works fine with dive alpine

It seems that there are two problems here:

the underlying problem that this ticket is titled after ('failed to write to log...') occurs when logging is disabled a nil file object was still being set as the output destination.
secondary failures (unrelated to the first problem) that attempt to log errors (such as "cannot remove upperNode") still show "failed to write log". Both cases provided (thanks @uhinze  and @mdeknowis for providing images to reproduce!) are due to some layers having relative path prefix (e.g. ./) and the same path in subsequent layers not having a relative prefix.

Both fixes will make it into the next release.

Thanks @wagoodman!
I posted two different variants of the first error:

open /dev/tty: no such device or address
panic: runtime error: invalid memory address or nil pointer dereference

The first one is because there is no tty and dive does require it (unless in CI mode). Hence, I would suggest to add a message/note when this error is handled and dive is being executed inside a container. I believe I have some golang function to detect this latter condition, but I don't know where is the error reported in the codebase. The message would suggest users to use -t (and -i?).
The second type of error might be trickier. Of course, dive should not crash, but exit gracefully. Apart from that, I don't think that any specific message can be shown. Requiring winpty is specific to some platforms/terminals, and there is no easy mechanism to identify the context from inside the container. A generic message may be added, tho.


Slow inference

I am using serve/cli.py to do inference with original model. I noticed that the inference is too slow but when I replace this line with model = AutoModelForCausalLM.from_pretrained(model_path, low_cpu_mem_usage=True, **kwargs), where model path is "microsoft/Phi-3-vision-128k-instruct" inference is way faster. Could you please let me know what might be the reason? Thanks

@saadi297 It was caused by the model code, that can handle text-only data.
I've commented the code for now (maybe you are using the code before I commented it.) and it' will be fast as the AutoModelForCausalLM.
I'm working on for the code optimization. Will be updated in near future for text-only data training.
BTW, it's just the same code when inference for now,  so you could just use AutomodelForCausalLM
Sorry for the inconvenience.

Thanks for your reply. Yes, I was using the previous code. So the current code does not support text-only training/inference?

Yes is does not support text-only training for now.
I'm working on it.


[crypto] Add specialized modular inversion for RSA key generation.

This routine is used to compute the private exponent, d. It's passing a local test with a random modulus, but this PR was big enough that I'll merge the test separately.

Everything is passing except Kokoro, but this PR doesn't touch RTL and Kokoro is failing on other PRs as well at the moment, so I'll consider it safe to merge.


Blocklauncher Crashing with my mod that worked on 0.12.3

My creeper buddies mod worked on 0.12.3 now it crashes when i spawn a creeper buddy i think it has something to do with the set text in the gui functions
Heres the script :
http://qbot.tk/CreepaBuddys.js

I can't download the script (gives a "Not found") error - you might want to check if you got the address right

If you are referring to the script at http://qbot.tk/CreepaBuddys4.js, it was riddled with errors. I went through it and fixed what my code linter found and saved it as creeper-buddy.js. I loaded it and it seems to work fine.
All files are attached including your original, my corrections, and the diff file that shows you what I fixed.
FYI, I had to add the .txt extension in order to attach the files.
CreepaBuddys4.js.txt
creeper-buddy.js.txt
CreepaBuddys4.diff.txt

dude it still crashes the game when a creeper buddy is spawned and it was working fine in 0.12.3
zhuowei please fix this :(

Dude, my version of your script.
BlockLauncher 1.11.1-b3
MCPE 0.13.0
Just sayin' ...
1. Enter world

2. Turn on randowm spawn

3. Get creeper spawners

4 Oh no, creepers

dude the creeper buddies not the elemental creepers the pets !! you need to spawn it and name it ....
https://lh3.ggpht.com/zEYMerWUrG8igPHvOapxqP1pyhtjeLaCEgykA2zx3OGvwMdgtxOpBtI8MMbDwZz6um4=h310-rw

Gotcha...I didn't know about the spawning trick, I just tested the chat command spawning. I do get a crash when triggering the spawn from the egg drops.
You might want to include detailed instructions so @zhuowei knows what to do to replicate your problem.

Okay @zhuowei this script does not work anymore please can you fix it to replecate the problem
Install this script : http://qbot.tk/CreepaBuddys4.js
Go into creative and in the seeds section at the bottom get the Creepa buddie spawner the chicken egg
And spawn it the game will then crash ...
This is the problem :(

I think this is the same issue as Pokedroid (anything that sets transparency to true in setTextureOffset crashes), since the mutant creeper uses transparent textures. Try 1.11.1 release, which should fix this.

thanks @zhuowei fixed it!


Sample runtime failure Could not find 'azureMapsControl.Core.addMap' ('azureMapsControl' was undefined).

I've got the sample compiling and running. But on starting up it throws:
Microsoft.JSInterop.JSException: Could not find 'azureMapsControl.Core.addMap' ('azureMapsControl' was undefined).
Error: Could not find 'azureMapsControl.Core.addMap' ('azureMapsControl' was undefined).
    at https://localhost:7159/_framework/blazor.web.js:1:734
    at Array.forEach (<anonymous>)
    at l.findFunction (https://localhost:7159/_framework/blazor.web.js:1:702)
    at b (https://localhost:7159/_framework/blazor.web.js:1:5445)
    at https://localhost:7159/_framework/blazor.web.js:1:3238
    at new Promise (<anonymous>)
    at y.beginInvokeJSFromDotNet (https://localhost:7159/_framework/blazor.web.js:1:3201)
    at fn._invokeClientMethod (https://localhost:7159/_framework/blazor.web.js:1:62541)
    at fn._processIncomingData (https://localhost:7159/_framework/blazor.web.js:1:60016)
    at connection.onreceive (https://localhost:7159/_framework/blazor.web.js:1:53657)
   at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
   at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args)
   at AzureMapsControl.Components.Runtime.MapJsRuntime.InvokeVoidAsync(String identifier, Object[] args) in C:\Git\AzureMapsControl.Components\src\AzureMapsControl.Components\Runtime\MapJsRuntime.cs:line 22
   at AzureMapsControl.Components.Map.AzureMap.OnAfterRenderAsync(Boolean firstRender) in C:\Git\AzureMapsControl.Components\src\AzureMapsControl.Components\Map\AzureMap.razor:line 429
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost: Error: Unhandled exception in circuit 'MHbG-8tBm6VHLQaXUuHZm7aiZLgpGXhbD-f5DfYwShs'.

And this may be related. Visual Studio will not let me set a breakpoint in AppMap.razor. I can put it in MapJsRuntime which it calls. And on that break it shows AppMap.razor in the call stack. But can't set a breakpoint there.
Anyways, with this error, while the app runs, there's no map.

Looks like you are missing the javascript component. My first would be that you only built the dotnet library itself, but not the typescript part. Can you please run npm run build and check if it makes any difference ?
Feel free to take a look at the development guidelines : https://github.com/arnaudleclerc/AzureMapsControl.Components/blob/develop/CONTRIBUTING.md#build-the-library

Hi @arnaudleclerc
I had run the steps in the doc but not npm run build. I ran that too and it was successful, but still the same error. Any other ideas?
I am running from Visual Studio.
thanks - dave


[multistage] Fix AVG Return Type

This PR fixess the return type of AVG aggregation function. The discussion/context behind this change is documented in OSS issue https://github.com/apache/pinot/issues/10318
Added planner tests. Will update this PR with runtime tests soon.

Codecov Report

Merging #10368 (1625c98) into master (c58a01d) will decrease coverage by 56.55%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master   #10368       +/-   ##
=============================================
- Coverage     70.32%   13.77%   -56.55%
+ Complexity     5940      231     -5709
=============================================
  Files          2035     1979       -56
  Lines        110228   107731     -2497
  Branches      16748    16458      -290
=============================================
- Hits          77520    14844    -62676
- Misses        27275    91705    +64430
+ Partials       5433     1182     -4251

Flag
Coverage Δ

integration1
?

integration2
?

unittests1
?

unittests2
13.77% <0.00%> (-0.01%)
:arrow_down:

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

 Learn more

can you also add a test in runtime to make sure avg on a big decimal column returns a big decimal value? (a simple 2 big-decimal that taking an avg resulting in a double-overflowed result should be suffice)

@walterddr Oh yeah, I tried adding it earlier. There's a existing issue where none of the aggregation functions work on BIG_DECIMAL columns 😅 . I'll spend some time tomorrow debugging and fixing it.  We can incorporate the fix in this PR or merge this PR and create a separate one for BIG_DECIMAL aggregate functions. I'm ok either way.


[Discussion] How to avoid 'unknow column' Exception when table meta cache still available and real table meta has changed?

[ ] I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description
some problem when execute delete operation have arised.
Ⅱ. Describe what happened
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'sex' in 'field list'

Ⅲ. Describe what you expected to happen
I think if druid doesn't throw the MySQLSyntaxErrorException that means sql is correct, we can catch the MySQLSyntaxErrorException in the DeleteExecutor, update the table meta cache, and try to execute the sql one more time.
Ⅳ. How to reproduce it (as minimally and precisely as possible)
1.delete some data in seata_account_tbl(id,user_id,money,sex) normally
2.now, table meta have 4 column and set in the cache
3.delete successfully
4.remove 1 column in database(for example: delete sex column)
5.delete some data in seata_account_tbl again
6.try to find table meta in the cache(table meta in the cache have 4 column)
7.execute select id, user_id, money, sex from seata_account_tbl(actually, sex column have removed already)
8.'unknow column sex' Exception have arised.
Ⅴ. Anything else we need to know?
Ⅵ. Environment:

JDK version :
OS :
Others:

In this case, we need to consider whether it is appropriate to change the table structure of the database when the business is not down and how to change the table structure without stopping the system to quickly invalidate the table cache.


Memory Bug: [terminate called after throwing an instance of 'std::bad_alloc']

./osmium_serdump /home/user/Downloads/2012/planet-120912.osm.bz2 /home/user/Downloads/2012/ser/
Output:
terminate called after throwing an instance of 'std::bad_alloc'
 what():  std::bad_alloc
 Aborted (core dumped)
The program terminates even after I ran it on machines having >40GB of RAM
The last execution ran for > 4 hours and System Monitor (Linux) reported about > 16GB of Memory being used by the process. The output file size reached to 67.3GB while the input planet-120912.osm.bz2 is of size 24.5GB
Is it possible to put the library/program in verbose/debug mode???
The old library https://github.com/minad/osm2shp appears to be working on the same input file without consuming much memory but then it is not supporting recent file formats such as OPL
Another run terminated at 69.4GB output
This time I ran the process in Debug mode within Netbeans (See attached Screenshot...

)

Please read the comments at the beginning of the osmium_serdump.cpp file. You have to change the source code for large input files.
Unfortunately there isn't much documentation yet about how to do all this. There is a beginning here:
http://osmcode.org/libosmium/manual/libosmium-manual.html#indexes . If you tell us what you are trying to do, maybe we can help some more?

I changed the line
typedef osmium::index::map::SparseMemArray<osmium::unsigned_object_id_type, size_t> offset_index_type;
to
typedef osmium::index::map::DenseMmapArray<osmium::unsigned_object_id_type, size_t> offset_index_type;
for large (planet) files
It was giving an error
/home/user/Desktop/libosmium-master/examples/osmium_serdump.cpp:45:29: error: ‘DenseMmapArray’ in namespace ‘osmium::index::map’ does not name a template type typedef osmium::index::map::DenseMmapArray<osmium::unsigned_object_id_type, size_t> offset_index_type;`
You have to include the missing header:
#include <osmium/index/map/dense_mmap_array.hpp>
Compilation was successful... fingers crossed for the output!!!

Same error again with DenseMmap but this time the output data.osm.ser doubled in size ~112GB
and the process was able to consume ~20GB of memory (RAM) before termination
I think you should run/debug it on a planet file
I also have use of another program export_to_wkt.cpp
https://github.com/osmcode/osmium-contrib
and as it is referring to the same library and headers I assume it will crash too...
Also, it is missing the same header (used for large files)
 #include <osmium/index/map/dense_mmap_array.hpp>
You might also want to include that header in the example.
How about conditional typedefs???
You can check the file size before declaring the typedefs and select the appropriate one at run-time!
N.B.: I am still going through C++11

These programs do work for planet sized data. But they need a lot of memory, that is normal. With a lot I mean 10s of GBs. But depending on what you want, different strategies can be used for larger data sizes than for smaller ones. These are, unfortunately, examples that are not well documented and not something which can be used out of the box. I am sorry this is all a bit vague. But if I had the time I would have documented those examples better and described what there limitations are. As things currently stand they work for smaller data sizes out of the box, because I thought that is what people will test them with. But if you want to work with larger data size, you have to know more about how Osmium works internally to get this to work.
You can't have conditional typedefs at runtime. But there is a different mechanism for that. This is used in osmium_toogr.cpp for instance. You can decide on the command line which type of index to use.
Again, if you tell us, what you are trying to do, I could probably help you some more.


hitbtc: v2 adaptations

Apparently, hitbtc v2 was partially implemented.
So now:

fetchOpenOrders() adapted for new endpoint
I removed child parseOrders() as it throwed an exception on empty array of orders. Base class method handles it just well
order structure have been changed so I adapted parseOrder() as well
limits and precisions was not compatible with the doc (market had lot and step properties instead but I kept them for backwards compatibility)
trading fees added to market

Awesome! Thx so much!


within MysqlConnection, the trait Sync is not implemented for NonNull<mysqlclient_sys::st_mysql>

Setup
I want to share my mysql connection across multiple tokio threads using diesel::r2d2 module.

extern crate diesel;
extern crate r2d2;
extern crate tokio;

use diesel::mysql::MysqlConnection;
use diesel::r2d2::ConnectionManager;

fn main() {
    let manager = ConnectionManager::<MysqlConnection>::new("mysql://localhost/mydb");
    let pool = r2d2::Pool::builder().build(manager).expect("Failed to create pool.");

    for _ in 0..2{
        let pool = pool.clone();
        tokio::spawn(async move {
            let connection = pool.get().unwrap();

        });
    }
}

Versions

Rust: rustc 1.48.0-nightly (73dc675b9 2020-09-06)
Diesel: 1.4.5
Database: mysql
Operating System Arch Linux

Feature Flags

diesel: mysql, chrono, r2d2

What is the expected output?
Share my MysqlConnection across tokio async threads.
What is the actual output?
error: future cannot be sent between threads safely
   --> src/browsers.rs:43:9
    |
43  |         tokio::spawn(async move {
    |         ^^^^^^^^^^^^ future created by async block is not `Send`
    |
   ::: /home/ramesh/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/task/spawn.rs:127:21
    |
127 |         T: Future + Send + 'static,
    |                     ---- required by this bound in `tokio::spawn`
    |
    = help: within `MysqlConnection`, the trait `Sync` is not implemented for `NonNull<mysqlclient_sys::st_mysql>`
note: future is not `Send` as this value is used across an await

Checklist

[x] I have already looked over the issue tracker for similar issues.
[x] This issue can be reproduced on Rust's stable channel. (Your issue will be
closed if this is not the case)

Database connections are fundamentally not Sync. Therefore that's not possible. You may want to share the pool itself across the async boundary.
Closed as everything works as expected.

@weiznich  I could reproduce it. But figured it out. I have used the same db connection after called an async function. We need to create a new database connection after an each async function called.
Wrong
let db = pool.get().unwrap();

get_seller(&db);

foo().await;

get_product(&db);

Solution
let db = pool.get().unwrap();

get_seller(&db);

foo().await;

let pool = pool.clone();
let db = pool.get().unwrap();

get_product(&db);


Missing requirement when trying to install 2.0 Lumira Community Extensions

I am trying to install the 2.0 extensions into Lumira Designer 2.0 SP2 and am getting the following error:
Cannot complete the install because one or more required items could not be found.
Software currently installed: SAP Lumira Designer 21.0.0 (product.external 21.0.0)
Missing requirement: SAP Lumira Designer 21.0.0 (product.external 21.0.0) requires 'toolingproduct.external.application [21.0.0]' but it could not be found
Regards
Dan

Solved by renaming old workspace directory and reinstalling Lumira Designer.


Possible hide of the select placeholder option

I would like to hide the option serving as a placeholder for the Select component via a new method noPlaceholder added.

Hi, thanks for this. For some reason, I don't have permission to make tweaks to this PR - so I've pushed it to a new PR here - #1065.
I've renamed the method to disablePlaceholderSelection() - since noPlaceholder() implies that the placeholder is removed also for searchable selects, which is not true.

Great!
Thanks!


Installing Tatum

I'm getting this error upon installation.
My Environment Versions:
node: '14.15.4',
npm: '6.14.10',

Same issue here

npm version:
{
  npm: '6.14.16',
  ares: '1.18.1',
  brotli: '1.0.9',
  cldr: '40.0',
  icu: '70.1',
  llhttp: '2.1.4',
  modules: '83',
  napi: '8',
  nghttp2: '1.42.0',
  node: '14.19.1',
  openssl: '1.1.1n',
  tz: '2021a3',
  unicode: '14.0',
  uv: '1.42.0',
  v8: '8.4.371.23-node.85',
  zlib: '1.2.11'
}

node version:
v14.19.1

Ok I resolved this issue and the reason was "git" wasn't installed.

Hey @jobinblancaflor. You should close this issue since it's resolved form your end.


Ebook cloud native architecture

Summary
Supersedes: #42010, replacement of original #42758, and now also replaces #42762.
Fixes #43182
Preview: Architecture for Distributed Cloud-Native Apps with .NET & Containers

Internal previews
Toggle expand/collapse

📄 File
🔗 Preview link

docs/architecture/distributed-cloud-native-apps-containers/api-gateways/gateway-patterns.md
docs/architecture/distributed-cloud-native-apps-containers/api-gateways/gateway-patterns

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/authentication-authorization.md
docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/authentication-authorization

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/azure-security.md
docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/azure-security

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/identity-server.md
docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/identity-server

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/identity.md
docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/identity

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-resiliency/resilient-communication.md
docs/architecture/distributed-cloud-native-apps-containers/cloud-native-resiliency/resilient-communication

docs/architecture/distributed-cloud-native-apps-containers/communication-patterns/when-to-use-each-approach.md
docs/architecture/distributed-cloud-native-apps-containers/communication-patterns/when-to-use-each-approach

docs/architecture/distributed-cloud-native-apps-containers/data-patterns/azure-caching.md
docs/architecture/distributed-cloud-native-apps-containers/data-patterns/azure-caching

docs/architecture/distributed-cloud-native-apps-containers/data-patterns/data-driven-crud-microservice.md
docs/architecture/distributed-cloud-native-apps-containers/data-patterns/data-driven-crud-microservice

docs/architecture/distributed-cloud-native-apps-containers/data-patterns/relational-vs-nosql-data.md
docs/architecture/distributed-cloud-native-apps-containers/data-patterns/relational-vs-nosql-data

docs/architecture/distributed-cloud-native-apps-containers/event-based-communication-patterns/integration-event-based-microservice-communications.md
docs/architecture/distributed-cloud-native-apps-containers/event-based-communication-patterns/integration-event-based-microservice-communications

docs/architecture/distributed-cloud-native-apps-containers/event-based-communication-patterns/rabbitmq-event-bus-development-test-environment.md
docs/architecture/distributed-cloud-native-apps-containers/event-based-communication-patterns/rabbitmq-event-bus-development-test-environment

docs/architecture/distributed-cloud-native-apps-containers/introduction-containers-docker/official-container-images-tooling.md
docs/architecture/distributed-cloud-native-apps-containers/introduction-containers-docker/official-container-images-tooling

docs/architecture/distributed-cloud-native-apps-containers/introduction-to-cloud-native-development/candidate-apps-for-cloud-native.md
docs/architecture/distributed-cloud-native-apps-containers/introduction-to-cloud-native-development/candidate-apps-for-cloud-native

docs/architecture/distributed-cloud-native-apps-containers/introduction-to-cloud-native-development/what-is-cloud-native.md
docs/architecture/distributed-cloud-native-apps-containers/introduction-to-cloud-native-development/what-is-cloud-native

docs/architecture/distributed-cloud-native-apps-containers/monitoring-health/azure-monitor.md
docs/architecture/distributed-cloud-native-apps-containers/monitoring-health/azure-monitor

docs/architecture/distributed-cloud-native-apps-containers/monitoring-health/health-checks-probes.md
docs/architecture/distributed-cloud-native-apps-containers/monitoring-health/health-checks-probes

docs/architecture/distributed-cloud-native-apps-containers/monitoring-health/open-telemetry-grafana-prometheus.md
docs/architecture/distributed-cloud-native-apps-containers/monitoring-health/open-telemetry-grafana-prometheus

docs/architecture/distributed-cloud-native-apps-containers/service-to-service-communication-patterns/grpc.md
docs/architecture/distributed-cloud-native-apps-containers/service-to-service-communication-patterns/grpc

docs/architecture/distributed-cloud-native-apps-containers/service-to-service-communication-patterns/service-mesh-communication-infrastructure.md
docs/architecture/distributed-cloud-native-apps-containers/service-to-service-communication-patterns/service-mesh-communication-infrastructure

docs/architecture/distributed-cloud-native-apps-containers/service-to-service-communication-patterns/service-to-service-communication.md
docs/architecture/distributed-cloud-native-apps-containers/service-to-service-communication-patterns/service-to-service-communication

docs/core/extensions/dependency-injection-basics.md
docs/core/extensions/dependency-injection-basics

docs/core/extensions/dependency-injection.md
docs/core/extensions/dependency-injection

docs/core/extensions/http-ratelimiter.md
docs/core/extensions/http-ratelimiter

docs/core/extensions/httpclient-factory.md
docs/core/extensions/httpclient-factory

docs/core/extensions/options.md
docs/core/extensions/options

docs/core/whats-new/dotnet-core-2-0.md
docs/core/whats-new/dotnet-core-2-0

docs/framework/data/adonet/obtaining-a-dbproviderfactory.md
docs/framework/data/adonet/obtaining-a-dbproviderfactory

docs/fundamentals/networking/http/httpclient-guidelines.md
docs/fundamentals/networking/http/httpclient-guidelines

docs/standard/choosing-core-framework-server.md
docs/standard/choosing-core-framework-server

[!NOTE]
This table shows preview links for the 30 files with the most changes. For preview links for other files in this PR, select OpenPublishing.Build Details within checks.

@IEvangelist , Hi David, I see this marked as Draft and other PR was closed with this PR. so are we parking this aside for something ? can I still review it ?

In the first page it points to an "eBook Download" but the link doesn't download a PDF but goes to an ASPIRE page:
DOWNLOAD available at: https://aka.ms/aspireebook


[BUG-General] Terminal output not formatted and uses ASCII in windows

Describe the bug
I am on Windows and command prompt and I cd into example_scenes directory and run
manim basic.py

and I get a output like below.

I should get in green colour though.
To Reproduce
Just running the one in example_scene in enough.
Expected behavior
The ill formatted thing should be in green colour.
Logs
Terminal output (Screenshots acceptable)

System Specifications
System Details

OS (with version, e.g Windows 10 v2004 or macOS 10.15 (Catalina)): Windows 7
Python version (python/py/python3 --version): 3.8

Isn't rich's fault ?

Yeah it is rich. What we can do is to lock a stable version say v5. I know it works correctly on v5 but not on v8.

That's a shame.
Maybe we should open an issue on rich's repo and lock to a stable version, as you said.

Done https://github.com/willmcgugan/rich/issues/393
Also, I will make a PR to make sure we use rich version<=7.0.0.

Fixed in rich v9.0.1 but anyhow I am gonna wait till the version is locked by #573

I am gonna wait till the version is locked by

What do you mean by that ?

What do you mean by that ?

We should force installation of rich to ^6.0.0 and not any version.


Mipmap generation generates incomplete mip-chains and has inconsistent internal formats

Godot version
3.x
System information
iPhone 11, macOS
Issue description
Some discovered via https://github.com/godotengine/godot/pull/53275
The code for mipmap generation is mis-aligning internal level formats (at least between level0 and level1).    Verified in RasterizerCanvasBaseGLES3::_copy_texscreen but could be in RasterizerSceneGLES3::_blur_effect_buffer as well.
When accessing these texture two openGL warnings below:

I believe @clayjohn has an idea of the cause, surrounding how the rendertarget allocation is setup.
Steps to reproduce
Check opengl errors and state with external tool, when using a shader program which accesses SCREEN_TEXTURE (which causes a screen texture mipmap gen).
Minimal reproduction project
No response

Here is where the mip chain is set up, as you can see the same internal format is used throughout:
https://github.com/godotengine/godot/blob/8d0b2edfc25dec38fff36e4b198753e570cd4ec9/drivers/gles3/rasterizer_storage_gles3.cpp#L122-L134
This will likely take a little bit of investigation.

Closing as looks to be available as per this tweet:
https://twitter.com/john_clayjohn/status/1556757286898597894
(Not sure the PR this applies to however)

@jordo I don't think https://github.com/godotengine/godot/pull/64167 closes this issue. For one, it targets Godot 4.0, and two, even if mipmaps could be disabled in 3.x, this issue would arise when they were enabled.

@clayjohn I was looking for a way to disable mipmaps when sampling the screen texture, because it's slow on mobile, and arrived here. so if I understand correctly, this is not possible in Godot 3 unless I use GLES2?

@djrain It is indeed slow on mobile...  ~1-2ms for us when we benchmarked a few iOS phones.  If you are comfortable compiling the engine from source, we have a workaround for this in a fork.

@clayjohn I was looking for a way to disable mipmaps when sampling the screen texture, because it's slow on mobile, and arrived here. so if I understand correctly, this is not possible in Godot 3 unless I use GLES2?

Further to Jordo's comment above, there is no out of the box way to disable mipmaps when sampling the screen texture in Godot 3.x. We could probably add a project setting in 3.6, or you can compile with a workaround

An option too, is to switch from generating mipmap manually via engine, to using glGenerateMipmap which I believe was supported on all mobile platforms.  iirc it profiled much much faster, but it's been a while since we were looking at this stuff.
In the end, the workaround for our 2d game worked for us.

@jordo I might give the workaround a go - would you mind pointing me in the right direction with that?

Well, I tried switching to GLES2 to avoid the mipmaps, which indeed fixed the performance. but then I discovered the fragment precision issue there:
https://github.com/godotengine/godot/issues/32813
(which still isn't mentioned anywhere in the docs afaik, could have saved me some time)
I guess you just can't really win :)

Well, I tried switching to GLES2 to avoid the mipmaps, which indeed fixed the performance. but then I discovered the fragment precision issue there: #32813 (which still isn't mentioned anywhere in the docs afaik, could have saved me some time)
I guess you just can't really win :)

Have you tried enabling the ProjectSetting rendering/gles2/compatibility/enable_high_float.Android?

Have you tried enabling the ProjectSetting rendering/gles2/compatibility/enable_high_float.Android?

I haven't, I don't really want to risk incurring an extra performance cost, and also I'm seeing the problem on iOS currently. I think I can work around it for now, perhaps partially because this is a low-res game. But future projects may be more problematic.


Yvesculptor.com mobile not working!

Hi~
I started creating mobile versions of websites using JS BIn back in 2013, and recently I noticed terms have changed. I signed up for the PRO Version, but I still cannot figure out how to PUBLISH my page or make updates, as I had done before! (in this case, for yvesculptor.com)
I also tried to Archive one of the Bins, but it says I need to "own it." (??)
I have paid the $20 monthly subscription, so why is it suddenly so difficult to publish pages when before it was a snap?
~Andre Adams
<EMAIL_ADDRESS>(831) 917-0971
JS Bin info

https://jsbin.com/edit
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
andreadams1974

Just to clarify, the terms didn't change, they were added at the same time pro was launched (so these haven't changed since you upgraded to pro).
Looking at your username, I can see that your first bin was created on 10-Jan 2014 - that isn't to say you didn't use the site before, but under your current pro account, this is the first bin.
Regarding publishing - I'm not sure what you're referring to...can you clarify? There's never been a "publish" button on jsbin, except to publish to your vanity page, which again was introduced with pro.
Can you give me the url of the bin you're trying to archive? That might yield some clues...

Hi Remy,
thanks for the quick reply....so when I say publishing--maybe I am not using the correct term?--I mean making edits to each page and making it live, as I had done previously. What I am trying to say is when I go in now and make revisions to the pages, those changes don't apply when I pull up the site on my mobile device.
The mobile version of the website I've been working on is : http://www.yvesculptor.com/
On the index page of that site I inserted code to redirect to the JSBin mobile version of the site. Hope this make sense now...
Here are a couple pages from the site...does this help?https://jsbin.com/lufijo/9
https://jsbin.com/netoxu/7
I just don't know what I need to do specifically in JS Bin to make the changes reflect when users go to http://www.yvesculptor.com/ and the mobile version comes up....??
ThxAndre Adams
From: Remy Sharp<EMAIL_ADDRESS>To: jsbin/jsbin<EMAIL_ADDRESS>Cc: andreadams1974<EMAIL_ADDRESS>Sent: Wednesday, October 14, 2015 5:34 AM
Subject: Re: [jsbin] Yvesculptor.com mobile not working! (#2580)
Just to clarify, the terms didn't change, they were added at the same time pro was launched (so these haven't changed since you upgraded to pro).Looking at your username, I can see that your first bin was created on 10-Jan 2014 - that isn't to say you didn't use the site before, but under your current pro account, this is the first bin.Regarding publishing - I'm not sure what you're referring to...can you clarify? There's never been a "publish" button on jsbin, except to publish to your vanity page, which again was introduced with pro.Can you give me the url of the bin you're trying to archive? That might yield some clues...—
Reply to this email directly or view it on GitHub.

I'm still unsure of what you're seeing. But I have dug a little in your website code and spotted this:
<script type="text/javascript">
  <!--
  if (screen.width <= 800) {
    window.location = "http://jsbin.com/pizoti/10/";
  }
  //-->
</script>

So you're doing a redirect to this bin when the screen width is small (not specifically mobile).
I'm guessing now that maybe you've hard coded the snapshot urls in the links? Certainly you have done in the redirect you're using, so maybe the right approach is to remove the snapshot in the url and therefore any changes to that bin are automatically picked up (because if you remove the snapshot, jsbin will serve the latest snapshot).


helm: Bump Hubble-UI images to v0.10.0

Bump Hubble images used on Helm chart to v0.10.0.
Update Helm Chart to use Hubble-UI v0.10.0 images by default.

lgtm, but I'm not so familiar with hubble versions @michi-covalent does this make sense?

same point as above, just add Dima (who is hubble UI maintainer) as reviewer.

the change looks good to me ✅ , you need to run make -C Documentation update-helm-values to update Documentation/helm-values.rst

@michi-covalent thank you for the review, I updated the PR accordingly. PTAL

The arm64 failed test seems to be orthogonal:
docker: 'buildx' is not a docker command.
See 'docker --help'
  CHECK   vetting all packages...
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃   FAIL  package: github.com/cilium/cilium/pkg/k8s/identitybackend   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

--- FAIL: TestGetIdentity (0.61s)

    --- FAIL: TestGetIdentity/Duplicated_identity (0.03s)

    identity_test.go:218: Expected key 10, got 11

Rebasing now to trigger another run.

┃   FAIL  package: github.com/cilium/cilium/pkg/k8s/identitybackend   ┃

the above failure is not related to this PR, but more about the flake. I initiated one convo in Cilium development channel
https://cilium.slack.com/archives/C2B917YHE/p1674537258592139

Please let me know when this would be OK for merge so I can do another rebase.

Please let me know when this would be OK for merge so I can do another rebase.

I think we can label the PR as ready to merge. Hubble UI is not covered in CI tests and Helm lint tests are :heavy_check_mark:


Add support for configuring which realms use which SAML providers in multi-organization servers

Also tested manually in the dev environment by having two configured IdP dicts, configuring the limitations for them and trying if things behave as expected.

@mateuszmandera generally this looks great; I posted a batch of comments.
I guess the other missing SAML feature we should do sometime soon is single logout.

@timabbott Made the adjustments. There was a bit of a dilemma of where the IdP config checks related to SAML_REQUIRE_LIMIT_TO_SUBDOMAINS should happen, I settled on doing it in the backend class init - more explanation in the commit message.

@timabbott Made the adjustments, except the removal of the test block for now because it seems reduntant to have it now.

I merged all but the last commit.  The last commit is wrong, I think -- we do want to show e.g. Google authentication there (this is necessary if/when we add support for creating a new organization using Google authentication); it's really just the realm-specific SAML backend that we don't want to show by default..

@timabbott Ah, I see now, the realm_creation use case makes sense! I pushed a commit to exclude only the IdPs limited to some subdomains.

Great, merged, thanks @mateuszmandera!


AutoInvokeKernelFunctions arent invoking

When i use the example from microsoft learn about AutoInvokeKernelFunctions, when i look at the history response i can see that ToolCalls are passing arguments as code rather then properly invoking the functions for example:
If i have a MathPlugin, and ask for 2 * 5, in the arguments it passes code as if the plugin was describing how to use a SDK..., how can you tell the model to not do this?
Have provided a screenshot of the output, you can see it is generating incorrect text for the time plugin,
It should be passing as
name: 'Prompt-TimePlugin',
arguments: {...}

Thanks for reaching out! The repo where you've posted isn't monitored as frequently. Could you please post your question as an issue or start a discussion in our main repo [link to main repo]? That way, it will get the attention it needs.
Thanks for understanding!


Fix pkg-config: command not found errors

On OS X I sometimes get the following output on stderr:
--: pkg-config: command not found
--: pkg-config: command not found

From what I can tell from scanning through the source I think this is because src/openssl/lib_crypto.cr and src/openssl/lib_ssl.cr call out to pkg-config without checking if pkg-config exists (unlike src/compiler/crystal/codegen/link.cr which checks).
A better fix might be to explicitly declare the alternate flags, but I don't know enough about dealing with system libs and your preferences on how to structure that, so I've gone for the simpler fix of redirecting to /dev/null (as src/llvm/lib_llvm.cr does).

Right, should've done something like that. What do you think of prepending command -v pkg-config >/dev/null &&  instead to not swallow other possibly relevant error output?
I don't quite follow hat you mean with

A better fix might be to explicitly declare the alternate flags

Agree it would be better not to swallow any other error output.
By declaring alternate flags I mean that this...
@[Link(ldflags: "`pkg-config --libs libssl || printf %s '-lssl -lcrypto'`")]

Could conceivably be specified like this...
@[Link("libssl", some_option_name: "-lssl -lcrypto")]

Oh, you mean baked in pkg-config handling? Perhaps, I wouldn't be opposed to that personally.

Yep. The code in src/compiler/crystal/codegen/link.cr checks if pkg-config exists before calling it, so if there was another form of Link attribute which could handle the openssl case then that could benefit from re-using the existing link.cr code. Alternatively if it's unlikely that would be used for anything else then having openssl as a special case seems reasonable, providing it behaves similarly (i.e. doesn't output errors if pkg-config isn't found).

For now let's workaround it with command -v pkg-config >/dev/null && here and then please open a new issue to discuss general pkg-config support for @[Link] :)

Sure, I've just added another commit to use command -v instead of redirecting stderr.

Thank you!


Generating .plexmatch for each season too

Some shows have multiple episodes ordering, for example Firefly: on the DVD release the first episode is "Serenity" but on the bullshi... erm... air date order the first episode is "The Train Job". Unfortuanetely Plex defaults always to air date order, but luckily each show order have it's own respectable Plex GUID.
Trivial fix would be making .plexmatch file in each season folder, for example if someone forced DVD order for Firefly in Plex then the .plexmatch file should contain "Guid: plex://season/602e67e966dfdb002c0a1b72" , if someone left it as air date order it's going to be "Guid: plex://season/602e67e766dfdb002c0a1b5b" (tested this by creating the files manualy, it works as expected, Plex scanner picked the corret order each time).

It's odd that they use the same show guid no matter what the sorting is and use different guid for each season when the show is set to something other than the default library sorting... that said this is something that can be implemented for the next version.
The "trivial fix" you mentioned would roughly halve performance since it would double the API calls per media item, but I will be adding a new command line switch to enable per season processing for all items if wanted, and the default behavior will be changed to do per season processing only on media items that have episode ordering set to anything other than the default. This would result in a show plexmatch, and each season having its own plexmatch as well. I'll also be including the season number in the season plexmatch files, which would make this a very good option for someone using non-standard naming on their season folders as well.
Still find this so weird. If episode ordering is set per show, why make the guid difference per season? You can't even set ordering per season so it doesn't make sense.

Working on the release for this feature now, when used automatically or by enabling the option it will show up like this in the log:

This shows that the main show plexmatch was written, and the season file was written too. Since a season can technically be split between many different folders the path the file was written to is also printed out.

Closed with release 0.9.2-rc2


Fix indentation when using .append method

Hi @dotnil
One last minor issue with the .append method. When using it, the ssh config will look like:
Host tahoe
    HostName tahoe.com
    Host walden
    HostName waldenlake.org

Instead of:
Host tahoe
    HostName tahoe.com

Host walden
  HostName waldenlake.org

While it still works that way, adding a new line at the end of each section makes it more readable.

Also added recent tags to the right commits. Don't know if that can be part of the PR.

Ah you got me. The indentation part of .append() is quite rough. I'll see to this pr asap.

@nlemoine quick question, do you mostly indent ssh config with 2 or 4 spaces? I've noticed the indentation isn't consistent in the pr description.

ping @nlemoine

do you mostly indent ssh config with 2 or 4 spaces?

Sorry, that's just a typo mistake.
Thanks for the review. I'll make the changes you requested.

Just added your suggested change.
Also added a tab before "sub" config lines to increase readability so the config will look like:
Host tahoe
	HostName tahoe.com
	Port 1234

Finally added test.

Just noticed you're using two spaces. The last commit fixes this.
BTW, in your parse method, the 2 spaces end up in the after property of the previous line object. It would make more sense to use the before property as the object is representing a line.

Good point, I'll make the change after this pr.

v1.1.3 released

Thanks! 👍


Cannot start Hyprland in VM

Outside of root it gives the error:
Couldn't query the DRM FD! terminate called after throwing an instance of 'std::runtime_error'   what():  wlr_backend_get_drm_fd() failed! Aborted (core dumped)
while in root I get terminate called after throwing an instance of 'std::runtime_error'   what():  XDG_RUNTIME_DIR is not set! Aborted (core dumped).

This is in OpenSUSE VM.
I used both Hyprland and WLR_RENDERER_ALLOW_SOFTWARE=1 Hyprland.
I've seen people saying "Don't use a VM". But that really shouldn't be an plausible option

seems like gpu drm error for me.

seems like gpu drm error for me.

Seems like it, however every single person who has ran this in a VM (according to the Issues page) has been getting this error.
Doesn't that mean the issue can't be on our side and has to be a bug that needs to be solved?

many people have ran hl in a VM with success.

try starting sway and seeing if that works.

Running sway just gives this:

Are you trying to run Hyprland while on GNOME or..?

Yes, Should I not be doing this?

Are you trying to run Hyprland while on GNOME or..?

Yes, Should I not be doing this?

No. Run Hyprland from TTY. Did you even read the wiki?

I did, must've looked over it, oh lord

Are you trying to run Hyprland while on GNOME or..?

Yes, Should I not be doing this?

No. Run Hyprland from TTY. Did you even read the wiki?

I did, must've looked over it, oh lord

I appear to be getting the same error while running in root, outside of root I get this:

You aren't supposed to run hyprland as root

You aren't supposed to run hyprland as root

besides the point, it also doesnt work outside of root.

Are you running it via WLR_RENDERER_ALLOW_SOFTWARE=1?

if by that you mean running WLR_RENDERER_ALLOW_SOFTWARE=1 Hyprland then yes.

is polkit or seatd installed?
seatd:
check if seatd service is enabled
check if your user is inside seat group.

I'm using polkit, should I be using seatd?

is polkit or seatd installed? seatd: check if seatd service is enabled check if your user is inside seat group.

As I've repeated 20 times, this entire issue is arising because you're using arch without knowing how to use arch.

of course it is.
As I've repeated 20 times, this entire issue is arising because you're using arch without knowing how to use arch. Or any other babrebones distro, for that matter. I can guarantee you that if you'd set up an Endeavour / Manjaro / etc VM it would magically work.

arch? I'm on OpenSUSE, I just followed the official Hyprland install manual which recommended I use OpenSUSE which luckily enough I am on.
I could open a Manjaro VM if you want me to, sure, but I don't know why you assumed I was on arch.

arch? I'm on OpenSUSE, I just followed the official Hyprland install manual which recommended I use OpenSUSE which luckily enough I am on.

where do we recommend any distro?

I was opposing adding OpenSUSE to this list precisely because of that. No one from the hyprwm team uses SUSE, but the Suse contributor insisted.
Nobody here is able to provide any Suse support, we've never used it.
Hyprland works fine in a VM, provided you pass the software rendering flag and have everything config'd properly.

I don't know why you assumed I was on arch.

because 99% of our users are either Arch or Nix

arch? I'm on OpenSUSE, I just followed the official Hyprland install manual which recommended I use OpenSUSE which luckily enough I am on.

where do we recommend any distro?
I was opposing adding OpenSUSE to this list precisely because of that. No one from the hyprwm team uses SUSE, but the Suse contributor insisted.
Nobody here is able to provide any Suse support, we've never used it.
Hyprland works fine in a VM, provided you pass the software rendering flag and have everything config'd properly.

I don't know why you assumed I was on arch.

because 99% of our users are either Arch or Nix

I see, I'm sorry for causing you any trouble.
I'll be trying out with manjaro now and closing this issue
If anyone is reading this and trying it figure out their issue, sorry you've come to the wrong thread.
Have luck figuring it out :d

@vaxerski
Sorry for @ but CMake (git clone --recursive https://github.com/hyprwm/Hyprland) requires logging in, while password authentication was removed back in 2021

it does not. what the hell are you on?  It's a public repo...

According to my Manjaro machine it's... not...? I'm confused

hyperwm

hyperwm

Bruh I really jut typed that wrong 5 times without noticing, sorry.

also on manjaro you have the AUR. yay -S hyprland-git

also on manjaro you have the AUR. yay -S hyprland-git

I'm aware, I've been using yay.

Trying to turn on 3D acceleration, I turned on 3D acceleration in VBox and successfully got into Hyprland.

I've had similar errors before, I found references here .
Hope that helps.

Trying to turn on 3D acceleration, I turned on 3D acceleration in VBox and successfully got into Hyprland.

That worked!
Thanks!

Trying to turn on 3D acceleration, I turned on 3D acceleration in VBox and successfully got into Hyprland.

I've had similar errors before, I found references here .
Hope that helps.

大佬，牛逼


Correcting false references to complete and abandon.

#sign-off

@spelluru: I'm sorry - only the author of this article, @axisc, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

#sign-off


Why do we need FindEIGEN3.cmake ?

I'm having a hard time understanding why do we need FindEIGEN3.cmake
Can't we rely on the standard CMake lookup process and just do find_package(Eigen3 CONFIG) ?
Eigen3 comes with an Eigen3Config.cmake file.
By the way, I'm asking this question because I'm trying to add ignition-math as a Conan package: https://github.com/conan-io/conan-center-index/pull/3215

If I recall correctly, it was only (relatively) recently that Eigen3 started providing a cmake config-file. The official debian package for Eigen3 on one of the earlier platforms that we needed to support did not provide the config-file.
I don't remember which platform was missing the config-file, but if we no longer support it, then we can consider getting rid of the FindEIGEN3.cmake find-module.

I don't remember which platform was missing the config-file, but if we no longer support that platform, then we can consider getting rid of the FindEIGEN3.cmake find-module.

I guess the latest Ubuntu LTS without an Eigen3Config.cmake was Ubuntu 14.04 Trusty, see https://github.com/ros/cmake_modules/issues/25 . However, if we drop the FindEIGEN3.cmake , where will be the pkg-config-related function ign_pkg_config_entry called?

@traversaro why do we need any pkg-config functionality?

All the ignition libraries generate .pc files, and so they need to know the pkg-config info of their dependencies, so they can generate correctly the Requires: line of the generated .pc . I do not need this functionality, but this is what is implemented now.

I see. I wonder who is using the pkg-config feature or why do we support it.

Great point about pkg-config. The ign_find_package(~) command has some arguments to provide it manually, but it really is simpler to keep it all in one place.
Is there any problem with the FindEIGEN.cmake file that would motivate us to remove it? If it's causing collisions with other find-modules, then we could consider renaming it to something like FindIgnEigen.cmake.

I see. I wonder who is using the pkg-config feature or why do we support it.

We definitely have users who prefer pkg-config over cmake because pkg-config is considered more portable between different build systems, and not all of our users like to use cmake.

Is there any problem with the FindEIGEN.cmake file that would motivate us to remove it? If it's causing collisions with other find-modules, then we could consider renaming it to something like FindIgnEigen.cmake.

See: https://github.com/conan-io/conan-center-index/pull/3268#issuecomment-716830374

I don't know what that reviewer's concern is. Packaging and distributing cmake find-modules for non-cmake dependencies is considered good practice.
The only issue I can think of is if our find-modules conflict with another package's find-modules and someone wants to use both our package and the other package as dependencies for the same project, and the find-modules exhibit critically different behaviors.

I think that the question here is "Why are these FindXXX.cmake files part of ignition-cmake and not part of ignition-<lib>?"
The reviewer's concern is that when packaging ignition-<lib>, FindXXX.cmake can fail, in which case one would have to patch and repackage ignition-cmake.
ignition-cmake seems perfectly suitable to store macros that are used across all the different libraries. However, I'm not convinced that it should contain .cmake scripts to find libraries that are specific to each ignition project.

The reviewer's concern is that when packaging ignition-, FindXXX.cmake can fail

This is what I'm lost on. What does it mean for FindXXX.cmake to fail? Does it mean calling find_package(XXX) from cmake fails to find package XXX or is there some other meaning of failure that I'm not thinking of?
If that's what's meant by fail, then that's perfectly normal. find-modules are designed to fail gracefully when the desired package is not available. Cmake itself is distributed with lots of find-modules for packages that users might not actually have, like boost.
I wonder if there may be some confusion here between the nature of a find-module and a config-file. Config-files are meant exclusively for packages that are definitely installed, but that's not what we're distributing here. We're distributing find-modules which are redistributable cmake modules whose job is to sniff around for the presence of a package.
I can agree that there's a fair debate to be had about whether the "best" place for these modules would be ignition-cmake or if it would be the respective ignition libraries that depend on them. The decision to put them all in ignition-cmake was based on primarily these factors:

It's easier to maintain all the heavy lifting related to cmake in one repo. The downstream packages don't need to do anything special related to cmake except declare their dependencies and name their libraries.
If multiple downstream packages share a dependency, we only need to have one copy of the find-module for it, here in this repo.
We only need to worry about putting one path into CMAKE_MODULE_PATH. If every downstream package hosted its own find-modules, that variable could get bloated quickly. This isn't a terrible problem, but I felt it would be cleaner this way.

The only downside I can think of for putting the find-modules in ignition-cmake is that we need to bump the minor version of this package any time a downstream package takes on a new dependency. This happens rarely enough that it's never been a bother for us.

tl;dr: find-modules are just another type of cmake module, just like the cmake modules that provide functions or macros. They don't have any packaging dependencies or requirements besides cmake.

this conversation seems to have reached a stopping point. I'll close for now; please reopen if there are still concerns


Anton and CLI-Clock JS2 clocks display "0:00" every morning.

Every morning the Anton clock displays "0:00"
Same with CLI-Clock JS2, the flashing cursor is not displayed.
With both the date is fine, only the time is "frozen".
After going to settings and back time is updated again.

Do you have any other apps/widgets installed?
Because I don't see that here with the Anton clock. It almost feels like at midnight something is calling 'clearInterval()' which would kill all active timers on the watch

Yes, I have both the "Pedometer widget" and "GPS widget" active.

Ok, and that's it? I've just set up a clock with the default apps plus pedometer and gps widget and we'll see what happens

I also have the default "Bluetooth ID", "Bluetooth" and "Battery level" widgets.

If you connect with the IDE, does it show a FIFO error?

Just to confirm, I have a watch set up with all those things installed and I haven't ever seen the clock displaying 0:00 in the morning.
If you connect with the App Loader and go to 'My Apps' do you see any other apps listed at all? Maybe if that's all you have try clicking the 'Install Default Apps' button in 'About' in the App Loader to reset it to a 'factory' state and see if that fixes it.

It is now fixed after doing a 'Install Default Apps'.
Thank you !

I think I found the culprit after reinstalling QAlarm the problem reappeared.
qalarmcheck.js does :
clearInterval();
...
And re-executes itself via :
if (nextAlarms[0]) {
setTimeout(() => {
eval(require("Storage").read("qalarmcheck.js"));
load("qalarm.js");
}, nextAlarms[0].t - t);
} else {
// No alarms found: will re-check at midnight
setTimeout(() => {
eval(require("Storage").read("qalarmcheck.js"));
}, 86400000 - t);
}
Also shouldn't it be clearTimeout/setTimeout  or clearInterval/setInterval ?
It seems they are technically interchangeable but for clarity it would be better to use them together.

Great, thanks for that! That sounds like it then! Just fixed it with a change on the development app loader.
What is it about the Q Alarm that's better than the normal one out of interest? It feels like there's an awful lot of code copied from the main Alarm app - like maybe the changes should have just been rolled into that instead...

In Q Alarm being able to configure a day of the week for the alarm is nice.


Middlewares support

Hey.
I really like react-easy-state, it is easy enough to work with, simple, clean and not messy like redux or mobx.
One thing i really liked about redux is the fact you can pass middlewares, for example I can pass an error-logger middleware which logs all new state changes and in case of an error in the users browser i take a snapshot of all the stores, the input and operations the user did and try to recreate it to fix the bugs.
Are there plans for adding middlewares in the future or should I just wrap all my stores and call one function that does what I need instead ?
const { store }  = 'react-easy-state'

const UserStore = store({
    name:'',
    lastName:''
})

const OtherStore = store({
    otherName:'',
    otherLastName:'',
    updateUserName:function(name){
        console.log('updating with name', name)
        OtherStore.name = name
    }
})

const loggerMiddleware = (...args) => {
    console.log(`this is logger middleware`, args)
}

const otherMiddleware = (...args) => {
    console.log(`this is other middleware`, args)
}

// if array, map on it, if object get keys and map on it
const map = (toIterateOver,func) => {
    return Array.isArray(toIterateOver) ?
        toIterateOver.map(func) :
        typeof toIterateOver === 'object' ?
        Object.keys(toIterateOver).map(func) :
        void(0)
}

// apply middleware func
const applyMiddleware = (middlewares, store, prop)=>{
    // copy old function
    const oldFunc = store[prop].bind(null)
    // overwrite function to apply middlewares, then, call original function with original args
    store[prop] = async function (...args){
        console.log(arguments)
        for(let middleware of middlewares){
            await middleware(...args)
        }
        oldFunc.call(null, ...args)
    }
}

// pass middlewares and stores
const createStores = helperMapFunc => (...middlewares) => (...stores) => {
    // map on stores
    helperMapFunc(stores, storeObject=>{
        // map on store props
        helperMapFunc(storeObject, prop=>{
            // if store has own prop and it is func apply middlewares
            storeObject.hasOwnProperty(prop) && typeof storeObject[prop] === 'function' && applyMiddleware(middlewares, storeObject, prop)
        })
    })
    // return stores for usage
    return {
        ...stores
    }
}

export default createStores(map)(loggerMiddleware, otherMiddleware)(UserStore, OtherStore)

Do you have any other use case for middlewares apart from devtools? I devtool is already in the making (I am super slow with it because of my other projects). It will have proper timetravel, logging, session replay support - like Redux.
Easy State v5 is already prepared for a devtool, it just needs a filtering and displaying component. You can test out the raw data stream with view(Comp, { devtool: console.log }). In this case console.log plays the role of a very primitive devtool.

Good to know, I added an example of something simple with applying middlewares, but sure, I will try the devtool, thanks and keep up the good work man!

Hey, using react easy state for the first time here, and am indeed finding it easy.
I have a project which is offline-capable, and needs to persist state between sessions. A middleware to bind to localStorage would be nice :)
Thanks @yuraxdrumz for the code, i'll take a look

@walidvb You don't need middlewares for that. Easy state is a thin wrapper around the observer-util which can be used to create more general reactions (not just for React components). This one synchronizes a store with localStorage on every change of it.
import { store } from 'react-easy-state'
import { observe } from '@nx-js/observer-util'

const myStore = store(JSON.parse(localStorage.getItem('MY_STORE')))

observe(() => {
  localStorage.setItem('MY_STORE', JSON.stringify(myStore))
})

great to know that, thanks!

I think it is worth mentioning your other library, which does this, as well as handle params:
(also mentioned in #39)
PS: still need to check how your localStorageKey there isn't overridden in case of multiple storages, but haven't really taken a look yet :)
In any case, you're making a huge game changer!!


Package Game Error

Hello,
When I try to package the game for windows I get the following error, is this error known to you and do you know how I can fix this?
UATHelper: Packaging (Windows): ERROR: Expecting to find a type to be declared in a module rules named 'Vitruvio' in UE5Rules, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null.  This type must derive from the 'ModuleRules' type defined by Unreal Build Tool. PackagingResults: Error: Expecting to find a type to be declared in a module rules named 'Vitruvio' in UE5Rules, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null.  This type must derive from the 'ModuleRules' type defined by Unreal Build Tool.
When I add the Vitruvio plugin to the plugin folder of the project I get the following error upon creating the package:
PackagingResults: Error: System.ArgumentException: An item with the same key has already been added. Key: Vitruvio

Hi @MrZorca. Thanks for reaching out! Wich Vitruvio version did you use when you got this error message?

Hi @bneukom, I am using version 1.2 on engine version 5.0.3. I might have fixed it by moving the Vitruvio plugin folder into the project locally instead of having it in the Engine's plugin folder.
Because after that I was able to export it with good result.

Thanks! I can reproduce it as well now. We will look into it. I'll let you know once we have a fix.

Hi @MrZorca
This PackagingResults: Error: System.ArgumentException: An item with the same key has already been added. Key: Vitruvio error actually happens if you have multiple Vitruvio installations (for example on in the Engine/Plugins/ folder and one in your Project or two in the Engine/Plugins folder).
But there was another problem with packaging as well. It should be fixed with the latest release https://github.com/Esri/vitruvio/releases/tag/v1.2.1
Thanks for bringing this to our attention!
Let me know if everything works now.

I consider this as fixed. Please let us know if you still encounter any issues.


Better Typescript support for Content Source Maps

Describe the bug
Currently encodeGraphQLResponse function will accept a GraphQLResponse object and return a GraphQLResponse type as well. Most Typescript usage of GraphQL will want to benefit from GraphQL Typed responses, like with libraries like https://gql-tada.0no.co/. Currently GraphQLResponse will be helpful to validate "extensions" field, but should not override the "data" property type.
Ideally if encodeGraphQLResponse can use a type predicate and augment it (intersect?) with extensions field, that would preserve the original response type and let the encoder do it's thing.
GraphQL responses come in different flavors, for example urql uses OperationResult type that returns all the usual suspects (data, extensions, operation, etc), as long as a response has extensions and data fields, it should be acceptable as an input for encoding.
https://spec.graphql.org/October2021/#sec-Response-Format

Thanks for catching that :) fixed as part of the latest release 🎉


[Bug]: Dropdown component does not respect the [value] binding when navigating with the keyboard

Describe the bug
Angular 13+
@abgov/angular-components: 2.2.0
@abgov/web-components: 1.11.0
When binding an object to a dropdown. If you use keyboard navigation, the label gets set as the value instead of the actual value. Also, keyboard navigation is just simply broken, ie. can't use up and down arrows to change selection.
Provide Code
monthCtrl = new FormControl();

months = [
    { number: 1, name: 'January' },
    { number: 2, name: 'February' },
    { number: 3, name: 'March' },
    { number: 4, name: 'April' },
    { number: 5, name: 'May' },
    { number: 6, name: 'June' },
    { number: 7, name: 'July' },
    { number: 8, name: 'August' },
    { number: 9, name: 'September' },
    { number: 10, name: 'October' },
    { number: 11, name: 'November' },
    { number: 12, name: 'December' }
  ]

{{ monthCtrl.value | json }}
<br />
<goa-dropdown goaValue name="selectMonth" [formControl]="monthCtrl">
  <goa-dropdown-item
    *ngFor="let month of months"
    [value]="month.number"
    [label]="month.name"
  >
  </goa-dropdown-item>
</goa-dropdown>

To Reproduce

Use the above code in the Angular demo.
Select the dropdown with a mouse,
Select an option. Notice that the displayed value is the actual [value] property
Hit Tab, it should auto select the same dropdown. Notice that the displayed value is now the [label] property - First Problem
Hit space to open the dropdown
Try to navigate using the arrow keys, you can't - Second Problem

:tada: This issue has been resolved in version 4.0.0-alpha.169 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.0.0-alpha.206 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.0.0-alpha.23 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.0.0-alpha.19 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.12.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.12.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.4.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.13.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.5.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.13.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.13.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.13.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: swc_ecma_parser 0.137.5

Hi,
Hope it's okay to open a PR like this, since https://github.com/denoland/deno_ast/pull/148 has been open/approved for about a month now, and 0.137.5 of swc_ecma_parser has been released in the meantime.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

We can't upgrade because we're blocked by https://github.com/swc-project/swc/issues/7621 (https://github.com/swc-project/swc/pull/7692). I've been working on #148 locally

Oh sorry, I was not aware of that.
Please excuse the noise and feel free to close this PR.

It was my bad for not updating the PR with the status. Usually an swc upgrade is a big task because it needs to be tested with all the downstream Deno crates and that often requires a few code changes. In this case, I reverted the PR in swc that was causing some trouble so that we can proceed with the upgrade.


ISPN-13812 Jackson Databind <IP_ADDRESS>

https://issues.redhat.com/browse/ISPN-13812

Integrated into main, thanks @tristantarrant !


Add CITATION.cff

https://citation-file-format.github.io

First draft of CITATION.cff: https://github.com/nilskre/biocypher/blob/PyOpenSci_review/CITATION.cff.
Questions:

Is it alright like this?
Should this file also include all the authors of the paper (at the moment it contains Sebastian and Julio in the author field)?


Support concurrent on DefaultClassResolver

The DefaultClassResolver is not thread-safe.
I will propose to support concurrent using ConcurrentHashMap on the DefaultClassResolver.
WDYT?

@lukaszlenart Thanks for your review!
I've fixed your comments.
Please review again.
Thanks!

Do you want to port this fix into previous branches?

LGTM 👍

Thanks for merging!

3.2.5 is out and under way to the Central.

Wow, It's great!!


Add npm install to the instructions of every new project

This change will add the following to every README.md os every new project:
...
First, run install the dependencies:
npm install

Then, run the development server:
...

I know this is common knowledge for a front end dev. But the README.md should provide full instructions on how to run the app.
Here is an example of how the new READMEs would look like:


Move spring-social-google into spring-projects

Hi @GabiAxel
I sent a spring-boot PR (https://github.com/spring-projects/spring-boot/pull/2548) to add spring boot starter for spring social google. But since spring-social-google is not spring projects, they put it on-hold.
Since spring social already has Twitter, Facebook, LinkedIn, I suggest to move spring-social-google into spring-projects. And this project will have better support from spring team. It will be very trivial code changes, since the code base follows the exact same pattern of other spring social projects.
What do you think?
Thanks.

Greetings @jiwhiz ,
Makes sense to me, but it's not really my decision.
@habuma - what do you say?

Thank you @GabiAxel :)

Be interesting to see this moved over, for sure.

Please note that I wasn't suggesting that moving this project to the spring-projects organisation was necessarily the right thing to do. The other option is to update the group id so that it isn't in the org.springframework namespace. This would make it clear that this is a third-party Spring Social module rather than one that's developed and supported by the Spring team.

@GabiAxel Hi!

Before moving it over, I'd like us to hook into Travis and Coveralls, just to get the quality assurance taken care of.  After that, I don't see it being a problem.

Are there many people currently maintaining this? I would like to join as a contributor.


Vec::truncate_par

I have some code that truncates a large Vec and I found that the drops were very costly. It would be nice to see a truncate_par in Rayon.
I use the following unsafe code to drop the tail of the vec in parallel:
self.par_iter_mut()
    .skip(len)
    .for_each(|r| std::ptr::drop_in_place(r));
let n = std::cmp::min(self.len(), len);
self.set_len( n );

Note that skip is not as efficient as it could be (#352), and your example also has a problem with panic safety.  If any of those drops panic, then the vector's length will not be adjusted, and the vector's own drop will try to re-drop some items!
You can see how rayon::vec::IntoIter deals with this here.
Parallel truncate seems kind of niche to me -- we should think if there may be a more general approach.  A parallel drain would let you write something like vec.par_drain(len..), but we need stable RangeArgument to allow different range types.  (Or we could create our own equivalent to RangeArgument.)

I agree that a parallel drain is a better and more general solution.


Add validator info boilerplate

Added:

Guide to add info to list.
Example entry in JSON.
img directory - feel free to restructure, not sure if there's a more standard format for where these go.

lgtm


Create Update BIOS on S2600WFTR via UEFI

I need to go through this process and gather media. Images... Videos...
Found a comment on a thread that you can embed mp4 videos directly

Waiting on Andy to get me into one of the servers in the testbed

Look at notes and revisions for M50CYP and make any necessary changes


Prevent crash when VTParameters::subspan is out of range

Summary of the Pull Request
There are certain escape sequences that use the VTParameters::subspan
method to access a subsection of the provided parameter list. When the
parameter list is empty, that subspan call can end up using an offset
that is out of range, which causes the terminal to crash. This PR stops
that from happening by clamping the offset so it's in range.
References and Relevant Issues
This bug effected the DECCARA and DECRARA operations introduced in
PR #14285, and the DECPS operation introduced in PR #13208.
Validation Steps Performed
I've manually confirmed that the sequences mentioned above are no longer
crashing when executed with an empty parameter list, and I've added a
little unit test that checks VTParameters::subspan method is returning
the expected results when passed an offset that is out of range.
PR Checklist

[x] Closes #15234
[x] Tests added/passed
[ ] Documentation updated
[ ] Schema updated (if necessary)

Any chance this also stealth fixed #12378?

Any chance this also stealth fixed #12378?

No, but it looks like it was fixed a while ago. Technically the original crash was fixed by PR #12432, although it was still throwing an internal exception at that point. That exception was later fixed by PR #14093 I think. So the bottom line is you can probably close that issue now.

Wow thanks for the diligence!


eslint: Enforce more existing conventions

Thanks for this @edg2s. The list of eslint additions is a bit long so I haven't gone through all, however I trust your judgement on this. The code changes all look good to me and consistent with the existing style.

@all-contributors add @edg2s for tool

Thanks. If anything causes bother you can just remove the rule, or put in an inline disable directive: https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments


nixos/tor: authorizeClient is deprecated for v3 hidden services

Describe the bug
The services.tor.hiddenServices.<name>.authorizeClient option, when used, doesn't work and causes an error message.
journalctl -u tor -e gives the following lines:
[warn] Hidden service option HiddenServiceAuthorizeClient is incompatible with version 3 of service in /var/lib/tor/onion/www
[warn] For v3 onion service client authorization, please read the 'CLIENT AUTHORIZATION' section in the manual.
[warn] Failed to parse/validate config: Failed to configure rendezvous options. See logs for details.
[err] Reading config failed--see warnings above.

Evidently the new v3 hidden services need a new way to authorize them. I'm not sure exactly how they work.
To Reproduce
Steps to reproduce the behavior:
1.
services.tor.enable = true
services.tor.hiddenServices.www = {
    map = [ { port = 80; } ];
    authorizeClient = {authType = "basic"; clientNames = ["AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"]; }; };
};

sudo nixos-rebuild switch then journalctl -u tor -e

Expected behavior
I expected the hidden service to work with the given options.
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

system: "x86_64-linux"
host os: Linux 5.4.23-gnu, NixOS, 20.03beta591.99a3d7a86fc (Markhor)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.2
channels(root): "nixos-20.03beta591.99a3d7a86fc"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: nixos.tor
# a list of nixos modules affected by the problem
module: security.tor

Relevant: https://github.com/micahflee/onionshare/wiki/Stealth-Onion-Services
https://github.com/micahflee/onionshare/issues/697