Unable to connect in certain network conditions

Describe the bug
We're running into an interesting failure mode where one of our team usually can't connect to livekit. I've also managed to reproduce it once when my internet connection was being a little flakey and by vpn-ing to try to recreate the same conditions.
The symptoms vary slightly but the most common mode seems to be that the publisher connection connects just fine and we see her video for several seconds, but the subscriber connection never connects, so she never sees any video and after a few seconds, livekit times out the connection and gives up.
We've got logs, webrtc-internals dumps and tcpdumps for both sides now and have been comparing them. We've turned off everything other than UDP on the server for simplicity. I see the server sending stun requests but the client (browser) never sees any of them, I think this is because the first one get dropped by the firewall as expected until the client sends a stun request, then once livekit sends a response to this request, it stops sending requests. Once the browser sees a response (or a few responses), it sends the DTLS Client hello, but we never see a DTLS Server Hello from livekit. It seems to be stuck sending neither data nor stun requests.
Another notable thing is that the only entry in the livekit server logs for the subscriber connection is skipping  negotiation, trying again later. This happens right after the websocket connects.
I would need to strip identifying information out of the logs & packet dumps to upload them but I can do this if it would help.
Server

Version: [1.4.5]
Environment: [reproed on both EKS and running the livekit binary on an EC2 box]

Client

SDK: [js]
Version: [1.13.2]

To Reproduce
Unfortunately this happens fairly reliably to one of our team members and we've not seen it anywhere else, apart from me repro-ing it once when my internet was being flakey and I was VPN-ing to try to reproduce the same conditions, so it does appear to be related to connection quality in some way.
Steps to reproduce the behavior:

Connect to a livekit room
Other people in the room see your video, but you don't see anything. After a few seconds, your video freezes and you are disconnected from the room

Failing scenarios:

Chrome (wifi)
Firefox 117 (wifi)
Firefox 177 (wired connection)

Working scenarios:

Mobile firefox (on the same wifi with mobile data disabled)

Expected behavior
Video & audio both ways
Screenshots
Webrtc-internals dumps from the client
Publisher connection (working):

Subscriber connection (failing):

All of the packets sent by our livekit server on the candidate pair highlighted in yellow:

Additional context
Add any other context about the problem here.

@dbkr Thank you so much for the details.
For the SUBSCRIBER peer connection, ClientHello is sent by the LK SFU (in the down stream direction SFU is the DTLS client and browser is the DTLS server). Are you seeing ClientHello in the other direction? Maybe the ICE role was not as expected and that ended up deciding DTLS Client/Server role.
Surprising that mobile FF works on the same WiFi.
Would you be able to share the server logs? We do not log the ICE role, but wanted to check if there are some other clues.

Interesting: in the tcpdump the two ClientHellos are definitely coming from the client - in this case the client's address ends :f029 and the server's ends :2a90. This is a dump from the client of the subscriber connection:

...and the same for the publisher connection:

Here are the server logs, which indeed confirm that the publisher connection is the one that got the candidate with port 59699

@dbkr on the publisher side, do you start publishing as soon as signal connection is established? without waiting for the subscriber connection?

I'm not certain about this, although we just use the livekit js client library with components-js, passing the identifiers of the local tracks we want into the room (https://github.com/vector-im/element-call/blob/livekit/src/livekit/useLiveKit.ts#L71) so I  believe we'll be doing whatever the default is.

Sorry @dbkr , I must be missing something

Not seeing server logs. Is GH not allowing the attacment?
In the screen shot, I see ClientHello originating from client in one case (the publisher peer connection - the bottom screen shot) and from server in the other case (top screen shot)

Oops, sorry - I think I just forgot to actually attach it. Fixed now.
And I just re-read what I wrote and I made it sound like I meant the ClientHello was coming from the client in both cases – what I meant was that there are two ClientHello packets in the subscriber connection (presumably a retry) that both come from the client, and in the publicher connection come from the server.

@dbkr  The subscriber side's traffic looks like ice-lite that only response to the client but no request sent, do you enable it in sfu?

ICELite is here https://github.com/livekit/mediatransportutil/blob/e81fd5f6fb3faa90900f7d9b0a7a2fade4fa6ca1/pkg/rtcconfig/config.go#L35, it defaults to false and you are not enabling it in your config. So, that's probably not it.

Thank you for the server logs @dbkr. Any chance you can set log level to DEBUG and provide a sample. The attached logs show nothing about SUBSCRIBER peer connection at all.

Thank you so much @dbkr . Nothing revealing in those logs :-( The ICE candidates all look similar in both peer connections.
Everything is as expected
Publisher ICE agent on server side -> controlled
Subscriber ICE agent on server side -> controlling
But, ICE did not connect at all on subscriber side. Logs show server adding some peer reflexive candidates (those are added when server sees a STUN packet from addresses it does not know, i. e. addresses that were not added via negotiation). Unfortunately, there are no logs of STUN binding send/receive (believe Pion has a TRACE level logs which might show that, have to check).
Publisher peer connection logs look very similar though. There are peer-reflexive candidates added there as well. But, ICE goes to connected state using some IPv6 candidate.
So, it looks like STUN binding requests/responses are not happening properly. That does not jive with the pcap which showed request/response. Will stare at it more.

@dbkr Have one more request. Pion has a trace level log. Would you be able capture one at track level and share? Sorry, the last one did not reveal anything. Want to check if trace level has more interesting information. It logs candidates, STUN request/responses, etc.

Thanks for the new build with trace logging enabled - here's a log from it:
tracelogs-redacted.log
at first glance I don't see much more though, other than a few lines about ignoring mDNS candidates.
On this plus side, now we have a debug build running I can test any changes if you have any theories.

Apologies @dbkr . I am stumped by lack of any new detail. Let me spend some time and figure out why Pion trace is not working tomorrow and get back to you.

@dbkr Just confirmed that setting PionLevel to debug here shows the verbose logs with the latest master. If you could run with that, would be awesome!

Oh, we were setting the pion level to trace so that would be why! Here goes:
tracelogs2.log
I see pion transport logs in there now!

Not seeing verbose logs still @dbkr . I just ran this in my dev environment with PionLevel: "debug" setting and attaching the log. You can see logs like Inbound STUN/Pinging all candidates/Found valid pair. Was hoping to see that level of verbosity to check what ICE candidates are exchanged and where the SUBSCRIBER side peer connection drops off.
log.txt

Huh, I guess something must have gone wrong with my building of the binary. Either way, here's a log from a fresh binary. This is also a different instance and so testing against the livekit tester which also does fail like this:

logs20230913.txt
Hopefully this should be a simpler reproduction case if anything, and this definitely has the log lines you mentioned.

Another development: we tried with ice-lite enabled out of curiosity and this works! Seems like it must be some bug in pion ice controlling that's triggered in certain network conditions. I think we can safely turn on ice-lite on our prod servers to work around this as we have publicly accessible ports, so this somewhat lowers the priority of this issue from our PoV.

Another development: we tried with ice-lite enabled out of curiosity and this works! Seems like it must be some bug in pion ice controlling that's triggered in certain network conditions. I think we can safely turn on ice-lite on our prod servers to work around this as we have publicly accessible ports, so this somewhat lowers the priority of this issue from our PoV.

Does not look like it @dbkr . In the logs you shared using the LK connection test, the subscriber peer connection actually connects (where should be ICE controlling) and publisher peer connection is not. That's why you see the track publish failures in there.
In the publisher peer connection, I am not seeing any STUN pings coming from the client at all. Server pings a few candidates, but does not see replies. Neither does it see incoming STUN pings from the client.
In the case of connection test, each step opens either the subscriber or publisher peer connection and tests some functionality. Because of the sequencing, the subscriber peer connection is opened first and then publisher peer connection. Wondering if the second peer connection is the one affected always.


SplitButton Background color not updating when IsEnabled is false

Describe the bug
The SplitButton Background color does not update to disabled color as a standard Button background color will change when the button IsEnabled is false.
Steps to reproduce the bug
Add the xmlns:muxc="using:Microsoft.UI.Xaml.Controls" namespace to a XAML page.
Add a SplitButton to XAML page
<muxc:SplitButton Background="#FFEAEAE0" Content="I am a SplitButton" Foreground="Black" IsEnabled="False" Height="48" Width="177" />
Add a Button to XAML page

View the page in designer window or run the application.
Expected behavior
The SplitButton background color should be the same as the Button background color since IsEnabled for both are "False".
Screenshots

NuGet package version
No response
Windows app type

[X] UWP
[ ] Win32

Device form factor
Desktop
Windows version
May 2020 Update (19041)
Additional context
No response

We have SplitButtonDisabledBackground resources, but they are simply not used. The control doesn't have a disabled state that could use them at all...


mediainfo: 23.06 -> 23.07

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/mediainfo/versions.
meta.description for mediainfo is: Supplies technical and tag information about a video or audio file
meta.homepage for mediainfo is: https://mediaarea.net/
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 23.07 in filename of file in /nix/store/ff59j95wpiamkzq1pkkckd0w5fq78lgk-mediainfo-23.07

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath
aaxtomp3
deepin.dde-file-manager
deepin.dde-gsettings-schemas
mediainfo

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ff59j95wpiamkzq1pkkckd0w5fq78lgk-mediainfo-23.07 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A mediainfo https://github.com/r-ryantm/nixpkgs/archive/00b3be8bd746c360ca4df4169c9e94b1e77a4cd0.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ff59j95wpiamkzq1pkkckd0w5fq78lgk-mediainfo-23.07
ls -la /nix/store/ff59j95wpiamkzq1pkkckd0w5fq78lgk-mediainfo-23.07/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages built:

aaxtomp3
deepin.dde-file-manager
deepin.dde-gsettings-schemas
mediainfo

Maintainer pings
cc @devhell for testing.

Just noticed the output from the bin is still saying 23.06, not sure if that's just an upstream issue.
./results/mediainfo/bin/mediainfo --version
MediaInfo Command line,
MediaInfoLib - v23.06

Just noticed the output from the bin is still saying 23.06, not sure if that's just an upstream issue.
./results/mediainfo/bin/mediainfo --version
MediaInfo Command line,
MediaInfoLib - v23.06

mediainfo needs to be updated after libmediainfo
https://github.com/NixOS/nixpkgs/pull/251817

@wineee is quite right, thanks for opening the appropriate PR! Thanks @khaneliman for picking up the discrepancy! :grinning:


Fix readme links

Some cleanup and updates to the documentation, after encountering some broken links as I worked through my initial setup.
I couldn't find the contributing guide, so I made a placeholder file for it.
I only just found #1430, but this PR would supersede that one.

@hlissner I wonder if you're interested in this kind of small document fixup, or if I should perhaps close the PR? (No worries on my end either way!)

Please see https://github.com/hlissner/doom-emacs/pull/1430#issuecomment-511127192


Streaming via ssh across clusters

🚀 Feature Request

I want to use streaming to access a remote datacenter via ssh with certain privacy-related permission.
Motivation

I want to use a separate cluster to store the dataset, and want to set the permissions for different images in the datasets for different users.
[Optional] Implementation

Cloud you provide some potential API or examples which might be helpful to this feature?
Additional context

Hi @gaow0007 , could you please explain your use-case a bit more in detail ? Currently, Streaming dataset support AWS S3, GCS blob Storage, and OCI blob storage which downloads the dataset on the fly onto a remote instance. Streaming Dataset automatically authenticates based on your cloud provider and provided authentication and perform either download/upload the shard files.

Sure.Considering that dataset is split into different partitions, and some users can access the entire datasets, however others only can access partial partitions due to privacy issues.
Additionally, is it possible to provide a ssh example to use streaming dataset to facilitate local-mode debug

Hey @gaow0007, support for sample-level permissioning for datasets is not currently planned on being supported by Streaming. Closing out this issue since it's been inactive for a while.


Fixed compatibility with NormalizerInterface

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

Project coverage is 82.55%. Comparing base (a81c894) to head (84c8422).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##                2.x      #28   +/-   ##
=========================================
  Coverage     82.55%   82.55%
  Complexity       57       57
=========================================
  Files             7        7
  Lines           149      149
=========================================
  Hits            123      123
  Misses           26       26

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


Supervision strategies and Error Recovery of Graph Actors

There are some external considerations that may lead to a graph actor panicking: persistence DB connectivity problems in particular, which are transient (but we still want to know about them).
The supervisor should be able to schedule actor rematerialisations in the future (perhaps this is better off handled by a helper actor, if a plugin for this isn't already available). It should receive "try waking this up again" messages for graph actors with some jittery exponential backoff (up to a maximum limit). We need some notion of "stability period" after which we consider an actor to have been successfully restarted. Behaviour at the maximum backoff should be to retry indefinitely(? maybe - tbd).
We should expose counters for any actors that we are rematerialising via prometheus - those numbers going up may be a signal that we need some operator oversight.
Finally, there's a gotcha in the current architecture if we do this. Currently a panicked actor will fail any stages that were under execution in fn; we assume we're recovering on system restart. For a transiently panicking graph, there may be an extant executor goroutine out there (with the PID of the panicked actor?) which still holds open a connection to fn. TBD: Should we (a) deal with failing those fired stages differently? (b) arrange it so that an executor goroutine can route a message to the new graph actor?

There's a few different failure cases that could lead to a graph actor panicking:

Actor fails to persist a message due to a DB connection error
Actor fails to persist a message due to an event marshalling error
An unexpected runtime error in the actor or its associated graph data structure.

The main issue I see with implementing a backoff strategy for 1) is that it breaks transactional semantics with respect to the flow client on the runtime side. Our model so far has been that flow graph topology changes are transactional, so that when the client appends a new stage the request either succeeds or fails after persisting state changes. Implementing a backoff policy for actor materialization could result in the server's graph actor and client's flow manifestations drifting away from what we have persisted to storage, leading to inconsistencies if the graph actor were to die. Also, it is unclear who would be responsible for retrying failed writes to the database (this is not currently implemented by the persistence plugin infrastructure).
I think there is value in maintaining the current transactional semantics since it provides consistency guarantees and makes it easy to reason about the state of flows. I therefore think it might be safest to fail-fast in case of transient DB connection issues and stop the actor. This would result in the client-side flow request timing out and the error bubbling up to the runtime to deal with in an application-specific way. It also means that we would need to mark (and persist) a graph/flow as failed/inconsistent, to prevent further mutations at a later point. A way to do this would be to have the persistence layer callback to the failed actor analogously to what Akka's onPersistFailure.
Regarding 2) and 3) I think again these indicate an inconsistent state of the actor after which further processing would be unsafe. Stopping the actor seems to me the safest way to deal with these cases as well.

