Provide a way to test Bevy App

What problem does this solve or what need does it fill?
Bevy App should be testable in headless mode (no renderer), for Continuous Integration and fast feedback when user logic / system interaction is not what user intendeed.
What solution would you like?
Idealy, a complete example for testing a Bevy App should be provided out of the box.
Currently, there's a minimal example provided here : https://github.com/bevyengine/bevy/blob/main/crates/bevy_ecs/examples/resources.rs
This doesn't work well because you have no way to test things that happen "later in time". You advance Bevy synchronously with iteration in a for loop. If you sleep the main thread between each iteration, you'll advance in time but the side effect is test will be slower. So this example work well for startup system or system that run each tick, but this doesn't work for system that happen "later" in time.
We need a way to test a Bevy Application and travel time to a future point where Bevy State is updated, so assertion can work, for all case (FixedTimeStep System or not).

Provide a way to advance or scale Bevy time, skip frame, for test (custom Scheduler ? Or maybe the current default Scheduler is enough ?).
Test should be runnable concurrently with cargo test, some plugins are not compatible (for example, LogPlugin is not usable in context of a test if 2 Bevy App use 2 instance of LogPlugin concurrently).
Documentation.

What alternative(s) have you considered?

Honestly, for small Bevy App you don't need test, but for complex system interaction it's a nice feature.
I'm confident about Bevy behavior and logic, but I don't trust my own code especially when it's inverted control (https://en.wikipedia.org/wiki/Inversion_of_control, the framework is responsible to run my application).
A nice side effect of this feature is if you make Bevy easily testable (out of the box with cargo test), contributors will have a better understanding of Bevy code base/change.
Additional context
Related : https://github.com/bevyengine/bevy/issues/1057 and https://github.com/bevyengine/bevy/issues/1720 and https://github.com/bevyengine/bevy/issues/2687

This is already partially supported and used on CI: https://github.com/bevyengine/bevy/blob/5ba2b9adcf5e686273cf024acf1ad8ddfb4f8e18/.github/workflows/ci.yml#L248
The bevy_ci_testing feature is used to enable it and the CI_TESTING_CONFIG env var is used to pass the path to a config file like https://github.com/bevyengine/bevy/blob/5ba2b9adcf5e686273cf024acf1ad8ddfb4f8e18/.github/example-run/alien_cake_addict.ron#L1-L3. It does still need swiftshader for software rendering though. It can currently only be used to test that the game doesn't crash within the specified amount of time.

