Is there any way to set the default text style?

Is there an existing issue for this?

[X] I have searched the existing issues

The question
I tried this
_controller.formatTextStyle(0, 0, Style.fromJson({'color': '#fcba03', 'size': 24.0}));

But once the user removes the first character, the text style is reverted.
I think this is similar to #1778

As a workaround, for now I added a listener to handle the change like so:
initState:
_controller.addListener(onTextChangeListener);

dispose:
_controller.removeListener(onTextChangeListener);

the listener:
onTextChangeListener() {
    final isEmpty = _controller.document.isEmpty();
    final isBlank = _controller.document.toPlainText().trim().isEmpty;
    if (isEmpty || isBlank) {
      _controller.removeListener(onTextChangeListener);
      setDefaultTextStyle();
      _controller.addListener(onTextChangeListener);
    }
  }

setDefaultTextStyle() {
    if (widget.defaultTextStyle != null) {
      _controller.formatTextStyle(
          0,
          0,
          Style.fromJson({
            'font': widget.defaultTextStyle!.fontFamily,
            'size': widget.defaultTextStyle!.fontSize,
            'bold': widget.defaultTextStyle!.fontWeight == FontWeight.bold ? true : null,
          }));
    }
  }

Setting the default text style looks to be possible using QuillEditorConfigurations.customStyles.
In the example app code in file lib\screens\quill\samples\my_quill_editor.dart line 46 shows how the h1 style is set. You could add a style for paragraph:

customStyles: const DefaultStyles(
paragraph: DefaultTextBlockStyle(TextStyle(color: Colors.purple), VerticalSpacing(0,0), VerticalSpacing(0, 0), null),),

Code snippet:

Widget build(BuildContext context) {
final defaultTextStyle = DefaultTextStyle.of(context);
return QuillEditor(
configurations: configurations.copyWith(
customStyles:  DefaultStyles(
paragraph: DefaultTextBlockStyle ( defaultTextStyle.style.copyWith(color: Colors.purple,),

(Sorry for lack of formatting - I haven't figured out how to indent in code block!)

@AtlasAutocode Thanks for the fix. It seems to work to keep styles, but the problem still happens when using a custom font, it changes it to normal.

@AtlasAutocode I already tried that before the above workaround. It changes the style on the editor, but it does not save it when you do something like _controller.document.toDelta().toJson().

OK, I think there may be 2 completely separate issues here.
The first is the display in the editor and that works as discussed. Json can be saved and reloaded and will obey the styles you have set.
The second is exporting the data from the editor, presumably with the intent of importing into another application. (It would be helpful if you can share what you intend to do with the json.)
In looking at the output from toDelta, I see it contains attributes (by name) but it does not include any styles associated with each attribute.
Am I correct that you want the entire style details to be exported from the editor? If this is the case then I would guess that the problem is how you handle the deltas.
I can see several possibilities:

Explore exporting as PDF or HTML
Implement your own replacement for the toJson function to output the full styles rather than just the attribute name.
Something appropriate to your intended use?

What I was expecting is an easy way to set the default style on the editor. E.g: Set default color to red.
Using the above code(customStyles), it shows the text in red color in the editor:

but then if I continue editing and add another color like so:

and then when I save to delta(forget about Json for now) using _controller.document.toDelta()
it is saved like so:

Now regarding of what I am doing with the Json: I am saving it to a database, so then I can show the rich text in readOnly mode in the same way it was saved. Everything works fine. Previously I was using HTML, but I was getting too many problems in the conversions, so that is why I changed delta json.

I took one of my files with normal black text saved using delta+json.
I set the QuillEditor custom style for paragraph to red.
Loading the file now showed the text in red.
I added some blue text and saved.
Reloading showed the original text in red and the added blue text.
Next, I changed the paragraph style to green and restarted the program.
My file now showed with the original text in green and the added blue text.
The default display color is obeying what is set in the custom style. The saved file will not show any color since it will show as whatever the default is set for. (I assume your viewer is set with the same custom style as that used to generate the data.)
Can you provide the json for each of your 3 images?

(I assume your viewer is set with the same custom style as that used to generate the data.)

Sorry, I was displaying the saved text in a new editor(without customStyles set), just to show that custom styles are not saved in the delta json.
Here is the json for each image:

[{insert: asd}]

[{insert: asd}, {insert: asd, attributes: {color: #FF42A5F5}}, {insert: }]
Then showing that Json in a new editor in readOnly mode without customStyles set

So perhaps as a workaround to save the default styles in the JSON array, I would need to iterate it and insert the "attributes" field with the custom styles for each map that does not contain it. Not sure if that would work and if it would be a desirable solution. Thanks for your help!

New issue #1971


Add mypy annotations.

Added to:
zerver/lib/integrations.py
zerver/tests/test_integrations.py
zerver/tests/test_management_commands.py
zerver/views/integrations.py
zerver/views/webhooks/circleci.py

Automated message from Dropbox CLA bot
@TomaszKolek, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, thanks @TomaszKolek!


Merge 1.6.x into 1.7.x

Had to manually resolve merge conflicts in HotDataFlow, DefaultExposureDetectionTracker and in ExposureDetectionTrackerStorage
Fixed one little merge regression in unit tests

This also fixes EXPOSUREAPP-3808 (config update in bursts).


Dockerfile for SLAM agent

https://github.com/facebookresearch/habitat-api/blob/8c5329ce9f777395b45c2daac135377e629ec148/Dockerfile#L49
Is it possible to update the Dockerfile to have the SLAM agent running? The install script "install_deps.sh" doesn't seem to work for now.
Big thanks in advance!

Error information by running "install_deps.sh"
Build type: Release
-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Performing Test COMPILER_SUPPORTS_CXX0X
-- Performing Test COMPILER_SUPPORTS_CXX0X - Success
-- Using flag -std=c++11.
-- Found PythonLibs: /opt/conda/envs/habitat/lib/libpython3.6m.so (found suitable version "3.6.8", minimum required is "3.6")
-- Found NumPy: /opt/conda/envs/habitat/lib/python3.6/site-packages/numpy/core/include (found version "1.16.3")
CMake Warning at /opt/cmake/share/cmake-3.13/Modules/FindBoost.cmake:1775 (message):
  No header defined for python-py35; skipping header check
Call Stack (most recent call first):
  CMakeLists.txt:33 (find_package)

CMake Error at /opt/cmake/share/cmake-3.13/Modules/FindBoost.cmake:2100 (message):
  Unable to find the requested Boost libraries.

  Unable to find the Boost header files.  Please set BOOST_ROOT to the root
  directory containing Boost or BOOST_INCLUDEDIR to the directory containing
  Boost's headers.
Call Stack (most recent call first):
  CMakeLists.txt:33 (find_package)

-- Found OpenCV: /opt/conda/envs/habitat (found version "3.4.2")
-- Found ORB_SLAM2: /habitat-api/baselines/slambased/3rdparty/ORBSLAM2_installed/lib/libORB_SLAM2.so
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Boost_INCLUDE_DIR (ADVANCED)
   used as include directory in directory /habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings
   used as include directory in directory /habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings
   used as include directory in directory /habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings
   used as include directory in directory /habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings
   used as include directory in directory /habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings
   used as include directory in directory /habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings
   used as include directory in directory /habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings

-- Configuring incomplete, errors occurred!
See also "/habitat-api/baselines/slambased/3rdparty/ORB_SLAM2-PythonBindings/build/CMakeFiles/CMakeOutput.log".
./install_deps.sh: line 60: /habitat-api/baselines/slambased/3rdparty/eigen3_installed/include/eigen3: Is a directory
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target 'install'.  Stop.

Hi @kudo1026,
Thanks for reaching out. Unfortunately, we don't have Dockerfile for SLAM agents.
Regarding the error, looks like boost library is missing. Can you try run next commands and rerun install_deps.sh
source activate HandcraftedAgents
conda install -c conda-forge boost-cpp -y

cc @ducha-aiki .

Closing the issue because it has not had recent activity.


Update BailOut.cpp

Removes condition in ENABLE_SCRIPT_DEBUGGING assertion check for Js::Configuration::Global.EnableJitInDebugMode()
Fixes #4311

Hi @jsmayo - thanks for taking a look at this. Can you put all of these changes into a single pull request?

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

@zenparsing sorry about that! I've gone ahead and combined my earlier commits for #4311 into my patch-3 branch. They show as committed on my side, but please let me know if something amiss and I'll get right on it.

Hi @jsmayo are you still interested in completing this?
I've just taken a quick look and I think there a total of 8 files you'll need to update not just these 3. In addition the Assert in BailOut.cpp actually needs deleting - it will no longer be valid once this flag is gone - that's why the tests are failing.

Oh okay. I’ll take a look at it and see what I can do! Thanks for letting me know :)
Sent from my iPhone

On Apr 9, 2020, at 5:13 PM, Richard<EMAIL_ADDRESS>wrote:

Hi @jsmayo are you still interested in completing this?
I've just taken a quick look and I think there a total of 8 files you'll need to update not just these 3. In addition the Assert in BailOut.cpp actually needs deleting - it will no longer be valid once this flag is gone - that's why the tests are failing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Updated a few files, but waiting on results from checks.

Meh, sorry for the confusion... trying to work with a language that I
haven't used and not having used Azure until last night is a bit of a mess
right now with my schedule. It might be better off handing this to someone
else for time sake. Thanks for the opportunity though.
Thanks,
Jesse Mayo
[image: pixel]
On Thu, Apr 16, 2020 at 4:05 AM Richard<EMAIL_ADDRESS>wrote:

@rhuanjl commented on this pull request.
In lib/Backend/BailOut.cpp
https://github.com/microsoft/ChakraCore/pull/6318#discussion_r409356518:

@@ -1428,9 +1428,7 @@ BailOutRecord::BailOutHelper(Js::JavascriptCallStackLayout * layout, Js::ScriptF

#ifdef ENABLE_SCRIPT_DEBUGGING
bool isInDebugMode = executeFunction->IsInDebugMode();

AssertMsg(!isInDebugMode || Js::Configuration::Global.EnableJitInDebugMode(),

   "In diag mode we can get here (function has to be JIT'ed) only when EnableJitInDiagMode is true!");

AssertMsg(!isInDebugMode, "In diag mode we can get here only when isInDebugMode is true!");

This Assert needs to be deleted, it's not valid without the flag.
In lib/Backend/JITTimeWorkItem.cpp
https://github.com/microsoft/ChakraCore/pull/6318#discussion_r409357664:

-JITTimeWorkItem::IsJitInDebugMode() const
-{

// TODO (michhol): flags?
return Js::Configuration::Global.EnableJitInDebugMode()

   && m_workItemData->isJitInDebugMode;

-}
This should be kept just as only returning the value of
m_workItemData->isJitInDebugMode; without the flag check.
In lib/Backend/JITTimeWorkItem.cpp
https://github.com/microsoft/ChakraCore/pull/6318#discussion_r409357922:

if (IsJitInDebugMode())

{

   // TODO: OOP JIT, directly use the array rather than making a list

   m_fullStatementList = Js::FunctionBody::ArenaStatementMapList::New(alloc);

   CompileAssert(sizeof(StatementMapIDL) == sizeof(Js::FunctionBody::StatementMap));

   StatementMapIDL * fullArr = m_jitBody.GetFullStatementMap();

   for (uint i = 0; i < m_jitBody.GetFullStatementMapCount(); ++i)

   {

       m_fullStatementList->Add((Js::FunctionBody::StatementMap*)&fullArr[i]);

   }

}

This needs to stay.
In lib/Backend/NativeCodeGenerator.cpp
https://github.com/microsoft/ChakraCore/pull/6318#discussion_r409359488:

@@ -160,12 +160,6 @@ void NativeCodeGenerator::Close()
// Close FreeLoopBodyJobManager first, as it depends on NativeCodeGenerator to be open before it's removed
this->freeLoopBodyManager.Close();

// Remove only if it is not updated in the debug mode (and which goes to interpreter mode).
if (!hasUpdatedQForDebugMode || Js::Configuration::Global.EnableJitInDebugMode())
{

   Processor()->RemoveManager(this);

Should keep: Processor()->RemoveManager(this); just get rid of the if
around it. (We're removing this flag because it's always true - hence this
was an if(true).
In lib/Backend/NativeCodeGenerator.cpp
https://github.com/microsoft/ChakraCore/pull/6318#discussion_r409359736:

if (Js::Configuration::Global.EnableJitInDebugMode())

{

   Processor()->AddManager(this);

}

As above - need to keep Processor()->AddManager(this);, just without the
if.
In lib/Jsrt/JsrtDebugManager.cpp
https://github.com/microsoft/ChakraCore/pull/6318#discussion_r409360345:

   if (Js::Configuration::Global.EnableJitInDebugMode())

   {

       scriptContext->GetThreadContext()->GetDebugManager()->GetDebuggingFlags()->SetForceInterpreter(true);

   }

Need to keep this as well - just get rid of the if and always do it.
In lib/Jsrt/JsrtDebugManager.cpp
https://github.com/microsoft/ChakraCore/pull/6318#discussion_r409360624:

if (Js::Configuration::Global.EnableJitInDebugMode())

{

   scriptContext->GetThreadContext()->GetDebugManager()->GetDebuggingFlags()->SetForceInterpreter(false);

}

And again - get rid of the if but keep the code that was inside it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/ChakraCore/pull/6318#pullrequestreview-394385846,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGCZA7XUUVIDU7WNDBQ6HZDRM235VANCNFSM4JHAR7SA
.


Technical Blogpost - Part 3

In part 3 of the series, we would like to discuss how we interact with the Terraform CLI and in turn with the native Terraform providers, the operation environment for Terraform CLI, Terraform CLI configuration, how we package Terraform native providers, etc.

Blogpost published here:
https://blog.crossplane.io/deep-dive-into-terrajet-part-iii/


Update about-this-design-guidance.md

Docs Build status updates of commit ad7e430:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

mixed-reality-docs/about-this-design-guidance.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


How to start scripts on boot?

Your MagPi article talks about instructions for starting the scripts on boot: "see the repository README". Could you add this information to the README file?

Of course. It's there now.

Thanks!


Spell check

The word "verify" in heading of the section at the anchor linked below is misspelled.
https://learn.microsoft.com/en-us/entra/identity/hybrid/verify-sync-tool-version#verfiy-connect-sync

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

ID: dfbbfe1a-7192-ae14-764e-1ccbd130545b
Version Independent ID: 5cba21f3-9f28-ed39-3480-47a676655c6b
Content: Verify your version of cloud sync or connect sync - Microsoft Entra ID
Content Source: docs/identity/hybrid/verify-sync-tool-version.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

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

@johnathansagarcsuci
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.
https://github.com/MicrosoftDocs/entra-docs-pr/pull/745


Loading jQuery before angular

First of all, great boilerplate.
Im using jquery.sortable in my application and it requires that jquery is loaded before angular, but i cant seem to make gulp do this, can you give any hints?

Hi,
Frontend uses bower to handle 3rd party libraries. So basically you need to use bower install <yourpackage> --save command to install any 3rd party library that you need. And then if you need to change the load order of those see your bower.json file and modify it.

Thank you!

@tarlepp Thank you!


fixed issue with few points

Fixed bug #564. If the number of calibration points are reduced the A/B values are not cleared and the calculated gravity is wrong.

Thank you for taking a look at this one!

Thank you for taking a look at this one!


PreciseAnswer feature support

Fixes #2523
Proposed Changes
Appsettings Request and Response changes for integrating Precise Answer changes in SDK. for C#

    }

There is no 'await' in this method.

Refers to: samples/csharp_dotnetcore/49.qnamaker-all-features/Dialog/QnAMakerBaseDialog.cs:42 in 9701d85. [](commit_id = 9701d8569c0e5210ae9bdf75921404fce3b6b16e, deletion_comment = False)

reviewing in progress


Delete on any row always removes first item (Nova 4)

When clicking the delete icon on the right hand side for any row, the first item in the repeatable list is removed

I have same problems. Can it fixed?

Heya! Fixed in version 2.0.1. Good luck!


Bug: Pressing enter in Search bar of repo tab scrolls to top and may refresh repos without doing any functionality

Describe the bug

Clicking enter isn't supposed to work, yet it scrolls the page to top and may occasionally reload the repos.
This behavior should be removed.
Steps to reproduce
Open Search bar in Explore's Repository Tab, write anything and click enter.
Affected services
insights.opensauced.pizza
Platforms
No response
Browsers
No response
Environment
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[ ] I agree to follow this project's Contribution Docs

We could (should IMHO) tabindex stuff :D

I guess I can fix this, can I work on this issue?
and, I have suggestions:

add arrow up and down functionality to select item in auto complete
show skeleton loading or spinner when autocomplete fetch data from api.

How's that sounds @0-vortex ?

I guess I can fix this, can I work on this issue?
and, I have suggestions:

add arrow up and down functionality to select item in auto complete

show skeleton loading or spinner when autocomplete fetch data from api.

How's that sounds @0-vortex ?

Add tabindex in the mix and i'm sold 😁

Hey thanks for responding.
I know little bit about tabIndex, and I've use it in another project to implement similar features (the arrow up and down button navigation) , basically I used tabIndex="-1" to every item in list to be able to navigate through code.
is that similar to what you want? or are you want different kind of tabIndex implementation? can you please elaborate more on that? just to make sure I got what you mean.

Hey thanks for responding. I know little bit about tabIndex, and I've use it in another project to implement similar features (the arrow up and down navigation) , basically I used tabIndex="-1" to every item in list to be able to navigate through code.
is that similar to what you want? or are you want different kind of tabIndex implementation? can you please elaborate more on that? just to make sure I got what you mean.

A good resource for all things accessibility is a11yproject: https://www.a11yproject.com/posts/how-to-use-the-tabindex-attribute/

Okay I'll study that, thanks for the reference

A good resource for all things accessibility is a11yproject: https://www.a11yproject.com/posts/how-to-use-the-tabindex-attribute/

After I've read the article, I kinda get it supposed to be helping us navigate using Tab key, but I'm still confused about how this can help solve this particular issue:

Clicking enter isn't supposed to work, yet it scrolls the page to top and may occasionally reload the repos.

I've search through internet and none mentioned about preventing enter or reload behaviour with tabindex. Or I misunderstood your statement?

We could (should IMHO) tabindex stuff :D

Sorry for a lot of questions, but I'm just want it to get it right.

A good resource for all things accessibility is a11yproject: https://www.a11yproject.com/posts/how-to-use-the-tabindex-attribute/

After I've read the article, I kinda get it supposed to be helping us navigate using Tab key, but I'm still confused about how this can help solve this particular issue:

Clicking enter isn't supposed to work, yet it scrolls the page to top and may occasionally reload the repos.

I've search through internet and none mentioned about preventing enter or reload behaviour with tabindex. Or I misunderstood your statement?

We could (should IMHO) tabindex stuff :D

Sorry for a lot of questions, but I just want it to avoid misunderstanding.

Enter also has to be fixed, however, before that we need to ensure we are focusing the right components. Pressing enter to submit is a desktop only feature, while navigating between different areas of the site is universal.
More effort in a11y means the site will be available for people that are less able than the general user (think about screen readers, voice navigation, etc): that is more valuable than satisfying ease of use concern of normal users (having the enter work).
TL;DR: a11y > ux, when we are full 2.1 compliant we can make desktop-only improvements. Do the enter fix last, IMHO

Thank you for the detailed clarification.
So, if I understand it correctly, we aim to be 2.1 compliant first.
we fix any accessibility problems, for now.
Do I need to fix accessibility problems on the whole site or on this page only?
Let me see what I can do with it. I'll update you if I'm able to do it and make a draft PR.

Thank you for the detailed clarification.
So, if I understand it correctly, we aim to be 2.1 compliant first. we fix any accessibility problems, for now.
Do I need to fix accessibility problems on the whole site or on this page only? I guess it would be huge PR to review if we fix the whole page?
Let me see what I can do with it. I'll update you if I'm able to do it and make a draft PR.

Just this part for this issue. Not sure just fixing tabindex will correct the enter, will have to check

Okay I got it.
I'll first do some research how to make search-autocomplete component that respect the a11y / 2.1 compliant.
Earlier I've done some research on radix-ui, turns out they don't have search-autocomplete component yet, will do research other library, maybe I'll find some insight how to implement it correctly.
Thank you for the guidance. I'll make a PR when I'm ready.

@doaortu just checking in to see if you have questions. Also, feel free to ask for help if needed

Hi, @takanome-dev , sorry for the late response.
Lately, I don't have much time to work on this issue.
I'm afraid I can't deliver it in a timely fashion.
Please feel free to unassign me if I'm interfering with the Milestone deadline.

Thanks for the response, @doaortu. No rush or deadline for this issue, so take your time. If you're unable to work on it, feel free to unassign yourself. If anyone else is interested, please let me know. :slightly_smiling_face:

.take


Jitter transform?

Especially in conjunction with the dodge transform when the inputs are highly quantized. Another option could be that the dodge transform interprets the input values as a range (with some uncertainty) and finds the position within the range that minimizes the stacked value.
Ref. https://observablehq.com/d/a26e34c1902de423

I'm not opposed to the idea, but this can be written as a map:
Plot.mapX((v) => v.map((d) => d + random(), { … x: "rating" … })
which might be easier to read and modify and expand upon—even for people who are just a bit familiar with javascript.
I like the second idea better, where the dodge transform would allow some uncertainty to optimize its layout.  It would be great to have a less stringent dodge transform, for when the x value is itself just an indication (a sample) of the value, and not an exact value that needs to be perfectly encoded—and we are willing to use this to make a more compact chart.
The best algorithm in that case might be something else than jitter, so it makes more sense to offer this as an option to the dodge transform (such as layout: "jitter", which could be complemented by other algorithms, or with a custom function). For example, why jitter a point that is on its own, if it's optimal—an algorithm that tries 5 positions and retains the best at each step might perform better.

Yes, improving the dodge transform is the better solution for the motivating use case. But jittering is a nice tool to have too.
I agree this could be implemented as a map method, too. I think the main advantage over calling Math.random would be to make it seeded by default so that the layout is deterministic and reproducible.

Yes, I've left out the definition of random :-) Some might want a seeded randomNormal instead of uniform.

Something else to consider is what happens when the dodged axis is categorical. In this example, I would like to be able to use a small jitter to prevent the dots from overlapping with other categories

@nachocab I think in that example you would want jitter along x, not along y, since the dodgeX transform is already computing the y offset. For example if you use x: (d) => d["IMDB Rating"] && (d["IMDB Rating"] + Math.random() * 0.1) you get this:

@mbostock Thanks! That helps, but I guess what I'm really after is a way to limit the height of each facet. For example, if there are many dots, jittering on the x can still lead to collisions:

Basically, just sampling from a uniform distribution like in this example. I think that's what geom_jitter(width=0.1) in ggplot does:

For this particular chart, since the category is given by the facet fy, you can use y to jitter:
Plot.dot(data, { x: "date", fill: "cat", r: 1.5, fillOpacity: 0.5, y: Math.random })
If you also set y: {axis: null} you get:

Another approach could be:
Plot.rect(data, Plot.binX({opacity: "count", interval: 1}, { x: "date", fill: "cat", inset:0}))
with
opacity: {range: [0.1, 1], type:"log"},

Thanks, Phil! I would have never thought of that.
I reduced the size of each jitter band by playing with fy.padding and height. I'm not sure if there's a better way.

Sure! You could also say y:{ axis: null, domain: [-0.5, 1.5]} (since the random distribution covers [0, 1], this would leave some gaps too). Many options!


SELinux may block shared folders in docker container

Certain linux distributions use Security Enhanced Linux (SELinux) for kernel security. This may cause issues with the docker container being unable to access the shared folders.
The following command resolved this issue for me
sudo chcon -Rt svirt_sandbox_file_t /path/to/nubots/shared/folder

Docker is no longer useable


Recognize Emulator extension in App Finder/File Explorer

When the user has already installed Emulator when clicking on a file that the Emulator can open.

Tracked via Microsoft/BotFramework-Emulator/issues/87


[std] Fix std.addRunnable() possibly clobbering files in brioche-run.d

When std.addRunnable() is called, it assumes nothing else is under brioche-run.d, and will add recipes to this folder starting with the name recipe-0. This can cause problems if std.addRunnable() is called more than once. We need a scheme to add files in a way where calling std.addRunnable() more than once uses separate paths for each runnable

One possible scheme:

std.addRunnable(recipe, "bin/path", { ... }): Puts runnable files under brioche-run.d/bin/path/...`


WIP: debug for flakey tests

xref https://github.com/matrix-org/matrix-rust-sdk/pull/3666

Closing as this seems pretty stable now.


translate_error for forms not working when use Ecto.Changeset.unsafe_validate_unique

i was using petal component but i wrote different set component for my project and i was using a lot of petal component source code because in my opinion it is awesome lib but when i used unsafe_validate_unique and the default the phoenix generate better and works fine with gettext

You might have to put this in your config:
config :petal_components, :error_translator_function, {<YourApp>Web.ErrorHelpers, :translate_error}


Time offset in playback position

The connect-client's playback position is approximately 50s behind the real one.
So when the playback is at 3m 0s, the player shows 2:10.
When the playback is paused, the offset is gone.
Additional symptoms:

When the client gets negative position, it shows the seekbar and time as the track would be ending right now (position = duration) until the end of the current song.
Songs end when the seekbar shows 50s remaining.

Librespot version: ef28df6
built with: --no-default-features --features alsa-backend --release
Client version:
<IP_ADDRESS> (Linux)
Webclient is also affected.

Check that your device time is aligned with any NTP server.

@devgianlu there is almost certainly some time sync going on between clients. I found a core.clock_delta variable earlier in the client, I imagine they are keeping time synced across instances.

That makes sense since the original client isn't effected by this issue, but I think that synchronizing with an NTP server by shifting the system time is enough for our purpose.
I think that implementing it in librespot shouldn't be very difficult as it's already relaying on custom function to get the time.

Packet 0x4 (https://github.com/librespot-org/librespot/blob/master/core/src/session.rs#L170)  contains a timestamp as the payload.

I suspect this sequence of packets is used for time synchronization

The Ping (0x4) packet seems to have the server timestamp as a payload. PongAck (0x4a) will reply with anything that is sent with Pong (0x49).

I can confirm time-synchronization solved the problem, but I think this is not the optimal solution.
There should be some info about this requirement until the official protocol is implemented.
Anyway, thanks for the help and the possible future implementation!

It doesn't seem to be the same behavior, though it could be the same bug. For example, my clients don't stop paying before the song ends, or based on erroneous UI settings.
But I dug in and looked into the clocks...
The device and my laptop (where the clients are) were within 1 second of one another; close enough that I can't tell without running some kind of sync script between them. When I sync'd them both to the same ntp server, one was off by -0.011 seconds, the other by +0.041 ... so a total mismatch of 5 one hundredths of a second. Neither was off from "real" time (where presumably the spotify servers live) by even that much.
The device also does an ntp sync every day, at midnight or some such, so a manual force shouldn't be required.
But indeed, forcing a resync to ntp on the device where librespot was playing, then killing librespot and starting again did make these problems go away.
Seems like 0.05s is a little tight for tolerance :-[

#321 should fix this.


cannot import name 'cached_download' from 'huggingface_hub'

Bug 💥
ImportError: cannot import name 'cached_download' from 'huggingface_hub' (/Users/littlebuddha/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/huggingface_hub/init.py)"
}
Expected behavior  🧮
Download the required models
analyzer = dd.get_dd_analyzer()

Screenshots 🖼
If possible, please add a screenshot of the error message, if possible
Desktop (please complete the following information, if any other than the one in the install requirements):

OS: macOS (Apple Silicon)

Additional context 🧬
{
"name": "ImportError",
"message": "cannot import name 'cached_download' from 'huggingface_hub' (/Users/littlebuddha/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/huggingface_hub/init.py)",
"stack": "---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[5], line 1
----> 1 analyzer = dd.get_dd_analyzer()
File ~/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/deepdoctection/utils/file_utils.py:699, in _LazyModule.getattr(self, name)
697     value = self._get_module(name)
698 elif name in self._class_to_module.keys():  # pylint: disable=C0201
--> 699     module = self._get_module(self._class_to_module[name])
700     value = getattr(module, name)
701 else:
File ~/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/deepdoctection/utils/file_utils.py:709, in _LazyModule._get_module(self, module_name)
707 @no_type_check
708 def _get_module(self, module_name: str):
--> 709     return importlib.import_module("." + module_name, self.name)
File /opt/homebrew/Cellar/python@3.9/3.9.19_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/init.py:127, in import_module(name, package)
125             break
126         level += 1
--> 127 return _bootstrap._gcd_import(name[level:], package, level)
File :1030, in _gcd_import(name, package, level)
File :1007, in find_and_load(name, import)
File :986, in find_and_load_unlocked(name, import)
File :680, in _load_unlocked(spec)
File :850, in exec_module(self, module)
File :228, in _call_with_frames_removed(f, *args, **kwds)
File ~/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/deepdoctection/analyzer/init.py:22
1 # -- coding: utf-8 --
2 # File: init.py
3
(...)
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
18 """
19 Package for pre-built pipelines
20 """
---> 22 from .dd import *
File ~/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/deepdoctection/analyzer/dd.py:34
30 from typing import Optional, Union
32 from lazy_imports import try_import
---> 34 from ..extern.base import ObjectDetector
35 from ..extern.d2detect import D2FrcnnDetector, D2FrcnnTracingDetector
36 from ..extern.doctrocr import DoctrTextlineDetector, DoctrTextRecognizer
File ~/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/deepdoctection/extern/init.py:29
27 from .hfdetr import *
28 from .hflayoutlm import *
---> 29 from .model import *
30 from .pdftext import *
31 from .tessocr import *
File ~/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/deepdoctection/extern/model.py:27
24 from typing import Any, Mapping, Optional, Union
26 import jsonlines
---> 27 from huggingface_hub import cached_download, hf_hub_url  # type: ignore
28 from tabulate import tabulate
29 from termcolor import colored
ImportError: cannot import name 'cached_download' from 'huggingface_hub' (/Users/littlebuddha/Documents/GitHub/pdf_two_table/deepdoc/lib/python3.9/site-packages/huggingface_hub/init.py)"
}

Thanks!
The reason for this issue is that huggingface_hub 's compatible release isn't up to date anymore. I have already fixed this on master but when using pip you need to downgrade to huggingface_hub>=0.12.0,<0.26. A proper fix on PyPi will come into effect with v.0.35.0.

Closing with https://github.com/deepdoctection/deepdoctection/commit/ceca33c6b8d4ded44d307095e210180374028aed.


chore: add github ci

Closes #20
Adds CI with unit-test and lint as a starter.

I think we should merge this as soon as possible, as it is already catching errors. See the lint failure.


Add SuperKey Request Application flow

Implementing the steps for superkey. Which basically involves:

After application creation, if the source type is account_authorization then we send the superkey create request on kafka
After application deletion, send the superkey delete request similar to 1

Pulling in the superkey struct types for this - so they're just defined over in the superkey repo, if we send one marshaled we know it will work over there. Super nice!
# TODO:

[x] helper function for getting superkey authentication
[x] create request
[x] delete request
[x] application.extra _superkey special handling (populate SuperKeyData field on Application)
[x] superkey destroy middleware
[x] superkey destroy job

/retest

/retest

/retest

@lpichler could I get some :eyes: on this? It's been sitting for a while now.

@lpichler no worries, we're all busy. I'll rebase bulk create next and we can hopefully get that one in too.


How to customize the Ckeditor

Hi @artf,
Hope you are doing fine.
Can you please let us know to customize the provided ckEditor plugin as we want to add more option on link popup of ckEditor.
Please let us do this.
Thanks in Advance.Doing great job with GrapesJS.

@Deepak813 all you need is here https://github.com/artf/grapesjs-plugin-ckeditor/blob/master/README.md just read it carefully

I tried to add the color picker and the text align into the ckeditor by following the guide. But these are not showing in the toolbar. Any suggestion? thanks @artf


How can we specify Date Range

Hi @gjmolter
What is the step to give Date range, I wanted to highlight a date, (I,e., Start date = 13/July/2021 and End date = 16/July/2021) in this case I wanted to mark the date with an indicator (13, 14, 15, 16).
I tried and Failed with this method of doing.
{"allDay":true,"date":[""+moment(items[i].EventDate).toISOString()+"",""+moment(items[i].EndDate).toISOString()+""]}
How we can achieve this?
Thank you

Unfortunately it doesn't yet have the range feature. I am planning on adding it when I have some extra time. For now, the date property can only take a single timestamp.


chore(master): release 0.14.0-alpha

:robot: I have created a release beep boop
0.14.0-alpha (2024-01-16)
Features

改为本地搜索 (5ee33bb)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mafqla/yalis-blog/releases/tag/v0.14.0-alpha :sunflower:


Questions about the data

Thank you for your excellent work! I‘m interesting in constructing knowledge base.How do you construct the knowledge base? For example, ”light hanging over kitchen island“. Thank you for your patience.

I see，Thank you again for your patient answer！
------------------ 原始邮件 ------------------
发件人:                                                                                "XiangyangLi20/KERM"                                                                                @.>;
发送时间: 2023年5月15日(星期一) 下午4:12
@.>;
<EMAIL_ADDRESS>主题: Re: [XiangyangLi20/KERM] Questions about the data (Issue #1)
As described in our paper, ”Specifically, in the Visual Genome dataset, the parsed attribute annotations take the form of “attribute-object” pairs and the parsed relationship annotations take the form of “subject-predicate-object” triplets. We convert all of the “attribute-object” pairs and “subject-predicate-object” triplets to their synset canonical forms. “  Simply put, we collected the annotations on the Visual Genome dataset and converted them into phrases. For example, the annotation "light-hanging over-kitchen island"(i.e., subject-predicate-object) can be converted into the "light hanging over kitchen island". The code is in preprocess/get_knowledge_base.py.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


'server password' needed, but not documented

When following the Quick Start, there's Requirements, Install, Verify, Run. But then, the container asks for a server password:

What to enter here, or where to set it? It is missing in the documentation.

I've got the same, no solution for me at this time.

The password can be found by doing this on the host:
docker logs <container_name>
One of the lines in there will show:

info    - Password is XYZ

Use XYZ as the password into the IDE

It's weird, as sail seems to run code-server with the --no-auth flag:
https://github.com/cdr/sail/blob/bcf906366e626d48e9722319c3d50b5d8c48ec02/runner.go#L173

I think code-server changed the flag to --auth=none.


Slow queue wait implementation causes delay in processing of new main queue messages

If the main queue is empty after 20 seconds, the client then listens on the slow queue for 20 seconds. While listening on the slow queue, any item arriving in the main queue will have to wait till the slow queue listen is over, and the next main queue listen, to be processed.
Timeline:

Listener starts to wait on main queue
Nothing to process
Listener stops listening on main queue after 20 seconds
Listener starts to wait on slow queue
Nothing to process
After 1 second an item is added to the main queue
Listener stops listening on the slow queue after a further 19 seconds
Listener starts to wait on main queue
Item in main queue is immediately received and processed, 19 seconds after it was published.

Code to show in action:
topic  = :slow_queue_delay_test
client = Propono::Client.new

Thread.new do
  client.listen(topic) do |payload|
    puts "Message processed after #{Time.now.to_i - payload[:time]} seconds"
  end
end

# One second longer than the long-poll time.
sleep 21
PublishProponoMessage.(topic, { time: Time.now.to_i })

# Keep the main thread alive.
sleep 30

Suggested Solution:
Give the main queue a 20 second head-start, before listening on both queues. Reset this head-start after ever job processed.

Listen to the main queue for 20 seconds.
Listen to the main AND slow queues indefinitely.
If a job turns up in one queue or the other, process it, go back to (1).

I'll admit that my solution is marginally more brute force to yours: https://github.com/iHiD/propono/commit/32690a6c5f7f118523731a8dbcaef825af63311f :)

Closed by 32690a6.


Add tables to filter list property

Filter tables to gen code for by name
genSpring.filteredTables=providers

Checked in


Create source account

What
Create source account when invoking with an account that does not exist.
Why
For consistency with SDK tests that do the same.
The source account used in an invoke can only ever be created. There is no valid situation where an invoke can occur with an account that does not exist. For this reason there is little value in allowing such a situation to be executed. Requiring a user to always create the account first would seem tedious when the main goal of invoke is to just run the contract. We should therefore make sure that when the contract runs that all the parameters of the execution environment model a real execution. One invariant is that the invoker exists. Therefore this change makes it so that the account always exists.

We need to iterate on this a little, but I think this is sufficient to start adding more .wasm driven tests. At some point we're going to hit a cliff where this becomes too slow, but I'm not sure where that is yet. When we reach that point, we may want to compile all the test wasms to files and commit the .wasm files. The env repo does this, although for different reasons that are not relevant to this repo.


Update Gradle to 4.3.1

@benjamin-bader

Looks like this fails because it brings in a new version of Checkstyle, from which the RedundantThrows module was removed.  We should remove that module from config/checkstyle/checkstyle.xml, which fixes the break.

@benjamin-bader Done!

Codecov Report

Merging #157 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #157      +/-   ##
============================================
+ Coverage     66.11%   66.13%   +0.01%
- Complexity     1011     1012       +1
============================================
  Files            90       90
  Lines          5268     5268
  Branches        611      611
============================================
+ Hits           3483     3484       +1
  Misses         1524     1524
+ Partials        261      260       -1

Impacted Files
Coverage Δ
Complexity Δ

...in/java/com/microsoft/thrifty/schema/Location.java
78.04% <0%> (+2.43%)
16% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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

Thanks, Jared!


Requests Package Missing

Heyoo package requires requests. But the package is missing.
import requests ModuleNotFoundError: No module named 'requests'
I am also available to raise PR's to fix the issues

I guess I forgot to include requests in the required setup.py
Thank you for pointing out this
Looking forward to seeing your pull requests

No problem. I am also trying out all the features.
I haven't been able to receive any message yet both using heyoo and Whatsapp Cloud API.
I don't know if I am missing anything

To see if you're good try to send a simple template message like below and let me know if it works
>>> from heyoo import WhatsApp
>>> messenger = WhatsApp('TOKEN',  phone_number_id='104xxxxxx')
>>> messenger.send_template('hello_world', 'your number')

Heyoo package requires requests. But the package is missing.
import requests ModuleNotFoundError: No module named 'requests'
I am also available to raise PR's to fix the issues

I have already updated this, changes will be included in the next version of the package


Settings & notifications

Will need to do something with the Notifications page. I can stub in some basic ones that are more or less static (mnemonic created, node created, node started) and then we can build around it as a later pr

hmm.. just merged master into it and it doesn't like something. looking into it

okay. let's do it


Are you sure your gem would works correctly?

Now I am on facing to use your gem, but that doesn't works for some reasons.
Can you tell me why?
I did bundle install after checking in my gemfile, and add the following in rails_admin.rb
RailsAdmin.config do |config|
config.actions do
......
multiple_file_upload do
visible do
%w(Page).include? bindings[:Image].model_name
end
end
end
end
and I customized my code for image model.
has_mongoid_attached_file :imagen, styles: {main: "1000x1000>"}
But that doesn't works as I exptected.
If you have any positive idea, I'd appreciate very much.

Your config for rails_admin is wrong.
Use
%w(Page).include? bindings[:abstract_model].model_name
instead of
%w(Page).include? bindings[:Image].model_name
bindings[:abstract_model] explanation

Also you need 2 models: Page and PageImage(for example). And PageImage has to be embedded in Page.

Correct code:
Parent model
Embedded model
has_mongoid_file_upload .... for embedded model is inherited from this
rails_admin config for parent model
Unfortunately documentation is not written completely. I will correct it soon.


Supports webpack 4

Supports new API of webpack 4 and older API also.

Thank you for the prompt response. :smile:


network,passt: configure unprivileged_port_start to 0

What this PR does / why we need it:
When using Passt network binding mechanism, and not specifying any ports explicitly, traffic to the low ports (<1024) is not passed through to the VM.
This commit sets all virt-launcher ports to be unprivileged, so that all ports may be used by Passt.
This allows using for example SSH to access VM with Passt binding.
Signed-off-by: Radim Hrazdil<EMAIL_ADDRESS>Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
This PR is useful for hypershift, where kubevirt VMs are used as tenant Kubernetes nodes, which
need to use ports from 0-1024 range.
Release note:

NONE

Alternatively, we could explore Pod setting securityContext.sysctls

Interesting, but since we're making other sysctl configuration via handler, I think it's better to stick to that.

Edit: Also today we have net_bind_service capability for this purpose. This means we could remove it.

The net_bind_service should already allow us binding to lower ports IIUC, for some reason, it doesn't.
I can explore removing it in a followup PR

Alternatively, we could explore Pod setting securityContext.sysctls

Interesting, but since we're making other sysctl configuration via handler, I think it's better to stick to that.

Edit: Also today we have net_bind_service capability for this purpose. This means we could remove it.

The net_bind_service should already allow us binding to lower ports IIUC, for some reason, it doesn't. I can explore removing it in a followup PR

Is hypershift using non-root? If so you need to use file capability on the passt binary.

Is hypershift using non-root? If so you need to use file capability on the passt binary.

What is file capability?

kubevirt/cmd/virt-launch

Yes, you need something like that.
See "File capabilities"
https://man7.org/linux/man-pages/man7/capabilities.7.html

Do we still need CAP_NET_BIND_SERVICE for our DHCP setup after this change?

@xpivarc I have tried specifying the capability in the bazel file, but it didn't help. I've also noticed that the capability is actually already being added in handler, when the binary is executed:
https://github.com/kubevirt/kubevirt/blob/main/pkg/network/domainspec/generators.go#L323
This should have the same effect, but for some reason, it doesn't work.

@rmohr  To my understanding, with the unpriviliged_port_start set to 0, we don't need CAP_NET_BIND_SERVICE

@rmohr To my understanding, with the unpriviliged_port_start set to 0, we don't need CAP_NET_BIND_SERVICE

:+1: that would be a great improvement.

@rmohr To my understanding, with the unpriviliged_port_start set to 0, we don't need CAP_NET_BIND_SERVICE

+1 that would be a great improvement.

Actually, on the other hand we still need it, we just provide it differently :/

Interesting. Maybe we can have a look at what is happening because it should work.

Actually, on the other hand we still need it, we just provide it differently :/

Pretty much, yes.
But without this, users are unable to connect to i.e. ssh, so given how Passt works, I believe it's desireable to always allow it to use the full range.

So, let's try to find out why working with xattr does not seem to work. It would probably be better to keep it visible that we are giving that capability, than doing it behind the scenes ( which can also be ok if really necessary, but not optimal when thinking about auditing and risk mitigation).

So, let's try to find out why working with xattr does not seem to work. It would probably be better to keep it visible that we are giving that capability, than doing it behind the scenes ( which can also be ok if really necessary, but not optimal when thinking about auditing and risk mitigation)

Okay

There are two bugs opened for Passt that currently block the ability to bind to lower ports even with the CAP_NET_BIND_SERVICE

https://bugs.passt.top/show_bug.cgi?id=15
https://bugs.passt.top/show_bug.cgi?id=18

This like take some time, at least judging by comment 1 in the first bug.

@rmohr @xpivarc how do you all feel about this change now (where handler sets unpriv port range to start at 0)? Do you see any risk in allowing this while we wait on the passt changes to land which work with CAP_NET_BIND_SERVICE ?  I haven't identified any issues we should be concerned about that don't already exist today... It's just a bit annoying for auditing of capabilities

@rmohr @xpivarc how do you all feel about this change now (where handler sets unpriv port range to start at 0)? Do you see any risk in allowing this while we wait on the passt changes to land which work with CAP_NET_BIND_SERVICE ? I haven't identified any issues we should be concerned about that don't already exist today... It's just a bit annoying for auditing of capabilities

In long run, we should avoid the need for the capability so doing this for the whole pod makes sense to me or some kind of alternative.

fixed typo: force-push

In long run, we should avoid the need for the capability so doing this for the whole pod makes sense to me or some kind of alternative.

I'm not sure I understand the reasong for that. Adding a capability to passt binary to bind to privileged ports seems better to me that allowing everyone to bind to privileged ports -- which is what this PR does, temporarily, until issues in passt are fixed, so that having only that capability is enough.

@rmohr @xpivarc how do you all feel about this change now (where handler sets unpriv port range to start at 0)? Do you see any risk in allowing this while we wait on the passt changes to land which work with CAP_NET_BIND_SERVICE ? I haven't identified any issues we should be concerned about that don't already exist today... It's just a bit annoying for auditing of capabilities

In long run, we should avoid the need for the capability so doing this for the whole pod makes sense to me or some kind of alternative.

I do not understand the outcome regarding to setting xattrs. What is the final blocker?

Anyway, the cap doesn't work for passt, so maybe we can deal with the cap itself in a followup?

@rmohr @xpivarc how do you all feel about this change now (where handler sets unpriv port range to start at 0)? Do you see any risk in allowing this while we wait on the passt changes to land which work with CAP_NET_BIND_SERVICE ? I haven't identified any issues we should be concerned about that don't already exist today... It's just a bit annoying for auditing of capabilities

In long run, we should avoid the need for the capability so doing this for the whole pod makes sense to me or some kind of alternative.

I do not understand the outcome regarding to setting xattrs. What is the final blocker?

We should not need the file capability for passt if we are setting the ambient capability. But as Radim is pointing out it seems there is an issue somewhere and the passt doesn't have the capability in the end.

Thank you for clarifying @sbrivio-rh.
I believe we can proceed with setting net.ipv4.ip_unprivileged_port_start for now.
@xpivarc @rmohr do you agree?

Makes sense to me. Alternatively, we can request this on the Pod to address the auditing issue pointed out by Roman. Can we add a test binding to lower ports?

The test is added
https://github.com/kubevirt/kubevirt/pull/8516/commits/d41521d21b6fa892e552f3c88b2f355c34ef27f9#diff-3dd8f69a5921610cb55f60db9861c78a74697e5f878811eb0ae5ec90ebf9f1d9R164

The test is added d41521d#diff-3dd8f69a5921610cb55f60db9861c78a74697e5f878811eb0ae5ec90ebf9f1d9R164

Missed it. Thanks!
/lgtm

Makes sense to me. Alternatively, we can request this on the Pod to address the auditing issue pointed out by Roman. Can we add a test binding to lower ports?

Past is behind a feature gate? If so, we can proceed, but we can't remove the feature gate until we have this fixed. We also need a follow-up issue.
Please also add a release not to indicate that this PR requires additional privileges for passt only.
In general however I would prefer we understand the issue first before doing security relevant changes.

Past is behind a feature gate? If so, we can proceed, but we can't remove the feature gate until we have this fixed. We also need a follow-up issue.

Yes, opened this issue and updated the PR description: https://github.com/kubevirt/kubevirt/issues/8569

Please also add a release not to indicate that this PR requires additional privileges for passt only.

Done

/approve

@rhrazdil

I believe we can proceed with setting net.ipv4.ip_unprivileged_port_start for now.

Both issues are fixed upstream now:

https://passt.top/passt/commit/?id=3e2eb4337bc06e2331b200b5805ed09244f92bf7
<EMAIL_ADDRESS>https://passt.top/passt/commit/?id=c22ebccba8a09065e59d080ac7a2969a267974ce
<EMAIL_ADDRESS>
If you're curious about the rationale behind the new recommendation in the man page, see also the full discussion around it.


Dialog stack switch with proactive bots

I can send the initial message without any problems. However, when the user answers, how can I receive the message as a FormFlow.
For example, the user's dialog stack can be at any state. And if the proactive bots send a message like "How are you?". How can I grab the reply with the appropriate handler, rather then the current dialog stack. Is there a way to change the users active dialog proactively also?

I'm not sure I understand what you are asking.  When you get a message you can analyze it and decide to launch any dialog including a FormFlow.

Sorry. Let me clarify.
Let say the user is messaging with the bot. Like something like below:
User: "Calculate my age"
Bot: "Ok.  Because of the nature of prompt dialogs, the bot framework tracks the state of the dialog stack.
My question is, what would happen if a proactive bot messages the user in the middle of a another dialog. So something like:
User: "Calculate my age"
Bot: "Ok.

We've started to implement support for interrupting the current dialog stack with a piece of middleware - the current version is at https://github.com/Microsoft/BotBuilder/blob/develop/CSharp/Library/Dialogs/Scorable.cs if you want to give any design feedback.

is it possible if you could explain it a little?

Also another important aspect is, I'm trying to make use of this in a proactive bot. Would that be possible? When I send a message with a proactive bot, I couldnt really refer it to any existing stack. It seems to just send it as a standalone message that doesnt effect any existing dialog stacks.

I assume for a proactive bot, it will send its first proactive message then eventually wait for user input.
  The ScoringDialogTask middleware looks at incoming messages and gives components that implement IScorable the opportunity to intercept the message (for example, to look for generic questions like "how are you today") and perform stack manipulations (for example, interrupt the current dialog and add a new dialog at the bottom of the stack).
All of the components that implement IScorable are given an opportunity to score their handling of the incoming message, and the winner actually gets the message delivered to them instead.
IScorable.PrepareAsync allows you do asynchronous work to generate a score, TryScore returns an actual score, and PostAsync is called on the winner with the maximum score.
IScorables can live on the stack or just sit on the side, ready to intercept messages.

Got it am I suppose to write something special on here?
Conversation.SendAsync(message, () => XXXX);
The middleware didnt just intercept a regular IDialog by itself. How do I enable it?

You can either register additional IScorable in the Autofac container, or implement IScorable on your component that implements IDialog, or use the WithScorable fluent-style method to decorate an existing IDialog with an IScorable.
By the way, you're at the bleeding edge here - some of this stuff is subject to change as we learn from implementations.

I'll give it a try and let you know how it feels. Thank you.
Right now, I'am at Microsoft Ventures Accelerator London. We are here to try the bleeding edge :)

I have a confusion. From my understanding this is how it works.
I normally extend IDialog. And use Conversation.SendAsync as a starting point. Then I move around the dialogs with Call/Done/Fail methods. I understand the dialog stack structure.
Now, from my understanding, whenever a message is received, the botbuilder goes through every class that extends IScorable. If they dont exits, then the last IDialog continues from there it was left off. However, if there are multiple IDialogs that also extend IScorable, they they compete to process the new message by comparing their scores. So far correct am I correct?
My confusion is, what is the point of having PostAsync and StartAsync at the same time since I am extending two interfaces of IDialog and IScorable. I see that StartAsync is not called, if I am extending IScorable.
Also, I have never used Autofrac before, how do I register additional IScorable? Does that mean, it becomes global like an MVC Filter? So every message is going to go through all of the registered IScorable extending classes?
Thank you.

I got it to work a little. I can make it switch to another dialog in PostAsync like code below.
Message toBot = item as Message;
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, toBot))
{
     var stack = scope.Resolve<IDialogStack>();
    await stack.Forward(new HowAreYouDialog(), null, toBot, CancellationToken.None);
    //stack.Call(new HowAreYouDialog(), null);
}

But if I use Forward. for some reason I can not return a response with
var message = await argument;
await context.PostAsync(string.Format("You said {0}", message.Text));
context.Wait(MessageReceivedAsync);

With Call, it doesnt seem to work for some reason.

We have a "sample" of sorts in the unit test named DialogTask_Frame_Scoring - it's possible that you didn't advance the execution of the underlying fiber with PollAsync.  As we implement IScorable ourselves, we'll have better examples.

yeah. I looked into that. It's just difficult to follow because they are unit tests and mock objects. I'll wait for the practical examples I guess. thank you.

I just checked in one simple example of an IScorable implementation - take at look at https://github.com/Microsoft/BotBuilder/commit/000d1082c99fb54c350d714b9b881de6e575a2c0 - in particular, https://github.com/Microsoft/BotBuilder/blob/000d1082c99fb54c350d714b9b881de6e575a2c0/CSharp/Tests/Microsoft.Bot.Builder.Tests/ScorablesTests.cs.

I'm going to close this item for now, but feel free to re-open it for further discussion.


Add cargo xtask validate-openapi command that can be used to validate the generated openapi spec.

Run with:
cargo xtask validate-openapi

rebased.


ER, sterol, etc. PMID:32320462

abnormal eisosome morphology (synonym: eisosome remodeling; comment: Eisosomes protruding towards cell interior)
abnormal intracellular sterol transport (GO:0032366)
normal protein localization to endoplasmic reticulum-plasma membrane contact site (CC is GO:0140268)
normal protein localization to endoplasmic reticulum membrane (CC is GO:0005789)
abolished protein localization to endoplasmic reticulum membrane, with protein mislocalized to cytosol

abnormal eisosome morphology FYPO:0007439
abnormal intracellular sterol transport FYPO:0007440
normal protein localization to endoplasmic reticulum-plasma membrane contact site FYPO:0007441
normal protein localization to endoplasmic reticulum membrane FYPO:0007442
abolished protein localization to endoplasmic reticulum membrane, with protein mislocalized to cytosol FYPO:0007443


fix: A newly connected database doesn't appear in the databases list if user connected database using the 'plus' button

SUMMARY
The RightMenu currently uses the useQueryParam hook that needs a Provider to wrap it (much like the redux store provider, theme provider, etc).
Currently, we have more that one entry point (App.tsx/js) and they don't have the same structure.
Long term solution is to unify these into a single entry point, or at least, have the same provider structure for commonly used tools.
This PR enables the useQueryParam in said component if the router is available, and otherwise ignores it.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS
Ensure that, adding a database from the + menu works.
Ensure the explore loads correctly.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up

LGTM!


Update/Add the service fabric sdk to the windows-2022 image

Description
When I upgrade to the windows-2022 image, my tests that use the service fabric dlls are no longer able to load them.
I do see that the service fabric tools component was upgraded with the new image, but I would expect the dlls to still be present.
2019: Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 17.0.31804.368
2022: Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 16.4.29313.120
Is there a different path that I should be using? If not, will you please make sure that the service fabric sdk gets properly installed as a part of the image?
Virtual environments affected

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] macOS 10.15
[ ] macOS 11
[ ] Windows Server 2016
[ ] Windows Server 2019
[X] Windows Server 2022

Image version and build link
20211109.2

Is it regression?
windows-2019
Expected behavior
Service fabric sdk dlls are present and able to load.
Actual behavior
The service fabric dlls are not present and thus fail to load.
Repro steps
When I run
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

trigger:
  branches:
    include:
    - master
  paths:
    include:
    - 2022.yaml

parameters:
- name: images
  type: object
  default:
  - windows-2019
  - windows-2022

variables:
  skipComponentGovernanceDetection: true

jobs:
  - ${{ each image in parameters.images }}:
    - job: ${{ replace(image,'-','') }}
      pool:
        vmImage: ${{ image }}
      steps:
      - checkout: none
      - powershell: |
            function Test-Folder {
                [CmdletBinding()]
                param(
                    [string]$path
                )
                Write-Host "##[group]$path"
                try {
                    if (-not (Test-Path $path)) {
                        Write-Host "$path does not exist"
                    } else {
                        gci $path -File -Recurse | ForEach-Object {
                            Write-Host $_.FullName
                        }
                    }
                } catch {
                    Write-Host "Failed to check $path | $_"
                }
                Write-Host "##[endgroup]"
            }
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\Fabric\Fabric.Code\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\Fabric\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\"
            Test-Folder "$env:ProgramData\Microsoft Service Fabric"

on 2019, I find files as expected, but on 2022, none of the folders exist:

Hello @grantborthwick. Thank you for your report. We will take a look.

@grantborthwick we don't install service fabric SDK on windows-2022 due to its incompatibility with the windows version https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-versions#supported-windows-versions-and-support-end-date

Hello @grantborthwick and thanks for reporting. Mentioned Visual Studio components are not the Service Fabric SDK versions. As @miketimofeev correctly said we don't install Service Fabric SDK for Windows 2022, but to avoid confusion in future I've prepared PR above which adds information about an installed Service Fabric SDK to ReadMe file. Hope it will be useful.

@grantborthwick PR which adds Service Fabric SDK to ReadMe file was merged. ReadMe files will be updated during next week deployment. We are going to close an issue in case you have no objections.

Thanks @nikolai-frolov - closing with this comment.
As a workaround for anyone that wants to be able to use the service fabric sdk from tasks on the 2022 image before service fabric adds it to its supported OS versions, the second PowerShell task from the following yaml will install the sdk:
trigger:
  branches:
    include:
    - master
  paths:
    include:
    - 2022.yaml

parameters:
- name: images
  type: object
  default:
  - windows-2019
  - windows-2022

variables:
  skipComponentGovernanceDetection: true

jobs:
  - ${{ each image in parameters.images }}:
    - job: ${{ replace(image,'-','') }}
      pool:
        vmImage: ${{ image }}
      steps:
      - checkout: none
      - powershell: |
            function Test-Folder {
                [CmdletBinding()]
                param(
                    [string]$path
                )
                Write-Host "##[group]$path"
                try {
                    if (-not (Test-Path $path)) {
                        Write-Host "$path does not exist"
                    } else {
                        gci $path -File -Recurse | ForEach-Object {
                            Write-Host $_.FullName
                        }
                    }
                } catch {
                    Write-Host "Failed to check $path | $_"
                }
                Write-Host "##[endgroup]"
            }
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\Fabric\Fabric.Code\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\Fabric\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\"
            Test-Folder "$env:ProgramData\Microsoft Service Fabric"
        displayName: 🧪 Test service fabric sdk presence (before)
      - powershell: |
            $global:ProgressPreference = "SilentlyContinue"
            $ProgressPreference = "SilentlyContinue"
            $global:VerbosePreference = "Continue"
            $VerbosePreference = "Continue"
            $global:DebugPreference = "Continue"
            $DebugPreference = "Continue"

            # See https://github.com/microsoft/service-fabric/tree/master/release_notes
            $script:versionTable = @{
                "8.2.1235.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.2.1235.9590.exe"; sdkVersion = "5.2.1235"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.2.1235.msi"  }
                "8.1.337.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.1.337.9590.exe"; sdkVersion = "5.1.337"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.1.337.msi"  }
                "8.1.335.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.1.335.9590.exe"; sdkVersion = "5.1.335"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.1.335.msi"  }
                "8.1.329.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.1.329.9590.exe"; sdkVersion = "5.1.329"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.1.329.msi"  }
                "8.1.321.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.1.321.9590.exe"; sdkVersion = "5.1.321"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.1.321.msi"  }
                "8.1.316.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.1.316.9590.exe"; sdkVersion = "5.1.316"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.1.316.msi"  }
                "8.0.536.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.0.536.9590.exe"; sdkVersion = "5.0.536"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.0.536.msi"  }
                "8.0.521.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.0.521.9590.exe"; sdkVersion = "5.0.521"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.0.521.msi"  }
                "8.0.516.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.8.0.516.9590.exe"; sdkVersion = "5.0.516"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.5.0.516.msi"  }
                "8.0.514.9590" = @{ sfUrl = "https://download.microsoft.com/download/4/9/5/49541d73-6f85-4755-b41b-6b71528f2cfd/MicrosoftServiceFabric.8.0.514.9590.exe"; sdkVersion = "5.0.514"; sdkUrl = "https://download.microsoft.com/download/4/9/5/49541d73-6f85-4755-b41b-6b71528f2cfd/MicrosoftServiceFabricSDK.5.0.514.msi"  }
                "7.2.477.9590" = @{ sfUrl = "https://download.microsoft.com/download/f/c/3/fc39707f-f67c-4c1b-9274-a055a3eb51b8/MicrosoftServiceFabric.7.2.477.9590.exe"; sdkVersion = "4.2.477"; sdkUrl = "https://download.microsoft.com/download/f/c/3/fc39707f-f67c-4c1b-9274-a055a3eb51b8/MicrosoftServiceFabricSDK.4.2.477.msi"  }
                "7.2.457.9590" = @{ sfUrl = "https://download.microsoft.com/download/7/5/9/759afa24-28ce-4de6-92c0-560244a2d55a/MicrosoftServiceFabric.7.2.457.9590.exe"; sdkVersion = "4.2.457"; sdkUrl = "https://download.microsoft.com/download/7/5/9/759afa24-28ce-4de6-92c0-560244a2d55a/MicrosoftServiceFabricSDK.4.2.457.msi"  }
                "7.2.452.9590" = @{ sfUrl = "https://download.microsoft.com/download/6/6/7/667166a6-60c4-4936-961c-292b4f7c4d5e/MicrosoftServiceFabric.7.2.452.9590.exe"; sdkVersion = "4.2.452"; sdkUrl = "https://download.microsoft.com/download/6/6/7/667166a6-60c4-4936-961c-292b4f7c4d5e/MicrosoftServiceFabricSDK.4.2.452.msi"  }
                "7.2.445.9590" = @{ sfUrl = "https://download.microsoft.com/download/4/5/c/45c18017-1e7f-4e2b-87d0-c3d555c54142/MicrosoftServiceFabric.7.2.445.9590.exe"; sdkVersion = "4.2.445"; sdkUrl = "https://download.microsoft.com/download/4/5/c/45c18017-1e7f-4e2b-87d0-c3d555c54142/MicrosoftServiceFabricSDK.4.2.445.msi"  }
                "7.2.434.9590" = @{ sfUrl = "https://download.microsoft.com/download/4/f/1/4f1d5cd7-4a39-493e-814b-7ccdb671dcd7/MicrosoftServiceFabric.7.2.434.9590.exe"; sdkVersion = "4.2.434"; sdkUrl = "https://download.microsoft.com/download/4/f/1/4f1d5cd7-4a39-493e-814b-7ccdb671dcd7/MicrosoftServiceFabricSDK.4.2.434.msi"  }
                "7.2.413.9590" = @{ sfUrl = "https://download.microsoft.com/download/5/9/d/59d472e7-4c84-4cc5-8622-aeed97895192/MicrosoftServiceFabric.7.2.413.9590.exe"; sdkVersion = "4.2.413"; sdkUrl = "https://download.microsoft.com/download/5/9/d/59d472e7-4c84-4cc5-8622-aeed97895192/MicrosoftServiceFabricSDK.4.2.413.msi"  }
                "7.1.510.9590" = @{ sfUrl = "https://download.microsoft.com/download/4/e/f/4efd3f5c-17a5-470d-99a8-ca8d8fb0a9b6/MicrosoftServiceFabric.7.1.510.9590.exe"; sdkVersion = "4.1.510"; sdkUrl = "https://download.microsoft.com/download/4/e/f/4efd3f5c-17a5-470d-99a8-ca8d8fb0a9b6/MicrosoftServiceFabricSDK.4.1.510.msi"  }
                "7.1.458.9590" = @{ sfUrl = "https://download.microsoft.com/download/e/3/c/e3ccf2e1-2c80-48b3-9a8d-ce0dbd67bb77/MicrosoftServiceFabric.7.1.458.9590.exe"; sdkVersion = "4.1.458"; sdkUrl = "https://download.microsoft.com/download/e/3/c/e3ccf2e1-2c80-48b3-9a8d-ce0dbd67bb77/MicrosoftServiceFabricSDK.4.1.458.msi"  }
                "7.1.456.9590" = @{ sfUrl = "https://download.microsoft.com/download/9/3/0/930f9307-52ef-4597-9ae9-f534415e77eb/MicrosoftServiceFabric.7.1.456.9590.exe"; sdkVersion = "4.1.456"; sdkUrl = "https://download.microsoft.com/download/9/3/0/930f9307-52ef-4597-9ae9-f534415e77eb/MicrosoftServiceFabricSDK.4.1.456.msi"  }
                "7.1.428.9590" = @{ sfUrl = "https://download.microsoft.com/download/0/3/4/0344ed86-f29f-47a0-9de2-67424644e773/MicrosoftServiceFabric.7.1.428.9590.exe"; sdkVersion = "4.1.428"; sdkUrl = "https://download.microsoft.com/download/0/3/4/0344ed86-f29f-47a0-9de2-67424644e773/MicrosoftServiceFabricSDK.4.1.428.msi"  }
                "7.1.417.9590" = @{ sfUrl = "https://download.microsoft.com/download/a/4/e/a4e59def-7e11-4a00-b43a-4f769d89129b/MicrosoftServiceFabric.7.1.417.9590.exe"; sdkVersion = "4.1.416"; sdkUrl = "https://download.microsoft.com/download/a/4/e/a4e59def-7e11-4a00-b43a-4f769d89129b/MicrosoftServiceFabricSDK.4.1.416.msi"  }
                "7.1.409.9590" = @{ sfUrl = "https://download.microsoft.com/download/c/8/c/c8c98ab2-6e7a-4d9a-a0a5-506b18111677/MicrosoftServiceFabric.7.1.409.9590.exe"; sdkVersion = "4.1.409"; sdkUrl = "https://download.microsoft.com/download/c/8/c/c8c98ab2-6e7a-4d9a-a0a5-506b18111677/MicrosoftServiceFabricSDK.4.1.409.msi"  }
                "7.0.478.9590" = @{ sfUrl = "https://download.microsoft.com/download/0/0/f/00fbca28-0a64-4c9a-a3a3-b11763ee17e5/MicrosoftServiceFabric.7.0.470.9590.exe"; sdkVersion = "4.0.470"; sdkUrl = "https://download.microsoft.com/download/0/0/f/00fbca28-0a64-4c9a-a3a3-b11763ee17e5/MicrosoftServiceFabricSDK.4.0.470.msi"  }
                "7.0.470.9590" = @{ sfUrl = "https://download.microsoft.com/download/0/0/f/00fbca28-0a64-4c9a-a3a3-b11763ee17e5/MicrosoftServiceFabric.7.0.470.9590.exe"; sdkVersion = "4.0.470"; sdkUrl = "https://download.microsoft.com/download/0/0/f/00fbca28-0a64-4c9a-a3a3-b11763ee17e5/MicrosoftServiceFabricSDK.4.0.470.msi"  }
                "7.0.466.9590" = @{ sfUrl = "https://download.microsoft.com/download/a/e/6/ae642d7b-1196-49d8-bacc-c546dd5e12d0/MicrosoftServiceFabric.7.0.466.9590.exe"; sdkVersion = "4.0.466"; sdkUrl = "https://download.microsoft.com/download/a/e/6/ae642d7b-1196-49d8-bacc-c546dd5e12d0/MicrosoftServiceFabricSDK.4.0.466.msi"  }
                "7.0.464.9590" = @{ sfUrl = "https://download.microsoft.com/download/8/b/2/8b21dcf8-4909-4aaa-8dcb-64c0a37a2d9c/MicrosoftServiceFabric.7.0.464.9590.exe"; sdkVersion = "4.0.464"; sdkUrl = "https://download.microsoft.com/download/8/b/2/8b21dcf8-4909-4aaa-8dcb-64c0a37a2d9c/MicrosoftServiceFabricSDK.4.0.464.msi"  }
                "7.0.457.9590" = @{ sfUrl = "https://download.microsoft.com/download/5/e/e/5ee43eba-5c87-4d11-8a7c-bb26fd162b29/MicrosoftServiceFabric.7.0.457.9590.exe"; sdkVersion = "4.0.457"; sdkUrl = "https://download.microsoft.com/download/5/e/e/5ee43eba-5c87-4d11-8a7c-bb26fd162b29/MicrosoftServiceFabricSDK.4.0.457.msi"  }
                "6.5.676.9590" = @{ sfUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabric.6.5.676.9590.exe"; sdkVersion = "3.4.676"; sdkUrl = "https://download.microsoft.com/download/b/8/a/b8a2fb98-0ec1-41e5-be98-9d8b5abf7856/MicrosoftServiceFabricSDK.3.4.676.msi"  }
            }

            try {
                Write-Host "##[command]Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -force"
                Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -force
            } catch {
                Write-Host "##[info]Failed to set execution policy, but it's likely okay | $_"
            }
            function Get-ServiceFabricRegistryEntry {
                Get-ItemProperty "HKLM:\Software\Microsoft\Service Fabric" -ErrorAction SilentlyContinue
            }

            # Installs the specified version of service fabric
            function Install-ServiceFabric {
                [CmdletBinding()]
                param(
                    # The version
                    [string]$version,

                    [switch]$force
                )

                if (-not $script:versionTable.ContainsKey($version)) { throw "unknown version $version" }

                # Service fabric
                $url = $script:versionTable.$version.sfUrl

                $name = Split-Path $url -leaf
                $exePath = "$env:Temp\$name"

                Write-Host "##[command]Get $url -outFile $exePath"
                Invoke-WebRequest $url -outFile $exePath

                Write-Host "##[command]$exePath /acceptEula /force /quiet"
                & $exePath /acceptEula /force /quiet
                if ($LastExitCode -ne 0) {
                    throw "$exePath /acceptEula /force /quiet exited with error $LastExitCode"
                }

                # Service fabric sdk
                $url = $script:versionTable.$version.sdkUrl
                $sdkVersion = $script:versionTable.$version.sdkVersion
                $installSdk = $true
                $name = Split-Path $url -leaf
                $msiPath = "$env:Temp\$name"
                Write-Host "##[command]Get $url -outFile $msiPath"
                Invoke-WebRequest $url -outFile $msiPath

                $logFile = "$msiPath.log"
                if (Test-Path $logFile) {
                    Remove-Item $logFile -Force -ErrorAction SilentlyContinue
                }

                $processInfo = [System.Diagnostics.ProcessStartInfo]::new()
                $processInfo.FileName = "msiexec.exe"
                $processInfo.Arguments = "/i `"$msiPath`" /quiet /qn /norestart /log `"$logFile`""
                $processInfo.Verb = "RunAs"
                $processInfo.UseShellExecute = $true

                $process = [System.Diagnostics.Process]::new()
                $process.StartInfo = $processInfo

                $fileName = $process.StartInfo.FileName
                $processArgs = $process.StartInfo.Arguments
                Write-Host "##[command]$fileName $processArgs"
                try {
                    $started = $process.Start()
                } catch {
                    Write-Host "##vso[task.logissue type=error]Failed to install the service fabric $sdkVersion sdk | $_"
                    throw
                }
                if (-not $started) {
                    throw "Failed to install the service fabric $sdkVersion sdk"
                }
                $process.WaitForExit()
                $output = Get-Content $logFile -Raw
                if (0 -ne $process.ExitCode) {
                    $exitCode = $process.ExitCode
                    Write-Host "##vso[task.logissue type=error]Failed to install the service fabric $sdkVersion sdk | Ran $fileName $processArgs | Exit code: $exitCode | $output"
                    throw "Failed to install the service fabric $sdkVersion sdk | Ran $fileName $processArgs | Exit code: $exitCode | $output"
                }
                Write-Host $output
            }

            $sfPath = "$env:ProgramFiles\Microsoft Service Fabric\bin\Fabric\Fabric.Code\"
            if (-not (Test-Path $sfPath)) {
                Install-ServiceFabric "7.2.477.9590"
            }
            if (-not (Test-Path $sfPath)) {
                Write-Host "##vso[task.logissue type=error]$sfPath is still not there"
                exit 1
            } else {
                Write-Host "##vso[task.prependpath]$sfPath"
            }
        displayName: 👢 Bootstrap the service fabric sdk
      - powershell: |
            function Test-Folder {
                [CmdletBinding()]
                param(
                    [string]$path
                )
                Write-Host "##[group]$path"
                try {
                    if (-not (Test-Path $path)) {
                        Write-Host "$path does not exist"
                    } else {
                        gci $path -File -Recurse | ForEach-Object {
                            Write-Host $_.FullName
                        }
                    }
                } catch {
                    Write-Host "Failed to check $path | $_"
                }
                Write-Host "##[endgroup]"
            }
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\Fabric\Fabric.Code\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\Fabric\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\bin\"
            Test-Folder "$env:ProgramFiles\Microsoft Service Fabric\"
            Test-Folder "$env:ProgramData\Microsoft Service Fabric"
        displayName: 🧪 Test service fabric sdk presence (after)

@miketimofeev the fact this particular page wasn't updated to mention Windows Server 2022 doesn't mean it's not supported. Does it? Have someone from the SF team said it's incompatible indeed?
The matter of fact it's the opposite, I'm running a fleet of SFRP clusters across multiple regions of Azure on the latest OS.
@grantborthwick please reopen the issue.

Reopening as per @abatishchev's request

@abatishchev thanks for the provided info. We haven't had a chance to engage SF team yet. I'll take if we can add service fabric SDK to windows-2022.

Let's get to the bottom of this. Filed an issue here: https://github.com/MicrosoftDocs/azure-docs/issues/85737

@abatishchev @grantborthwick we have added Service Fabric SDK to win2022 image. The new image rollout will start on January 10 and take 3-4 days.

I can confirm that the new image has rolled out to my ado org and does have the service fabric sdk installed and works as expected - thanks!