Also related to this is https://github.com/fnproject/flow/issues/115


theme_fluent: MDL2-Icons v1.1.0 update

Context:
This PR adds MDL2-Icons asset font v1.1.0
This version offers 1150 glyphs.
Changes:

use font version 1.1.0 (based on FontForge version)
exchange ttf with oft font format
change themes ron file to meet CAMEL_CASE_CONSTNAMES

Contribution checklist:

[x] Add documentation to all public structs, traits and functions.
[ ] Add unit tests if possible
[ ] Describe the major change(s) in the CHANGELOG.MD
[x] Run cargo fmt to make the formatting consistent across the codebase
[x] Run cargo clippy to check with the linter

Thank you. Can you do me a favor I'm not happy to duplicate the whole showcase example for one specific use case like mdl2. Can you create a smaller example for mdl2, please.

Thank you. Can you do me a favor I'm not happy to duplicate the whole showcase example for one specific use case like mdl2. Can you create a smaller example for mdl2, please.

Oh sorry. It was to late yesterday. Please ignore the mdl2 example. This was only ment as internal testing source. No need to include this!

Thank you


Upgrade ErrorProne from 2.4.0 to 2.5.1 (FINERACT-1297)

see FINERACT-1297
but note FINERACT-1298

Review feedback from any other contributors on this? Any other committers willing to merge, maybe @thesmallstar ? I'll self merge this 48h.

Review feedback from any other contributors on this? Any other committers willing to merge, maybe @thesmallstar ? I'll self merge this 48h.


Expose LastLogin time for users

part 2 of https://github.com/rancher/rancher/issues/45926

deleting in favor of #11427


Add favorites to listing detail page

Acceptance Criteria

When I am on the listing detail page and I am logged in, I should see the option to favorite the listing
When I favorite the listing, then I should see the favorite button indicating the favorited state
When I unfavorite a listing, then it should go back to the unfavorited state

Notes

I think Google team supported on the Browse page but not on the listing detail page

Designs
https://www.figma.com/file/ymKHAWFxakuVvc1vNDAmnm/bloom-public-browse?node-id=817%3A7799

This looks good too!


Fixed readme badges for Insegel

I have fixed the broken image links for the badges! 🦉

@autophagy Oops! Done.


Slot default content doesn't get rendered

When I add default content to a slot in a component it doesn't get rendered because storybook-helpers renders some hidden stuff into the slot.
For example, I have a modal component which has a default slot that looks like this:
return html`<slot>${msg("Are you sure?")}</slot>`;

However, if I have a look at the component in Storybook the content doesn't get rendered. In the image below you see that between the lines there is no default Are you sure? text.

When I recreate that same story in Storybook without the use of storybook-helpers the text gets rendered just fine.

This should be fixed with the latest merge. I will deploy it early this week.

Awesome, thanks a lot. I'll give it a try when the new release is available. 🙌


module-docstring: The file has no module string

When editing .bazel files, getting this.

Most likely because there LSP is not configured properly.

Ah.... i forgot that i had this error before.
Simply add
"""
Some package description
"""

at the beginning of the file.
Or disable the linting rule.
https://github.com/bazelbuild/buildtools/blob/master/WARNINGS.md


Cannot set properties of undefined (setting 'namespace') 3.7.0 error

Could be a duplicate of #654. After recently changing to 3.7.0 we are encountering the following error:
2024-06-06T10:52:44.066Z | INIT_START Runtime Version: nodejs:18.v29 Runtime Version
2024-06-06T10:52:44.895Z | undefined ERROR _X_AMZN_TRACE_ID is missing required information
2024-06-06T10:52:44.896Z | undefined ERROR Empty or non-string trace ID provided
2024-06-06T10:52:45.750Z | START RequestId: 60bee989-dc24-514d-a1cc-b7524b09db45
2024-06-06T10:52:46.105Z	| ERROR	Invoke Error
{
    "errorType": "RequestError",
    "errorMessage": "Cannot set properties of undefined (setting 'namespace')",
    "code": "ERR_GOT_REQUEST_ERROR",
    "name": "RequestError",
    "stack": [
        "RequestError: Cannot set properties of undefined (setting 'namespace')",
        "    at captureOutgoingHTTPs (/var/task/node_modules/aws-xray-sdk-core/dist/lib/patchers/http_p.js:108:30)",
        "    at Object.captureHTTPsRequest [as request] (/var/task/node_modules/aws-xray-sdk-core/dist/lib/patchers/http_p.js:175:16)",
        "    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
    ]
}
2024-06-06T10:52:46.109Z | END RequestId: 60bee989-dc24-514d-a1cc-b7524b09db45
2024-06-06T10:52:46.109Z | REPORT RequestId: 60bee989-dc24-514d-a1cc-b7524b09db45	Duration: 359.46 ms	Billed Duration: 360 ms	Memory Size: 1024 MB	Max Memory Used: 137 MB	Init Duration: 1683.30 ms
XRAY TraceId: 1-666194fb-4d3d1850fcf803f9e905fdf7	SegmentId: 161caf1c19d1cbf2	Sampled: true

The code tries to bind the xray trace id to an outgoing http request.
import * as awsXRay from 'aws-xray-sdk-core'
import https from 'https'

const enableTracing = true

export function makeXrayHttps({ enableTracing }: { enableTracing: boolean }) {
    return enableTracing ? awsXRay.captureHTTPs(https, true) : https // <-- Most likely failing here
}

const xrayHttps = makeXrayHttps({ enableTracing })

The PR introduced the issue has been reverted by https://github.com/aws/aws-xray-sdk-node/pull/657
Please bump to the latest 3.8.0 with the fix.


[Python] Fix incorrect code escape in M2R

Fix https://github.com/Azure/autorest.python/issues/2967

No changes needing a change description found.

You can try these changes here

🛝 Playground
🌐 Website
📚 Next docs

@msyyc I can't approve my own PR, but LGTM :)


arch: arc: let zephyr run in normal mode of arc