This is now approximately solved (see #1057) for more status. It just needs a proper example in Bevy, probably in the tests folder.
If you're looking to tackle this, feel free to steal from my own work without attribution.

For clarity, this issue is not solved (#1057 actually redirects here) and all related issues point to this one as the tracking one.
This is still very much an open issue; even without any mocking involved, it's impossible to run an app with DefaultPlugins inside a #[test] function, and I couldn't find any explanation why as the error message is either cryptic (panic on unwrap()) or non-actionable (something about main thread, that has no explanation about why we ended in this state nor how to avoid).

That error will be related to NonSend resources: tests are generally spun up in paralllel. Note that running apps with default plugins in tests will also be quite challenging in most CI setups, even if that is fixed, as they are not set up for rendering.

Thanks for the explanation @alice-i-cecile. It would be good to have an exhaustive list of the blockers listed on this GitHub issue (or others). I think there's that NonSend winit thing you mention, the headless rendering, maybe thread starvation, ... anything else?
Unfortunately there's no easy way to test any impl Plugin that I know of except through App, which is the pain point here for all crate maintainers.

Audio is also likely to be challenging to test in CI. Our screenshotting and input mocking tools are also limited.

But are those really blockers, or just missing tools for specific test types? What I was listing were things that I think block App::run() today. Having input mock is only useful for testing input, but you can do a lot already without it.

I have been pretty successfully testing systems that just tweak data (rather than graphical side effects) by making headliness windows, disabling winit, and manually fast-forwarding time in between calls to update (or calling run system once). Each of the last few releases had made this more seemless.
Basic gist is something like:
...
    let mut app = App::default();

    let default_plugins = DefaultPlugins
        .build()
        .set(RenderPlugin {
            render_creation: WgpuSettings {
                backends: None,
                ..default()
            }
            .into(),
        })
        .disable::<LogPlugin>()
        .disable::<WinitPlugin>();

    app.add_plugins(default_plugins)

....

/// Fast forward the bevy clock. This is probably very buggy. Have fun!
pub(crate) fn fast_forward(app: &mut App, dur: Duration) {
    app.world
        .get_resource_mut::<Time>()
        .expect("NO TIME!")
        .advance_by(dur);
}

... actual test

        // Run the system 1 time: shouldn't spawn
        app.world.run_system_once(super::spawn);
        let mut res = app.world.query::<&Baddie>();
        assert_eq!(
            0,
            res.iter(&app.world).count(),
            "Shouldn't have spawned anything yet"
        );

        // Fast forward a coupld seconds, it should.
        fast_forward(&mut app, Duration::from_secs(2));
        app.world.run_system_once(super::spawn);
        assert_eq!(
            1,
            res.iter(&app.world).count(),
            "Shouldn't have spawned anything yet"
        );

        // Pump events to send the notifications to handlers.
        app.update();
        assert!(app
            .world
            .resource::<EventTracker>()
            .notifications
            .iter()
            .any(|n| n.message == "Spawned a baddie"));

Note: This above is fine if you don't need anything from rendering. Unfortunately this skips the entire init of the RenderApp, even though most of it doesn't need a valid window/swap chain or even a renderer (GPU adapter). This means all steps like extract etc. can't be tested. Only the main World is available.

These two changes could be made to prevent hanabi from panicking

Wait, why do you need the second one? That seems unrelated 🤔


Content within BlurView is now blurred out

React Native v0.28
react-native-blur v1.1.3
Upgraded to the latest version and now any content within a blurview is being blurred out as well as the image behind it.
      <Image
        source={{uri: this.props.user.profilePhotoURL}}
        style={{width: width, height: width}}
       >
         <BlurView blurAmount={10} blurType="light" style={styles.container}>
              <Text> Hello World </Text>  /// This content is now being blurred out when it wasn't before
          </BlurView>
       </Image>

In the example above the text "Hello World" gets blurred out. It wasn't the case before

Can you confirm that it still happening with 1.2.1?

Just checked this one with React Native 0.40 and<EMAIL_ADDRESS>- can't reproduce.

This appears to still be happening with a VIbrancyView. BlurView works correctly though.

当内容为Image的时候，似乎被模糊了。


Update the version to 2.0.0 in tensorflow.bzl

Fix https://github.com/tensorflow/tensorflow/issues/29540

Thanks for the quick fix Yifei. Will merge it when we are ready to start taking additional cherrypicks to this branch.

@yifeif @bananabowl Should we have a cherry-pick to r1.14 as well?

I don't think it's needed. The major version number is used as the number appended at the end of libtensorflow_framework.so.1 (1 on 1.13, 1.14, etc.)


Explicitly set the routing class in the workspace routings so that external solvers can be used if specified as the default routing class

What does this PR do?
This makes sure that the workspace routing always contains an explicit routing class. This in turn makes sure that the default routing class configured in the devworkspace-operator's configuration can be handled by an external solver.
Without this, the external solver cannot know the routing class unless it reads the configuration of the main devworkspace-operator, which seems quite hacky.
What issues does this PR fix or reference?
#271

/test v5-devworkspaces-operator-e2e


add @nuxt/image

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[X] Feature
[ ] Refactoring

Context

[X] Closes #7807
[ ] Requires deployment <snek/rubick/worker>

Before submitting pull request, please make sure:

[X] My contribution builds clean without any errors or warnings
[X] I've merged recent default branch -- main and I've no conflicts
[X] I've tried to respect high code quality standards
[X] I've didn't break any original functionality

Optional

[ ] I've tested it at </ksm/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Did your issue had any of the "$" label on it?

[X] Fill up your DOT address: Payout

Community participation

[ ] Are you at KodaDot Discord?

Screenshot 📸

[ ] My fix has changed something on UI; a screenshot is best to understand changes for others.

Copilot Summary

🤖 Generated by Copilot at 4ebdf8f
This pull request adds the @nuxt/image module to the project and updates the pnpm-lock.yaml and package.json files accordingly. The @nuxt/image module enables image optimization and resizing for the NFT gallery website, which improves the performance and quality of the images.

🤖 Generated by Copilot at 4ebdf8f

To make images look more sublime
We added the @nuxt/image module this time
It optimizes and resizes
And the lock file revises
The dependencies that need to build fine

woah testing it and I've noticed speed improvements, don't see empty windows when scrolling fast down on Kusama Asset Hub, thank you, keep up great work please!

Only bug I've found generative collections doesn't work through it

https://deploy-preview-7924--koda-canary.netlify.app/ahk/gallery/176-25

I noticed Lighthouse score is quite great here

upcoming scores will be these if merged

https://github.com/kodadot/nft-gallery/pull/8030#issuecomment-1808371703

I noticed Lighthouse score is quite great here1808371703)

@yangwao Yes it did.
I will try to finish it by tomorrow.

I've found some pictures doesn't load on landing, maybe merge main if there are some changes?

@yangwao I've seen that too, I got a 404 for some of the images.
When the image is not available should I put the placeholder and above it the name of the image?

When the image is not available should I put the placeholder and above it the name of the image?

I think most of images should be available as on canary.kodadot.xyz it works 👀 otherwise yes

@yangwao okay I'll take it

@yangwao current status. Images don't resize on cloudflare, get error 9524
9524 — The /cdn-cgi/image/ resizing service could not perform resizing. This may happen when an image URL is intercepted by a Worker. Check your Workers and try again. This can also happen when using a pages.dev URL of a Cloudflare Pages project. In that case, you can use a Custom Domain instead.

It seems that we have this problem
"This may happen when an image URL is intercepted by a Worker."
I don't have access to cloudflare dashboard, so someone have to fix it. Without solving this problem, adding nuxt-image is pointless, it won't do any good
cc @preschian @roiLeo maybe you can help with it

@yangwao current status. Images don't resize on cloudflare, get error 9524
9524 — The /cdn-cgi/image/ resizing service could not perform resizing. This may happen when an image URL is intercepted by a Worker. Check your Workers and try again. This can also happen when using a pages.dev URL of a Cloudflare Pages project. In that case, you can use a Custom Domain instead.

It seems that we have this problem This may happen when an image URL is intercepted by a Worker.
I don't have access to cloudflare dashboard, so someone have to fix it. Without solving this problem, adding nuxt-image is pointless, it won't do any good
cc @preschian @roiLeo maybe you can help with it

Send me the link, will check
The format that we can use is something like this
https://kodadot.xyz/cdn-cgi/imagedelivery/jk5b6spi_m_-9qC4VTnjpg/bafybeic3h44kpgwmp2l6lwzuchl7cqlscjx7opcjkdbmwpc2nzxkcublla/public

https://kodadot.xyz/cdn-cgi/imagedelivery/jk5b6spi_m_-9qC4VTnjpg/{cid-here}/public

Please note:

on the preview page, we are using netlify, so make sure to give the full URL kodadot.xyz/cdn-cgi/{image-path} instead of /cdn-cgi/{image-path}
set fallback image onError to current image worker

@preschian
Url format from cloudflare docs https://developers.cloudflare.com/images/image-resizing/url-format/
cloudflare provider uses this format https://kodadot.xyz/cdn-cgi/image/q=85,w=100,h=100/https://image.w.kodadot.xyz/ipfs/bafkreiffld3244lhtkzmkhipi6332t6yvv4nmkbfktaqerubkuht7uwgli
and this format doesn't work.
Your option https://kodadot.xyz/cdn-cgi/imagedelivery/jk5b6spi_m_-9qC4VTnjpg/bafybeic3h44kpgwmp2l6lwzuchl7cqlscjx7opcjkdbmwpc2nzxkcublla/blur=50 is good and it works, but we can't use default cloudflare provider, because we will need to convert this https://image.w.kodadot.xyz/ipfs/bafybeic3h44kpgwmp2l6lwzuchl7cqlscjx7opcjkdbmwpc2nzxkcublla to this imagedelivery/jk5b6spi_m_-9qC4VTnjpg/bafybeic3h44kpgwmp2l6lwzuchl7cqlscjx7opcjkdbmwpc2nzxkcublla.

Url format from cloudflare docs developers.cloudflare.com/images/image-resizing/url-format

Yes, this is the format that we use. from cf-docs also https://developers.cloudflare.com/images/cloudflare-images/transform/flexible-variants/

and this format doesn't work.

That's why in this PR, @pbkompasz tried to create a custom provider

@preschian ah, okay, cool, I've created custom provider, will do PR soon

Url format from cloudflare docs developers.cloudflare.com/images/image-resizing/url-format
cloudflare provider uses this format kodadot.xyz/cdn-cgi/image/q=85,w=100,h=100/https://image.w.kodadot.xyz/ipfs/bafkreiffld3244lhtkzmkhipi6332t6yvv4nmkbfktaqerubkuht7uwgli

anyway, this format also supported. for ipfs, only works with https://kodadot1.infura-ipfs.io origin

https://kodadot.xyz/cdn-cgi/image/blur=50/https://kodadot1.infura-ipfs.io/ipfs/bafybeifpzxrmi5zfvrlmoudih3l73fgcmxpybj2tmga45wogidtqhibno4/S01_Map_Coll_Logo.png
https://kodadot.xyz/cdn-cgi/image/blur=50/https://polkadot-data.s3.us-east-2.amazonaws.com/metadata/nfts-88/nfts-88_item-5413-img.jpg

@yangwao @preschian PR is here https://github.com/kodadot/nft-gallery/pull/8185
I can't assign a task to me because it's on pbkompasz

Meanwhile done.
Thanks, @pbkompasz for your contribution so far, yet we prefer work to be done fast

https://github.com/kodadot/nft-gallery/pull/8185


[5.0] Fix SILCombine to devirtualize existentials wrapped in enum.

This allows Swift code to implement a fast path via a protocol type
check as follows:
if let existentialVal = genericVal as? SomeProtocol {
// do something fast.
}
Fixes rdar://problem/46322928 Failure to devirtualize a protocol
method applied to an opened existential blocks implemention of
DataProtocol.
Note: the approach of devirtualization via backward pattern matching
is fundamentally wrong and will never be fully general. It should be a
forward type propagation.

@swift-ci test.

@swift-ci test source compatibility.

--- CCC ---
Explanation: Fix SILCombine to devirtualize Optional existentials.
Scope: Only affects -O builds. Extends an existing optimization to recognize more complex SIL patterns.
Issue: rdar://problem/46322928 Failure to devirtualize a protocol method applied to an opened existential blocks implemention of DataProtocol.
Risk: Medium. This adds a conservative pattern match to SILCombine. The biggest risk is that performing more optimization exposes some other bug in the optimizer.
Testing: New unit tests tests were added in both .swift and .sil.

@eeckstein please review for CCC.
I won't merge it until 5.0 branch is ready for PRs.

@swift-ci test source compatibility.


Update bower.json

adding "mapbox-gl" as a dependency for bower.json - same like in package.json

Hi @idanb11!
This bower package is not the mapbox-gl-js library. It seems that doesn't exist a bower package for mapbox-gl-js provided by Mapbox (see https://github.com/mapbox/mapbox-gl-js/issues/1342)
There exist a few packages but they haven't updated since a few months.
https://github.com/olanod/mapbox-gl-js-bower
https://github.com/royhobbstn/mapbox-gl-js
The only way is including it by cdn, webpack or by other ways.
Sorry!


My app won't start after I upgraded Vanara to 3.4.13

Describe the bug and how to reproduce
After I upgraded the Vanara library referenced by the app to 3.4.13, it no longer started. If I start the program with debug mode then it throws a System.ExecutionEngineException. Check the log in the event viewer, and locate the error message: A callback was made on a garbage collected delegate of type 'Vanara.PInvoke.User32!Vanara.PInvoke.User32+WindowProc::Invoke'.
What code is involved
This error occurs when I use WindowClass and CreateWindowEx to create a window.
    public ShadowElementWindow(ShadowElementPosition elemetPossition, WindowShadowDecorator windowShadowDecorator)
    {
        // ...

        var className = $"{SHADOW_WND_NAME}_{ShadowDecorator.TargetWindow.Handle}_{Position}";

        _wndProc = new WindowProc(WndProc);

        _gcHandle = GCHandle.Alloc(_wndProc);

        var windowClass = new WindowClass(className, HINSTANCE.NULL, _wndProc, hbrBkgd: HBRUSH.NULL);

        var exStyles = WindowStylesEx.WS_EX_LAYERED | WindowStylesEx.WS_EX_NOACTIVATE | WindowStylesEx.WS_EX_TRANSPARENT | WindowStylesEx.WS_EX_NOREDIRECTIONBITMAP;

        var styles = WindowStyles.WS_CLIPCHILDREN | WindowStyles.WS_POPUP | WindowStyles.WS_CLIPSIBLINGS;

        WND = CreateWindowEx(dwExStyle: exStyles, lpClassName: className, lpWindowName: "NanUI Shadow Window", dwStyle: styles, X: 0, Y: 0, nWidth: 0, nHeight: 0, hWndParent: HWND.NULL, hMenu: HMENU.NULL, hInstance: HINSTANCE.NULL, lpParam: IntPtr.Zero);
    }

Expected behavior
It worked fine in 3.4.12
Screenshots

I'm guessing it has something to do with the order of disposals. Could you try the following?
var className = $"{SHADOW_WND_NAME}_{ShadowDecorator.TargetWindow.Handle}_{Position}";
var windowClass = WindowClass.MakeVisibleWindowClass(className, WndProc);
var exStyles = WindowStylesEx.WS_EX_LAYERED | WindowStylesEx.WS_EX_NOACTIVATE | WindowStylesEx.WS_EX_TRANSPARENT | WindowStylesEx.WS_EX_NOREDIRECTIONBITMAP;
var styles = WindowStyles.WS_CLIPCHILDREN | WindowStyles.WS_POPUP | WindowStyles.WS_CLIPSIBLINGS;
WND = new VisibleWindow(windowClass, "NanUI Shadow Window", style: styles, exStyle: exStyles);

When you dispose WND, everything should get disposed and released in order, including the wndproc, window and the class.

It does not work. It happens when the application is starting, not when it is closed.  The same exception was thrown.

I've rolled back Vanara to 3.4.12, which works fine.
Thanks.

I'm trying to replicate the error, but cannot with the code you both have provided. I'm running the following w/o error:
public void WindowClassCreateWinTest()
{
   var _wndProc = new WindowProc(WndProc);
   var _gcHandle = GCHandle.Alloc(_wndProc);
   var windowClass = new WindowClass(null, HINSTANCE.NULL, _wndProc, hbrBkgd: HBRUSH.NULL);
   var exStyles = WindowStylesEx.WS_EX_LAYERED | WindowStylesEx.WS_EX_NOACTIVATE |
      WindowStylesEx.WS_EX_TRANSPARENT | WindowStylesEx.WS_EX_NOREDIRECTIONBITMAP;
   var styles = WindowStyles.WS_CLIPCHILDREN | WindowStyles.WS_POPUP | WindowStyles.WS_CLIPSIBLINGS;
   Assert.That(CreateWindowEx(exStyles, windowClass.ClassName, "Test Window", styles), ResultIs.ValidHandle);
}

private static IntPtr WndProc(HWND hwnd, uint uMsg, IntPtr wParam, IntPtr lParam) =>
   DefWindowProc(hwnd, uMsg, wParam, lParam);

I feel like this might not a error comes from Vanara, other component might causing Vanara PeekMessage fail, I'll try check other components.

@XuanchenLin Will you check and see if within your WndProc or elsewhere in your code you can calling back into the WndProc?

I found the problem. In my code the SetWindowPos function is called, after which I use GC.Collect(), probably this line of code is causing the handle to be destroyed.

Thank you for sharing your discovery!

Describe the bug and how to reproduce
After I upgraded the Vanara library referenced by the app to 3.4.13, it no longer started. If I start the program with debug mode then it throws a System.ExecutionEngineException. Check the log in the event viewer, and locate the error message: A callback was made on a garbage collected delegate of type 'Vanara.PInvoke.User32!Vanara.PInvoke.User32+WindowProc::Invoke'.
What code is involved
This error occurs when I use WindowClass and CreateWindowEx to create a window.
    public ShadowElementWindow(ShadowElementPosition elemetPossition, WindowShadowDecorator windowShadowDecorator)
    {
        // ...

        var className = $"{SHADOW_WND_NAME}_{ShadowDecorator.TargetWindow.Handle}_{Position}";

        _wndProc = new WindowProc(WndProc);

        _gcHandle = GCHandle.Alloc(_wndProc);

        var windowClass = new WindowClass(className, HINSTANCE.NULL, _wndProc, hbrBkgd: HBRUSH.NULL);

        var exStyles = WindowStylesEx.WS_EX_LAYERED | WindowStylesEx.WS_EX_NOACTIVATE | WindowStylesEx.WS_EX_TRANSPARENT | WindowStylesEx.WS_EX_NOREDIRECTIONBITMAP;

        var styles = WindowStyles.WS_CLIPCHILDREN | WindowStyles.WS_POPUP | WindowStyles.WS_CLIPSIBLINGS;

        WND = CreateWindowEx(dwExStyle: exStyles, lpClassName: className, lpWindowName: "NanUI Shadow Window", dwStyle: styles, X: 0, Y: 0, nWidth: 0, nHeight: 0, hWndParent: HWND.NULL, hMenu: HMENU.NULL, hInstance: HINSTANCE.NULL, lpParam: IntPtr.Zero);
    }

Expected behavior
It worked fine in 3.4.12
Screenshots

Finally, I located the problem.  In my code above:
var windowClass = new WindowClass(className, HINSTANCE.NULL, _wndProc, hbrBkgd: HBRUSH.NULL);

The windowClass is defined in the method, and it will be recycled by GC after this method is never called. So I just let windowClass as a class member, then the exception will not happen again.
Finally, I successfully upgraded to the latest version of Vanara.


Add Godot With Mono v3.0.2

The Godot Game Engine has 2 different versions. One main version, and
another version that has support for C# scripting via mono. These are
different distributed apps, but perviously only the main version has been available
through brew cask.

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[ ] Named the cask according to the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.
[x] Checked there are no open pull requests for the same cask.
[x] Checked the cask was not already refused in closed issues.
[x] Checked the cask is submitted to the correct repo.

I wanted to rename the app to Godot.app or perhaps Godot-Mono.app, but I couldn't figure out how. So it is what it is.

Does this depend on Mono?

Line 12:
  app "Godot_v3.0.2-stable_mono_osx64.app"
should be:
  app 'Godot_v3.0.2-stable_mono_osx64.app', target: 'Godot Mono.app'
to better fit standard godot cask and has a simpler name.

@Sposito No, it should not.

@commitay Yes it does. I added the dependency and committed.
@Sposito I thought that the name should be a bit nicer looking, but after reading what @vitorgalvao linked it looks as though that should be avoided. So I left it the same. But I agree that godot-mono would be better than godot-with-mono, so I changed it.

Thanks for the PR!


Coloring fast paths and improving svg for negative values in X and Y

Hey!
I made some improvements to your library regarding the SVG generation. g0 paths are rapid speed paths and IMHO should have a different color to better check for errors in the gcode. It also looks nicer.
Second change is the addition of the viewBox attribute in the svg tag. This allows browsers & co to correctly render the full svg image when there are paths with values lower than zero in the X or Y axis. It also replaces the default width and height of the svg, which is 300x150.
Of course feel free to merge only one of the new features or none of them..
Have a nice day!
Henne

Thanks for the contribution! I haven't used the tool in a while, but these changes seem quite handy. Hopefully, I get a chance to test them soon. ;)


Relax dependencies for python >= 3.10 compatibitlity

This PR removes fixed version dependencies for project libraries. It includes the CenterCropVideo and NormalizeVideo functions, previously part of pytorchvideo==0.1.5, now relocated to utils/torchvideo.py. Currently, the RDM creation tests using Pearson distance are failing due to variations exceeding the 0.0001 absolute tolerance, with differences up to 0.001. The cause of these discrepancies is unclear, but it may relate to reduced precision in recent versions of PyTorch.

Sorry I did not see this one! Can you change the PR to Dev? Otherwise we will have conflicts in the future! Thanks for the input!!!


set-vmprocessor command without space

[Enter feedback here]
Under "If you're installing MCC on a local virtual machine" the first command has a space after Set, which should be removed:
Set -VMProcessor -VMName "VM name" -ExposeVirtualizationExtensions $true
should be:
Set-VMProcessor -VMName "VM name" -ExposeVirtualizationExtensions $true

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

ID: b57838ef-4f28-8f97-d9be-fb841393c6a7
Version Independent ID: b57838ef-4f28-8f97-d9be-fb841393c6a7
Content: Microsoft Connected Cache for Enterprise and Education (private preview) - Windows Deployment
Content Source: windows/deployment/do/mcc-enterprise.md
Product: w10
Technology: windows
GitHub Login: @carmenF
Microsoft Alias: carmenf

@JohnMoor Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/windows-itpro-docs/pull/10980
Once the author approves, the changes will be live.
Thanks
Sri


Rename inference classes

This will

Tease out SRE and AALR into two different classes
Fix the default number of atoms and make it an inference-time parameter
Enable further refactors.

Closes #155


Add polyline and earth support (#24)

add polyline

add getLength function for polyline

add Earth#getInitalBearingDegree method for initialBearing.add polyline#getCentroid and polyline#interpolate and polyline#project method

update LngLat and polyline support

Co-authored-by: 王亮杰<EMAIL_ADDRESS>Co-authored-by: Jeff Kao<EMAIL_ADDRESS>

Sorta curious about the downgrades in package-lock.json. Are those intentional?

Sorta curious about the downgrades in package-lock.json. Are those intentional?

I don't think they were intentional. I bet if I removed it from the commit, it'd still work.

okay reverted the package-lock.json changes.


Print number to words

Description
Input  : 123456789
Output : One Hundred Twenty Three Million Four Hundred Fifty Six Thousand Seven Hundred Eighty Nine

Program added successfully :tada:
Thanks for your contribution :hugs:


0.3 release

Hello,
Do you have any plan for 0.3 release?
There is quite a lot of changes since 0.2.
Thanks.

Hi there, any help need ?
I'been seeing very big diferences from the snapshot and the code in this repo. Please push to 0.3 final.

Yes, sorry I have not been taking care of this. Sorry to keep you all waiting. I am working on transitioning maintenance/releases of this plugin to someone who is better able to move this forward.

@kenliu I think there is a lot of work done for the 0.3 release . I will be glad to help with anything you need in order to release the 0.3.
Please let know.

Indeed, we are using the plugin for our deployment, a 0.3 version of it without any issue.
I suppose that you could publish it to grails.org, what’s left to be done?

I'm using it, because @benorama talk at gr8 last year =)

Hi guys,
FYI, we are starting to use a simple shell script for our deployments, based on AWS CLI.
It replaces this plugin.
Here it is:
https://gist.github.com/benorama/b26e7a94fe80e8c54daf

Can you push 0.3 to grailsCentral?
I get this error message: Error Could not find artifact org.grails.plugins:aws-elastic-beanstalk:zip:0.3 in grailsCentral (http://repo.grails.org/grails/plugins)


Improve boat pathfinding

There are a few changes that could be made to improve the pathfinding of boats (to produce more natural looking paths)
Adjusting border nodes
The border nodes of areas (mostly 50x50 tiles) are currently always the outermost two positions which allow transition between the area and it's neighbor.
Adjusting this behaviour to:

distance nodes a few tiles from land tiles (-> paths will not hug coasts nearly as much)
adding an additional node on long edges

should produce smoother paths
Respect speed in precalculations
The proprocessed paths are currently only chosen based on distance.
This could be optimized to favor paths with a minimal amount of "turns".
To make it actually useful, pathfinding would need to support more than 8 directions (maybe 32).
We don't need an optimal solution, so handling them as currently while saving possible offsets should be enough
Additional complexity arrises from corner nodes.
Here the boats could arrive/exit from/to three directions with different rotations, so every corner node needs to be handled three times.
This increases preprocess time a lot. A possible simplification would need to be discussed here.
Actually use waypoints to turn boats
The current behaviour of boats was already designed with this in mind.
Boats should start turning whenever they reach a waypoint, making a small curve in the direction of the next one.
Since waypoints are only spaced more than one tile in free-water areas anyways, this won't produce any problems with land collisions

59e87e8f9d24dc7a00c8a8d80f00204952d88b74 only addresses this partially.
The adjustment of border nodes might be implemented as part of #17
Curved paths are no longer tracked for now.


Multiple mirrors

Is your feature request related to a problem? Please describe.
When I want to mirror two or more nuget servers, I can't configure this. Otherwise I get:
Unhandled exception. System.FormatException: A duplicate key 'Mirror:Enabled' was found.
   at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.VisitValue(JsonElement value)
   at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.VisitElement(JsonElement element)
   at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.VisitValue(JsonElement value)
   at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.VisitElement(JsonElement element)
   at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.ParseStream(Stream input)
   at Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(Stream stream)
   at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
   at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()
   at Microsoft.Extensions.Hosting.HostBuilder.Build()
   at BaGet.Program.<>c__DisplayClass0_0.<<Main>b__1>d.MoveNext() in D:\a\1\s\src\BaGet\Program.cs:line 45
--- End of stack trace from previous location where exception was thrown ---
   at McMaster.Extensions.CommandLineUtils.CommandLineApplicationExtensions.<>c__DisplayClass9_0.<<OnExecuteAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync(String[] args, CancellationToken cancellationToken)
   at BaGet.Program.Main(String[] args) in D:\a\1\s\src\BaGet\Program.cs:line 51
   at BaGet.Program.<Main>(String[] args)

When I try it with a configuration like this:
  "Mirror": {
    "Enabled": true,
    "PackageSource": "https://api.nuget.org/v3/index.json"
  },

  "Mirror": {
    "Enabled": true,
    "PackageSource": "https://www.myget.org/F/caliburn-micro-builds/api/v3/index.json"
  },

Describe the solution you'd like
It would be nice if we could have more than one mirror. The mirroring should be like this. If you don't find it on the first mirror try the next one (like a chain).
This allows to add specific alternatives that may have already newer packages (e.g. like myget in this case).
Describe alternatives you've considered
I could add multiple URLs to the project itself (nuget.config) but it would be nice if we could serve this by a single BaGet.

Did I understood correctly that a configured mirror makes BaGet act as proxy? Or is the mirror the "backup" for uploading from BaGet?

If it is the case that BaGet copies the remote package into its own local storage if a package is requested that is not found… then there might be a bug. When I point my project to BaGet (with mirroring nuget) the following message occurs (Debug level):
...
Connection id "0HLUHRQFENR66" sending FIN because: "The client closed the connection."
...
Connection id "0HLUHRQFENR65" sending FIN because: "The Socket transport's send loop completed gracefully."
...
Also only some packages are stored locally. The build/publish process stops with errors (not all packages are resolved). On the other hand if I use nuget directly everything works as expected. What makes me think that I am not totally wrong is that "some" packages are downloaded.

Current BaGet implementation allows only ONE source for mirror.
The exception is caused by the config-subsystem because the "Mirror" item must be UNIQUE inside the appsettings.json.
So basically this is a feature request, that may need more spec specially about behavior:

mirror
proxy
proxy with cache

regards
Werner

Yes, please!

Same problem. We have multiple packages sources that we would like to mirror.

I have a use-case too where I need two mirrors to apply read-through caching for.

nuget.org
another feed which is protected by a api key

I have a use-case too where I need two mirrors to apply read-through caching for.

nuget.org
another feed which is protected by a api key

I suppose it is possible to set up multiple mirrors by using multiple servers :)

Yup you can always use multiple BaGet instances to support multiple mirrors (though that's a bit of a hassle).
A problem with this feature is that it makes BaGet users vulnerable to package dependency confusion attacks. We would likely want to take inspiration from NuGet's upcoming package namespaces feature.

Would a PR for multiple mirrors be of interest? Ping @loic-sharma


sort-by comparator function update

Just a reminder to myself that I need to update the comparator function for sort-by attribute.
At the moment it just requires you to return with a number and then the order is given by the value of that number.
But it's wrong. It should require you to compare two values and then return 0, -1, 1

problem not only with documentation. There is problem with binding directive scope property sortBy.
    function mdtColumnDirective($interpolate){
    return {
        restrict: 'E',
        transclude: true,
        replace: true,
        scope: {
            alignRule: '@',
            //sortBy: '=',
            sortBy: '&?',
            columnDefinition: '@'
        },

Exactly. I'll update those. Thanks for reporting!


The certificates from the Single sign-on authentication throw an Illegal base64 character

Wazuh version
Install type
Action performed
Platform

4.9.0-alpha3
AIO
Single sing-on auth
CentOS 8

Related issue

https://github.com/wazuh/wazuh/issues/24855

Description
While testing the single sign-on with Okta and Azure when I have to modificate the /etc/wazuh-indexer/opensearch-security/config.yml file and include the certificate generated from Okta or Azure in the exchange_key: field, the {‘statusCode’:500, ‘error’: ‘Internal Server Error’, ‘message’: ‘Internal Error’} error appear when trying to access to the dashboard.
Checking the logs of /var/log/wazuh-indexer/wazuh-cluster.log shows that there is the following error:
[2024-07-24T12:40:18,734][ERROR][c.a.d.a.h.s.HTTPSamlAuthenticator] [node-1] Error creating HTTPSamlAuthenticator. SAML authentication will not work.
[2024-07-24T12:40:18,737][ERROR][o.o.s.s.DynamicConfigModelV7] [node-1] Failed to initialize auth domain saml_auth_domain=AuthcDomain [http_enabled=true, order=1, http_authenticator=HttpAuthenticator [challenge=true, type=saml, config={idp={metadata_url=https://dev-xxxx. okta.com/app/xxxxxxx/sso/saml/metadata, entity_id=http://www. okta.com/xxxxxx}, sp={entity_id=wazuh-saml}, kibana_url=https://xxxxxxx, roles_key=Roles, exchange_key=xxxxxx}], authentication_backend=AuthcBackend [type=noop, config={}], description=null] due to OpenSearchException[java.lang.reflect. InvocationTargetException]; nested: InvocationTargetException; nested: RuntimeException[java.lang.IllegalArgumentException: Illegal base64 character 2b]; nested: IllegalArgumentException[Illegal base64 character 2b];

We have attempted to create a new certificate and encountered the same issue as above.
If we leave the exchange_key option empty o with a dummy string (like exchange_key: "hello" instead of a correct certificate) in the /etc/wazuh-indexer/opensearch-security/config.yml file and re-enter the dashboard, we can log in successfully, but we receive a permissions error once inside the dashboard (due to the wrong certificate, i guess).

@Enaraque, I was able to reproduce the issue by following the steps in our documentation. I will do some troubleshooting and get back to you as I make progress.

Full error log below:
[2024-07-29T14:27:53,444][ERROR][c.a.d.a.h.s.HTTPSamlAuthenticator] [node-1] Error creating HTTPSamlAuthenticator. SAML authentication will not work
java.lang.IllegalArgumentException: Illegal base64 character 2b
        at java.base/java.util.Base64$Decoder.decode0(Base64.java:852) ~[?:?]
        at java.base/java.util.Base64$Decoder.decode(Base64.java:570) ~[?:?]
        at java.base/java.util.Base64$Decoder.decode(Base64.java:593) ~[?:?]
        at com.amazon.dlic.auth.http.saml.AuthTokenProcessorHandler.createJwkFromSettings(AuthTokenProcessorHandler.java:245) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.security.configuration.ConfigurationRepository.reloadConfiguration(ConfigurationRepository.java:390) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.security.action.configupdate.TransportConfigUpdateAction.nodeOperation(TransportConfigUpdateAction.java:128) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.security.action.configupdate.TransportConfigUpdateAction.nodeOperation(TransportConfigUpdateAction.java:52) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.action.support.nodes.TransportNodesAction.nodeOperation(TransportNodesAction.java:200) [opensearch-2.13.0.jar:2.13.0]
        at org.opensearch.action.support.nodes.TransportNodesAction$NodeTransportHandler.messageReceived(TransportNodesAction.java:328) [opensearch-2.13.0.jar:2.13.0]
        at org.opensearch.action.support.nodes.TransportNodesAction$NodeTransportHandler.messageReceived(TransportNodesAction.java:324) [opensearch-2.13.0.jar:2.13.0]
        at org.opensearch.security.ssl.transport.SecuritySSLRequestHandler.messageReceivedDecorate(SecuritySSLRequestHandler.java:206) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.security.transport.SecurityRequestHandler.messageReceivedDecorate(SecurityRequestHandler.java:211) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.security.ssl.transport.SecuritySSLRequestHandler.messageReceived(SecuritySSLRequestHandler.java:105) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.security.OpenSearchSecurityPlugin$6$1.messageReceived(OpenSearchSecurityPlugin.java:828) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.indexmanagement.rollup.interceptor.RollupInterceptor$interceptHandler$1.messageReceived(RollupInterceptor.kt:114) [opensearch-index-management-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.performanceanalyzer.transport.PerformanceAnalyzerTransportRequestHandler.messageReceived(PerformanceAnalyzerTransportRequestHandler.java:43) [opensearch-performance-analyzer-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at org.opensearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:106) [opensearch-2.13.0.jar:2.13.0]
        at org.opensearch.transport.TransportService$7.doRun(TransportService.java:1059) [opensearch-2.13.0.jar:2.13.0]
        at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:913) [opensearch-2.13.0.jar:2.13.0]
        at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) [opensearch-2.13.0.jar:2.13.0]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
        at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:62) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        ... 28 more
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Illegal base64 character 2b
        at com.amazon.dlic.auth.http.saml.HTTPSamlAuthenticator.<init>(HTTPSamlAuthenticator.java:154) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
        at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:62) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        ... 28 more
Caused by: java.lang.IllegalArgumentException: Illegal base64 character 2b
        at java.base/java.util.Base64$Decoder.decode0(Base64.java:852) ~[?:?]
        at java.base/java.util.Base64$Decoder.decode(Base64.java:570) ~[?:?]
        at java.base/java.util.Base64$Decoder.decode(Base64.java:593) ~[?:?]
        at com.amazon.dlic.auth.http.saml.AuthTokenProcessorHandler.createJwkFromSettings(AuthTokenProcessorHandler.java:245) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at com.amazon.dlic.auth.http.saml.AuthTokenProcessorHandler.<init>(AuthTokenProcessorHandler.java:113) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at com.amazon.dlic.auth.http.saml.HTTPSamlAuthenticator.<init>(HTTPSamlAuthenticator.java:148) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
        at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:62) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
        ... 28 more

The exchange_key line in my config.yml:
            exchange_key: 'MIIDqDCCApCgAwIBAgIGAZD+2TSaMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0xNjk2NzIwNDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yNDA3MjkxNDE1MDZaFw0zNDA3MjkxNDE2MDVaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0xNjk2NzIwNDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANBGKQJoWAE2hFLJ71a0pKIaeR/QrgkkhMmLktKUQ31BpTAMvxO/ZT14GtPHdFic5b8Wsf7hsgDo99mqKAsfTOCNr3yz1OOpjReqyLXG1X6Vnw5w+Isktgd5b1MQv4wQDGT+YArUwGMCBpaQKPkfG1T8dVxExE4sIMAW4oyCM8VmfYTmEaR3LX5Qv3O2/iUUfwtANHkp3vtdoVebCIevDFli+Ih9oJOkQwolI/hVH1UiA5ajN8zu26rlPqEcq2eHXknxpPe8h/otGsrTMF2sdnyZok/4pllfmZ2KeWK7QxhI25QWN2tTtdsnMhfFGxJ5+aiGuWs4MzG0ty+/TJRKvuUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAV9Y62RTP2xctJ2S6rSIMStukFgx9q0ULEk5gXvnTVwBSQIY1d0u7ss0v3rKu1u3HTUBucvj7GI1O3ZDHasitvT355d7YQTeCpgpeJuXSAbe5juWVsp70gSPJmEGs87WvdvpjT8otSpxXIxeDkhZGj6nrtt2tj75qS1SRn+nrNSPdODP/nV38c+cw5RR6CXR5kHkDjT/EVYQt0aM5uVdD5f4YyhN4ir4lsi+Vjfk5KBL+8G3CVZda9BY0ljfzn2DzH7uOXJR4r6zLuWd4AwLF8a87CEkY/FdBmFEWDI6erJ12aG2STbSMh1aoJNFvIVqd2T/ahhklGBaBD1LGbpHEOA=='

The curious bit here is character 2d corresponds to the ASCII - sign, and there are no -s in the actual key.
One possible solution is to store the certificate in the opensearch keystore, but I will try to work this around somehow else first.

I've tried using the above key with all possible scalar types without success. It might not be possible to work this bug around.
This issue seems to be caused by the use of the following line of the opensearch security plugin:

https://github.com/opensearch-project/security/blob/d1c6983d71b1552036c53de3a325b98391f25a18/src/main/java/com/amazon/dlic/auth/http/saml/AuthTokenProcessorHandler.java#L245

I was able to reproduce the issue while setting this up in opensearch 2.13. I'm bringing up a 2.15 environment to test whether this has been fixed. We may need to report this as an issue to opensearch.

By @gdiazlo suggestion, I tried using a 64 characters long random string as an exchange_key, making sure it didn't include any non-alphabetical characters.
Doing so I could login to the dashboard using my okta account.
I'm leaving a copy of my config.yml for reference:
---

# This is the main OpenSearch Security configuration file where authentication
# and authorization is defined.
#
# You need to configure at least one authentication domain in the authc of this file.
# An authentication domain is responsible for extracting the user credentials from
# the request and for validating them against an authentication backend like Active Directory for example.
#
# If more than one authentication domain is configured the first one which succeeds wins.
# If all authentication domains fail then the request is unauthenticated.
# In this case an exception is thrown and/or the HTTP status is set to 401.
#
# After authentication authorization (authz) will be applied. There can be zero or more authorizers which collect
# the roles from a given backend for the authenticated user.
#
# Both, authc and auth can be enabled/disabled separately for REST and TRANSPORT layer. Default is true for both.
#        http_enabled: true
#        transport_enabled: true
#
# For HTTP it is possible to allow anonymous authentication. If that is the case then the HTTP authenticators try to
# find user credentials in the HTTP request. If credentials are found then the user gets regularly authenticated.
# If none can be found the user will be authenticated as an "anonymous" user. This user has always the username "anonymous"
# and one role named "anonymous_backendrole".
# If you enable anonymous authentication all HTTP authenticators will not challenge.
#
#
# Note: If you define more than one HTTP authenticators make sure to put non-challenging authenticators like "proxy" or "clientcert"
# first and the challenging one last.
# Because it's not possible to challenge a client with two different authentication methods (for example
# Kerberos and Basic) only one can have the challenge flag set to true. You can cope with this situation
# by using pre-authentication, e.g. sending a HTTP Basic authentication header in the request.
#
# Default value of the challenge flag is true.
#
#
# HTTP
#   basic (challenging)
#   proxy (not challenging, needs xff)
#   kerberos (challenging)
#   clientcert (not challenging, needs https)
#   jwt (not challenging)
#   host (not challenging) #DEPRECATED, will be removed in a future version.
#                          host based authentication is configurable in roles_mapping

# Authc
#   internal
#   noop
#   ldap

# Authz
#   ldap
#   noop

_meta:
  type: "config"
  config_version: 2

config:
  dynamic:
    # Set filtered_alias_mode to 'disallow' to forbid more than 2 filtered aliases per index
    # Set filtered_alias_mode to 'warn' to allow more than 2 filtered aliases per index but warns about it (default)
    # Set filtered_alias_mode to 'nowarn' to allow more than 2 filtered aliases per index silently
    #filtered_alias_mode: warn
    #do_not_fail_on_forbidden: false
    #kibana:
    # Kibana multitenancy
    #multitenancy_enabled: true
    #private_tenant_enabled: true
    #default_tenant: ""
    #server_username: kibanaserver
    #index: '.kibana'
    http:
      anonymous_auth_enabled: false
      xff:
        enabled: false
        internalProxies: '192\.168\.0\.10|192\.168\.0\.11' # regex pattern
        #internalProxies: '.*' # trust all internal proxies, regex pattern
        #remoteIpHeader:  'x-forwarded-for'
        ###### see https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html for regex help
        ###### more information about XFF https://en.wikipedia.org/wiki/X-Forwarded-For
        ###### and here https://tools.ietf.org/html/rfc7239
        ###### and https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#Remote_IP_Valve
    authc:
      kerberos_auth_domain:
        http_enabled: false
        transport_enabled: false
        order: 6
        http_authenticator:
          type: kerberos
          challenge: true
          config:
            # If true a lot of kerberos/security related debugging output will be logged to standard out
            krb_debug: false
            # If true then the realm will be stripped from the user name
            strip_realm_from_principal: true
        authentication_backend:
          type: noop
      basic_internal_auth_domain:
        description: "Authenticate via HTTP Basic against internal users database"
        http_enabled: true
        transport_enabled: true
        order: 0
        http_authenticator:
          type: basic
          challenge: false
        authentication_backend:
          type: intern
      saml_auth_domain:
        http_enabled: true
        transport_enabled: false
        order: 1
        http_authenticator:
          type: saml
          challenge: true
          config:
            idp:
              metadata_url: 'https://orgname.okta.com/app/abcdef1234567890/sso/saml/metadata'
              entity_id: 'http://www.okta.com/abcdef1234567890'
            sp:
              entity_id: wazuh-saml
            kibana_url: https://<IP_ADDRESS>
            roles_key: Roles
            exchange_key: 'MIIDqDCCApCgAwIBAgIGAZD2TSaMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGa'
        authentication_backend:
          type: noop
      proxy_auth_domain:
        description: "Authenticate via proxy"
        http_enabled: false
        transport_enabled: false
        order: 3
        http_authenticator:
          type: proxy
          challenge: false
          config:
            user_header: "x-proxy-user"
            roles_header: "x-proxy-roles"
        authentication_backend:
          type: noop
      jwt_auth_domain:
        description: "Authenticate via Json Web Token"
        http_enabled: false
        transport_enabled: false
        order: 0
        http_authenticator:
          type: jwt
          challenge: false
          config:
            signing_key: "base64 encoded HMAC key or public RSA/ECDSA pem key"
            jwt_header: "Authorization"
            jwt_url_parameter: null
            jwt_clock_skew_tolerance_seconds: 30
            roles_key: null
            subject_key: null
        authentication_backend:
          type: noop
      clientcert_auth_domain:
        description: "Authenticate via SSL client certificates"
        http_enabled: false
        transport_enabled: false
        order: 2
        http_authenticator:
          type: clientcert
          config:
            username_attribute: cn #optional, if omitted DN becomes username
          challenge: false
        authentication_backend:
          type: noop
      ldap:
        description: "Authenticate via LDAP or Active Directory"
        http_enabled: false
        transport_enabled: false
        order: 5
        http_authenticator:
          type: basic
          challenge: false
        authentication_backend:
          # LDAP authentication backend (authenticate users against a LDAP or Active Directory)
          type: ldap
          config:
            # enable ldaps
            enable_ssl: false
            # enable start tls, enable_ssl should be false
            enable_start_tls: false
            # send client certificate
            enable_ssl_client_auth: false
            # verify ldap hostname
            verify_hostnames: true
            hosts:
            - localhost:8389
            bind_dn: null
            password: null
            userbase: 'ou=people,dc=example,dc=com'
            # Filter to search for users (currently in the whole subtree beneath userbase)
            # {0} is substituted with the username
            usersearch: '(sAMAccountName={0})'
            # Use this attribute from the user as username (if not set then DN is used)
            username_attribute: null
    authz:
      roles_from_myldap:
        description: "Authorize via LDAP or Active Directory"
        http_enabled: false
        transport_enabled: false
        authorization_backend:
          # LDAP authorization backend (gather roles from a LDAP or Active Directory, you have to configure the above LDAP authentication backend settings too)
          type: ldap
          config:
            # enable ldaps
            enable_ssl: false
            # enable start tls, enable_ssl should be false
            enable_start_tls: false
            # send client certificate
            enable_ssl_client_auth: false
            # verify ldap hostname
            verify_hostnames: true
            hosts:
            - localhost:8389
            bind_dn: null
            password: null
            rolebase: 'ou=groups,dc=example,dc=com'
            # Filter to search for roles (currently in the whole subtree beneath rolebase)
            # {0} is substituted with the DN of the user
            # {1} is substituted with the username
            # {2} is substituted with an attribute value from user's directory entry, of the authenticated user. Use userroleattribute to specify the name of the attribute
            rolesearch: '(member={0})'
            # Specify the name of the attribute which value should be substituted with {2} above
            userroleattribute: null
            # Roles as an attribute of the user entry
            userrolename: disabled
            #userrolename: memberOf
            # The attribute in a role entry containing the name of that role, Default is "name".
            # Can also be "dn" to use the full DN as rolename.
            rolename: cn
            # Resolve nested roles transitive (roles which are members of other roles and so on ...)
            resolve_nested_roles: true
            userbase: 'ou=people,dc=example,dc=com'
            # Filter to search for users (currently in the whole subtree beneath userbase)
            # {0} is substituted with the username
            usersearch: '(uid={0})'
            # Skip users matching a user name, a wildcard or a regex pattern
            #skip_users:
            #  - 'cn=Michael Jackson,ou*people,o=TEST'
            #  - '/\S*/'
      roles_from_another_ldap:
        description: "Authorize via another Active Directory"
        http_enabled: false
        transport_enabled: false
        authorization_backend:
          type: ldap
          #config goes here ...
  #    auth_failure_listeners:
  #      ip_rate_limiting:
  #        type: ip
  #        allowed_tries: 10
  #        time_window_seconds: 3600
  #        block_expiry_seconds: 600
  #        max_blocked_clients: 100000
  #        max_tracked_clients: 100000
  #      internal_authentication_backend_limiting:
  #        type: username
  #        authentication_backend: intern
  #        allowed_tries: 10
  #        time_window_seconds: 3600
  #        block_expiry_seconds: 600
  #        max_blocked_clients: 100000
  #        max_tracked_clients: 100000

The documentation does not look correct, the exchange_key is a key used by the security plugin to sign tokens in the indexer side. We tested with a custom password it the integration worls.

This has been solved and will be addressed in the documentation.


Wheel shape-cast instead raycast

http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=1817
Switching to convex/shape cast should improve friction behaviour.
No idea how to do it, but i know i have to develop new TankController based on raycast vehicle.

here's interesting PDF
http://www.google.fi/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&ved=0CEgQFjAF&url=http%3A%2F%2Fblender3d.org.ua%2Fforum%2Fgame%2Fiwe%2Fupload%2FVehicle_Simulation_With_Bullet.pdf&ei=m9EPVaDlO8W3ONb1gSA&usg=AFQjCNEb_eG6jWGeAFOLIj-WnjE5ev9miA&bvm=bv.88528373,d.ZWU&cad=rja

http://box2d.org/downloads/


Some Core Command APIs respond with a header which doesn't has 'Content-Type' property

OS version: ubuntu 16.04
EdgeX version: 1.0.0
Environment details: Docker container
Steps to reproduce:

start up EdgeX
send command to /device/{id}/adminstate/{adminState} of Core Command API
for example, with the following request URL:
Method: PUT
URL: http://localhost:48082/api/v1/device/57f7937ae4b060e2d67c20b5/adminstate/LOCKED

Actual results: There is a 'Content-Type' property in the response header
Expected results: There is no 'Content-Type' property in the response header
RAML:

https://github.com/edgexfoundry/edgex-go/blob/master/api/raml/core-command.raml#L163
https://github.com/edgexfoundry/edgex-go/blob/master/api/raml/core-command.raml#L186
https://github.com/edgexfoundry/edgex-go/blob/master/api/raml/core-command.raml#L95
https://github.com/edgexfoundry/edgex-go/blob/master/api/raml/core-command.raml#L118

If these APIs don't need to set the 'Content-Type' property for the response header indeed,
we should remove the check for the 'Content-Type' exist or not from the test script.


Can't download data

Run preprecess_text step failed with error. Is https://bostondata.blob.core.windows.net/scenario-document-collection-analysis/ still a valid URL?
Running: ['python', 'azureml-setup/run_script.py', 'python', 'azureml-setup/history_injector.py', 'Code/documentAnalysis/configs.py']
The experiment completed successfully. Starting post-processing steps.
<urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>
Uploading experiment status to history service.

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

ID: eb42b591-47ff-d1f5-dbc7-3d0bdac7a637
Version Independent ID: 08850e3e-87be-48d5-657f-a988fe8b22d5
Content: Document Collection Analysis - Azure
Content Source: articles/machine-learning/desktop-workbench/scenario-document-collection-analysis.md
Service: machine-learning
GitHub Login: @Kehuan
Microsoft Alias: kehuan

@XianghanWang
Thanks for the feedback! We are currently investigating and will update you shortly.

@XianghanWang Hi, the URL does not work now. Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.
@cjgronlund Hi, I can't find Kehuan in Git, so I can just assign it to you. That link the customer mentioned is not valid now, can you please check it and update the document as necessary? Thanks!

@XianghanWang Hi, can you please describe the issue clearer so that we can help you well?

I followed the steps in https://docs.microsoft.com/en-us/azure/machine-learning/desktop-workbench/scenario-document-collection-analysis. At "Data source" step, it says "A pre-compiled TSV file CongressionalDataAll_Jun_2017.tsv containing records of those legislative actions is provided in this scenario. The TSV file can be downloaded automatically either by the notebooks 1_Preprocess_Text.ipynb under the notebook folder or preprocessText.py in the Python package."
I tried both ways but none of them work. From the python code, it try to download the file from https://bostondata.blob.core.windows.net/scenario-document-collection-analysis/. That link isn't available now.

@XianghanWang
Did you perhaps click on that url expecting that the processed dataset would be downloaded automatically, but instead got some error message like below. This link is just the blob storage container and will not give us the dataset. We need to run the notebook or Python script to get the dataset.

We ran the notebook “1_Preprecess_Text.ipynb” by making one single minor tweak because we did not use Workbench but notebook on my local machine which bypasses the Workbench native share directory. We can see the dataset “CongressionalDataAll_June_2017_tsv” under my Anaconda Projects.

So if you run the notebook and it failed to give him the dataset, one possible reason might be that the Workbench native share directory is not working.  OR you did not run the notebook and only clicked on the blob container url link.

Thanks for your reply, Josée.
I ran the script inside Azure machine learning workbench. Also tried to change the shared_path to ‘./’. No luck.
<EMAIL_ADDRESS>Running: ['python', 'azureml-setup/run_script.py', 'python', 'azureml-setup/history_injector.py', 'Code/documentAnalysis/preprocessText.py']
<urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>
Traceback (most recent call last):
File "azureml-setup/run_script.py", line 158, in
invoke()
File "azureml-setup/run_script.py", line 43, in invoke
subprocess.check_call(sys.argv[1:], stdout=file, stderr=file)
File "C:\Users\xiwa\AppData\local\AmlWorkbench\Python\lib\subprocess.py", line 271, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['python', 'azureml-setup/history_injector.py', 'Code/documentAnalysis/preprocessText.py']' returned non-zero exit status 1
Logging experiment failure in history service.
Uploading experiment status to history service.
Adding run profile attachment control_log
500
InternalServerError
Control script execution completed
Traceback (most recent call last):
File "C:\Users\xiwa\AppData\Local\Temp\azureml_runs\TestAnalyze_1534452835578\azureml-setup\local_control_script.py", line 162, in
killable_subprocess.check_call(options.command)
File "C:\Users\xiwa\AppData\Local\Temp\azureml_runs\TestAnalyze_1534452835578\azureml-setup\killable_subprocess.py", line 247, in check_call
raise subprocess.CalledProcessError(process.returncode, cmd)
subprocess.CalledProcessError: Command '['python', 'azureml-setup/run_script.py', 'python', 'azureml-setup/history_injector.py', 'Code/documentAnalysis/preprocessText.py']' returned non-zero exit status 1
From: Josée Martens<EMAIL_ADDRESS>Sent: Thursday, August 16, 2018 1:39 PM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: XianghanWang<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Can't download data (#12503)
@XianghanWanghttps://github.com/XianghanWang
Did you perhaps click on that url expecting that the processed dataset would be downloaded automatically, but instead got some error message like below. This link is just the blob storage container and will not give us the dataset. We need to run the notebook or Python script to get the dataset.
[image]https://user-images.githubusercontent.com/8481597/44233685-31dd6b80-a16a-11e8-998a-1c0c8081f1e8.png
We ran the notebook “1_Preprecess_Text.ipynb” by making one single minor tweak because we did not use Workbench but notebook on my local machine which bypasses the Workbench native share directory. We can see the dataset “CongressionalDataAll_June_2017_tsv” under my Anaconda Projects.
[image]https://user-images.githubusercontent.com/8481597/44233732-4ae61c80-a16a-11e8-9803-5ec07b4e5362.png
[image]https://user-images.githubusercontent.com/8481597/44233737-50436700-a16a-11e8-889c-3e3f8df6b34d.png
So if you run the notebook and it failed to give him the dataset, one possible reason might be that the Workbench native share directory is not working. OR you did not run the notebook and only clicked on the blob container url link.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/12503#issuecomment-413677129, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AV5oeUdStpCyBLDKrY5N2SFGXURMXoVXks5uRdhNgaJpZM4VklIl.

@XianghanWang, can you #please-close?

@XianghanWang We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.
@j-martens I will close it.


Revert "Update Compiler Options.md"

This reverts commit 8e974c814d44381ed05a3b6203894e0f9e39d552.
This supports https://github.com/Microsoft/TypeScript/pull/26866, and thus should not be merged before the code change itself.
I wasn't sure if I'm targeting the right branch with this PR (I couldn't find branch release-3.1 which I believe @RyanCavanaugh would like the code change to go into), so please let me know if I should change it.

Fixes https://github.com/Microsoft/TypeScript/issues/26193.
/cc @DanielRosenwasser

@NMinhNguyen, I'm not sure the documentation is useful either way.    Would it be correct to document -- allowSyntheticDefaultImports as deprecated, and say that --esModuleInterop is a more comprehensive solution to the problem synthetic default imports was trying to address?


Template with multiple roots doesn't rendered correctly when running test on browser

I extended the marko-lasso example with marko-devtools: https://github.com/abiyasa/marko-lasso/tree/marko-devtools
I added a simple test but one of the test is failing due to it's not being rendered. Here's the template:
class {
    // ...
}

    ${state.count}

<button.example-button on-click('increment')>
    Click me!
</button>

When I run the test on browser/phantomjs, these are the html result (I console.log the context.render's html):

0

The same test pass completely when it runs on the server (by renaming the test.js file to test.server.js). The HTML result:

0
<button class="example-button" id="s0-_r1" data-marko=\'{"onclick":"increment s0"}\'>Click me!</button>

Notice that the button is missing when rendered on the browser.
However, if I change the template to only 1 root by adding a container div, the test passes on both browser & server. Here's the new template:

        ${state.count}

    <button.example-button on-click('increment')>
        Click me!
    </button>

The HTML result on browser test:

0
<button class="example-button">Click me!</button>

I found the cause of this issue.
This is due to BrowserContext only uses FirstChild of the rendered component (see L85). This is true for component with single root but for component with multiple roots element, you will only get the first child.
I'll create a PR for this issue

Thanks for the fast response. Test it on marko-devtools v1.0.5 and it fixed


What is the expected behaviour when providing multiple inputs to a prompt node?

What is the expected behaviour with a flow like this?

The default seems to be to multiply the inputs so that all combinations or lang and description are used in the final prompt.
I suppose it might be useful, but I can't actually imagine a scenario when I would want to do this. Is it possible to have a setting for prompts with multiple inputs to either align or multiply the inputs?
The 'join node' feature has a nod to this, allowing for joining of inputs within or across the llms used as input, but this would still multiply within llm I think. It also doesn't allow templating the multiple inputs into a final query to summarise.
I can see that there is a need to track the 'unit' that we are working with here, but perhaps the units could be derived from the name or ID of an earlier node? In the example above, if the texfield node has the id "words" then we could have an option to "align inputs by <words>" in the final prompt node.

Aligning is what Tabular Data node outputs do; look at that: https://chainforge.ai/docs/prompt_templates/#associated-variables-carry-together
As far as composing alignments from LLM outputs... you're right, it does not support that directly. The issue is that, for your example, it seems "obvious" what to do. However, it is not at all obvious. Yes, {word} is the shared template variable, and it will be retained as history in the second prompt node. However, there's no way in general of knowing how to associate the outputs of your top and bottom prompt node! These could be two totally unrelated things. If you want to join, you can join within variable "word" in a Join Node. That is the best you can do. Otherwise, you should export the outputs and import to Tabular Data as a cleaned up spreadsheet, if you want them to always be aligned.
Actually, this is extremely useful (multiplying inputs) for combinatorially exploding the search space. We discuss this in he ChainForge paper. It is primarily useful for auditing-type tasks.

OK, I should have read the paper first! I can see that multiplying inputs x sets of prompts could be useful as you have in fig. 5 for exploring combinations of inputs and instructions, and also crossing with different models. But I do think for some use cases this is less helpful, and there might still be nice ways of allowing for both behaviours.

If you want to join, you can join within variable "word" in a Join Node. That is the best you can do. Otherwise, you should export the outputs and import to Tabular Data as a cleaned up spreadsheet, if you want them to always be aligned.

For a given set of P prompts, it's possible to keep track of the variables which generated the combinations.
For example in Fig5 of the paper you have two nodes which are generating combinations — the textfields (A) and the prompt column in the tabular data node (B). So the output of the prompt field has A*B rows.
This recreates that situation:

In the exported data, there is already a "Prompt" and "Response" column (and "LLM" too):

So would it be possible to just push the export data into a tabular data node where the columns are set by the groupings that created the prompt? Exporting and reimporting files is an option but it's clunky and means the thing has to be run manually.  Allowing combinations like this would allow much more flexibility.

Yes that's right. You can do "aligned" inputs by using the output of Tabular Data nodes. And sure, there could be an "input" to tabular data that is just the excel sheet that would be exported from the Prompt Node. Please open an Issue for that in particular, and, if you are feeling up to it, you might attempt to implement it.


Support zipfiles that span multiple disks?

See https://huggingface.co/datasets/PhilEO-community/PhilEO-downstream
The dataset viewer gives the following error:
Error code:   ConfigNamesError
Exception:    BadZipFile
Message:      zipfiles that span multiple disks are not supported
Traceback:    Traceback (most recent call last):
                File "/src/services/worker/src/worker/job_runners/dataset/config_names.py", line 67, in compute_config_names_response
                  get_dataset_config_names(
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/inspect.py", line 347, in get_dataset_config_names
                  dataset_module = dataset_module_factory(
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/load.py", line 1871, in dataset_module_factory
                  raise e1 from None
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/load.py", line 1846, in dataset_module_factory
                  return HubDatasetModuleFactoryWithoutScript(
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/load.py", line 1240, in get_module
                  module_name, default_builder_kwargs = infer_module_for_data_files(
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/load.py", line 584, in infer_module_for_data_files
                  split_modules = {
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/load.py", line 585, in <dictcomp>
                  split: infer_module_for_data_files_list(data_files_list, download_config=download_config)
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/load.py", line 526, in infer_module_for_data_files_list
                  return infer_module_for_data_files_list_in_archives(data_files_list, download_config=download_config)
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/load.py", line 554, in infer_module_for_data_files_list_in_archives
                  for f in xglob(extracted, recursive=True, download_config=download_config)[
                File "/src/services/worker/.venv/lib/python3.9/site-packages/datasets/download/streaming_download_manager.py", line 576, in xglob
                  fs, *_ = fsspec.get_fs_token_paths(urlpath, storage_options=storage_options)
                File "/src/services/worker/.venv/lib/python3.9/site-packages/fsspec/core.py", line 622, in get_fs_token_paths
                  fs = filesystem(protocol, **inkwargs)
                File "/src/services/worker/.venv/lib/python3.9/site-packages/fsspec/registry.py", line 290, in filesystem
                  return cls(**storage_options)
                File "/src/services/worker/.venv/lib/python3.9/site-packages/fsspec/spec.py", line 79, in __call__
                  obj = super().__call__(*args, **kwargs)
                File "/src/services/worker/.venv/lib/python3.9/site-packages/fsspec/implementations/zip.py", line 57, in __init__
                  self.zip = zipfile.ZipFile(
                File "/usr/local/lib/python3.9/zipfile.py", line 1266, in __init__
                  self._RealGetContents()
                File "/usr/local/lib/python3.9/zipfile.py", line 1329, in _RealGetContents
                  endrec = _EndRecData(fp)
                File "/usr/local/lib/python3.9/zipfile.py", line 286, in _EndRecData
                  return _EndRecData64(fpin, -sizeEndCentDir, endrec)
                File "/usr/local/lib/python3.9/zipfile.py", line 232, in _EndRecData64
                  raise BadZipFile("zipfiles that span multiple disks are not supported")
              zipfile.BadZipFile: zipfiles that span multiple disks are not supported

The files (https://huggingface.co/datasets/PhilEO-community/PhilEO-downstream/tree/main/data) are:

@severo were you able to solve it?

No. cc @albertvillanova @lhoestq @polinaeterna for an evaluation of what it would take to support this feature.

The underlying issue issue is that the dataset repository has used split ZIP archive files: https://huggingface.co/datasets/PhilEO-community/PhilEO-downstream/tree/main/data
downstream_dataset_patches_npzip.z01
downstream_dataset_patches_npzip.z02
...
downstream_dataset_patches_npzip.zip

and these are not supported by the Python standard library package zipfile.

It's a pretty bad way to share a dataset since one needs to download the full dataset to use it.
We likely won't support this format.

I agree it is a format we maybe should not support: streaming is not possible.

I opened a PR in the reported repo to disable the viewer: https://huggingface.co/datasets/PhilEO-community/PhilEO-downstream/discussions/1


[main] Upgrade to latest dependencies

release - bumping hack -dprotaso
/cc knative-sandbox/eventing-writers knative-sandbox/serving-writers
/assign knative-sandbox/eventing-writers knative-sandbox/serving-writers
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/hack e9a8475...8d1e4cc:
  > 8d1e4cc fix go run invocation of github hub cli (# 213)
  > d35c718 [release-1.7] go run... (# 211)

/lgtm
/approve


make argc if statement more readable

I was just skimming the code until I saw the vim.fn.argc snippet, I didn't know what was going on at first and did a quick google search
just declared a variable so that the reader knows whats going on

I prefer the original code. Sorry

I prefer the original code. Sorry

That's reasonable, all it took for me was a quick google search.
No need to apologize!


Error: Command failed with certain npm packages

Hello, our team is running into issues when we run the check:
"owasp": "owasp-dependency-check --out=./dependency-check-reports --project=\"[projektname]\" --data=/tmp/dependency-check-data --format=HTML --format=HTML --scan=package-lock.json"
The problem happens with the npm packages: jest, webpack, webpack-dev-server

We used the recent version "owasp-dependency-check": "^0.0.21" and an older one (0.0.18).

And what version of java do you have?

Thank you for anwsering, the problem is likely the node-version. When running the check with node-version: 14.16.1, we don't have any problems, but if we use 16.13.1 then we get the Child.process.exithandler error.
I have included a package-lock.json from a small sample project.
package-lock.zip
As for java, we use:
openjdk version "1.8.0_345"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_345-b01)
OpenJDK 64-Bit Server VM (Temurin)(build 25.345-b01, mixed mode)


how to use dinov2 for image retrieval [image similarity search] in large image dataset as shown in demo https://dinov2.metademolab.com/demos?category=retrieval?

hello, How to train nearest neighbors model on extracted embeddings of images from different classes of folders  using dinov2 model and retrieve nearest  similar image for query image  as shown in this website demo  ???
I tried below approach using sklearn nearest neighbors
import torch
from sklearn.neighbors import NearestNeighbors
import pickle
from PIL import Image
import torchvision.transforms as T
import os
# import hubconf
import tqdm
from tqdm import tqdm_notebook
device = torch.device('cuda' if torch.cuda.is_available() else "cpu")
print('device:',device)
# dinov2_vits14 = hubconf.dinov2_vits14()
dinov2_vits14 = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitg14')
dinov2_vits14.to(device)
def extract_features(filename):
    img = Image.open(filename)

    transform = T.Compose([
    T.Resize(224),
    T.CenterCrop(224),
    T.ToTensor(),
    T.Normalize(mean=[0.5], std=[0.5]),
    ])

    img = transform(img)[:3].unsqueeze(0)

    with torch.no_grad():
        features = dinov2_vits14(img.to('cuda'))[0]

    # print(features.shape)
    return features.numpy()

extensions = ['.jpg', '.JPG', '.jpeg', '.JPEG', '.png', '.PNG']

def get_file_list(root_dir):
    file_list = []
    for root, directories, filenames in os.walk(root_dir):
        for filename in filenames:
            if any(ext in filename for ext in extensions):
                filepath = os.path.join(root, filename)
                if os.path.exists(filepath):
                  file_list.append(filepath)
                else:
                  print(filepath)
    return file_list
def extract_features(filename):
    img = Image.open(filename)

    transform = T.Compose([
    T.Resize(224),
    T.CenterCrop(224),
    T.ToTensor(),
    T.Normalize(mean=[0.5], std=[0.5]),
    ])

    img = transform(img)[:3].unsqueeze(0)

    with torch.no_grad():
        features = dinov2_vits14(img.to('cuda'))[0]

    # print(features.shape)
    return features.cpu().numpy()

extensions = ['.jpg', '.JPG', '.jpeg', '.JPEG', '.png', '.PNG']

def get_file_list(root_dir):
    file_list = []
    for root, directories, filenames in os.walk(root_dir):
        for filename in filenames:
            if any(ext in filename for ext in extensions):
                filepath = os.path.join(root, filename)
                if os.path.exists(filepath):
                  file_list.append(filepath)
                else:
                  print(filepath)
    return file_list

# # path to the your datasets
root_dir = 'image_folder'
filenames = sorted(get_file_list(root_dir))
print('Total files :', len(filenames))
feature_list = []
for i in tqdm.tqdm(range(len(filenames))):
    feature_list.append(extract_features(filenames[i]))
pickle.dump(feature_list,open('dino-all-feature-list.pickle','wb'))
pickle.dump(filenames,open('dino-all-filenames.pickle','wb'))
neighbors = NearestNeighbors(n_neighbors=5, algorithm='brute',metric='euclidean').fit(feature_list)
# Save the model to a file
with open('dino-all-neighbors2.pkl', 'wb') as f:
    pickle.dump(neighbors, f)

with above dinov2 based trained   model i get around 70% accuracy on  testing data for retrieving similar class images, is there a way to improve my approach in better manner to improvise  the accuracy ??
Originally posted by @aaiguy in https://github.com/facebookresearch/dinov2/issues/2#issuecomment-1532493165

Hi @aaiguy,
I have a custom dataset and my performance on image similarity is not good. Accuracy for best 3 neighbors is less than 60% have you found a way to improve dinov2 for image similarity search?
Changing model size in my case did not improve accuracy. I Am thinking of retraining dinov2 for fine tuning, but I suppose this is not the solution.
Thanks


Fix glob caching bug

Needed to ensure our "virtual" glob sass file has a unique name otherwise it gets .uniq'd alway in Sass's dependency Set here https://github.com/sass/sass/blob/2bdc564dea068c4e19064daea25349d93f8d01b8/lib/sass/engine.rb#L331
It sorta makes me worry a little bit about the virtual file approach. :filename => nil would make more sense in this case, but other internal sass APIs seem to assume :filename exists for any relative import calls. So those would crash or be incorrect if we set it to nil or some random value. Another approach might be writing out a "real" file to tmp, but I don't know how that would affect sass's internal cache.
Fixes #299.
/cc
@ksylvest if you wouldn't mind testing this branch before we do a final release
@rafaelfranca we'll probably want to cut a new patch level release after this.

Sorry for jumping on such an old thread, but I have these same symptoms on sass-rails-3.2.6 (we are stuck on Rails 3, unfortunately).
Looking at this method in 3.2.6:
    def glob_imports(glob, base_pathname, options)
      contents = ""
      each_globbed_file(glob, base_pathname.dirname, options) do |filename|
        if File.directory?(filename)
          context.depend_on(filename)
        elsif context.asset_requirable?(filename)
          context.depend_on(filename)
          contents << "@import #{Pathname.new(filename).relative_path_from(base_pathname.dirname).to_s.inspect};\n"
        end
      end
      return nil if contents.empty?
      Sass::Engine.new(contents, options.merge(
        :filename => base_pathname.to_s,
        :importer => self,
        :syntax => :scss
      ))
    end

What's concerning is that this just started happening recently, and I can't detect any changes in our gem versions. We did recently switch to new computers, so I'm wondering if a something on the system could have changed that created this problem. If anyone has any ideas, we are in a real bind..
Thanks!


Subtotal should not include shipping

We fixed issues with discounts in #3244.
Not sure it was always like this, but shipping should not be part of the subtotal.
Check cart, checkout, confirmation, order details.
Remember e2e tests.

From what i can see, the subtotal.value response doesn't include shipping.
We want to avoid calculating this in Spartacus because we lose the "formatted value".
    "deliveryCost": {
        "currencyIso": "USD",
        "formattedValue": "$11.99",
        "priceType": "BUY",
        "value": 11.99
    },

and
   "subTotal": {
        "currencyIso": "USD",
        "formattedValue": "$79.11",
        "priceType": "BUY",
        "value": 79.11
    },
    "totalDiscounts": {
        "currencyIso": "USD",
        "formattedValue": "$0.00",
        "priceType": "BUY",
        "value": 0
    },
    "totalItems": 1,
    "totalPrice": {
        "currencyIso": "USD",
        "formattedValue": "$91.10",
        "priceType": "BUY",
        "value": 91.1
    },
    "totalPriceWithTax": {
        "currencyIso": "USD",
        "formattedValue": "$91.10",
        "priceType": "BUY",
        "value": 91.1
    },
    "totalTax": {
        "currencyIso": "USD",
        "formattedValue": "$4.34",
        "priceType": "BUY",
        "value": 4.34
    },

QA Comments when "net=true":

In Checkout -> Delivery mode, once selected, Estimated shipping should update immediately, and not after clicking on "continue" button. 🆖
Using product ID 4812254 (500D + 18-55mm...) as reference
2.a. Before shipping method is selected. Subtotal = $863.70
2.b. After Standard Delivery is selected Subtotal = $873.69
2.c. After Premium Delivery is selected Subtotal = $880.69

Standard Shipping Selection:

Premium Delivery Selection:

For (1), improvement to be done after 1.0 in #3351
For (2), you're confirming that subtotal displayed is including shipping when we don't want it right?

Yes, correct for #2.

QA Steps:

Add product to cart
Go through checkout process to Review Order step
Check order summary shows correct subtotal, shipping and total

Test successful.
Able to see that Subtotal doesn't include shipping cost.
Much better now :-)


Add Makefile target to generate the default pinniped addon secret

What this PR does / why we need it
For uTKG the Pinniped package needs a default addon secret.  This provides the means for generating that secret.
make generate-package-secret TKR_VERSION=v1.23.3---vmware.1-tkg.1 IAAS=vsphere

Which issue(s) this PR fixes

Fixes #
Describe testing done for PR

Release note

PR Checklist

[ ] Squash the commits into one or a small number of logical commits

[ ] Use good commit messages
[ ] Ensure PR contains terms all contributors can understand and links all contributors can access

Additional information
Special notes for your reviewer

Ok closing this out now that the PR is @ the upstream: https://github.com/vmware-tanzu/tanzu-framework/pull/1892/files


execute output

How can we get the output result of a command ?
I created a swift file with the following content:
import Foundation
import SwiftSH

class sshShell {
    func executeCMD(cmd:String) -> String {
        let command = Command(host: "<IP_ADDRESS>", port: 22)
        var output:String = ""

        command!.connect()
               .authenticate(.byPassword(username: "user1", password: "password1"))
               .execute(cmd) { (cmd, result: String?, error) in
                   if let result = result {
                       print("here")
                       print(result)
                       output = result
                   } else {
                       print("there")
                       output =  "ERROR"
                   }
               }
        return output
    }
}

And in the ContentView, I have:
        var output: String = ""
        Button(action: {
            let atest = sshShell()
            output = atest.executeCMD(cmd: "/bin/ls -la")
        }, label: {
            Text("Click me")
        })

        Text(output)
            .padding()

Here is the debugger output:
DEBUG: Timeout set to 10.0 seconds
INFO: Libssh2 v1.9.0
DEBUG: <IP_ADDRESS> resolved. 1 addresses
INFO: Connection to <IP_ADDRESS> on port 22 successful
DEBUG: Remote banner is SSH-2.0-OpenSSH_8.6
DEBUG: Fingerprint is BF:...
DEBUG: Supported authentication methods: [Public Key, Password, Keyboard Interactive]
DEBUG: Authenticating by Password
DEBUG: Opening the channel...
DEBUG: Environment: []
INFO: Bye bye
DEBUG: Disconnected

The connection seems OK but no result.

Have you found a solution?


Improve the documentation

Description
Create good documentation for System Administrators/Implementers. There are multiple types of documents, for instance: Guides, manuals, how-tos, etc, but they should have the same context.
User stories

As SysAdmin, I want to read an articule, where I can read an overview about what I am going to implement.
As SysAdmin, I want to get a functional file example, where I base my installation.
As SysAdmin, I want a well-structured index, which can I find the information quickly.
As SysAdmin, I want a real-life use case, where I can understand what I am doing in an easy way
As SysAdmin, I want a Trobleshuting where can I find a solution if I get an error.
As SysAdmin, I want an item "called best practices" where I can get more information about implementation.

Acceptance Criteria
A readable guide with the use case.
A how-to focused to implementers/SysAdmins
Additional context
I tried to follow the steps for some topics, but it was too complicated to follow them.

@micbar, how can I help you to contribute to it?
Should I create a draft about the structure of the documents?
Erwin

@micbar, how can I help you to contribute to it?
Should I create a draft about the structure of the documents?
Erwin

@erwinpalma @mmattel this could be transferred to owncloud/docs

I guess @mmattel and @EParzefall are aware and working :-D


Is it possible to add tooltip hints for common *.conf.js?

Is it possible to add tooltip hints for common *.conf.js in a similar fashion it is done for package.json tsconfig.json, etc.? For example, karma.conf.js, protractor.confg.js, etc. I understand that it's not a regular json file, but such a capability would greatly help.

Related to #24270 which tracks this for webpack config files. In some cases, you may be able to use jsdocs to get better intellisense:
import { Configuration } from 'webpack'

/**
 * @type {Configuration}
 */
const config = {

};

module.exports = config

However this TypeScript bug prevents the typings from being very useful

Any update on this?

Closing this due to lack of further community interest over the past few years.
You should now be able to use JSDoc type annotations in most cases (the linked TS issue above has been fixed for a long time). Adding a jsdoc type will get you better intellisense and optional type checking as well

Related to #24270 which tracks this for webpack config files. In some cases, you may be able to use jsdocs to get better intellisense:
import { Configuration } from 'webpack'

/**
 * @type {Configuration}
 */
const config = {

};

module.exports = config

However this TypeScript bug prevents the typings from being very useful

import statement is not avalibale when using NodeJS. the code below should be work.
/**
 * @typedef {import('webpack').Configuration} Configuration
 * @type Configuration
 */
module.exports = {
      // webpack Configuration
}


fix: safari copy item issue

For effectAllowed we can not rely on drag event properties since different browsers give different results. In Safari (MacOS) I always received effectAllowed = 'all', does not matter I assign the property (effect-allowed) to vddl-draggable or not. It always triggers move effect. So what I did here is except relying on browser's event, I made the tweak on existing prototype object (vddlDropEffectWorkaround.dropEffect) that you created for wired browser behavior. It solves my issue.
Please accept my pull request, if you don't, tell me what else we can do to solve this quirk.

@getanwar
Sorry, I am very busy recently. Thank you for your PR, I will check it as soon as possible.


WIP: Add code intelligence integration

:notebook_with_decorative_cover: Description

:memo: Checklist

[ ] All user-facing changes have changelog entries.
[ ] The changes are reflected on docs.tenzir.com/vast, if necessary.
[ ] The PR description contains instructions for the reviewer, if necessary.

:dart: Review Instructions

We're now hitting the "git describe" error in the Code Intelligence build, which should be fixed by #1570

[ch24770]

Closing this since we're planning to keep the fuzzing functionality in a separate tenzir/vast-fuzzing repo.


[release/1.2] Cherry-pick update to gRPC 1.23.0

Includes partial cherry-pick of prior master PR #3192: "bump google.golang.org/grpc v1.20.1"
Required core code changes from master cherry-picked to release/1.2 from the commit
2ed8e60. The vendoring is taken from the recent CVE release of gRPC to 1.23.0 in commit
eb7a6bf (PR #3581).
Signed-off-by: Sebastiaan van Stijn<EMAIL_ADDRESS>Signed-off-by: Phil Estes<EMAIL_ADDRESS>

Might want to wait for @stevvooe to have a look; there's doubt if my fix in ttrpc is correct https://github.com/containerd/ttrpc/pull/46#issuecomment-525360074

Would it be possible to test these scenarios in CI? (mixed version shims/clients/dockerd-versions)?(happy to help)

LGTM


Add ADAdice to the project showcase

Showcase addition

Name: ADAdice
Description: A fully on-chain, provably fair game of dice on the Cardano blockchain.
Link:   https://www.adadice.com
Tags:  game

Yes I could publish the source.

That would be awesome, we could do a tutorial out of it :)) Are you in the developer portal discord? https://discord.gg/Exe6XmqKDx


Translate the Launchpad

Add translation support!
While going through the process of configuring the codebase to support translations, we ended up making some significant design & content changes to the app 😅
Fixes https://github.com/ethereum/eth2.0-deposit/issues/302

FYI @ryancreatescopy @wackerow - I've just rebased this branch of dev, so we should have all those changes from #300 that Carl merged.

@CarlBeek I believe we've finished everything 🎉! This PR is now ready for review.
cc @wackerow @ryancreatescopy

Note, after "Mainnet" was changed to "mainnet" within AppBar we end up with (imo) a weird looking header bar. "mainnet" really feels like it should be capitalized in both places here as it's acting as a title.

if i wanted to help with this project by translating it to spanish would that be possible?


refactor GCP pubsub

Description

Make GCP pubsub support implicit credentials, in addition to explicit
Clean up GCP pubsub metadata so that it lines up with other dapr pubsubs (separate struct for the gcp auth json stuff, it seemed a bit cleaner)
make project id (project where subscription/topic should live) separate from "identity project id" (where the service account lives)

Issue reference
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

var pubsubClient *gcppubsub.Client
var err error

thanks @yaron2  - i keep struggling do initalize the "defaults" with the correct type. Appreciate the help!
I think this PR should be in a semi-good state now - at least good enough to discuss if the direction is correct

There's a code lint issue

I'm not sure what the "misses" and "partials" are about - I added more test coverage but maybe that didn't help?

Thanks! Yep, we're using a test build internally already. Feeling fairly safe that we're good, but since we're changing the parameters there to be more "dapr-friendly" there are breaking changes. Feel free to merge if you're okay with that, or let me know if we should discuss further.


Fix typo in a link

add Giorgio Strano to PhD students
fix url for giorgio strano's website

👷 Deploy Preview for gladia processing.

Name
Link

🔨 Latest commit
b966cc798f2f0aa31085f2a1c248a6fa2f0fa3cf

🔍 Latest deploy log
https://app.netlify.com/sites/gladia/deploys/66dae09bf8e2440008762d95


I forked a new project and maximized the resolution of dependency issues！

Hello everyone, I forked a new project and maximized the resolution of dependency issues.
It supports node version 16 or higher and has optimized jsdoc performance issues to achieve a lightning-fast speed.
In my own project, the original version took 40 minutes, while the new version only takes 1 minute. Everyone is welcome to use it.
https://github.com/zjslqshqz/docma

original version

my version