This PR is initial implementation of some kind of TEE support for ARC.
As the TEE design/framework in zephyr matures,  more work will be needed.
It includes necessary commits to let zephyr run in normal mode of
arc processors equipped with SecureShield.
In this PR, zephyr can be built into:

imgage for secure mode (CONFIG_ARC_SECURE_FIRMWARE <- TRUSTED_EXECUTION_SECURE)

full access to system resource
full zephyr features are supported,  USERSPACE, stack protection

image for normal mode (CONFIG_ARC_NORMAL_FIRMWARE)

no mpu support in normal mode, i.e., no USERSPACE
to run this normal image,  it requires a secure bootloader or secure zephyr application to
boot, as when processor is reset, it's secure mode.

To show how normal zephyr application works with secure zephyr applicaiton, an example is provided in samples/boards/arc_secure_services,  more details, pls go to the README.rst of this example.

Codecov Report

Merging #9341 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master   #9341   +/-   ##
======================================
  Coverage    52.5%   52.5%
======================================
  Files         201     201
  Lines       25339   25339
  Branches     5293    5293
======================================
  Hits        13304   13304
  Misses       9945    9945
  Partials     2090    2090

Continue to review full report at Codecov.

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

@vonhust @ruuddw can you please rebase and drive to closure? thanks.

@ruuddw are you ok with this?

@nashif still work in progress, I've marked it DNM for now.

ok

@ruuddw  @vonhust  still relevant, if yes, please update and rebase?

@nashif @ruuddw  I just rebase ARC TEE support on zephyr latest code. We can start the review again.
But i met a small problem reported by CI,  Dependcy loop issuse in kconfig. This issue also made "make htmldocs". I already took a look at this issue, didn't find a quick fix. Any ideas or hints?

@ruuddw @abrodkin  I refactor this PR for 2.0  release. Although still very primitive,  it's a good start point for ARC TEE support

@vonhust is this PR abandoned?
If not, shall we move it to 2.1 release?

@vonhust is this PR abandoned?
If not, shall we move it to 2.1 release?

It not abandoned,  i am trying to make it 2.0 in the left 2-3 days

@vonhust is this PR abandoned?
If not, shall we move it to 2.1 release?

It not abandoned, i am trying to make it 2.0 in the left 2-3 days

Oh cool! @vonhust So sorry,
I saw the conflicts and the PR "age" but didn't see you actually are working on it.

There's remaining work to do, but this is a good start for people that want to experiment with this on ARC.
Let's get it into v2.0.

@vonhust have you addressed the latest feedback by @dbkinder ?

, but I don't see the changes actually pushed.

I made a force push, could you check that again?

Seems to me the fixes were pushed (but might be missing something @dkinder).

better to merge after PR #18079 and #18142

better to merge after PR #18079 and #18142

@vonhust please resolve the conflicts, after merging the above PRs.
Note that the review needs to conclude today, if this is to get to 2.0 release.

better to merge after PR #18079 and #18142

@vonhust please resolve the conflicts, after merging the above PRs.
Note that the review needs to conclude today, if this is to get to 2.0 release.

confilct fixed, ok to merge

better to merge after PR #18079 and #18142

@vonhust please resolve the conflicts, after merging the above PRs.
Note that the review needs to conclude today, if this is to get to 2.0 release.

confilct fixed, ok to merge

There is still a request-for-changes by @dbkinder.
@vonhust can this PR go into 2.0.0 regardless of what happens with #17767?

better to merge after PR #18079 and #18142

@vonhust please resolve the conflicts, after merging the above PRs.
Note that the review needs to conclude today, if this is to get to 2.0 release.

confilct fixed, ok to merge

There is still a request-for-changes by @dbkinder.
@vonhust can this PR go into 2.0.0 regardless of what happens with #17767?

There is no relation between this PR and #17767. I just dismissed dbkinder's request as i addressed his feedbacks. Let's go for merge

better to merge after PR #18079 and #18142

@vonhust please resolve the conflicts, after merging the above PRs.
Note that the review needs to conclude today, if this is to get to 2.0 release.

confilct fixed, ok to merge

There is still a request-for-changes by @dbkinder.
@vonhust can this PR go into 2.0.0 regardless of what happens with #17767?

There is no relation between this PR and #17767. I just dismissed dbkinder's request as i addressed his feedbacks. Let's go for merge

Yes. @dbkinder if there are still imperfections in documentation, we can definitely address them during the stabilization period.


@RequiredArgsConstructor with JDK8

Hi. why I can write @RequiredArgsConstructor(onConstructor_={@Autowired}) like requare in docs for jdk8? Its work but IDEA cannot resolve it. thx

so do i

It's a same issue as #382, so I'll close it here as duplicate.


Implement a C^k with k>2 coupling layer with numerical inverse and implicit function theorem.

I'm opening this issue to discuss an idea from #2 to try to use the implicit function theorem to define the inverse and jacobian of general bijections, in order to have a general way of defining smooth coupling layers.
@b-remy had some examples at some point of how to do that in JAX, before we switched to TF. Do you still have your JAX prototype Benjamin?

Hi there!
Yes, and I just adapted the example @Justinezgh proposed in #2. It seems to work well and quit fast, and for many k>2!
Some examples with a = 1,  b = 1 and c = 0.5:

Code here: https://colab.research.google.com/drive/1bULsH6McxKy_IqViRpx0IgvCfnnSlwGp?usp=sharing

ok, so.... almost there. I have added the corrercted couplping layer in #10 and it's training \o/ buuuut it's giving me some weird reresuts

there must be somehiing wrong, maybe in the logdet computationn....

Ok i think this is done, will be closed as soon as we merge #10.


Show OR during login only when other methods are available.

There might be good reasons to have other external authentication
methods such as SAML configured, but none of them is available. This
happens for example when you already enable SAML so that Zulip is able
to generate the metadata in XML format, but you haven't configured an
IdP yet. This commit makes sure that the phrase OR is only shown on
the login page when there are actually other authentication methods
available. When they are just configured, but not available yet, the
page looks like as if no other authentication methods would be
configured.
Testing plan:
Manually tested in Firefox
GIFs or screenshots:
You can see Zulip in the original/broken state here: https://ibb.co/x3rR7Qm
With the commit, it looks like this: https://ibb.co/Fbg82PV

Thanks for working on this @eriktews!  The fix looks correct but incomplete; see my comment above.  You should also write the commit message starting with auth: while you're updating this.  Check out the Zulip commit message guidelines for more details: https://zulip.readthedocs.io/en/latest/contributing/version-control.html#commit-messages

@timabbott Thanks, I updated my patch. Let's see whether all the automated tests run fine here.

I reran the tests.  GitHub's feature to require a manual click for new contributors applies to each update to the PR.

Also, my formatting was wrong, which was detected by the pipeline.
@timabbott Can you please approve the workflows again?

Done. While we wait, I still don't understand how the new code behaves differently from the old code (though it's nice as a code cleanup if nothing else).

So let me try to explain that in another way:
The old code basically just checked whether any additional authentication providers were enabled. When one of them was there, then the OR was shown.
The new code goes through all the authentication providers (that are enabled) and asks them how many methods the offer to perform an authentication. I don't know about all the others, but the SAML provider can be configured with 0, 1 or more IdPs, which are basically providers for idendities. So even when you just enabled the SAML provider and configured 2 IdPs, two buttons would appear (login with A and login with B). However when 0 IdPs are configured (which is a valid configuration), then no buttons would appear and the OR is not required. The new code basically just counts the number of buttons that are supposed to be rendered and when there are more than 0 buttons, the OR is shown.
You may also see the authentication providers as a list of lists. While the outer list may have a none zero length, all the inner elements may just be empty lists and when you flatten the data structure, you end up with an empty list. The old code would basically just check the length of the outer list and the new code checks the length of the flattened data structure.

Ahh, that explains it!  I tweaked your commit message to explain that detail and merged this.  Huge thanks for the fix @eriktews!
I've also backported this to 4.x, so it'll be included in the 4.4 bug fix release.


Detect

"$env:ProgramFiles\WindowsApps\Microsoft.DesktopAppInstaller_x64__8wekyb3d8bbwe" - needs to be changed to "_*__" too?

probably 😇

#66


added 2024-01-01-preview to public repo

ARM (Control Plane) API Specification Update Pull Request

[!TIP]
Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

[!NOTE]
As of January 2024 there is no PR assignee. This is expected. See https://aka.ms/azsdk/pr-arm-review.

PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

 Click here to see the details of Step 1
Breaking changes review (Diagram Step 1)
If the automation determines you have breaking changes, i.e. Step 1 from the diagram applies to you,
you must follow the breaking changes process.
IMPORTANT This applies even if:

The tool fails while it shouldn't, e.g. due to runtime exception, or incorrect detection of breaking changes.
You believe there is no need for you to request breaking change approval, for any reason.
Such claims must be reviewed, and the process is the same.

 Click here to see the details of Step 2
ARM API changes review (Diagram Step 2)

For help with Step 2 / "ARM review", see https://aka.ms/azsdk/pr-arm-review.

 Click here to see the diagram footnotes
Diagram footnotes
[1] See ARM review queue (for PR merge queues, see [2]).
[2] public repo merge queue, private repo merge queue (for ARM review queue, [1])
The ARM reviewer on-call engineer visits the merge queue twice a day, so the approximate ETA for merges is 12 - 24 hours.

Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!

[ ] New resource provider.
[ ] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been generated using OpenAPI Hub).
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix OpenAPI spec quality issues in S360.
[x] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.

Additional information

 Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.

Getting help

First, please carefully read through this PR description, from top to bottom. Please fill out the Purpose of this PR and Due diligence checklist.
To understand what you must do next to merge this PR, see the Next Steps to Merge comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
For help with PR workflow diagram Step 2 (ARM review), see https://aka.ms/azsdk/pr-arm-review.
If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

/azp run

Avocado is failing but the whole folder is unchanged from the private repo. And if I check manually I see the reference is all correct.

Hi @aakash049 could you please help with expediting the review process? we have no change from the internal PR which was already merged. Thank you

the internal azure-rest-api-spec-pr is already reviewed and merged, this PR has no change compare to the internal one
internal PR: https://github.com/Azure/azure-rest-api-specs-pr/pull/16404

/pr RequestMerge

/pr RequestMerge


Obsolete revision to fix the the bug that fail to import maven dependency

What problem does this PR solve?
close #2404

remove revision
change version to 3.0.1

/run-all-tests

/run-all-tests

/merge


Using Newtonsoft.Json with F# can lead to NullReferenceExceptions down the line instead of failing fast when deserialising in case of types mismatch

Source/destination types
These discriminated unions:
type Foo1 =
    {
        Bar: int
        Baz: string
    }

type Foo2 =
    {
        BarBaz: Foo1
        Baz: string
    }

Steps to reproduce
    let foo1 = { Bar = 69; Baz = "oof" }
    let foo1json = JsonConvert.SerializeObject foo1
    Console.WriteLine ("serialized foo1:" + foo1json)
    let foo2 = JsonConvert.DeserializeObject<Foo2> foo1json

    Console.WriteLine ("foo2.Baz==" + foo2.Baz)

    let isBarBazNull = Object.ReferenceEquals(foo2.BarBaz, null)
    Console.WriteLine ("foo2.BarBaz==null?" + isBarBazNull.ToString())

Actual behavior
The following is printed:
serialized foo1:{"Bar":69,"Baz":"oof"}
foo2.Baz==oof
foo2.BarBaz==null?True

Which means that examining foo2.BarBaz.Bar could throw a NullReferenceExceptions, when precisely F# is a language that presumes to not have this kind of exceptions. Newtonsoft.Json should be fixed to not make F# worse :)
Expected behavior
The line JsonConvert.DeserializeObject<Foo2> foo1json should throw an exception because the members of the json document don't match with the members of the DiscriminatedUnion type.
Versions tested with: 11.0.2 and 12.0.2

I think you can do this yourself with a custom contract resolver.  See:

Json.NET require all properties on deserialization.
This shows how to use a custom contract resolver to require all members be present during deserialization.  An exception is thrown if a member is not set during deserialization.

Json.NET make property required based on property type.
This is similar to the above except that no exception is thrown for unset optional members.

Demo of the second contract resolver here: https://dotnetfiddle.net/dFE5kd.

Thanks for your message, but I guess an easier way to do it is using the setting MissingMemberHandling = MissingMemberHandling.Error; (see https://stackoverflow.com/a/21032130/544947 ).
Although I think that defaults matter, so Newtonsoft.Json should detect if the target type is a Discriminated Union (not possible to code in C# I guess), and if it is, default to MissingMemberHandling.Error to avoid NREs.

@knocte - MissingMemberHandling = MissingMemberHandling.Error solves a complimentary problem:

If your JSON has a property that your model does not, and you want that to be an error, use MissingMemberHandling = MissingMemberHandling.Error.
This setting is useful when you want to check whether your data model binds to all the properties present in the incoming JSON.
See: MissingMemberHandling setting.

If your model has a property that your JSON does not,  and you want that to be an error, use [JsonProperty(Required = Required.Always)].
This attribute is useful when you want to enforce that the JSON contains some critical, non-optional property value.
The two contract resolvers linked to above automate the process of applying Required = Required.Always by applying it to all properties that are not optional, and do not have their own explicit setting already applied.
See: JsonPropertyAttribute required.

Since you want an error when a value is unset (which leaves the property value null), I believe you fall into case 2, in which the JSON is missing a property.

Point of clarification: the code examples in the first message are describing records not discriminated unions.  I have this problem as well, and I believe it's emblematic of problems with F# records and serialization:

the current algorithm creates an 'empty' instance of the type, which for F# may not be valid.  I'd argue that f# records do not have a valid 'empty' state.
The proper algorithm would be to use the FSharpType and FSharpValue module functions to do something like the following:

determine if the destination type is a record. if no, continue on current serialization strategy. if yes,
get field information for the record and iterate through them, deserializing each property from the current json payload to get the final array of record fields
use FSharpValue.MakeRecord with the appropriate type and field arguments to create a fully-hydrated and correct record with no missing fields.

Over the process of making the field value array, optionality should be taken into account. IE if destination type is 'a option and the key is not present, set None for that value. Any other missing value should be interpreted as a serialization failure, because F# records are more strict than C# classes.

records not discriminated unions.

D'oh! just changed this thanks.


Queryng With In Clause And Static Values

Observed vs. expected behavior
Do the right query
Steps to reproduce

    private List<Long> findRealizacaoAvaliacoes(final ResetAvaliacaoCommand cmd) {
        return baseRepository.findAll(qRealizacaoAvaliacao, Projections.constructor(Long.class, qRealizacaoAvaliacao.id), where(cmd));
    }

    private BooleanBuilder where(final ResetAvaliacaoCommand cmd) {

        final BooleanBuilder builder = new BooleanBuilder();

        builder.and(Expressions.list(qRealizacaoAvaliacao.avaliacao.id, qRealizacaoAvaliacao.profissional.id)
                .in(
                        Expressions.list(Expressions.constant(cmd.getResetAvaliacoes().get(0).getAvaliacaoId()), Expressions.constant(cmd.getResetAvaliacoes().get(0).getProfissionalId())),
                        Expressions.list(Expressions.constant(cmd.getResetAvaliacoes().get(1).getAvaliacaoId()), Expressions.constant(cmd.getResetAvaliacoes().get(1).getProfissionalId()))));

        builder.and(qRealizacaoAvaliacao.reset.eq(Boolean.FALSE));

        return builder;
    }

The query output is:
select
	realizacao0_.id as col_0_0_
from
	realizacao_avaliacao realizacao0_
where
	((realizacao0_.avaliacao_id ,
	realizacao0_.profissional_id) in (? , ? , (? , ?)))
	and realizacao0_.reset =?

But the expected is
select
	realizacao0_.id as col_0_0_
from
	realizacao_avaliacao realizacao0_
where
	realizacao0_.reset = false
	and	(realizacao0_.avaliacao_id , realizacao0_.profissional_id) in ((13 , 3), (13 , 2))

Environment
Docker And Manjaro
Querydsl version: 4.2.1
Database: Mysql
JDK: 1.8

This is not really a bug, is just improper use of QueryDSL's internal list expressions for tuples. The template for list is simply {0}, {1} (so just comma separated arguments). I was more surprised about the rendered parentheses that do appear than the ones that do not. These are rendered because operation expressions are always wrapped in side parentheses when one of their arguments is an operation that has lower precedence.
So the parents between (realizacao0_.avaliacao_id , realizacao0_.profissional_id) are introduced because IN takes precedence over Querydsl's internal "list" operation. And the parents between the tuples are introduced because the inside and outside list expressions have the same precendence and this needs to be accounted for.
The solution is quite simply: don't use the list expression for this. This use a Template expression.
For example, the following test passes in SQLSerializerTest:

@Test
public void comparingTuples() {
    SQLSerializer serializer = new SQLSerializer(Configuration.DEFAULT);
    BooleanExpression expression = tuple(employee.firstname, employee.lastname).in(
            tuple(new Param<String>(String.class, "a"), new Param<String>(String.class, "b")),
            tuple(new Param<String>(String.class, "c"), new Param<String>(String.class, "d")));
    serializer.handle(expression);
    assertEquals("(EMPLOYEE.FIRSTNAME, EMPLOYEE.LASTNAME) in ((?, ?), (?, ?))", serializer.toString());
}

public SimpleExpression<Object> tuple(Expression<?>... args) {
    return Expressions.template(Object.class, "({0}, {1})", args);
}


//py_test_dir/tensorflow/python:bitwise_ops_test failing on Windows

http://ci.tensorflow.org/job/tensorflow-pr-win-bazel/32/console
ERROR: testPopulationCountOp (__main__.BitwiseOpTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "\\?\C:\tmp\Bazel.runfiles_5m16karn\runfiles\org_tensorflow\py_test_dir\tensorflow\python\ops\bitwise_ops_test.py", line 66, in testPopulationCountOp
    inputs = np.array(raw_inputs, dtype=dtype.as_numpy_dtype)
OverflowError: Python int too large to convert to C long

Culprit: cl/163090921

@ebrevdo what do you recommend about the failure?

Disable the test on Windows.

I'll try to really fix when I return.

It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Closing since it's been a while. Please reopen if this still occurs with the latest version.

@drpngx  still happens on windows and tensorflow 2.2 (tensorflow 2.3 and nightly have other issues on windows that prevents me from upgrading, and test this)


MINOR remove unused member in HMSExternalTable

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall.


Use of Eigen package throws 'mmintrin.h' file not found error

Hi, thank you for the package!

This issue is potentially related to #30. I tried wrapping the code I want before even trying the tutorial. Then I realized even the hello world example fails.
I'm trying to create a Julia wrapper for this ghostbasil package, but I seem to be running into weird issues with Eigen.

Here is my ghostbasil.wit:
module_name         = "GhostBASIL"
export_jl_fname     = "GhostBASIL-export.jl"
module_jl_fname     = "GhostBASIL-generated.jl"
include_dirs        = [ "/Users/biona001/.julia/dev/ghostbasil/ghostbasil/include/ghostbasil" ]
input               = [ "matrix/block_group_ghost_matrix.hpp", "matrix/block_matrix.hpp", "matrix/ghost_matrix.hpp", "matrix/group_ghost_matrix.hpp", "optimization/basil.hpp"]
extra_headers       = [ "/usr/local/include/eigen3/Eigen/Core", "/usr/local/include/eigen3/Eigen/SparseCore"]
cxx-std             = "c++17"

Running wrapit:
$ wrapit ghostbasil.wit --force --verbosity 1

/usr/local/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h:345:18: 'mmintrin.h' file not found
Info: missing definition of type const BlockMatrix<MatrixType> & to define wrapper for void ghostbasil::BlockMatrix::ConstBlockIterator::ConstBlockIterator(const ghostbasil::BlockMatrix &, size_t)
Info: missing definition of type const auto & to define wrapper for const auto & ghostbasil::BlockMatrix::ConstBlockIterator::block()
Info: missing definition of type auto to define wrapper for auto ghostbasil::BlockMatrix::ConstBlockIterator::shift(size_t)
Info: missing definition of type auto to define wrapper for auto ghostbasil::BlockMatrix::ConstBlockIterator::stride()
Info: missing definition of type value_t to define wrapper for int ghostbasil::lasso::BasilState::update_after_initial_fit(ghostbasil::lasso::BasilState::value_t)
Info: missing definition of types value_t, value_t to define wrapper for int ghostbasil::lasso::BasilState::screen(size_t, size_t, bool, bool, bool, ghostbasil::lasso::BasilState::value_t, ghostbasil::lasso::BasilState::value_t)
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::strong_sizes
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::strong_sizes
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::active_sizes
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::active_sizes
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::used_strong_rule
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::used_strong_rule
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::n_cds
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::n_cds
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::n_lambdas_proc
Info: Generating non-const getter for ghostbasil::lasso::BasilDiagnostic::n_lambdas_proc

Generated wrapper statictics
  enums:            0
  classes/structs:  2
    templates:      0
    others:         2
  class methods:    4
  field accessors:  5 getters and 5 setters
  global variable accessors: 0 getters and 0 setters
  global functions: 0

I can't find much information regarding 'mmintrin.h' file not found error. Any help/insights would be highly appreciated.

Missing a minimal (non-)working example to reproduce the issue, while the issue might have been already fixed with #30.
Closing the issue.


Using output.metadata.id instead of output.id

This PR migrates off of the output.id used to view and save plots to the new output.metadata.id.
For this PR to work, the following two PRs would need to be merged:

https://github.com/microsoft/vscode-notebook-renderers/pull/114
[coming soon]

Fixes #9629

Codecov Report

Merging #10468 (ed1575c) into main (217a556) will increase coverage by 0%.
The diff coverage is 40%.

@@          Coverage Diff           @@
##            main   #10468   +/-   ##
======================================
  Coverage     70%      71%
======================================
  Files        480      482    +2
  Lines      28867    28918   +51
  Branches    4840     4845    +5
======================================
+ Hits       20492    20535   +43
  Misses      6474     6474
- Partials    1901     1909    +8

Impacted Files
Coverage Δ

src/webviews/extension-side/plotView/helpers.ts
33% <33%> (ø)

...ws/extension-side/plotView/plotSaveHandler.node.ts
26% <33%> (+<1%)
:arrow_up:

...ws/extension-side/plotView/plotViewHandler.node.ts
29% <33%> (+1%)
:arrow_up:

src/kernels/execution/helpers.ts
69% <100%> (+<1%)
:arrow_up:

src/interactive-window/commands/commandRegistry.ts
34% <0%> (-2%)
:arrow_down:

src/kernels/execution/cellExecutionQueue.ts
81% <0%> (-2%)
:arrow_down:

src/kernels/execution/cellExecution.ts
71% <0%> (-2%)
:arrow_down:

...teractive-window/editor-integration/cellFactory.ts
67% <0%> (-1%)
:arrow_down:

src/platform/common/utils/localize.ts
76% <0%> (-1%)
:arrow_down:

src/interactive-window/interactiveWindow.ts
73% <0%> (-1%)
:arrow_down:

... and 11 more


Question: Windows 10X Sandboxing & Win32 Project Reunion API:s

Hi!
What does Project Reunion mean for the sandboxing tech in Windows 10X?
Today when running the first win32-app on 10X a penalty exist, loading a containerized "legacy" environment.
Will an app using win32-api:s from Project Reunion not need this approach or is this completely orthogonal?

Short answer: it's orthogonal.
Win32 app -> Win32 Container.
AppContainer app -> AppContainer (Native Container).
Reunion supports both Win32 and AppContainer (UWP) apps.

So Reunion is only about usage of former uwp/winrt apis in win32 apps? It will not restructure win32 in any way other than allowing for this?!  This means no common foundation?!

@JensNordenbro What I think is Project Reunion will allow more WinRT APIs for Win32 apps and make the usage consistent without interop methods. Basically, you can turn an old app into a modern WinRT app or start with a new Win32 app and get new modern features.

Sure, but looking at the illustrations also win32 seems to be lifted somehow but judging from the answers in this thread, that seems to be me just reading in too much into the pictures.
Basically, I I thought/hoped also win32 would be based on a common ground together with WinRT with the same security policies / container security granulation etc
Now it is just seems to be one more attempt at tempting devs to use tech developed for WinRT.

I'm not sure what you are looking for.

I thought/hoped also win32 would be based on a common ground together with WinRT with the same security policies / container security granulation etc.

Yes, this is the goal or Reunion... to be clear, there has always been a common ground - the NT kernel and much of the Win32 subsystem - but "UWP" and "Win32" apps diverged at the UI layer / app lifecycle / containment level.

Now it is just seems to be one more attempt at tempting devs to use tech developed for WinRT.

This sounds like what you hoped for though - the containment technology developed for UWP ("WinRT") will be available for Win32 apps, as will all the new features developed since Windows 8 that had previously only been available to "UWP" apps (like WinUI).

So will I be able to lock down a win32 app using same mechaniams as for winrt https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh967755(v=win.10)?redirectedfrom=MSDN ?

That is the kind of thing Reunion is aiming for. But it might take a while.

Ok Great!!! Then the pictures makes sense.
Any chanse that win32 will be layered on top of winrt fully and as a result building a win32 application in self contained mode  can bring all win32 dependencies with the application just as ..Net core allows to bring the runtime and dependencies along with the application?

In theory, yes. It's not clear exactly how it will be delivered yet though.

Nice!

@JensNordenbro

Any chanse that win32 will be layered on top of winrt fully and as a result building a win32 application in self contained mode can bring all win32 dependencies with the application just as ..Net core allows to bring the runtime and dependencies along with the application? (maybe tricky from a licensing standpoint)

winRT apis  will not even exist without win32 apis/subsystem.
winRT apis are not built on top of kernel services.
winRT apis are built on top of win32 apis.
under the hood  all winRT apis are, win32 apis exposed through COMv2 interface.
technically all winRT apis are COMv2 apis.


Sticky Trigger Key

The VI style arrows requires you to press [trigger key] + hjkl. Is there anyway to only press the trigger key once? To turn off the trigger key, just press it again.

I made Vim emulation with Karabiner-Elements, which can be imported from:
complex_modifications rules by rcmdnk
You can change to normal mode by pressing ESC, and move by hjkl only,
then turn back to insert mode (i.e. OS's normal bahavior) by pressing i.
You can also use jk to toggle the mode.

Maybe something like this?
numlock.json
I don't have keyboard with numlock, so it uses escape to switch on (1-9 to F1-F9).
In addition, I don't have keypad so they are normal 1 to 9.
You can replace escape to keypad_num_lock and such "key_code": "1" to "key_code": "keypad_1".
I think Karabiner-Elements can't check numlock status,
so if you use num lock key in above example, it may make confusion of numlock status,
as it uses period to switch off.

Thanks a lot for the sample and explanation! Can understand it now.

I found a way to make it shorter, so that it does not require 2 extra blocks to work with Shift.
"manipulators": [
                {
                    "type": "basic",
                    "from": {
                        "key_code": "home",
                        "modifiers": {
                            "optional": ["fn", "shift"]
                        }
                    },
                    "to": [
                        {
                            "key_code": "left_arrow",
                            "modifiers": ["command"]
                        }
                    ]
                },
                {
                    "type": "basic",
                    "from": {
                        "key_code": "end",
                        "modifiers": {
                            "optional": ["fn", "shift"]
                        }
                    },
                    "to": [
                        {
                            "key_code": "right_arrow",
                            "modifiers": ["command"]
                        }
                    ]
                }
            ]


Compaction task failed, how can I troubleshoot?

Hi experts,
I am using druid 0.22.1, and I want to compact some small segments, so I submit a compaction task:
{
    "type": "compact",
    "dataSource": "autotest",
    "ioConfig": {
        "type": "compact",
        "inputSpec": {
            "type": "interval",
            "interval": "1970-01-01T00:00:00Z/2023-11-18T07:14:34.000Z"
        },
        "dropExisting": true
    },
    "granularitySpec": {
        "segmentGranularity": "MINUTE",
        "queryGranularity": "MINUTE"
    }
}

But the compaction task failed with the following status information
{
  "id": "compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z",
  "groupId": "compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z",
  "type": "compact",
  "createdTime": "2022-11-18T08:41:49.908Z",
  "queueInsertionTime": "1970-01-01T00:00:00.000Z",
  "statusCode": "FAILED",
  "status": "FAILED",
  "runnerStatusCode": "WAITING",
  "duration": 27628,
  "location": {
    "host": "<IP_ADDRESS>",
    "port": -1,
    "tlsPort": 8100
  },
  "dataSource": "autotest",
  "errorMsg": "Ran [1] specs, [0] succeeded, [1] failed"
}

And the logs:
{"instant":{"epochSecond":1668760935,"nanoOfSecond":19000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.storage.s3.S3DataSegmentPuller","message":"Pulling index at path[CloudObjectLocation{bucket='cerberus-zontal-ingest', path='druid/segments/autotest/2022-11-18T07:12:33.000Z_2022-11-18T07:12:34.000Z/2022-11-18T07:12:34.855Z/0/index.zip'}] to outDir[var/druid/task/compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z/work/autotest/2022-11-18T07:12:33.000Z_2022-11-18T07:12:34.000Z/2022-11-18T07:12:34.855Z/0]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760935,"nanoOfSecond":217000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.storage.s3.S3DataSegmentPuller","message":"Loaded 370186 bytes from [CloudObjectLocation{bucket='cerberus-zontal-ingest', path='druid/segments/autotest/2022-11-18T07:12:33.000Z_2022-11-18T07:12:34.000Z/2022-11-18T07:12:34.855Z/0/index.zip'}] to [/opt/druid/var/druid/task/compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z/work/autotest/2022-11-18T07:12:33.000Z_2022-11-18T07:12:34.000Z/2022-11-18T07:12:34.855Z/0]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760935,"nanoOfSecond":218000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.storage.s3.S3DataSegmentPuller","message":"Pulling index at path[CloudObjectLocation{bucket='cerberus-zontal-ingest', path='druid/segments/autotest/2022-11-18T07:12:41.000Z_2022-11-18T07:12:42.000Z/2022-11-18T07:12:42.687Z/0/index.zip'}] to outDir[var/druid/task/compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z/work/autotest/2022-11-18T07:12:41.000Z_2022-11-18T07:12:42.000Z/2022-11-18T07:12:42.687Z/0]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760935,"nanoOfSecond":318000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.storage.s3.S3DataSegmentPuller","message":"Loaded 370186 bytes from [CloudObjectLocation{bucket='cerberus-zontal-ingest', path='druid/segments/autotest/2022-11-18T07:12:41.000Z_2022-11-18T07:12:42.000Z/2022-11-18T07:12:42.687Z/0/index.zip'}] to [/opt/druid/var/druid/task/compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z/work/autotest/2022-11-18T07:12:41.000Z_2022-11-18T07:12:42.000Z/2022-11-18T07:12:42.687Z/0]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760935,"nanoOfSecond":319000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.storage.s3.S3DataSegmentPuller","message":"Pulling index at path[CloudObjectLocation{bucket='cerberus-zontal-ingest', path='druid/segments/autotest/2022-11-18T07:13:34.000Z_2022-11-18T07:13:35.000Z/2022-11-18T07:13:36.349Z/0/index.zip'}] to outDir[var/druid/task/compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z/work/autotest/2022-11-18T07:13:34.000Z_2022-11-18T07:13:35.000Z/2022-11-18T07:13:36.349Z/0]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760935,"nanoOfSecond":414000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.storage.s3.S3DataSegmentPuller","message":"Loaded 370186 bytes from [CloudObjectLocation{bucket='cerberus-zontal-ingest', path='druid/segments/autotest/2022-11-18T07:13:34.000Z_2022-11-18T07:13:35.000Z/2022-11-18T07:13:36.349Z/0/index.zip'}] to [/opt/druid/var/druid/task/compact_autotest_ddbohokd_2022-11-18T08:41:49.906Z/work/autotest/2022-11-18T07:13:34.000Z_2022-11-18T07:13:35.000Z/2022-11-18T07:13:36.349Z/0]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760935,"nanoOfSecond":816000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.indexing.common.task.CompactionTask","message":"Generate compaction task spec with new query granularity overrided from input [{type=period, period=PT1M, timeZone=UTC, origin=null}]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760936,"nanoOfSecond":502000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.indexing.common.task.CompactionTask","message":"Generated [1] compaction task specs","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":106,"threadPriority":5}
{"instant":{"epochSecond":1668760936,"nanoOfSecond":617000000},"thread":"task-runner-0-priority-0","level":"INFO","loggerName":"org.apache.druid.indexing.common.task.AbstractBatchIndexTask","message":"[forceTimeChunkLock] is set to true in task context.  Lookup notices are not handled anymore.","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":103,"threadPriority":5}
{"instant":{"epochSecond":1668760936,"nanoOfSecond":816000000},"thread":"main","level":"INFO","loggerName":"org.apache.druid.query.lookup.LookupReferencesManager","message":"Closed lookup [deleted_information_packages].","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":1,"threadPriority":5}
{"instant":{"epochSecond":1668760936,"nanoOfSecond":821000000},"thread":"Curator-Framework-0","level":"INFO","loggerName":"org.apache.curator.framework.imps.CuratorFrameworkImpl","message":"backgroundOperationsLoop exiting","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":99,"threadPriority":5}
{"instant":{"epochSecond":1668760937,"nanoOfSecond":18000000},"thread":"main","level":"INFO","loggerName":"org.apache.zookeeper.ZooKeeper","message":"Session: 0x1001892b7e9010b closed","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":1,"threadPriority":5}
{"instant":{"epochSecond":1668760937,"nanoOfSecond":18000000},"thread":"main-EventThread","level":"INFO","loggerName":"org.apache.zookeeper.ClientCnxn","message":"EventThread shut down for session: 0x1001892b7e9010b","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":98,"threadPriority":5}
{"instant":{"epochSecond":1668760937,"nanoOfSecond":105000000},"thread":"main","level":"INFO","loggerName":"org.apache.druid.java.util.common.lifecycle.Lifecycle","message":"Stopping lifecycle [module] stage [INIT]","endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":1,"threadPriority":5}
Finished peon task

I notice there is a "indexSpec is not ready:" warning in the log, but I don't know what does this mean.
FYI: The datasource is "Fully available"
Can anyone help me? Or how can I troubleshout issues like this? Thanks a lot in advance.

I searched in the Slack, and found that someone suggest to use
   "context": {
        "forceTimeChunkLock": false
    }

And the compaction task works after I added this setting.
But I don't know if there is any side effect if I add this setting.

The indexSpec is not ready warning happens if the task is unable to acquire a lock on its interval. The interval is 1970-01-01T00:00:00Z/2023-11-18T07:14:34.000Z (from your compact task spec) so it would be trying to get an exclusive lock for that interval. Is it possible some other task was running at the time? If so, that would cause the behavior you saw. You can retry later when no other tasks are running.

And the compaction task works after I added this setting.
But I don't know if there is any side effect if I add this setting.

forceTimeChunkLock: false is an experimental setting which you can read more about here: https://druid.apache.org/docs/latest/ingestion/tasks.html#locking. It makes the locking more fine-grained, so avoids the lock contention issue that you are probably hitting. It is experimental, though, so I'd only recommend it if you are comfortable with a feature that is not currently viewed as production-ready.

An update — I believe this is the same bug as described here: https://github.com/apache/druid/issues/13540#issuecomment-1344899192.


[Linux] Overlay Layers Do not Appear To Work

This was mainly tested with the Steam Overlay. Normally if you add a game as a non-steam game, it'll try and load up the overlay as well. In this case, it never appears.
I attempted to add an activation of the layer, which the logs seem to show that the layer was being enabled. A link to a patch showing what was changed: 0001-Attempt-at-getting-steam-overlay-enabled.zip
I'm wondering if it might have something to do with the hidden window being created and then destroyed, as in possibly the overlay layer library is seeing that thinking it needs to inject into it and getting confused.
Was curious if you had any pointers or had ideas as to a fix.

Hi, @d10sfan !
I've checked your patch and attempt doesn't look correct to me. Vulkan overlays should work without any changes from app.
It possible, that it is some kind of steam issue, possibly overlay is hard disabled for gothic2.
Another thing I want to mention: RenderDoc overlay works for me.
Can you, plase, verify that it is not a steam problem, by running follow script:
export VK_INSTANCE_LAYERS=VK_LAYER_VALVE_steam_overlay_64
./Gothic2Notr -g /path/to/game

?

Ah ok, thanks for looking into it.
It does look like steam has the SteamOverlay disabled for it (from looking at the steamdb entry for it). It's strange that it'd affect a "non-steam" game for it, but maybe it's looking for an executable name or app label to determine it.
I suppose this can be closed then since it's probably a steam problem.

When I run that script above, the steam overlay does not appear. It just works as normal


AWS Aurora: unable to diff tables with multiple foreign keys

I recently migrated both my dev and prod RDS databases from MySQL to Aurora MySQL
After the migration, I was able to make schema changes on dev using skeema with no problems, however when I tried running the same changes on prod, I kept getting errors like the following:
2020-03-27 12:07:25 [WARN]  Skipping table `telemedicine_sessions_cancelled`: unable to generate DDL due to use of unsupported features. Use --debug for more information.
2020-03-27 12:07:25 [DEBUG] --- Expected CREATE
2020-03-27 12:07:25 [DEBUG] +++ MySQL-actual SHOW CREATE
2020-03-27 12:07:25 [DEBUG] @@ -9,2 +9,2 @@
2020-03-27 12:07:25 [DEBUG] -  CONSTRAINT `_fk-telemedicine-sessios-cancelled-session` FOREIGN KEY (`session_id`) REFERENCES `telemedicine_sessions` (`id`),
2020-03-27 12:07:25 [DEBUG] -  CONSTRAINT `fk-telemedicine-session-cancelled-clinic` FOREIGN KEY (`clinic_id`) REFERENCES `clinics` (`id`)
2020-03-27 12:07:25 [DEBUG] +  CONSTRAINT `fk-telemedicine-session-cancelled-clinic` FOREIGN KEY (`clinic_id`) REFERENCES `clinics` (`id`),
2020-03-27 12:07:25 [DEBUG] +  CONSTRAINT `_fk-telemedicine-sessios-cancelled-session` FOREIGN KEY (`session_id`) REFERENCES `telemedicine_sessions` (`id`)
2020-03-27 12:07:25 [WARN]  Skipping table `telemedicine_sessions_rejected`: unable to generate DDL due to use of unsupported features. Use --debug for more information.
2020-03-27 12:07:25 [DEBUG] --- Expected CREATE
2020-03-27 12:07:25 [DEBUG] +++ MySQL-actual SHOW CREATE
2020-03-27 12:07:25 [DEBUG] @@ -8,2 +8,2 @@
2020-03-27 12:07:25 [DEBUG] -  CONSTRAINT `__fk-telemedicine-session-rejected-clinic` FOREIGN KEY (`clinic_id`) REFERENCES `clinics` (`id`),
2020-03-27 12:07:25 [DEBUG] -  CONSTRAINT `fk-telemedicine-sessios-rejected-session` FOREIGN KEY (`session_id`) REFERENCES `telemedicine_sessions` (`id`)
2020-03-27 12:07:25 [DEBUG] +  CONSTRAINT `fk-telemedicine-sessios-rejected-session` FOREIGN KEY (`session_id`) REFERENCES `telemedicine_sessions` (`id`),
2020-03-27 12:07:25 [DEBUG] +  CONSTRAINT `__fk-telemedicine-session-rejected-clinic` FOREIGN KEY (`clinic_id`) REFERENCES `clinics` (`id`)
2020-03-27 12:07:25 [WARN]  Skipping table `telemedicine_sessions`: unable to generate DDL due to use of unsupported features. Use --debug for more information.
2020-03-27 12:07:25 [DEBUG] --- Expected CREATE
2020-03-27 12:07:25 [DEBUG] +++ MySQL-actual SHOW CREATE
2020-03-27 12:07:25 [DEBUG] @@ -39,2 +39,2 @@
2020-03-27 12:07:25 [DEBUG] -  CONSTRAINT `_fk-telemedicine-session-clinics` FOREIGN KEY (`clinic_id`) REFERENCES `clinics` (`id`),
2020-03-27 12:07:25 [DEBUG] -  CONSTRAINT `telemedicine_sessions_ibfk_1` FOREIGN KEY (`practitioner_id`) REFERENCES `users` (`id`)
2020-03-27 12:07:25 [DEBUG] +  CONSTRAINT `telemedicine_sessions_ibfk_1` FOREIGN KEY (`practitioner_id`) REFERENCES `users` (`id`),
2020-03-27 12:07:25 [DEBUG] +  CONSTRAINT `_fk-telemedicine-session-clinics` FOREIGN KEY (`clinic_id`) REFERENCES `clinics` (`id`)

I tried changing the order of the foreign keys in my CREATE TABLE statements to match what it wants, but that doesn't seem to change anything, I still get the same errors.
The only thing that allowed me to update any of the affected tables was deleting its foreign keys entirely, but it gives me the same errors when I try to add them back in.

Thank you for the issue report. A few quick questions to help narrow this down:

What version of Skeema are you using? (skeema --version)
What version of Aurora/MySQL are you using, as reported in the AWS console?
Please run this query in dev and prod and paste the result:

SELECT @@global.version_comment, @@global.version;

Unfortunately it is difficult to maintain perfect compatibility with Aurora since it is essentially a closed-source fork of MySQL, and its behavior does not exactly track that of equivalent MySQL versions. Since there's no free version of Aurora, it isn't feasible to include it in Skeema's automated test suite at this time, unless a corporation is interested in sponsoring this effort.
Sometimes Amazon back-ports changes from more recent MySQL versions into their fork. In this case I suspect they back-ported some changes from MySQL 8.0.19, which was known to affect the reported ordering of foreign keys. Skeema v1.4.2 already has a fix for this, but it is only applied if the database self-reports as 8.0.19+, which Aurora presumably doesn't do. I'm hoping that Aurora provides some other indicator (perhaps in @@global.version_comment) that Skeema can use to conditionally apply this fix.
As a hacky temporary work-around, you could try overriding flavor=mysql:8.0.19 in your host-level .skeema file, but this is likely to break other things since Aurora doesn't support all aspects of MySQL 8.

Earlier I was able circumvent a similar problem by adding --skip-verify to the push command.

@alexandre-vaniachine That's unrelated -- using --skip-verify only suppresses "Diff verification failure" errors, not "unable to generate DDL due to use of unsupported features" errors. That said, using --skip-verify normally should not be necessary unless there's a bug in Skeema; please open a separate issue for your situation. Thanks!
@kaitlynbrown just following up to see if you could provide more information please, thanks!

Hi @evanelias my earlier issue was resolved in [#83]. Indeed to circumvent the issue then, I also compiled the skeema executable with just one line  commented out:
			if actual != expected {
//				t.UnsupportedDDL = true
			}

Please don't ever remove that line or recommend to others removing that line. It's a core safety check that must remain in place for this software to be safe to use.

Sorry for the delay in response, I forgot about this for a while
I'm using version 1.4.2 of skeema.
The Aurora version of my DB is 1.17.98
The MySQL version of my DB is 5.6
Let me know if there's any other info I can provide

Hi @kaitlynbrown, thanks but I really need the full output of the query from the 3rd bullet of my original reply -- please run this query in dev and prod and paste the result:
SELECT @@global.version_comment, @@global.version;

I'm hoping that Aurora puts extra information in one of those variables that would permit Skeema to auto-detect when it is running under Aurora.

Ah nevermind I see your edited reply now, thanks. Unfortunately it doesn't seem there's anything Skeema can do to auto-detect Aurora. I'll have to think about this more, but in the near-term I'm not optimistic about being able to support Aurora unless a corporation wants to sponsor that development effort.

@evanelias for Aurora you can run this command
select AURORA_VERSION();
It will return something like this

+------------------+
| AURORA_VERSION() |
+------------------+
| 1.22.1           |
+------------------+

On non-Aurora versions you will get an error like this

ERROR 1046 (3D000): No database selected

Perhaps you can check for this when testing if it's an Aurora database

@zylo47 thank you, but the full picture is more complicated than that. I was hoping Aurora would provide a hint in one of the variables already queried by Skeema, but it does not.
Some Skeema users are very latency-sensitive, due to running it from local machines against DBs in remote datacenters. So generally it's important to keep the number of superfluous queries to a minimum. Since the vast majority of Skeema users are not using Aurora, I'm very hesitant to introduce an extra Aurora-specific query.
This could be mitigated by only running that query when the @@global.version matches a known value reported by Aurora (e.g. 5.6.10), but this would require a bit of testing against different Aurora clusters to build a mapping of all possible Aurora versions to purported MySQL versions. And overall, Aurora would really need its own distinct flavor in Skeema in order to model the behavioral differences between it and "real" MySQL; this is the system already used by Skeema to model MySQL vs Percona Server vs MariaDB.
However, I don't personally use Aurora or have access to an Aurora cluster, and none of my current consulting clients use Aurora either. I'm not inclined to spend my own time and money to implement support for a proprietary commercial database. If a company who uses Aurora wants to pay for this development time to make Skeema support their use-case, then I'd be more than happy to work with them on this. But absent that, this is simply not going to happen in open source Skeema.
Alternatively, if/when a commercial edition of Skeema is developed, this can be reapproached at that time if there's sufficient interest from potential paying customers.

Do you know when exactly this problem occurs in Aurora?
I mean, this problem occurs on all tables with multiple foregn keys or just in some specific circustances?

AWS has been eager to help out open source projects with lots of credits:
https://aws.amazon.com/blogs/opensource/aws-promotional-credits-open-source-projects/
If anyone here has the specific unusual behavior for "show create table", I'm happy to pass it along to AWS support or Aurora team to see if it's a bug or to figure out other details behind the key ordering.
(I don't work for Amazon but I work closely with them as a customer)

@shandrew those credits are only valid for one year, and they're aimed at "projects with maintainers from multiple entities or that are owned by foundations or non-profits." This is simply not a viable solution for an independent open source project like Skeema.
Bigger-picture, the issue here is that Aurora is a proprietary fork: it is not MySQL under the hood, and it is not open source. Even if the FK issue is resolved, there are likely other incompatibilities lurking in there already. Properly implementing Aurora support in Skeema involves adding it as a new Vendor/Flavor, which is how differences between MySQL, Percona Server, and MariaDB are already managed; this is non-trivial in terms of initial time commitment. Additional incompatibilities may come in the future, requiring ongoing maintenance time to keep Skeema compatible, even putting the cost aside.
I've tried to explain this twice in this thread already, and clearly have failed to get my point across, so let me be blunt: I am not interested in spending my time or money building open-source solutions for proprietary systems, full stop. My thinking is that if a company uses a proprietary commercial database system like Aurora, surely such a company can also purchase commercial tooling around it, such as a future commercial edition of Skeema with first-class Aurora support.

I'm happy to announce that the Premium edition of the Skeema CLI is now available! It adds full compatibility with AWS Aurora, including a fix for this issue. Learn more at the feature comparison chart and launch blog post.


AUTH_KEY_UNREGISTERED on startup

On account telegram on the plugin fails with the following error:
telegram - Error: RPC_CALL_FAIL 401: AUTH_KEY_UNREGISTERED

Is the extension actually still maintained and the key still active?

I registered my own API key, inserted it into src/tgx.h and re-built the package. Now I don't get the AUTH_KEY_UNREGISTERED error anymore - I guess there must be a more flexible way of passing the key other than editing the header file: because of that, the telegram-purple AUR package is basically broken. Anyway, when I start the account I now get bitlbee to crash:
/usr/bin/bitlbee: symbol lookup error: /usr/lib/bitlbee/telegram.so: undefined symbol: json_loads

I'm on Arch Linux, I have installed both the telegram-tdlib and jansson packages and built this extension from sources.

@BlackLight This plugin is only a PoC and I have no plan to work on it in the future. I will mark the repository as archived to make that clear. However, I don't understand the issue regarding telegram-purple.


Update code snippets using black formatter.

@RobPasMue @Revathyvenugopal162
Update code snippets using black formatter.

Why is there indents throughout the entire LaTeX file?

yeah, if not recommended will remove those indents

Removed all the indents!


Rename affiliation request 10103

Affiliation 10103, “UCT Neurology Research Group”, would like to be renamed to “UCT Neurogenomics Lab”

Closing, this appears to be a duplicate of https://github.com/ClinGen/gci-vci-aws/issues/1507


fix[tests]: use vitest .each convention for tests

additionally clean up folder names for fixtures.
Closes #11
✅ Pull Request Checklist:

[x] Included link to corresponding GitHub Issue.

[x] Added/updated unit tests and storybook for this change (for bug fixes / features).
[x] Added/updated documentation (for bug fixes / features)
[x] Filled out test instructions.

📝 Test Instructions:

❓ Does this PR introduce a breaking change?

[ ] Yes
[x] No

💬 Other information

As it looks like you doing like 5 things in this one PR. Please try to keep a PR to a single issue.

As it looks like you doing like 5 things in this one PR. Please try to keep a PR to a single issue.

I did let things get away from me on this one. I can break things up they are pretty small. Should I?

I did let things get away from me on this one. I can break things up they are pretty small. Should I?

If you don't mind I would appreciate it. Just makes it easier to discuss each thing individually without context switching and makes it a lot easier to track work.

I believe this is only making changes to tests at this point. I moved the common fixtures to the constants/ module because that felt more natural and consistent; to have the consumers both referencing it from there rather than one referencing it in another module.


Issues on the ontology raised by Alberto Abella through Marina Aguado

There is a Range
http://www.w3.org/2001/XMLSchema#int
whereas all the rest is
http://www.w3.org/2001/XMLSchema#integer

There is a Range
http://www.opengis.net/ont/geosparql#wktLiteral that when accessed takes you to http://www.opengis.net/spec/geosparql/1.0/req/geometry-extension/wkt-literal that is restricted to members of the consortium.

These properties do not have domain. Is this right or is there a reason for this modelling  decision?

'linearCoordinate'
'relativePosition'
'tsiCompliant'
'companyCodeCategory',
'netElement',
'notApplicable',
'notYetAvailable',
'operatingLanguage',
'operationalRegimeType',
'signallingSystemType',

These properties only have a "header"

'identifier', (twice)
'url'
'name'
'nick'

Answer to this issue:

There is a Range
http://www.w3.org/2001/XMLSchema#int
whereas all the rest is
http://www.w3.org/2001/XMLSchema#integer

The properties where the range is xsd:int are:

Cant deficiency
Temperature range (Maximum)
Temperature range (Minimum)
These three parameters have values that are signed integers, therefore the use of xsd:int.

There is a Range
http://www.opengis.net/ont/geosparql#wktLiteral that when accessed takes you to http://www.opengis.net/spec/geosparql/1.0/req/geometry-extension/wkt-literal that is restricted to members of the consortium.

Testing the access of http://www.opengis.net/ont/geosparql#wktLiteral , I am redirected to this link https://opengeospatial.github.io/ogc-geosparql/geosparql11/geo.ttl#wktLiteral

These properties do not have domain. Is this right or is there a reason for this modelling decision? Some of the points require checks and the ontology will be modified accordingly.

'linearCoordinate': This legacy property seems to be a generalization of the kilometer in Railway Location. Will check if it can be deprecated as it is not present in the current KG.
'relativePosition': Related to the previous property. Same answer than above.
'tsiCompliant': This property has been already deprecated.
'companyCodeCategory': This property refers to the type of railway company. This was a more recent requirement. Will check if a domain can be added.
'netElement': This property has been already deprecated.
'notApplicable': This property points to the name of a property (not to an instance), so it does not make sense to define a Range. For example, a triple would be: <era-track:trackabc era:notApplicable era:ETCSSystemCompatibility>
'notYetAvailable': The same argument as above
'operatingLanguage'. The definition taken from the Routebook legal text does is not clear as to which class does this property apply. Once the experts define this, the domain may be added to the ontology.
'operationalRegimeType': Will check if this property can apply to a Track
'signallingSystemType'. The same  as above

Changes have been applied to the ontology (not yet published)

'signallingSystemType' has been now deprecated bcause it is part of the definition of operational regime and there is not a separate property in the legal text.
'operationalRegimeType' as 'operating language' is part of the heading "<IP_ADDRESS>.1	Route book specific parameters
(Specifical technical characteristics)" in the latest legal text, so it is not clear to which concept does it apply to in the ontology. No domain will be added.
companyCodeCategory is a property of org:Organization which is a reused class. No domain is specified following Reuse good practices. (It could be stated as equivalent to org:classification, this change needs further discussion)
'linearCoordinate' and 'relativePosition' have been deprecated

ok, the ontology has been mapped in the smart data models in he subject dataModel.ERA. We also provide credit to the original authors.
Please let me know when changes are done to update the mapping.

Dear @albertoabellagarcia, how do you handle the versioning?


Coverity 404

There may be a problem with your coverity account https://coveralls.io/github/phly/keep-a-changelog?branch=master

I was confused by the title and description, as I've never used Coverity.. but the link is to Coveralls, which I do know about... and for which I'd not setup the integration.
Done now, though no builds have yet been triggered.


fix: enable scoped packages and minor fixes

Description of changes

Issue #, if available

Description of how you validated changes
Checklist

[ ] PR description included
[ ] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies

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

Codecov Report

:exclamation: No coverage uploaded for pull request base (tagged-release-without-e2e-tests/GqlExtensibility@3e14733). Click here to learn what that means.
The diff coverage is n/a.

@@                                 Coverage Diff                                  @@
##             tagged-release-without-e2e-tests/GqlExtensibility    #8933   +/-   ##
====================================================================================
  Coverage                                                     ?   55.33%
====================================================================================
  Files                                                        ?      877
  Lines                                                        ?    49758
  Branches                                                     ?    10760
====================================================================================
  Hits                                                         ?    27535
  Misses                                                       ?    20173
  Partials                                                     ?     2050

Continue to review full report at Codecov.

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


Mouse over leader icons shows relationships. Fixes #269.

This introduces a new feature to CQUI that presents the same information that can be found inside the diplo screen (in the Relations section) in a quick and handy manner. Details follow in the next comment.
Fixes #269.

How it works:
Holding CTRL down while "mousing" over any leader icon on the diplo ribbon now shows the relations of the other civs with respect to the selected leader. The selected leader will be clearly identified by the "YouIndicator", the golden corona surrounding the player in vanilla. The selected leader and the corresponding relation icons of the other leaders will stay selected until one of the following:

Selecting another leader with CTRL + mouse over
Right-clicking the local player leader icon
Any of the refreshing methods as in vanilla: change of turn, new deal, etc etc.

Important notes:

When selected leader is not the local player, relationship tooltips are NOT shown, to preserve the "no non-available info" criteria.
Relationship icons are exactly the same information presented inside the diplomacy screen, under "Relations" for each leader.
Non-met leaders for other civs present a "Neutral" relationship as of now, but we can later try to replace that with an "Unmet" message and possibly icon.

This is so slick! The control shortcut feels perhaps a little difficult, however. I understand this is by necessity since we're running quite short on unique ways to interact with the banners at this point, but perhaps we could also bind this functionality to middle mouse?


Can not manipulate Chinese character.

The Chinese character will display as '?'.
and If there are Chinese characters in file, the operation, such as delete, will do not work properly.

Going to close out in favour of #868.


Initial release

Developer(s): @mkoziy

Peer Reviewer:

Ticket: https://spryker.atlassian.net/browse/ECO-86

Academy PR: https://github.com/spryker/madcap.spryker.github.io/pull/321

Please confirm

[x] No new OS components - or they have been approved by legal department
[x] All new or heavily changed classes get an "A" rating (Scrutinizer), except Facades, Factories, QueryContainers and Tests

Documentation

[x] Functional documentation provided or in progress?
[x] Integration guide for projects provided or not needed?
[x] Migration guides for all contained majors provided or not needed?

Release Table

Module
Release Type
Constraint Updates

FactFinderSdk
major (new)
FACT-Finder/FACT-Finder-PHP-Library, Category, CategoryDataFeed, Kernel, Locale, Log, Monolog, Price, Product, ProductAbstractDataFeed, ProductCategory, ProductImage, PropelOrm, Stock, Url, Symfony, ZedRequest

Release Notes

Module FactFinderSdk
Maxi-Major: New or fully refactored module.
Def of done (by responsible developer):

[x] API methods are defined and have specifications API-doc.
[ ] All dependencies are defined, checked and corrected.
[x] Cleanups are resolved or closed. cleanups.
[x] New and changed facade methods covered by functional tests. / Has nothing to test.
[x] New and changed complex business logic is covered by unit or integration tests. / Has nothing to test.
[x] Migration guide provided / It's a new module.
[x] Module description in README is up to date.

Change log
Initial Release
Initial release

The constraint updates look all wrong!


RSS for website blog

Reinstate RSS for the blog
Context:

https://cloud-native.slack.com/archives/C02UN96HZH6/p1704185453199929
#3615

though I'm thinking that if I can just enable it for the Blog landing page, it won't be a big overhead.

I think this is what we should be doing, this is what I see people using RSS for


Why is there GIFT in history if I bought and accepted offer?

I bought an item and then accepted the offer; why is there a GIFT in history?
https://beta.kodadot.xyz/bsx/gallery/2362109764-1

Payment link for reward
https://beta.kodadot.xyz/transfer/?target=HgpGWWmqrw8t6viwSy6LPcTVr2SuVPKWW5ArdNp2xCJY2U4

👋

as discussed in PR and in

https://github.com/kodadot/snek/issues/44

correct way to fix this is at the indexer level  cc: @zhengow @KngZhi 👀

Okay, let me try it.

👋

https://github.com/kodadot/snek/pull/46

pay 50 usd

alright, tested this a bunch and it seems all of this got cleaned up:

https://github.com/kodadot/snek/pull/46

Imo bounty should be paid but the @kodabot hasn't worked :/

@petersopko @yangwao mind take a look?

added your address here, let me try

pay 75 usd

😍 Perfect, I’ve sent the payout
💵 $75 @ 61.12 USD/KSM ~ 1.227 $KSM
🧗 HgpGWWmqrw8t6viwSy6LPcTVr2SuVPKWW5ArdNp2xCJY2U4
🔗 0x4fbe7e10681d46d2656458abd9180f35fd1d021a23b17046ed9b8c9d31a1b620
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues

added your address here, let me try

Many thanks :)


ansible_doc_generator/doc_generator.rb:59:in `join': no implicit conversion of nil into String (TypeError)

❯ ansible-doc-generator -p roles.yml
/usr/local/lib/ruby/gems/3.0.0/gems/ansible_doc_generator-0.1.0/lib/ansible_doc_generator/doc_generator.rb:59:in `join': no implicit conversion of nil into String (TypeError)
	from /usr/local/lib/ruby/gems/3.0.0/gems/ansible_doc_generator-0.1.0/lib/ansible_doc_generator/doc_generator.rb:59:in `tasks_yml_path_for_role'
	from /usr/local/lib/ruby/gems/3.0.0/gems/ansible_doc_generator-0.1.0/lib/ansible_doc_generator/doc_generator.rb:26:in `block in parse_roles'
	from /usr/local/lib/ruby/gems/3.0.0/gems/ansible_doc_generator-0.1.0/lib/ansible_doc_generator/doc_generator.rb:25:in `each'
	from /usr/local/lib/ruby/gems/3.0.0/gems/ansible_doc_generator-0.1.0/lib/ansible_doc_generator/doc_generator.rb:25:in `parse_roles'
	from /usr/local/lib/ruby/gems/3.0.0/gems/ansible_doc_generator-0.1.0/lib/ansible_doc_generator/doc_generator.rb:18:in `call'
	from /usr/local/lib/ruby/gems/3.0.0/gems/ansible_doc_generator-0.1.0/bin/ansible-doc-generator:39:in `<top (required)>'
	from /usr/local/bin/ansible-doc-generator:23:in `load'
	from /usr/local/bin/ansible-doc-generator:23:in `<main>'

Any idea why this is happening
gem installed:

ansible_doc_generator (0.1.0)

❯  gem --version
3.2.15
❯  ruby --version
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]

Hi @augustync I think it's because of using Ruby 3. We've tested only with Ruby 2.7.x. We'll take a look ASAP

Hi, @augustync
Thanks a lot for reporting this.
I think this might be due to have some roles without the role key with the path. Meaning, in the yml there should be something like:
  roles:
    - { role: 'handlers' }
    - { role: 'chores/centos/install_base_packages' }

Because the gem iterates through all the roles to add the documentation for each one.
I updated the code to fix this bug and it will ignore those roles without the path. Could you please try the new version? Since the gem is not updated yet, you'll need to install the source code and run it from there like:
git clone https://github.com/PopulateTools/ansible-doc-generator.git
cd ansible-doc-generator
bin/setup
bin/ansible-doc-generator -p /path/to/your/roles.yml

Please let us know if this fixed it. If not, could you please attach a non-working roles.yml example so we can try it ourselves?
Thanks again


switch visibility bug

switches (in style plugin) sometimes are unreadable in dark mode

should be finally fully smoothed with latest push, but let me know if there are still any issues